Skip to main content
Article thumbnail
Location of Repository

Using automated source code analysis for software evolution

By Liz Burd and Stephen Rank


Software maintenance is one of the most expensive and time-consuming phases in the software life-cycle. The size and complexity of commercial applications probably present the greatest difficulty that maintainers face when making changes to their applications. As a result of the corresponding loss of understanding, business knowledge encapsulated within the system becomes fragmented, and any changes made as a result of new business initiatives become difficult to implement and hence may mean a loss of business opportunities.\ud \ud This paper outlines an approach to regaining understanding of software which has been used in the Release project at Durham University. This approach involves determining the calling structure of a program in terms of a call-graph, and from this call-graph extracting a dominance tree. Various problems which have been encountered during the construction of tools to perform this task are described

Topics: G610 Software Design, G600 Software Engineering
Year: 2001
DOI identifier: 10.1109/SCAM.201.972682
OAI identifier:

Suggested articles


  1. (1984). An essay on software reuse. doi
  2. (1996). Analysing largecobolprograms: Theextractionofreusablemodules. doi
  3. (2000). Black magic recipe for generating dominance trees from COBOL (or any other programming language) source code.
  4. (1977). Flow Analysis of Computer Programs.
  5. (1979). On understanding law, evolution and conservation in the large program, life cycle. doi
  6. Program understandingand the concept assignment problem.
  7. (1990). Recognising a program’s design: A graph-parsing approach. doi
  8. Software salvaging and the call dominance tree. doi
  9. (1989). SoftwareReusability; concepts and models, volume 1.

To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.