This is an overview and summary of 30 years of study on the upkeep and maintenance of large software systems. According to the authors, these years of study have resulted in the SPE program classification system, a principle of software uncertainty, laws of program maintenance, practical guidelines for program maintenance management, and a basis for a theory of program maintenance (which the authors call software evolution). The authors hope to convince the computer science and software engineering communities that this area of study is important, and should be widely pursued.
The paper is a fine overview of the work of the senior author, Lehman, and his school. Of the 45 references, 24 include him as an author. I had high hopes for this work, following Lehmans original and penetrating observation that large software systems are never completed, but just go on growing and changing forever in every way except their names. (Thus, program maintenance should not be seen as the work of repairing or fixing, but as an evolutionary phenomena, the study of which might give an understanding that would lead to practical results). In line with the authors intent, however, nothing new is presented. In addition, the style of writing is wordy, discursive, self-referential, and pedantic.
Although this paper points to some dim glimmerings of understanding of the phenomenon studied, it does not identify any important practical results that are of immediate use. I must conclude, therefore, that so far, software evolution is another narrow and limited field of academic study.