Previous Next Title Page Contents

APPENDIX

GOPRR metamodeling language

This appendix describes the GOPRR metamodeling language in two ways: by describing the notation for graphical metamodels, and by describing the textual set format used for reporting the metamodels here. A more detailed description of GOPRR can be found from the MetaEdit+ Method Workbench User’s Guide (MetaCASE 1996b) and from (Kelly 1997).

Graphical metamodeling constructs
Concept & representation
Description
Graph type




A graph type is a collection of object, relationship and role types, and bindings describing how these can be connected.

A graph type usually denotes a modeling technique, such as data flow diagrams or class diagrams.
Object type




An object describes a thing that can exist on its own.

Object type names are typically nouns.

Examples include process, class, and attribute.
Property type




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.
Relationship type




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, and usage.
Role type




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, and receives.
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.
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 roles. Together with a participation, this forms a binding (cf. Kelly 1997).

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.
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. Hence, two non-property types can refer to the same property type but with different labels; the labels are visible for example in dialogs for editing the properties of this non-property.
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.
Explosion




An object can be linked to one or more graphs via an explosion.

Explosion is typically used between different graph types.

Examples include that a process in a data flow diagram can be related to a state diagram and to process specifications.
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 source’s containing graph.

Note that only one decomposition is allowed for each object instance, and it applies in all graphs containing that object. In contrast, 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.


Set format of metamodels

The metamodels reported in Section 4 are made by querying the repository of MetaEdit+. The set format has been applied because MetaEdit+ does not use graphical metamodels for tool adaptation.

In the set format all types are described as sets, e.g. the object types of the whole SA/SD method are represented thus:
Object types = {Process, Store, External, Module, State, Entity}
The ‘property of’ relationship is described as a mapping of the set of property types which are associated with each non-property type (roles, objects, relationships). For example:
<organization, {organization name, Owner}>
Participation and composition are described as a binding: each binding stores a relationship, two or more roles, and for each role, one or more objects. Because a graph type can include several bindings they form a set.
Process/Entity Matrix={<Data usage,{<Used,{Entity}>, <Uses,{Business Process}>}>}
Inclusion is described for each technique only implicitly through the bindings, i.e. the non-property types included in the graph type can be found from the union of all binding members for that type.

Property links referring to non-property types which are not directly in an inclusion relationship in any graph type of this method are described by a pair containing a non-property and a set of properties.
<Attributes, {<Attribute, {Attribute name, Data type, Attribute type, Initial value, Constraints, Visibility}>}>
Explosions are described as set of pairs of an object type an d a set of graph types the object type may explode to.
Explosions ={<Process, {Structure Chart, State Diagram}>}
Decompositions are described as a set of pairs of an object type and a set of graph types the object type may decompose to.
Decomposition ={<Process, {Data Flow Diagram}>}
GOPRR metamodels

The metamodels made and adapted into MetaEdit+ and MetaEdit are available from MetaCase Consulting, http://www.metacase.com.

Previous Next Title Page Contents