Upload
fred
View
47
Download
0
Embed Size (px)
DESCRIPTION
Ingénierie des modèles : des principes aux outils Jean Bézivin & Marcos Didonet del Fabro [Jean.Bezivin|Marcos.Didonet]{noSpamAt}univ-nantes.fr ATLAS Group (INRIA & LINA), University of Nantes, France http://www.sciences.univ-nantes.fr/lina/atl/. Schedule. Model Driven Engineering: - PowerPoint PPT Presentation
Citation preview
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Ingénierie des modèles :Ingénierie des modèles :des principes aux outilsdes principes aux outils
Jean Bézivin & Marcos Didonet del Fabro[Jean.Bezivin|Marcos.Didonet]{noSpamAt}univ-nantes.fr
ATLAS Group (INRIA & LINA),University of Nantes, France
http://www.sciences.univ-nantes.fr/lina/atl/
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Schedule
• Model Driven Engineering:Model Driven Engineering:– Scope & ApplicabilityScope & Applicability– PrinciplesPrinciples– Deployment (AMMA)Deployment (AMMA)
• An example of MDE toolAn example of MDE tool– The ATLAS Model WeaverThe ATLAS Model Weaver
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
The playground
Pri
ncip
les
Pri
ncip
les
Sta
nd
ard
sS
tan
dard
s
Tools
Tools
TeachingTeaching
sNets, 1990
UML, 1995
today, AMMA
MOF, 2000
tomorrow
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Principles, standards and tools
Model-Driven Engineering (MDE)
MDA™ Model-DrivenArchitecture
(OMG)
EclipseEMFGMF
MIC Model
IntegratedComputing
GME
SoftwareFactories
(MS)
MicrosoftVisual StudioTeam system
DSL Tools
OtherStandards
OtherTools
Principles
Standards
Tools
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
IBM on MDA : Three complementary ideas
1.Direct representation 2.Automation 3.Standards
Direct representation => multiple languagesDanger of fragmentation
Need coordinationHow to coordinate?
Short answer: metametamodelBut what is a metametamodel?
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Agenda
Scope & Applicability
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
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)
• Technology spaces or why MDE is not sufficient
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
The initial move: from Middleware to Modelware
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Latest tentative to define MDA
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Steve Cook (OOPSLA 2004 panel)
Suggests that MDA proponents fall into the following three camps:
1. 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.
2. 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.
3. 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
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
OMG Proposal
metamodel
model
"the real world"
meta-metamodel
The MOF(Meta Object Facility)
The UML and a collection of metamodels
Some UML and other models.
Various usagesof these models
M0
M1
M2
M3
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
MDA in a nutshell : PSM = f(PIM)
U n i v e r s i t é d e N A N T E S
M 1 , M 2 & M 3 s p a c e s
M 3
M 2
M 1
M 2
M 1
M 2
M 1 M 1M 1
- 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
M1
M2
M3
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
The initial MDA conjecture : PSM = f(PIM)
PIMs(PlatformIndependentModels)
PSMs(PlatformSpecificModels)
MMerging phase
PDMs(PlatformDescriptionModels)
?weaving
PSM branch
PDM branchPIM branch
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Two missing links in the OMG architecture
PSM = f(PIM, PDM)or after currying:PSM = fPDM(PIM)
PIM PDM
PSM“numeric” values:PDM = DotNetPDM = EJB
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
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
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
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).
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Creating the Petri net DSL (Hillairet-Piers project)
Petri metamodel
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Creating the Petri net DSL (Hillairet-Piers project)
On lance un nouveau projet DSL.
On choisit le template Blank Language pour commencer notre métamodèle.
On nomme notre projet ReseaudePetri.
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Creating the Petri net DSL (Hillairet-Piers project)
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Creating the Petri net DSL (Hillairet-Piers project)
Une fois le métamodèle totalement défini, on effectue les opération suivantes
Generate all code : génère le code C# qui va être utilisé par l’éditeur de modèle, il est généré à partir des fichiers .dmd et .dd.
Build solution : compilation du code généré.
Start : lancement de l’éditeur de modèles.
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Creating the Petri net DSL (Hillairet-Piers project)
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Multiple technical spaces
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
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, …
CorbaC++
WWW
XMLdocumentware
etc.
RDBMS
Corba
Ontologies
Java
Graph Theory
MDAModelware
OOBMS
Linux
Description logic Prolog
Semantic WEB Grammarware
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Abstract Syntax Systems Compared
MOF
The UMLmeta-Model
A SpecificUML Model
A Specificphenomenon
corresponding toa UML Model
EBNF
Pascal LanguageGrammar
A specificPascal Program
A specificexecution
of a Pascal program
Technology #2(MOF + OCL)
Technology #3(XML Meta-Language)
M3
M2
M1
Technology #4(Ontology engineering)
Technology #1(formal grammars
attribute grammars,etc.)
etc.
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
A technical space is organized around a set of conceptsSpaces may be connected via bridgesSpaces are often similarly organized
Program
Grammar
Data
Schema
Model
Meta-Model
Document
Schema
Ontology
Top Level O.
Syntax XML
MDA
DBMS Ontologyengineering
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
But also: UML MM ~ Visio Stencil
Program
Grammar
Drawing
Stencil
Model
Meta-Model
Document
Schema
Content
FORM
Syntax XML
MDA
Visio InfoPath
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
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 defining a representation scheme and basic type system.
• Distinguish between intra-space and inter-space operations
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
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
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Agenda
Applicability
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Some examples of transformations
• Classical– UML2Java– UML2RDBMS
• But also tool to tool (more important)– UML Activity Diagrams to MS Project
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
The KM3 metamodel*
+name : String
ModelElement
Package
+package 1
+contents
*
Classifier
DataType
+isAbstract : Boolean
Class
+supertypes
*
+lower : Integer+upper : Integer+isOrdered : Boolean+isUnique : Boolean
StructuralFeature
Attribute
+isContainer : Boolean
Reference
+opposite
0..1
+owner
1
+structuralFeatures
*
+type
1
*The KM3 metamodel used in this presentation has been simplified.However, it still contains enough concepts to be usable.
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
KM3 definition of the KM3 metamodelpackage 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
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Java to Excel Transformation (call graph)
FirstClass.java SecondClasss.java
public class FirstClass {public void fc_m1(){}public void fc_m2(){
this.fc_m1();this.fc_m1();
}}
public class SecondClass {public void sc_m1(){
FirstClass a = new FirstClass();
a.fc_m1();}public void sc_m2(){
this.sc_m1();}
}
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Java and Table Metamodels
JavaSource
+name
NamedElement
ClassDeclaration
MethodDefinition MethodInvocation
1
+classes*
0..1 +invocations *
+class0..1
+methods*
1
+method
*
Table
Row
+content
Cell
1
+rows*
1
+cells
*
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
UMLDI2SVG
Semantic Preserving Transformation?
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Tool Interoperability
• Tool interoperability
• Build a metamodel of each tool
• Write a transformation
• Two kinds of Metamodels
• Data stream oriented
• Event orientedAMMA
AMMA
ATLATL
AMWAMW
AM3AM3 ATP
ATP
Tool X Tool Y
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Agenda
Principles
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
What about the stability of MDA?
• Missing foundations may cause big problems ahead
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Just an academic issue anyway?
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Enter the "metamuddle"
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Model of a model
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
The MDA metamuddle
• A very rapidly growing industrial application field since november 2000,
• … but …
• We badly need a unifying theory of models
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Credits and MDA compliance
Languageengineering
Ontologyengineering
MDE
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
The "representation" relation
repOf
System and System elements Model and Model elements
Simple set interpretation of the repOf relationis probably as correct as simple set interpretationof the instanceOf relation in object technology.
?
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
the UML MetaModel
Class Attribute*
1
a UML Model
Client
Name : String
The "conformance" relation
M2
M1
the MOF
Class Association
source
destination
M3
c2
c2
c2
metameta meta
metameta
metamodel
model
"the real world"
meta-metamodel
The MOF
The UML metamodel
Some UML Models
Various usagesof these modelsM0
M1
M2
M3
meta
meta
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Research agenda: Everything is a model
• What is a model?– A model is a representation of a system– A model is written in the language of its unique
metamodel– A metamodel is written in the language of its
unique metametamodel• The unique MMM of the MDA is the MOF• MS/DSLTools has an implicit MMM
– A model is a constrained directed labeled graph – A model may have a visual representation
• Where do models come from?• What are the various kinds of models?
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Transformations as models (QVT)
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Uniform access to models and metamodels
Ma Mt Mb
TransformationEngine
MMa MMt MMb
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Summary
• The definition of a model is TSpace-dependent• Generally a model is a graph• Which kind of graph is defined by the
metametamodel (M3) of the technical space.– For MOF-models it is non oriented graphs with labeled end
of edges– For ECORE-models it is slightly different– For Microsoft-DSL-models it is completely different
• It is thus possible to cope with different M3– Then it will be important to distinguish between M2 level
transformations and M3 level transformations
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Agenda
Deployment
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
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:
AMMAAMMA
ATLATL AMWAMW AM3AM3 ATPATP
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
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.
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
ATL: a model transformation language, engine and IDE
• ATL: a MOF/QVT compliant model transformation language
• For more info see: http://www.sciences.univ-nantes.fr/lina/atl/
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
ATL editor (part of ATL Integrated Development Environment)
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
The standard OMG model transformation language
ATL is a QVT-like language
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
The Model Weaver: principles
OperationPort mapsTo OperationType
Left MM Weaving MM Right MM
Stub MM
Weaving model
extends
c2- Fixed mapping metamodelsare not sufficient
- We need support forextensible variable metamodels
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
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
TM
output
intputetc.
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Some fragments of the Megamodel’s Metamodel
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Initial Metamodel Proposal for AMMA Megamodel Components
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Megamodel Resource Navigator for model components
• Extension of Resource View• According to metadata, tools may be
available for an element
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
ATP: TS and projectors
TSpace #1 MDA
TSpace #2 EBNF
TSpace #3 XML
TSpace #4 SQLπ1
π3
π2 JavaCorbaSVGNLP,etc.
XMIJMICMIetc.
model
mmodel
grammar
program
document
XMLschema
dataSchema
data
ATLASTechnicalProjectors
MS/OfficeSimulinkMatlabetc.
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Conclusions: AMMA on top of Eclipse and MS/DSL tools
Eclipse
EMF
AMMA
Visual Studio
Team System
AMMA
Eclipse
EMF
ATL IDE
ATL engine ATP
AM3 AMW
Eclipse
EMF
ATL IDE
ATL engineATL engine ATPATP
AM3 AMWATL MTF
KM3 Emfatic
etc. etc.
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
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
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
ATLAS Model WeaverATLAS Model WeaverUsing weaving to define generic model correspondencesUsing weaving to define generic model correspondences
Marcos Didonet Del Fabromarcos.didonet-del-fabro @ univ-nantes.fr
PhD student (2004 - 07)Supervisors: Jean Bézivin and Patrick Valduriez
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Overview
• Model weaving – Models– Use cases
• Data mapping– Weaving as models
• Model Weaver workbench– Common weaving core– Representations
• DSL Tools, Eclipse EMF
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
• Model – set of elements and associations
• Associations (intra model relationships)
– Correspondences (inter model relationships)
Models
E1hasA
references
E2
E3
Model
E1 E2
E3
Model 1
E1 E2
Model 2
isA
E3 E4isA
E4
inherits Semantic defined in the metamodel
Semantics undefined
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Model weaving
• Model weaving– Establishes correspondences with semantics
• Use cases– Transformation specifications– Data exchange– Heterogeneous data integration – Schema integration
Library (RDBMS)Books
ISBNTitleAuthorIDPublisher
AuthorAIDName
Library (XML)Books
ISBNTitlePublisherIDAuthors AID Name
PublisherPIDName
Data mapping
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Data mapping today
• SQL- View integration- SQL statements- SQL-like queries- Matching algorithms (SemInt,
Similarity Flooding, etc)
• XSLT
• Ontology mapping– Ontology bridges– Ontologies for business integration
• Generic model management– Morphisms
• Model weaving– Creates a weaving model
Requirements:
Expressiveness,Performance,Adaptability,Matching, …
Application X: which is the most adapted solution?
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
• Use of same model management primitives!– Add, delete, update, navigation.
• Expressiveness – Attach semantics – Foreign keys, nested constraints, ordering, etc.
• Hard to express with 1-1 correspondences
Weaving as models
Library (RDBMS)Books
ISBNTitleSubjectIDPublisher
SubjectsSIDDescription
Library (XML)Books
ISBNTitlePublisherIDSubjects SID Description
PublisherPIDName
Weavingmodel
FKConstraint
NestedConstraint
New ID
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
• Performance– Weaving (mapping) definition, not execution
• Same weaving to produce: – ATL –> model transformation language– XSLT –> XML– SQL –> relational databases– Morphisms -> generic model management– etc.
• Adaptability• Minimal metamodel + extensions• Matching based extensions
Weaving as models
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Weaving metamodel
• Minimal weaving metamodel– links and correspondences– extended to be used in different applications
-name : String-description : String
WElement
WModel-ref : StringWRef
WLinkEndWModelRef WElementRef
WLink
mod
el
ownedElement (1-*)
ownedElementRef(0-*)modelRef
end (1-*)
link
element
parent
child
(0-*
)
wovenModel (1-*)
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Metamodel extensions
• Several mapping DSLs (Domain Specific Languages)
• Adding extra semantics– Concatenation, foreign keys, nested, ordered, equals,
containment,supplier/consumer, etc.
• Weaving model + ( 1 – N ) woven models
E1
E2
E2
Model 1
E1 E2
Model 2
E3 E4
Equals
Concat
String
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Model weaving implementation
• DSL tools, Eclipse EMF– DSL metametamodel
• Concepts, role, relationships• Object model (a single .dmd file)
– EMF metametamodel• Ecore
• EMF Injectors <-> DSL Tool Extractor• DSL Tool Injector <-> EMF Extractor
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Textual representation weaver.dmd and mwcore.ecore
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Weaving metamodel Visualization (DSL tools and EMF)
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
AMW example: RDBMS to XML
• Metamodel extensions
Extension de base:correspondences,models, links
Extension DBMXML:FK, nested, equals
Weaving metamodel represented in KM3
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
AMW example: RDBMS to XML
Semantics
SQL schema represented in Ecore
XML schema represented in Ecore
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Same weaving, many representations ATL and XSLT
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
ATL XMI and ATL text
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
XSLT Ecore and XSLT text
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
AMW example result
IN: RDBMS representation in XMI
<?xml version="1.0" encoding="UTF-8"?><Root:Database xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
xmlns:Root="http://relationalMetaSchema.ecore" xmi:id="Database1">
<books xmi:id="Books6"> <bookRcds xmi:id="BookRcd7"
ISBN="4455:33446:FR" Title="Model Weaving" Author="Myself"
SID="1"/> <bookRcds xmi:id="BookRcd8"
ISBN="44:55:66:US" Title="Data mapping" Author="Ralf"
SID="2"/> </books></Root:Database>
<subjects xmi:id="Subjects2"> <subjectRcd xmi:id="SubjectRcd3" SID="1"
Description="MDD"/> <subjectRcd xmi:id="SubjectRcd4" SID="2"
Description="Data mapping"/> <subjectRcd xmi:id="SubjectRcd5" SID="3"
Description="Computer Science"/> </subjects>
OUT: XML document
<?xml version="1.0" encoding="ASCII"?><Root:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
xmlns:Root="Root">
<books ISBN="4455:33446:FR" Title="Model Weaving" Author="Myself">
<subjects SubjectID="1" Description="MDD"/> </books>
<books ISBN="44:55:66:US" Title="Data mapping" Author="Ralf"> <subjects SubjectID="2" Description="Data mapping"/> </books></Root:Root>
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Conclusion
MOF ECore MMM/MS/DSLM3
M2
M1
Eclipse
EMF/GMF
AMMA
Visual Studio
Team System
AMMA
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
A first attempt to reverse engineer the DSL Metametamodel
©2005 ATLAS NantesJournées Académiques Microsoft 2005 - Paris
Thanks
Questions?Comments?
http://www.sciences.univ-nantes.fr/lina/atl/