SlideShare ist ein Scribd-Unternehmen logo
1 von 70
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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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   ,[object Object],[object Object],[object Object],Direct representation => multiple languages Danger of fragmentation Need coordination How to coordinate? Short answer: metametamodel But what is a metametamodel?
Agenda ,[object Object]
Introduction ,[object Object],[object Object],[object Object],EMF?
The initial move: from Middleware to Modelware
Latest tentative to define MDA
Steve Cook (OOPSLA 2004 panel) ,[object Object],[object Object],[object Object],[object Object],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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MDE@Microsoft  ,[object Object]
Creating a Petri net DSL Metamodel: a couple of logical and visual definitions
Creating a Petri net DSL ,[object Object],[object Object],[object Object]
A first attempt to reverse engineer the  DSL Metametamodel
Microsoft DSI (Dynamic System Initiative) March 2005 ,[object Object],[object Object],[object Object],[object Object],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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Models revisited ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Model transformation across Technical Spaces ,[object Object],A TS B TS C TS D TS
Agenda ,[object Object]
Some examples of transformations ,[object Object],[object Object],[object Object],[object Object],[object Object]
The KM3 metamodel (simplified)
KM3 definition of the KM3 metamodel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],AMMA ATL AMW AM3 ATP Tool X Tool Y
Agenda ,[object Object]
What about the stability of MDA? ,[object Object]
Just an academic issue anyway?
Enter the "metamuddle"
Model of a model
The  MDA  metamuddle ,[object Object],[object Object],[object Object]
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 ,[object Object]
AMMA: A Lightweight Architectural Style for  for Generic Model Management Platforms ,[object Object],[object Object],[object Object],[object Object],[object Object],AMMA ATL AMW AM3 ATP M. Transformation M. Composition M. Global Management Inter TSpaces Bridge
Atlas Model Management Architecture ,[object Object],[object Object],[object Object],[object Object],[object Object]
ATL: a model transformation language, engine and IDE  ,[object Object],[object Object]
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
[object Object],[object Object],[object Object],[object Object],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 ,[object Object],[object Object],[object Object],[object Object],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 ,[object Object],[object Object],[object Object]
AM3: ATLAS MegaModel Management Tool ,[object Object],[object Object],[object Object],[object Object],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 ,[object Object]
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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thanks ,[object Object],[object Object],http://www.sciences.univ-nantes.fr/lina/atl/

Weitere ähnliche Inhalte

Was ist angesagt?

2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch
IBM
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
Majong DevJfu
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
Majong DevJfu
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
Piero Fraternali
 
Gk1051 001 j2-ee_arch_tt425v1.1
Gk1051 001 j2-ee_arch_tt425v1.1Gk1051 001 j2-ee_arch_tt425v1.1
Gk1051 001 j2-ee_arch_tt425v1.1
vciampa
 
Giorgio Bragoli's Voss CV
Giorgio Bragoli's Voss CVGiorgio Bragoli's Voss CV
Giorgio Bragoli's Voss CV
Giorgio Bragoli
 
programacion orientado a abjetos poo
programacion orientado a abjetos pooprogramacion orientado a abjetos poo
programacion orientado a abjetos poo
Rasec De La Cruz
 

Was ist angesagt? (20)

MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
 
2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch
 
Introduction to MDA
Introduction to MDAIntroduction to MDA
Introduction to MDA
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
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...
A Review of Feature Model Position in the Software Product Line and Its Extra...A Review of Feature Model Position in the Software Product Line and Its Extra...
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...
Adopting a Canonical Data Model - how to apply to an existing environment wit...Adopting a Canonical Data Model - how to apply to an existing environment wit...
Adopting a Canonical Data Model - how to apply to an existing environment wit...
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
 
Topcased
TopcasedTopcased
Topcased
 
Migration from IBM DOORS 9 to DOORS Next Generation
Migration from IBM DOORS 9 to DOORS Next GenerationMigration from IBM DOORS 9 to DOORS Next Generation
Migration from IBM DOORS 9 to DOORS Next Generation
 
Gk1051 001 j2-ee_arch_tt425v1.1
Gk1051 001 j2-ee_arch_tt425v1.1Gk1051 001 j2-ee_arch_tt425v1.1
Gk1051 001 j2-ee_arch_tt425v1.1
 
Sda 9
Sda   9Sda   9
Sda 9
 
Giorgio Bragoli's Voss CV
Giorgio Bragoli's Voss CVGiorgio Bragoli's Voss CV
Giorgio Bragoli's Voss CV
 
Creational Patterns
Creational PatternsCreational Patterns
Creational Patterns
 
Model driven architecture
Model driven architectureModel driven architecture
Model driven architecture
 
Lightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringLightweight Model-Driven Engineering
Lightweight Model-Driven Engineering
 
[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture
 
programacion orientado a abjetos poo
programacion orientado a abjetos pooprogramacion orientado a abjetos poo
programacion orientado a abjetos poo
 

Ähnlich wie ALT

Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011
Hugo Bruneliere
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
B.T.L.I.T
 
Model Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLModel Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UML
elliando dias
 

Ähnlich wie ALT (20)

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

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Kürzlich hochgeladen (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

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.
  • 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.
  • 7.
  • 8.
  • 9. The initial move: from Middleware to Modelware
  • 10. Latest tentative to define MDA
  • 11.
  • 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.
  • 16.
  • 17. Creating a Petri net DSL Metamodel: a couple of logical and visual definitions
  • 18.
  • 19. A first attempt to reverse engineer the DSL Metametamodel
  • 20.
  • 21.
  • 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.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. The KM3 metamodel (simplified)
  • 30.
  • 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.
  • 35.
  • 36.
  • 37. Just an academic issue anyway?
  • 39. Model of a model
  • 40.
  • 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
  • 46.
  • 47.
  • 48.
  • 49.
  • 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.
  • 56.
  • 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.
  • 60.
  • 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.
  • 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.
  • 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.
  • 70.