You are on page 1of 20

Maintenance

---- includes all the activity after the installation of software that is performed to keep
the system operational and covers 70% of life cycle of SDLC

---- 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 and 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 working environment which
often changes what is desired from the system.

--- Maintenance changes the existing system, enhancement adds features to the
existing system, and development replaces the existing system.

--- It is an important part of system development that includes the activities which
corrects errors in system design and implementation, updates the documents, and
tests the data.
Faculty Name: Dr. Satinder Kaur
Why modifications are needed
•Market Conditions - Policies, which changes over the time,
such as taxation and newly introduced constraints like, how to
maintain bookkeeping, may trigger need for modification.
•Client Requirements - Over the time, customer may ask for
new features or functions in the software.
•Host Modifications - If any of the hardware and/or platform
(such as operating system) of the target host changes,
software changes are needed to keep adaptability.
•Organization Changes - If there is any business level change
at client end, such as reduction of organization strength,
acquiring another company, organization venturing into new
business, need to modify in the original software may arise.
Faculty Name: Dr. Satinder Kaur
Maintenance
Maintenance Types
•Corrective Maintenance - This includes modifications and updations done in
order to correct or fix problems, which are either discovered by user or
concluded by user error reports.

•Adaptive Maintenance - This includes modifications and updations applied to


keep the software product up-to date and tuned to the ever changing world of
technology and business environment.

•Perfective Maintenance - This includes modifications and updates done in


order to keep the software usable over long period of time. It includes new
features, new user requirements for refining the software and improve its
reliability and performance.

•Preventive Maintenance - This includes modifications and updations to


prevent future problems of the software. It aims to attend problems, which are
not significant at this moment but may cause serious issues in future.

Faculty Name: Dr. Satinder Kaur


Cost of Maintenance

On an average, the cost of software maintenance is more than


50% of all SDLC phases
Faculty Name: Dr. Satinder Kaur
Real-world factors affecting
Maintenance Cost
•The standard age of any software is considered up to 10 to 15 years.
•Older software, which were meant to work on slow machines with less
memory and storage capacity cannot keep themselves challenging
against newly coming enhanced software on modern hardware.
•As technology advances, it becomes costly to maintain old software.
•Most maintenance engineers are newbie and use trial and error
method to rectify problem.
•Often, changes made can easily hurt the original structure of the
software, making it hard for any subsequent changes.
•Changes are often left undocumented which may cause more conflicts
in future.

Faculty Name: Dr. Satinder Kaur


Faculty Name: Dr. Satinder Kaur
Problems With Maintenance
Aging---Due to cumulative maintenance the integrity of
the program, test data, and documentation degenerates and
it takes more effort to maintain the application than to
rewrite it

Labour intensive nature---A little change in code require


severe testing and changing in documentation

Error prone process---A little change in code can cause


major errors during integration in the existing manuals

Need more expertise and training

Faculty Name: Dr. Satinder Kaur


Reducing Maintenance Costs
Maintenance reduction plan consists of three phases---
Maintenance management audit---Evaluates the quality of
maintenance effort through interviews and questionnaires.
Common questions ---
---Are maintenance requests logged in a maintenance
request log?
---What percent of total hours worked are spent on error
corrections, additions /changes /deletions, and
improvements?
---Does your organization currently have a well-defined
maintenance reduction program?
The data gathered are used to develop a diagnostic study
to provide management with an assessment of the
software maintenance function. Faculty Name: Dr. Satinder Kaur
Reducing Maintenance Costs
Software system audit--- three methods---

--- An overall view of the system documentation and an


assessment of the quality of data files and data bases
and system maintainability, reliability, and efficiency.

--- Functional information gathered on all the programs


in the system to determine how well they do the job.
Each program is assigned a preliminary ranking value.

--- A detailed program audit, which considers the ranking


value, mean time between failure (MTBF), and size of the
maintenance backlog, MTBF determines system
availability to users. Faculty Name: Dr. Satinder Kaur
Reducing Maintenance Costs
Software modification--- three methods—
--- Program rewrites, which include logic simplification,
documentation updates, and error correction.
--- System level update, which completes system level
documentation, brings up to date data flow diagrams or
system flowcharts, and cross-references programs.
--- Re-audit of low-ranking programs to make sure that the
errors have been corrected.
The outcome of maintenance reduction plan---more reliable
software, a reduced maintenance backlog, improved
response times in correcting errors, improved user
satisfaction.
Faculty Name: Dr. Satinder Kaur
Documentation
--- an important part of software process
--- a process of recording the information for any reference or
operational purpose.
--- It helps users, managers, and IT staff, who require it.
--- prepared document must be updated on regular basis to trace the
progress of the system easily
--- A well written document provides a great tool and means of
information repository necessary to know about software process.
--- Software documentation also provides information about how to
use the product
--- Must include
--- Requirement documentation
--- Feasibility report
--- Software design documentation
--- System documentation
--- User Documentation
Faculty Name: Dr. Satinder Kaur
Advantages of documentation
 It can reduce system downtime, cut costs, and speed up
