Putting MDA to Work on Eclipsewith the AMMA Tool Suite
Mikaël BarberoATLAS group, INRIA & LINA, France
Frederic JouaultUniversity of Alabama at Birmingham, CIS
1
© 2007 ATLAS NantesUAB
Putting MDA to Work on Eclipse Putting MDA to Work on Eclipse with the AMMA Tool Suitewith the AMMA Tool Suite
MODELS 2007MODELS 2007
Mikaël Barbero1
Frederic Jouault1,2
1 ATLAS group, INRIA & LINA, France2 University of Alabama at Birmingham, CIS
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 1 - © 2007 ATLAS NantesUAB
Schedule
1. Model Driven Engineering
2. The OMG vs. the Eclipse community and process
3. Presentation of some components of EMP (Eclipse
Modeling Project)
4. The philosophy behind AMMA
5. Conclusions
2
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 2 - © 2007 ATLAS NantesUAB
Schedule
1. Model Driven Engineering
2. The OMG process vs. the Eclipse process
3. Presentation of some components of EMP
(Eclipse Modeling Project)
4. Conclusions
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 3 - © 2007 ATLAS NantesUAB
MDA™: OMG's new vision
"OMG is in the ideal position to provide the model-based standards that are necessary to extend integration beyond the middleware approach… Now is the time to put this plan into effect. Now is the time for the Model Driven Architecture."
Richard Soley and the OMG staff, MDA Whitepaper Draft 3.2
November 27, 2000
3
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 4 - © 2007 ATLAS NantesUAB
L’ingénierie des modèles : origines
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 5 - © 2007 ATLAS NantesUAB
+Applicant()+ApplicantInfo()+MakeApplication()
-companyName : CString-experience : CString-reference1 : CString-reference2 : CString-reference3 : CString
Applicant
+Person()+PersonInfo()
-personID : unsigned long-surname : CString-givenName : CString-middleInitial : char-streetAddress : CString-postCode : CString-countryname : CString-eMailAddress : CString
Person
-is taught by
1
-teaches
0..*+CourseSession()+CourseSessionInfo()
-courseSessionID : unsigned long-courseDate : unsigned long-courseID : unsigned long-courseLocation : CString
CourseSession
+AppStatus()+AppStatusInfo()
-statusCode : char-statusName : CString
AppStatus
+CourseRegistration()+CourseRegistrationInfo()
-registrationDate : unsigned long-completionFlag : bool-confirmedDate : unsigned long
CourseRegistration
+Test()+TestInfo()
-testScore : unsigned longTest
+Application()+ApplicationInfo()
-productNr : unsigned long-certificationLevel : unsigned long-applicationDate : unsigned long
Application
+PermittedStatusChange()+StatusChangeInfo()
-fromStatus : char-toStatus : char
PermittedStatusChange
+ExamSession ()+ExamSessionInfo()
-examSession : unsigned long-examlocation : CString-examDate : unsigned long
ExamSession
-gives0..* -is achieved1
-is made by
1
-makes
0..*
-allows change in
0..*
-has a
1..*
-is taken by1-takes0..*-is made by a1-made a1..*
-is in1
-is filled by0..*
-uses
1
-is used in
0..*
-applies to a0..*-is for a
1 +Exam()+ExamInfo()
-examID : unsigned long-certificationLevel : unsigned long
Exam
+Employee()+GetCurrentAge()+EmployeeInfo()
-jobType : CString-roomNr : unsigned long-department : CString-division : CString-jobTitle : CString-manager : unsigned long-headsDept : CString-headsDivision : CString-mobileNr : CString-birthDate : unsigned long
Employee
+registrationform()
RegistrationForm
-uses**
ApplicantApplicantList PersonList
findApplicant()
ApplicationRegForm
Applicant()
findPerson()
addPerson()
addApplication()
Application()
MakeApplication()
ApplicationList
Class Diagram
Sequence Diagram
JavaCode
XMI XMI
Central place of transformation.
4
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 6 - © 2007 ATLAS NantesUAB
Acronyms / Definitions• MDE Model Driven Engineering• ME Model Engineering• Model Based Data Engineering• MDA Model Driven Architecture• MDD Model Driven Development• MDSD Model Driven Software
Development• MDSE Model Driven Software
Engineering• MBD Model Based Development• MM Model Management• ADM Architecture Driven
Modernization• DSL Domain Specific Language• DSM Domain Specific Modeling• etc.
• MDE is a generic term; • ME and MDSE more or less synonyms of
MDE • MDA™ and MDD™ are OMG trademarks;
MDD is a protection trademark (no use as of today/just reserved by OMG for future use)
• MDSD, MBD like MDE are sometimes used instead of MDD when one does not wish to be associated to OMG-only technology, vocabulary and vision.
• ADM is another standard intended to be the reverse of MDA: MDA covering forward engineering while ADM covers backward engineering.
• MM mainly used in data engineering like MBDE
• DSM is more Microsoft marked but of increasing use by the academic and research community
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 7 - © 2007 ATLAS NantesUAB
Influencing parties (some)
Normalizationorganizations
OMG, W3C
MDEdefinition
Largecompanies
MS, IBM& consultants
End usercompanies
Airbus, Boeing, Ericcson
CASE Toolvendors
Open sourcegroups
Eclipse
Researchconferences
MODELS, ECMDA, ACM/SAC,ECOOP, TOOLS, ICSE,
ETAPS, MOMPES
Internationalprojects
ModelWare, ModelPlex
5
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 8 - © 2007 ATLAS NantesUAB
IBM MDA manifesto:Three complementary ideas
1. Direct representation 2. Automation 3. Standards
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 9 - © 2007 ATLAS NantesUAB
A definition of MDAOMG/ORMSC/2004-06-01 (The OMG MDA Guide): A Definition of MDA (The
following was approved unanimously at the ORMSC plenary session, meeting in Montreal on 23 August 26, 2004. The stated purpose of these two paragraphs was to provide principles to be followed in the revision of the MDA Guide.)
• MDA is an OMG initiative that proposes to define a set of non-proprietary standards that will specify interoperable technologies with which to realize model-driven development with automated transformations.
• MDA does not necessarily rely on the UML, but, as a specialized kind of MDD (Model Driven Development), MDA necessarily involves the use of model(s) in development, which entails that at least one modeling language must be used.
• Any modeling language used in MDA must be described in terms of the MOF language, to enable the metadata to be understood in a standard manner, which is a precondition for any ability to perform automated transformations.
6
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 10 - © 2007 ATLAS NantesUAB
Overview of Model-Driven Engineering (MDE)
Model-Driven Engineering (MDE)
EclipseEMP GME
MicrosoftVisual StudioTeam systemDSL Tools
MDA™Model-DrivenArchitecture
(OMG)
MIC Model
IntegratedComputing
SoftwareFactories
(Microsoft)Other
Standards
OtherTools
Principles
Standards
Tools
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 11 - © 2007 ATLAS NantesUAB
The OMG metamodeling stack
metamodel
model
"the real world"
metametamodel
M1
M2
M3
M0
7
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 12 - © 2007 ATLAS NantesUAB
Percentageof termite infestation
in France.
The System
Models
France in 1453 The cheesefrench map
Railroad mapin western
France
ModelrepOfSystem
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 13 - © 2007 ATLAS NantesUAB
Interpretation
the UML MetaModel
Class Attribute*1
a UML Model
Client
Name : String
M2
M1
the MOF
Class Association
source
destination
M3
c2
c2
c2
μμ μ
μ
μ μ
μ
μ
8
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 14 - © 2007 ATLAS NantesUAB
Each model conforms to its reference model
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 15 - © 2007 ATLAS NantesUAB
Structural definition of a model• Definition 1. A directed multigraph G = (NG, EG, ΓG) consists of a
set of distinct nodes NG, a set of edges EG and a mapping function ΓG: : EG→ NG x NG
• Definition 2. A model M = (G, ω, μ) is a triple where:• G = (NG, EG, ΓG) is a directed multigraph• ω is itself a model, called the reference model of M, associated
to a graph Gω = (Nω, Eω, Γω)• μ: NG ∪ EG → Nω is a function associating elements (nodes and
edges) of G to nodes of Gω (metaElements)
9
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 16 - © 2007 ATLAS NantesUAB
Three main kind of models
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 17 - © 2007 ATLAS NantesUAB
Additional definitions
• Definition 3. A metametamodel is a model that is its own reference model (i.e. it conforms to itself).
• Definition 4. A metamodel is a model such that its reference model is a metametamodel.
• Definition 5. A terminal model is a model such that its reference model is a metamodel.
10
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 18 - © 2007 ATLAS NantesUAB
repOf
representation of
System S Terminalmodel M
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 19 - © 2007 ATLAS NantesUAB
The big picture
origin
0..*
conformsTo (c2)
1
0..*
0..*
11
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 20 - © 2007 ATLAS NantesUAB
The central role of metamodels
repOfrepresentation of
system S terminalmodel M
metamodelMM
c2
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 21 - © 2007 ATLAS NantesUAB
The metametamodel defines the "technical space"
repOf
representation of
system S terminalmodel M
metamodelMM
c2
c2
metametamodelMMM
c2
MOF 1.4 … MOF 2.0 … ECORE … DSL.Tools …. KM3EMOF 2.0 … CMOF 2.0 … SMOF 2.0 …SMD/Turku…
12
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 22 - © 2007 ATLAS NantesUAB
Three basic concepts
Technical Space
System ModelrepOf
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 (TS): a model management framework usually based on some algebraic structures (trees, graphs, hypergraphs, etc.).
MetaMetaModel
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 23 - © 2007 ATLAS NantesUAB
XML Technical Space
13
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 24 - © 2007 ATLAS NantesUAB
EBNF Technical Space
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 25 - © 2007 ATLAS NantesUAB
RDF Technical Space
14
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 26 - © 2007 ATLAS NantesUAB
OMG proposal for an MDA Foundation Model
• “MDA is an approach to system development…[that]… provides a means for using models to direct the course of understanding, design, construction, deployment, operation, maintenance and modification.” [MDA Guide omg/03-06-01]
• At the core of MDA are the concepts of models, of metamodels defining the abstract languages in which the models are captured, and of transformations that take one or more models and produce one or more other models from them. Figure 1 shows the relationships between these major concepts.
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 27 - © 2007 ATLAS NantesUAB
Homogeneous view• Everything is a model
• A λ-model• λ meaning the specific TS• An XML document is an XML-model • A Java source program is a Java-model• An UML model is a MDA-model • etc.
• Each TS is rooted in a metametamodel defining its representation scheme (representation ontology)
• Each is supposed to be organized in a 3-level architecture.• Distinguish between intra-space and inter-space transformations
15
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 28 - © 2007 ATLAS NantesUAB
Schedule
1. Model Driven Engineering
2. The OMG process vs. the Eclipse process
3. Presentation of some components of EMP
(Eclipse Modeling Project)
4. Conclusions
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 29 - © 2007 ATLAS NantesUAB
EMP: an Eclipse Top-level projectwith high momentum
MissionThe Eclipse Modeling Project will focus on the evolution and promotionof model-based development technologies within the Eclipse community.It will unite projects falling into this classification to bring holistic model-baseddevelopment capabilities to Eclipse.
16
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 30 - © 2007 ATLAS NantesUAB
The OMG ProcessOMG™ is an international, open membership, not-for-profit computer industry consortium. OMG Task Forces develop enterprise integration standards for a wide range of technologies, and an even wider range of industries. OMG’smodeling standards enable powerful visual design, execution and maintenance of software and other processes. OMG’smiddleware standards and profiles are based on the Common Object Request Broker Architecture (CORBA®) and support a wide variety of industries.
Our membership includes hundreds of organizations, with half being software end-users in over two dozen vertical markets, and the other half representing virtually every large organization in the computer industry and many smaller ones. Task Force
RFI RFP AB Review (Architecture Board)
Evaluation
Final AB Review
Board Approval
DTC or PTC Recommendation
DTC = Domain Technical committee.PTC = Platform Technical committee.
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 31 - © 2007 ATLAS NantesUAB
The Eclipse process• Eclipse - an open development platform
Eclipse is an open source community whose projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle. A large and vibrant ecosystem of major technology vendors, innovative start-ups, universities, research institutions and individuals extend, complement and support the Eclipse platform.
17
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 32 - © 2007 ATLAS NantesUAB
http://adtf.omg.org/Analysis and Design Platform Task Force
• To enable developers to better understand how to develop applications, including large-scale distributed systems.
• To recommend architectures and technologies related to modeling and metamodeling to enable interchangeability of work products and interoperability of tools and repositories.
• To promote standard modeling techniques that increase rigor and consistency of specifications.
• To leverage and interoperate with other OMG specifications. • To liaise with related organizations with common goals.
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 33 - © 2007 ATLAS NantesUAB
Some OMG recommendations• UML 2.1.1, The Current Official Version• UML Profiles and Related Specifications:
• UML Profiles tailor the language to specific areas - some for business modeling; others for particular technologies.• Object Constraint Language (OCL 2.0) Specifies the Object Constraint Language (OCL), a formal
language used to describe expressions on UML models. These expressions typically specify invariant conditions that must hold for the system being modeled or queries over objects described in a model. Note that when the OCL expressions are evaluated, they do not have side effects (i.e., their evaluation cannot alter the state of the corresponding executing system).
• Ontology Definition Metamodel (ODM) ODM is applicable to knowledge representation, conceptual modeling, formal taxonomy development and ontology definition, and enables the use of a variety of enterprise models as starting points for ontology development through mappings to UML and MOF.
• Software Process Engineering Metamodel (SPEM 1.1) This metamodel is used to describe a concrete software development process or a family of related software development processes. Process enactment is outside the scope of SPEM, although some examples of enactment are included for explanatory purposes.
• UML Diagram Interchange (UML DI 1.1) This specification enables a smooth and seamless exchange of documents compliant to the UML standard (referred to as UML models) between different software tools.
• UML Human-Usable Textual Notation (HUTN) HUTN offers three main benefits. (1.) It is a generic specification that can provide a concrete HUTN language for any MOF model; (2.) The HUTN languages can be fully automated for both production and parsing; and (3.) The HUTN languages are designed to conform to human-usability criteria.
18
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 34 - © 2007 ATLAS NantesUAB
Some OMG recommendations• MOF Models to Text Transformation Language This specification addresses how to
translate a model to various text artifacts such as code, deployment specifications, reports, documents, etc. Essentially, it addresses how to transform a model into a linearized text representation using a template based approach wherein the text to be generated from models is specified as a set of text templates that are parameterized with model elements.
• MOF™ Query / Views / Transformations This specification is one of a series related to developing the 2.0 revision of the OMG Meta Object Facility specification, referred to as MOF 2.0. This specification addresses a technology neutral part of MOF and pertains to: 1.) queries on models; 2.) views on metamodels; and 3.) transformations of models.
• XML Metadata Interchange (XMI 2.1) XMI is a model driven XML Integration framework for defining, interchanging, manipulating and integrating XML data and objects. XMI-based standards are in use for integrating tools, repositories, applications and data warehouses. XMI provides rules by which a schema can be generated for any valid XMI-transmissible MOF-based metamodel. XMI provides a mapping from MOF to XML. As MOF and XML technology evolved, the XMI mapping is being updated to comply with the latest versions of these specifications. Updates to the XMI mapping have tracked these version changes in a manner consistent with the existing XMI Production of XML Schema specification (XMI Version 2).
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 35 - © 2007 ATLAS NantesUAB
http://adm.omg.org/Architecture Driven Modernization
Our Mission StatementCreate specifications and promote industry consensus on
modernization of existing applications. What are Existing Applications?
Existing application systems are defined as any production-enabled software, regardless of the platform it runs on, language it is written in, or length of time it has been in production. Existing application has entered the maintenance and evolution mode.
Our GoalsThe ultimate goal - Revitalization of Existing Applications Make existing applications more agile Leverage existing OMG modeling standards and the MDA initiative Consolidate best practices leading to successful modernization
19
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 36 - © 2007 ATLAS NantesUAB
OMG vs. Eclipse
• EMP is a rapidly moving Eclipse project,
• partially aligned on OMG standards,
• with different goals,• etc.
See "Eclipse Modeling Project and OMG standards" by Richard Gronback, Borland Software Corporation.Eclipse Europe, Modeling symposium, Esslingen, Germany, 2007.
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 37 - © 2007 ATLAS NantesUAB
Schedule
1. Model Driven Engineering
2. The OMG process vs. the Eclipse process
3. Presentation of some components of EMP
(Eclipse Modeling Project)
4. Conclusions
20
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 38 - © 2007 ATLAS NantesUAB
EMP
• EMP is a "technical space"organized on the ECORE metametamodel.
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 39 - © 2007 ATLAS NantesUAB
Eclipse Modeling Project
The Eclipse Modeling Project focuses on the evolution and promotion of model-based development technologies within the Eclipse community by providing a unified set of modeling frameworks, tooling, and standards implementations.1. Abstract Syntax Development2. Concrete Syntax Development3. Model Transformation4. Model Integration5. Technology and Research
21
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 40 - © 2007 ATLAS NantesUAB
Abstract Syntax Development
• Eclipse Modeling Framework (EMF) : The EMF project is a modeling framework and code generation facility for building tools and other applications based on a structured data model. From a model specification described in XMI, EMF provides tools and runtime support to produce a set of Java classes for the model, along with a set of adapter classes that enable viewing and command-based editing of the model, and a basic editor.
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 41 - © 2007 ATLAS NantesUAB
Concrete Syntax Development
• Graphical Modeling Framework (GMF) : provides a generative component and runtime infrastructure for developing graphical editors based on EMF and GEF.
• Textual Modeling Framework (TMF) : awaiting proposal.
Abstract MM Concrete visualMM
Abstract MM GrammarTCS
GMF
22
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 42 - © 2007 ATLAS NantesUAB
Model Development Tools• EMF Ontology Definition Metamodel (EODM) : an implementation of
RDF(S)/OWL metamodels of the Ontology Definition Metamodel (ODM)using EMF with additional parsing, inference, model transformation and editing functions.
• Object Constraint Language (OCL) : defines APIs for OCL expression syntax for implementing queries and contraints.
• Unified Modeling Language 2.x (UML2) : an EMF-based implementation of the UML 2.x metamodel for the Eclipse platform.
• UML2 Tools : a set of GMF-based editors for viewing and editing UML models.
• XML Schema Infoset Model (XSD) : a reference library that provides an API for use with any code that examines, creates or modifies W3C XML Schema.
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 43 - © 2007 ATLAS NantesUAB
Model Transformation & Integration• Model to Model Transformation (M2M) : will deliver an extensible
framework for model-to-model transformation languages, with an exemplary implementation of the QVT Core language. • Atlas Transformation Language (ATL) : a model transformation language and
toolkit. • Model to Text Transformation (M2T) : focuses on technologies for
transforming models into text (typically language source code and the resources it consumes) • Java Emitter Templates (JET) : provides code generation framework &
facilities that are used by EMF. • JET Editor : leverages Eclipse text editor framework to provide this
capability via features like syntax coloring, error highlighting and code completion.
• Model Driven Development integration (MDDi) : produces an extensible framework and exemplary tools dedicated to integration of modeling tools in Eclipse.
23
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 44 - © 2007 ATLAS NantesUAB
Technology and Research• Generative Modeling Technologies (GMT) : research incubator project focused on producing prototypes in
the area of Model Driven Engineering (MDE). • Atlas MegaModel Management (AM3) : the goal is to provide a practical support for modeling in the large. The objective is
to deal with global resource management in a model-engineering environment. We base this activity on the concept of a "megamodel".
• Atlas Model Weaver (AMW) : a tool for representing correspondences between models. The correspondences are stored in a model, called weaving model. It is created conforming to a weaving metamodel.
• MOFScript : aims at developing tools and frameworks for supporting model to text transformations, e.g., to support generation of implementation code or documentation from models.
• openArchitecture Ware (oAW) : a suite of tools and components assisting with model driven software development built upon a modular MDA/MDD generator framework implemented in Java(TM) supporting arbitrary import (design) formats, meta models, and output (code) formats.
• UMLX : concrete graphical syntax to complement the OMG QVT model transformation language. • VIATRA2 : aims to provide a general-purpose support for the entire life-cycle of engineering model transformations
including the specification, design, execution, validation and maintenance of transformations within and between various modeling languages and domains.
• Epsilon : a metamodel-agnostic component for supporting model navigation, creation, and modification operations. • GEMS : aims to bridge the gap between the communities experienced with visual metamodeling tools, such as the Generic
Modeling Environment (GME), and those built around the Eclipse modeling technologies, such as the Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF).
• MoDisco : an Eclipse GMT component for model-driven reverse engineering. The objective is to allow practical extractions of models from legacy systems. As a GMT component, MoDisco will make good use of other GMT components or solutions available in the Eclipse Modeling Project (EMF, M2M, GMF, TMF, etc), and more generally of any plugin available in the Eclipse environment.
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 45 - © 2007 ATLAS NantesUAB
GMT• The goal of the Generative Modeling
Technologies (GMT) project is to produce a set of research prototypes in the area of Model Driven Engineering (MDE). GMT is the official research incubator project of the top-level Eclipse Modeling Project.
• Example: UMLX language UMLX is a concrete graphical syntax to complement the OMG QVTmodel transformation language. UMLX will conform to at least one of the QVT Export/XMI-Export Core/Relations conformance points, so that UMLX originated transformations can be used in any QVT execution environment. Much of UMLX corresponds closely to QVT relational, so the first releases will subset UMLX towards the shared capabilities.
• Example: GEMS The goal of the Generic Eclipse Modeling System (GEMS) is to bridge the gap between the communities experienced with visual metamodeling tools, such as the Generic Modeling Environment (GME), and those built around the Eclipse modeling technologies, such as the Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF). GEMS is being developed by the Distributed Object Computing (DOC) Group at Vanderbilt University’s Institute for Software Integrated Systems (ISIS) and other collaborators, such as Siemens Corporate Technology.
24
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 46 - © 2007 ATLAS NantesUAB
GMT a research incubator inside EMPEclipse
EMP
EMF
GMF
GMTM2M
M2T
GMT
AM3
AMW
Epsilon
GEMS MoDisco MOFScript
UMLx
oAW
OMCW
VIATRA2
Tiger TCS etc.
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 47 - © 2007 ATLAS NantesUAB
Open Model CourseWare (OMCW)
• Open Model CourseWare (OMCW) aims to provide a set of teaching and learning artifacts to the modeling community. The Model-Driven Engineering (MDE) approach suggests using transformational and generative techniques to produce running systems from very abstract models. MDE is still in its infancy and will probably much evolve in the coming years: as a consequence, the approach has yet to be made popular. This is why it is interesting to provide several levels of access to the corresponding courseware. Following the model courseware that was initially contributed to the ECESIS project, the teaching material intended to be made available in OMCW will address several different maturity levels and several needs for understanding the advantages, characteristics, and applicability conditions of MDE.
• The creation and the launch of the Open Model CourseWare component has been realized in the context of the IST European MODELPLEX project (MODELingsolution for comPLEX software systems, FP6-IP 34081).
25
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 48 - © 2007 ATLAS NantesUAB
AM3• The goal of AM3 (ATLAS MegaModel Management) is
to provide a practical support for modeling in the large. The objective is to deal with global resource management in a model-engineering environment. We base this activity on the concept of a "megamodel" i.e.a model which elements represents models.
• One important part of AM3 is a large structuredlibrary of metamodels (see later)
• These metamodels are expressed in various languages.• KM3 is the pivot (Kernel Meta Meta Model)
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 49 - © 2007 ATLAS NantesUAB
KM3 is a metamodel for specifying metamodels
• KM3 is a metamodel for specifying metamodels a metametamodel:
• Similar to MOF and Ecore• Relatively simple (i.e. 12 concepts where Ecore has 18 and MOF1.4 28)• With a simple textual (concrete) syntax (similar to Emfatic)• With a formalized definition
• Core concepts:• Class used for typing models nodes• Reference used for typing models edges
• KM3 is based upon our definitions of model, terminal model, metamodel and metametamodel
26
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 50 - © 2007 ATLAS NantesUAB
KM3: a metamodel specification DSL
KM3 is a DSL for defining metamodels;It is a M3-level notation (self-defined)
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 51 - © 2007 ATLAS NantesUAB
KM3 as a pivot: a neutral metametamodel
27
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 52 - © 2007 ATLAS NantesUAB
KM3 example-- @name XML
-- @version 1.0
-- @domains-- @authors ATLAS Team-- @date April 2006
-- @extends-- @description XML Metamodel-- @see
package XML {-- @begin XML_Metamodelabstract class Node {
reference parent [0-1] : Element oppositeOf children ;}
class Element extends Node {reference children [*] container : Node oppositeOf parent ;
}
class Attribute extends Node {}
class Text extends Node {attribute content : String ;
}
class Root extends Element {}-- @end XML_Metamodel
}
XML metamodel(graphical syntax)
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 53 - © 2007 ATLAS NantesUAB
Model-to-Model transformation DSLs• Each model conforms to a
metamodel.• A transformation builds a
target model (Mb) from a source model (Ma).
• A transformation is a model (Mt) conforming to a metamodel (MMt).
MOF
MMa MMb
Ma MbMt
QVT
conformsTo
transformation
28
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 54 - © 2007 ATLAS NantesUAB
Model Transformation with ATL(ATLAS Transformation Language)
(moved from GMT to M2M)
conformsTo
transformation
MOF
MMa MMb
Ma Mbmma2mmb.atl
ATL
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 55 - © 2007 ATLAS NantesUAB
ATLAS NantesBorlandObeo
29
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 56 - © 2007 ATLAS NantesUAB
ATL overview• Source and target models are distinct:
• Source models are read-only (i.e. they can be navigated but not modified)• Target models are write-only (i.e. they cannot be navigated)
Simplified execution semantic, result independent from the rules execution’s order
• The language is hybrid between declarative and imperative• Declarative parts:
• Declarative rules with traceability automatic support• Navigation (and requesting) language without side effects: OCL 2.0
• Imperative parts:• Imperative rules (called like procedures)• Imperative blocks: sequences of instructions
• Recommended style: declarative
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 57 - © 2007 ATLAS NantesUAB
Model Transformation with ATL
G 2 PRule
R 2 BRule
Ma Mb
MMaGreenNode
RedNode
MMbBlueNode
PinkNode
Metametamodel
NodeNode
ATLRuleNode
MMa2MMb.atl
conformsTo conformsTo
conformsTo conformsTo
conformsTo
30
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 58 - © 2007 ATLAS NantesUAB
ATL: a model-to-model transformation DSL
Code sample
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 59 - © 2007 ATLAS NantesUAB
Hello World ATL
31
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 60 - © 2007 ATLAS NantesUAB
Example: UML2Java
UML Metamodel Java Metamodel
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 61 - © 2007 ATLAS NantesUAB
Static Method Calls
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.javaFirstClass.java
32
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 62 - © 2007 ATLAS NantesUAB
Java and Table Metamodels
JavaSource
+nameNamedElement
ClassDeclaration
MethodDefinition MethodInvocation
1
+classes*
0..1 +invocations *
+class0..1
+methods*
1
+method
*
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 63 - © 2007 ATLAS NantesUAB
KM3 to DOT
Note: interesting transformation pattern here (parameterized transfo)
33
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 64 - © 2007 ATLAS NantesUAB
Atlas Model Weaver (AMW)• The AMW (ATLAS Model Weaver) is a tool for establishing
relationships (i.e., links) between models. The links are stored in a model, called weaving model. It is created conforming to a weaving metamodel.
• Use casesThe establishment of links between model or metamodel elements is present in numerous application scenarios, such as metamodel comparison, traceability, model matching, model annotation, interoperability.
• The use cases section provides a set of key scenarios that use weaving models. The use cases contain a general overview, extra documentation and examples. AMW provides a base weaving metamodel enabling to create links between model elements and associations between links. The metamodel may be extended to add other mapping semantics. This way there is the possibility of creating variable mapping languages dedicated to specific application requirements.
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 65 - © 2007 ATLAS NantesUAB
Model WeavingEstablishing abstract correspondencesbetween model elements.
Ma Mb
Mw
34
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 66 - © 2007 ATLAS NantesUAB
Relationships as a model: the weaving technique
• To capture relationships between model elements• Relationships are "reified" in a weaving model
• The model elements represent the relationships and the related elements• As any kind of model, the weaving model can be saved, stored, transformed,
modified, etc.
a1 b1a2
a3b2
Ma Mbr1
Weaving model
r2
b1a1
b2
a2
a3
AMW
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 67 - © 2007 ATLAS NantesUAB
AMW
35
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 68 - © 2007 ATLAS NantesUAB
Some AMW use cases
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 69 - © 2007 ATLAS NantesUAB
Metamodel comparison
36
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 70 - © 2007 ATLAS NantesUAB
Metamodel comparison
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 71 - © 2007 ATLAS NantesUAB
Model diff and compose (EMF compare)
Ma Mb
δ = Mb - Ma
-
Ma δ
Mb
+
37
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 72 - © 2007 ATLAS NantesUAB
Typical application: tool interoperability
About 30 opensource toolsto choose amongfor bug tracking
Different data models and functionalities
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 73 - © 2007 ATLAS NantesUAB
Bugzilla metamodel (simplified)
38
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 74 - © 2007 ATLAS NantesUAB
Mantis metamodel (simplified)
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 75 - © 2007 ATLAS NantesUAB
Bug control metamodel (pivot)
ControlsSequence-responsible[1] : String-component[1] : String-developmentPhase[1] : String-scope[1] : String-controlledElt[0..1] : String-eltRef[0..1] : String-eltAuthor[0..1] : String-formRef[0..1] : String
Control
-day[1] : Integer-month[1] : Integer-year[1] : Integer
Date
ControlType
BugTracking
-number[1] : Integer-componentVersion[1] : String-description[1] : String-status[1] : BugStatusType-originator[1] : String-responsible[0..1] : String-commentsAnswers[0..1] : String-openDate[1] : String-closeDate[0..1] : String
Bug
-controls
* -date
1
-type
1
-bugs*Several other types of control could be added by creating new classes that inherit of the abstract class "ControlType"...
39
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 76 - © 2007 ATLAS NantesUAB
AM3 Zoos = Libraries of models
• Atlantic zoo - A zoo of metamodels expressed in KM3• Mirrors:
• AtlantEcore zoo - An ATL-auto-generated mirror of Atlantic zoo expressed in EMF XMI 2.0, conforming to Ecore• Atlantic MOF/MDR zoo - An ATL-auto-generated mirror of Atlantic zoo expressed in MDR XMI 1.2, conforming to MOF
1.4• Atlantic UML zoo - An ATL-auto-generated mirror of Atlantic zoo expressed in MDR XMI 1.2, conforming to UML• Atlantic Raster zoo - An ATL-auto-generated mirror of Atlantic zoo expressed in PNG bitmaps • Atlantic SQL DDL zoo - An ATL-auto-generated mirror of Atlantic zoo expressed in SQL DDL, conforming to SQL • Atlantic Microsoft DSL Tools zoo - An ATL-auto-generated mirror of Atlantic zoo expressed in the DSL Tools specific
XML format (with a ".dsldm" extension). • Atlantic VB zoo - An ATL-auto-generated mirror of Atlantic zoo expressed in VB• Atlantic XASM zoo - An ATL-auto-generated mirror of Atlantic zoo expressed in XASM which is an open source compiler
for Abstract State Machines (ASMs) • Atlantic AsmL zoo - An ATL-auto-generated mirror of Atlantic zoo expressed in AsmL which is the Abstract State
Machine Language • Atlantic GME zoo - An ATL-auto-generated mirror of Atlantic zoo expressed in GME which is a configurable toolkit for
creating domain-specific modeling and program synthesis environments • Atlantic OWL zoo - An ATL-auto-generated mirror of Atlantic zoo expressed in OWL which is an ontology syntax defined
by the W3C • Atlantic XML zoo - An ATL-auto-generated mirror of Atlantic zoo expressed in XML
• ATL Transformation zoo - A zoo of ATL transformations using Atlantic zoo metamodels • AMW zoo - The AMW zoo is a zoo containing weaving metamodels and extensions of weaving metamodels
expressed in KM3.
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 77 - © 2007 ATLAS NantesUAB
The AtlantEcore Zoo
• The AtlantEcore Zoo is a mirror of the Atlantic Zoo. The metamodels are not expressed in KM3 but in EMF XMI 2.0.
• For each metamodel, an online tree-based visualization is available thanks to the Web 2.0 MetaModelbrowser (MMB). The Web 2.0 MetaModelbrowser offers to easily browse Ecore-based metamodels made available in online model repositories such as the AtlantEcore Zoo. With tree-based visualization of the metamodels' content users can zoom in and out of the details of arbitrarily sized metamodels as necessary.
• There are currently 241 metamodels in this zoo.• MetaModels Zoo
• Actor Concept: Source file, (view in Web 2.0 MMB)• Ant: Source file, (view in Web 2.0 MMB)• BibTeXML: Source file, (view in Web 2.0 MMB)• Book: Source file, (view in Web 2.0 MMB)• BPEL: Source file, (view in Web 2.0 MMB)• BPMN: Source file, (view in Web 2.0 MMB)• BQL (Bibtex Query Language): Source file, (view in Web 2.0 MMB)• Bugzilla: Source file, (view in Web 2.0 MMB)• DOT: Source file, (view in Web 2.0 MMB)• DotNET System Reflection: Source file, (view in Web 2.0 MMB)• OCCAM: Source file, (view in Web 2.0 MMB)• Etc.
40
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 78 - © 2007 ATLAS NantesUAB
Metrics are transformations
• UML class diagrams:• Package which contains classes.• Class which owns attributes and references
(composition or association relationship).• Could be any metamodel
• Business rules, service, data, process model, etc.• Reuse of OO-metrics is typical
• Measuring Java models and measuring UML modelsbears some similarities.
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 79 - © 2007 ATLAS NantesUAB
Sample List of Metrics
• TNP: Total Number of Packages• TNC: Total Number of Classes• TNA: Total Number of Attributes• TNAI: Total Number of Inherited Attributes • AIF: Attribute Inheritance Factor• DIT: Depth Inheritance Tree• NOC: Number of Children• TNR: Total Number of Relationships• TNRI: Total Number of Relationships Inherited
41
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 80 - © 2007 ATLAS NantesUAB
Sample List of Metrics
• Total Number of Classes• TNC is the total number of classes in a package or a
metamodel.• Depth Inheritance Tree
• In cases involving multiple inheritances, the DIT will be the maximum length from the node to the root of the tree.
• Number of Children• The Number of Children (NOC) is the number of immediate
subclasses subordinated to a class in the class hierarchy.
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 81 - © 2007 ATLAS NantesUAB
Presentation
• Different presentation formats for the measurement data collected:• Textual representation like HTML tables or Excel file.• Graphical representation like SVG charts.• Any other presentation adapted for measurement data.
legacy model measure presentation rendering
42
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 82 - © 2007 ATLAS NantesUAB
HTML presentation
This is the result of an ATL transformation,using a HTML output metamodel
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 83 - © 2007 ATLAS NantesUAB
SVG Pie chart presentation for a set of metamodels
This is the result of an ATL transformation,using a SVG output metamodel
43
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 84 - © 2007 ATLAS NantesUAB
SVG bar chart presentation for a set of metamodels
This is the result of an ATL transformation,using a SVG output metamodel
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 85 - © 2007 ATLAS NantesUAB
Library of QVT-like transformations.
• Open-source• transformations that
everybody may use.
• But also everybody is invited to contribute.
• Look at the AM3 Eclipse component.
44
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 86 - © 2007 ATLAS NantesUAB
Raw data InterpretationPresentation
AnalysisSynthesis
ModelDiscovery
ModelUnderstanding
MoDiscoToolbox
Transformationor WeavingLibraries
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 87 - © 2007 ATLAS NantesUAB
MoDisco
• MoDisco for “Model Discovery”
• Mining legacy to discover EMF/Ecore based models
• Extraction of models from legacy systems• Multiple types of such legacy systems
• A generic and extensible metamodel driven approach to model discovery
45
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 88 - © 2007 ATLAS NantesUAB
Rationale for the MoDisco initiative.
• Bring together producers and consumers, (industrials and academics, of open source solutions in the domain of software modernization (Eclipse).
• Apply common principles and tools to the extraction and further management of models from legacy data.
• Use as much as possible OMG standards in the SM process.
Legacy
MM
Model
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 89 - © 2007 ATLAS NantesUAB
Several possibilities
Legacy
UML
Model
Legacy
KDM
Model
Legacy
GASTM
Model
46
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 90 - © 2007 ATLAS NantesUAB
Discovery Principles
• Step 1:• Define the
metamodel
• Step 2:• Create the
“discoverer”
• Step 3:• Run the
discoverer to extract model Mifrom system S
Model Mi
Discovery
System S
Metamodel MMi
c2(c
onfo
rms
To)
repOf(representation of)
Real World Modeling World
Metam
odel Driven
Discoverer
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 91 - © 2007 ATLAS NantesUAB
Example
• Example of the Unix users’ actions
• Study of the dynamicdynamic behavior of the system• Execution trace of
the systemDynamic behavior of a Unix system
Model MiDiscoverySystem S
A Metamodel for Unix Systems
c2(c
onfo
rms
To)
who, login, logout, etc
Discoverer
timeEvent
LogoutLogin
User0..* 1
47
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 92 - © 2007 ATLAS NantesUAB
Modisco Project Description
MoDisco
Extension A Extension B Extension C
Met
amod
el E
xten
sion
Met
amod
el E
xten
sion
Met
amod
el E
xten
sion
Plu
gin
Plu
gin
Plu
gin
Base metamodel(KDM Core)
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 93 - © 2007 ATLAS NantesUAB
MoDisco
• A unified model-based approach and a metamodel-driven methodology:• Work in the homogeneous world of the models • Match different requirements
• Systems modernization & migration, data integration, tools interoperability, etc
• Use models operations and facilities• Transformations, weavings, extractions, etc
• A wide user community• A common toolbox for MDRE
48
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 94 - © 2007 ATLAS NantesUAB
MoDisco Use Cases
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 95 - © 2007 ATLAS NantesUAB
MoDisco use cases
49
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 96 - © 2007 ATLAS NantesUAB
MoDisco Use Case
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 97 - © 2007 ATLAS NantesUAB
Please visit, join and contribute
The project is looking for various situations, evolution, code or data from any parts of the Eclipse galaxy that could be expressed as models, in order to be later processed by generic modeling technology like model transformation tools (e.g. QVT/ATL).
50
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 98 - © 2007 ATLAS NantesUAB
Schedule
1. Model Driven Engineering
2. The OMG process vs. the Eclipse process
3. Presentation of some components of EMP (Eclipse
Modeling Project)
4. The philosophy behind AMMA
5. Conclusions
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 99 - © 2007 ATLAS NantesUAB
The philosophy behind AMMA
• Simple is beautiful• Simple is efficient
51
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 100 - © 2007 ATLAS NantesUAB
ModelTransformation
GlobalModel
Management
ModelWeaving
TechnicalProjectors
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 101 - © 2007 ATLAS NantesUAB
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 or PCTE• Model-based interoperability and not Middelware-based
interoperability• Four basic blocks:
AMMAAMMA
ATLATL AMWAMW AM3AM3 ATPATP
52
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 102 - © 2007 ATLAS NantesUAB
Four basic Blocks
• AMMA architectural principles are implemented in four basic blocks:• ATL for model transformation• AMW for model weaving• AM3 for global model management• ATP for communication with other technical spaces
• All basic principles are captured by one of theseblocks
• Many other tools will be available in the environment
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 103 - © 2007 ATLAS NantesUAB
Tool Interoperability is Data Integration• Examples of tools :
• RequisitePro• Reqtify• Bugzilla• Mantis• Matlab• Simulink• Excel• Prolog• Make• Ant• Maven• etc.
• Class level reusability vs. Application Level reusability• A reservoir of savings
AMMAAMMA
ATLATL AMWAMW AM3AM3 ATPATP
Tool X Tool Y
MMx MMy
53
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 104 - © 2007 ATLAS NantesUAB
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.
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 105 - © 2007 ATLAS NantesUAB
Models @ Run Time
System S Model M
Forward engineering
Reverse engineering
Models at Runtime
54
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 106 - © 2007 ATLAS NantesUAB
Multiple concurrent views on an evolving system
System
DSLs
DesignerDSLs
AdministratorDSLs
User
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 107 - © 2007 ATLAS NantesUAB
ModelingModeling, in the broadest sense, is the cost-effective use of something in place of something else for some cognitive purpose. It allows us to use something that is simpler, safer or cheaper thanreality instead of reality for some purpose. A model representsreality for the given purpose; the model is an abstraction of reality in the sense that it cannot represent all aspects of reality. This allows us to deal with the world in a simplified manner, avoiding the complexity, danger and irreversibility of reality.
Jeff Rothenberg.
Simulation models are models, but there are plenty of other models
55
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 108 - © 2007 ATLAS NantesUAB
The Bernstein’s Problem: united world of models
By model we mean a complex structure that represents a design artifact, such as a relational schema, object-oriented interface, UML model, XML DTD, web-site schema, semantic network, complex document, or software configuration. Many uses of models involve managing changes in models and transformations of data from one model into another. These uses require an explicit representation of mappings between models. We propose to make database systems easier to use for these applications by making model and model mapping first-class objects with special operations that simplify their use. We call this capacity model management
P.A. Bernstein, A.L. Levy & R.A. PottingerMSR-TR-2000-53
MDE does not impact only the SE community
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 109 - © 2007 ATLAS NantesUAB
Principle of limited substitutability according to Minsky
"If a creature can answer a question about a hypothetical experiment without actually performing it, then it has demonstrated some knowledge about the world. …We use the term "model" in the following sense: To an observer B, an object A* is a model of an object A to the extent that B can use A* to answer questions that interest him about A. …It is understood that B's use of a model entails the use of encodings for input and output, both for A and A*.If A is the world, questions for A are experiments. ...A* is a good model of A, in B's view, to the extent that A*'s answers agree with those of A's, on the whole, with respect to the questions important to B. …"
Marvin L. MinskyMatter, Mind and Models Semantic Information Processing, MIT Press, 1968
Structural and functional definition of a model
56
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 110 - © 2007 ATLAS NantesUAB
The Towers of models (Robin Milner)• A more thorough science-based approach to informatics and ubiquitous
computing is both necessary and possible. We often think in terms of models, whether formal or not. These models, each involving a subset of the immense range of concepts needed for ubiquitous computer systems, should form the structure of our science. Even more importantly, the relationships (either formal or informal) among them are the cement that will hold our towers of models together. For example, how do we derive a model for senior executives from one used by engineers in designing aplatform for business processes, or by theoreticians in analyzing it?
• A model consists of concepts and a set of permitted activities in terms of these concepts. Models can be combined and can be realized (e.g., models can be implemented, or explained, or refined by other models).
• The essence of software engineering and informatics is formulating, managing, and realizing models. For realistic software engineering, we will need towers of models, built using complex combinations of models. Models vary from very formal to very informal, but this is independent of their usefulness. By looking at relationships between models, we get a chance to relate the less formal to the more formal – and thus bring users/engineers/theorists closer to each other. Many examples of such relationships exist; we need to base our methodologies on them.
TOWERS'2007 Workshop, TOOLS, Zurich, June 2007
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 111 - © 2007 ATLAS NantesUAB
Milner's Towerof Models Proposal
57
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 112 - © 2007 ATLAS NantesUAB
An Algebra for Model Management
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 113 - © 2007 ATLAS NantesUAB
Tools
ATL(3)
85%
KM3(3)
75%
TCS(2)
65%
AMW(3)
75%
AM3(5)
50%
BCS(2)
35%
XCS(2)
15%MoDisco
(1)
25%
58
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 114 - © 2007 ATLAS NantesUAB
Schedule
1. Model Driven Engineering
2. The OMG process vs. the Eclipse process
3. Presentation of some components of EMP
(Eclipse Modeling Project)
4. Conclusions
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 115 - © 2007 ATLAS NantesUAB
Risk #1
• Model Portability• Will EMF models still be usable in 5, 10, 15
years?• How to guarantee the interoperability of EMF
models with GME, with MS Tools, etc.
59
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 116 - © 2007 ATLAS NantesUAB
Risk #2
• Huge models• Huge number of models• Scalability• Collaborative work
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 117 - © 2007 ATLAS NantesUAB
Conclusions
• MDE is about working with a lot of open an explicit metamodels (precise metamodeling).
• OMG provides several standard metamodels but we need many more.• In a given TS, there is one metametamodel and a library of metamodels; any
model conforms to a metamodel. • In a model engineering TS all artifacts are models. A metamodel is a model. A
transformation is a model. A verification is a transformation. A measure is a transformation, etc.
• In a given TS, there are also other operations between models like weaving.• There is an additional need to ensure coordination: controlling the metadata and
the mutual relations between all model of interests in a given context.• Synergy between organizations like OMG and Eclipse will become essential in the
future.• AMMA aims to provide the minimal working blocks to make the MDE vision fully
operational• Long term commitment
60
Putting MDA to Work on Eclipse with the AMMA Tool Suite
- 118 - © 2007 ATLAS NantesUAB
Thanks
• Questions?• Comments?
http://www.sciences.univ-nantes.fr/lina/atl/
[email protected]@univ-nantes.fr
ATLAS group, INRIA & LINA, Nantes, France