Title: An Overview of Model-Driven Engineering and Architecture
1An Overview of Model-Driven Engineeringand
Architecture
2Outline
- What is MDA?
- MDA Principles
- MDA Process and Software Reuse
- OMG MDA standards
- Third party providers roles, standards and tools
3What is Model-Driven Architecture (MDA)?
- An initiative from the Object Management Group
(OMG) started in 1997, www.omg.org/mda/ - New paradigm of software development
- Goals
- Maximize software reuse across platforms
- Solve the second order interoperability problem
among different middleware (which goal was to
solve the first order interoperability problem
among programming languages) - Raise the level of abstraction where most
development effort is spent from code to model - Provide standards to automate the entire software
development process through a model
transformation approach - Reuses and extends previous standards
- Unified Modeling Language (UML), by OMG
- Meta-Object Facility (MOF), by OMG
- eXtensible Markup Language (XML), by W3C
(World-Wide Web Consortium, www.w3c.org/xml/)
4MDA Principles
- The most valuable, durable, reusable assets
produced during the development process is not
code but models - Far more significant and cost-effective quality
gains are achievable by improving design and
models than by improving code - Benefits from careful, detailed, explicit
modeling is not limited to the application under
development but extend to all the processes,
artifacts, languages, tools and platforms used
for this development
5MDA Principles
- A high degree of software process automation can
be achieved by - Building a variety of models, each one with a
different role in the process, - Making each of these models machine processable
by expressing it in a semi-formal notation devoid
of natural language - Defining this notation itself as an
object-oriented model (called a meta-model) - Storing all models and meta-models with
traceability links in a repository accessible to
model manipulation software - Abstracting generic transformations between
pairs of meta-models that computationally codify
the know how for one software process stage - Using model transformation engines to apply
these transformations to the source model of a
process stage and generate the target model of
that stage - Define meta-models for the meta-modeling and
model transformation notations
6CurrentMainstreamOOSE
Abstraction
Executability
7Manual MDEExtreme Modeling
Abstraction
Executability
8Transformation Based MDEUML Programming
Abstraction
Fully Refined Requirement Analysis w/ UML/OCL
or DSPIML CASE Tool
High-Level Realization PIM Transformation Base
High-Level Realization PIM Transformation Developm
ent
Fully Refined Specification Platform Independent
Model (PIM) UML/OCL or DSPIML
High-Level Design w/ UML/OCL or DSPIML CASE Tool
PIM to PSM Translation Transformation Development
Realization PIM Refinement Transformation Developm
ent
PSM to Source Code Translation Transformation Base
High-Level Realization PIM UML/OCL or DSPIML
PIM to PSM Translation Transformation Base
Realization PIM Refinement Transformation Base
DesignFull Refinement w/ UML/OCL or DSPIML CASE
Tool
Fully Refined Realization PIM UML/OCL or
DSPIML
PSM Profiled UML/OCL or DSPSML
Source Code to Executable Code Translation
PSM to Source Code Translation
Source Code
Executable Code
Executability
9MDA Software Process
Domain Computation Independent Model
Application Requirement Model
Platform Model
10Artifact Reuse with MDA Process
Application A Requirement Model
Platform P Model
Application A Platform P Specific Model
Testing Model AP
Application A Platform Independent Model
Application B Platform Independent Model
Domain Computation Independent Model
Application B Requirement Model
11Automated MDA Process Design
Design Transformations
12Automated MDA Process Implementation
PIM ? PSM Transformations
Platform Model
Application Platform Specific Model
Application Platform Independent Model
13Automated MDA Process Code Generation
Source Code Meta-Model
Code Generation Transformations
Application Platform Specific Model
Application Source Code
14Automated MDA Process Test Generation
Test Generation Transformations
Application Platform Specific Model
Testing Model
15Automated MDA Process Reverse Engineering
PSM ? PIM Reverse Engineering Transformations
Platform Model
Application Platform Specific Model
Application Platform Independent Model
16Automated MDA Process PIM Refactoring
PIM Refactoring Transformations
Refactored PIM
Legacy PIM
17Automated MDA Process PSM Refactoring
PSM Refactoring Transformations
Refactored PSM
Legacy PSM
18Automated MDA Process Code Refactoring
Source Code Meta-Model
Source Code Meta-Model
Code Refactoring Transformations
Refactored Source Code
Legacy Source Code
19OMG Tasks in MDA Initiative
- Define meta-modeling standard Meta-Object
Facility (MOF) - Define general-purpose visual modeling standard
Unified Modeling Language (UML) - Define complementary general-purpose, semi-formal
textual modeling standard to make both MOF
metamodels and UML models more precise and devoid
of natural language Object Constraint Language
(OCL) - Define general-purpose, both machine-processable
and user-readable persistent textual format for
both MOF meta-models and UML models XML Model
Interchange (XMI) - Define model manipulation standard Query View
Transform (QVT) - Each of these standards to be defined in terms
of - Abstract syntax as a MOF meta-model
- Concrete syntax (visual or textual)
- Formal semantics (very partial up to now)
20Relationships between OMGs MDA standards
UML2
UML2 Infrastructure
...
Constructs
Associations ...
merge
merge
merge
merge
merge
merge
MOF2
merge
21Example Meta-Model
extends
extends
MOF Meta-Model of Use-Cases
1 ..
1 ..
0 ..1
includes
e-Store
OrderItem
UML Model Use-Case Diagram
ValidateCart
22Example Meta-Meta-Model
MOF Meta-Model of MOF Meta-Model
1 ..
extends
MOF Meta-Model of UML Use-Cases
extends
1 ..
1 ..
0 ..1
includes
23Example of XMI Encoding
- ltumlModelgt
- ltuseCase id oiucgt
- lttitle,visib pubgt orderItem lt/titlegt
lt/useCasegt ltuseCase id vcucgt
lttitle,visib pubgt validateCart lt/titlegt
lt/useCasegt - ltactor id cagt ltname, visib pubgt
Client lt/namegt lt/actorgt - ltsystem id essgt ltname, visib pubgt
e-Store lt/namegt lt/systemgt - ltactor2useCase id ca2oiucgt
- ltin idref ca/gt ltout idref oiuc/gt
lt/actor2useCasegt - ltactor2useCase id ca2vcucgt
- ltin idref ca/gt ltout idref vcuc/gt
lt/actor2useCasegt - lt/umlModelgt
-
e-Store
orderItem
validateCart
Client
24Other Stakeholders Tasks in MDA Initiative
- Platform providers
- Define platform model as UML Profile or PSM
meta-model in MOF - Multiple domains or wide domain application
providers - Use only standards defined by OMG and platform
providers - Narrow domain application providers
- Define special-purpose modeling languages in MOF
- MDA CASE tool providers
- Implement model base development and management
services such as edition, syntactic validation,
import, export, persistence, query, access
control, versioning and traceability for - Models in UML, OCL and MOF-specified
user-defined languages - MOF meta-models
- QVT and MOF-specified model transformation
languages - Define APIs to program new model processing
services on top of theses basic services - Implement model transformation engines based on
MOF and QVT - Implement code and test generation services from
PSM
25MDA Third-Party Standards and Tools
- Java Modeling Interface (JMI)
- Standard from Java Community Process (JCP)
- Defines a set of Java interfaces to process
models represented as Java objects - Reflective interfaces define general model
manipulation operations that are independent of
the models meta-model - Taylored interfaces define model manipulation
operations that are specific to models that
follow a given meta-model - Taylored interfaces can be automatically
generated from a MOF meta-model - Eclipse Modeling Framework (EMF)
- Standard from the Open Source Java-Based IDE
project Eclipse (www.eclipse.org) - Plug-in for Eclipse IDE framework
- Implements similar reflective and taylored
interfaces than JMI - Implements generation of taylored interface from
MOF meta-model - Implements generation of Eclipse-integrated
model editor from MOF meta-model
26Model representation as XML document and Java
Objects
File System
Main Memory
Model
27Java Model Representation vs. Implementation
- Java objects generated using the taylored and
reflective interfaces of JMI or EMF merely
represent model elements - They only provide a handle to process these
elements using Java - They are completely different from Java objects
that implement these model elements - Though among many other uses, theses model
representation Java objects can be used as input
to program in Java the generation of model
implementing Java objects - But they could also be used to generate a C or
Prolog implementation of the application or any
other MDA service - Java model representation objects are useful for
MDA CASE tools during the development process of
an application, whereas Java model implementation
objects are useful for this application - In one case, Java is used to implement CASE tools
functionalities, in the second case, Java is used
to implement application functionalities