The object-modeling technique (OMT) is an object modeling approach for software modeling and designing. It was developed around 1991 by Rumbaugh, Blaha, Premerlani, Eddy and Lorensen as a method to develop object-oriented systems and to support object-oriented programming. OMT describes object model or static structure of the system.
OMT was developed as an approach to software development. The purposes of modeling according to Rumbaugh are:[1][2]
testing physical entities before building them (simulation),
communication with customers,
visualization (alternative presentation of information), and
reduction of complexity.
OMT has proposed three main types of models:
Object model: The object model represents the static and most stable phenomena in the modeled domain.[3] Main concepts are classes and associations with attributes and operations. Aggregation and generalization (with multiple inheritance) are predefined relationships.[2]
Dynamic model: The dynamic model represents a state/transition view on the model. Main concepts are states, transitions between states, and events to trigger transitions. Actions can be modeled as occurring within states. Generalization and aggregation (concurrency) are predefined relationships.[2]
Functional model: The functional model handles the process perspective of the model, corresponding roughly to data flow diagrams. Main concepts are process, data store, data flow, and actors.[2]
OMT is a predecessor of the Unified Modeling Language (UML). Many OMT modeling elements are common to UML.
Functional Model in OMT:
In brief, a functional model in OMT defines the function of the whole internal processes in a model with the help of "Data Flow Diagrams (DFDs)". It details how processes are performed independently.