A Design Subsystem is a part of a system that encapsulates behavior, exposes a set of interfaces, and packages
other model elements. From the outside, a subsystem is a single design model element that collaborates with other model
elements to fulfill its responsibilities. The externally visible interfaces and their behavior is referred to as the
subsystem specification. On the inside, a subsystem is a collection of model elements (design classes and other
subsystems) that realize the interfaces and behavior of the subsystem specification. This is referred to as the
subsystem realization.
Subsystems can be used in a number of complementary ways, to partition the system into units which can be the following
-
independently ordered, configured, or delivered
-
independently developed, as long as the interfaces remain unchanged
-
independently deployed across a set of distributed computational nodes
-
independently changed without breaking other parts of the systems
Thus, subsystems are ideal for modeling components - the replaceable units of assembly in component-based development -
that are larger than a single design class.
In addition, subsystems can
-
partition the system into units which can provide restricted security over key resources
-
represent existing products or external systems in the design.
|