Packages

Packages allow partitioning of the system into functional domains.

You can think of a system as a single, high-level package, with everything else in the system contained in it. A package is a collection of packages, objects and object types (in C), events, diagrams, globals, types, use cases, and actors. Because packages can be nested with other packages, they enable you to partition a system into smaller subsystems. Thus, package nesting provides a way to organize large projects into package hierarchies.

Subsystems can contain objects, object types, events, diagrams, and other logical artifacts. They can also contain basic programming constructs, such as functions and data items or variables. The elements (objects, object types, and events) that belong to a package are all declared and allocated within the context of the package file.

Packages themselves do not carry direct responsibilities or behavior. They are simply containers. Packages are not instantiable and they cannot have multiple copies.

IBM® Engineering Systems Design Rhapsody® generates both a specification file and an implementation file for each package. The package specification file includes forward declarations of public objects.