SlideShare une entreprise Scribd logo
1  sur  92
Télécharger pour lire hors ligne
Metamodeling and the
Model Driven Architecture
         (MDA)
      Paolo Ciancarini
Agenda
    Model Driven Engineering
    Metamodeling
    Metamodeling in UML
    Model Driven Architecture
    OMG technologies for MDA
Enterprise Computing
    Software is a complex and expensive product
    Enterprise Computing adds further requirements:
         Rapid change in organizational assets
         Continuous evolving partnerships
         Heterogeneous end-user clients
               e.g., Fat clients, Web clients, Cellular Phone, iPod, DTT TV
         Need for information ubiquity
               e.g., in mobile/opportunistic networking, cross-network roaming
    The only thing we can predict with confidence
     about the future of software platforms is that things
     we cannot predict will happen
Motivations
    There is a strong pressure on the industry to
     increase
       Quality
       Longevity

       Reusability

     of software products, while reducing costs
    In order to fulfill this needs the productivity
     of the software industry must be improved
    Most increments in software productivity are
     obtained increasing the abstraction level
Levels of abstractions
    The history of software development is a
     history of raising the level of abstraction
            A stack of
                             •  In Programming Languages
     Programming Languages
                                •  e.g., Assembler, C, C++, Visual C#, …

                             •  In Software Architectures
             3GL
                                •  e.g., Client-Server, n-tier, SOA, …
         Assembly            •  In Operative Systems
         Language
                                •  e.g., Virtual Machines, Middleware, Grid

          0s and 1s          •  In data representation
                                •  e.g., File, Database, XML, …
Model Driven Engineering (MDE)
    MDE is a software development method for handling the
     complexity of software platforms and related problems
    Main feature: “Everything is a model”: the models are first-
     class abstractions closer to domains than to algorithmic
     ideas and concerns
    A model is a simplified representation of a part (i.e. a
     system) of the real world



                                   Model
              the modeling space
              the real world        isRepresentedBy


                                   System
MDE: Approaches
    MDE concepts can be applied in different
     ways producing different approaches, each
     one relying on a specific set of tools
Example: EMF
    The Eclipse Modeling Framework (EMF) is a modeling
     framework and code generation facility for building
     applications based on a structured data model
    From a model specification described in XMI, EMF
     produces a set of Java classes for the model, a set of
     adapter classes that enable viewing and editing the
     model, and a basic editor
    Models can be specified using annotated Java, UML,
     XML documents, or modeling tools, then imported into
     EMF
    EMF itself provides the foundation for interoperability with
     other EMF-based tools and applications
Approach
        Requirement model:
       defines the system in its
            environment

        Analysis and design
         model: defines the
        system architecture

      Realization model: defines
       how the system is built



      Code of the system and
      configuration artifacts
Models represent systems
    A system S is a delimited part of the world considered
     as a set of elements in interaction
    A model M is a representation of a given system S
     satisfying the principle of substitutability
    Principle of substitutability: A model M is said to be a
     representation of a system S for a given set of questions
     Q if, for each question q in Q, the model M will provide
     exactly the same answer that the system S would have
     provided in answering the same q
    The relation between a model and a system is called
     representation of
Models and Reality
A class diagram
models a set of objects
Example with three levels
Discuss

    A model which describes a model is
     called metamodel
    Metamodels are descriptions of
     descriptions: why are they important to
     develop software?
Genesi, 2:19

    So out of the ground the Lord God
     formed every beast of the field and
     every bird of the air, and brought them
     to the man to see what he would call
     them; and whatever the man called
     every living creature, that was its name
Metamodeling
Meta-model
A meta-model defines concepts
and their relationships thanks to
a class diagram
A meta-model only defines
structure (no semantics)
A model is an instance of a
meta-model if it respects the
structure defined by the meta-
model
The relation between a model
and its metamodel is called
conformance
The UML meta-model defines
the structure that all UML
models must have
Multiple levels of abstractions
System-Model-Metamodel Relations

    The extraction of an element from system S to build a
     model M is guided by a meta-model MM
    MM plays the role of “filter” in the selecting from the
     system S the elements for building the model M



                                                  metamodel
                                                     MM

                                                       conformsTo


                                   repOf           terminal
                system S      Representation of
                                                   model M
Exercises


    Describe a metamodel for libraries
    Describe a metamodel for cars
    Describe a metamodel for TV sets
    Describe a metamodel for CRC cards
    Describe a metamodel for Petri Nets
Metadata architecture
Four Layered Architecture
Layer            Description                 Example


Meta-metamodel   Defines metamodel           metaClass,
                                             metaAttribute,
                                             metaOperation

Metamodel        An instance of meta-        Class, attribute
                 Metamodel. Defines a        operation, component
                 model

Model            Language for describing an Employee
                 information domain. Defines
                 a set of related objects that
                 represent a concept
User object      An instance of the model.   :Sally
                 An example information
                 domain
OMG Modeling Infrastructure

                      Meta-Object Facility (MOF)
M3
        Instance_of

                      UML Metamodel
M2

        Instance_of

                      Modeling concepts
M1

        Instance_of

                      User Data
M0
                                            23
4-Layers Metamodeling
          A model, or terminal model, (M1) is a
           representation of a real object (in M0)
           conforming to a metamodel (M2)
          A metamodel (M2) is a representation of
           a set of modelling elements (in M1)
           conforming to a meta-metamodel (M3)
          A meta-metamodel (M3) is a set of
           modeling elements used to define
           metamodels (M2 ed M3) conforming to
           itself




       N.B. M2, M2 and M3 are all “models”. We could
       represent them using the same modeling language
       (e.g., UML)
Example
Meta-metamodel
•    A metamodel describes information about models
•    A meta-metamodel describes information about
     metamodels
•    Metamodels defined using the same meta-
     metamodel
     -  can be compared for conformance

     -  can exchange information

     -  can be used by the same tools that understand

        the meta-metamodel
Meta Object Facility (MOF)
•    Enables meta-metamodeling of UML level
     metamodels
•    It defines a small set of concepts (such as
     package, class, method, attribute…) that allow to
     define and manipulate models of metadata (data
     about data)
•    All definitions are described using a subset UML
     notation
MOF
Model




   28
MOF Key
Abstract
 Classes
MOF Key Abstract Classes
•    ModelElement base Class of all M3-level Classes;
     every ModelElement has a name
•    Namespace base Class for all M3-level Classes that
     need to act as containers
•    GeneralizableElement base Class for all M3-level
     Classes that support generalization (i.e. inheritance)
•    TypedElement base Class for M3-level Classes such
     as Attribute, Parameter, and Constant whose
     definition requires a type specification
•    Classifier base Class for all M3-level Classes that
     (notionally) define types; examples of Classifier
     include Class and DataType
Main Concrete Classes
•  The key concrete classes (or meta-metaclasses) of MOF:
    -  Class
    -  Association
    -  Exception (for defining abnormal behaviours)
    -  Attribute
    -  Constant
    -  Constraint




                                                        31
Key associations
•    Contains: relates a ModelElement to the Namespace that
     contains it

•    Generalizes: relates a GeneralizableElement to its
     ancestors (superclass and subclass)

•    IsOfType: relates a TypedElement to the Classifier that
     defines its type
     -    An object is an instance of a class

•    DependsOn : relates a ModelElement to others that its
     definition depends on
     -    E.g. a package depends on another package
UML                                                                         Metaclasses used in class, package,
Meta
                                           Element
                                                                           component and deployment diagrams
Model
                                                              importedElement
                                      ModelElement            *
                                                              ownedElement
                                          name
                                                              *
                                                                                                                               0..1
                                                                                                                               0..1
          Relationship                                        Feature
Link                                  Comment                                                                                      Namespace           Parameter          Instance
                                                              visibility        *                   GeneralizableElement
                                                                               {ordered}                                                               defaultValue
