Packages are a hierarchical grouping mechanism. They can be used to group diagrams and model elements. Some people count package diagrams as a ninth UML diagram type, and it is true that you can draw useful diagrams that contain only package symbols. When these packages represent Java packages, this sort of diagram can be very useful for determining the dependencies between different packages and checking that a large system can be built in sensibly sized chunks in some well-defined order, as shown in Figure 6. However, packages can be used to group more than just classes and interfaces. For example, packages might be created to contain the use case and activity diagrams for each functional area of a large system.
Figure 6 Diagram showing dependencies between UML packages that represent Java packages.