Models of Software Evolution. Life Cycle and Process
Abstract
Software evolution represents the cycle of activities involved in the development, use, and maintenance of software systems. Software systems come and go through a series of passages that account for their inception, initial development, productive operation, upkeep, and retirement from one generation to another. In this paper, we categorize and examine a number of schemes for modelling software evolution. We start with some definitions of the terms used to characterize and compare different models of software evolution. We next review the traditional software life cycle models which dominate most textbook discussions and current software development practices. This is followed by a more comprehensive review of the alternative models of software evolution that have been recently proposed and used as the basis for organizing software engineering projects and technologies. As such, we then examine what are the role of existing and emerging software engineering technologies in these models. We then provide some practical guidelines for evaluating the alternative models of software evolution, and for customizing an evolutionary model to best suit your needs. Ultimately, the objective in this paper is to assess our ability to articulate the basis for substantive theory of software evolution which can serve as both a guide for organizing software development efforts, as well as a basis for organizing empirical studies that can test, validate, and refine hypotheses about the statics and dynamics of software evolution.
Document Details
- Document Type
- Technical Report
- Publication Date
- Jul 01, 1990
- Accession Number
- ADA227328
Entities
Organizations
- University of California, Los Angeles