*                                                                                                    isRoot                                                               *
                                      *                                                                                                                kind
                                                                                    child            isLeaf
          Generalization                                                                                                                           * * * {ordered}
                                      *                                                              isAbstract
                                  specialization                                    parent
           discriminator
                                                                                                                                                                              Object

                                                                                type           owner
                              AssociationEnd            *
                    2..*                                                                                          type
             connection                                 participant        specification       Classifier
                               isNavigable
                               aggregation              *                                *                        1..*
    Association                multiplicity
                               0..1

                                  StructuralFeature                BehaviouralFeature
                                      multiplicity
                                                                                                                                      Package      *
                  qualifier   *
                     Attribute                   Operation                                   Method
                                                                                    **
                     initialValue                isAbstract        specification             body
                                                                                                                                                 Model


                                                                                                                                                              resident
                                      Class           Interface               DataType                Subsystem             Node        *                                Component
                                                                                                                                        deploymmentLocation          *




        AssociationClass                                          Primitive                  Enumeration                 ProgrammingLanguageType

                                                                                             1..*

                                                                                         EnumerationLiteral
                      34
A fragment of the UML Meta-Model




                not self.isAbstract implies
                 self.allOperations->forAll(op |
                   self.allMethods->exists(m |
                     m.specification includes (op)))
Model Elements
•    An element is an atomic
     constituent of a model
                                                    Element


•    Element is the top metaclass in
     the metaclass hierarchy
                                                  ModelElement
•    A model element is a named
     entity in a model                           name



•    It is the base for all modeling
     metaclasses in UML
     -    All other modeling metaclasses are
          either direct or indirect subclasses
          of ModelElement
Features
•  Feature is an abstract class                                           Feature
   that declares a behavioral or                                        visibility     *
                                                                                     {ordered}
   structural property of
    -  an instance of a Classifier
    -  the Classifier itself                                                                     owner
                                                                                                  Classifier


•  A behavioral feature refers to
   a dynamic feature of a model                     StructuralFeature           BehaviouralFeature
                                                  multiplicity
   element
    -  E.g. operation or method       Attribute             Operation
                                                                                       **
                                                                                                 Method
                                     initialValue          isAbstract specification         body


•  A structural feature refers to a
   static feature of a model
   element
    -  E.g. attribute
Classifier
•  A classifier is an element that describes behavioral and
   structural features
    -  E.g. class, data type, interface, component

•  Classifier is an abstract class that
    -  declares a collection of Features, such as Attributes, Methods…
    -  has a name, which is unique in the Namespace enclosing the
       Classifier


             Feature
                              *                                                             Namespace
                                                       Classifier
            visibility      {ordered}



                                                                                                         resident
    Class     Interface              DataType      Subsystem             Node      *                                    Component
                                                                                   deploymmentLocation              *




                         Primitive         Structure            Enumeration            ProgrammingLanguageType


                                                                1..*

                                                              EnumerationLiteral
                                                                                                                                    38
Classifier
•  A classifier is a generalizable element and defines a
   namespace
•  It can have
   -  association ends
   -  parameters
   -  instances


                               Feature
                                                                                Namespace      Parameter   Instance
                             visibility     *            GeneralizableElement
                                          {ordered}                                         defaultValue
                                                        isRoot                                             *
                                                                                              kind
                                                        isLeaf
                                                                                            *
                                                        isAbstract
                                                                                                               Object

                         *                 type       owner
       AssociationEnd
                                                       Classifier    type
       isNavigable      participant specification
       aggregation       *                     *                     1..*
       multiplicity
Relationship
                                                 Relationship
•  A relationship is a connection
   among model elements                         Generalization
                                                 discriminator


•  UML defines several relationships
   such as:                              Association
   -  Association
   -  Generalization

•  UML defines other types of
   relationships that are not shown in
   this diagram, such as:                                         Class
   -  Dependency
   -  Flow
                                               AssociationClass
Namespace
                                                   importedElement

•  A namespace is a part of a     ModelElement
                                   name
                                                   *
                                                   ownedElement


   model that contains a set of                    *
                                                                     0..1
                                                                     0..1
   other model elements                    GeneralizableElement
                                                                          Namespace

   -  E.g. Associations and                 isRoot
                                            isLeaf
      Classifiers                           isAbstract


   -  the name of an owned
      model element is unique             Classifier


      within the namespace

•  Namespace is an abstract                                                 Package    *

   metaclass and it subclasses
   are                                                        Subsystem               Model

   -  Classifier
   -  Package
Data Types
•  UML data types include
   -  primitive built-in types (such as integer and string)
   -  definable enumeration types (such as Boolean whose literals are false
      and true); enumerations are a user-defined data types whose instances
      are literals (specified by the user)

•  Programming languages data types
   -  are specified according to the semantics of a particular programming
      language
   -  are not portable among languages (except by agreement among the
      languages)
   -  do not map into other UML classifiers


                                           DataType




                               Primitive              Enumeration          ProgrammingLanguageType

                                                      1..
                                                      *
                                                      EnumerationLiteral                             42
Namespace
                                                                                                      Classifier
                                              Relationship
                                                                            AssociationEnd
                                                                             isNavigable
                 Package                                                     aggregation               Class
                                              Association                    multiplicity




                            BankSystem


                                   Customer    1..2                     *         Account

                                                                             accountNumber
 StructuralFeature
                                                                             balance                               Relationship
 multiplicity                                                                overdraftLimit
                                                                             withdraw
      Attribute                                                              deposit                               Generalization
     initialValue                                                                                                  discriminator




BehaviouralFeature
                                                             Chequing               Saving    CreditCard

                                                                                              expiryDate
     Method




                                                         Mapping of UML Models to
                                                        Metamodel Elements (Example)
Use Case Diagrams Metamodel
Mapping Use Cases Model
      to Metamodel                                                            Classifier

                        Classifier

                                                                               UseCase

                         Actor

                                                                                                      Relationship



                                                       Open file                                      Generalization
                                                                                                      discriminator


        Ordinary User

                                     Open file by                   Open file by
                                     typing name                     browsing
                                                                                                       Relationship


                                            «extend»                       «include»
                                                                                                           Include

                                                                   Browse for file
          System
                                 Attempt to open file
        Administrator
                                  that does not exist
                                                                                       Relationship




                                                                                           Extend
State Machines
(Main Metamodel)
Mapping State Machines
     to Metamodel
                                                                  State

                                                                                         State
                    StateVertex
                                                              SimpleState            0..1

                   PseudoState                                                       0..1 +entry
                                                                                    Procedure


                 Closed                                 Opening
              Enter /             pressButton       Enter /
               stop motor                            run motor forwards

                      closingCompleted                                      Transition
                                                                                            *
                                                         openingCompleted
                                      pressButton

                                                                                                 0..1
            Closing                pressButton         Open                                       Event
      Enter /                                       Enter /
       run motor in reverse                          stop motor
Extension Mechanisms Metamodel
Example                                    GeneralizableElement



                                                                             Stereotype




                                           {ordered}         edge
                                                                     <<geometry>
               LinearShape                                   1..*
                                                                     LineSegment
                                                                    startPoint: Point
                                                                    endPoint: Point
                                                                    length : int
  Path        Line          Polygon                                 {startPoint <> endPoint}
 length    {edge->size=1}        {edge->first.startPoint =
{length =                         edge->last.endPoint}
edge.length->sum}
                            RegularPolygon
                                      {edge->forAll(e1,e2 |
                                       e1.length = e2.length)}
            Constraint
Model Driven Architecture (MDA)
    MDA is a theory of software construction based on a set of
     standards provided by the Object Management Group
    MDA is a kind of MDE, that is domain engineering based on
     developing models of software systems
    The idea of MDA is to exploit a modeling language (such as
     UML) as a programming language rather than just as a
     support for design
    This is not a new approach, it has notable ancestors:
        Database schemas, generative programming, CASE

         tools, WYSIWYG interfaces
