6.4 Namespace and package dependencies
Namespace Dependencies and Package Dependencies are a polymetric views in which each node is a namespace or package and each edge represents a dependency. The graph is laid out in layers such that each node is placed below the client node. When there exist multiple clients at various levels, the node is placed below the client from the lowest level. Thus, the namespaces or packages from the bottom is the one that is used by many clients, but uses nobody, and those from top are used by no other namespace or package.
The nodes are enhanced with the following metrics:
- the width is given by the number of classes (NOCls) in the namespace or package, and
- the height is provided by the number of methods (NOM) in the namespace or package.
The figure below shows an example of this visualization as applied to ArgoUML 0.28.1. It can be obtained by selecting a namespace group and executing: Visualize/Namespace Dependencies.
One important concern when analyzing dependencies is the identification of cycles. A variation of the above visualization can be seen below with the namespaces involved in a cycle marked with a red color. This visualization can be obtained from the contextual menu of a namespace group: Visualize/Namespace Dependencies with Cycle.