SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Metamodeling and Meta-Object
                            Facility (MOF)

                                            Petri Selonen
                                 8109103 Software Engineering Theory
                                            Spring 2004



                                                               Tampere University of Technology
1 FILENAMs.PPT/ 6-Feb-04 / PSe
Presentation Outline


   1. Introduction to Metamodeling
   2. Introduction to MOF
   3. MOF in Detail
   4. MOF and Unified Modeling Language
   5. Concluding Remarks



                                                   Tampere University of Technology
2 FILENAMs.PPT/ 6-Feb-04 / PSe
Models and Metamodels
   • Merriam-Webster Online Dictionary defines a model roughly as
     a “description or analogy used to help visualize something that
     cannot be directly observed”
      • models are used for describing, visualizing, and observing
      • models describe a system from different viewpoints, for
        different stakeholders, at different levels of abstraction
   • Models are, first and foremost, used for communication
      • ability to convey unambiguous meaning is essential
      • need for an underlying model behind the model
          metamodel
   • Metamodels describe models (i.e., metamodel instances)
      • allowed metaelements, their properties and relationships
      • well-formedness rules for the instantiated models
      • in essence, an abstract syntax for models!

                                                   Tampere University of Technology
3 FILENAMs.PPT/ 6-Feb-04 / PSe
Models and Metamodels, cont’d
   • In addition, metamodel should describe the semantics for the
     metaelements and thus the meaning of a metamodel instance
       • in practice, abstract syntaxes are given more emphasis…

   • Conceptually, a class diagram can act as a metamodel for an
     object diagram:
                                                   +owner   +ownedCar
                                       Person                                     Car
                                                   1..*           0..*
                                 name : String                           name : String
                                                                         yearOfPurchase: Integer

                      Application model
                                                                                 "metalevel" boundary
                      Model instance
                                                   owner
                                   Joni : Person                           Avensis : Car
                                                                         yearOfPurchase := 1999



                                                                                    Tampere University of Technology
4 FILENAMs.PPT/ 6-Feb-04 / PSe
Models and Metamodels, cont’d
   • If metamodels are important, how should they be presented?
       • a metamodel itself is an instance of a meta-metamodel
       • metacircular definitions lead to an infinite number of
         metalevels!
   • There is a need for metalevel or metadata architectures
       • they have been used in many application domains
                    •   artificial intelligence, operating systems, programming languages, etc.
                    •   with object-oriented systems, a metalevel is often considered as a “higher
                        sphere of control”
   • However, metamodeling in the context of software modeling
     languages has only recently gained larger (non-academic)
     popularity
       • Of course, MetaEdit has been around for ~15 years…
   • As the importance of modeling grows, so does the need for
     well-defined techniques

                                                                           Tampere University of Technology
5 FILENAMs.PPT/ 6-Feb-04 / PSe
Metadata Architectures
   • Metadata architectures should facilitate construction and
     building of frameworks and systems supporting the usage of
     meta-level information
      • in the context of this presentation, they should facilitate the
        building of metamodels
   • Characteristics of metadata architectures include the ability
      • to support arbitrary kinds of models,
      • to support arbitrary kinds of modeling paradigms,
      • to relate different kinds of metadata,
      • to incrementally add new metamodels and new kinds of
        metadata to existing metamodels,
      • to support interchange of arbitrary metadata and meta-
        metadata
   • Next slide presents an example of a four-layer metadata
     architecture conforming similar to the ones presented by ISO

                                                     Tampere University of Technology
6 FILENAMs.PPT/ 6-Feb-04 / PSe
Four-Layer Metadata Architecture




                                        Tampere University of Technology
7 FILENAMs.PPT/ 6-Feb-04 / PSe
Presentation Outline


   1. Introduction to Metamodeling
   2. Introduction to MOF
   3. MOF in Detail
   4. MOF and Unified Modeling Language
   5. Concluding Remarks



                                                   Tampere University of Technology
8 FILENAMs.PPT/ 6-Feb-04 / PSe
Object Management Group (OMG)
   • An open membership, not-for-profit consortium with over 600
     members (est. 1989)
      • originally promoted theory and practice of object-oriented
        technology in software development
      • now aims at producing “industry specifications for
        interoperable enterprise applications”
   • Adopted technologies include:
      • Model Driven Architecture (MDA)
      • Meta-Object Facility (MOF)
      • Unified Modeling Language (UML)
      • XML Metadata Interchange (XMI)
      • Common Warehouse Metamodel (CWM)
      • Common Object Request Broker Architecture (CORBA)

   • On-line at http://www.omg.org

                                                  Tampere University of Technology
9 FILENAMs.PPT/ 6-Feb-04 / PSe
Metamodeling and MOF
   • The advent of OMG’s Model Driven Architecture (MDA)
     initiative places further weight on models
       • emphasis on automatic generation of models and model
         (PIM to PSM) transformations
       • seamless transition from high-level business and domain
         logic into executable code (also seen as a model)
   • The Meta-Object Facility (MOF) is OMG’s answer to support
     the generation and representation of arbitrary metamodels
       • the MOF Model and associated MOF IDL provide a meta-
         metamodel for describing metamodels
       • metamodels are instances of meta-metamodels
       • support for common repositories, distribution of data, etc.

   • MOF offers a meta-metamodel, i.e., metadata architecture for
     constructing metamodels!

                                                    Tampere University of Technology
10 FILENAMs.PPT/ 6-Feb-04 / PSe
Overview on MOF
   • MOF defines an abstract language and a framework for
     specifying, constructing, and managing technology neutral
     metamodels (e.g. UML, MOF itself)
   • MOF specification 1.4 (April 2002) includes
      • A formal definition of MOF meta-metamodel
                    •   Abstract language for specifying MOF metamodels
            •   A mapping from arbitrary MOF metamodels to CORBA IDL
                    •   Produces IDL interfaces for managing metadata
            •   A set of reflective CORBA IDL interfaces
                    •   For representing and managing MOF metamodels
            •   An XMI format for MOF metamodel interchange
   • Metamodels of MOF and UML are architecturally aligned
      • They share a common subset of core modeling concepts
      • MOF reuses UML notation for visualizing metamodels


                                                                          Tampere University of Technology
11 FILENAMs.PPT/ 6-Feb-04 / PSe
MOF Metadata Architecture
   • MOF is a meta-metamodel for defining metamodels for various
     domains and modeling languages
   • MOF offers a CORBA IDL for creating, accessing, and
     modifying the information present in metamodel instances
   • MOF Model is object-oriented
      • metamodeling constructs are aligned with UML’s object
        modeling constructs
   • Even though MOF outlines a four-layer structure…
      • information layer (M0), model layer (M1), metamodel layer,
        and meta-metamodel layer
   • …MOF metalevels are not fixed



                                                 Tampere University of Technology
