Professional Documents
Culture Documents
Systems Maintenance involves checking, changing, and enhancing the system to make it more
useful in achieving user and organizational goals.
Maintenance is any work done to change the system, after it is in operation. Software
maintenance is different from Hardware maintenance and we cannot use Hardware analogies
successfully, the way we can for other aspects of engineering. This is because Hardware
maintenance concentrates on replacing parts that wear out or using techniques that prolong the
system’s life.
However with software it is different because “While-do”, “For-next”, “do-while” loops don’t
wear out even after thousands of program executions. Furthermore, some colons and other
syntaxes do not fall off the end of statements.
System maintenance may involve simple changes such as; correcting errors (i.e debugging), it
may involve more extensive changes such as correcting design errors, or significant enhancement
to correct specification errors or to accommodate new requirements. Therefore, system
maintenance involves software evolution. In fact, maintenance is the process of changing a
system to maintain its ability to survive.
Reasons for Maintenance
Changes in business processes
New requests from stakeholders, users, and managers
Bugs or errors in the program
Technical and hardware problems
Corporate mergers and acquisitions
Government regulations
Change in operating system or hardware on which the application runs
2. Adaptive maintenance
It means changing the software to some new environment such as different Hardware
platforms or for use with a different operating system. With the adaptive maintenance the
software functionality does not radically change. Adaptive maintenance occurs as a result of
new technology in software or hardware.
This type of maintenance may become necessary because of organizational changes which
may include:
a) Change in the organizational procedures,
b) Change in organizational objectives, goals, policies, etc.
1 - -
c) Change in forms,
d) Change in information needs of managers.
e) Change in system controls and security needs, etc.
3. Perfective maintenance
It involves implementing new functional or non-functional system requirements. These
requirements are generated by software customer as the organization or business changes. It
involves changing some aspect of the system to make it more perfect in meeting the
requirements.
Outside changes are primarily environmental changes, which may in the absence of system
maintenance, render the information system ineffective and inefficient. These environmental
changes include:
a) Changes in governmental policies, laws, etc
b) Economic and competitive conditions, and
c) New technology.
4. Preventive maintenance
This activity occurs when software is changed to improve future maintainability or reliability,
or to provide a better basis for future enhancements.
Preventive maintenance is commonly used in the maintenance of hardware and other physical
systems.
2 - -
In the life cycle of software development, software maintenance plan is a very crucial phase.
Hence, it is executed in the system through a well-planned software maintenance process which is
known as Software Maintenance Life Cycle (SMLC). SMLC is implemented in seven different
phases. Those are:
Phase 1 – Identification
As the name goes, in this phase, the modifications are ‘identified’. Before implementing the
changes for the requests raised, the modifications are first analyzed and classified according to the
attention or maintenance it requires. This phase can be automated or manually done by a user.
Phase 2 – Analysis
The practicality and feasibility of each verified modification request are planned to incorporate
changes in the software. The analysis includes validated changes or input where the cost of
modification is also estimated.
Phase 3 – Design
The new framework of the software is determined according to the result of the analysis. Survey
or test software is also developed for the purpose of safety and security.
Phase 4 – Implementation
This is where the main or new software framework is implemented; as in, the codes are crafted,
and in the new support system, specifications are added.
Phase 5 – System testing
In this testing, the implementation of codes and specifications are tested. This stage determines if
any further changes or additions are required in the new model of software.
Phase 6 – Acceptance Testing
This stage is performed by third-party end-users. They run a dummy software test, also known as
a dry run test, to check if the implemented specifications are working properly, which was
mentioned in the modification request.
Phase 7 – Delivery
As and when the testing phase is cleared and the developers get a green signal from the third party
users, they deliver the software to the primary users.
3 - -
Just how it sounds, the main aim of this model is to search for glitches and fix them as soon as
possible. The main advantage of the quick-fix model is that it works very rapidly at a low price.
The approach of this model is to modify the coding with minimal consideration.
Iterative Enhancement Model
The primary nature of the changes in this model is iterative. Based on the analysis of the existing
system, the changes are incorporated in this model. It requires complete documentation of the
software that is available before making any changes.
The Re-use Oriented Model
In this model, the part of the existing system that is in the position of using is identified; hence it
is called the ‘re-use oriented model’. After analyzing, this model goes through changes or
enhancement as required.
4 - -