This article gives an overview of the Object Modelling Technique (OMT), which is fully described in the book by Rumbaugh et al. (Object-Oriented Modelling and Design, Prentice-Hall 1991).
OMT has been used as the basis for Select's new C++ Designer product.
Why we chose OMT
Prior to starting the C++ Designer development, we reviewed most of the OO methods which were available at the time, including Booch, Coad-Yourdon and Shlaer-Mellor. In making our choice, we considered the following factors:
- The method should support all of the main OO semantics - i.e. inheritance (is a kind of), aggregation (is a part of) and association (is related to)
- It must cover both analysis and design to a reasonable extent and give a smooth transition between the various stages of the life-cycle - especially between the design phase and C++ code.
- It should provide support, or at least form a good basis for providing support, for real-time as well as MIS systems.
- It should not be over complex.
- It should, where possible, use familiar techniques in order to reduce the learning curve for users experienced in structured methods.
- It should be an open standard - i.e. it should be published, public and well known.
- The book in which the method is described should be readable and reasonably complete and consistent.
- Training courses and consultancy should be available on both sides of the Atlantic from a variety of sources.
- Other CASE vendors should be supporting, or considering support for, the method.
- The combination of the object, dynamic and functional models gives OMT the ability to support many different kinds of applications, including real-time systems (although the authors don't make any claims for this area). In addition, the transition between analysis and design is smooth and fairly well defined.
- OMT is based on Yourdon, but with a strong object-oriented bias. This means that the learning curve is relatively small for the large number of developers who are already trained in Yourdon and other similar methods.
- The book by Rumbaugh et al is reasonably clear and complete. Some aspects, especially those relating to integration between the three models are not presented very consistently, but such criticisms can be levelled at most software engineering books.
- OMT is supported by several training and consultancy organisations in both Europe and the US. This is extremely important for vendors of low-cost CASE tools, since it removes the risk of customers feeling that they are entirely dependent upon the developer of the tool.
OMT was developed in the General Electric Research and
Development Center, New York and has been used for some time in that
environment. In the UK, companies such as Object Designers Ltd have
been using OMT as the basis for their OO developments over the
last two years. In addition, we have found several major clients who
are starting OMT pilot projects (e.g. British Aerospace and Serco).
OMT uses three integrated models to describe a system; the object, dynamic and functional models. Only the first of these is supported by C++ Designer, however Select will be adding a full OMT toolkit to their range later this year.
The Object Model
The object model is central to the method and uses a diagram which is similar to the ERDs used in Yourdon. Classes and their attributes and operations are shown, together with relationships between classes. The relationships which can be drawn include inheritance, aggregation and association. The modelling syntax is rich enough to represent the majority of 00 constructs in common use.
The diagram shows the symbol for a class in OMT notation. The attributes and operations correspond to C++ data and function members.
Here we are illustrating single inheritance. The land and water vehicle classes are subclasses of vehicle.
Now we've added multiple inheritance by introducing an amphibious vehicle.
The diamond symbol is used to show aggregation or 'part-of relationships
The Dynamic Model
The dynamic model consists of a state transition diagram (STD) for each of the classes in the object model.
The STD notation is that defined by Harel (1987), which allows for decomposable states. This is richer and more powerful than that commonly used in Yourdon.
The Functional Model
The functional model uses a hierarchy of data flow diagrams (DFDs) in a similar fashion to the Yourdon method. However, the DFDs are not very well integrated with the object and dynamic models and it is difficult to imagine many projects making extensive use of the functional model.
Some aspects of the functional model are, however, quite useful. For example, the context diagram is vital for defining the scope of the system. Also, it may be possible to strengthen the real-time aspects of the method by introducing the concept of a processor and task model using DFDs.
OMT is a very useful, expressive object-oriented analysis and design method. The object model allows a smooth transition from analysis, through design, to code - especially when systems are implemented in an OO language such as C++. The dynamic model is very useful for illustrating the way in which the system responds to events. However, the functional model must be used with great care in order to avoid distorting the structure of the final application.