An application domain is defined to be a collection of
systems that share common characteristics.
A domain model is used to capture common
characteristics and variations among a family of software
systems [Parnas79] in a given application domain.
>From the domain model, target systems can be
generated by tailoring the domain model.
The concept of generating target systems from an application domain model
has been adopted by various researchers [Batory89, Kang90, Lubars89, Pyster90].
Reuse is an
important goal in domain modeling. The primary objective of
the domain modeling approach to software development is to
increase reuse, i.e., not only code reuse, but also of
domain knowledge such as domain requirements, specifications
and designs.
Applying the domain modeling method, the application domain
is modeled by means of the following views:
- Aggregation Hierarchy. The Aggregation Hierarchy is used
to decompose complex aggregate object types into
less complex object types eventually leading to simple object
types at the leaves of the hierarchy.
- Object Communication Diagrams. Objects in the real world
are modeled as concurrent processes, which communicate with
each other using messages. The object communication
diagrams, which are hierarchically structured, show how
objects communicate with each other.
- State Transition Diagrams. As each active object is modeled as a
sequential process, it may be defined by means of a finite
state machine and documented using a state transition
diagram.
- Generalization / Specialization Hierarchies. As the
requirements of a given object type are changed to meet the needs
of a given target system, the object type may be specialized by
adding, modifying or suppressing operations. The variants of
a domain object type are stored in this hierarchy.
- Feature / Object Dependencies. This view shows for each feature (domain
requirement) the object types required to support the feature.
The domain modeling method has been applied to developing a
domain model for NASA's Payload Operations Control Center
(POCC) Domain.