OMT Object Model
5. Relationship with other OMT techniques
5.1 Overview of OMT
As mentioned before, OMT comprises of three models:
The object model represents the static, structural, 'data' aspects of a system;
The three kinds of models separate a system into orthogonal views, they all describe one aspect of the system, but contain references to the other models.
The dynamic model represents the temporal, behavorial, 'control' aspects of a system;
The functional model represents the transformational, 'functional' aspects of a system.
The object model provides the data essential framework into which the dynamic and functional models can be placed, it defines the data stuctue that the other models operate on. In the end the three models come together in implementation, which involves data (object model), sequencing (dynamic model) and operations (functional model).
Below we will discuss the dynamic and functional model. After that we will show the relationships between the three models.
5.2 Dynamic model
Those aspects of a system that are concerned with time and changes are captured in the dynamic model. It defines the control structure: the aspects of a system that describes the sequences of operations that occur in response to external stimuli, without consideration of what the operations do (functional model), what they operate on (object model), or how they are implemented.
The major dynamic modelling concepts are events (external stimuli), and states (values and links of an object).
The pattern of events, states, and state transitions for a given object class, can be represented as a state diagram. The dynamic model consists of multiple state diagrams, one for each object class with important dynamic behavior.
5.3 Functional model
The functional model shows the computation and functional derivation of the data values in it, without indication how (implementation), when (dynamic model), or why the values are computed. The relationshiop between values in a computation are showed in a data flow diagram. It consists of:
- transformation of data;
- procucers and consumers of values;
- data stores
- creators of delay between creation and use of data;
- data flows
- relation between processen, actors and data stores.
5.4 Relationships between the three models
5.4.1 Object and dynamic model
The dynamic model specifies allowable sequences of changes to objects from the object model. The states of the dynamic model can be related to classes of attibute and links values of an object, events can be represented as operations on the object model.
The object model concepts of generalization, aggregation and inheritance also apply to the dynamic model.
- Every substate of an object restricts the values that an object can have, this is a special form of generalization, namely generalization by restriction. It is clear that both generalization on classes and on states partition the set of possible object values. When there exist inherent differences between objects, they are modeled as different classen. When the differences are temporary, they are modeled as different states of the same class.
- A composite state is the aggregation of more than one substate. Aggregation exists at two levels, aggreation of objects (the composite state is an assembly of the individual states of the parts) and aggregation in objects (groups of attribute and links values define the composite state;
- It is possible to draw hierarchies of events and of states. Events inherit attibutes (the data values) of their parent(s) and states inherit the possible transitions. The dynamic model of a class is also inherited by its subclasses.
5.4.2 Object and functional model
All four components of the functional model can be related to the object model.
- The functional model shows the processes that have to be implemented in the methods of the objects. The processes in the functional model shows the objects that are related by function. Often one in- or output is the target (client) of a process. The other inputs are the parameters (suppliers). These client-supplier relationships establish implementation dependencies between the related classes.
- These are the objects in the object model.
- data stores
- These are also objects in the object model or attributes of objects
- data flows
- These are values in the object model. Data flows to or from actors represent operations on or by objects. Data flows to or from data stores represent queries or updates.
5.4.3 Dynamic and functional model
The relationship between these two models is that the dynamic model states when operations are perfomed, and the functional model states how they are performed and which arguments are needed. There is however a difference between operations on actors and operations on data stores. Because actors are active objects, the dynamic model has to specify when it acts. The data stores are passive objects, they only respond to updates and queries, therefore you do not have to specify in the dynamic model when they act.