Title: ME training
1Metamodeling and method engineering Metamodeling
languages
- Juha-Pekka Tolvanen
- 3.3.2004
- Lecture 4 Metamodeling languages
- Contents
- Definitions
- Examples of metamodeling languages
2Defining metamodeling and metamodels
- Models play a crucial role in ME, as in all
engineering. - A metamodel is a conceptual model of an ISD
method. - one level of abstraction higher than normal
models - Metamodeling is a modeling process which takes
place one level of abstraction and logic higher
34 level architecture of IRDS by ISO
- The IRD Definition Schema Level
- A metametamodel according to which the IRD
Definition level objects can be described. - e.g. concept (Wijers 1991) or OPRRs Object
metatype (Smolander 1992). - IRD Definition level
- Schemata and application programs specs
- Metaclass level of languages such as Smalltalk.
- Metamodels
- e.g. specification of UML
- The IRD level
- DB schemata and app. programs
- Class level of class-based languages
- Models
- e.g. Customer entity
- The application level
- Application data and execution.
- Instances of class-based languages.
- Instances
- e.g. Customer Juha-Pekka
4Model architecture (OMG)
Metametamodel
Relationship
Property
Graph
Object
Role
Metamodel
Button
Alarm
InstanceOf
InstanceOf
InstanceOf
Model
Wake
Down
Sets
InstanceOf
System in operation
Down button pressed
5ISOs IRDS framework
- Information Resources Dictionary Standard shows
that - at least four levels of instantiation are
necessary - to integrate the modeling of the usage and
evolution of Iss - with interlocking pairs (instance-type pair)
- Method Engineering focus on
- defining IRD Definition level (i.e. metamodels)
based on - IRD Definition Schema level
ME
ISD
Use of IS
6An instance example starting point for
metamodeling
- Instance (model)
- What is the structure of the method for modeling
- activities/tasks,
- order between tasks,
- material flow,
- information flow,
- rules for flows,
- triggers for initiating tasks,
- (references between models)
7An example metamodel
- Types (metamodel)
- Includes all the type information
- object (types)
- relationship (types)
- property (types)
- ...
8Type-instance pair Some mappings between the
levels
9An example a modeling method based on the
metamodel
10Use of metamodels
- Metamodels make methods explicit!
- we can discuss and analyze them
- Systematize and formalize method knowledge
- CASE tool and repository implementation
- mapping to generators and other tools
- interfacing tools (e.g. CDIF XMI)
- compare methods
- support standardization efforts (e.g. OMGs UML)
- Types of metamodels
- Meta-data models (static structure of method)
- Process models (dynamic part of method)
- No modeling is possible without some sort of
(explicit or implicit) metamodel!
11First metamodeling task DFD
- What (meta)elements you can detect from the DFD
- Objects?
- Relationships?
- Rules?
- Linkages to other models?
- Structure Chart?
- Entity-Relationship Diagram?
- Others?
- Mappings to
- code?
- testing material?
- ?
12Implementing metamodels
- Metamodels support implementation of
situation-specific development tools (modeling,
interfaces, transformations) - Metamodel of ERD ERD Modeling (based on
the metamodel)
13Example metamodel Booch
14Booch in use
15Metamodeling languages
- Metamodeling is based on languages too!
- These vary from purpose
- illustrating vs. formalizing methods
- build tool support?
- meta-data model v.s. process model vs. etc.
- What kind of representation for metamodels
- graphical (ER, NIAM, OPRR, GOPRR, MOF)
- matrix (O/A Matrix),
- text (ObjectZ, MDL, MEL, MOF), or
- form based (GOPRR)
Discussion Which of these should be preferred?
16A short review to modeling power of metamodeling
languages
- Example from object-oriented design method
- the life-cycle of class instances must be
specified with one or more state models. - A state model contains states and transitions
between two states. - A state must be specified by a name and a class
may have only one state with a given name. - Each transition must be specified with an action
which is executed when a transition occurs. - An action is specified as an operation of a class.
17Partial example STD
18Metamodeling languages ER
- What is missing from the metamodel
- Different modeling languages? (mapping of action)
- Transitions should be always connected to states?
- Mandatory state name?
- Unique names?
- ?
19Metamodeling languages OPRR
- What is missing from the metamodel
- Different modeling languages?
- mapping of action to an operation of a class
- mapping of state (model) to class
- Mandatory state names?
- Unique names?
- ?
20Metamodeling languages CoCoA
- What is missing from the metamodel
- Transition and state mapping to (notation)
different types - Dependency of operations to actions
- Mandatory attributes
- Unique states
- ?
21Metamodeling languages NIAM
- What is missing from the metamodel
- Transition and state mapping to (notation)
different types
- Interconnected methods?
- Linkage between action and operation
- ?
22Metamodeling languages GOPRR
- What is missing from the metamodel
- How many state models a class can have?
- Uniqueness of states (for one class)?
- Mandatory values?
- ?
23Use of meta-data models in ISD
- By specifying the conceptual structure of a
method metamodels can cover support for - Abstraction and modeling
- modeling editors and other tools (reuse, naming
conventions) - Consistency checking and maintenance
- change of a class name in one place reflects
elsewhere, etc. - integration and linkages between methods
- Form conversion
- code generation, testing material, etc.
- exports to other tools
- Review
- documentation, summary reports
24Metamodeling approaches
- Metamodels address partial aspects of the method
- few values assumptions
- some decision making
- history
- few participation team
- communication, roles
- quite a many processes
- quite many notations, and
- mostly conceptual structures
- We focus to the last two!
25Meta-data modeling
- A metadatamodel specifies
- languages and representations,
- links between the language constructs,
- consistency checks, and instance population rules
- transformation rules between the language
constructs (syntax, representation style)
26Process (or meta-activity) modeling
- A process model specifies
- development tasks, e.g.
- phases
- tasks
- steps
- reviews
- milestones
- checking
- transformations
- decisions
- sequence and composition of tasks
- conditions and rules between tasks
27Agent models
- An agent model specifies
- usage of CASE environment, human and technical
agents - organization structure role models
- communication model