Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
An Empirical Approach to Studying Software Evolution
Kemerer C., Slaughter S. IEEE Transactions on Software Engineering25 (4):493-509,1999.Type:Article
Date Reviewed: Apr 1 2000

While much has been written about software engineering, a major subdivision of the field has not received the empirical or research attention it deserves. Even though the recent Y2K problems have drawn attention to software maintenance issues, the authors rightly point out that the whole area of upgrading, migrating, and evolving software systems is largely unknown territory. We have many war stories and much anecdotal evidence about the nature of these activities, but few true scientific studies. Especially lacking are longitudinal studies. Not many researchers have followed a project from the date of inception through its life cycle while carefully collecting and then properly analyzing the relevant data.

As part of a review of the literature, the authors provide an excellent discussion of the state of the art and the need for new tools. Following the lead of the social sciences, they make use of several statistical techniques not usually found in the computer science/software engineering literature.

Researchers have been able to postulate and fairly well document (verify) a number of “laws” of software evolution dynamics and system growth patterns and stability points (detailed in the paper).

In this paper, Kemerer and Slaughter report on an empirical, longitudinal study of an actual business system that has been in use, and evolving, since the 1970s. The data, consisting of a variety of documents including detailed change logs, were analyzed using both classical time series and sequence analysis. Sequence analysis is a rubric subsuming a group of techniques: in this study, phase mapping, gamma analysis, and gamma mapping were used. Kemerer and Slaughter found that “conventional time series models did not provide much insight…either because the data were not stationary or because the data series occurred in a largely random fashion” (p. 501).

The sequence analysis methods, on the other hand, are providing insight into the processes involved in software evolution and show promise for continued application in this area of research. The authors are pointing the way, and they conclude the paper with a number of further areas for study. Anyone seeking a thesis or dissertation topic in software engineering should examine this list.

My only complaint about the paper is that there is insufficient discussion of the sequence analysis techniques themselves, although sufficient references are given. Since this is not a tutorial, the problem can be forgiven. The authors have provided a well-written research report that I can recommend to all software engineers, both practitioner and researcher alike.

Reviewer:  C. A. Wolfe Review #: CR122690
Bookmark and Share
 
Software Maintenance (K.6.3 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Software Maintenance": Date
Conscientious programming using PMA
Barker G., Keenan D., Van . ACM SIGAPL APL Quote Quad 20(4): 18-26, 1990. Type: Article
Oct 1 1991
Maintenance programming: improved productivity through motivation
Couger J., Colter M., Prentice-Hall, Inc., Upper Saddle River, NJ, 1985. Type: Book (9789780135454503)
Feb 1 1986
Techniques of program and system maintenance (2nd ed.)
Parikh G., QED Information Sciences, Inc., Wellesley, MA, 1988. Type: Book (9789780894352317)
Dec 1 1989
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy