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:
|
||||||
|
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. |
Object types = {Process, Store, External, Module, State, Entity} |
<organization, {organization name, Owner}> |
Process/Entity Matrix={<Data usage,{<Used,{Entity}>, <Uses,{Business Process}>}>} |
<Attributes, {<Attribute, {Attribute name, Data type, Attribute type, Initial value, Constraints, Visibility}>}> |
Explosions ={<Process, {Structure Chart, State Diagram}>} |
Decomposition ={<Process, {Data Flow Diagram}>} |