SlideShare una empresa de Scribd logo
1 de 94
Descargar para leer sin conexión
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 model is a set of statements about some system
     under study
    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                                                System
                                                                           +name
and their relationships thanks to
a class diagram                                                              1
                                                        *                    *         *

A meta-model only defines           +super
                                                            +participate
                                                                                            0..*
                                                Actor                       Use Case
structure (no semantics)              0..1   +name                         +name
                                                                                            *
                                                                                            +extend
                                                                       *
A model is an instance of a
                                                                                   *   +include
meta-model if it respects the
structure defined by the meta-
model
                                                                                 PetStore
The relation between a model
                                                                                       Add Order
and its metamodel is called
conformance
                                               Client                       Buy

The UML meta-model defines
the structure that all UML
models must have
Multiple levels of abstractions


                          b:CustomerOrder
Mike:Customer
                       c:CustomerOrder
                       Item=batter          Objects      (M0)
     Id= 12345
                       Quantity=<5 tons>



 Customer              CustomerOrder
                                            Model        (M1)
id                     item
                       quantity




      Class      Association                Meta-Model   (M2)
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
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
Metadata architecture
OMG Modeling Infrastructure

                      Meta-Object Facility (MOF)
M3
        Instance_of

                      UML Metamodel
M2

        Instance_of

                      Modeling concepts
M1

        Instance_of

                      User Data
M0
                                            25
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




   30
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




                                                        33
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                                                                       component and deployment diagrams
                                           Element




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
                      36
A fragment of the UML Meta-Model

                       Meta-Class
