Skip to main content
Log in

Supporting program comprehension using dominance trees

  • Published:
Annals of Software Engineering

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • IEEE ANSI (1983), IEEE Standard Glossary of Software Engineering Terminology, IEEE Press, New York.

    Google Scholar 

  • Lientz, B.P. and E.B. Swanson (1980), Software Maintenance Management, Addison-Wesley, Reading, MA.

    Google Scholar 

  • Parikh, G. and N. Zvegintzov (1993), Tutorial on Software Maintenance, IEEE Computer Society Press, Silver Spring, MD.

    Google Scholar 

  • Standish, T.A. (1984), "An Essay on Software Reuse,"IEEE Transactions on Software Engineering 10, 5, 494-497.

    Article  Google Scholar 

  • 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints 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

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1018928825530

Keywords

Navigation