Thursday, August 13, 2015

Modeling in OOPS:OMT

Object Modeling Technique (Rumbaugh, 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.
The purposes of modeling according to Rumbaugh are
  • testing physical entities before building them (simulation),
  • communication with customers,
  • visualization (alternative presentation of information), and
  • Reduction of complexity.
As a general modeling approach, OMT may be used to model all types of work. OMT proposes three main types of models:
  • Object model
The object model represents the static and most stable phenomena in the modeled domain. Main concepts are classes and associations, with attributes and operationsAggregation and generalization (with multiple inheritances) are predefined relationships.
  • Dynamic model
The dynamic model represents a state/transition view on the model. Main concepts are statestransitions between states, and events to trigger transitions. Actions can be modeled as occurring within states. Generalization and aggregation (concurrency) are predefined relationships.
  • Functional model
The functional model handles the process perspective of the model, corresponding roughly to data flow diagrams. Main concepts are processdata storedata flow, and actors.
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 :
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.


No comments:

Post a Comment