A reusable toolset for software dependency analysis

https://doi.org/10.1016/0164-1212(91)90094-MGet rights and content

Abstract

Software maintenance is costly because of the many complex inter-relationships in a large software system; an understanding of these program dependencies is fundamental to efficient software change. This paper describes a general purpose tool set that has been developed to capture and analyze software dependencies. The tools are designed to serve as reusable components. They may be used not only to aid programmers directly in understanding programs but also as a basis from which other specialized tools can be constructed. The tools use the concept of a dependency graph as a basic abstraction to simplify the understanding of software relationships. Definitional, calling, functional and data-flow dependencies are analyzed. An external dependency graph for each function is developed to encapsulate the effects of function calls. A prototype of the dependency analysis toolset has been implemented to analyze C language code and seems to be quite useful, although some design and efficiency deficiencies were encountered that would need to be corrected in any “industrial strength” version. Dependency queries can be used directly in designing and verifying software changes and also serve as a basis for other maintenance tools. For example, a graphic program browser was constructed in only one man-month, illustrating the use of the toolset as a reuseable component to build more sophisticated tools.

References (18)

  • N. Wilde et al.

    The maintenance assistant: Work in progress

    Journal of Systems and Software

    (1989)
  • The Analytical Sciences Corp.

    Fastbol Promotional Literature

    (1987)
  • L. Cleveland

    An environment for understanding programs

  • Computer Sciences Corporation
  • Digital Equipment Corporation

    A Methodology for Software Development Using VMS Tools

    (April 1987)
  • H. Holbrook et al.

    A Survey of Software Maintenance Tools That Enhance Program Understanding

  • D. Kuhn

    A source code analyzer for maintenance

  • J. Lyle et al.

    Using program decomposition to guide modifications

  • Marble Computer Inc.

    DCD II Product Description

    (December, 1983)
There are more references available in the full text version of this article.

Cited by (17)

  • Tools for spreadsheet auditing

    1996, International Journal of Human Computer Studies
  • Lightweight function monitors for fine-grained management in large scale python applications

    2021, Proceedings - 2021 IEEE 35th International Parallel and Distributed Processing Symposium, IPDPS 2021
View all citing articles on Scopus

This research was supported by the Florida/Purdue Software Engineering Research Center funded by the National Science Foundation, the Florida High Technology and Industry Council, and the Center's 13 industrial affiliates.

View full text