Purpose

To represent design subsystems and related artifacts in Rational Rose®98.

Related Rational Unified Process Activities: Architectural Design, Subsystem Design

Overview

The following steps are performed to manage subsystems:

  1. Creating Subsystems in the Design Model
  2. Creating Subsystem Interfaces
  3. Creating Classes within the Subsystem
  4. Documenting Package and Subsystem Dependencies
  5. Documenting Subsystem Contents
  6. Documenting Subsystem Behavior

1. Creating Subsystems in the Design Model To top of page

To create a subsystem in the Design Model:

  1. Create a package in the Design Model, as described in Creating Packages in the Design Model.
  2. Change the stereotype on the package by right-clicking to select the package.   Select "Open Specification".
  3. In the 'Stereotype' property, enter "subsystem"

In order to show the subsystem in sequence and collaboration diagrams in Rational Rose, a class is created which acts as a "facade" for the subsystem in diagrams.   To create this class in the subsystem, follow the steps for creating a class in Tool Mentor- Using Rational Rose to Manage Classes.  The "facade" class should have the same name as the subsystem, and should be stereotyped "subsystem" to indicate that it exists as a "facade" or "proxy" for the subsystem.

To identify this class as the "facade" for the subsystem:

  1. Change the stereotype on the class by right-clicking to select the class.   Select "Open Specification".
  2. In the 'Stereotype' property, enter "subsystem"
  3. Click "OK"

2. Creating Subsystem Interfaces To top of page

See Tool Mentor- Using Rational Rose to Manage Interfaces

To allow the "facade" to provide all the operations provided by the interfaces of the subsystem:

  1. Right-click on the subsystem package in the browser.  Select the New option from the short-cut menu.
  2. Select Class Diagram from the short-cut menu.
  3. Enter "Interface Realizations" as the name of the Class Diagram.
  4. Right click on the diagram and select Open from the short-cut menu.
  5. Drag-and-drop the "facade" class and the subsystem interfaces onto the diagram.
  6. Draw generalization associations from the facade class to the interface classes to enable the facade to provide all operations offered by the interfaces.

3. Creating Classes within the Subsystem To top of page

To create classes inside the subsystem, see Tool Mentor- Using Rational Rose to Manage Classes

With the exception of the subsystem "facade" and the subsystem interfaces, all contents of the subsystem should be "invisible" to model elements outside the subsystem.  This is done by setting the class export control to "implementation".  To do this:

  1. Right-click on the class in the browser.  Select Open Specification from the short-cut menu.
  2. On the Class Specification, left-click to set the "Implementation" Export Visibility.
  3. Click "OK".

4. Documenting Package and Subsystem Dependencies To top of page

The dependencies between packages/subsystems in the Design Model should be documented as follows:

  1. Right-click to select the "Design Model" package in the browser and make the short-cut menu visible.
  2. Select Class Diagram from the New option on the short-cut menu.  A new class diagram is added to the browser.  Enter "Package/Subsystem Dependencies" as the name of the diagram.
  3. Double-click on the class diagram in the browser to open the diagram.
  4. From the browser, left-click to select packages and subsystems, dragging and dropping them onto the diagram.  Any existing dependency relationships will automatically be displayed.
  5. Visually arrange the packages and subsystems into layers on the diagram. 
  6. Annotate the layers using text created with the "Text Box" tool icon.
  7. Create additional package and subsystem dependency relationships using the "Dependency" tool icon.

5. Documenting Subsystem Contents To top of page

Each package and subsystem should contain one or more class diagrams to document and illustrate the classes contained in the package/subsystem. To create a class diagram and insert a class in the diagram, do the following:

  1. Right-click to select the package/subsystem in the browser and make the short-cut menu visible.
  2. Select Class Diagram from the New option on the short-cut menu. A "NewDiagram" class diagram is added to the browser.
  3. While the class diagram is still selected, type the name of the class diagram; name the diagram after the class(es) that it is meant to describe.
  4. Click to select the class in the browser.
  5. Drag-and-drop the class(es) onto the class diagram; relationships between classes in the diagram are automatically displayed.

6. Documenting Subsystem Behavior To top of page

Each Subsystem should have one or more Sequence Diagrams to illustrate how the operations offered by the interfaces of the subsystem are distributed to the contents of the subsystem.To create a sequence diagram, see Tool Mentor- Using Rational Rose to Manage Sequence Diagrams.

The sequence diagram should illustrate how a particular operation offered by a subsystem interface is performed by model elements contained in the subsystem.  The left-most object in these "interface operation" diagrams should be the "facade" class.  The remainder of the objects represent the private classes of the subsystem.  The messages between them illustrate how the interface operation is realized.

It is recommended that you name the diagram "<interface name>::<operation name>". This naming convention simplifies future tracing of interface behaviors to the classes which implement the interface operations.

 

Display Rational Unified Process using frames

 

© Rational Software Corporation 1998 Rational Unified Process 5.1 (build 43)