3 EVOLUTION AND MAINTENANCE MODELS

People seldom improve when they have no other model but themselves to copy after.

—Oliver Goldsmith

3.1 GENERAL IDEA

The software production processes comprise a set of activities starting from conception to retirement. There are many software processes, differing primarily in their classifications of phases and activities. One traditional software development life cycle (SDLC) is shown in Figure 3.1, which comprises two discrete phases, namely, development and maintenance, the latter commonly approaching two-thirds of the product life span. As this diagram shows, about one-fourth to one-third of all software life cycle costs are attributed to software development, and the remaining cost is due to operations and maintenance. Note that the percentages in Figure 3.1 indicate relative costs. As listed below [1], software maintenance has unique characteristics, although many activities related to maintaining and developing software are similar:

  • Constraints of an existing system. Maintenance is performed on an operational system. Therefore, all modifications must be compatible with the constraints of the existing software architecture, design, and code.
  • Shorter time frame. A maintenance activity may span from a few hours to a few months, whereas software development may span 1 or more years.
  • Available test data. In software development, test cases are designed from scratch, whereas software maintenance can select a subset of these test cases ...

Get Software Evolution and Maintenance now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.