MDA Base Components

    MDA is based on a set of technologies that
     allow:
         Domain specification (domain specific
          languages)
         Modeling and metamodeling
         Model transformations which support the
          development of a system independently from:
               platforms
               platforms evolution
               application domains
MDA Dimensions
    Horizontal: different domains that are not more or less abstract
     than others, like business or technology
        E.g., marketing, engineering, sales, etc.

        E.g., performance, security, fault tolerance etc.

    Vertical: different level of abstraction of the same domain of a
     system
        From physical data, logical data models, middleware,

         applications specifications, component assemblies, business
         process models, business goals and strategies
    Evolutionary: different systems, legacy, ongoing and upcoming,
     as-is, as-was and as-could-be
        This is technically similar to the horizontal dimension, but it is

         more concerned with evolution-focused architectural rules
         and modeling standards
MDA: the Big Picture

This picture gives
some insights
about the
technologies
constituting MDA
together with the
platforms, the
kinds of
application and
the domains of
application that it
addresses
Key Idea

    create a source model
         independent from platform implementation details
         transform it in a target model richer of details than the
          source model
               Use of a proper transformation language
Basic Concepts

    Model: a simplified representation of
         a system
         a part of a system
         a set of system functionalities
    Point of view: an abstraction technique with
     the goal of highlighting some features of the
     system
    View: a representation of the system from the
     perspective of a particular point of view
Basic Concepts
    Refinement: it is related to a model M1
     derived from model M2, where M1 has a
     number of details greater than M2
         M1 is a refinement of M2
    Zooming: when we move from a model with a
     different level of abstraction than another one
         we have like a zoom-effect
    System architecture: the specification of
         Components
         Connectors
         Interaction rules of components by means of
          connectors
Basic Concepts

    Model driven: the use of models through all
     the phases of software development
    Platform independence: a property of a
     model developed regardless of platform
     details
    Model transformation: the process of
     converting one model into another one
     concerning the same system
Models, metamodels and platforms
MDA: Core Standards

    How do we can specify models, metamodels
     and meta-metamodels?
    OMG provides a set of standards supporting
     such activities:
         MOF 2.0
         UML 2.3
         XMI 2.0
         CWM 1.1
         QVT (Query View Transform)
MOF
    MOF is an OMG standard to write metamodels
    Can be used to model the abstract syntax of
     Domain Specific Languages
    Two flavors: EMOF (Essential MOF), CMOF
     (complete MOF)
    Kermeta is an extension to MOF allowing
     executable actions to be attached to EMOF meta-
     models, hence making it possible to also model a
     DSL operational semantics and obtain an
     interpreter for it
Metamodel
    The correspondence between a model and a system is
     defined by a metamodel:




    Terminology: a collection of concepts with their properties
     and relations
    Assertions: a collection of additional rules by which
     terminology elements can be constrained
Metamodels in Software Engineering

    Currently, metamodels focus on:
         Software process modeling (PIF)
         Software product modeling (UML, CWM)
    Many new fields are involved:
         Model of cost
         Model of resource consumption
         Models of test, QoS, and software measurements
         Requirements modeling (e.g. Use Cases)
         Know-how modeling (e.g. Patterns)
         Model validation
Meta-metamodel

    A Meta-metamodel provides the language to define a
     set of metamodels
         Definition of abstract syntax: concepts, relationships, and
          wellformedness rules
         Definition of concrete syntax: shapes, layout, and physical
          interchange formats
         Definition of semantic domains: the abstract logical space in
          which models find their meanings
         Definition of mappings between domains
A Metamodel Language: MOF 2.0


    The Meta-Object Facility (MOF) is an OMG
     specification defining an abstract language and a
     framework for specifying, constructing, managing,
     and exchanging, technology-neutral metamodels
    MOF defines a framework for implementing
     repositories holding the persistent representation of
     the metamodels
The MOF Meta-metamodel
MOF: Features

    MOF belongs to the MDA architecture
    MOF meta-metamodel defined in itself
    MOF 2.0 reuses a part of the UML 2.0 metamodel
    MOF to XML mapping: OMG XMI (XML Metadata
     Interchange) specification
    MOF to Java mapping: JMI (Java Metadata
     Interchange)
UML 2.0
    UML is a language with a very broad scope covering a
     large and diverse set of application domains
    It is structured in two main parts:
         Infrastructure
         Superstructure
    The UML 2.0 metamodel is aligned with the MOF 2.0
     meta-metamodel for accomplishing the MDA-vision
    In MDA all the four-layer models are defined by means
     of UML or its extensions
UML 2.0 Infrastructure




Note: the Core package is the same of the MOF
Meta-metamodel
The MDA 4-Layers Architecture (1/2)


    The alignment between UML 2.0 and MOF 2.0
     enables to see every UML 2.0 construct like an
     instance of a MOF 2.0 element
         In this way, we can see MOF 2.0 like the meta-
          metamodel of UML2
    Every UML 2.0 model is an instance of the
     UML 2.0 metamodel
The MDA 4-Layers Architecture (2/2)

    The UML metamodel stack is instantiated in
     MDA by:
         M3: MOF 2.0
         M2: UML 2.0
         M1: An UML 2.0 model at the “class” level
         M0: A “real world” object represented by an UML 2.0
          model at the “object” level
    This stack represents the four-layers architecture
4-Layers MDA: an Example
4-Layers Metamodelling Instance
UML 1.x Metamodel (1/2)
UML 1.x Metamodel (2/2)
UML 2.1 Use-Case MOF Metamodel
XMI

    XML Metadata Interchange (XMI) is the OMG
     technology for interchanging models in a
     serialized form
    XMI focuses on the interchange of MOF
     metadata
         i.e., metadata conforming to a MOF-based
          metamodel
    XMI can also be used for model representation
     in model transformations
XMI
    XMI uses XML for the transfer syntax and interchange format
    XML Document Type Definitions (DTD) or Schema are specified
     to enable the transfer and verification of:
        UML-based models (e.g. mymodel.xmi, using uml.dtd or
         uml.xsd)
        MOF-based metamodels (e.g. uml.xmi, using mof.dtd or
         mof.xsd)
        Models based on other MOF-based meta-models (e.g.
         mymodel.xmi using cwm.dtd or cwm.xsd)
CWM
    The Common Warehouse Metamodel (CWM)
     is the OMG standard for data warehouse
    CWM is a specification for modeling metadata
     for relational, non-relational, multi-dimensional,
     and other objects found in a data warehouse
    CWM can be used to extend UML for
         supporting data warehouse environments
         modeling transformations
         structuring transformation specifications
    The goal is to integrate development tools with
     data deployment solutions
The Metadata Problem
CWM addresses the problems facing any company:
    Many databases
    Many repositories
    Different schemas describing the “same” data
    Moving data requires manual schema
     transformation
CWM Integrates Data

    CWM integrates existing data models
    Maps to existing schemas
    Supports automated schema generation
    Supports automated database loading
    The basis for data mining and OLAP (OnLine
     Analytical Processing) across an enterprise
CWM Defines Metamodels

    CWM Foundation              OLAP
    Relational Data             Data Mining
    Record Data                 Info Visualization
    Multidimensional Data       Business Nomenclature
    XML Data                    Warehouse Process
    Data Transformations        Warehouse Operation




     81
