From Principles to Implementation: Some Lessons Learned in the Building of the AMMA Model Engineering Platform Jean Bézivin  Jean.Bezivin{noSpamAt}univ-nantes.fr   ATLAS Group (INRIA & LINA), University of Nantes, France http://www.sciences.univ-nantes.fr/lina/atl/
Model Driven Engineering Schedule Scope & Applicability Principles Deployment (AMMA) Credits Modelware Microsoft  IBM  TNI Sodifrance
Basic entities System Model repOf System : a group of interacting, interrelated, or interdependent elements forming a complex whole. Model : an abstract representation of a system created for a specific purpose. Technical Space : a representation system for models and a set of technical solutions to handle them. Technical Space
The playground Principles Standards Tools Teaching sNets, 1990 UML, 1995 today, AMMA MOF, 2000 tomorrow
Principles, standards and tools Principles Standards Tools Model-Driven Engineering (MDE)   MDA™  Model-Driven Architecture (OMG)  Eclipse EMF GMF MIC  Model Integrated Computing  GME  Software Factories (MS) Microsoft Visual Studio Team system DSL Tools Other Standards Other Tools
IBM on MDA : Three complementary ideas   Direct representation  Automation  Standards   Direct representation => multiple languages Danger of fragmentation Need coordination How to coordinate? Short answer: metametamodel But what is a metametamodel?
Agenda Scope
Introduction The industrial evolution (OMG MDA™, IBM EMF, Microsoft Software Factories) and the MDE trend The need for sound principles (models as first class entities) Technical spaces or why MDE is not sufficient. Multiple Technical Spaces inside MDE EMF?
The initial move: from Middleware to Modelware
Latest tentative to define MDA
Steve Cook (OOPSLA 2004 panel) Suggests that MDA proponents fall into the following three camps: The UML PIM camp: MDA involves the use of UML to build Platform Independent Models (PIMs) which are transformed into Platform Specific Models (PSMs) from which code is generated. The MOF camp: MDA does not involve the use of UML, but instead the crucial technology is MOF, and the definition of modelling languages and language transformations using MOF. The Executable UML camp: MDA involves building a UML compiler, making it a first class programming language. Ref:  Steve Cook Blog @:  http://blogs.msdn.com/stevecook
MDA in a nutshell :  PSM = f(PIM) - One unique Metametamodel (the MOF) - An important library of compatible Metamodels, each defining a DSL - Each of the models is defined in the language of its unique metamodel M 1 M 2 M 3
The initial  MDA  conjecture : PSM = f(PIM) PIMs (Platform Independent Models) PSMs (Platform Specific Models) Merging phase PDMs (Platform Description Models) ? weaving PSM branch PDM branch PIM branch M
Two missing links in the OMG architecture PSM = f(PIM, PDM) or  after  currying: PSM   =   f PDM (PIM) PIM P D M P S M “ numeric” values: PDM = DotNet PDM = EJB
Microsoft Software  Factories SDK (Team System) released in late 2004 First presentation at OOPSLA, Vancouver, Oct. 2004 See S. Cook, S. Kent, J. Greenfield and K. Short Blogs Aims to be closer to a metaCASE tool than Eclipse  (however follow GMF Borland) Not UML-based  (nor MOF, nor XMI) Models strongly tied to code Reverse engineering/synchronization Reliance on Microsoft’s platforms (Visual studio) …  Modeling is the future … Bill Gates
MDE@Microsoft  Microsoft is releasing a suite of tools to make it easy to construct graphical designers hosted in Visual Studio for editing domain specific languages (DSL).
Creating a Petri net DSL Metamodel: a couple of logical and visual definitions
Creating a Petri net DSL Mapping on DotNet standard tools (C#, CLS, CLR, etc.) We are far from the initial OMG PIM/PSM naive separation However this is really MDE in 2005
A first attempt to reverse engineer the  DSL Metametamodel
Microsoft DSI (Dynamic System Initiative) March 2005 A system model captures an entire system's composition in terms of all interrelated software and hardware components. A system model captures knowledge as prescriptive configurations and best practices, allowing the effects of changes to the system to be tested before the changes are implemented. Administrators do not need to operate directly on real-world systems but rather can model changes before committing to them. In this way, “what if” scenarios can be tried without impact to a business. A system model becomes the point of coordination and consistency across administrators who have separate but interdependent responsibilities. System Definition Model is a language, or a meta-model, that is used to create models of distributed systems. A distributed system is a set of related software or software and hardware resources running on one or more computers that are working together to accomplish a common function
The notion of TS  (Technology Space) as a tool for collaboration A Technology Space  corresponds to : A uniform representation system Syntactic trees  XML trees  Sowa graphs  UML graphs MOF graphs Categories Graph Grammars   A working context A set of concepts A shared knowledge and know how etc. It is usually related to a given community with an established expertise, know-how and research problems It has a set of associated tools and practices, etc. Protégé, Rational Rose, … XML documentware MDA Modelware Corba C++ WWW etc. RDBMS Corba Ontologies Java Graph Theory OOBMS Linux Description logic Prolog Semantic WEB  Grammarware
Abstract Syntax Systems Compared MOF The UML meta-Model A Specific UML Model A Specific phenomenon corresponding to a UML Model EBNF Pascal Language Grammar A specific Pascal Program A specific execution of a Pascal  program Technology #2 (MOF + OCL) M 3 M 2 M 1 Technology #1 (formal grammars attribute grammars, etc.) etc .
A technical space is organized around a set of concepts TSpaces  may be  connected via bridges TSpaces are often similarly organized But also… Program Grammar Data Schema Model Meta-Model Document Schema Ontology Top Level O. Syntax XML MDA DBMS Ontology engineering File FileFormat Drawing Stencil Model Meta-Model ToolFormat Tool Content Form FSMngt XML MDA Visio InfoPath
Technical Spaces and Working Contexts Technical Spaces Examples: MDE, MDA, MS/SF, EBNF, XML, DBMS, ontologies, etc.  Conjecture: Each TS is represented by a metametamodel  Each TS is organized in a 3 metalevel architecture Working contexts Local MM specific  Global TS specific, MM independent  Universal  Across several TSs  (extended MIME notation) Mof1.4/UML/mymodel MicrosoftDSL/PetriNet/MyNet ECORE/PetriNet/MyNet EBNF/Pascal/MyProg XML/MusicML/MyMusic M3/M2/M1
Models revisited Everything is a model A   -model    meaning any specific TSpace An XML document is an XML-model  A Java source program is a Java-model An UML model is a MDA-model  etc. Each TSpace is rooted in a metametamodel (M3)  defining a representation scheme and basic type system. Distinguish between intra-space and inter-space operations
Model transformation across Technical Spaces There is a need for inter-TS model transformation. A TS B TS C TS D TS
Agenda Applicability
Some examples of transformations Classical UML2Java UML2RDBMS But also tool to tool (more important) UML Activity Diagrams to MS Project
The KM3 metamodel (simplified)
KM3 definition of the KM3 metamodel package KM3 { abstract class ModelElement extends LocatedElement { attribute name : String; reference "package" : Package oppositeOf contents; } class Package extends ModelElement { reference contents[*] ordered container : ModelElement oppositeOf "package"; } class Classifier extends ModelElement {} class DataType extends Classifier {} class Class extends Classifier { attribute isAbstract : Boolean; reference supertypes[*] : Class; reference structuralFeatures[*] ordered container : StructuralFeature   oppositeOf owner; } -- continued on next slide NOT XMI (Emfatic-like)
Java to Excel Transformation (call graph) public class SecondClass { public void sc_m1(){ FirstClass a = new FirstClass(); a.fc_m1(); } public void sc_m2(){ this.sc_m1(); } } public class FirstClass { public void fc_m1(){ } public void fc_m2(){ this.fc_m1(); this.fc_m1(); } } SecondClasss.java FirstClass.java
Java and Table Metamodels
UMLDI2SVG
Tool  Interoperability Tool interoperability Build a metamodel of each tool Write a transformation Two kinds of Metamodels Data stream oriented  Event oriented AMMA ATL AMW AM3 ATP Tool X Tool Y
Agenda Principles
What about the stability of MDA? Missing foundations may cause big problems ahead
Just an academic issue anyway?
Enter the "metamuddle"
Model of a model
The  MDA  metamuddle A very rapidly growing industrial application field since november 2000, …  but … We badly need a unifying theory of models
Credits and MDA compliance   Ontology engineering MDE Language engineering
The "representation" relation repOf System and System elements Model and Model elements Simple set interpretation of the  repOf  relation is probably as correct as simple set interpretation of the  instanceOf  relation in object technology.   ?
The "conformance" relation M 2 M 1 the MOF Class Association source destination M 3 c2 c2 c2 meta meta meta meta meta meta meta the UML MetaModel Class Attribute * 1 a UML Model Client Name : String metamodel model "the real world" meta-meta model The MOF The UML  metamodel Some UML Models Various usages of these models M 0 M 1 M 2 M 3
Summary: a Petri Net model arcPT arcTP outGo outGo inCom inCom outGo inCom inCom outGo outGo inCom conformsTo conformsTo conformsTo repOf System P2 P1 T1 Classical representation M1 M2 M3 Metametamodel Metamodel Model Node Place Place P1 Place P2 Node Trans Node Node Node Link Link arcPT Link arcTP Trans T1 Link inCom Link outGo Link meta meta
<petrinet> <place name=“P1”/> <place name=“P2”/> <transition name=“T1”/> <arcPT source=“P1” target=“T1”/> <arcTP source=“T1” target=“P2/> </petrinet> conformsTo conformsTo repOf System … <xs:element name=“place&quot;> <xs:complexType> <xs:attribute name=“name“ type=“xs:string&quot;/> </xs:complexType> </xs:element> … … <xs:element name=“element&quot;> <xs:complexType> <xs:attribute name=“name“ type=“xs:string&quot;/> … </xs:complexType> </xs:element> … conformsTo P2 P1 T1 Classical representation M1 M2 M3 Metametamodel: XML Schema for XML Schema Metamodel: a Petri Net XML Schema Model: an XML document meta
Agenda Deployment
AMMA: A Lightweight Architectural Style for  for Generic Model Management Platforms ATLAS Model Management Architecture Build around a minimal set of sound principles Defines the conventions for the various connected tools to interoperate Lightweight : Not reinventing CORBA (Model-based interoperability and not Middelware-based interoperability) Four basic blocks: AMMA ATL AMW AM3 ATP M. Transformation M. Composition M. Global Management Inter TSpaces Bridge
Atlas Model Management Architecture Modeling in the small Working at the level of model and metamodel  elements Modeling in the large Working with models and metamodels as  global entities , for what they represent, and their mutual relations, independently of their content A  megamodel  is a model which elements represents models, metamodels and other global entities (ako model registry with metadata on models and metamodels). A megamodel has a metamodel.
ATL: a model transformation language, engine and IDE  ATL: a MOF/QVT like model transformation language For more info see:  http://www.sciences.univ-nantes.fr/lina/atl/
Model Transformation with ATL conformsTo conformsTo conformsTo conformsTo conformsTo G  2  P Rule R  2  B Rule Ma Mb MMa Green Node Red Node MMb Blue Node Pink Node Metametamodel Node Node ATL Rule Node MMa2MMb.atl
ATL editor (part of ATL Integrated Development Environment)
ATL Development Tools: source-level debugger
The standard OMG model transformation language ATL is a QVT-like language If QVT is the solution, then what was the problem?
The Model Weaver : principles OperationPort mapsTo OperationType Left MM Weaving MM Right MM Stub MM Weaving model extends c2 - Fixed mapping   metamodel s are not sufficient - We need su p port for extensible variable metamodels
Model  set of elements and associations Associations (intra model relationships) Model Composition (inter model relationships) Models E1 hasA references E2 E3 Model E1 E2 E3 Model 1 E1 E2 Model 2 isA E3 E4 isA E4 inherits Semantic defined  in the metamodel Undefined line semantics
Metamodel extensions Several possible mapping DSLs (Domain Specific Languages) Adding extra semantics Concatenation, foreign keys, nested, ordered, equals, containment, supplier/consumer, etc. E1 E2 E2 Model 1 E1 E2 Model 2 E3 E4 Equals Concat String
AMW example: RDBMS to XML Semantics SQL schema  represented in Ecore XML schema  represented in Ecore
Weaving metamodel  Visualization (DSL tools and EMF)
Weaving metamodel Minimal weaving metamodel links  and correspondences extended to be used in different applications
AM3: ATLAS MegaModel Management Tool Megamodel: a model with elements corresponding to models, metamodels, services, tools and more generally to any global resource available in the scope of an AMMA session. A registry for model engineering resources as well as a metadata repository Megamodel with different metamodels Megamodels beyond typing systems MM M typeOf MM’ versionOf MM’ extensionOf Tool Service implements Parameter typeOf input output T M output intput etc.
Representing zones with Megamodels ZoneA Megamodel MgA repOf Megamodel Metamodel c2 ZoneB Megamodel MgB repOf c2 Fred ATL Nantes Ivan Mistral Enschede
Representing zones with Megamodels ZoneA Megamodel MgA repOf ZoneB Megamodel MgB    MgC repOf ZoneC Megamodel Metamodel c2 c2 ZoneBC
Initial Metamodel Proposal for AMMA Megamodel Components
Megamodel Resource Navigator  for model components Technology Preview
ATP: TS and projectors TSpace #1 MDA TSpace #2 EBNF TSpace #3 XML TSpace #4 SQL π 1 π 3 π 2 Java Corba SVG NLP, etc. XMI JMI CMI etc. ATLAS Technical Projectors MS/Office Simulink Matlab etc. model mmodel grammar program document XMLschema dataSchema data
Examples of projections from ME to XML and EBNF TSs XML TS ME TS EBNF TS MOF MMa Ma EBNF KM3.g MMa.km3 XSD MMa.xsd Ma.xmi XMI KM3 M3 M2 M1
Conclusions Transformations are models Weavings (correspondences) are models Megamodels are models (meta-)Models everywhere A file format A tool internal data A Visio stencil An Infopath Form An API etc. Pragmatics of model transformation are important EMF and MS/DSL may be considered as two TSpaces, based on different M3
Conclusions:  AMMA on top of Eclipse  and MS/DSL tools ATL  MTF  KM3  Emfatic  etc.  etc.  Eclipse EMF AMMA Visual Studio Team System AMMA
How adaptable is MDA? MDA™ already evolved a lot in the last five years. MDA will have to evolve much more rapidly in the near future if OMG wants to meet the real needs of the user community. Strong competition will be coming from other technical spaces like XML, Microsoft DSLs, EMF, etc. End users are no more accepting huge, approximatively defined and committee-driven standards; they are asking for an available, adapted and  agile set of small standards similar to XML. If MDA does not evolve rapidly, it will become one small niche in the MDE landscape; it will be quoted as the first historical one; many competing families of model engineering technologies will emerge and develop. What is important is assessing the basic principles of MDE; The decisions of OMG, W3C, OASIS, Microsoft, IBM and others on how to map these principles on implementation frameworks (e.g. Java, C#, XML, etc.) or on paper recommendations is only the responsibility of these organizations; the end user will be the final judge.
Thanks Questions? Comments? http://www.sciences.univ-nantes.fr/lina/atl/

ALT

  • 1.
    From Principles toImplementation: Some Lessons Learned in the Building of the AMMA Model Engineering Platform Jean Bézivin Jean.Bezivin{noSpamAt}univ-nantes.fr ATLAS Group (INRIA & LINA), University of Nantes, France http://www.sciences.univ-nantes.fr/lina/atl/
  • 2.
    Model Driven EngineeringSchedule Scope & Applicability Principles Deployment (AMMA) Credits Modelware Microsoft IBM TNI Sodifrance
  • 3.
    Basic entities SystemModel repOf System : a group of interacting, interrelated, or interdependent elements forming a complex whole. Model : an abstract representation of a system created for a specific purpose. Technical Space : a representation system for models and a set of technical solutions to handle them. Technical Space
  • 4.
    The playground PrinciplesStandards Tools Teaching sNets, 1990 UML, 1995 today, AMMA MOF, 2000 tomorrow
  • 5.
    Principles, standards andtools Principles Standards Tools Model-Driven Engineering (MDE) MDA™ Model-Driven Architecture (OMG) Eclipse EMF GMF MIC Model Integrated Computing GME Software Factories (MS) Microsoft Visual Studio Team system DSL Tools Other Standards Other Tools
  • 6.
    IBM on MDA: Three complementary ideas Direct representation Automation Standards Direct representation => multiple languages Danger of fragmentation Need coordination How to coordinate? Short answer: metametamodel But what is a metametamodel?
  • 7.
  • 8.
    Introduction The industrialevolution (OMG MDA™, IBM EMF, Microsoft Software Factories) and the MDE trend The need for sound principles (models as first class entities) Technical spaces or why MDE is not sufficient. Multiple Technical Spaces inside MDE EMF?
  • 9.
    The initial move:from Middleware to Modelware
  • 10.
  • 11.
    Steve Cook (OOPSLA2004 panel) Suggests that MDA proponents fall into the following three camps: The UML PIM camp: MDA involves the use of UML to build Platform Independent Models (PIMs) which are transformed into Platform Specific Models (PSMs) from which code is generated. The MOF camp: MDA does not involve the use of UML, but instead the crucial technology is MOF, and the definition of modelling languages and language transformations using MOF. The Executable UML camp: MDA involves building a UML compiler, making it a first class programming language. Ref: Steve Cook Blog @: http://blogs.msdn.com/stevecook
  • 12.
    MDA in anutshell : PSM = f(PIM) - One unique Metametamodel (the MOF) - An important library of compatible Metamodels, each defining a DSL - Each of the models is defined in the language of its unique metamodel M 1 M 2 M 3
  • 13.
    The initial MDA conjecture : PSM = f(PIM) PIMs (Platform Independent Models) PSMs (Platform Specific Models) Merging phase PDMs (Platform Description Models) ? weaving PSM branch PDM branch PIM branch M
  • 14.
    Two missing linksin the OMG architecture PSM = f(PIM, PDM) or after currying: PSM = f PDM (PIM) PIM P D M P S M “ numeric” values: PDM = DotNet PDM = EJB
  • 15.
    Microsoft Software Factories SDK (Team System) released in late 2004 First presentation at OOPSLA, Vancouver, Oct. 2004 See S. Cook, S. Kent, J. Greenfield and K. Short Blogs Aims to be closer to a metaCASE tool than Eclipse (however follow GMF Borland) Not UML-based (nor MOF, nor XMI) Models strongly tied to code Reverse engineering/synchronization Reliance on Microsoft’s platforms (Visual studio) … Modeling is the future … Bill Gates
  • 16.
    MDE@Microsoft Microsoftis releasing a suite of tools to make it easy to construct graphical designers hosted in Visual Studio for editing domain specific languages (DSL).
  • 17.
    Creating a Petrinet DSL Metamodel: a couple of logical and visual definitions
  • 18.
    Creating a Petrinet DSL Mapping on DotNet standard tools (C#, CLS, CLR, etc.) We are far from the initial OMG PIM/PSM naive separation However this is really MDE in 2005
  • 19.
    A first attemptto reverse engineer the DSL Metametamodel
  • 20.
    Microsoft DSI (DynamicSystem Initiative) March 2005 A system model captures an entire system's composition in terms of all interrelated software and hardware components. A system model captures knowledge as prescriptive configurations and best practices, allowing the effects of changes to the system to be tested before the changes are implemented. Administrators do not need to operate directly on real-world systems but rather can model changes before committing to them. In this way, “what if” scenarios can be tried without impact to a business. A system model becomes the point of coordination and consistency across administrators who have separate but interdependent responsibilities. System Definition Model is a language, or a meta-model, that is used to create models of distributed systems. A distributed system is a set of related software or software and hardware resources running on one or more computers that are working together to accomplish a common function
  • 21.
    The notion ofTS (Technology Space) as a tool for collaboration A Technology Space corresponds to : A uniform representation system Syntactic trees XML trees Sowa graphs UML graphs MOF graphs Categories Graph Grammars A working context A set of concepts A shared knowledge and know how etc. It is usually related to a given community with an established expertise, know-how and research problems It has a set of associated tools and practices, etc. Protégé, Rational Rose, … XML documentware MDA Modelware Corba C++ WWW etc. RDBMS Corba Ontologies Java Graph Theory OOBMS Linux Description logic Prolog Semantic WEB Grammarware
  • 22.
    Abstract Syntax SystemsCompared MOF The UML meta-Model A Specific UML Model A Specific phenomenon corresponding to a UML Model EBNF Pascal Language Grammar A specific Pascal Program A specific execution of a Pascal program Technology #2 (MOF + OCL) M 3 M 2 M 1 Technology #1 (formal grammars attribute grammars, etc.) etc .
  • 23.
    A technical spaceis organized around a set of concepts TSpaces may be connected via bridges TSpaces are often similarly organized But also… Program Grammar Data Schema Model Meta-Model Document Schema Ontology Top Level O. Syntax XML MDA DBMS Ontology engineering File FileFormat Drawing Stencil Model Meta-Model ToolFormat Tool Content Form FSMngt XML MDA Visio InfoPath
  • 24.
    Technical Spaces andWorking Contexts Technical Spaces Examples: MDE, MDA, MS/SF, EBNF, XML, DBMS, ontologies, etc. Conjecture: Each TS is represented by a metametamodel Each TS is organized in a 3 metalevel architecture Working contexts Local MM specific Global TS specific, MM independent Universal Across several TSs (extended MIME notation) Mof1.4/UML/mymodel MicrosoftDSL/PetriNet/MyNet ECORE/PetriNet/MyNet EBNF/Pascal/MyProg XML/MusicML/MyMusic M3/M2/M1
  • 25.
    Models revisited Everythingis a model A  -model  meaning any specific TSpace An XML document is an XML-model A Java source program is a Java-model An UML model is a MDA-model etc. Each TSpace is rooted in a metametamodel (M3) defining a representation scheme and basic type system. Distinguish between intra-space and inter-space operations
  • 26.
    Model transformation acrossTechnical Spaces There is a need for inter-TS model transformation. A TS B TS C TS D TS
  • 27.
  • 28.
    Some examples oftransformations Classical UML2Java UML2RDBMS But also tool to tool (more important) UML Activity Diagrams to MS Project
  • 29.
    The KM3 metamodel(simplified)
  • 30.
    KM3 definition ofthe KM3 metamodel package KM3 { abstract class ModelElement extends LocatedElement { attribute name : String; reference &quot;package&quot; : Package oppositeOf contents; } class Package extends ModelElement { reference contents[*] ordered container : ModelElement oppositeOf &quot;package&quot;; } class Classifier extends ModelElement {} class DataType extends Classifier {} class Class extends Classifier { attribute isAbstract : Boolean; reference supertypes[*] : Class; reference structuralFeatures[*] ordered container : StructuralFeature oppositeOf owner; } -- continued on next slide NOT XMI (Emfatic-like)
  • 31.
    Java to ExcelTransformation (call graph) public class SecondClass { public void sc_m1(){ FirstClass a = new FirstClass(); a.fc_m1(); } public void sc_m2(){ this.sc_m1(); } } public class FirstClass { public void fc_m1(){ } public void fc_m2(){ this.fc_m1(); this.fc_m1(); } } SecondClasss.java FirstClass.java
  • 32.
    Java and TableMetamodels
  • 33.
  • 34.
    Tool InteroperabilityTool interoperability Build a metamodel of each tool Write a transformation Two kinds of Metamodels Data stream oriented Event oriented AMMA ATL AMW AM3 ATP Tool X Tool Y
  • 35.
  • 36.
    What about thestability of MDA? Missing foundations may cause big problems ahead
  • 37.
    Just an academicissue anyway?
  • 38.
  • 39.
  • 40.
    The MDA metamuddle A very rapidly growing industrial application field since november 2000, … but … We badly need a unifying theory of models
  • 41.
    Credits and MDAcompliance Ontology engineering MDE Language engineering
  • 42.
    The &quot;representation&quot; relationrepOf System and System elements Model and Model elements Simple set interpretation of the repOf relation is probably as correct as simple set interpretation of the instanceOf relation in object technology. ?
  • 43.
    The &quot;conformance&quot; relationM 2 M 1 the MOF Class Association source destination M 3 c2 c2 c2 meta meta meta meta meta meta meta the UML MetaModel Class Attribute * 1 a UML Model Client Name : String metamodel model &quot;the real world&quot; meta-meta model The MOF The UML metamodel Some UML Models Various usages of these models M 0 M 1 M 2 M 3
  • 44.
    Summary: a PetriNet model arcPT arcTP outGo outGo inCom inCom outGo inCom inCom outGo outGo inCom conformsTo conformsTo conformsTo repOf System P2 P1 T1 Classical representation M1 M2 M3 Metametamodel Metamodel Model Node Place Place P1 Place P2 Node Trans Node Node Node Link Link arcPT Link arcTP Trans T1 Link inCom Link outGo Link meta meta
  • 45.
    <petrinet> <place name=“P1”/><place name=“P2”/> <transition name=“T1”/> <arcPT source=“P1” target=“T1”/> <arcTP source=“T1” target=“P2/> </petrinet> conformsTo conformsTo repOf System … <xs:element name=“place&quot;> <xs:complexType> <xs:attribute name=“name“ type=“xs:string&quot;/> </xs:complexType> </xs:element> … … <xs:element name=“element&quot;> <xs:complexType> <xs:attribute name=“name“ type=“xs:string&quot;/> … </xs:complexType> </xs:element> … conformsTo P2 P1 T1 Classical representation M1 M2 M3 Metametamodel: XML Schema for XML Schema Metamodel: a Petri Net XML Schema Model: an XML document meta
  • 46.
  • 47.
    AMMA: A LightweightArchitectural Style for for Generic Model Management Platforms ATLAS Model Management Architecture Build around a minimal set of sound principles Defines the conventions for the various connected tools to interoperate Lightweight : Not reinventing CORBA (Model-based interoperability and not Middelware-based interoperability) Four basic blocks: AMMA ATL AMW AM3 ATP M. Transformation M. Composition M. Global Management Inter TSpaces Bridge
  • 48.
    Atlas Model ManagementArchitecture Modeling in the small Working at the level of model and metamodel elements Modeling in the large Working with models and metamodels as global entities , for what they represent, and their mutual relations, independently of their content A megamodel is a model which elements represents models, metamodels and other global entities (ako model registry with metadata on models and metamodels). A megamodel has a metamodel.
  • 49.
    ATL: a modeltransformation language, engine and IDE ATL: a MOF/QVT like model transformation language For more info see: http://www.sciences.univ-nantes.fr/lina/atl/
  • 50.
    Model Transformation withATL conformsTo conformsTo conformsTo conformsTo conformsTo G 2 P Rule R 2 B Rule Ma Mb MMa Green Node Red Node MMb Blue Node Pink Node Metametamodel Node Node ATL Rule Node MMa2MMb.atl
  • 51.
    ATL editor (partof ATL Integrated Development Environment)
  • 52.
    ATL Development Tools:source-level debugger
  • 53.
    The standard OMGmodel transformation language ATL is a QVT-like language If QVT is the solution, then what was the problem?
  • 54.
    The Model Weaver: principles OperationPort mapsTo OperationType Left MM Weaving MM Right MM Stub MM Weaving model extends c2 - Fixed mapping metamodel s are not sufficient - We need su p port for extensible variable metamodels
  • 55.
    Model setof elements and associations Associations (intra model relationships) Model Composition (inter model relationships) Models E1 hasA references E2 E3 Model E1 E2 E3 Model 1 E1 E2 Model 2 isA E3 E4 isA E4 inherits Semantic defined in the metamodel Undefined line semantics
  • 56.
    Metamodel extensions Severalpossible mapping DSLs (Domain Specific Languages) Adding extra semantics Concatenation, foreign keys, nested, ordered, equals, containment, supplier/consumer, etc. E1 E2 E2 Model 1 E1 E2 Model 2 E3 E4 Equals Concat String
  • 57.
    AMW example: RDBMSto XML Semantics SQL schema represented in Ecore XML schema represented in Ecore
  • 58.
    Weaving metamodel Visualization (DSL tools and EMF)
  • 59.
    Weaving metamodel Minimalweaving metamodel links and correspondences extended to be used in different applications
  • 60.
    AM3: ATLAS MegaModelManagement Tool Megamodel: a model with elements corresponding to models, metamodels, services, tools and more generally to any global resource available in the scope of an AMMA session. A registry for model engineering resources as well as a metadata repository Megamodel with different metamodels Megamodels beyond typing systems MM M typeOf MM’ versionOf MM’ extensionOf Tool Service implements Parameter typeOf input output T M output intput etc.
  • 61.
    Representing zones withMegamodels ZoneA Megamodel MgA repOf Megamodel Metamodel c2 ZoneB Megamodel MgB repOf c2 Fred ATL Nantes Ivan Mistral Enschede
  • 62.
    Representing zones withMegamodels ZoneA Megamodel MgA repOf ZoneB Megamodel MgB  MgC repOf ZoneC Megamodel Metamodel c2 c2 ZoneBC
  • 63.
    Initial Metamodel Proposalfor AMMA Megamodel Components
  • 64.
    Megamodel Resource Navigator for model components Technology Preview
  • 65.
    ATP: TS andprojectors TSpace #1 MDA TSpace #2 EBNF TSpace #3 XML TSpace #4 SQL π 1 π 3 π 2 Java Corba SVG NLP, etc. XMI JMI CMI etc. ATLAS Technical Projectors MS/Office Simulink Matlab etc. model mmodel grammar program document XMLschema dataSchema data
  • 66.
    Examples of projectionsfrom ME to XML and EBNF TSs XML TS ME TS EBNF TS MOF MMa Ma EBNF KM3.g MMa.km3 XSD MMa.xsd Ma.xmi XMI KM3 M3 M2 M1
  • 67.
    Conclusions Transformations aremodels Weavings (correspondences) are models Megamodels are models (meta-)Models everywhere A file format A tool internal data A Visio stencil An Infopath Form An API etc. Pragmatics of model transformation are important EMF and MS/DSL may be considered as two TSpaces, based on different M3
  • 68.
    Conclusions: AMMAon top of Eclipse and MS/DSL tools ATL MTF KM3 Emfatic etc. etc. Eclipse EMF AMMA Visual Studio Team System AMMA
  • 69.
    How adaptable isMDA? MDA™ already evolved a lot in the last five years. MDA will have to evolve much more rapidly in the near future if OMG wants to meet the real needs of the user community. Strong competition will be coming from other technical spaces like XML, Microsoft DSLs, EMF, etc. End users are no more accepting huge, approximatively defined and committee-driven standards; they are asking for an available, adapted and agile set of small standards similar to XML. If MDA does not evolve rapidly, it will become one small niche in the MDE landscape; it will be quoted as the first historical one; many competing families of model engineering technologies will emerge and develop. What is important is assessing the basic principles of MDE; The decisions of OMG, W3C, OASIS, Microsoft, IBM and others on how to map these principles on implementation frameworks (e.g. Java, C#, XML, etc.) or on paper recommendations is only the responsibility of these organizations; the end user will be the final judge.
  • 70.
    Thanks Questions? Comments?http://www.sciences.univ-nantes.fr/lina/atl/