You
are here: Freetutes.com
> Systems
Analysis and Design
SDLC - Implementation and Maintenance in Software Life Cycle
Maintenance includes all the activity after the installation of software that
is performed to keep the system operational. As we have mentioned earlier, software
often has design faults. The two major forms of maintenance activities are adaptive
maintenance and corrective maintenance.
It is generally agreed that for large systems, removing all the faults before
delivery is extremely difficult and faults will be discovered long after the system
is installed. As these faults are detected, they have to be removed. Maintenance
activities related to fixing of errors fall under corrective maintenance.
Removing errors is one of the activities of maintenance. Maintenance also needed
due to a change in the environment or the requirements of the system. The introduction
of a software system affects the work environment. This change in environment
often changes what is desired from the system. Furthermore, often after the system
is installed and the users have had a chance to work with it for sometime, requirements
that are not identified during requirement analysis phase will be uncovered. This
occurs, since the experience with the software helps the user to define the needs
more precisely. There might also be changes in the input data, the system environment
and output formats. All these require modification of the software. The maintenance
activities related to such modification fall under adaptive maintenance.
Maintenance work is based on existing software, as compared to development
work, which creates new software. Consequently maintenance resolves around understanding
the existing software and spares most of their time trying to understand the software
that they have to modify. Understanding the software involves not only understanding
the code, but also the related documents. During the modification of the software,
the effects of the change have to be clearly understood by the maintainer since
introducing undesired side effects in the system during modification is easier.
To test whether those aspects in the system that are not supposed to be modified
are operating as they were before modification, regression testing is done. Regression
testing involves executing old test cases to test that no new errors have been
introduced. Thus, maintenance involves understanding the existing software (code
and related documents), understanding the effects of change, making the changes
- both to the code and documents, testing the new parts (changes), and resetting
of the old parts that were not changed.
Since often during development, needs of the maintainers are not kept in mind,
little support documents are produced during development to aid the maintainer.
The complexity of the maintenance task is coupled with the neglect of maintenance
concerns during development which makes maintenance the most cost effective activity
in the life of a software product.
Related Topics
See Also
<< Previous
Page | Contents
| Next Page >>
|