In a domain model, an application domain is represented by means
of multiple views, such that each view presents a different
aspect of the domain [#!gomaa92a!#]. The different views are
developed iteratively.
- 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. Objects types are either kernel, i.e., required
in every target system, or optional, i.e., only required in some
target systems. The Aggregation Hierarchy supports the IS-PART-
OF relationship.
- Object communication diagrams. Objects in the real world are
modelled as concurrent tasks, which communicate with each other
using messages. Dynamic relationships between objects, in the
form of messages passed between objects, are shown by means of
object communication diagrams.
- State transition diagrams. Since each object is modeled as a
sequential task, an object may be defined by means of a state
transition diagram, whose execution is by definition strictly
sequential.
- Generalization / Specialization Hierarchy. As the
requirements of a given object type are changed to meet the
specific needs of a target system, the object type may be
specialized by adding, modifying or suppressing operations. In
domain modeling, the variants of a domain object type are stored
in a Generalization / Specialization Hierarchy (GSH), which
supports the IS-A relationship.
- Feature / Object dependencies. This view relates the end-user's
perspective of the domain, namely the features supported
by the domain, to the object types in the domain model. It shows
for each feature (domain requirement) the object types required
to support the feature. Also defined are any prerequisite
features required and any mutually exclusive features. This view
is particularly important for optional features, since it is the
selection of the optional features, and the object types required
to support them, that determine the nature of the desired target
system.