2. JOEMAR BALLENAS
REPORTER
• Definition of Software
Maintenance
• Maintenance Concern
• Types of Maintenance
• Key to Maintenance
• Distribution of Maintenance
Activities
3. SOFTWARE MAINTENANCE
The process of modifying a
software system or component after
delivery to correct faults, improve
performance or other attributes, or
adapt to a changed environment
4. REASONS FOR MAINTENANCE
• Market Conditions – Policies, which changes over the time, such as
taxation and newly introduced constraints like, how to maintain
bookkeeping, mat trigger need for modification.
• Client Requirements – Over the time, customer may ask foe new
features or functions in the software.
• Host Modification – 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.
5. MAINTENANCE IS THUS CONCERN
WITH:
• correcting errors found after the software has
been delivered
• adapting the software to changing
requirements, changing environments, …
6. TYPES OF MAINTENANCE
• Corrective Maintenance: correcting errors
•Adaptive Maintenance: adapting to changes in
the environment (both hardware and software)
• Perfective Maintenance: adapting to changing
user requirements
• Preventive Maintenance: increasing the
system’s maintainability
7. KEY TO MAINTENANCE IS IN
DEVELOPMENT
• Higher quality = less (corrective)
maintenance
• Anticipating changes = less (adaptive and
perfective) maintenance
• Better tuning to user needs = less
(perfective) maintenance
• Less code = less maintenance
9. RAYMART FADRIQUELA
REPORTER
• Major causes of Maintenance
problems
• Typical Problems with
Maintenance
• Software Maintainability
• Maintenance Side-Effects
10. MAJOR CAUSES OF MAINTENANCE
PROBLEMS
• Unstructured code
• Insufficient domain knowledge
• Insufficient documentation
11. TYPICAL PROBLEM WITH
MAINTENANCE
• Inadequate documentation of software evolution
• Inadequate documentation of software design and
structure
• Loss of cultural knowledge of software due to staff
turnover
• Lack of allowance for change in original software
design
• Maintenance is unglamorous and may be viewed as a
“punishment task”
12. SOFTWARE MAINTAINABILITY
• the ease with which software can be understand,
corrected, adapted, or enhanced
• good initial design and understandable software
structure
• comprehensive and accurate documentation
(including design document)
• use of standards (design, language, coding, etc.)
• availability of extensive test cases
13. MAINTENANCE SIDE-EFFECTS
• Any error or undesirable behavior that occurs as a result of
modifications to a system
• Coding side-effects (inadvertent removal of vital code, changes
in semantics of code, unexpected changes in execution path)
• Data side-effects (changes in data structures render older data
invalid or incomplete, changes in global constants, changes in
data ranges)
• Documentation side-effects (forgetting to document code or
data structure changes, changes not reflected in user manuals
or interface)
14. KIEL OCSAN
REPORTER
• Cost of Maintenance
• Real World Factors Affecting
Maintenance Cost
• Software-end Factors Affecting
Maintenance Cost
16. 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 softwares on modern hardware
• As technology advances, it becomes costly to
maintain old software
17. REAL-WORLD FACTORS AFFECTING
MAINTENANCE COST
•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
18. SOFTWARE-END FACTORS
AFFECTING MAINTENANCE COST
• Structure of software program
• Programming Languages
• Dependence on external environment
• Staff reliability and availability
20. MAINTENANCE ACTIVITIES
• Identification and Tracing – It involves activities pertaining to
identification of requirements of modification or maintenance.
• Analysis – The modification is analyzed for its impact on the
system including safety and security implications. If probable
impact is severe, alternative solution is looked for. A set of
required modification is then materialized into requirement
specifications. The cost of modification/maintenance is
analyzed and estimation is concluded.
• Design – New modules, which need to be replaced or modified,
are designed against requirement specifications set in the
previous stage.
21. MAINTENANCE ACTIVITIES
• Implementation – The new modules are coded with
the help of structured design created in the design
step.
• System Testing – Integration testing is done among
newly created modules. Integration testing is also
carried out between new modules and the system.
Finally the system is tested as a whole, following
regressive testing procedures.
• Acceptance Testing – After testing the system
internally, it is tested for acceptance with the help of
users.
22. MAINTENANCE ACTIVITIES
• Delivery – After acceptance test, the system is
deployed all over the organization either by small
update package or fresh installation of the system.
• Maintenance Management – Configuration
management is an essential part of system
maintenance. It is aided with version control tools to
control versions, semi-version or patch management.