| Maintenance Solution |
|
|
|
|
Correct interpretation of Figure concerns the projected level of software maintenance costs. |
|
|
Use of modem software engineering tools and techniques should result in software products that are easier to maintain however, the increasing number, size, and complexity of software products may offset the gains from modem technology.
The typical life span for a software product is 1 to 3 years in development and 5 to 15 years in use (maintenance). The distribution of effort between development and maintenance has been variously reported as 40/60, 30/70, and even 10/90. This is not surprising when it is understood that maintenance comprises all activities following initial release of a software product.
Software maintenance involves three types of activities: enhancing the capabilities of the product, adapting the product to new processing environments, and correcting bugs. Typical distributions of maintenance effort for enhancement, adaptation, and correction are 60 percent, 20 percent, and 20 percent, respectively.
|
|
|
During the development phase of a software product, the distribution of effort is typically 40 percent for analysis and design; 20 percent for implementation, debugging, and unit testing; and 40 percent for integration and acceptance testing. Taking the distribution of effort between development and maintenance to be 40/60 and normalizing total effort to 100 percent results in the distributions presented in Figure.
Several facts are evident from Figure First; software maintenance activities consume more resources than software development activities, although maintenance is spread over a longer time period so that the effort per unit of time is lower. Second, a large percentage of total effort is devoted to software enhancement. Third, testing requires almost half the effort during software development. A major reason for schedule slippage and cost overrun is failure to allot sufficient time and adequate resources for testing.
The fourth observation from Figure is that the activities of system testing, enhancement, and adaptation consume three-fourths of total life-cycle effort. Observe that implementation, which is commonly thought to be the predominant activity in software technology, requires less than 10 percent of total lifecycle effort for a typical software product.
It is obvious from this discussion that the goals of analysis, design, and implementation should be to ease testing and maintenance activities.
|
|
| |
|
|