CWM: Fragment of the Relational Metamodel

                                       /constraint              /constrainedElement
            CheckConstraint                                                           {ordered}
 deferrability : DeferrabilityType     *                                         *
                                                                           Column
                                                                                                                                /type      SQLDataType
   *      /constrant                                      precision : Integer                              *
                                                                                                                                        typeNumber : Integer
                                                          scale : Integer                                  /structuralFeature     1
                                     0..1      /feature   isNullable : NullableType
                       ColumnSet
                                                          length : Integer
                                     /owner           *   collationName : String
                                              {ordered}   characterSetName : String
                                                          / optionScopeColumnSet : NamedColumnSet
                                                          / referencedTableType : SQLStructuredType




                   NamedColumnSet
            / optionScopeColumn : Column
            / type : SQLStructuredType
            / usingTrigger : Trigger
                                                                                             SQLDistinctType
                                                                                 length : Integer
 /constrainedElement
                                                   QueryColumnSet                precision : Integer
                                                                                 scale : Integer
                                               query : QueryExpression
                                                                                 / sqlSimpleType : SQLSimpleType

                                                                                     sqlDistinctType   *
   *
                                                                                                                                        SQLSimpleType
{ordered}
                                                                                                                           characterMaximumLength : Integer
                                                                                                                       1   characterOctetLength : Integer
                                                                                                                           numericPrecision : Integer
                                                                                                           sqlSimpleType   numericPrecisionRadix : Integer
                                                                                                                           numericScale : Integer
               Table                                                                                                       dateTimePrecision : Integer
                                                                View
       isTemporary : Boolean
                                                 isReadOnly : Boolean
       temporaryScope : String
                                                 checkOption : Boolean
       / trigger : Trigger
                                                 queryExpression : QueryExpression
       isSystem : Boolean
The CWM Metamodel
Operational                        Data
                                 Warehouses
                                                   Extract Transform
Data Sources


 Source                           Target      Source                      Target



 Source                           Target      Source      CWM Tool        Target



 Source                           Target      Source                      Target



                  Pairwise                                  Hub
               (9 connections)                           Drill Down
                                                        (6 connections)
OMG Metamodel Architecture
                              M                      MOF: Class, Attribute,
                              I   Meta-metamodel          Operation,
                              D   Layer (M3)              Association
                              D
                              L
Standard Components           E
                              W
 Modeling Notation: UML      A                      UML: Class, Attribute
                              R
 Metadata Interchange: XMI       Metamodel          CWM: Table, Column
                              E
                                  Layer(M2)            ElementType, Attribute
 Metadata API:
    MOF IDL Mapping
    JMI – MOF/Java Mapping    A
                              P
                              P   Metadata/Model        Stock: name, price
CWM is based on               L
                              I
                                  Layer(M1)
 UML                         C
                              A
 MOF                         T
 XMI                         I
                              O
                                  User Data/Object
                                                      <Stock name=“IBM”
                                  Layer (M0)
                              N                              price=“112”/>
The CWM Metamodel (1.0)
Management                   Warehouse                           Warehouse
                              Process                            Operation


Analysis                                         Data     Information       Business
               Transformation OLAP
                                                Mining    Visualization   Nomenclature


                  Object                                           Multi-
Resource       (Core+Behavioral+   Relational     Record                         XML
                 Relationships)                                 Dimensional



Foundation      Business Data                Keys   Type    Software
                                 Expressions
               Information Types             Index Mapping Deployment



Object Model          Core             Behavioral        Relationships      Instance
Metamodels, Syntaxes and Semantics

    The UML language has been defined by means
     of a MOF metamodel
    In order to define a MOF metamodel we can use:
         MOF to (formally) define the abstract syntax of a set of
          modelling constructs
         The natural language to (informally) describe some
          parts of the semantics
    The concrete syntax can be expressed by a
     graphical notation or not
         Example: a UML diagram can be represented in XML
          by means of the XMI concrete syntax
               In this case, the XMI file represents the UML diagram
Conclusions
    MDA is a powerful family of technologies
    Its basis is metamodeling
    The technology of model transformations
     (see next lecture) makes the approach
     practical and powerful
    It is important because it allows to manage
     automatically the design and maintenance
     problems typical of large software systems
Self test questions

    What is a model?
    What is a metamodel?
    What is conformance to a metamodel?
    What is MOF?
    What is CWM?
    Which are the main differences between
     UML1.x and UML2.x?
References
    Schmidt, Model-Driven Engineering. IEEE
     Computer, 39:2(25-31), February 2006.
    Frankel, Model Driven Architecture: Applying
     MDA to Enterprise Computing, Wiley, 2003
    Mellor, Scott, Uhl, Weise MDA Distilled:
     Principles of Model-Driven Architecture,
     Addison-Wesley, 2004
    Mellor & Balcer, Executable UML, a foundation
     for MDA, Addison-Wesley 2002
    OMG, UML Infrastructure 2.3, 2010
Useful sites

    www.omg.org/mda!
    www.ibm.com/developerworks/rational/library/3100.html!
    www.agilemodeling.com/essays/mda.htm!
    martinfowler.com/bliki/ModelDrivenArchitecture.html
Interesting tools
    www.eclipse.org/modeling/emf/?project=emf
    www.andromda.org
    www.bluage.com/
    www.openarchitectureware.org
    www.openmdx.org
    www.ibm.com/developerworks/rational/products/rhapsody/
Questions?

Contenu connexe

Tendances

Model driven architecture
Model driven architectureModel driven architecture
Model driven architectureBiruk Mamo
 
Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...
Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...
Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...Lucas Jellema
 
Presentation 1 - SSRS (1)
Presentation 1 - SSRS (1)Presentation 1 - SSRS (1)
Presentation 1 - SSRS (1)Anurag Rana
 
SAP Cloud Platform Integration Services – L1 Deck
SAP Cloud Platform Integration Services – L1 DeckSAP Cloud Platform Integration Services – L1 Deck
SAP Cloud Platform Integration Services – L1 DeckSAP Cloud Platform
 
Interface Fact Sheets in LeanIX Enterprise Architecture Management
Interface Fact Sheets in LeanIX Enterprise Architecture ManagementInterface Fact Sheets in LeanIX Enterprise Architecture Management
Interface Fact Sheets in LeanIX Enterprise Architecture ManagementLeanIX GmbH
 
Modernize Java Apps on Microsoft Azure
Modernize Java Apps on Microsoft AzureModernize Java Apps on Microsoft Azure
Modernize Java Apps on Microsoft AzureDavid J Rosenthal
 
M05 Metamodel
M05 MetamodelM05 Metamodel
M05 MetamodelDang Tuan
 
Finacle 3tier-architecture-converted
Finacle 3tier-architecture-convertedFinacle 3tier-architecture-converted
Finacle 3tier-architecture-convertedMani kandan
 
Difference Between TOGAF 9 and TOGAF 10
Difference Between TOGAF 9 and TOGAF 10Difference Between TOGAF 9 and TOGAF 10
Difference Between TOGAF 9 and TOGAF 10Ashish Tandon
 
An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to MicroservicesCisco DevNet
 
DASK and Apache Spark
DASK and Apache SparkDASK and Apache Spark
DASK and Apache SparkDatabricks
 
Simplifying Model Management with MLflow
Simplifying Model Management with MLflowSimplifying Model Management with MLflow
Simplifying Model Management with MLflowDatabricks
 
Effective administration of IBM Integration Bus - Sanjay Nagchowdhury
Effective administration of IBM Integration Bus - Sanjay NagchowdhuryEffective administration of IBM Integration Bus - Sanjay Nagchowdhury
Effective administration of IBM Integration Bus - Sanjay NagchowdhuryKaren Broughton-Mabbitt
 
IT4IT Overview (A new standard for IT management)
IT4IT Overview (A new standard for IT management)IT4IT Overview (A new standard for IT management)
IT4IT Overview (A new standard for IT management)Charles Betz
 
Solution Architecture Framework
Solution Architecture FrameworkSolution Architecture Framework
Solution Architecture FrameworkFirmansyahIrma1
 
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFPractical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFMichael Sukachev
 

Tendances (20)

Model driven architecture
Model driven architectureModel driven architecture
Model driven architecture
 