12 FILENAMs.PPT/ 6-Feb-04 / PSe
MOF Metadata Architecture, cont’d
   • The MOF Model is self-describing
      • it is defined by its own constructs
      • its interfaces and behavior can be defined applying MOF
        IDL mappings to the MOF Model itself
      • architectural basis for extensions and modifications of MOF
        models
   • As with the concept of metadata architectures, MOF offers
      • support for arbitrary models and modeling paradigms
      • possibility of relating different kinds of metadata
      • possibility of incremental addition of new metamodels and
        metadata
      • support for interchange of arbitrary metadata (models) and
        meta-metadata (metamodels) that use the same meta-
        metamodel

                                                 Tampere University of Technology
13 FILENAMs.PPT/ 6-Feb-04 / PSe
Parallel Instances of MOF Layers




                                         Tampere University of Technology
14 FILENAMs.PPT/ 6-Feb-04 / PSe
MOF Technology Mappings




                                               Tampere University of Technology
15 FILENAMs.PPT/ 6-Feb-04 / PSe
Presentation Outline


   1. Introduction to Metamodeling
   2. Introduction to MOF
   3. MOF in Detail
   4. MOF and Unified Modeling Language
   5. Concluding Remarks



                                                    Tampere University of Technology
16 FILENAMs.PPT/ 6-Feb-04 / PSe
MOF Classes
   • Classes model MOF metaobjects
      • classes defined at the Mi level have instances at M(i-1) level
      • instances have object identity, state, and behavior

   • Classes can have Attributes and Operations
      • Attributes have normal interpretation
      • Operations are “hooks” for accessing behavior
                    •   they simply specify the names and type signatures
            •   both have scoping and multiplicities
   • Classes can be generalized
      • “typical” interpretation
      • type substitutability at M(i-1) level
      • no name over-riding is allowed

   • Abstract classes are allowed

                                                                            Tampere University of Technology
17 FILENAMs.PPT/ 6-Feb-04 / PSe
MOF Associations and Data Types
   • Associations express relationships in a metamodel
      • meta-associations at Mi level have instances (metalinks) at
        M(i-1) level
      • they are binary and have multiplicities
      • they can have aggregation or composition semantics

   • Data types present those types whose values do not have
     object identity
      • primitive types include Boolean, Integer, and String
                    •   MOF defines in total six standard, “technology-neutral” data types
            •   data type constructors allow definition of more complex data
                types: Enumeration, Structure, Collection, Alias, etc.




                                                                           Tampere University of Technology
18 FILENAMs.PPT/ 6-Feb-04 / PSe
Other MOF Elements
   • Packages group elements in a metamodel
      • at Mi level they modularize the metamodel space
      • at M(i-1) level they act as “outermost” containers for
        metadata
      • packages can relate to each other in several ways:
        generalization, package nesting, package importing, and
        package clustering
   • Miscellaneous MOF elements include constraints, constants,
     exceptions, tags, etc.




                                                  Tampere University of Technology
19 FILENAMs.PPT/ 6-Feb-04 / PSe
MOF Model Package Overview




                                          Tampere University of Technology
20 FILENAMs.PPT/ 6-Feb-04 / PSe
Differences Between MOF and UML

                                  MOF                   UML
               Binary associations           N-ary associations

               No AssociationClasses or      AssociationClass, Qualifier
               Qualifiers
               Direct References             Navigation through
                                             Associations
               Generalization and            Generalization and
               Dependency are Associations   Dependency are metaclasses
               No support for templates      Template metaclass

               Subset of CORBA primitive     No CORBA awareness
               data types and constructors

                                                              Tampere University of Technology
21 FILENAMs.PPT/ 6-Feb-04 / PSe
Presentation Outline


   1. Introduction to Metamodeling
   2. Introduction to MOF
   3. MOF in Detail
   4. MOF and Unified Modeling Language
   5. Concluding Remarks



                                                    Tampere University of Technology
22 FILENAMs.PPT/ 6-Feb-04 / PSe
Three-Layer Example
                                  M2. Metamodel
                                                                 +participant      0..*
                                                 Class                                    AssociationEnd
                                                                 1        +association
                                        name : String                                     name : String
                                        1     +type     0..1                              multiplicity : Multiplicity
                                                                                                   2..* +connection

                                                          0..* +feature                            1

                                               Attribute                                      Association



                                  M1. Model

                                                                 +owner    +ownedCar
                                                 Person                                                Car
                                                                 1..*              0..*
                                        name : String                                     name : String
                                                                                          yearOfPurchase: Integer



                                  M0. Instance
                                                                 owner
                                            Joni : Person                                   Avensis : Car
                                                                                          yearOfPurchase := 1999



                                                                                                                   Tampere University of Technology
23 FILENAMs.PPT/ 6-Feb-04 / PSe
Model vs. View
       M1-model as a UML class diagram

                                             +owner   +ownedCar
                       Person                                                  Car
                                             1..*              0..*
               name : String                                          name : String
                                                                      yearOfPurchase: Integer

       M1-model as a M2-level instance

                   owner :                                : Association                  ownedCar :
                AssociationEnd                                                          AssociationEnd
               multiplicity=[1,*]            connection                   connection multiplicity=[0,*]
               aggregationKind=none                                                     aggregationKind=none



                               participant                                                           participant

                 Person : Class                                                            Car : Class


                               feature                                               feature                            feature
                                                                      yearOfPurchase
                name : Attribute                                                                          name : Attribute
                                                                         : Attribute
               type=String                                            type=Integer                        type=String



                                                                                                          Tampere University of Technology
24 FILENAMs.PPT/ 6-Feb-04 / PSe
Example: Defining a Metamodel
   •       To exploit MOF, let us define a new, MOF compliant metamodel for our
           own, proprietary modeling language
   •       The language is called HeaVy which allows the user to introduce
           1. participants with attributes,
           2. binary associations between participants (containing a name, end
              role names, and end multiplicities), and
           3. actions connected to one or more participants (actions have
              parameters, a guard, and method body)
                                                                c            Car
                                  new_car_buyer                     yearOfPurchase: Integer
                                     (name)                                                    context foo
                                  not exists p2:Person ::
                                     p2.name=name                                  own         inv: (self.name=“Joni” or
                                                                                               self.name=“Reima”) implies
                                   p(name) || own(p,c)                   owner 0..1            self.car.name=“Avensis”

                                                            new p          Person
                                                                    name: String



                                                                                         Tampere University of Technology
