SOFTWARE MAINTENANCE GROUP 3 REPORT
JOEMAR BALLENAS
REPORTER
• Definition of Software
Maintenance
• Maintenance Concern
• Types of Maintenance
• Key to Maintenance
• Distribution of Maintenance
Activities
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
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.
MAINTENANCE IS THUS CONCERN
WITH:
• correcting errors found after the software has
been delivered
• adapting the software to changing
requirements, changing environments, …
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
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
DISTRIBUTION OF MAINTENANCE
ACTIVITIES
Perfective
50%
Adaptive
25%
Corrective
21%
Preventive
4%
MAINTENANCE ACTIVITIES
RAYMART FADRIQUELA
REPORTER
• Major causes of Maintenance
problems
• Typical Problems with
Maintenance
• Software Maintainability
• Maintenance Side-Effects
MAJOR CAUSES OF MAINTENANCE
PROBLEMS
• Unstructured code
• Insufficient domain knowledge
• Insufficient documentation
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”
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
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)
KIEL OCSAN
REPORTER
• Cost of Maintenance
• Real World Factors Affecting
Maintenance Cost
• Software-end Factors Affecting
Maintenance Cost
COST OF
MAINTENANCE
Maintenance
67%
Testing
15%
Implementati
on
7%
Designing
8%
Requirement
3%
SOFTWARE PROCESS CYCLE
Reports suggest that
the cost of maintenance is
high. A study on estimating
software maintenance
found that the cost of
maintenance is as high as
67% of the cost of entire
software process cycle.
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
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
SOFTWARE-END FACTORS
AFFECTING MAINTENANCE COST
• Structure of software program
• Programming Languages
• Dependence on external environment
• Staff reliability and availability
DARAH LEI JUBILO
REPORTER
• Maintenance Activities
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.
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.
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.

Software maintenance

  • 1.
  • 2.
    JOEMAR BALLENAS REPORTER • Definitionof Software Maintenance • Maintenance Concern • Types of Maintenance • Key to Maintenance • Distribution of Maintenance Activities
  • 3.
    SOFTWARE MAINTENANCE The processof 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 THUSCONCERN 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 MAINTENANCEIS 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
  • 8.
  • 9.
    RAYMART FADRIQUELA REPORTER • Majorcauses of Maintenance problems • Typical Problems with Maintenance • Software Maintainability • Maintenance Side-Effects
  • 10.
    MAJOR CAUSES OFMAINTENANCE 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 • theease 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 • Anyerror 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 • Costof Maintenance • Real World Factors Affecting Maintenance Cost • Software-end Factors Affecting Maintenance Cost
  • 15.
    COST OF MAINTENANCE Maintenance 67% Testing 15% Implementati on 7% Designing 8% Requirement 3% SOFTWARE PROCESSCYCLE Reports suggest that the cost of maintenance is high. A study on estimating software maintenance found that the cost of maintenance is as high as 67% of the cost of entire software process cycle.
  • 16.
    REAL-WORLD FACTORS AFFECTING MAINTENANCECOST • 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 MAINTENANCECOST •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 MAINTENANCECOST • Structure of software program • Programming Languages • Dependence on external environment • Staff reliability and availability
  • 19.
    DARAH LEI JUBILO REPORTER •Maintenance Activities
  • 20.
    MAINTENANCE ACTIVITIES • Identificationand 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.