Title: Metamodeling and method engineering GOPRR metamodeling language
1Metamodeling and method engineering GOPRR
metamodeling language
- Juha-Pekka Tolvanen
- 8.3.2004
- Lecture 5 GOPRR metamodeling language
- Contents
- Syntax and semantics
- Instance examples
- Metamodeling task
2Metamodeling concepts of GOPRR
- Concepts
- Graph
- Object
- Property
- Role
- Relationship
- Port
- Rules, e.g.
- Max 1
- Min 1
- Unique, etc
- Links between models
- Reuse rules
3GOPRR metamodeling concepts
- What (meta)elements GOPRR detect from the DFD
- Graphs and their contents
- Objects
- Relationships
- Roles
- Bindings among Objs, Rels, Roles
- Properties
- Links of properties to other non-properties
- Linkages to other models
4Metamodeling languages Graph
- A concept of GRAPH
- A collection of object, relationship and role
types, and bindings describing how these can be
connected. - reuse of objects, relationships and roles
- binds a set of object, relationship and role
types - Binding can be n-ary, method specifies
cardinality of each role type - Bindings can have connectivity rules (e.g. single
inheritance allowed only) - A graph type usually denotes a modeling
technique - class diagrams
- state diagram
- Has properties in the same way as an object
- class model has a name, owner, date, version.
- Represented by a window symbol
5Metamodeling languages Object
- A concept of OBJECT
- An object describes a thing that can exist on its
own (independently of relationships and roles) - Object type names are typically nouns.
- Objects are part of a graph
- Objects can be characterized with properties
- Examples
- process
- class
- attribute
- Represented by a rectangle
6Metamodeling languages Property
- A concept of PROPERTY
- Properties describe characteristics of instances
of other types. - Property type names are generally nouns or
adverbs. - Examples include class name, cardinality, and
attributes. - Each property type has a basic data type (e.g.
number, string, Boolean, text, another type
(graph, object, role or relationship), or a
collection of one of these). - A collection data type is represented with a
double ellipse.
7Property definition Properties of class
8Metamodeling languages Relationship
- A concept of RELATIONSHIP
- A relationship can exists between objects. It
connects objects through roles. - Semantically, relationships are usually verbs,
but relationship type names are sometimes also
nouns or adverbs. - Examples include
- inheritance
- call
- usage
- Represented by a diamond
9Metamodeling languages Role
- A concept of ROLE
- A role specifies how an object participates in a
relationship. - Semantically, roles are adverbs. Role type names
are often prepositional phrases or verbs. - Examples include
- subclass
- from
- receives
- Represented by a circle
10Metamodeling languages Inclusion
- An inclusion relationship can exist between a
graph type and its components (i.e. object,
relationship, and role types). - Inclusion is used to combine all the main
components of a technique. - Inclusion is many-to-many, so that the same type
can belong to many graph types. - Graph forms an unit for some rules
- cardinality
- connectivity
- explosions
11Metamodeling languages Binding
- Participation
- An object type can participate in zero to many
role types. - In a graph type, a role type must be related to
at least one object type. - Composition
- Relationship types are related with at least two
compositions to role instances - Role instances note cardinality constraint
- Together with a participation, this forms a
binding - Each role type in a binding is characterized with
a cardinality constraint describing - how many instances of this role type must
(minimum) or - may (maximum) occur in an instantiation of this
binding - Graph constraints for binary/n-ary relationships
12Metamodeling languages Property of
- A property can characterize instances of other
types (i.e. non-properties). - This relation is described in a metamodel with
the property of relationship. - Each property of relationship is specified
further with three constraints - 1) Id to describe if the property type is used as
a naming property (a non-property type can have
only one id), - 2) Uniqueness to specify if there is no
duplication of property values allowed among
instantiations of this property of
relationship, and - 3) Local name to define a name for this use of
the property type. - two non-property types can refer to the same
property type but with different labels
13Metamodeling languages Property link
- The data type of a property type can be itself a
non-property type - This is defined with a property link relationship
from the property type to a non-property type - Same property can be shared by different objects,
e.g. - operation name of class
- event of state transition
14Metamodeling languages Explosion
- An object, relationship or role can be linked to
one or more graphs via an explosion - Explosion is typically used between different
graph types - Explosion is graph-sensitive
- the same object can explode elsewhere in another
graph - Examples include that a process in a data flow
diagram can be related to a state diagram and to
process specifications
15Metamodeling languages Decomposition
- An object can be decomposed into a new graph.
- This feature is known as functional decomposition
in data flow diagrams, or leveling of graphs to
form a hierarchy - The decomposition target is typically of the same
graph type as the sources containing graph - Only one decomposition is allowed for each object
instance, and it applies in all graphs containing
that object - There may be a set of graph types specified as
possible decomposition targets for an object
type, and this set may be different in each graph
type where this object type is used.
16Example mapping resources to org
17A larger example BPR
18Metamodeling task
- Make a metamodel of DFD by using GOPRR
19About metamodel presentation
- Graphical models good when designing the method
- MetaEdit applies form-based metamodeling tools
Rules
Generators
3
4
1
2
Concepts
Symbols