An Overview of Model-Driven Engineering and Architecture - PowerPoint PPT Presentation

About This Presentation
Title:

An Overview of Model-Driven Engineering and Architecture

Description:

An Overview of Model-Driven Engineering and Architecture Jacques Robin Outline What is MDA? MDA Principles MDA Process and Software Reuse OMG MDA standards Third ... – PowerPoint PPT presentation

Number of Views:375
Avg rating:3.0/5.0
Slides: 28
Provided by: Jacque63
Category:

less

Transcript and Presenter's Notes

Title: An Overview of Model-Driven Engineering and Architecture


1
An Overview of Model-Driven Engineeringand
Architecture
  • Jacques Robin

2
Outline
  • What is MDA?
  • MDA Principles
  • MDA Process and Software Reuse
  • OMG MDA standards
  • Third party providers roles, standards and tools

3
What 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/)

4
MDA 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

5
MDA 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

6
CurrentMainstreamOOSE
Abstraction
Executability
7
Manual MDEExtreme Modeling
Abstraction
Executability
8
Transformation 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
9
MDA Software Process
Domain Computation Independent Model
Application Requirement Model
Platform Model
10
Artifact 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
11
Automated MDA Process Design
Design Transformations
12
Automated MDA Process Implementation
PIM ? PSM Transformations
Platform Model
Application Platform Specific Model
Application Platform Independent Model
13
Automated MDA Process Code Generation
Source Code Meta-Model
Code Generation Transformations
Application Platform Specific Model
Application Source Code
14
Automated MDA Process Test Generation
Test Generation Transformations
Application Platform Specific Model
Testing Model
15
Automated MDA Process Reverse Engineering
PSM ? PIM Reverse Engineering Transformations
Platform Model
Application Platform Specific Model
Application Platform Independent Model
16
Automated MDA Process PIM Refactoring
PIM Refactoring Transformations
Refactored PIM
Legacy PIM
17
Automated MDA Process PSM Refactoring
PSM Refactoring Transformations
Refactored PSM
Legacy PSM
18
Automated MDA Process Code Refactoring
Source Code Meta-Model
Source Code Meta-Model
Code Refactoring Transformations
Refactored Source Code
Legacy Source Code
19
OMG 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)

20
Relationships between OMGs MDA standards
UML2
UML2 Infrastructure
...
Constructs
Associations ...
merge
merge
merge
merge
merge
merge
MOF2

merge
21
Example Meta-Model

extends
extends
MOF Meta-Model of Use-Cases
1 ..
1 ..
0 ..1
includes
e-Store
OrderItem
UML Model Use-Case Diagram
ValidateCart
22
Example 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
23
Example 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
24
Other 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

25
MDA 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

26
Model representation as XML document and Java
Objects
File System
Main Memory
Model
27
Java 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
Write a Comment
User Comments (0)
About PowerShow.com