Information Technology Reference
In-Depth Information
The Major Modeling Relationships for Layer-System
Four types of modeling relationships have been of particular interest, which are
distinctly different from one another. They are, respectively, the relationships of aggregation-
decomposition, abstracting-detailing, supertype-subtype and controlling-controlled. They
all serve distinct and important roles in system development. They can be integrated
smoothly, where appropriate, with other models, including object-oriented models. The
following provides features of each relationship:
Aggregation/decomposition relationship : Through this relationship, elements in the
higher layers actually consist of the elements in the lower layers, or conversely,
elements in the lower layers are decompositions of those in the higher layers. This
structure is also known as a whole/part structure or a container/content structure:
namely, a given layer provides the container for the layer below, which is the content
of the layer above. In practice, an aggregate involves more than just collecting sub-
elements into a set. The sub-elements must also interface with one another, requiring
linkages between them that may not be evident when they are considered separately.
When applied to software, we can imagine an architecture module at the highest
software layer; major subprograms it contains are modules in the next layer down; sub-
subprograms or subroutines form a further layer.
Abstraction/detailing relationship : Through this relationship, the higher layers are
simply more abstract expressions of the lower layers, or conversely, the lower layers
are more detailed expressions of the higher layers. It is important to notice this. An
abstract requirement statement does not contain the more detailed requirements
statements that describe it. If we assemble a set of detailed requirements, we merely
have a collection of detailed requirements — the abstract and detailed requirements
exist independently of each other, with an abstraction/detailing relationship between
them.
Supertype/subtype relationship : Through this relationship, an element in the higher
layer — the supertype — includes all of the features that are common to its associated
elements in the lower layer — its subtypes. These features are attributes that are
inherited by the elements on the lower layer. Starting from the lower level, supertypes
are formed for sets of elements that share common attributes. Supertype/subtype
models are important in object orientation. This relationship is the foundation for
inheritance. Moreover, object orientation has taken this relationship and extended it
to more complex forms of inheritance than just attribute inheritance: The lower layer may
also inherit functions and the behavior of the supertypes. With the supertype/subtype
relationship, it is important that the supertype contain all the commonalities of the
subtypes. The main use of this relationship is to discover commonalities and to
describe them only once, thus reducing redundancy. The structure then allows the
lower layers to inherit whatever commonalities have been discovered. We can see that
this relationship is a subtype of the abstraction/detailing relationship. A supertype is
an abstraction of its subtypes, and the subtypes are detailed instances of the
supertype. Other names used for this relationship include generalization/specializa-
tion, class hierarchies, inheritance structures, and “is-a” hierarchies.
Controlling/controlled relationship : Through this relationship, the upper layers
control elements of the lower layers. Other terms used for this relationship are control
hierarchy, or the is-boss-of (is-supervised-by) relationship. Sometimes, we simply say
Search WWH ::




Custom Search