This Article 
 Bibliographic References 
 Add to: 
Functional Paleontology: The Evolution of User-Visible System Services
February 2003 (vol. 29 no. 2)
pp. 151-166

Abstract—It has long been accepted that requirements analysis should precede architectural design and implementation, but in software evolution and reverse engineering this concern with black-box analysis of function has necessarily been de-emphasized in favor of code-based analysis and designer-oriented interpretation. In this paper, we redress this balance by describing “functional paleontology,” an approach to analyzing the evolution of user-visible features or services independent of architecture and design intent. We classify the benefits and burdens of interpersonal communication services into core and peripheral categories and investigate the telephony services available to domestic subscribers over a 50-year period. We report that services were introduced in discrete bursts, each of which emphasized different benefits and burdens. We discuss the general patterns of functional evolution that this “fossil record” illustrates and conclude by discussing their implications for forward engineering of software products.

[1] R. Allen and D. Garlan, "A Formal Basis for Architectural Connection," ACM Trans. Software Eng. and Methodology, July 1997.
[2] A.I. Anton, "Goal-based Requirements Analysis," Proc. 2nd IEEE Int'l Conf. Requirements Engineering, CS Press, Los Alamitos, Calif., Apr. 1996, pp. 136-144.
[3] A.I. Antón and C. Potts, “The Use of Goals to Surface Requirements for Evolving Systems,” Proc. Int'l Conf. Software Eng. (ICSE `98), pp. 157-166, Apr. 1998.
[4] G. Basala, The Evolution of Technology. New York: Cambridge Univ. Press, 1988.
[5] B. Boehm et al., "Software Requirements Negotiation and Renegotiation Aids: A Theory-W Based Spiral Approach," Proc. 17th Int'l Conf. Software Eng., IEEE CS Press, Los Alamitos, Calif., 1995, pp. 243-253.
[6] S. Brand, How Buildings Learn: What Happens After They're Built. New York: Viking, 1994.
[7] N. Chomsky, Aspects of the Theory of Syntax. Cambridge, Mass.: MIT Press, 1965.
[8] B. Curtis, H. Krasner, and N. Iscoe, "A Field Study of the Software Design Process for Large Systems," Comm. ACM, vol. 31, no. 11, pp. 1,268-1,287, 1988.
[9] B. Dahlbom and L. Mathiassen, Computers in Context: The Philosophy and Practice of Systems Design, NCC Blackwell, 1993.
[10] J.-M. DeBaud and K. Schmid, "A Systematic Approach to Derive the Scope of Software Product Lines," Proc. 21st Int'l Conf. Software Eng., ACM Press, New York, 1999.
[11] E. Gamma et al., Design Patterns: Elements of Object-Oriented Software, Addison-Wesley, Reading, Mass., 1994.
[12] J. Grudin, "Computer-Supported Cooperative Work: History and Focus," Computer, May 1994, pp. 19-26.
[13] I. Hsi and C. Potts, “Studying the Evolution and Enhancement of Software Features,” Proc. Int'l Conf. Software Maintenance, pp. 143-151, Oct. 2000.
[14] I. Jacobson et al., Object-Oriented Software Engineering: A Use Case Driven Approach. Addison-Wesley, 1992.
[15] M. Jackson, Problem Frames: Analyzing and Structuring Software Development Problems. Addison-Wesley, 2001.
[16] J. Karlsson and K. Ryan, "A Cost-Value Approach for Prioritizing Requirements," IEEE Software, Sept./Oct. 1997, pp. 67-74.
[17] T.S. Kuhn, The Structure of Scientific Revolutions, third ed. Univ. of Chicago Press, 1996.
[18] A. van Lamsweerde, R. Darimont, and P. Massonet, "Goal-Directed Elaboration of Requirements for a Meeting Scheduler: Problems and Lessons Learned," Proc. RE'95—Second Int'l Symp. on Requirements Eng.,York, IEEE, 1995.
[19] A. Van Lamsweerde, Goal-Oriented Requirements Engineering: A Guided Tour Proc. Fifth Int'l Symp. Requirements Eng., pp. 249-262, 2001.
[20] M.M. Lehman and L.A. Belady, Program Evolution: Processes of Software Change.London: Academic Press, 1985.
[21] M.M. Lehman, “Programs, Life Cycles and the Laws of Software Evolution,” Proc. IEEE, Special Issue on Software Evolution, vol. 68, no. 9, pp. 1060-1076, Sept. 1980.
[22] S.G. MacDonell, “Comparative Review of Functional Complexity Assessment Methods for Effort Estimation,” Br. Computer Soc./Inst. Electrical Eng. J., vol. 9, no. 3, pp. 107-117, 1994.
[23] Context and Consciousness: Activity Theory and Human-Computer Interaction. B.A. Nardi, ed., Cambridge, Mass.: MIT Press, 1996.
[24] H. Petroski, The Evolution of Useful Things. New York: Vintage Books, 1992.
[25] C. Potts, “A ScenIC: A Strategy for Inquiry-Driven Requirements Determination,” Proc. IEEE Fourth Int'l Symp. Requirements Eng., June 1999.
[26] E.M. Rogers, Diffusion of Innovations. New York: Free Press, 1995.
[27] F. de Saussure, Course in General Linguistics. translated by W. Baskin. Reprint. New York: Philosophical Library, 1959.
[28] M. Shaw, “The Coming-of-Age of Software Architecture Research,” Proc. IEEE 23rd Int'l Conf. Software Eng., pp. 657-664a, May 2001.
[29] E. Sober, The Nature of Selection: Evolutionary Theory in Philosophical Focus. Chicago, Ill.: Chicago Univ. Press, 1993.
[30] K.J. Sullivan, “Software Design: The Options Approach,” Proc. Second Int'l Software Architecture Workshop, Joint Proc. SIGSOFT '96 Workshops, pp. 15-18, Oct. 1996.
[31] E. Tenner, Why Things Bite Back: Technology and the Revenge of Unintended Consequence. K nopf, 1996.
[32] S. Zuboff, In the Age of the Smart Machine: The Future of Work and Power. Basic Books, 1988.

Index Terms:
Measurement, metrics, empirical methods, reverse engineering, requirements engineering, software evolution.
Annie I. Antón, Colin Potts, "Functional Paleontology: The Evolution of User-Visible System Services," IEEE Transactions on Software Engineering, vol. 29, no. 2, pp. 151-166, Feb. 2003, doi:10.1109/TSE.2003.1178053
Usage of this product signifies your acceptance of the Terms of Use.