Annals of Software Engineering

, Volume 9, Issue 1–4, pp 193–213 | Cite as

Supporting program comprehension using dominance trees

  • Elizabeth Burd
  • Malcolm Munro
Article

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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.Google Scholar
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. IEEE ANSI (1983), IEEE Standard Glossary of Software Engineering Terminology, IEEE Press, New York.Google Scholar
  13. Lientz, B.P. and E.B. Swanson (1980), Software Maintenance Management, Addison-Wesley, Reading, MA.Google Scholar
  14. Parikh, G. and N. Zvegintzov (1993), Tutorial on Software Maintenance, IEEE Computer Society Press, Silver Spring, MD.Google Scholar
  15. Standish, T.A. (1984), "An Essay on Software Reuse,"IEEE Transactions on Software Engineering 10, 5, 494-497.CrossRefGoogle Scholar
  16. 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

Copyright information

© Kluwer Academic Publishers 2000

Authors and Affiliations

  • Elizabeth Burd
    • 1
  • Malcolm Munro
    • 1
  1. 1.Research Institute in Software EvolutionUniversity of DurhamDurhamUK E-mail:

Personalised recommendations