Functional paleontology: system evolution as the user sees it
- 29 August 2005
- proceedings article
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 421-430
- https://doi.org/10.1109/icse.2001.919115
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 fifty-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.Keywords
This publication has 16 references indexed in Scilit:
- The use of goals to surface requirements for evolving systemsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Goal-directed elaboration of requirements for a meeting scheduler: problems and lessons learntPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Studying the evolution and enhancement of software featuresPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2000
- A cost-value approach for prioritizing requirementsIEEE Software, 1997
- Software designPublished by Association for Computing Machinery (ACM) ,1996
- The Structure of Scientific RevolutionsPublished by University of Chicago Press ,1996
- Software requirements negotiation and renegotiation aidsPublished by Association for Computing Machinery (ACM) ,1995
- Computer-supported cooperative work: history and focusComputer, 1994
- A field study of the software design process for large systemsCommunications of the ACM, 1988
- Programs, life cycles, and laws of software evolutionProceedings of the IEEE, 1980