System-level Usage Dependency Analysis of Object-Oriented Systems

Uncovering, modelling, and understanding architectural level dependencies of software systems is a key task for software maintainers. However, current dependency analysis techniques for object-oriented software are targeted at the class or method level; this is because most dependencies - such as instantiates, references, and calls - must be interpreted in the context of one or more class hierarchies. In this paper, we propose an approach, called the high-level object dependency graph (HODG), that captures all possible usage dependencies among coarse-grained entities. Based on the new model, we further propose a set of dependency analysis methods. Finally, we present an exploratory case study using HODGs - supported by an automated analysis tool - of the Apache Ant build system; we show how HODG analysis can help maintainers capture external properties of coarse-grained entities, and better understand the nature of their interdependencies.