Abstract
This paper will address how program comprehension can be aided within software maintenance through the use of high level representations of code, specifically the use of dominance trees. The paper proposes that dominance trees should be used as a standard approach within the program comprehension process. A number of ways in which the dominance trees are supportive of the comprehension process are highlighted. The evaluation considers if dominance trees are supportive of standard program comprehension strategies such as an as‐needed strategy, whether they provide an early identification of the consequences of changes and highlight areas where preventative maintenance is necessary. Their actual usefulness in achieving these goals is evaluated through the use of a number of case studies. The results have shown that there are a number of specific tasks performed during program comprehension that can be aided through the use of dominance trees.
Similar content being viewed by others
References
Boehm, B.W. (1975), "The High Cost of Software," In Practical Strategies For Developing Large Software Systems, E. Horowitz, Addison-Wesley, Reading, MA.
Burd, E.L. and M. Munro (1997a), "Enriching Program Comprehension for Software Reuse," In Proceedings of the International Workshop on Program Comprehension: IWPC'97, IEEE Press, Dearborn, MI, pp. 130-137.
Burd, E.L. and M. Munro (1997b), "Investigating the Maintenance Implications of the Replication of Code," In Proceedings of the International Conference on Software Maintenance; ICSM'97, IEEE Press, Bari, Italy, pp. 322-329.
Burd, E.L. and M. Munro (1997c), "The Implications of Non-functional Requirements for the Reengineering of Legacy Code," In Proceedings of the International Workshop on Reverse Engineering, IEEE Press, Amsterdam, pp. 215-223.
Burd, E.L. and M. Munro (1998a), "A Method for the Identification of Reusable Units through the Reengineering of Legacy Code," The Journal of Software and Systems 44, 121-134.
Burd, E.L. and M. Munro (1998b), "Investigating Component Based Maintenance and the Effect of Software Evolution: a Reengineering Approach Using Data Clustering," In Proceedings of the International Conference on Software Maintenance; ICSM'98, IEEE Press, Bethesda, MD, pp. 199-207.
Burd, E.L. and M. Munro (1998c), "Reengineering Support for Software Evolution: an Evaluation through Case Study," In Proceedings of the 22nd Annual Computer and Software Applications Conference; COMPSAC'98, IEEE Press, Austria, pp. 212-217.
Burd, E.L., M. Munro, and C. Wezeman (1996a), "Analysing Large COBOL Programs: the extraction of reusable modules," In Proceedings of the International Conference on Software Maintenance, IEEE Press, Monterey, CA, pp. 238-243.
Burd, E.L., M. Munro, and C. Wezeman (1996b), "Extracting Reusable Modules from Legacy Code: Considering issues of module granularity," In Proceedings of the 3rd Working Conference on Reverse Engineering, IEEE Press, Monterey, CA, pp. 189-196.
Cimitile, A., A. De Lucia, G.A. Di Lucca, and A.R. Fasolino (1997), "Identifying Objects in Legacy Systems," In Proceedings of the International Workshop on Program Comprehension, IEEE Press, Dearborn, MI, pp. 138-147.
Girard, J-F. and R. Koschke (1997), "Finding Components in a Hierarchy of Modules: A Step Towards Architectural Understanding," In Proceedings of the International Conference on Software Maintenance, IEEE Press, Bari, Italy, pp. 58-65.
IEEE ANSI (1983), IEEE Standard Glossary of Software Engineering Terminology, IEEE Press, New York.
Lientz, B.P. and E.B. Swanson (1980), Software Maintenance Management, Addison-Wesley, Reading, MA.
Parikh, G. and N. Zvegintzov (1993), Tutorial on Software Maintenance, IEEE Computer Society Press, Silver Spring, MD.
Standish, T.A. (1984), "An Essay on Software Reuse,"IEEE Transactions on Software Engineering 10, 5, 494-497.
von Mayrhauser, A. and A.M. Vans (1993), "From Program Comprehension to Tool Requirements for an Industrial Environment," In Proceedings of the Workshop on Program Comprehension, IEEE Press, Capri, Italy, pp. 78-86.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Burd, E., Munro, M. Supporting program comprehension using dominance trees. Annals of Software Engineering 9, 193–213 (2000). https://doi.org/10.1023/A:1018928825530
Issue Date:
DOI: https://doi.org/10.1023/A:1018928825530