Slicing object-oriented software
Top Cited Papers
- 23 December 2002
- proceedings article
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 495-505
- https://doi.org/10.1109/icse.1996.493444
Abstract
Describes the construction of system dependence graphs for object-oriented software on which efficient slicing algorithms can be applied. We construct these system dependence graphs for individual classes, groups of interacting classes and complete object-oriented programs. For an incomplete system consisting of a single class or a number of interacting classes, we construct a procedure dependence graph that simulates all possible calls to public methods in the class. For a complete system, we construct a procedure dependence graph from the main program in the system. Using these system dependence graphs, we show how to compute slices for individual classes, groups of interacting classes and complete programs. One advantage of our approach is that the system dependence graphs can be constructed incrementally because representations of classes can be reused. Another advantage of our approach is that slices can be computed for incomplete object-oriented programs such as classes or class libraries. We present our results for C++, but our techniques can be applied to other statically typed object-oriented languages such as Ada-95Keywords
This publication has 22 references indexed in Scilit:
- An extensible program representation for object-oriented softwareACM SIGPLAN Notices, 1994
- Performing data flow testing on classesPublished by Association for Computing Machinery (ACM) ,1994
- A new model of program dependences for reverse engineeringPublished by Association for Computing Machinery (ACM) ,1994
- Interprocedural modification side effect analysis with pointer aliasingPublished by Association for Computing Machinery (ACM) ,1993
- Incremental program testing using program dependence graphsPublished by Association for Computing Machinery (ACM) ,1993
- Using program slicing in software maintenanceIEEE Transactions on Software Engineering, 1991
- Interprocedural slicing using dependence graphsACM Transactions on Programming Languages and Systems, 1990
- Dependence analysis for pointer variablesPublished by Association for Computing Machinery (ACM) ,1989
- The program dependence graph and its use in optimizationACM Transactions on Programming Languages and Systems, 1987
- Program SlicingIEEE Transactions on Software Engineering, 1984