Loading Web-Font TeX/Math/Italic

The Maintenance of Software Products
An Introduction
|
Prof. David Bernstein
James Madison University
|
|
Computer Science Department |
bernstdh@jmu.edu |
|
Types of Maintenance (ISO/IEC 14764)
- Corrective:
- Modifications that correct defects found in the production
environment
- Adaptive:
- Modifications that keep the product usable in a changed/changing
production environment (e.g., migration to
another platform)
- Perfective:
- Modifications that satisfy additional functional
requirements (e.g., new features) or non-functional
requirements (e.g., improve performance)
- Preventive:
- Modifications that correct faults discovered in the
development environment before they give
rise to failures/symptoms in the production environment
Frequency
- Agile Processes:
- Tend to deploy more frequently so maintenance activities
tend to occur more frequently
- Heavyweight Processes:
- Tend to deploy Less frequently so maintenance is less
frequent but no less significant
The Results of Several Surveys
- Adaptive and Perfective:
- 75% of the total effort and cost
- Corrective and Preventive:
- 25% of the total effort and cost
Why Maintenance is Expensive
- Endemic Reasons:
- Successful products are in the field for decades so
huge costs are bound to accrue
- Other Reasons:
- As a product is modified its structure deteriorates
Maintenance Tradeoffs
- Related to Availability:
- Maintenance improves a product but may make it unavailable
- Related to Quality:
- There are often "elegant" solutions and "quick and dirty"
solutions
Who Is Involved?
- There Are Options:
- The original development team
- A maintenance team
- More Tradeoffs:
- The development team understand the product but may not
understand the operational environment
- Maintenance teams and development teams may have
(or think they have) different statuses
Metrics for Corrective Maintenance
- Backlog (B):
- C denotes the number of problems closed
during an interval of time (e.g., a month)
- A denotes the number of problem "arrivals"
during an interval of time (e.g., a month)
- B = \frac{C}{A} \cdot 100
- Response Time (Mean Time to Repair):
- The mean (or median) amount of time between
the arrival of a problem and its correction
Tools for Corrective Maintenance (i.e., Bug/Issue Tracking)
- Purpose:
- Provide a clear, centralized overview of
corrective maintenance requests
- Calculate performance metrics
-
- Some Open Source Examples:
- Apache Bloodhound
- Bugzilla
- Zentrack
MathJax Math Υ