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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Ellen Borison. Program Changes and the Cost of Selective Recompilation. PhD thesis, Carnegie-Mellon University, Department of Computer Science, 1989. to appear.
CCITT high level language (CHILL) language definition. 1980. CCITT Recommendation Z.200, ITU.
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.
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.
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.
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.
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.
Stuart I. Feldman. Make — a program for maintaining computer programs. Software — Practice and Experience, 9(3):255–265, March 1979.
Stephen H. Kaisler. Interlisp, the language and its usage. John Wiley & Sons, 1986.
Ragui F. Kamel. Effect of modularity on system evolution. IEEE Software, 48–54, January 1987.
M. M. Lehmann and L. A. Belady, editors. Program Evolution: Processes of Software Change. APIC studies in data processing; 27, Academic Press, Inc., 1985.
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.
Mark Rain. Avoiding trickle-down recompilation in the Mary2 implementation. Software—Practice and Experience, 14(12):1149–1157, 1984.
Robert W. Schwanke and Gail E. Kaiser. Technical correspondence: Smarter Recompilation. Transactions on Programming Languages and Systems, 10(4):627–632, 1988.
Walter F. Tichy. RCS — a system for version control. Software—Practice and Experience, 15(7):637–654, July 1985.
Walter F. Tichy. Smart recompilation. ACM Transactions on Programming Languages and Systems, 8(3):273–291, 1986.
Warren Teitelman and Larry Masinter. The Interlisp programming environment. IEEE Computer, 14(4):25–34, 1981.
U.S. Department of Defense. Reference manual for the Ada programming language. ANSI/MIL-STD 1815 A-1983, 2 1983.
Niklaus Wirth. Programming in Modula-2. Springer-Verlag, 1985.
Author information
Authors and Affiliations
Editor information
Rights 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