|Structural UML diagrams|
|Behavioral UML diagrams|
In addition to the standard UML Dependency relationship, there are two special types of dependencies defined between packages:
- package import
- package merge
A package import is "a relationship between an importing namespace and a package, indicating that the importing namespace adds the names of the members of the package to its own namespace."  By default, an unlabeled dependency between two packages is interpreted as a package import relationship. In this relationship, elements within the target package will be imported in source package.
A package merge is "a directed relationship between two packages, that indicates that the contents of the two packages are to be combined. It is very similar to Generalization in the sense that the source element conceptually adds the characteristics of the target element to its own characteristics resulting in an element that combines the characteristics of both" In this relationship, if an element exists within both the source package and the target package then the source element's definition will be expanded to include the target element's definition.
- Package: It is a general purpose mechanism for organizing model elements & diagrams into groups. It provides an encapsulated namespace within which all the names must be unique. It is used to group semantically related elements. It is a namespace as well as an element that can be contained in other package's namespaces.
- Class: It is a representation of objects, that reflects their structure and behavior within the system. It is a template from which actually running instances are created. Classes usually describe logical structure of system.
- Interface: It is a specification of behavior. Implementing classes of an interface class are required to support the behavior.
- Object: It is an instance of class. It is often used in analysis to represent numerous artifacts and items that exist.
- Table: It is a stereotyped class.
Package diagrams can use packages containing use cases to illustrate the functionality of a software system.
Package diagrams can use packages that represent the different layers of a software system to illustrate the layered architecture of a software system. The dependencies between these packages can be adorned with labels / stereotypes to indicate the communication mechanism between the layers.
When To Use
People find package diagrams extremely useful on larger-scale systems to get a picture of the dependencies between major elements of a system. These diagrams correspond well to common programming structures. Plotting diagrams of packages and dependencies helps you keep an application's dependencies under control.
Package diagrams represent a compile-time grouping mechanism. For showing how objects are composed at runtime, use a composite structure diagram.
- [ OMG Unified Modeling Language (OMG UML), Infrastructure, V2.1.2] p. 149.
- OMG Unified Modeling Language (OMG UML), Infrastructure, V2.1.2 p. 160.
|This article needs additional citations for verification. (February 2009)|
|Wikimedia Commons has media related to Package diagrams.|