25 FILENAMs.PPT/ 6-Feb-04 / PSe
HeaVy Metamodel / Abstract Syntax
   M2. HeaVy Metamodel
                                                    +participant            0..*
                               Participant                                         AssociationEnd
                                                    1           +association
                           name : String                                           name : String
                                                                                   multiplicity : Multiplicity
                                                                                             2     +connection

                                                                                             1

              Class                                 Activity                           Association                                                c            Car
                                                                                                                 new_car_buyer                        yearOfPurchase: Integer
       name : String                       name : String                           name : String                    (name)
              1                              1           0..*        0..*                                        not exists p2:Person ::
                                                                                                                    p2.name=name                                     own

                                                                                                                  p(name) || own(p,c)                      owner 0..1
              0..*     +feature              0..*    +parameter                      0..* +guard
                                                                                                                                              new p          Person
            Attribute                            Parameter                                  Guard                                                     name: String

       name : String                       name : String                           expression : String
       type : String                       type : String




                                                                      0..*                  Action
                                                                     +action
                                                                                   expression : String




                                                                                                                                 Tampere University of Technology
26 FILENAMs.PPT/ 6-Feb-04 / PSe
HeaVy Metamodel / Rest of the Stuff
   • Example well-formedness rules
      • all HeaVy models (i.e., HeaVy metamodel instances) must
        conform to the MOF structural constraints (i.e., stated by the
        association end multiplicities)
      • Additional rule (using UML’s OCL) for Classes
         [1] Attributes must have unique names within a Class:
               self.feature->select( a | a.oclIsKindOf(Attribute) )
                           ->forAll( p,q | p.name=q.name implies p=q)
   • Detailed semantics: 42
   • Example notation rules
      • classes are depicted as rectangles with two compartments,
        with their name centered in the upper rectangle, and their
        attributes left-justified in the lower rectangle (name ‘:’ type)


                                                     Tampere University of Technology
27 FILENAMs.PPT/ 6-Feb-04 / PSe
HeaVy Stuff cont’d
   • Now we have defined our proprietary metamodel using MOF
      • MOF standard defines abstract mappings of HeaVy models
      • XMI standard defines concrete mapping of HeaVy
        metamodel into a HeaVy DTD, and a mapping from HeaVy
        metamodel instances into XML/XMI files
   • It is up to the implemented tools, transformation components,
     and users to read our HeaVy definition and interpret it correctly
       • we only defined an abstract syntax (a very loose one)

   • We would probably like to reuse and exploit the existing
     modeling tools and metamodels
      • fortunately, MOF and UML are very much aligned…
      • …as is HeaVy, surprisingly enough
      • UML profiles offer a lightweight extension mechanism



                                                   Tampere University of Technology
28 FILENAMs.PPT/ 6-Feb-04 / PSe
Using UML Profiles
   • Profiles have not been properly defined in UML
       • just a few example figures with textual descriptions
       • only used for direct metaclass reuse, meta-associations are
         not covered by the existing definitions
       • assumes that the existing UML metamodel remains in effect
   • Fortunately, we are practical people, we are not formal people
     (adaptation of Gianna Reggio, UML’02)
       • when in trouble, switch metalevels back and forth
       • “what do you mean it cannot be done, I just did it?”
   • Our toolbox:
       • define new stereotypes to represent user-specified new
         metaclasses, derive them from standard UML metaclasses
       • define new attributes using Tagged Values
       • when necessary, override existing meta-associations
         (inclusive vs. exclusive)
       • introduce additional OCL constraints

                                                   Tampere University of Technology
29 FILENAMs.PPT/ 6-Feb-04 / PSe
Using UML Profiles, cont’d
   • Our goal is just to provide sufficient support for HeaVy in such
     a manner that these extended models can be represented in
     existing UML CASE tools, and the models can be exchanged
     in standard format
       • Both the metamodel extension, i.e., HeaVy profile and the
         actual HeaVy models are just plain UML models
       • They can be represented in standard XMI
       • Most tools, while not capable of interpreting the profiles, still
         support alternative visualizations
       • When available, tools aware of our (non-existent) semantics
         can react to the models
   • For even further simplicity:
      • only introduce the concept of HActivity (standing for HeaVy
        activity)

                                                      Tampere University of Technology
30 FILENAMs.PPT/ 6-Feb-04 / PSe
Using UML Profiles, cont’d

                                                                     <<metaclass>>                                   <<metaclass>>
                                                                      Parameter                                         Method
                                                                                          +parameter
                                                                  name : String                                   body: ProcedureExpr
                                                                                          *



                                                                          1       +type                                   1 +specification
                                                                                                       0..1
                         <<metaclass>>          +constraint          <<metaclass>>                                   <<metaclass>>
                          Constraint            *             *        Classifier                                     Operation
                     name : String                                name : String           0..1        0..* name : String
                                                                                                 +feature
                     body : BooleanExpression

        UML Metamodel
                                                                      <<stereotype>>                                  <<stereotype>>
                          <<stereotype>>
        HeaVy Profile


                         <<stereotype>>         +constraint          <<stereotype>>              +feature            <<stereotype>>
                            HGuard              1             1        HActivity          1                   1      HSignature
                     body : BooleanExpression




                                                                                                        Tampere University of Technology
31 FILENAMs.PPT/ 6-Feb-04 / PSe
A UML Metamodel Instance of HeaVy Model

                                                               add_owner
                                                               (id, name)
                                                                                                               Person
                                                                                                new p
                                                         not exists b2:Book :: b2.id=id
                                                                                                        id: Integer
                                                                                                        name: String
                                                                  p(id, name)




                                       <<HGuard>>
                                       : Constraint
                                  body="not exists
                                  b2:Book :: b2.id=id"                                                                                id : Attribute
                                                                                <<HActivity>>                                     type=Integer
                                                                                add_owner :                      Person : Class
                                      <<HSignature>>
                                                                                 Classifier
                                       : Operation
                                                                                                                                    name : Attribute
                                                                                                                                  type=String
                                     id : Parameter
                                                                                                                   new p :
                                                                           : AssociationEnd
                                                                                                                AssociationEnd

                                   name : Parameter
                                                                                                 : Association


                                         : Method
                                  body="p(id,name)"




                                                                                                                                  Tampere University of Technology
32 FILENAMs.PPT/ 6-Feb-04 / PSe
UML Profiles vs. MOF Metamodels
   • Decision whether to design a metamodel as a MOF instance,
     or whether to extend the UML metamodel depends on the
     domain and intent
      • UML has wide-spread CASE tools support
                    •   but the tools are usually weak and not metamodel aware
            •   UML already includes an extensive portion of necessary
                software modeling constructs
                    •   but some constructs are ambiguous and even inconsistent
                    •   UML specification is very large and complex
                    •   MOF specification is compact but restrictive
            •   UML defines a well-established notation
                    •   but MOF re-uses the same notation
            •   UML profile mechanism is very loosely defined
                    •   gives flexibility but enforcement requires conventions or proprietary tools
                    •   MOF metamodeling is harder to grasp but quite powerful
            •   How much does one want to reuse the UML semantics?

                                                                             Tampere University of Technology