maintenance tasks
 It provides the clear description of formal flow of present
system and helps to understand the type of input data and
how the output can be produced.
 It provides effective and efficient way of communication
between technical and nontechnical users about system.
 It facilitates the training of new user so that he can easily
understand the flow of system.
 It helps the user to solve the problems such as
troubleshooting and helps the manager to take better final
decisions of the organization system.
 It provides better control to the internal or external working of
the system. Faculty Name: Dr. Satinder Kaur
Requirement Documentation
--- It works as key tool for software designer, developer and the
test team to carry out their respective tasks.
--- It contains all the functional, non-functional and behavioral
description of the intended software.
--- Source of this document can be previously stored data about
the software, already running software at the client’s end,
client’s interview, questionnaires and research.
--- Generally, it is stored in the form of spreadsheet or word
processing document with the high-end software management
team.
--- It works as foundation for the software to be developed and
is majorly used in verification and validation phases.
--- Most test-cases are built directly from requirement
documentation.
Faculty Name: Dr. Satinder Kaur
Software Design documentation
--- These documentations contain all the necessary
information, which are needed to build the software
i.e. (a) High-level software architecture, (b) Software design
details, (c) Data flow diagrams, (d) Database design

--- These documents work as repository for developers to


implement the software.

--- Though these documents do not give any details on how


to code the program, they give all necessary information
that is required for coding and implementation.

Faculty Name: Dr. Satinder Kaur


Software Design documentation
Program Documentation--- an important part of design
documentation
 It describes inputs, outputs, and processing logic for
all the program modules.
 The program documentation process starts in the
system analysis phase and continues during
implementation.
 This documentation guides programmers, who
construct modules that are well supported by internal
and external comments and descriptions that can be
understood and maintained easily.
Faculty Name: Dr. Satinder Kaur
System documentation
--- It provides the technical specifications for the IS

--- It describes how the objectives of the IS are accomplished.

--- provides the basis for understanding the technical aspects of the IS when
modifications are made.

 It describes each program within the IS and the entire IS itself.

 It describes the system’s functions, the way they are implemented, each program's
purpose within the entire IS with respect to the order of execution, information
passed to and from programs, and overall system flow.

 It includes data dictionary entries, data flow diagrams, object models, screen
layouts, source documents, and the systems request that initiated the project.

 Most of the system documentation is prepared during the system analysis and
system design phases.

 During systems implementation, an analyst must review system documentation to


verify that it is complete, accurate, and up-to-date, and including any changes
made during the implementation process.

Faculty Name: Dr. Satinder Kaur


Technical documentation
--- maintained by the developers and actual coders as part of
system documentation
--- as a whole, they represent information about the code.
--- While writing the code, the programmers also mention
objective of the code, who wrote it, where will it be required,
what it does and how it does, what other resources the code
uses, etc.
--- It increases the understanding between various programmers
working on the same code and enhances re-use capability of the
code as well as makes debugging easy and traceable.
--- There are various automated tools available and some comes
with the programming language itself. For example java comes
JavaDoc tool to generate technical documentation of code.
Faculty Name: Dr. Satinder Kaur
User documentation
--- maintained for the users to use the end-product
efficiently.

--- explains how the software product should work and how
it should be used to get the desired results.

--- These documentations may include, software installation


procedures, how-to guides, user-guides, uninstallation
method and special references to get more information like
license updation etc

Faculty Name: Dr. Satinder Kaur


User documentation
--- It includes instructions and information to the users who will interact
with the system. For example, user manuals, help guides, and tutorials.

--- User documentation is valuable in training users and for reference


purpose.

--- It must be clear, understandable, and readily accessible to users at


all levels

--- The users, system owners, analysts, and programmers, all put
combined efforts to develop a user’s guide.
A user documentation should include −
 A system overview that clearly describes all major system features,
capabilities, and limitations.
 Description of source document content, preparation, processing,
and, samples.
Faculty Name: Dr. Satinder Kaur
User documentation
 Overview of menu and data entry screen options, contents, and
processing instructions.
 Explanation of how to get help and procedures for updating the
user manual.
 Examples of reports that are produced regularly or available at the
user’s request, including samples.
 Security and audit trail information.
 Explanation of responsibility for specific input, output, or processing
requirements.
 Procedures for requesting changes and reporting problems.
 Examples of exceptions and error situations.
 Frequently asked questions (FAQs).
 Explanation of how to get help and procedures for updating the
Faculty Name: Dr. Satinder Kaur
user manual.

You might also like