Journal Articles

Overload Journal #1 - Apr 1993 + Design of applications and programs
Browse in : All > Journals > Overload > 01 (12)
All > Topics > Design (236)
Any of these categories - All of these categories

Note: when you create a new publication type, the articles module will automatically use the templates user-display-[publicationtype].xt and user-summary-[publicationtype].xt. If those templates do not exist when you try to preview or display a new article, you'll get this warning :-) Please place your own templates in themes/yourtheme/modules/articles . The templates will get the extension .xt there.

Title: Rumbaugh's OMT - The method behind C++ Designer

Author: webeditor

Date: 30 April 1993 11:54:00 +01:00 or Fri, 30 April 1993 11:54:00 +01:00

Summary: 

Body: 

Introduction

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 availa­ble at the time, including Booch, Coad-Yourdon and Shlaer-Mellor. In making our choice, we considered the following factors:

After a great deal of internal and external debate, we finally settled on OMT:

OMT Overview

OMT uses three integrated models to describe a sys­tem; the object, dynamic and functional models. Only the first of these is supported by C++ Designer, how­ever 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 rela­tionships which can be drawn include inheritance, aggregation and association. The modelling syntax is rich enough to represent the majority of 00 constructs in com­mon use.

The diagram shows the symbol for a class in OMT notation. The attributes and operations correspond to C++ data and function members.

Symbols for a class in OMT notation

Here we are illustrating single inheritance. The land and water vehicle classes are sub­classes of vehicle.

Single inheritence in OMT

Now we've added multiple inheritance by introducing an amphibious vehicle.

Mulitple inheritence in OMT

The diamond symbol is used to show aggregation or 'part-of rela­tionships

Arrgregation in OMT.

Petrol station control system design in OMT

The above diagram shows how the notation would be used for the design of a petrol station control system. Note that we have also used the association notation (e.g. between the CONSOLE and the PUMP), which is similar to a rela­tionship in entity-relationship notations.

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 pow­erful than that commonly used in Yourdon.

The dynamic model in OMT

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 defin­ing 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.

The functional model in OMT

Summary

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.

Notes: 

More fields may be available via dynamicdata ..