A design package is a collection of classes, relationships, design use-case realizations, diagrams, and other packages. It is used to structure the design model by dividing it into smaller parts. 
Other Relationships:  Part Of Design Model
Role:  Designer 
Optionality/Occurrence:  Required. Elaboration and Construction phases.
Templates and Reports: 
Examples: 
     
UML Representation:  Package in the design model. 
More Information:   
Input to Activities:    Output from Activities:   

Purpose To top of page

Design packages are used to group related Design Model elements together for organizational purposes, and often for configuration management. Unlike the Artifact: Design Subsystem, a design package does not offer a formal interface, though it may expose some of its contents (marked as 'public') which offer behavior. Design packages should be used primarily as a model organizational tool, to group related things together; if behavioral semantics are needed, use Design Subsystems.

A design package and its contents are the responsibility of a single Role: Designer. Elements within the package may be dependent on the elements contained by other packages; this gives rise to dependencies between packages. Package dependencies can be used as a tool to analyze the resiliency of the design model: a model with cross-dependent packages is less resilient to change.

Properties To top of page

Property Name 

Brief Description 

UML Representation 

Name  The name of the package.  The attribute "Name" on model element. 
Brief Description  A brief description of the role and purpose, or the "theme" of the package.  Tagged value, of type "short text". 
Classes  The classes directly contained in the package.  Owned via the aggregation "owns" 
Relationships  The relationships directly contained in the package.  - " - 
Design Use-Case Realizations  The design use-case realizations directly contained in the package.  - " - 
Diagrams  The diagrams directly contained in the package.  - " - 
Design Packages  The packages directly contained in the package.  - " - 
Import Dependencies  The import dependencies from the package to other packages.  Owned by an enclosing package, via the aggregation "owns". 

Timing To top of page

Packaging is done primarily during the Elaboration Phase, but minor adjustments to packaging will occur during the Construction phase, especially to re-allocate work or to restructure dependencies between packages.

Responsibility To top of page

A designer is responsible for the integrity of the package, ensuring that:

  • The package fulfills the requirements made on it.
  • The package is as independent as possible of other packages.
  • The import dependencies originating from the package are described so that the effect of future changes can be estimated.
  • The existence of the direct contents of the package, including its classes, relationships, design use-case realizations, diagrams, and packages, is justified and kept consistent.
  • The visibilities of the direct contents of the package, primarily regarding classes and packages, are correct. A visibility can be "public," "private," and so on.

It is recommended that the designer responsible for a design package is also responsible for its contained classes; for more information refer to Artifact: Design Class.

Note that the designer is not responsible for the contained design use-case realizations and their related diagrams; instead, these are under the corresponding use-case designer's responsibilities.

Tailoring To top of page

Packages are used in the models to group similar model elements, improving the organization of the model and making it easier to understand. Packaging in large models is essential. Even in smaller models, appropriate packaging can dramatically improve the comprehensibility of the model. Some packaging is almost always useful. For more information, see Guidelines: Design Package.



Rational Unified Process   2003.06.13