33 FILENAMs.PPT/ 6-Feb-04 / PSe
UML Metamodel Excerpt (Core::Structure)

                                  +parameter    0..1                           +specification      *
            Parameter                                      Operation                                            Method
                                  *                                            1
       name : String                                   name : String                                    body:
                                                             0..* +feature                              ProcedureExpression

                                                 +type
                                                    1        0..1
                                                                               +participant      0..*
           Constraint             +constraint               Classifier                                  AssociationEnd
                                                                               1        +association
                                  *
     name : String                                     name : String                                    name : String
     body : BooleanExpression                          1   +type       0..1                             multiplicity : Multiplicity
                                                                                                                 2..*

                                                                        0..* +feature                            1

                                                            Attribute                                       Association




                                                                                                Tampere University of Technology
34 FILENAMs.PPT/ 6-Feb-04 / PSe
Presentation Outline


   1. Introduction to Metamodeling
   2. Introduction to MOF
   3. MOF in Detail
   4. MOF and Unified Modeling Language
   5. Concluding Remarks



                                                    Tampere University of Technology
35 FILENAMs.PPT/ 6-Feb-04 / PSe
Concluding Remarks
   • Metadata architectures are good and metamodeling is good,
     m’kay?
      • support for common repositories and exchange formats
      • support for defining series of metamodels sharing the same
        meta-metamodel
      • support for arbitrary(?) modeling languages and paradigms
      • support for relating metalevel elements

   • MOF offers metamodeling and a metadata architecture
     implementation
      • an industry standard
      • support for existing and upcoming technologies
      • aligned with UML
      • “a single reference point throughout the enterprise”



                                                  Tampere University of Technology
36 FILENAMs.PPT/ 6-Feb-04 / PSe
Questions?
                                    [see if I care]




                                                      “When you can’t
                                                      beat them, move
                                                       one metalevel
                                                      higher. “ -Author
                                                      you puny instances….




                                                         Tampere University of Technology
37 FILENAMs.PPT/ 6-Feb-04 / PSe
Alignment with CWM
   • MOF has been adopted as a part of OMG’s Common
     Warehouse Metamodel (CWM) technology
   • Motivation for CWM
      • systems are complex and interdependent
                    •   there is a need to trace data flows between systems
                    •   there is a need to understand meaning and context of data elements
            •   new information systems
                    •   unlike with data driven systems, where metadata was local
                    •   need to trace information
                    •   need to implement and enforce standards
                    •   need to provide reference points
            •   industry standard
                    •   “reflects the real world”

   • single reference point throughout the enterprise
       • very much in line with the MDA approach!


                                                                          Tampere University of Technology
38 FILENAMs.PPT/ 6-Feb-04 / PSe

Contenu connexe

En vedette

