Skip to main content

Software change dynamics or half of all Ada compilations are redundant

  • Software Configuration Management
  • Conference paper
  • First Online:
ESEC '89 (ESEC 1989)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 387))

Included in the following conference series:

Abstract

This paper is an empirical study of the evolution of a medium-size, industrial software system written in Ada. Parameters surveyed include various size attributes, the number and distribution of changes, and compilation costs. The interesting aspect of this study is that a day-to-day, complete development history of the system was available, spanning three years. The history permitted a full trace of all day-to-day changes. Findings included:

  • • A large number of compilations performed by the Ada compiler are redundant. A simple mechanism that compares compiler output could save about one fourth of all compilations; a detailed dependency analysis could save one half.

  • • Whenever package specifications change, almost a third of all compilation units must be recompiled, even though 80 percent of the declarations in the updated specifications are unmodified.

  • • The acyclic dependency graph among compilation units is quite flat; the average depth of a configuration of about 160 compilation units is between two and three.

  • • Over half of all declarations in package specifications are subprograms. Subprogram headers also account for 55 percent of the changes in package specifications. Overall, the distribution of declarations (subprograms, types, variables, constants, etc.) corresponds closely to the distribution of changes.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ellen Borison. Program Changes and the Cost of Selective Recompilation. PhD thesis, Carnegie-Mellon University, Department of Computer Science, 1989. to appear.

    Google Scholar 

  2. CCITT high level language (CHILL) language definition. 1980. CCITT Recommendation Z.200, ITU.

    Google Scholar 

  3. Ellis S. Cohen, Dilip A. Soni, Raimund Gluecker, William M. Hasling, Robert W. Schwanke, and Michael E. Wagner. Version management in Gypsy. SIGSOFT, Software Engineering Notes, 13(5):201–215, 1988.

    Google Scholar 

  4. Reidar Conradi and Dag Heieraas Wanvik. Mechanisms and Tools for Separate Compilation. Technical Report 25/85, The University of Trondheim, The Norwegian Institute of Technology, Trondheim, Norway, 1985.

    Google Scholar 

  5. Manfred Dausmann. Reducing recompilation costs for software systems in Ada. In System Implementation Languages: Experience and Assessment, North Holland, Canterbury, UK, 1984. Presentation at IFIP WG2.4 meeting, Pittsburgh, May, 1984.

    Google Scholar 

  6. Haavard Eidnes, Svein O. Hallsteinsen, RUNIT — The Computing Centre at the University of Trondheim, and Dag H. Wanvik, KVATRO. Separate compilation in CHIPSY. 1989. private communication.

    Google Scholar 

  7. Peter H. Feiler, Susan A. Dart, and Grace Downey. Evaluation of the Rational Environment. Technical Report CMU/SEI-88-TR-15, Carnegie-Mellon University, Software Engineering Institute, 1988.

    Google Scholar 

  8. Stuart I. Feldman. Make — a program for maintaining computer programs. Software — Practice and Experience, 9(3):255–265, March 1979.

    Google Scholar 

  9. Stephen H. Kaisler. Interlisp, the language and its usage. John Wiley & Sons, 1986.

    Google Scholar 

  10. Ragui F. Kamel. Effect of modularity on system evolution. IEEE Software, 48–54, January 1987.

    Google Scholar 

  11. M. M. Lehmann and L. A. Belady, editors. Program Evolution: Processes of Software Change. APIC studies in data processing; 27, Academic Press, Inc., 1985.

    Google Scholar 

  12. Mark A. Linton and Russel W. Quong. A macroscopic profile of program compilation and linking. IEEE Transactions on Software Engineering, 15(4):427–436, 1989.

    Google Scholar 

  13. Mark Rain. Avoiding trickle-down recompilation in the Mary2 implementation. Software—Practice and Experience, 14(12):1149–1157, 1984.

    Google Scholar 

  14. Robert W. Schwanke and Gail E. Kaiser. Technical correspondence: Smarter Recompilation. Transactions on Programming Languages and Systems, 10(4):627–632, 1988.

    Google Scholar 

  15. Walter F. Tichy. RCS — a system for version control. Software—Practice and Experience, 15(7):637–654, July 1985.

    Google Scholar 

  16. Walter F. Tichy. Smart recompilation. ACM Transactions on Programming Languages and Systems, 8(3):273–291, 1986.

    Google Scholar 

  17. Warren Teitelman and Larry Masinter. The Interlisp programming environment. IEEE Computer, 14(4):25–34, 1981.

    Google Scholar 

  18. U.S. Department of Defense. Reference manual for the Ada programming language. ANSI/MIL-STD 1815 A-1983, 2 1983.

    Google Scholar 

  19. Niklaus Wirth. Programming in Modula-2. Springer-Verlag, 1985.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

C. Ghezzi J. A. McDermid

Rights and permissions

Reprints and permissions

Copyright information

© 1989 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Adams, R., Weinert, A., Tichy, W. (1989). Software change dynamics or half of all Ada compilations are redundant. In: Ghezzi, C., McDermid, J.A. (eds) ESEC '89. ESEC 1989. Lecture Notes in Computer Science, vol 387. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-51635-2_41

Download citation

  • DOI: https://doi.org/10.1007/3-540-51635-2_41

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-51635-4

  • Online ISBN: 978-3-540-46723-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics