Packages provide a way to group related UML elements and scope their names. For example, you can put all elements having to do with 3D rendering into a package named
3DGraphics. Package diagrams provide a great way to visualize dependencies between parts of your system and are often used to look for problems or determine compilation order.
Nearly all UML elements can be grouped into packages, including packages themselves. Each package has a name that scopes each element in the package. For example, if you had a class named
Timer in a package named
Utilities, the fully qualified name for the class is
Utilities::Timer. Elements in the same package can refer to each other without qualifying their names.
You show a package using a rectangle with a tab attached to the top left. Figure 3-1 shows the
You can show the elements contained within a package in two different ways. First, you can show the elements contained within the package by drawing them inside the large rectangle. If you use this representation
, write the name of the package in the tab. Figure 3-2 shows the contents of the
Utilities package inside of the package. To refer to the
Timer class from outside of the
Utilities package, you say
The second representation ...