A Coherent Family of Analyzable Graph Representations for Object-Oriented Software


Many software engineering tools and techniques rely on graphical representations of software, such as control flow graphs, program dependence graphs, or system dependence graphs. To apply these tools and techniques to object-oriented software, we cannot necessarily use existing graphical representations of procedural software. Representations of object-oriented software, like those for procedural software, must depict individual procedures (methods) and entire programs; however, they must also depict classes and their interactions, and account for the effects of inheritance, polymorphism, and aggregation. These representations should facilitate the use of existing program analysis tools and techniques, rather than requiring us to create new techniques. A system for constructing and managing these representations should take advantage of the code reuse inherent in object-oriented software, by reusing representational components. In this paper, we describe a coherent family of graphical representations of object-oriented software that meets the foregoing requirements, and we outline the architecture of an efficient, extensible system for constructing and managing those representations.

Related research categories:
(1) Program Analysis
(2) Testing
(3) Control Flow
(4) Control Dependence
(5) Data Flow

Go To Publications