Composite Structures
Overview
The term "structure" in this chapter refers to a composition of
interconnected elements, representing run-time instances collaborating
over communications links to achieve some common objectives.
Internal Structures
The InternalStructure subpackage provides mechanisms for specifying
structures of interconnected elements that are created within an
instance of a containing classifier. A structure of this type
represents a decomposition of that classifier. and is referred to as
its "internal structure".
Ports
The Ports subpackage provides mechanisms for isolating a classifier
from its environment. This is achieved by providing a point for
conducting interactions between the internals of the classifier and its
environment. This interaction point is referred to as a "port."
Multiple ports can be defined for a classifier, enabling different
interactions to be distinguished based on the port through which they
occur. By decoupling the internals of the classifier from its
environment, ports allow a classifier to be defined independently of
its environment, making that classifier reusable in any environment
that conforms to the interaction constraints imposed by its ports.
Collaborations
Objects in a system typically cooperate with each other to produce
the behavior of a system. The behavior is the functionality that the
system is required to implement.
A behavior of a collaboration will eventually be exhibited by a set of
cooperating instances (specified by classifiers) that communicate with
each other by sending signals or invoking operations. However, to
understand the mechanisms used in a design, it may be important to
describe only those aspects of these classifiers and their interactions
that are involved in accomplishing a task or a related set of tasks,
projected from these classifiers. Collaborations allow us to
describe only the relevant aspects of the cooperation of a set of
instances by identifying the specific roles that the instances will
play. Interfaces allow the externally observable properties of
an instance to be specified without determining the classifier that
will eventually be used to specify this instance. Consequentially, the
roles in a collaboration will often be typed by interfaces and will
then prescribe properties that the participating instances must
exhibit, but will not determine what class will specify the
participating instances.
StructuredClasses
The StructuredClasses subpackage supports the representation of
classes that may have ports as well as internal structure.
Actions
The Actions subpackage adds actions that are specific to the
features introduced by composite structures, e.g., the sending of
messages via ports.