5.2.7 Object Modeling Technique (OMT)

OMT (Rumbaugh et al., 1991) was developed as an approach to software development. A fundamental assumption of OMT is that object-oriented thinking represents a more natural and intuitive way for people to reason about reality (ibid.:21), although this claim has been severely questioned, e.g. by Høydalsvik and Sindre, 1993; and Hanseth and Monteiro, 1994.

OMT is included here because Rumbaugh (1993:18) discusses enterprise modeling explicitly using OMT. OMT is also a widely popular and comprehensive approach that exemplifies the vast number of object-oriented approaches to modeling.

The purposes of modeling according to Rumbaugh et al. (1991:15) are

Hence, understanding and simulation is at the core. As a general modeling approach, OMT may be used to model all types of work. OMT proposes three main types of models: The entire OMT software development process has four phases: Analysis, system design, object design, and implementation of the software. Most of the modeling is performed in the analysis phase. The recommended method incorporates the following activities (Rumbaugh et al., 1991:261ff):
  1. Develop a Problem Statement.
  2. Build an Object Model:
    1. Identify object classes.
    2. Develop a data dictionary for classes, attributes, and associations.
    3. Add associations between classes.
    4. Add attributes for objects and links.
    5. Organize and simplify object classes using inheritance.
    6. Test access paths using scenarios and iterate the above steps as necessary.
    7. Group classes into modules, based on close coupling and related function.
  3. Build a Dynamic Model:
    1. Prepare scenarios of typical interaction sequences.
    2. Identify events between objects and prepare an event trace for each scenario.
    3. Prepare an event flow diagram for the system.
    4. Develop a state diagram for each class that has important dynamic behavior.
    5. Check for consistency and completeness of events shared among the state diagrams.
  4. Build a Functional Model:
    1. Identify input and output values.
    2. Use data flow diagrams as needed to show functional dependencies.
    3. Describe what each function does.
    4. Identify constraints.
    5. Specify optimization criteria.
  5. Verify, iterate, and refine the three models:
    1. Add most important operations to the object model.
    2. Verify that classes, associations, attributes and operations are consistent and complete, check with problem statement.
    3. Iterate steps to complete the analysis.
A remark concerning the method is that it exclusively refers to activities using concepts from the modeling language, i.e., classes, attributes, etc. Hence, the focus is on the representation of enterprise models.

Worldview is not discussed explicitly, but OMT seems to have an objectivistic foundation. This was also concluded by Krogstie (1995:126). One indication can be found when looking at the method above: There is no support for the sense-making part of modeling, the focus is on representation. Another indication is the lack of discussion of modeling as a social and creative activity: The references to social actors typically concern the modeler obtaining a problem statement from the requestor or a domain expert (Rumbaugh et al., 1991:150) or checking his model with the requestor or the domain expert (ibid.:186). There are no indications of seeing reality as socially constructed.