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
operations. Aggregation and generalization (with
multiple inheritances) are predefined relationships.
- 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.
- 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.
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