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 behaviour 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.

Other Relationships:  Part Of Design Model
Role:  Designer 
Optionality/Occurrence:  Optional for simple systems composed only of classes and packages. 
Templates and Reports: 
  • Design Package/Subsystem
  •  
    Examples:   
    UML Representation:  Design Subsystems may be modeled as UML subsystems or as UML components. See Guidelines: Design Subsystem for guidance on selecting the best representation. 
    More Information:   
    Input to Activities:    Output from Activities:   

    Purpose To top of page

    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. 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 To top of page

    Property Name 

    Brief Description 

    UML Representation 

    Name   The name of the subsystem  attribute 
    Brief Description   The short description of the role and purpose, or the "theme" of the subsystem.  attribute 
    Interfaces  associations to realized interfaces  realization association 
    Contents  aggregation associations to contained model elements  Owned via the meta-aggregation "owns" 
    Dependencies  dependency associations to interfaces, packages, or subsystems on which the subsystem depends  dependency 
    Diagrams  Any diagrams local to the subsystem, such as class diagrams or statechart diagrams.  Owned via the meta-aggregation "owns" 

    Timing To top of page

    The Design Subsystem is created during Elaboration Phase, as major functionality is partitioned into 'chunks' which can be developed.

    Responsibility To top of page

    A Designer is responsible for the integrity of the design subsystem, ensuring that:

    • The subsystem encapsulates its contents, only exposing contained behavior through interfaces it realizes.
    • The operations of the interfaces the Subsystem realizes are distributed to contained classes or subsystems.
    • The subsystem properly implements its interfaces.

    Tailoring To top of page

    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 Concepts: Component) expected to be independently developed, re-used, or replaced.

    Some important tailoring decisions related to Design Subsystems include:

    These tailoring decisions should be captured in Artifact: Project Specific Guidelines.



    Copyright © 1987 - 2003 Rational Software Corporation


    Display

    Rational Unified Process