SlideShare a Scribd company logo
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/

More Related Content

PDF
Modular Enterprise Systems - An Introduction
PPTX
Developing Modeling Tool for RM-ODP with Eclipse Sirius
PPTX
Introduction to Business Modeling
PPT
26 standards
PDF
Model Driven Architecture (MDA): Motivations, Status & Future
PDF
Software Architecture: views and viewpoints
Modular Enterprise Systems - An Introduction
Developing Modeling Tool for RM-ODP with Eclipse Sirius
Introduction to Business Modeling
26 standards
Model Driven Architecture (MDA): Motivations, Status & Future
Software Architecture: views and viewpoints

What's hot (20)

DOCX
MDD and modeling tools research
PDF
2 trasnformation design_patterns-sandeep_katoch
 
PPT
Introduction to MDA
PDF
6 - Architetture Software - Model transformation
PDF
5 - Architetture Software - Metamodelling and the Model Driven Architecture
PDF
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
PDF
A Review of Feature Model Position in the Software Product Line and Its Extra...
PPTX
Adopting a Canonical Data Model - how to apply to an existing environment wit...
PDF
[2015/2016] Introduction to software architecture
PPT
Web technologies: Model Driven Engineering
PDF
Topcased
PPTX
Migration from IBM DOORS 9 to DOORS Next Generation
PPT
Gk1051 001 j2-ee_arch_tt425v1.1
PPTX
DOC
Giorgio Bragoli's Voss CV
PPTX
Creational Patterns
PPTX
Model driven architecture
PPTX
Lightweight Model-Driven Engineering
PDF
[2016/2017] Introduction to Software Architecture
PDF
programacion orientado a abjetos poo
MDD and modeling tools research
2 trasnformation design_patterns-sandeep_katoch
 
Introduction to MDA
6 - Architetture Software - Model transformation
5 - Architetture Software - Metamodelling and the Model Driven Architecture
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
A Review of Feature Model Position in the Software Product Line and Its Extra...
Adopting a Canonical Data Model - how to apply to an existing environment wit...
[2015/2016] Introduction to software architecture
Web technologies: Model Driven Engineering
Topcased
Migration from IBM DOORS 9 to DOORS Next Generation
Gk1051 001 j2-ee_arch_tt425v1.1
Giorgio Bragoli's Voss CV
Creational Patterns
Model driven architecture
Lightweight Model-Driven Engineering
[2016/2017] Introduction to Software Architecture
programacion orientado a abjetos poo
Ad

Similar to ALT (20)

PPT
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
PPTX
PDF
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
PPT
Pragmatic Model Driven Development using openArchitectureWare
PPT
ERP_Up_Down.ppt
PPT
Uml introduction
PPT
Apostila UML
PPTX
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
PPT
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
PPTX
Spy On Your Models, Standard talk at EclipseCon 2011
PPT
Educating in MDE
ODP
Modeling With Eclipse @SoftShake 2011
PPT
xUMLFinalPresentation.ppt
PDF
SADP PPTs of all modules - Shanthi D.L.pdf
PPT
MDA with Executable UML
PPT
EclipseCon 2007: Effective Use of the Eclipse Modeling Framework
PDF
SodiusCassidianmdday2010 101129081449-phpapp02
PPT
UML01
PPT
Model Driven Architecture and eXecutable UML
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSE
Pragmatic Model Driven Development using openArchitectureWare
ERP_Up_Down.ppt
Uml introduction
Apostila UML
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Spy On Your Models, Standard talk at EclipseCon 2011
Educating in MDE
Modeling With Eclipse @SoftShake 2011
xUMLFinalPresentation.ppt
SADP PPTs of all modules - Shanthi D.L.pdf
MDA with Executable UML
EclipseCon 2007: Effective Use of the Eclipse Modeling Framework
SodiusCassidianmdday2010 101129081449-phpapp02
UML01
Model Driven Architecture and eXecutable UML
Ad

Recently uploaded (20)

PPTX
TLE Review Electricity (Electricity).pptx
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Approach and Philosophy of On baking technology
PDF
project resource management chapter-09.pdf
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
A Presentation on Artificial Intelligence
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
Hybrid model detection and classification of lung cancer
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Assigned Numbers - 2025 - Bluetooth® Document
TLE Review Electricity (Electricity).pptx
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
A comparative study of natural language inference in Swahili using monolingua...
Approach and Philosophy of On baking technology
project resource management chapter-09.pdf
Univ-Connecticut-ChatGPT-Presentaion.pdf
Accuracy of neural networks in brain wave diagnosis of schizophrenia
SOPHOS-XG Firewall Administrator PPT.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
A Presentation on Artificial Intelligence
A novel scalable deep ensemble learning framework for big data classification...
Hybrid model detection and classification of lung cancer
MIND Revenue Release Quarter 2 2025 Press Release
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Programs and apps: productivity, graphics, security and other tools
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Enhancing emotion recognition model for a student engagement use case through...
NewMind AI Weekly Chronicles - August'25-Week II
Assigned Numbers - 2025 - Bluetooth® Document

ALT

  • 1. 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/
  • 2. Model Driven Engineering Schedule Scope & Applicability Principles Deployment (AMMA) Credits Modelware Microsoft IBM TNI Sodifrance
  • 3. 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
  • 4. The playground Principles Standards Tools Teaching sNets, 1990 UML, 1995 today, AMMA MOF, 2000 tomorrow
  • 5. 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
  • 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?
  • 8. 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?
  • 9. The initial move: from Middleware to Modelware
  • 10. Latest tentative to define MDA
  • 11. 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
  • 12. 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
  • 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 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
  • 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 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).
  • 17. Creating a Petri net DSL Metamodel: a couple of logical and visual definitions
  • 18. 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
  • 19. A first attempt to reverse engineer the DSL Metametamodel
  • 20. 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
  • 21. 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
  • 22. 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 .
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. Model transformation across Technical Spaces There is a need for inter-TS model transformation. A TS B TS C TS D TS
  • 28. Some examples of transformations Classical UML2Java UML2RDBMS But also tool to tool (more important) UML Activity Diagrams to MS Project
  • 29. The KM3 metamodel (simplified)
  • 30. KM3 definition of the 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 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
  • 32. Java and Table Metamodels
  • 34. 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
  • 36. What about the stability of MDA? Missing foundations may cause big problems ahead
  • 37. Just an academic issue anyway?
  • 39. Model of a model
  • 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 MDA compliance Ontology engineering MDE Language engineering
  • 42. The &quot;representation&quot; 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. ?
  • 43. The &quot;conformance&quot; 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 &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 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
  • 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
  • 47. 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
  • 48. 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.
  • 49. 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/
  • 50. 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
  • 51. ATL editor (part of ATL Integrated Development Environment)
  • 52. ATL Development Tools: source-level debugger
  • 53. The standard OMG model 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 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
  • 56. 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
  • 57. AMW example: RDBMS to XML Semantics SQL schema represented in Ecore XML schema represented in Ecore
  • 58. Weaving metamodel Visualization (DSL tools and EMF)
  • 59. Weaving metamodel Minimal weaving metamodel links and correspondences extended to be used in different applications
  • 60. 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.
  • 61. Representing zones with Megamodels ZoneA Megamodel MgA repOf Megamodel Metamodel c2 ZoneB Megamodel MgB repOf c2 Fred ATL Nantes Ivan Mistral Enschede
  • 62. Representing zones with Megamodels ZoneA Megamodel MgA repOf ZoneB Megamodel MgB  MgC repOf ZoneC Megamodel Metamodel c2 c2 ZoneBC
  • 63. Initial Metamodel Proposal for AMMA Megamodel Components
  • 64. Megamodel Resource Navigator for model components Technology Preview
  • 65. 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
  • 66. 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
  • 67. 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
  • 68. Conclusions: AMMA on top of Eclipse and MS/DSL tools ATL MTF KM3 Emfatic etc. etc. Eclipse EMF AMMA Visual Studio Team System AMMA
  • 69. 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.
  • 70. Thanks Questions? Comments? http://www.sciences.univ-nantes.fr/lina/atl/