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.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jul 01, 1990
Accession Number
ADA227328

Entities

Organizations

  • University of California, Los Angeles

Tags

Communities of Interest

  • C4I
  • Cyber
  • Engineered Resilient Systems
  • Ground and Sea Platforms

DTIC Thesaurus Topics

  • Application Software
  • Computer Program Documentation
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Databases
  • Engineering
  • Information Systems
  • Life Cycles
  • Maintenance
  • Manufacturing
  • Operating Systems
  • Personal Information Managers
  • Prototypes
  • Software Development
  • Software Prototyping

Fields of Study

  • Computer science
  • Engineering

Readers

  • Software Engineering.
  • Theoretical Analysis.