Model-Driven Engineering: a bottom-up approach based on meta-programming (ELA...
Model-Driven Engineering: a bottom-up approach based on meta-programming (ELA...Model-Driven Engineering: a bottom-up approach based on meta-programming (ELA...
Model-Driven Engineering: a bottom-up approach based on meta-programming (ELA...Jean-Michel Bruel
 
Ultimas diapos de fundamestos
Ultimas diapos de fundamestosUltimas diapos de fundamestos
Ultimas diapos de fundamestosPATRICIA_18
 
Carbon dioxide solutions
Carbon dioxide solutionsCarbon dioxide solutions
Carbon dioxide solutionsUNEP OzonAction
 
Model-driven engineering of multimodal user interfaces
Model-driven engineering of multimodal user interfacesModel-driven engineering of multimodal user interfaces
Model-driven engineering of multimodal user interfacesJean Vanderdonckt
 
Mechanistic aspects of C-C cross coupling reaction
Mechanistic aspects of C-C cross coupling reactionMechanistic aspects of C-C cross coupling reaction
Mechanistic aspects of C-C cross coupling reactionRashmi Gaur
 
Nanoporous Materials, MOF & ZIF
Nanoporous Materials, MOF & ZIFNanoporous Materials, MOF & ZIF
Nanoporous Materials, MOF & ZIFFarshid Homayoon
 
Porous materials and metallic foams
Porous materials and metallic foamsPorous materials and metallic foams
Porous materials and metallic foamsH.
 
MOF 4 Overviewv - ITSM Academy Webinar
MOF 4 Overviewv - ITSM Academy WebinarMOF 4 Overviewv - ITSM Academy Webinar
MOF 4 Overviewv - ITSM Academy WebinarITSM Academy, Inc.
 
Coupling reactions 2
Coupling reactions 2Coupling reactions 2
Coupling reactions 2Zaid Najah
 
Meta-modeling: concepts, tools and applications
Meta-modeling: concepts, tools and applicationsMeta-modeling: concepts, tools and applications
Meta-modeling: concepts, tools and applicationsSaïd Assar
 
La &amp; edm in practice
La &amp; edm in practiceLa &amp; edm in practice
La &amp; edm in practicebharati k
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Pascal Roques
 
Design Thinking Assignment
Design Thinking AssignmentDesign Thinking Assignment
Design Thinking AssignmentSalma ES-Salmani
 

En vedette (18)

Model-Driven Engineering: a bottom-up approach based on meta-programming (ELA...
Model-Driven Engineering: a bottom-up approach based on meta-programming (ELA...Model-Driven Engineering: a bottom-up approach based on meta-programming (ELA...
Model-Driven Engineering: a bottom-up approach based on meta-programming (ELA...
 
Ultimas diapos de fundamestos
Ultimas diapos de fundamestosUltimas diapos de fundamestos
Ultimas diapos de fundamestos
 
Carbon dioxide solutions
Carbon dioxide solutionsCarbon dioxide solutions
Carbon dioxide solutions
 
Model-driven engineering of multimodal user interfaces
Model-driven engineering of multimodal user interfacesModel-driven engineering of multimodal user interfaces
Model-driven engineering of multimodal user interfaces
 
Mechanistic aspects of C-C cross coupling reaction
Mechanistic aspects of C-C cross coupling reactionMechanistic aspects of C-C cross coupling reaction
Mechanistic aspects of C-C cross coupling reaction
 
Nanoporous Materials, MOF & ZIF
Nanoporous Materials, MOF & ZIFNanoporous Materials, MOF & ZIF
Nanoporous Materials, MOF & ZIF
 
Porous materials and metallic foams
Porous materials and metallic foamsPorous materials and metallic foams
Porous materials and metallic foams
 
34. uml
34. uml34. uml
34. uml
 
MOF 4 Overviewv - ITSM Academy Webinar
MOF 4 Overviewv - ITSM Academy WebinarMOF 4 Overviewv - ITSM Academy Webinar
MOF 4 Overviewv - ITSM Academy Webinar
 
Coupling reactions 2
Coupling reactions 2Coupling reactions 2
Coupling reactions 2
 
poster
posterposter
poster
 
Meta-modeling: concepts, tools and applications
Meta-modeling: concepts, tools and applicationsMeta-modeling: concepts, tools and applications
Meta-modeling: concepts, tools and applications
 
MANUAL DE ORGANIZACIÓN Y FUNCIONES
MANUAL DE ORGANIZACIÓN Y  FUNCIONESMANUAL DE ORGANIZACIÓN Y  FUNCIONES
MANUAL DE ORGANIZACIÓN Y FUNCIONES
 
Como Se Elabora El Manual De OrganizacióN
Como Se Elabora El Manual De OrganizacióNComo Se Elabora El Manual De OrganizacióN
Como Se Elabora El Manual De OrganizacióN
 
Presentación de power point
Presentación de power pointPresentación de power point
Presentación de power point
 
La &amp; edm in practice
La &amp; edm in practiceLa &amp; edm in practice
La &amp; edm in practice
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0
 
Design Thinking Assignment
Design Thinking AssignmentDesign Thinking Assignment
Design Thinking Assignment
 

Similaire à Mof

OpenTravel XML Object Suite Mechanics
OpenTravel XML Object Suite MechanicsOpenTravel XML Object Suite Mechanics
OpenTravel XML Object Suite MechanicsOpenTravel Alliance
 
Ontologies and Software Modeling: Potentials, Experience and Challenges
Ontologies and Software Modeling: Potentials, Experience and Challenges Ontologies and Software Modeling: Potentials, Experience and Challenges
Ontologies and Software Modeling: Potentials, Experience and Challenges Dragan Gasevic
 
Precise Semantics Standards at OMG: Executing on the Vision
Precise Semantics Standards at OMG: Executing on the VisionPrecise Semantics Standards at OMG: Executing on the Vision
Precise Semantics Standards at OMG: Executing on the VisionEd Seidewitz
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringPiero Fraternali
 
Session 2.1 ontological representation of the telecom domain for advanced a...
Session 2.1   ontological representation of the telecom domain for advanced a...Session 2.1   ontological representation of the telecom domain for advanced a...
Session 2.1 ontological representation of the telecom domain for advanced a...semanticsconference
 
Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...
Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...
Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...Akira Tanaka
 
OpenTravel Model-Driven Schema at IATA
OpenTravel Model-Driven Schema at IATAOpenTravel Model-Driven Schema at IATA
OpenTravel Model-Driven Schema at IATAOpenTravel Alliance
 
AI-SDV 2021: Stefan Geissler - AI support for creating and maintaining vocabu...
AI-SDV 2021: Stefan Geissler - AI support for creating and maintaining vocabu...AI-SDV 2021: Stefan Geissler - AI support for creating and maintaining vocabu...
AI-SDV 2021: Stefan Geissler - AI support for creating and maintaining vocabu...Dr. Haxel Consult
 
PROPOSAL OF AN HYBRID METHODOLOGY FOR ONTOLOGY DEVELOPMENT BY EXTENDING THE P...
PROPOSAL OF AN HYBRID METHODOLOGY FOR ONTOLOGY DEVELOPMENT BY EXTENDING THE P...PROPOSAL OF AN HYBRID METHODOLOGY FOR ONTOLOGY DEVELOPMENT BY EXTENDING THE P...
PROPOSAL OF AN HYBRID METHODOLOGY FOR ONTOLOGY DEVELOPMENT BY EXTENDING THE P...ijitcs
 
On the Runtime Models for Complex, Distributed and Aware Systems
On the Runtime Models for Complex, Distributed and Aware SystemsOn the Runtime Models for Complex, Distributed and Aware Systems
On the Runtime Models for Complex, Distributed and Aware SystemsMilan Zdravković
 
Group A Standards
Group A StandardsGroup A Standards
Group A Standardsbsanchez44
 
SustainablePlaces_ifcOWL_applications_2015-09-17
SustainablePlaces_ifcOWL_applications_2015-09-17SustainablePlaces_ifcOWL_applications_2015-09-17
SustainablePlaces_ifcOWL_applications_2015-09-17Pieter Pauwels
 
Semantic Modeling for Information Federation
Semantic Modeling for Information FederationSemantic Modeling for Information Federation
Semantic Modeling for Information FederationCory Casanave
 
Intake 38 data access 4
Intake 38 data access 4Intake 38 data access 4
Intake 38 data access 4Mahmoud Ouf
 

Similaire à Mof (20)

OpenTravel XML Object Suite Mechanics
OpenTravel XML Object Suite MechanicsOpenTravel XML Object Suite Mechanics
OpenTravel XML Object Suite Mechanics
 
ALT
ALTALT
ALT
 
java
javajava
java
 
Ontologies and Software Modeling: Potentials, Experience and Challenges
Ontologies and Software Modeling: Potentials, Experience and Challenges Ontologies and Software Modeling: Potentials, Experience and Challenges
Ontologies and Software Modeling: Potentials, Experience and Challenges
 
Precise Semantics Standards at OMG: Executing on the Vision
Precise Semantics Standards at OMG: Executing on the VisionPrecise Semantics Standards at OMG: Executing on the Vision
Precise Semantics Standards at OMG: Executing on the Vision
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
 
Session 2.1 ontological representation of the telecom domain for advanced a...
Session 2.1   ontological representation of the telecom domain for advanced a...Session 2.1   ontological representation of the telecom domain for advanced a...
Session 2.1 ontological representation of the telecom domain for advanced a...
 
Model transformation
Model transformationModel transformation
Model transformation
 
Model transformation
Model transformationModel transformation
Model transformation
 
Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...
Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...
Extension Mechanism for Integrating New Technology Elements into Viewpoint ba...
 
eTOX
eTOXeTOX
eTOX
 
OpenTravel Model-Driven Schema at IATA
OpenTravel Model-Driven Schema at IATAOpenTravel Model-Driven Schema at IATA
OpenTravel Model-Driven Schema at IATA
 
AI-SDV 2021: Stefan Geissler - AI support for creating and maintaining vocabu...
AI-SDV 2021: Stefan Geissler - AI support for creating and maintaining vocabu...AI-SDV 2021: Stefan Geissler - AI support for creating and maintaining vocabu...
AI-SDV 2021: Stefan Geissler - AI support for creating and maintaining vocabu...
 
Lemon at-mlw3
Lemon at-mlw3Lemon at-mlw3
Lemon at-mlw3
 
PROPOSAL OF AN HYBRID METHODOLOGY FOR ONTOLOGY DEVELOPMENT BY EXTENDING THE P...
PROPOSAL OF AN HYBRID METHODOLOGY FOR ONTOLOGY DEVELOPMENT BY EXTENDING THE P...PROPOSAL OF AN HYBRID METHODOLOGY FOR ONTOLOGY DEVELOPMENT BY EXTENDING THE P...
PROPOSAL OF AN HYBRID METHODOLOGY FOR ONTOLOGY DEVELOPMENT BY EXTENDING THE P...
 
On the Runtime Models for Complex, Distributed and Aware Systems
On the Runtime Models for Complex, Distributed and Aware SystemsOn the Runtime Models for Complex, Distributed and Aware Systems
On the Runtime Models for Complex, Distributed and Aware Systems
 
Group A Standards
Group A StandardsGroup A Standards
Group A Standards
 
SustainablePlaces_ifcOWL_applications_2015-09-17
SustainablePlaces_ifcOWL_applications_2015-09-17SustainablePlaces_ifcOWL_applications_2015-09-17
SustainablePlaces_ifcOWL_applications_2015-09-17
 
Semantic Modeling for Information Federation
Semantic Modeling for Information FederationSemantic Modeling for Information Federation
Semantic Modeling for Information Federation
 
Intake 38 data access 4
Intake 38 data access 4Intake 38 data access 4
Intake 38 data access 4
 

Plus de bharati k

Aggregate functions in sql
Aggregate functions in sqlAggregate functions in sql
Aggregate functions in sqlbharati k
 
Application deployment for iot
Application deployment for iotApplication deployment for iot
Application deployment for iotbharati k
 
Bi and big data
Bi and big dataBi and big data
Bi and big databharati k
 
Big data challenges for e governance
Big data challenges for e governanceBig data challenges for e governance
Big data challenges for e governancebharati k
 
Comparison between rdbms and nosql
Comparison between rdbms and nosqlComparison between rdbms and nosql
Comparison between rdbms and nosqlbharati k
 
01072013 e governance
01072013 e governance01072013 e governance
01072013 e governancebharati k
 

Plus de bharati k (7)

Aggregate functions in sql
Aggregate functions in sqlAggregate functions in sql
Aggregate functions in sql
 
Application deployment for iot
Application deployment for iotApplication deployment for iot
Application deployment for iot
 
Smart city1
Smart city1Smart city1
Smart city1
 
Bi and big data
Bi and big dataBi and big data
Bi and big data
 
Big data challenges for e governance
Big data challenges for e governanceBig data challenges for e governance
Big data challenges for e governance
 
Comparison between rdbms and nosql
Comparison between rdbms and nosqlComparison between rdbms and nosql
Comparison between rdbms and nosql
 
01072013 e governance
01072013 e governance01072013 e governance
01072013 e governance
 

Dernier

Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...PsychoTech Services
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024Janet Corral
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 

Dernier (20)

Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 

Mof

  • 1. Metamodeling and Meta-Object Facility (MOF) Petri Selonen 8109103 Software Engineering Theory Spring 2004 Tampere University of Technology 1 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 2. Presentation Outline 1. Introduction to Metamodeling 2. Introduction to MOF 3. MOF in Detail 4. MOF and Unified Modeling Language 5. Concluding Remarks Tampere University of Technology 2 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 3. Models and Metamodels • Merriam-Webster Online Dictionary defines a model roughly as a “description or analogy used to help visualize something that cannot be directly observed” • models are used for describing, visualizing, and observing • models describe a system from different viewpoints, for different stakeholders, at different levels of abstraction • Models are, first and foremost, used for communication • ability to convey unambiguous meaning is essential • need for an underlying model behind the model metamodel • Metamodels describe models (i.e., metamodel instances) • allowed metaelements, their properties and relationships • well-formedness rules for the instantiated models • in essence, an abstract syntax for models! Tampere University of Technology 3 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 4. Models and Metamodels, cont’d • In addition, metamodel should describe the semantics for the metaelements and thus the meaning of a metamodel instance • in practice, abstract syntaxes are given more emphasis… • Conceptually, a class diagram can act as a metamodel for an object diagram: +owner +ownedCar Person Car 1..* 0..* name : String name : String yearOfPurchase: Integer Application model "metalevel" boundary Model instance owner Joni : Person Avensis : Car yearOfPurchase := 1999 Tampere University of Technology 4 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 5. Models and Metamodels, cont’d • If metamodels are important, how should they be presented? • a metamodel itself is an instance of a meta-metamodel • metacircular definitions lead to an infinite number of metalevels! • There is a need for metalevel or metadata architectures • they have been used in many application domains • artificial intelligence, operating systems, programming languages, etc. • with object-oriented systems, a metalevel is often considered as a “higher sphere of control” • However, metamodeling in the context of software modeling languages has only recently gained larger (non-academic) popularity • Of course, MetaEdit has been around for ~15 years… • As the importance of modeling grows, so does the need for well-defined techniques Tampere University of Technology 5 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 6. Metadata Architectures • Metadata architectures should facilitate construction and building of frameworks and systems supporting the usage of meta-level information • in the context of this presentation, they should facilitate the building of metamodels • Characteristics of metadata architectures include the ability • to support arbitrary kinds of models, • to support arbitrary kinds of modeling paradigms, • to relate different kinds of metadata, • to incrementally add new metamodels and new kinds of metadata to existing metamodels, • to support interchange of arbitrary metadata and meta- metadata • Next slide presents an example of a four-layer metadata architecture conforming similar to the ones presented by ISO Tampere University of Technology 6 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 7. Four-Layer Metadata Architecture Tampere University of Technology 7 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 8. Presentation Outline 1. Introduction to Metamodeling 2. Introduction to MOF 3. MOF in Detail 4. MOF and Unified Modeling Language 5. Concluding Remarks Tampere University of Technology 8 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 9. Object Management Group (OMG) • An open membership, not-for-profit consortium with over 600 members (est. 1989) • originally promoted theory and practice of object-oriented technology in software development • now aims at producing “industry specifications for interoperable enterprise applications” • Adopted technologies include: • Model Driven Architecture (MDA) • Meta-Object Facility (MOF) • Unified Modeling Language (UML) • XML Metadata Interchange (XMI) • Common Warehouse Metamodel (CWM) • Common Object Request Broker Architecture (CORBA) • On-line at http://www.omg.org Tampere University of Technology 9 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 10. Metamodeling and MOF • The advent of OMG’s Model Driven Architecture (MDA) initiative places further weight on models • emphasis on automatic generation of models and model (PIM to PSM) transformations • seamless transition from high-level business and domain logic into executable code (also seen as a model) • The Meta-Object Facility (MOF) is OMG’s answer to support the generation and representation of arbitrary metamodels • the MOF Model and associated MOF IDL provide a meta- metamodel for describing metamodels • metamodels are instances of meta-metamodels • support for common repositories, distribution of data, etc. • MOF offers a meta-metamodel, i.e., metadata architecture for constructing metamodels! Tampere University of Technology 10 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 11. Overview on MOF • MOF defines an abstract language and a framework for specifying, constructing, and managing technology neutral metamodels (e.g. UML, MOF itself) • MOF specification 1.4 (April 2002) includes • A formal definition of MOF meta-metamodel • Abstract language for specifying MOF metamodels • A mapping from arbitrary MOF metamodels to CORBA IDL • Produces IDL interfaces for managing metadata • A set of reflective CORBA IDL interfaces • For representing and managing MOF metamodels • An XMI format for MOF metamodel interchange • Metamodels of MOF and UML are architecturally aligned • They share a common subset of core modeling concepts • MOF reuses UML notation for visualizing metamodels Tampere University of Technology 11 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 12. MOF Metadata Architecture • MOF is a meta-metamodel for defining metamodels for various domains and modeling languages • MOF offers a CORBA IDL for creating, accessing, and modifying the information present in metamodel instances • MOF Model is object-oriented • metamodeling constructs are aligned with UML’s object modeling constructs • Even though MOF outlines a four-layer structure… • information layer (M0), model layer (M1), metamodel layer, and meta-metamodel layer • …MOF metalevels are not fixed Tampere University of Technology 12 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 13. MOF Metadata Architecture, cont’d • The MOF Model is self-describing • it is defined by its own constructs • its interfaces and behavior can be defined applying MOF IDL mappings to the MOF Model itself • architectural basis for extensions and modifications of MOF models • As with the concept of metadata architectures, MOF offers • support for arbitrary models and modeling paradigms • possibility of relating different kinds of metadata • possibility of incremental addition of new metamodels and metadata • support for interchange of arbitrary metadata (models) and meta-metadata (metamodels) that use the same meta- metamodel Tampere University of Technology 13 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 14. Parallel Instances of MOF Layers Tampere University of Technology 14 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 15. MOF Technology Mappings Tampere University of Technology 15 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 16. Presentation Outline 1. Introduction to Metamodeling 2. Introduction to MOF 3. MOF in Detail 4. MOF and Unified Modeling Language 5. Concluding Remarks Tampere University of Technology 16 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 17. MOF Classes • Classes model MOF metaobjects • classes defined at the Mi level have instances at M(i-1) level • instances have object identity, state, and behavior • Classes can have Attributes and Operations • Attributes have normal interpretation • Operations are “hooks” for accessing behavior • they simply specify the names and type signatures • both have scoping and multiplicities • Classes can be generalized • “typical” interpretation • type substitutability at M(i-1) level • no name over-riding is allowed • Abstract classes are allowed Tampere University of Technology 17 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 18. MOF Associations and Data Types • Associations express relationships in a metamodel • meta-associations at Mi level have instances (metalinks) at M(i-1) level • they are binary and have multiplicities • they can have aggregation or composition semantics • Data types present those types whose values do not have object identity • primitive types include Boolean, Integer, and String • MOF defines in total six standard, “technology-neutral” data types • data type constructors allow definition of more complex data types: Enumeration, Structure, Collection, Alias, etc. Tampere University of Technology 18 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 19. Other MOF Elements • Packages group elements in a metamodel • at Mi level they modularize the metamodel space • at M(i-1) level they act as “outermost” containers for metadata • packages can relate to each other in several ways: generalization, package nesting, package importing, and package clustering • Miscellaneous MOF elements include constraints, constants, exceptions, tags, etc. Tampere University of Technology 19 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 20. MOF Model Package Overview Tampere University of Technology 20 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 21. Differences Between MOF and UML MOF UML Binary associations N-ary associations No AssociationClasses or AssociationClass, Qualifier Qualifiers Direct References Navigation through Associations Generalization and Generalization and Dependency are Associations Dependency are metaclasses No support for templates Template metaclass Subset of CORBA primitive No CORBA awareness data types and constructors Tampere University of Technology 21 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 22. Presentation Outline 1. Introduction to Metamodeling 2. Introduction to MOF 3. MOF in Detail 4. MOF and Unified Modeling Language 5. Concluding Remarks Tampere University of Technology 22 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 23. Three-Layer Example M2. Metamodel +participant 0..* Class AssociationEnd 1 +association name : String name : String 1 +type 0..1 multiplicity : Multiplicity 2..* +connection 0..* +feature 1 Attribute Association M1. Model +owner +ownedCar Person Car 1..* 0..* name : String name : String yearOfPurchase: Integer M0. Instance owner Joni : Person Avensis : Car yearOfPurchase := 1999 Tampere University of Technology 23 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 24. Model vs. View M1-model as a UML class diagram +owner +ownedCar Person Car 1..* 0..* name : String name : String yearOfPurchase: Integer M1-model as a M2-level instance owner : : Association ownedCar : AssociationEnd AssociationEnd multiplicity=[1,*] connection connection multiplicity=[0,*] aggregationKind=none aggregationKind=none participant participant Person : Class Car : Class feature feature feature yearOfPurchase name : Attribute name : Attribute : Attribute type=String type=Integer type=String Tampere University of Technology 24 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 25. Example: Defining a Metamodel • To exploit MOF, let us define a new, MOF compliant metamodel for our own, proprietary modeling language • The language is called HeaVy which allows the user to introduce 1. participants with attributes, 2. binary associations between participants (containing a name, end role names, and end multiplicities), and 3. actions connected to one or more participants (actions have parameters, a guard, and method body) c Car new_car_buyer yearOfPurchase: Integer (name) context foo not exists p2:Person :: p2.name=name own inv: (self.name=“Joni” or self.name=“Reima”) implies p(name) || own(p,c) owner 0..1 self.car.name=“Avensis” new p Person name: String Tampere University of Technology 25 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 26. HeaVy Metamodel / Abstract Syntax M2. HeaVy Metamodel +participant 0..* Participant AssociationEnd 1 +association name : String name : String multiplicity : Multiplicity 2 +connection 1 Class Activity Association c Car new_car_buyer yearOfPurchase: Integer name : String name : String name : String (name) 1 1 0..* 0..* not exists p2:Person :: p2.name=name own p(name) || own(p,c) owner 0..1 0..* +feature 0..* +parameter 0..* +guard new p Person Attribute Parameter Guard name: String name : String name : String expression : String type : String type : String 0..* Action +action expression : String Tampere University of Technology 26 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 27. HeaVy Metamodel / Rest of the Stuff • Example well-formedness rules • all HeaVy models (i.e., HeaVy metamodel instances) must conform to the MOF structural constraints (i.e., stated by the association end multiplicities) • Additional rule (using UML’s OCL) for Classes [1] Attributes must have unique names within a Class: self.feature->select( a | a.oclIsKindOf(Attribute) ) ->forAll( p,q | p.name=q.name implies p=q) • Detailed semantics: 42 • Example notation rules • classes are depicted as rectangles with two compartments, with their name centered in the upper rectangle, and their attributes left-justified in the lower rectangle (name ‘:’ type) Tampere University of Technology 27 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 28. HeaVy Stuff cont’d • Now we have defined our proprietary metamodel using MOF • MOF standard defines abstract mappings of HeaVy models • XMI standard defines concrete mapping of HeaVy metamodel into a HeaVy DTD, and a mapping from HeaVy metamodel instances into XML/XMI files • It is up to the implemented tools, transformation components, and users to read our HeaVy definition and interpret it correctly • we only defined an abstract syntax (a very loose one) • We would probably like to reuse and exploit the existing modeling tools and metamodels • fortunately, MOF and UML are very much aligned… • …as is HeaVy, surprisingly enough • UML profiles offer a lightweight extension mechanism Tampere University of Technology 28 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 29. Using UML Profiles • Profiles have not been properly defined in UML • just a few example figures with textual descriptions • only used for direct metaclass reuse, meta-associations are not covered by the existing definitions • assumes that the existing UML metamodel remains in effect • Fortunately, we are practical people, we are not formal people (adaptation of Gianna Reggio, UML’02) • when in trouble, switch metalevels back and forth • “what do you mean it cannot be done, I just did it?” • Our toolbox: • define new stereotypes to represent user-specified new metaclasses, derive them from standard UML metaclasses • define new attributes using Tagged Values • when necessary, override existing meta-associations (inclusive vs. exclusive) • introduce additional OCL constraints Tampere University of Technology 29 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 30. Using UML Profiles, cont’d • Our goal is just to provide sufficient support for HeaVy in such a manner that these extended models can be represented in existing UML CASE tools, and the models can be exchanged in standard format • Both the metamodel extension, i.e., HeaVy profile and the actual HeaVy models are just plain UML models • They can be represented in standard XMI • Most tools, while not capable of interpreting the profiles, still support alternative visualizations • When available, tools aware of our (non-existent) semantics can react to the models • For even further simplicity: • only introduce the concept of HActivity (standing for HeaVy activity) Tampere University of Technology 30 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 31. Using UML Profiles, cont’d <<metaclass>> <<metaclass>> Parameter Method +parameter name : String body: ProcedureExpr * 1 +type 1 +specification 0..1 <<metaclass>> +constraint <<metaclass>> <<metaclass>> Constraint * * Classifier Operation name : String name : String 0..1 0..* name : String +feature body : BooleanExpression UML Metamodel <<stereotype>> <<stereotype>> <<stereotype>> HeaVy Profile <<stereotype>> +constraint <<stereotype>> +feature <<stereotype>> HGuard 1 1 HActivity 1 1 HSignature body : BooleanExpression Tampere University of Technology 31 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 32. A UML Metamodel Instance of HeaVy Model add_owner (id, name) Person new p not exists b2:Book :: b2.id=id id: Integer name: String p(id, name) <<HGuard>> : Constraint body="not exists b2:Book :: b2.id=id" id : Attribute <<HActivity>> type=Integer add_owner : Person : Class <<HSignature>> Classifier : Operation name : Attribute type=String id : Parameter new p : : AssociationEnd AssociationEnd name : Parameter : Association : Method body="p(id,name)" Tampere University of Technology 32 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 33. UML Profiles vs. MOF Metamodels • Decision whether to design a metamodel as a MOF instance, or whether to extend the UML metamodel depends on the domain and intent • UML has wide-spread CASE tools support • but the tools are usually weak and not metamodel aware • UML already includes an extensive portion of necessary software modeling constructs • but some constructs are ambiguous and even inconsistent • UML specification is very large and complex • MOF specification is compact but restrictive • UML defines a well-established notation • but MOF re-uses the same notation • UML profile mechanism is very loosely defined • gives flexibility but enforcement requires conventions or proprietary tools • MOF metamodeling is harder to grasp but quite powerful • How much does one want to reuse the UML semantics? Tampere University of Technology 33 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 34. UML Metamodel Excerpt (Core::Structure) +parameter 0..1 +specification * Parameter Operation Method * 1 name : String name : String body: 0..* +feature ProcedureExpression +type 1 0..1 +participant 0..* Constraint +constraint Classifier AssociationEnd 1 +association * name : String name : String name : String body : BooleanExpression 1 +type 0..1 multiplicity : Multiplicity 2..* 0..* +feature 1 Attribute Association Tampere University of Technology 34 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 35. Presentation Outline 1. Introduction to Metamodeling 2. Introduction to MOF 3. MOF in Detail 4. MOF and Unified Modeling Language 5. Concluding Remarks Tampere University of Technology 35 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 36. Concluding Remarks • Metadata architectures are good and metamodeling is good, m’kay? • support for common repositories and exchange formats • support for defining series of metamodels sharing the same meta-metamodel • support for arbitrary(?) modeling languages and paradigms • support for relating metalevel elements • MOF offers metamodeling and a metadata architecture implementation • an industry standard • support for existing and upcoming technologies • aligned with UML • “a single reference point throughout the enterprise” Tampere University of Technology 36 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 37. Questions? [see if I care] “When you can’t beat them, move one metalevel higher. “ -Author you puny instances…. Tampere University of Technology 37 FILENAMs.PPT/ 6-Feb-04 / PSe
  • 38. Alignment with CWM • MOF has been adopted as a part of OMG’s Common Warehouse Metamodel (CWM) technology • Motivation for CWM • systems are complex and interdependent • there is a need to trace data flows between systems • there is a need to understand meaning and context of data elements • new information systems • unlike with data driven systems, where metadata was local • need to trace information • need to implement and enforce standards • need to provide reference points • industry standard • “reflects the real world” • single reference point throughout the enterprise • very much in line with the MDA approach! Tampere University of Technology 38 FILENAMs.PPT/ 6-Feb-04 / PSe