Categories Of Software Maintenance Assignment Help | Categories Of Software Maintenance Homework Help

Categories of Software Maintenance

There are different categories of software maintenance. The requirement of software maintenance arises on account of the following three reasons:

Perfective Maintenance

Perfective maintenance also known as enhancement or preventive maintenance, involves improving processing efficiency or performance, or restructuring the software to improve changeability, perfective maintenance requires the enhancement in the following cases:
•    Enhancing existing system functionality
•    Improving computational efficiency
•    Improving user displays and modes of interaction
•    Upgrading external and internal documentation
•    Upgrading the performance characteristics of a system.

Adaptive Maintenance

This type of maintenance concerns external changes. Even if the software is error free, it is possible that the environment in which the software system works will offers change. These changes can be as follows:
•    Introduction of new versions of operating systems.
•    Modifying the product to be interfaced with new hardware of software.
•    Moving the software to a different machine.

Corrective Maintenance

Corrective maintenance refers to modifications initiated by defects in the software. This type of maintenance is also called bug fixing, A defect can result from the following errors:
1.    Design errors
2.    Logic errors
3.    Coding errors

Design errors occurs when changes made to the software are incomplete, incorrect, wrongly communicated or the change request is misunderstood.

Logic errors results from invalid test and conclusions, incorrect implementation of design specifications, faulty logic flow or incomplete test data.

Coding errors are caused by incorrect implementation of detailed design and incorrect use of the sources code logic. Therefore, corrective maintenance is required in the following cases:
•    Rectification of the bugs observed while the system is in use.
•    Modification and revalidation of software for correction of errors.

Some errors require immediate attention, some can be corrected on a scheduled, periodic basis, and others are known but never corrected.

In practice there is not a clear-cut distinction between these different types of maintenance. Software faults may be revealed because a system has been used in an unanticipated way and the best way to repair these faults may be to add new functionality to help users with the system. While adapting a software to a new environment, functionality may be added to take advantage of new facilities supported by the environment. Adding new functionality to a system may be necessary because faults have changed the usage patterns of the system and a side-effect of the new functionality is to remove the faults from the software.

It is difficult to find up-to-date figures for the relative effort developed tot eh different types of maintenance. A rather old survey by Lientz and Swanson (1980) discovered that about 65 percent of maintenance effort was concerned with perfective maintenance, 18 percent was concerned with adaptive maintenance and 17 percent tot eh corrective maintenance.



Maintenance effort distribution

Similar figures were reported by Nosek and Palvis (199(, 10 years later. For custom systems, this distribution of effort is still roughly correct.

For more help in Categories of Software Maintenance click the button below to submit your homework assignment