Page 52 -
P. 52
CHAPTER 2 THE PROCESS 23
developed is likely to change. Adaptive maintenance results in modification to
the software to accommodate changes to its external environment.
Enhancement. As software is used, the customer/user will recognize addi-
tional functions that will provide benefit. Perfective maintenance extends the
software beyond its original functional requirements.
When you use the Prevention. Computer software deteriorates due to change, and because of
term maintenance, this, preventive maintenance, often called software reengineering, must be con-
recognize that it’s ducted to enable the software to serve the needs of its end users. In essence,
much more than
simply fixing bugs. preventive maintenance makes changes to computer programs so that they can
be more easily corrected, adapted, and enhanced.
In addition to these support activities, the users of software require continuing sup-
port. In-house technical assistants, telephone-help desks, and application-specific
Web sites are often implemented as part of the support phase.
1
Today, a growing population of legacy programs is forcing many companies to
pursue software reengineering strategies (Chapter 30). In a global sense, software
reengineering is often considered as part of business process reengineering.
The phases and related steps described in our generic view of software engineer-
ing are complemented by a number of umbrella activities. Typical activities in this cat-
egory include:
• Software project tracking and control
• Formal technical reviews
• Software quality assurance
• Software configuration management
• Document preparation and production
• Reusability management
• Measurement
Umbrella activities
• Risk management
Umbrella activities are applied throughout the software process and are discussed in
Parts Two and Five of this book.
2.2 THE SOFTWARE PROCESS
A software process can be characterized as shown in Figure 2.2. A common process
framework is established by defining a small number of framework activities that are
applicable to all software projects, regardless of their size or complexity. A number
of task sets—each a collection of software engineering work tasks, project milestones,
1 The term legacy programs is a euphemism for older, often poorly designed and documented soft-
ware that is business critical and must be supported over many years.