Abstract
An extensible representation for object-oriented programs, the Object-oriented Program Dependence Graph (OPDG), is presented. The representation is divided into three layers: a first layer that presents the class inheritance structure, a second layer that combines a traditional control dependence subgraph and a data dependence subgraph with objects, and a third layer that presents the dynamic, runtime aspects of an object-oriented program as an Object Dependence Subgraph. The representation is modular allowing specific tools to only use the portion required for the tool's operation. The complete representation provides information sufficient for most program analysis techniques including data flow analysis, reverse engineering, interactive debuggers and other tools.
Similar content being viewed by others
References
Agrawal, H. and J.R. Horgan (1990), “Dynamic program slicing,” InProceedings of the ACM SIGPLAN'90 Conference on Programming Language and Design and Implementation, pp. 20–22.
Aho, A.V., R. Sethi and J.D. Ullman (1986),Compilers, Principles, Techniques, and Tools, Addison-Wesley Publishing Company, Reading, MA.
Baxter, W. and J.R. Bauer (1989), “The program dependence graph in vectorization,” InSixteenth ACM Principles of Programming Languages Symposium, pp. 1–11.
Bates, S. and S. Horwitz (1993), “Incremental program testing using program dependence graphs,”ACM Transactions on Programming Languages and Systems, 384–396.
Binkley, D. (1992), “Using semantic differencing to reduce the cost of regression testing,” InProceedings of the Conference on Software Maintenance '92, pp. 41–50.
Booch, G. (1991),Object-Oriented Design with Applications, Benjamin Cummings, Redwood City, CA.
Callahan, D. (1988), “The program summary graph and flow-sensitive interprocedural data flow analysis,” InProceedings of SIGPLAN'88 Conf. Programming Language Design and Implementation, pp. 47–56.
Cargill, T. (1992),C++ Programming Style, Addison-Wesley Publishing Company, Inc., Massechusetts, USA.
Chidamber, S.R. and C.F. Kemerer (1991), “Towards a metric suite for object-oriented design,” InProceedings of OOPSLA '91, pp. 197–211.
Duesterwald, E., R. Gupta and M.L. Soffa (1992), “Rigorous data flow testing through output influences,” InProceedings of the 2nd Irvine Software Symposium (ISS'92), pp. 131–145.
Ferrante, J., K. Ottenstein and J.D. Warren (1994), “The program dependence graph and its use in optimization,”ACM Transactions on Programming Languages and Systems 9, 10, 319–331.
Gupta, R., M.J. Harrold and M.L. Soffa (1992), “An approach to regression testing using slicing,” InProceedings of the Conference on Software Maintenance '92, pp. 299–308.
Gupta, R. and M.L. Soffa (1990), “Region scheduling: An approach for detecting and redistributing parallelism,”IEEE Transactions on Software Engineering 16, 4, 421–431.
Gupta, R. and M.L. Soffa (1992), “Automatic generation of a compact test suite,” InProceedings of the Twelfth IFIP World Computer Congress.
Harrold, M.J. and B. Malloy (1993), “A unified interprocedural program representation for a maintenance environment,”IEEE Transactions on Software Engineering 19, 6, 584–593.
Harrold, M.J., B. Malloy and G. Rothermel (1993), “Efficient construction of program dependence graphs,” InACM International Symposium on Software Testing and Analysis 18, 3, 160–170.
Harrold, M.J. and M.L. Soffa (1990), “Computation of interprocedural definition and use dependencies,” InProceedings of IEEE Computer Society 1990 International Conference on Computer Languages, pp. 297–306.
Horwitz, S., T. Reps and D. Binkley (1990), “Interprocedural slicing using dependence graphs,”ACM Transactions on Programming Languages and Systems 12, 1, 26–60.
Korel, B. (1987), “The program dependence graph in static program testing,”Information Processing Letters 24, 103–108.
Korel, B. and J. Laski (1988), “Dynamic program slicing,”Information Processing Letters 29, 6, 155–163.
Korsen, T. and J. McGregor (1990), “Object-oriented software design: A tutorial,”Communications of the ACM 33, 9, 40–60.
Lorenz, M. and J. Kidd (1994),Object-Oriented Software Metrics, Prentice-Hall.
Livadas, P.E. and P.K. Roy (1992), “Program dependence analysis,” InIEEE Conference on Software Maintenance 1992, pp. 356–365.
Malloy, B.A., R. Gupta and M.L. Soffa (1992), “A shape matching approach for scheduling fine-grained parallelism,” InProceedings of MICRO-25, The 25th Annual International Symposium on Microarchitecture, pp. 131–135.
Malloy, B., J.D. McGregor, A. Krishnaswamy and M. Medikonda (1994), “An extensible program representation for object-oriented software,” Technical Report, Clemson University.
McGregor, J.D. and S. Kamath (1995) “A psychological complexity measure at the domain analysis level for an object-oriented system,” Technical Report, Dept. of Computer Science, Clemson University.
McGregor, J.D. and D.A. Sykes (1992),Object-Oriented Software Development: Engineering Software for Reuse, Van Nostrand Reinhold.
Norris, C. and L.L. Pollock (1994), “Register allocation over the program dependence graph,” InConference on Programming Language Design and Implementation, pp. 266–277.
Ojha, N. and J.D. McGregor (1994), “Object-oriented metrics for early system characterization: A crc card-based approach,” Technical Report TR94-107, Dept. of Computer Science, Clemson University.
Rothermel, G. and M.J. Harrold (1993), “A safe, efficient algorithm for regression test selection.” InProceedings of the Conference on Software Maintenance, pp. 358–367.
Rumbaugh, J., M. Blaha, W. Premerlani, F. Eddy and W. Lorensen (1991),Object-Oriented Modeling and Design, Prentice-Hall, Englewood Cliffs, NJ.
Ryder, B.G. (1979), “Constructing the call graph of a program,”IEEE Transactions on Software Engineering 5, 3, 216–225.
Weiser, M. (1984), “Program slicing,”IEEE Transactions on Software Engineering 10, 4, 352–357.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
McGregor, J.D., Malloy, B.A. & Siegmund, R.L. A comprehensive program representation of object-oriented software. Ann Software Eng 2, 51–91 (1996). https://doi.org/10.1007/BF02063806
Issue Date:
DOI: https://doi.org/10.1007/BF02063806