|Previous||UML Classes||Table of Contents||UML Packages||Next|
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.
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.
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.
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
The StructuredClasses subpackage supports the representation of classes that may have ports as well as internal structure.
The Actions subpackage adds actions that are specific to the features introduced by composite structures (e.g., the sending
of messages via ports).