A package is a collection of classes, relationships, use-case realizations, diagrams, and other packages; it is used to structure the design model by dividing it into smaller parts. Packages are used primarily for model organization and typically serve as a unit of configuration management.

In Rose, packages are also used to represent subsystems.

Related Information:

Topics

Introduction To top of page

Packages are used to decompose models by dividing them into smaller parts.  Without the use of packages the end result is large, flat models in which all elements have to be uniquely named.  This would soon become unmanageable especially when attempting to integrate and manage elements developed by multiple developers and multiple teams.

The package is also the unit of configuration in Rose – the models must be split into packages to support multi-user development (each package can become a controlled unit).

Packages can also be involved in more than one model at a time.  This is very common when using the models to facilitate the analysis and design of component based developments.  In this case the packages should be read-only in all the models except their initial design model, the one in which their development actually takes place.

Packages are used to decompose models in many ways:

  • packages are used to represent the layering applications
  • to group the classes into logical packages
  • to identify the logical subsystems of the application
  • to hold the architectural views required to define, and describe, the architecture
  • to provide a higher level of abstraction than that provided by individual classes.

Note: if a package contains too many public classes to easily display on a single class diagram then the package is probably too large and should be split into multiple packages.

Packages are also used to organize the Use-Case focused part of the dynamic model. In this case:

  • the packaging is used to facilitate the realization of the Use Case Model by instances of the classes defined in the static object model
  • the packaging is used to provide a more functional view of the system
  • the packaging is used to partition the use case focused aspects of the dynamic model – the use case realizations.

Note: Packages are also used to partition the Use Case Model – these standards are not covered by this document they are dealt with in the Use Case Modeling Guidelines.

Naming Standard To top of page

Begin package names with an upper case letter.  Package names can include spaces and punctuation where this clarifies the model.  In practice package names are short groupings of nouns or noun phrases drawn from the vocabulary of the domain. 

The names of the packages should communicate their purpose.

General Documentation To top of page

All packages will have their brief description completed.  This will be a one or two paragraph description summarizing the purpose of the package.  This should be entered in the "General Tab" for the package documentation.

Note: additional documentation is required for each package stereotype used.  The stereotypes are defined in the table below and linked to pages describing the specific standards to be applied in each case.

Note: packages can be marked as global – a package can only be global if it is a top-level package or its parent package is global.

Use of Stereotypes To top of page

Stereotypes are used to clarify the intent and purpose of the packages in the model.   Individual documentation and diagramming standards are defined for each stereotype.

The stereotypes are grouped by their underlying purpose:

  • Organizational - those that denote packages purely used to organize the model. 

Organizational package stereotypes include <<dynamic>>, <<layer>>, <<model>>, <<view>> and  <<work>> (See Standards: Organizational Packages for more details).

  • Structural - those that denote the packages that logically represent the pieces of the system (including subsystems) that are to be implemented. 

Structural package stereotypes include: <<facade>>, <<implementation>>, <<subsystem>> and <<utility>> (See Standards: Structural Packages for more details).

Note: if a package is unstereotyped it is considered to be work in progress and treated as if it used the <<work>> stereotype.

The UML also defines the following package stereotypes:

  • <<framework>>
  • <<top package>>
  • <<system>>

No standards are defined for these stereotypes - they are only mentioned to prevent their local use without consideration of their wider UML definition.  These will not be used in the current models.

Back to Index
 

Display Organization Process Web using frames

Copyright  © 1987 - 2001 Rational Software Corporation 

Wylie College Process Web Example
Version 2001.02