Machine Learning Operations & Azure
Machine Learning Operations & AzureMachine Learning Operations & Azure
Machine Learning Operations & Azure
 
Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...
Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...
Introducing Oracle Fusion Middleware 12.1.3 and especially SOA Suite and BPM ...
 
MLOps.pptx
MLOps.pptxMLOps.pptx
MLOps.pptx
 
Presentation 1 - SSRS (1)
Presentation 1 - SSRS (1)Presentation 1 - SSRS (1)
Presentation 1 - SSRS (1)
 
SAP Cloud Platform Integration Services – L1 Deck
SAP Cloud Platform Integration Services – L1 DeckSAP Cloud Platform Integration Services – L1 Deck
SAP Cloud Platform Integration Services – L1 Deck
 
Interface Fact Sheets in LeanIX Enterprise Architecture Management
Interface Fact Sheets in LeanIX Enterprise Architecture ManagementInterface Fact Sheets in LeanIX Enterprise Architecture Management
Interface Fact Sheets in LeanIX Enterprise Architecture Management
 
Modernize Java Apps on Microsoft Azure
Modernize Java Apps on Microsoft AzureModernize Java Apps on Microsoft Azure
Modernize Java Apps on Microsoft Azure
 
M05 Metamodel
M05 MetamodelM05 Metamodel
M05 Metamodel
 
Finacle 3tier-architecture-converted
Finacle 3tier-architecture-convertedFinacle 3tier-architecture-converted
Finacle 3tier-architecture-converted
 
SOA Course : service process model
SOA Course : service process modelSOA Course : service process model
SOA Course : service process model
 
Difference Between TOGAF 9 and TOGAF 10
Difference Between TOGAF 9 and TOGAF 10Difference Between TOGAF 9 and TOGAF 10
Difference Between TOGAF 9 and TOGAF 10
 
An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to Microservices
 
DASK and Apache Spark
DASK and Apache SparkDASK and Apache Spark
DASK and Apache Spark
 
Simplifying Model Management with MLflow
Simplifying Model Management with MLflowSimplifying Model Management with MLflow
Simplifying Model Management with MLflow
 
Effective administration of IBM Integration Bus - Sanjay Nagchowdhury
Effective administration of IBM Integration Bus - Sanjay NagchowdhuryEffective administration of IBM Integration Bus - Sanjay Nagchowdhury
Effective administration of IBM Integration Bus - Sanjay Nagchowdhury
 
IT4IT Overview (A new standard for IT management)
IT4IT Overview (A new standard for IT management)IT4IT Overview (A new standard for IT management)
IT4IT Overview (A new standard for IT management)
 
Data Mesh
Data MeshData Mesh
Data Mesh
 
Solution Architecture Framework
Solution Architecture FrameworkSolution Architecture Framework
Solution Architecture Framework
 
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFPractical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
 

En vedette

21 security and_trust
21 security and_trust21 security and_trust
21 security and_trustMajong DevJfu
 
22 deployment and_mobility
22 deployment and_mobility22 deployment and_mobility
22 deployment and_mobilityMajong DevJfu
 
20 nfp design_techniques
20 nfp design_techniques20 nfp design_techniques
20 nfp design_techniquesMajong DevJfu
 
19 designing for_nf_ps
19 designing for_nf_ps19 designing for_nf_ps
19 designing for_nf_psMajong DevJfu
 
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_linesMajong DevJfu
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptationMajong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
 
Meta-modeling: concepts, tools and applications
Meta-modeling: concepts, tools and applicationsMeta-modeling: concepts, tools and applications
Meta-modeling: concepts, tools and applicationsSaïd Assar
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a productMajong DevJfu
 

En vedette (20)

2
22
2
 
21 security and_trust
21 security and_trust21 security and_trust
21 security and_trust
 
22 deployment and_mobility
22 deployment and_mobility22 deployment and_mobility
22 deployment and_mobility
 
1
11
1
 
20 nfp design_techniques
20 nfp design_techniques20 nfp design_techniques
20 nfp design_techniques
 
6
66
6
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
19 designing for_nf_ps
19 designing for_nf_ps19 designing for_nf_ps
19 designing for_nf_ps
 
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_lines
 
Uml2
Uml2Uml2
Uml2
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
 
Uml3
Uml3Uml3
Uml3
 
23 intro to_dsse
23 intro to_dsse23 intro to_dsse
23 intro to_dsse
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
Meta-modeling: concepts, tools and applications
Meta-modeling: concepts, tools and applicationsMeta-modeling: concepts, tools and applications
Meta-modeling: concepts, tools and applications
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
 

Similaire à MDA Metamodeling and Model Driven Architecture

MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)Jordi Cabot
 
An introduction to the MDA
An introduction to the MDAAn introduction to the MDA
An introduction to the MDALai Ha
 
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015Luca Berardinelli
 
Model versioning in context of living
Model versioning in context of livingModel versioning in context of living
Model versioning in context of livingijseajournal
 
On the Customization of Model Management Systems for File-Centric IDEs
On the Customization of Model Management Systems for File-Centric IDEsOn the Customization of Model Management Systems for File-Centric IDEs
On the Customization of Model Management Systems for File-Centric IDEsDavid Méndez-Acuña
 
JavaScript Modelling Framwork : MDE
JavaScript Modelling Framwork : MDE JavaScript Modelling Framwork : MDE
JavaScript Modelling Framwork : MDE Jean-Sebastien Sottet
 
Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011Hugo Bruneliere
 
Uml introduction
Uml introductionUml introduction
Uml introductionbdemchak
 
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...Jordi Cabot
 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologiesnaina-rani
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools researchRoger Xia
 
Evolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven DevelopmentEvolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven DevelopmentAlfonso Pierantonio
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringPiero Fraternali
 
Introduction To Uml
Introduction To UmlIntroduction To Uml
Introduction To Umlguest514814
 

Similaire à MDA Metamodeling and Model Driven Architecture (20)

ALT
ALTALT
ALT
 
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
 
An introduction to the MDA
An introduction to the MDAAn introduction to the MDA
An introduction to the MDA
 
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
 
Model versioning in context of living
Model versioning in context of livingModel versioning in context of living
Model versioning in context of living
 
On the Customization of Model Management Systems for File-Centric IDEs
On the Customization of Model Management Systems for File-Centric IDEsOn the Customization of Model Management Systems for File-Centric IDEs
On the Customization of Model Management Systems for File-Centric IDEs
 
JavaScript Modelling Framwork : MDE
JavaScript Modelling Framwork : MDE JavaScript Modelling Framwork : MDE
JavaScript Modelling Framwork : MDE
 
UML01
UML01UML01
UML01
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
Megamodeling
MegamodelingMegamodeling
Megamodeling
 
java
javajava
java
 
Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011Spy On Your Models, Standard talk at EclipseCon 2011
Spy On Your Models, Standard talk at EclipseCon 2011
 
Uml introduction
Uml introductionUml introduction
Uml introduction
 
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
MDE 2.0.: pragmatic model verification and other stories - Habilitation publi...
 
Epsilon
EpsilonEpsilon
Epsilon
 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologies
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
 
Evolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven DevelopmentEvolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven Development
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
 
Introduction To Uml
Introduction To UmlIntroduction To Uml
Introduction To Uml
 

Plus de Majong DevJfu

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA CloudMajong DevJfu
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product lineMajong DevJfu
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural stylesMajong DevJfu
 
18 applied architectures_part_2
18 applied architectures_part_218 applied architectures_part_2
18 applied architectures_part_2Majong DevJfu
 
17 applied architectures
17 applied architectures17 applied architectures
17 applied architecturesMajong DevJfu
 
16 implementation techniques
16 implementation techniques16 implementation techniques
16 implementation techniquesMajong DevJfu
 
15 implementing architectures
15 implementing architectures15 implementing architectures
15 implementing architecturesMajong DevJfu
 

Plus de Majong DevJfu (11)

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
3
33
3
 
