var defaultQueryStr = '?proc={002674F9-6511-4D15-8623-B761D8C48986}&path={002674F9-6511-4D15-8623-B761D8C48986},{9C683674-97C1-4AEE-8DB0-9514AEFF698E},_CQ1sDRi2Edq_uI8xTPML6g'; var backPath = './../../'; var imgPath = './../../images/'; var nodeInfo=null; contentPage.preload(imgPath, backPath, nodeInfo, defaultQueryStr, false, true, false);
Work Product (Artifact): Design Subsystem
This work product described a part of a system that encapsulates behavior, exposes a set of interfaces, and packages other model elements.
Purpose
A Design Subsystem encapsulates behavior, providing explicit and formal interfaces, and does not (by convention) expose
its internal contents. This provides the ability to completely encapsulate the interactions of a number of classes
and/or subsystems.
Relationships
Container Artifact
Design Model
RolesResponsible:
Designer
Modified By:
Designer
Input ToMandatory:
Subsystem Design
Optional:
Use-Case Design
External:
None
Output From
Subsystem Design
Main Description
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 mod elelements 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.
The 'encapsulation' ability of design subsystems is contrasted by that of the Artifact: Design Package, which does not realize interfaces. Packages
are used primarily for configuration management and model organization, where subsystems provide additional behavioral
semantics.
Properties
Optional
Planned
Tailoring
Representation OptionsUML Representation: Design Subsystems are modeled as UML 2.0 components. UML also defines a stereotype for component named
<<subsystem>>, indicating that this may be used, for example, to represent large scale structures. See Guideline: Design Subsystem for representation.
Design Subsystems are an important means of decomposing large systems into understandable parts. They are particularly
useful in component-based development to specify components (see Concept: Component)
expected to be independently developed, re-used, or replaced.
Important tailoring decisions related to Design Subsystems are:
whether and when to separate specification from realization (see Guideline: Design Subsystem)
whether or not to model subsystem interfaces localized into ports (see Task: Subsystem Design)
This tailoring decision should be captured in Artifact: Project-Specific Guidelines.
UML 1.x Representation
An important tailoring decision is whether to model design subsystems as UML 2.0 components or UML 1.5 subsystems (see
Guideline: Design Subsystem).
Refer to Differences Between UML 1.x and UML 2.0 for more information.