GeneralizableElement
isRoot : Boolean                              Feature
isLeaf : Boolean
isAbstract : Boolean                visibility : {public, private,
                                    protected}


                                                    *
      Classifier

                              Well-formedness constraint (OCL)
                             not self.isAbstract implies
                              self.allOperations->forAll(op |
         Class                  self.allMethods->exists(m |
isActive : Boolean
                                  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
                                                                                                                                    40
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                             44
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                                           LineSegment
                                                             1..*
                                                                    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




     83
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   E
                                  Metamodel          CWM: Table, Column
                                  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?

Más contenido relacionado

La actualidad más candente

Model driven architecture
Model driven architectureModel driven architecture
Model driven architectureBiruk Mamo
 
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...Jordi Cabot
 
Capability Maturity Model
Capability Maturity ModelCapability Maturity Model
Capability Maturity ModelUzair Akram
 
Model-driven architecture (MDA)
Model-driven architecture (MDA) Model-driven architecture (MDA)
Model-driven architecture (MDA) Alia Hamwi
 
Doors hints and tips schema
Doors hints and tips schemaDoors hints and tips schema
Doors hints and tips schemaHazel Woodcock
 
Setting up Performance Testing &amp; Engineering COE - Top 10 success secrets
Setting up Performance Testing &amp; Engineering COE - Top 10 success secretsSetting up Performance Testing &amp; Engineering COE - Top 10 success secrets
Setting up Performance Testing &amp; Engineering COE - Top 10 success secretsRamya Ramalinga Moorthy
 
M05 Metamodel
M05 MetamodelM05 Metamodel
M05 MetamodelDang Tuan
 
formal verification
formal verificationformal verification
formal verificationToseef Aslam
 
What is UML (Unified Modeling Language)?
What is UML (Unified Modeling Language)?What is UML (Unified Modeling Language)?
What is UML (Unified Modeling Language)?Eliza Wright
 
Machine learning in software testing
Machine learning in software testingMachine learning in software testing
Machine learning in software testingThoughtworks
 
Model-Driven Software Engineering in Practice - Chapter 5 - Integration of Mo...
Model-Driven Software Engineering in Practice - Chapter 5 - Integration of Mo...Model-Driven Software Engineering in Practice - Chapter 5 - Integration of Mo...
Model-Driven Software Engineering in Practice - Chapter 5 - Integration of Mo...Marco Brambilla
 
Software Test Metrics and Measurements
Software Test Metrics and MeasurementsSoftware Test Metrics and Measurements
Software Test Metrics and MeasurementsDavis Thomas
 
What is Application Performance Management?
What is Application Performance Management?What is Application Performance Management?
What is Application Performance Management?CA Technologies
 
Introduction to the Unified Modeling Language (UML)
Introduction to the Unified Modeling Language (UML)Introduction to the Unified Modeling Language (UML)
Introduction to the Unified Modeling Language (UML)Marwa Ali Eissa
 

La actualidad más candente (20)

Model driven architecture
Model driven architectureModel driven architecture
Model driven architecture
 
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
 
Capability Maturity Model
Capability Maturity ModelCapability Maturity Model
Capability Maturity Model
 
Defect removal effectiveness
Defect removal effectivenessDefect removal effectiveness
Defect removal effectiveness
 
Model-driven architecture (MDA)
Model-driven architecture (MDA) Model-driven architecture (MDA)
Model-driven architecture (MDA)
 
Doors hints and tips schema
Doors hints and tips schemaDoors hints and tips schema
Doors hints and tips schema
 
Setting up Performance Testing &amp; Engineering COE - Top 10 success secrets
Setting up Performance Testing &amp; Engineering COE - Top 10 success secretsSetting up Performance Testing &amp; Engineering COE - Top 10 success secrets
Setting up Performance Testing &amp; Engineering COE - Top 10 success secrets
 
M05 Metamodel
M05 MetamodelM05 Metamodel
M05 Metamodel
 
Feature Driven Development
Feature Driven DevelopmentFeature Driven Development
Feature Driven Development
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
formal verification
formal verificationformal verification
formal verification
 
What is UML (Unified Modeling Language)?
What is UML (Unified Modeling Language)?What is UML (Unified Modeling Language)?
What is UML (Unified Modeling Language)?
 
MODELING & SIMULATION.docx
MODELING & SIMULATION.docxMODELING & SIMULATION.docx
MODELING & SIMULATION.docx
 
Machine learning in software testing
Machine learning in software testingMachine learning in software testing
Machine learning in software testing
 
Model-Driven Software Engineering in Practice - Chapter 5 - Integration of Mo...
Model-Driven Software Engineering in Practice - Chapter 5 - Integration of Mo...Model-Driven Software Engineering in Practice - Chapter 5 - Integration of Mo...
Model-Driven Software Engineering in Practice - Chapter 5 - Integration of Mo...
 
Software Test Metrics and Measurements
Software Test Metrics and MeasurementsSoftware Test Metrics and Measurements
Software Test Metrics and Measurements
 
ATAM
ATAMATAM
ATAM
 
What is Application Performance Management?
What is Application Performance Management?What is Application Performance Management?
What is Application Performance Management?
 
Validation and verification
Validation and verificationValidation and verification
Validation and verification
 
Introduction to the Unified Modeling Language (UML)
Introduction to the Unified Modeling Language (UML)Introduction to the Unified Modeling Language (UML)
Introduction to the Unified Modeling Language (UML)
 

Destacado

2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
19 designing for_nf_ps
19 designing for_nf_ps19 designing for_nf_ps
19 designing for_nf_psMajong DevJfu
 
22 deployment and_mobility
22 deployment and_mobility22 deployment and_mobility
22 deployment and_mobilityMajong DevJfu
 
21 security and_trust
21 security and_trust21 security and_trust
21 security and_trustMajong DevJfu
 
20 nfp design_techniques
20 nfp design_techniques20 nfp design_techniques
20 nfp design_techniquesMajong 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
 
Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1Ricardo Quintero
 
05 architectural styles
05 architectural styles05 architectural styles
05 architectural stylesMajong DevJfu
 
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
 

Destacado (20)

2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
19 designing for_nf_ps
19 designing for_nf_ps19 designing for_nf_ps
19 designing for_nf_ps
 
22 deployment and_mobility
22 deployment and_mobility22 deployment and_mobility
22 deployment and_mobility
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
2
22
2
 
21 security and_trust
21 security and_trust21 security and_trust
21 security and_trust
 
1
11
1
 
20 nfp design_techniques
20 nfp design_techniques20 nfp design_techniques
20 nfp design_techniques
 
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_lines
 
6
66
6
 
5
55
5
 
Uml2
Uml2Uml2
Uml2
 
Uml3
Uml3Uml3
Uml3
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
 
23 intro to_dsse
23 intro to_dsse23 intro to_dsse
23 intro to_dsse
 
Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1
 
05 architectural styles
05 architectural styles05 architectural styles
05 architectural styles
 
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
 

Similar a 5 - Architetture Software - Metamodelling and the 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
 
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
 
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
 
Model versioning in context of living
Model versioning in context of livingModel versioning in context of living
Model versioning in context of livingijseajournal
 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologiesnaina-rani
 
Architecture and design
Architecture and designArchitecture and design
Architecture and designhimanshu_airon
 
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
 
Object-oriented modeling and design.pdf
Object-oriented modeling and  design.pdfObject-oriented modeling and  design.pdf
Object-oriented modeling and design.pdfSHIVAM691605
 
Software Architecture and Project Management module III : PATTERN OF ENTERPRISE
Software Architecture and Project Management module III : PATTERN OF ENTERPRISESoftware Architecture and Project Management module III : PATTERN OF ENTERPRISE
Software Architecture and Project Management module III : PATTERN OF ENTERPRISEsreeja_rajesh
 
UNIT II STATIC UML DIAGRAMS.pptx
UNIT II STATIC UML DIAGRAMS.pptxUNIT II STATIC UML DIAGRAMS.pptx
UNIT II STATIC UML DIAGRAMS.pptxanguraju1
 
Requirements modeling
Requirements modelingRequirements modeling
Requirements modelingAnanthiP8
 
ArchitectureOfAOMsWICSA3
ArchitectureOfAOMsWICSA3ArchitectureOfAOMsWICSA3
ArchitectureOfAOMsWICSA3Erdem Sahin
 

Similar a 5 - Architetture Software - Metamodelling and the 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)
 
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
 
Megamodeling
MegamodelingMegamodeling
Megamodeling
 
java
javajava
java
 
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
 
Model versioning in context of living
Model versioning in context of livingModel versioning in context of living
Model versioning in context of living
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologies
 
UML01
UML01UML01
UML01
 
Architecture and design
Architecture and designArchitecture and design
Architecture and design
 
JavaScript Modelling Framwork : MDE
JavaScript Modelling Framwork : MDE JavaScript Modelling Framwork : MDE
JavaScript Modelling Framwork : MDE
 
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
 
Object-oriented modeling and design.pdf
Object-oriented modeling and  design.pdfObject-oriented modeling and  design.pdf
Object-oriented modeling and design.pdf
 
Ood Post1
Ood Post1Ood Post1
Ood Post1
 
Software Architecture and Project Management module III : PATTERN OF ENTERPRISE
Software Architecture and Project Management module III : PATTERN OF ENTERPRISESoftware Architecture and Project Management module III : PATTERN OF ENTERPRISE
Software Architecture and Project Management module III : PATTERN OF ENTERPRISE
 
UNIT II STATIC UML DIAGRAMS.pptx
UNIT II STATIC UML DIAGRAMS.pptxUNIT II STATIC UML DIAGRAMS.pptx
UNIT II STATIC UML DIAGRAMS.pptx
 
Requirements modeling
Requirements modelingRequirements modeling
Requirements modeling
 
ArchitectureOfAOMsWICSA3
ArchitectureOfAOMsWICSA3ArchitectureOfAOMsWICSA3
ArchitectureOfAOMsWICSA3
 
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee ApplicatiesFinal Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
 

Más 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
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - 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
 
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
 

Más 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
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - 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
 
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
 

Último

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 

5 - Architetture Software - Metamodelling and the 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 model is a set of statements about some system under study   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 System +name and their relationships thanks to a class diagram 1 * * * A meta-model only defines +super +participate 0..* Actor Use Case structure (no semantics) 0..1 +name +name * +extend * A model is an instance of a * +include meta-model if it respects the structure defined by the meta- model PetStore The relation between a model Add Order and its metamodel is called conformance Client Buy The UML meta-model defines the structure that all UML models must have
  • 18. Multiple levels of abstractions b:CustomerOrder Mike:Customer c:CustomerOrder Item=batter Objects (M0) Id= 12345 Quantity=<5 tons> Customer CustomerOrder Model (M1) id item quantity Class Association Meta-Model (M2)
  • 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
  • 21.
  • 22.
  • 23. 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
  • 25. OMG Modeling Infrastructure Meta-Object Facility (MOF) M3 Instance_of UML Metamodel M2 Instance_of Modeling concepts M1 Instance_of User Data M0 25
  • 26. 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)
  • 28. 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
  • 29. 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
  • 30. MOF Model 30
  • 32. 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
  • 33. Main Concrete Classes •  The key concrete classes (or meta-metaclasses) of MOF: -  Class -  Association -  Exception (for defining abnormal behaviours) -  Attribute -  Constant -  Constraint 33
  • 34. 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
  • 35.
  • 36. UML Metaclasses used in class, package, Meta component and deployment diagrams Element 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 36
  • 37. A fragment of the UML Meta-Model Meta-Class GeneralizableElement isRoot : Boolean Feature isLeaf : Boolean isAbstract : Boolean visibility : {public, private, protected} * Classifier Well-formedness constraint (OCL) not self.isAbstract implies self.allOperations->forAll(op | Class self.allMethods->exists(m | isActive : Boolean m.specification includes (op)))
  • 38. 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
  • 39. 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
  • 40. 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 40
  • 41. 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
  • 42. 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
  • 43. 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
  • 44. 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 44
  • 45. 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)
  • 46. Use Case Diagrams Metamodel
  • 47. 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
  • 49. 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
  • 51. Example GeneralizableElement Stereotype {ordered} edge <<geometry> LinearShape LineSegment 1..* 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
  • 52. 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
  • 53. 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
  • 54. 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
  • 55. 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
  • 56. 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
  • 57. 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
  • 58. 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
  • 59. 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
  • 61. 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)
  • 62. 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
  • 63. 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
  • 64. 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
  • 65. 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
  • 66. 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
  • 68. 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)
  • 69. 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
  • 70. UML 2.0 Infrastructure Note: the Core package is the same of the MOF Meta-metamodel
  • 71. 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
  • 72. 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
  • 73. 4-Layers MDA: an Example
  • 77. UML 2.1 Use-Case MOF Metamodel
  • 78. 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
  • 79. 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)
  • 80. 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
  • 81. 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
  • 82. 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
  • 83. 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 83
  • 84. 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
  • 85. 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)
  • 86. 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 E Metamodel CWM: Table, Column 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”/>
  • 87. 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
  • 88. 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
  • 89. 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
  • 90. 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?
  • 91. 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
  • 92. 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
  • 93. 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/