26 standards
26 standards26 standards
26 standards
 
18 applied architectures_part_2
18 applied architectures_part_218 applied architectures_part_2
18 applied architectures_part_2
 
17 applied architectures
17 applied architectures17 applied architectures
17 applied architectures
 
16 implementation techniques
16 implementation techniques16 implementation techniques
16 implementation techniques
 
15 implementing architectures
15 implementing architectures15 implementing architectures
15 implementing architectures
 

Dernier

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Dernier (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

MDA Metamodeling and Model Driven Architecture

  • 1. Metamodeling and the Model Driven Architecture (MDA) Paolo Ciancarini
  • 2. Agenda   Model Driven Engineering   Metamodeling   Metamodeling in UML   Model Driven Architecture   OMG technologies for MDA
  • 3. Enterprise Computing   Software is a complex and expensive product   Enterprise Computing adds further requirements:   Rapid change in organizational assets   Continuous evolving partnerships   Heterogeneous end-user clients   e.g., Fat clients, Web clients, Cellular Phone, iPod, DTT TV   Need for information ubiquity   e.g., in mobile/opportunistic networking, cross-network roaming   The only thing we can predict with confidence about the future of software platforms is that things we cannot predict will happen
  • 4. Motivations   There is a strong pressure on the industry to increase   Quality   Longevity   Reusability of software products, while reducing costs   In order to fulfill this needs the productivity of the software industry must be improved   Most increments in software productivity are obtained increasing the abstraction level
  • 5. Levels of abstractions   The history of software development is a history of raising the level of abstraction A stack of •  In Programming Languages Programming Languages •  e.g., Assembler, C, C++, Visual C#, … •  In Software Architectures 3GL •  e.g., Client-Server, n-tier, SOA, … Assembly •  In Operative Systems Language •  e.g., Virtual Machines, Middleware, Grid 0s and 1s •  In data representation •  e.g., File, Database, XML, …
  • 6. Model Driven Engineering (MDE)   MDE is a software development method for handling the complexity of software platforms and related problems   Main feature: “Everything is a model”: the models are first- class abstractions closer to domains than to algorithmic ideas and concerns   A model is a simplified representation of a part (i.e. a system) of the real world Model the modeling space the real world isRepresentedBy System
  • 7. MDE: Approaches   MDE concepts can be applied in different ways producing different approaches, each one relying on a specific set of tools
  • 8. Example: EMF   The Eclipse Modeling Framework (EMF) is a modeling framework and code generation facility for building applications based on a structured data model   From a model specification described in XMI, EMF produces a set of Java classes for the model, a set of adapter classes that enable viewing and editing the model, and a basic editor   Models can be specified using annotated Java, UML, XML documents, or modeling tools, then imported into EMF   EMF itself provides the foundation for interoperability with other EMF-based tools and applications
  • 9. Approach Requirement model: defines the system in its environment Analysis and design model: defines the system architecture Realization model: defines how the system is built Code of the system and configuration artifacts
  • 10. Models represent systems   A system S is a delimited part of the world considered as a set of elements in interaction   A model M is a representation of a given system S satisfying the principle of substitutability   Principle of substitutability: A model M is said to be a representation of a system S for a given set of questions Q if, for each question q in Q, the model M will provide exactly the same answer that the system S would have provided in answering the same q   The relation between a model and a system is called representation of
  • 12. A class diagram models a set of objects
  • 14. Discuss   A model which describes a model is called metamodel   Metamodels are descriptions of descriptions: why are they important to develop software?
  • 15. Genesi, 2:19   So out of the ground the Lord God formed every beast of the field and every bird of the air, and brought them to the man to see what he would call them; and whatever the man called every living creature, that was its name
  • 17. Meta-model A meta-model defines concepts and their relationships thanks to a class diagram A meta-model only defines structure (no semantics) A model is an instance of a meta-model if it respects the structure defined by the meta- model The relation between a model and its metamodel is called conformance The UML meta-model defines the structure that all UML models must have
  • 18. Multiple levels of abstractions
  • 19. System-Model-Metamodel Relations   The extraction of an element from system S to build a model M is guided by a meta-model MM   MM plays the role of “filter” in the selecting from the system S the elements for building the model M metamodel MM conformsTo repOf terminal system S Representation of model M
  • 20. Exercises   Describe a metamodel for libraries   Describe a metamodel for cars   Describe a metamodel for TV sets   Describe a metamodel for CRC cards   Describe a metamodel for Petri Nets
  • 22. Four Layered Architecture Layer Description Example Meta-metamodel Defines metamodel metaClass, metaAttribute, metaOperation Metamodel An instance of meta- Class, attribute Metamodel. Defines a operation, component model Model Language for describing an Employee information domain. Defines a set of related objects that represent a concept User object An instance of the model. :Sally An example information domain
  • 23. OMG Modeling Infrastructure Meta-Object Facility (MOF) M3 Instance_of UML Metamodel M2 Instance_of Modeling concepts M1 Instance_of User Data M0 23
  • 24. 4-Layers Metamodeling   A model, or terminal model, (M1) is a representation of a real object (in M0) conforming to a metamodel (M2)   A metamodel (M2) is a representation of a set of modelling elements (in M1) conforming to a meta-metamodel (M3)   A meta-metamodel (M3) is a set of modeling elements used to define metamodels (M2 ed M3) conforming to itself N.B. M2, M2 and M3 are all “models”. We could represent them using the same modeling language (e.g., UML)
  • 26. Meta-metamodel •  A metamodel describes information about models •  A meta-metamodel describes information about metamodels •  Metamodels defined using the same meta- metamodel -  can be compared for conformance -  can exchange information -  can be used by the same tools that understand the meta-metamodel
  • 27. Meta Object Facility (MOF) •  Enables meta-metamodeling of UML level metamodels •  It defines a small set of concepts (such as package, class, method, attribute…) that allow to define and manipulate models of metadata (data about data) •  All definitions are described using a subset UML notation
  • 28. MOF Model 28
  • 30. MOF Key Abstract Classes •  ModelElement base Class of all M3-level Classes; every ModelElement has a name •  Namespace base Class for all M3-level Classes that need to act as containers •  GeneralizableElement base Class for all M3-level Classes that support generalization (i.e. inheritance) •  TypedElement base Class for M3-level Classes such as Attribute, Parameter, and Constant whose definition requires a type specification •  Classifier base Class for all M3-level Classes that (notionally) define types; examples of Classifier include Class and DataType
  • 31. Main Concrete Classes •  The key concrete classes (or meta-metaclasses) of MOF: -  Class -  Association -  Exception (for defining abnormal behaviours) -  Attribute -  Constant -  Constraint 31
  • 32. Key associations •  Contains: relates a ModelElement to the Namespace that contains it •  Generalizes: relates a GeneralizableElement to its ancestors (superclass and subclass) •  IsOfType: relates a TypedElement to the Classifier that defines its type -  An object is an instance of a class •  DependsOn : relates a ModelElement to others that its definition depends on -  E.g. a package depends on another package
  • 33.
  • 34. UML Metaclasses used in class, package, Meta Element component and deployment diagrams Model importedElement ModelElement * ownedElement name * 0..1 0..1 Relationship Feature Link Comment Namespace Parameter Instance visibility * GeneralizableElement {ordered} defaultValue * isRoot * * kind child isLeaf Generalization * * * {ordered} * isAbstract specialization parent discriminator Object type owner AssociationEnd * 2..* type connection participant specification Classifier isNavigable aggregation * * 1..* Association multiplicity 0..1 StructuralFeature BehaviouralFeature multiplicity Package * qualifier * Attribute Operation Method ** initialValue isAbstract specification body Model resident Class Interface DataType Subsystem Node * Component deploymmentLocation * AssociationClass Primitive Enumeration ProgrammingLanguageType 1..* EnumerationLiteral 34
  • 35. A fragment of the UML Meta-Model not self.isAbstract implies self.allOperations->forAll(op | self.allMethods->exists(m | m.specification includes (op)))
  • 36. Model Elements •  An element is an atomic constituent of a model Element •  Element is the top metaclass in the metaclass hierarchy ModelElement •  A model element is a named entity in a model name •  It is the base for all modeling metaclasses in UML -  All other modeling metaclasses are either direct or indirect subclasses of ModelElement
  • 37. Features •  Feature is an abstract class Feature that declares a behavioral or visibility * {ordered} structural property of -  an instance of a Classifier -  the Classifier itself owner Classifier •  A behavioral feature refers to a dynamic feature of a model StructuralFeature BehaviouralFeature multiplicity element -  E.g. operation or method Attribute Operation ** Method initialValue isAbstract specification body •  A structural feature refers to a static feature of a model element -  E.g. attribute
  • 38. Classifier •  A classifier is an element that describes behavioral and structural features -  E.g. class, data type, interface, component •  Classifier is an abstract class that -  declares a collection of Features, such as Attributes, Methods… -  has a name, which is unique in the Namespace enclosing the Classifier Feature * Namespace Classifier visibility {ordered} resident Class Interface DataType Subsystem Node * Component deploymmentLocation * Primitive Structure Enumeration ProgrammingLanguageType 1..* EnumerationLiteral 38
  • 39. Classifier •  A classifier is a generalizable element and defines a namespace •  It can have -  association ends -  parameters -  instances Feature Namespace Parameter Instance visibility * GeneralizableElement {ordered} defaultValue isRoot * kind isLeaf * isAbstract Object * type owner AssociationEnd Classifier type isNavigable participant specification aggregation * * 1..* multiplicity
  • 40. Relationship Relationship •  A relationship is a connection among model elements Generalization discriminator •  UML defines several relationships such as: Association -  Association -  Generalization •  UML defines other types of relationships that are not shown in this diagram, such as: Class -  Dependency -  Flow AssociationClass
  • 41. Namespace importedElement •  A namespace is a part of a ModelElement name * ownedElement model that contains a set of * 0..1 0..1 other model elements GeneralizableElement Namespace -  E.g. Associations and isRoot isLeaf Classifiers isAbstract -  the name of an owned model element is unique Classifier within the namespace •  Namespace is an abstract Package * metaclass and it subclasses are Subsystem Model -  Classifier -  Package
  • 42. Data Types •  UML data types include -  primitive built-in types (such as integer and string) -  definable enumeration types (such as Boolean whose literals are false and true); enumerations are a user-defined data types whose instances are literals (specified by the user) •  Programming languages data types -  are specified according to the semantics of a particular programming language -  are not portable among languages (except by agreement among the languages) -  do not map into other UML classifiers DataType Primitive Enumeration ProgrammingLanguageType 1.. * EnumerationLiteral 42
  • 43. Namespace Classifier Relationship AssociationEnd isNavigable Package aggregation Class Association multiplicity BankSystem Customer 1..2 * Account accountNumber StructuralFeature balance Relationship multiplicity overdraftLimit withdraw Attribute deposit Generalization initialValue discriminator BehaviouralFeature Chequing Saving CreditCard expiryDate Method Mapping of UML Models to Metamodel Elements (Example)
  • 44. Use Case Diagrams Metamodel
  • 45. Mapping Use Cases Model to Metamodel Classifier Classifier UseCase Actor Relationship Open file Generalization discriminator Ordinary User Open file by Open file by typing name browsing Relationship «extend» «include» Include Browse for file System Attempt to open file Administrator that does not exist Relationship Extend
  • 47. Mapping State Machines to Metamodel State State StateVertex SimpleState 0..1 PseudoState 0..1 +entry Procedure Closed Opening Enter / pressButton Enter / stop motor run motor forwards closingCompleted Transition * openingCompleted pressButton 0..1 Closing pressButton Open Event Enter / Enter / run motor in reverse stop motor
  • 49. Example GeneralizableElement Stereotype {ordered} edge <<geometry> LinearShape 1..* LineSegment startPoint: Point endPoint: Point length : int Path Line Polygon {startPoint <> endPoint} length {edge->size=1} {edge->first.startPoint = {length = edge->last.endPoint} edge.length->sum} RegularPolygon {edge->forAll(e1,e2 | e1.length = e2.length)} Constraint
  • 50. Model Driven Architecture (MDA)   MDA is a theory of software construction based on a set of standards provided by the Object Management Group   MDA is a kind of MDE, that is domain engineering based on developing models of software systems   The idea of MDA is to exploit a modeling language (such as UML) as a programming language rather than just as a support for design   This is not a new approach, it has notable ancestors:   Database schemas, generative programming, CASE tools, WYSIWYG interfaces
  • 51. MDA Base Components   MDA is based on a set of technologies that allow:   Domain specification (domain specific languages)   Modeling and metamodeling   Model transformations which support the development of a system independently from:   platforms   platforms evolution   application domains
  • 52. MDA Dimensions   Horizontal: different domains that are not more or less abstract than others, like business or technology   E.g., marketing, engineering, sales, etc.   E.g., performance, security, fault tolerance etc.   Vertical: different level of abstraction of the same domain of a system   From physical data, logical data models, middleware, applications specifications, component assemblies, business process models, business goals and strategies   Evolutionary: different systems, legacy, ongoing and upcoming, as-is, as-was and as-could-be   This is technically similar to the horizontal dimension, but it is more concerned with evolution-focused architectural rules and modeling standards
  • 53. MDA: the Big Picture This picture gives some insights about the technologies constituting MDA together with the platforms, the kinds of application and the domains of application that it addresses
  • 54. Key Idea   create a source model   independent from platform implementation details   transform it in a target model richer of details than the source model   Use of a proper transformation language
  • 55. Basic Concepts   Model: a simplified representation of   a system   a part of a system   a set of system functionalities   Point of view: an abstraction technique with the goal of highlighting some features of the system   View: a representation of the system from the perspective of a particular point of view
  • 56. Basic Concepts   Refinement: it is related to a model M1 derived from model M2, where M1 has a number of details greater than M2   M1 is a refinement of M2   Zooming: when we move from a model with a different level of abstraction than another one   we have like a zoom-effect   System architecture: the specification of   Components   Connectors   Interaction rules of components by means of connectors
  • 57. Basic Concepts   Model driven: the use of models through all the phases of software development   Platform independence: a property of a model developed regardless of platform details   Model transformation: the process of converting one model into another one concerning the same system
  • 59. MDA: Core Standards   How do we can specify models, metamodels and meta-metamodels?   OMG provides a set of standards supporting such activities:   MOF 2.0   UML 2.3   XMI 2.0   CWM 1.1   QVT (Query View Transform)
  • 60. MOF   MOF is an OMG standard to write metamodels   Can be used to model the abstract syntax of Domain Specific Languages   Two flavors: EMOF (Essential MOF), CMOF (complete MOF)   Kermeta is an extension to MOF allowing executable actions to be attached to EMOF meta- models, hence making it possible to also model a DSL operational semantics and obtain an interpreter for it
  • 61. Metamodel   The correspondence between a model and a system is defined by a metamodel:   Terminology: a collection of concepts with their properties and relations   Assertions: a collection of additional rules by which terminology elements can be constrained
  • 62. Metamodels in Software Engineering   Currently, metamodels focus on:   Software process modeling (PIF)   Software product modeling (UML, CWM)   Many new fields are involved:   Model of cost   Model of resource consumption   Models of test, QoS, and software measurements   Requirements modeling (e.g. Use Cases)   Know-how modeling (e.g. Patterns)   Model validation
  • 63. Meta-metamodel   A Meta-metamodel provides the language to define a set of metamodels   Definition of abstract syntax: concepts, relationships, and wellformedness rules   Definition of concrete syntax: shapes, layout, and physical interchange formats   Definition of semantic domains: the abstract logical space in which models find their meanings   Definition of mappings between domains
  • 64. A Metamodel Language: MOF 2.0   The Meta-Object Facility (MOF) is an OMG specification defining an abstract language and a framework for specifying, constructing, managing, and exchanging, technology-neutral metamodels   MOF defines a framework for implementing repositories holding the persistent representation of the metamodels
  • 66. MOF: Features   MOF belongs to the MDA architecture   MOF meta-metamodel defined in itself   MOF 2.0 reuses a part of the UML 2.0 metamodel   MOF to XML mapping: OMG XMI (XML Metadata Interchange) specification   MOF to Java mapping: JMI (Java Metadata Interchange)
  • 67. UML 2.0   UML is a language with a very broad scope covering a large and diverse set of application domains   It is structured in two main parts:   Infrastructure   Superstructure   The UML 2.0 metamodel is aligned with the MOF 2.0 meta-metamodel for accomplishing the MDA-vision   In MDA all the four-layer models are defined by means of UML or its extensions
  • 68. UML 2.0 Infrastructure Note: the Core package is the same of the MOF Meta-metamodel
  • 69. The MDA 4-Layers Architecture (1/2)   The alignment between UML 2.0 and MOF 2.0 enables to see every UML 2.0 construct like an instance of a MOF 2.0 element   In this way, we can see MOF 2.0 like the meta- metamodel of UML2   Every UML 2.0 model is an instance of the UML 2.0 metamodel
  • 70. The MDA 4-Layers Architecture (2/2)   The UML metamodel stack is instantiated in MDA by:   M3: MOF 2.0   M2: UML 2.0   M1: An UML 2.0 model at the “class” level   M0: A “real world” object represented by an UML 2.0 model at the “object” level   This stack represents the four-layers architecture
  • 71. 4-Layers MDA: an Example
  • 75. UML 2.1 Use-Case MOF Metamodel
  • 76. XMI   XML Metadata Interchange (XMI) is the OMG technology for interchanging models in a serialized form   XMI focuses on the interchange of MOF metadata   i.e., metadata conforming to a MOF-based metamodel   XMI can also be used for model representation in model transformations
  • 77. XMI   XMI uses XML for the transfer syntax and interchange format   XML Document Type Definitions (DTD) or Schema are specified to enable the transfer and verification of:   UML-based models (e.g. mymodel.xmi, using uml.dtd or uml.xsd)   MOF-based metamodels (e.g. uml.xmi, using mof.dtd or mof.xsd)   Models based on other MOF-based meta-models (e.g. mymodel.xmi using cwm.dtd or cwm.xsd)
  • 78. CWM   The Common Warehouse Metamodel (CWM) is the OMG standard for data warehouse   CWM is a specification for modeling metadata for relational, non-relational, multi-dimensional, and other objects found in a data warehouse   CWM can be used to extend UML for   supporting data warehouse environments   modeling transformations   structuring transformation specifications   The goal is to integrate development tools with data deployment solutions
  • 79. The Metadata Problem CWM addresses the problems facing any company:   Many databases   Many repositories   Different schemas describing the “same” data   Moving data requires manual schema transformation
  • 80. CWM Integrates Data   CWM integrates existing data models   Maps to existing schemas   Supports automated schema generation   Supports automated database loading   The basis for data mining and OLAP (OnLine Analytical Processing) across an enterprise
  • 81. CWM Defines Metamodels   CWM Foundation   OLAP   Relational Data   Data Mining   Record Data   Info Visualization   Multidimensional Data   Business Nomenclature   XML Data   Warehouse Process   Data Transformations   Warehouse Operation 81
  • 82. CWM: Fragment of the Relational Metamodel /constraint /constrainedElement CheckConstraint {ordered} deferrability : DeferrabilityType * * Column /type SQLDataType * /constrant precision : Integer * typeNumber : Integer scale : Integer /structuralFeature 1 0..1 /feature isNullable : NullableType ColumnSet length : Integer /owner * collationName : String {ordered} characterSetName : String / optionScopeColumnSet : NamedColumnSet / referencedTableType : SQLStructuredType NamedColumnSet / optionScopeColumn : Column / type : SQLStructuredType / usingTrigger : Trigger SQLDistinctType length : Integer /constrainedElement QueryColumnSet precision : Integer scale : Integer query : QueryExpression / sqlSimpleType : SQLSimpleType sqlDistinctType * * SQLSimpleType {ordered} characterMaximumLength : Integer 1 characterOctetLength : Integer numericPrecision : Integer sqlSimpleType numericPrecisionRadix : Integer numericScale : Integer Table dateTimePrecision : Integer View isTemporary : Boolean isReadOnly : Boolean temporaryScope : String checkOption : Boolean / trigger : Trigger queryExpression : QueryExpression isSystem : Boolean
  • 83. The CWM Metamodel Operational Data Warehouses Extract Transform Data Sources Source Target Source Target Source Target Source CWM Tool Target Source Target Source Target Pairwise Hub (9 connections) Drill Down (6 connections)
  • 84. OMG Metamodel Architecture M MOF: Class, Attribute, I Meta-metamodel Operation, D Layer (M3) Association D L Standard Components E W  Modeling Notation: UML A UML: Class, Attribute R  Metadata Interchange: XMI Metamodel CWM: Table, Column E Layer(M2) ElementType, Attribute  Metadata API: MOF IDL Mapping JMI – MOF/Java Mapping A P P Metadata/Model Stock: name, price CWM is based on L I Layer(M1)  UML C A  MOF T  XMI I O User Data/Object <Stock name=“IBM” Layer (M0) N price=“112”/>
  • 85. The CWM Metamodel (1.0) Management Warehouse Warehouse Process Operation Analysis Data Information Business Transformation OLAP Mining Visualization Nomenclature Object Multi- Resource (Core+Behavioral+ Relational Record XML Relationships) Dimensional Foundation Business Data Keys Type Software Expressions Information Types Index Mapping Deployment Object Model Core Behavioral Relationships Instance
  • 86. Metamodels, Syntaxes and Semantics   The UML language has been defined by means of a MOF metamodel   In order to define a MOF metamodel we can use:   MOF to (formally) define the abstract syntax of a set of modelling constructs   The natural language to (informally) describe some parts of the semantics   The concrete syntax can be expressed by a graphical notation or not   Example: a UML diagram can be represented in XML by means of the XMI concrete syntax   In this case, the XMI file represents the UML diagram
  • 87. Conclusions   MDA is a powerful family of technologies   Its basis is metamodeling   The technology of model transformations (see next lecture) makes the approach practical and powerful   It is important because it allows to manage automatically the design and maintenance problems typical of large software systems
  • 88. Self test questions   What is a model?   What is a metamodel?   What is conformance to a metamodel?   What is MOF?   What is CWM?   Which are the main differences between UML1.x and UML2.x?
  • 89. References   Schmidt, Model-Driven Engineering. IEEE Computer, 39:2(25-31), February 2006.   Frankel, Model Driven Architecture: Applying MDA to Enterprise Computing, Wiley, 2003   Mellor, Scott, Uhl, Weise MDA Distilled: Principles of Model-Driven Architecture, Addison-Wesley, 2004   Mellor & Balcer, Executable UML, a foundation for MDA, Addison-Wesley 2002   OMG, UML Infrastructure 2.3, 2010
  • 90. Useful sites   www.omg.org/mda!   www.ibm.com/developerworks/rational/library/3100.html!   www.agilemodeling.com/essays/mda.htm!   martinfowler.com/bliki/ModelDrivenArchitecture.html
  • 91. Interesting tools   www.eclipse.org/modeling/emf/?project=emf   www.andromda.org   www.bluage.com/   www.openarchitectureware.org   www.openmdx.org   www.ibm.com/developerworks/rational/products/rhapsody/