Transcript Document

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/
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Model Driven Engineering
• Schedule
– Scope & Applicability
– Principles
– Deployment (AMMA)
• Credits
–
–
–
–
–
Modelware
Microsoft
IBM
TNI
Sodifrance
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Basic entities
Technical Space: a representation
system for models and a set of technical
solutions to handle them.
Technical Space
System: a group of interacting,
interrelated, or interdependent
elements forming a complex
whole.
System
repOf
Model
Model: an abstract
representation of a system
created for a specific purpose.
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
The playground
MOF, 2000
today, AMMA
Tools
UML, 1995
Standards
Principles
sNets, 1990
tomorrow
Teaching
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Principles, standards and tools
Principles
Model-Driven Engineering (MDE)
Standards
MDA™
Model-Driven
Architecture
(OMG)
Tools
Eclipse
EMF
GMF
MIC
Model
Integrated
Computing
GME
Software
Factories
(MS)
Other
Standards
Microsoft
Visual Studio
Team system
DSL Tools
Other
Tools
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
IBM on MDA : Three complementary ideas
1.Direct representation
2.Automation
3.Standards
Direct representation => multiple languages
Danger of fragmentation
Need coordination
How to coordinate?
Short answer: metametamodel
But what is a metametamodel?
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Agenda
Scope
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
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?
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
The initial move: from Middleware to Modelware
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Latest tentative to define MDA
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
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
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
MDA in a nutshell : PSM = f(PIM)
M1, M2 & M3 spaces
M3
M2
M1
M1
M2
M1
M3
M2
M1
M1
- One
unique
Metametamodel (the MOF)
Université
de NANTES
- An important library of compatible Metamodels,
each defining a DSL
- Each of the models
is defined in the language of its unique metamodel
M2
M1
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
The initial MDA conjecture : PSM = f(PIM)
PIM branch
PIMs
(Platform
Independent
Models)
Merging phase
PDM branch
weaving
?
M
PSMs
(Platform
Specific
Models)
PDMs
(Platform
Description
Models)
PSM branch
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Two missing links in the OMG architecture
PIM
PDM
PSM = f(PIM, PDM)
or after currying:
PSM = fPDM(PIM)
PSM
“numeric” values:
PDM = DotNet
PDM = EJB
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
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
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
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).
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Creating a Petri net DSL
Metamodel: a couple of
logical and visual definitions
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
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
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
A first attempt to reverse engineer the DSL Metametamodel
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Microsoft DSI (Dynamic System Initiative) March 2005
System Definition Model
• A system model captures an entire
is a language, or a meta-model, that
system's composition in terms of all
is used to create models of
interrelated software and hardware
components.
distributed systems. A distributed
system model captures knowledge
system is a set of related software • A
as prescriptive configurations and
or software and hardware
best practices, allowing the effects
of changes to the system to be
resources running on one or more
tested before the changes are
computers that are working
implemented.
together to accomplish a common
• Administrators do not need to
operate directly on real-world
function
•
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.
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
The notion of TS (Technology Space) as a tool for collaboration
•
Description
logic
A Technology Space corresponds
to:
Java
– A uniform representation system
•
•
–
–
–
–
•
•
•
•
•
•
•
Syntactic trees
XML trees
Sowa graphs
UML graphs
MOF graphs
Categories
Graph Grammars
Prolog
C++
Corba
XML
documentware
WWW
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.
Corba
MDA
Modelware
Ontologies
Linux
RDBMS
Graph Theory
OOBMS
– Protégé, Rational Rose, …
Semantic WEB
Grammarware
How Adaptable is MDA? CTIT Symposium, University of Twente
etc.
©2005 ATLAS Nantes
Abstract Syntax Systems Compared
Technology #1 Technology #2
(formal grammars (MOF + OCL)
attribute grammars,
etc.)
M3
EBNF
MOF
M2
Pascal Language
Grammar
The UML
meta-Model
M1
A specific
Pascal Program
A Specific
UML Model
A specific
execution
of a Pascal
program
A Specific
phenomenon
corresponding to
a UML Model
etc.
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
A technical space is organized around a set of concepts
TSpaces may be connected via bridges
TSpaces are often similarly organized
Grammar
Schema
Syntax
XML
Program
Document
Meta-Model
FileFormat
MDA
FSMngt
Model
Schema
DBMS
Data
Tool
Top Level O.
XML
File
Ontology
engineering
ToolFormat
Meta-Model
Ontology
MDA
Model
But also…
Stencil
Visio
Drawing
How Adaptable is MDA? CTIT Symposium, University of Twente
Form
InfoPath
Content
©2005 ATLAS Nantes
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
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
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
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Model transformation across Technical Spaces
A TS
B TS
C TS
D TS
• There is a need for inter-TS model transformation.
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Agenda
Applicability
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Some examples of transformations
• Classical
– UML2Java
– UML2RDBMS
• But also tool to tool (more important)
– UML Activity Diagrams to MS Project
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
The KM3 metamodel (simplified)
+contents
ModelElement
+name : String
*
+package
1
Package
Classifier
+type
StructuralFeature
1
+structuralFeatures
DataType
Class
*
*
+owner
+isAbstract : Boolean
1
+supertypes
+lower : Integer
+upper : Integer
+isOrdered : Boolean
+isUnique : Boolean
Attribute
Reference
0..1
+isContainer : Boolean
+opposite
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
KM3 definition of the KM3 metamodel
package KM3 {
NOT XMI
(Emfatic-like)
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
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Java to Excel Transformation (call graph)
FirstClass.java
public class
FirstClass {
public void
fc_m1(){
}
public void
fc_m2(){
this.fc_m1();
this.fc_m1();
}
}
SecondClasss.java
public class SecondClass {
public void sc_m1(){
FirstClass a = new
FirstClass();
a.fc_m1();
}
public void sc_m2(){
this.sc_m1();
}
}
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Java and Table Metamodels
Table
1
JavaSource
*
+rows
1
+cells
Row
*
+classes
+content
1
ClassDeclaration
NamedElement
0..1
Cell
*
+class
+name
*
+methods
MethodDefinition
*
1
MethodInvocation
+method
0..1
+invocations
*
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
UMLDI2SVG
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Tool Interoperability
•
•
Tool X
Tool Y
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
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Agenda
Principles
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
What about the stability of MDA?
• Missing foundations may cause big problems ahead
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Just an academic issue anyway?
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Enter the "metamuddle"
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Model of a model
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
The MDA metamuddle
• A very rapidly growing industrial application field since
november 2000,
• … but …
• We badly need a unifying theory of models
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Credits and MDA compliance
Language
engineering
MDE
Ontology
engineering
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
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.
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
The "conformance" relation
meta
the MOF
M
meta-meta
3
model
The MOF
M3
The
UML
metamodel
M2
metamodel
Some UML Models
M1
M0
model
"the real
c2
source
Class
destination
meta
Various usages
world"
of these models
c2
meta
Association
meta
meta
the UML MetaModel
M2
1
Class
c2
*
meta
Attribute
meta
a UML Model
M1
Client
Name : String
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Summary: a Petri Net model
conformsTo
Metametamodel
Link
meta
outGo
inCom
inCom
Node
Node
outGo
Link
inCom
meta
outGo
Node
Link
Link
outGo
inCom
Link
arcTP
outGo
M3
conformsTo
Metamodel
inCom
Node
Place
outGo
Classical
representation
P1
T1
P2
Link
arcPT
Node
Trans
M2
inCom
System
conformsTo
Model
Place
P1
arcPT
Trans
T1
arcTP
Place
P2
repOf
M1
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
conformsTo
Metametamodel:
XML Schema for
XML Schema
…
<xs:element name=“element">
<xs:complexType>
<xs:attribute name=“name“
type=“xs:string"/>
…
</xs:complexType>
</xs:element>
…
conformsTo
…
Metamodel: <xs:element name=“place">
<xs:complexType>
a Petri Net
<xs:attribute name=“name“
XML Schema
type=“xs:string"/>
</xs:complexType>
</xs:element>
…
Classical
conformsTo
representation
P1
T1
P2
Model: an XML
document
<petrinet>
<place name=“P1”/>
<place name=“P2”/>
<transition name=“T1”/>
<arcPT source=“P1” target=“T1”/>
<arcTP source=“T1” target=“P2/>
</petrinet>
meta
M3
M2
System
repOf
M1
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Agenda
Deployment
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
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
M. Transformation
AMW
AM3
ATP
M. Composition
M. Global Management
Inter TSpaces Bridge
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
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.
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
ATL: a model transformation language, engine and IDE
• ATL: a MOF/QVT
like model
transformation
language
• For more info
see:
http://www.sciences.univnantes.fr/lina/atl/
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Model Transformation with ATL
conformsTo
Metametamodel
Node
Node
conformsTo
conformsTo
MMa
Node
ATL
Green
Node
Red
conformsTo
Ma
Node
Rule
MMb
Node
Blue
Node
MMa2MMb.atl
Rule
Rule
R 2 B
G 2 P
Pink
conformsTo
Mb
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
ATL editor (part of ATL Integrated Development Environment)
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
ATL Development Tools: source-level debugger
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
The standard OMG model transformation language
ATL is a QVT-like language
If QVT is the solution,
then what was the problem?
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
The Model Weaver: principles
Stub MM
extends
Left MM
OperationPort
- Fixed mapping metamodels
are not sufficient
- We need support for
extensible variable metamodels
Weaving MM
mapsTo
Right MM
OperationType
c2
Weaving model
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Models
•
Model
– set of elements and associations
• Associations (intra model relationships)
Model
E1
hasA
E3
E2
references
Semantic defined
in the metamodel
inherits
E4
– Model Composition (inter model relationships)
Model 1
Model 2
E2
E1
E3
isA
E2
E1
isA
E3
E4
Undefined line semantics
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Metamodel extensions
•
Several possible mapping DSLs (Domain Specific Languages)
•
Adding extra semantics
– Concatenation, foreign keys, nested, ordered, equals, containment,
supplier/consumer, etc.
Model 2
Model 1
Equals
E1
E2
E2
Concat
E2
E1
E3
E4
String
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
AMW example: RDBMS to XML
Semantics
XML schema
represented in Ecore
SQL schema
represented in Ecore
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Weaving metamodel
Visualization (DSL tools and EMF)
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Weaving metamodel
Minimal weaving metamodel
– links and correspondences
– extended to be used in different applications
WElement
-name : String
-description : String
WRef
WLink
-ref : String
link
WModel
child (0-*)
ownedElement (1-*)
model
•
parent
wovenModel (1-*)
WModelRef
end (1-*)
WElementRef
element
modelRef
WLinkEnd
ownedElementRef(0-*)
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
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
versionOf
MM’
extensionOf
typeOf
M
MM’
typeOf
Service
input
output
output
Parameter
implements
M
intput
T
Tool
How Adaptable is MDA? CTIT Symposium, University of Twente
etc.
©2005 ATLAS Nantes
Representing zones with Megamodels
c2
Megamodel
Metamodel
c2
Megamodel
MgA
repOf
ZoneA
Fred
ATL
Nantes
Megamodel
MgB
repOf
ZoneB
Ivan
Mistral
Enschede
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Representing zones with Megamodels
c2
Megamodel
MgA
Megamodel
Metamodel
c2
Megamodel
MgB  MgC
repOf
repOf
ZoneBC
ZoneA
ZoneB
ZoneC
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Initial Metamodel Proposal for AMMA Megamodel Components
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Megamodel Resource Navigator for model components
• Technology Preview
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
MS/Office
Simulink
Matlab
etc.
ATP: TS and projectors
XMI
JMI
CMI
etc.
ATLAS
Technical
Projectors
π1
TSpace #2 EBNF
grammar
TSpace #4 SQL
program
dataSchema
TSpace #1 MDA
data
mmodel
model
TSpace #3 XML
π3
π2
XMLschema
document
How Adaptable is MDA? CTIT Symposium, University of Twente
Java
Corba
SVG
NLP,
etc.
©2005 ATLAS Nantes
Examples of projections from ME to XML and EBNF TSs
XML TS
EBNF TS
ME TS
M3
XSD
MOF
EBNF
M2
MMa.xsd
MMa
KM3.g
M1
Ma.xmi
Ma
MMa.km3
XMI
KM3
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
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
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Conclusions: AMMA on top of Eclipse and MS/DSL tools
AMMA
AMMA
EMF
Team System
Eclipse
Visual Studio
ATL
ATL IDE
AM3
ATL engine ATP
EMF
Eclipse
MTF
AMW
KM3
Emfatic
etc.
etc.
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
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.
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes
Thanks
Questions?
Comments?
http://www.sciences.univ-nantes.fr/lina/atl/
How Adaptable is MDA? CTIT Symposium, University of Twente
©2005 ATLAS Nantes