SlideShare a Scribd company logo
1 of 27
Software Maintenance




Software Maintenance
  A Very Essential Activity
Software Maintenance

     The First Law of Software
     Engineering
         “No matter where you are in the
         system life cycle, the system will
         change, and the desire to change it
         will persist throughout the life cycle”
                                               Bersoff et al. (1980)




13 January 2012            Made by Utpal Ray                           2
Software Maintenance



       Sources of Change
                   New business or market conditions which cause
                      changes in product requirements or business rules
                     New customer needs that demand modification of
                      data, functionality or services delivered by the
                      system
                     Reorganisation and/or business downsizing that
                      changes priorities and team structures
                     Budgetary or scheduling constraints that cause a
                      redefinition of the system
                     MOST CHANGES ARE JUSTIFIED


13 January 2012                         Made by Utpal Ray                 3
Software Maintenance


      Maintenance and the SDLC
               In the Waterfall software development lifecycle, we
                had a nice little box at the end of the process and
                one which was generally ignored in descriptions of
                the process
               In more advanced lifecycles such as the Spiral
                Model, maintenance was accorded a much more
                prominent place
               Still, maintenance is a relatively neglected aspect
                of the SDLC
               Examples: Pressman has no specific chapter on
                Maintenance, Somerville has 15 pages out of 742
                pages



13 January 2012                     Made by Utpal Ray                 4
Software Maintenance


     The Cost of Maintenance
              One study found
                 Requirements Definition         3%
                 Preliminary Design              3%
                 Detailed Design                 5%
                 Implementation                  7%
                 Testing                         15%
                 Maintenance                     67%
              Another study found at least 50%of effort spent on
               maintenance
              Another study found between 65% and 75%on
               maintenance
              In embedded real-time systems, maintenance costs may
               be up to 4 times development costs



13 January 2012                      Made by Utpal Ray                5
Software Maintenance

              Why is Maintenance so Costly?
               Most software is between 10 and 15 years old
               Much of that software is showing its age as it was
                  created when program size and storage space were far
                  more important factors
                 This has lead to inflexible designs, coding and
                  documentation
                 Maintenance is usually done by inexperienced staff
                  unfamiliar with the application
                 Developers don’t like maintenance
                 Changes often cause new faults in the system
                 Changes tend to degrade the structure of a program
                 Changes are often not documented


13 January 2012                      Made by Utpal Ray                   6
Software Maintenance


      Factors Affecting Maintenance Costs(1)
                   Module Independence
                      the ability to modify one part of the system
                      potential advantage of OO
                   Programming Language
                      the higher the level of the language, the cheaper
                       the maintenance
                   Programming Style
                      the way in which a program is written
                   Program Validation and Testing
                      the more time and effort spent on design
                       validation and program testing, the fewer errors
                       and the less the need for corrective
                       maintenance


13 January 2012                         Made by Utpal Ray                  7
Software Maintenance


    Factors Affecting Maintenance Costs (2)
                   Quality of Program Documentation
                      the better the documentation, the easier it is to maintain
                   Configuration Management Techniques
                      keeping track of all the system documents and ensuring
                       they are consistent is a major cost of maintenance,
                       therefore good CM tools and practices reduce this cost
                   Application Domain
                      the less well-understood the domain, the greater the
                       likelihood of the need for adaptive maintenance as users
                       and developers begin to understand the domain
                   Staff Stability
                      Maintenance costs are reduced if developers have to
                       maintain their own systems, highly unusual though over
                       the life of a system



13 January 2012                             Made by Utpal Ray                       8
Software Maintenance


            Factors Affecting Maintenance Costs (3)
                   Age of the System
                      the older the system, the more likely that its structure has
                       degraded and the harder the maintenance will be
                      Attracting staff who know the old
                       languages/databases/operating systems becomes harder
                       and more expensive
                   Dependence of the System on the External
                    Environment
                       the higher the dependence, the far more likely that
                        adaptive maintenance will be needed
                   Hardware Stability
                      If the hardware platform will not change over the life of
                       the system, maintenance for this reason will not be
                       needed



13 January 2012                             Made by Utpal Ray                         9
Software Maintenance

     Differences between Maintenance
     and New Development
       Constraints of an Existing System
          Changes must conform or be compatible with an
           existing architecture, design and code constraints
       Shorter Time Frames
          Development spans 6 months upwards
          Maintenance spans hours or days up to 6 months
       Available Test Data
          Development creates all test data from scratch
          Maintenance uses existing test data with regression
           testing, creating new data for the changes
13 January 2012                Made by Utpal Ray                 10
Software Maintenance



       Types of Maintenance
       So how and why do we spend so much time and effort on
        maintenance?
       Maintenance is much more than fixing bugs
       Commonly divided into three main categories
              Corrective Maintenance
              Adaptive Maintenance
              Perfective Maintenance
       The boundaries between the three types of maintenance
        are often blurred
       We can also define another type of maintenance -
        Preventive Maintenance

13 January 2012                       Made by Utpal Ray         11
Software Maintenance



Types of Maintenance

              Corrective
                17%




   Adaptive
    18%
                                            Perfective
                                              65%
Software Maintenance



                  Corrective Maintenance(1)
       Focused on fixing failures
       Is a reactive process
           failures and their associated faults generally need to be
            corrected either immediately or in the near future
       Failures vary in their cost to correct
           Coding - usually relatively cheap
           Design - more expensive as they may require changes to
            several program components
           Requirements - most expensive - may require extensive
            system redesign
       Design and Requirements are the source of approximately
           80% of failures
13 January 2012                   Made by Utpal Ray                     13
Software Maintenance



                  Corrective Maintenance (2)
       Fixing a fault has a 20 to 50% chance of introducing
        another fault
       Reasons for new faults include
              the ripple effect, where a change in one area may cause
               changes in seemingly unrelated areas
              Person who makes the repair is generally not the person who
               wrote the code or designed the system
       Two types of corrective maintenance
          Emergency Repairs - short time frame, often a single
           program, failure needs to be repaired as soon as possible
          Scheduled Repairs - failure doesn’t need immediate
           attention, re-examination of all emergency repairs

13 January 2012                       Made by Utpal Ray                      14
Software Maintenance



                  Adaptive Maintenance
       The evolution of the system to meet the needs of the
        user and the business
       Caused by
              internal needs
              external competition
              external requirements e.g. changes in law
       Essentially we are introducing new requirements to
        the system
       Therefore we should treat like a new development in
        our approach and methods

13 January 2012                      Made by Utpal Ray         15
Software Maintenance



                  Perfective Maintenance
               Old proverb says “If it isn’t broken, don’t fix it”
               Perfective maintenance ignores this ancient
                piece of wisdom
               Is about improving the quality of a program that
                already works
               Aim to achieve
                    reduced costs in using the system
                    increase maintainability of the system
                    more closely meet the users’ needs


13 January 2012                      Made by Utpal Ray                16
Software Maintenance



            Perfective Maintenance (2)
       Includes all efforts to polish or refine the quality of the
        software or the documentation
       Important that the potential benefits of the perfective
        maintenance outweigh
              the costs of the maintenance
              and the opportunity costs of improvements elsewhere
                  or using the resources on new developments
       Therefore before performing perfective maintenance,
        one should go through an analysis process
       Nevertheless, a little perfective maintenance can have
        dramatic effects
13 January 2012                      Made by Utpal Ray                17
Software Maintenance


             Preventative Maintenance
                   Can be seen as radical perfective maintenance or as
                      an alternative to maintenance
                     More commonly known as Software Re-
                      engineering
                     Taking a legacy system and converting its structure
                      or converting to a new language
                     Old system starts as a specification for the new
                      system
                     Common method now is known as wrappers where
                      an entire system is placed in an OO wrapper and
                      treated as one large object



13 January 2012                          Made by Utpal Ray                  18
Software Maintenance




     Alternatives to Maintenance
       Sometimes, maintenance is not enough on its own
       Partial restructuring integrated with adaptive
           maintenance
              use for orderly improvement with each system release
       Complete restructuring or overhaul of the existing
           code
              use on highly maintenance-prone system




13 January 2012                    Made by Utpal Ray                  19
Software Maintenance




     Alternatives to Maintenance (2)
       Complete redesign and rewrite
          Use when more than 20% of program must be changed
          Use when program is being upgraded to a new
           technology
          Don’t use when the design and function of a system are
           not known
       Retirement of the system and complete redevelopment
          Use when moving to a new technology
          use when the costs of maintaining the software and the
           hardware exceed the cost of re-development

13 January 2012                Made by Utpal Ray                    20
Software Maintenance


                  The Maintenance Process
                  Below is an ideal process, that is often not achieved
            Change
           requests




                                              System
          Change           Impact                                Change        System
                                              release
        management        analysis                            implementation   release
                                             planning




                          Perfective        Adaptive            Corrective
                         maintenance       maintenance         maintenance




13 January 2012                           Made by Utpal Ray                              21
Software Maintenance



              The Maintenance Process (2)
               Change Management
                  Uniquely identify, describe and track the status of all
                   change requests
               Impact Analysis
                  identifies all systems and system products affected by a
                   change request
                  makes an estimate of the resources needed to effect the
                   change
                  analyses the benefits of the change
               System Release Planning
                  to establish the schedule and contents of a system release
                  don’t want each change request released as they are
                   processed



13 January 2012                         Made by Utpal Ray                       22
Software Maintenance



            The Maintenance Process (3)
       Change Implementation
          Design Changes
          Coding
          Testing - must perform regression testing
       System Release includes
          documentation
          software
          training
          hardware changes
          data conversion


13 January 2012                Made by Utpal Ray       23
Software Maintenance



      Lehman’s Laws of Software Change
       Five laws based upon the growth and evolution of a
        number of large software systems
       Law of Continuing Change
              A program used in a real-world environment necessarily
                  must change or become less useful in that environment
       Law of Increasing Complexity
          As an evolving program changes, its structure tends to
           become more complex. Extra resources must be devoted
           to preserving and simplifying the structure


13 January 2012                       Made by Utpal Ray                   24
Software Maintenance


Lehman’s Laws of Software Change (2)
       Law of Large Program Evolution
          Program evolution is a self-regulating process. System
           attributes such as size, time between releases and the
           number of reported errors are approximately invariant for
           each system release
       Law of Organisational Stability
          Over a program’s lifetime, its rate of development is
           approximately constant and independent of the resources
           devoted to system development
       Law of Conservation of Familiarity
          Over the lifetime of a system, the incremental change in each
           release is approximately constant

13 January 2012                   Made by Utpal Ray                        25
Software Maintenance



            Motivating Maintenance Staff
            Often considered a dead-end in organisations as well as
             being boring!
            Critical to the success of the organisation
            Possible strategies
                   Couple software objectives to organisational goals
                   Couple software maintenance rewards to organisational
                    performance
                   Integrate software maintenance personnel into operational
                    teams
                   Create a discretionary, perfective/preventative maintenance
                    budget which allows the maintenance team to decide when
                    to re-engineer the system
                   Involve maintenance staff early in the software process
                    during standards preparation, reviews and test preparation



13 January 2012                           Made by Utpal Ray                       26
Software Maintenance


               HOME TASK

1. Explain the factors which affect the maintenance cost.

2. Explain the different types of Maintenance.

3. Explain the Lehman’s Laws of Software Change.

4. Explain the Maintenance Process.

More Related Content

What's hot

Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMIEvolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMInimmik4u
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)Nishkarsh Gupta
 
Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6Abdul Basit
 
Lecture 2 introduction to Software Engineering 1
Lecture 2   introduction to Software Engineering 1Lecture 2   introduction to Software Engineering 1
Lecture 2 introduction to Software Engineering 1IIUI
 
Fundamental software engineering activities
Fundamental software engineering activitiesFundamental software engineering activities
Fundamental software engineering activitiessommerville-videos
 
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
Maintenance,Re-engineering &Reverse Engineering in Software EngineeringMaintenance,Re-engineering &Reverse Engineering in Software Engineering
Maintenance, Re-engineering &Reverse Engineering in Software EngineeringManish Kumar
 
Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Sudarshan Dhondaley
 
Component based software development
Component based software developmentComponent based software development
Component based software developmentEmmanuel Fuchs
 
Software maintenance
Software  maintenanceSoftware  maintenance
Software maintenancePiyush Dua
 
Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software EngineeringFáber D. Giraldo
 
Software Engineering (Requirements Engineering & Software Maintenance)
Software Engineering (Requirements Engineering  & Software Maintenance)Software Engineering (Requirements Engineering  & Software Maintenance)
Software Engineering (Requirements Engineering & Software Maintenance)ShudipPal
 
Requirement change management
Requirement change managementRequirement change management
Requirement change managementAbdul Basit
 
Object oriented testing
Object oriented testingObject oriented testing
Object oriented testingHaris Jamil
 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notesAmmar Shafiq
 
Software maintenance ppt
Software maintenance pptSoftware maintenance ppt
Software maintenance pptAnas Usman
 
Software reverse engineering
Software reverse engineeringSoftware reverse engineering
Software reverse engineeringParminder Singh
 
Requirements engineering scenario based software requirement specification
Requirements engineering scenario based software requirement specificationRequirements engineering scenario based software requirement specification
Requirements engineering scenario based software requirement specificationWolfgang Kuchinke
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineeringdeshpandeamrut
 

What's hot (20)

Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMIEvolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)
 
Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6
 
Lecture 2 introduction to Software Engineering 1
Lecture 2   introduction to Software Engineering 1Lecture 2   introduction to Software Engineering 1
Lecture 2 introduction to Software Engineering 1
 
Fundamental software engineering activities
Fundamental software engineering activitiesFundamental software engineering activities
Fundamental software engineering activities
 
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
Maintenance,Re-engineering &Reverse Engineering in Software EngineeringMaintenance,Re-engineering &Reverse Engineering in Software Engineering
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
 
Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2
 
Software process
Software processSoftware process
Software process
 
Component based software development
Component based software developmentComponent based software development
Component based software development
 
Software maintenance
Software  maintenanceSoftware  maintenance
Software maintenance
 
Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software Engineering
 
unit 3 Design 1
unit 3 Design 1unit 3 Design 1
unit 3 Design 1
 
Software Engineering (Requirements Engineering & Software Maintenance)
Software Engineering (Requirements Engineering  & Software Maintenance)Software Engineering (Requirements Engineering  & Software Maintenance)
Software Engineering (Requirements Engineering & Software Maintenance)
 
Requirement change management
Requirement change managementRequirement change management
Requirement change management
 
Object oriented testing
Object oriented testingObject oriented testing
Object oriented testing
 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notes
 
Software maintenance ppt
Software maintenance pptSoftware maintenance ppt
Software maintenance ppt
 
Software reverse engineering
Software reverse engineeringSoftware reverse engineering
Software reverse engineering
 
Requirements engineering scenario based software requirement specification
Requirements engineering scenario based software requirement specificationRequirements engineering scenario based software requirement specification
Requirements engineering scenario based software requirement specification
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
 

Viewers also liked

Viewers also liked (6)

Tpm Presentation
Tpm PresentationTpm Presentation
Tpm Presentation
 
Maintenance types
Maintenance typesMaintenance types
Maintenance types
 
Total Productive Maintenance - TPM
Total Productive Maintenance - TPM Total Productive Maintenance - TPM
Total Productive Maintenance - TPM
 
Presentation on Total Productive Maintenance
Presentation on Total Productive MaintenancePresentation on Total Productive Maintenance
Presentation on Total Productive Maintenance
 
Maintenence management
Maintenence managementMaintenence management
Maintenence management
 
Maintenance Management
Maintenance ManagementMaintenance Management
Maintenance Management
 

Similar to 12 software maintenance

Software maintaince.pptx
Software maintaince.pptxSoftware maintaince.pptx
Software maintaince.pptxAmarYa2
 
Software Change in Software Engineering SE27
Software Change in Software Engineering SE27Software Change in Software Engineering SE27
Software Change in Software Engineering SE27koolkampus
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareengPINKU29
 
Software Maintenance and Evolution
Software Maintenance and EvolutionSoftware Maintenance and Evolution
Software Maintenance and Evolutionkim.mens
 
Ch9-Software Engineering 9
Ch9-Software Engineering 9Ch9-Software Engineering 9
Ch9-Software Engineering 9Ian Sommerville
 
Whitepaper Omnext
Whitepaper OmnextWhitepaper Omnext
Whitepaper Omnextmeijerandre
 
PS02CINT22 SE Software Maintenance
PS02CINT22 SE Software MaintenancePS02CINT22 SE Software Maintenance
PS02CINT22 SE Software MaintenanceConestoga Collage
 
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERINGUnit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERINGSangeetha Rangarajan
 
Achieving observability-in-modern-applications
Achieving observability-in-modern-applicationsAchieving observability-in-modern-applications
Achieving observability-in-modern-applicationsJulio Antúnez Tarín
 
How to save on software maintenance costs
How to save on software maintenance costsHow to save on software maintenance costs
How to save on software maintenance costsFrancisJansen
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introductionVishal Singh
 
Software Prototyping in Software Engineering SE8
Software Prototyping in Software Engineering SE8Software Prototyping in Software Engineering SE8
Software Prototyping in Software Engineering SE8koolkampus
 

Similar to 12 software maintenance (20)

Sw Maintenance.ppt
Sw Maintenance.pptSw Maintenance.ppt
Sw Maintenance.ppt
 
Software maintaince.pptx
Software maintaince.pptxSoftware maintaince.pptx
Software maintaince.pptx
 
Rsc 03
Rsc 03Rsc 03
Rsc 03
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Software Change in Software Engineering SE27
Software Change in Software Engineering SE27Software Change in Software Engineering SE27
Software Change in Software Engineering SE27
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareeng
 
Software Maintenance and Evolution
Software Maintenance and EvolutionSoftware Maintenance and Evolution
Software Maintenance and Evolution
 
SE2013_10.ppt
SE2013_10.pptSE2013_10.ppt
SE2013_10.ppt
 
Ch9-Software Engineering 9
Ch9-Software Engineering 9Ch9-Software Engineering 9
Ch9-Software Engineering 9
 
Ch21
Ch21Ch21
Ch21
 
Whitepaper Omnext
Whitepaper OmnextWhitepaper Omnext
Whitepaper Omnext
 
Ch9
Ch9Ch9
Ch9
 
PS02CINT22 SE Software Maintenance
PS02CINT22 SE Software MaintenancePS02CINT22 SE Software Maintenance
PS02CINT22 SE Software Maintenance
 
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERINGUnit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
 
Software Reuse
Software ReuseSoftware Reuse
Software Reuse
 
Ch9 evolution
Ch9 evolutionCh9 evolution
Ch9 evolution
 
Achieving observability-in-modern-applications
Achieving observability-in-modern-applicationsAchieving observability-in-modern-applications
Achieving observability-in-modern-applications
 
How to save on software maintenance costs
How to save on software maintenance costsHow to save on software maintenance costs
How to save on software maintenance costs
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
 
Software Prototyping in Software Engineering SE8
Software Prototyping in Software Engineering SE8Software Prototyping in Software Engineering SE8
Software Prototyping in Software Engineering SE8
 

More from University of Computer Science and Technology

More from University of Computer Science and Technology (20)

Real time-embedded-system-lec-02
Real time-embedded-system-lec-02Real time-embedded-system-lec-02
Real time-embedded-system-lec-02
 
Real time-embedded-system-lec-06
Real time-embedded-system-lec-06Real time-embedded-system-lec-06
Real time-embedded-system-lec-06
 
Real time-embedded-system-lec-05
Real time-embedded-system-lec-05Real time-embedded-system-lec-05
Real time-embedded-system-lec-05
 
Real time-embedded-system-lec-04
Real time-embedded-system-lec-04Real time-embedded-system-lec-04
Real time-embedded-system-lec-04
 
Real time-embedded-system-lec-03
Real time-embedded-system-lec-03Real time-embedded-system-lec-03
Real time-embedded-system-lec-03
 
Real time-embedded-system-lec-02
Real time-embedded-system-lec-02Real time-embedded-system-lec-02
Real time-embedded-system-lec-02
 
Real time-embedded-system-lec-07
Real time-embedded-system-lec-07Real time-embedded-system-lec-07
Real time-embedded-system-lec-07
 
11 software testing_strategy
11 software testing_strategy11 software testing_strategy
11 software testing_strategy
 
10 software testing_technique
10 software testing_technique10 software testing_technique
10 software testing_technique
 
09 coding standards_n_guidelines
09 coding standards_n_guidelines09 coding standards_n_guidelines
09 coding standards_n_guidelines
 
08 component level_design
08 component level_design08 component level_design
08 component level_design
 
07 interface design
07 interface design07 interface design
07 interface design
 
06 architectural design_workout
06 architectural design_workout06 architectural design_workout
06 architectural design_workout
 
05 architectural design
05 architectural design05 architectural design
05 architectural design
 
04 design concepts_n_principles
04 design concepts_n_principles04 design concepts_n_principles
04 design concepts_n_principles
 
03 requirement engineering_process
03 requirement engineering_process03 requirement engineering_process
03 requirement engineering_process
 
02 software process_models
02 software process_models02 software process_models
02 software process_models
 
01 software engineering_aspects
01 software engineering_aspects01 software engineering_aspects
01 software engineering_aspects
 
14 software technical_metrics
14 software technical_metrics14 software technical_metrics
14 software technical_metrics
 
13 software metrics
13 software metrics13 software metrics
13 software metrics
 

Recently uploaded

microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024Janet Corral
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...PsychoTech Services
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 

Recently uploaded (20)

microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 

12 software maintenance

  • 1. Software Maintenance Software Maintenance A Very Essential Activity
  • 2. Software Maintenance The First Law of Software Engineering “No matter where you are in the system life cycle, the system will change, and the desire to change it will persist throughout the life cycle” Bersoff et al. (1980) 13 January 2012 Made by Utpal Ray 2
  • 3. Software Maintenance Sources of Change  New business or market conditions which cause changes in product requirements or business rules  New customer needs that demand modification of data, functionality or services delivered by the system  Reorganisation and/or business downsizing that changes priorities and team structures  Budgetary or scheduling constraints that cause a redefinition of the system  MOST CHANGES ARE JUSTIFIED 13 January 2012 Made by Utpal Ray 3
  • 4. Software Maintenance Maintenance and the SDLC  In the Waterfall software development lifecycle, we had a nice little box at the end of the process and one which was generally ignored in descriptions of the process  In more advanced lifecycles such as the Spiral Model, maintenance was accorded a much more prominent place  Still, maintenance is a relatively neglected aspect of the SDLC  Examples: Pressman has no specific chapter on Maintenance, Somerville has 15 pages out of 742 pages 13 January 2012 Made by Utpal Ray 4
  • 5. Software Maintenance The Cost of Maintenance  One study found  Requirements Definition 3%  Preliminary Design 3%  Detailed Design 5%  Implementation 7%  Testing 15%  Maintenance 67%  Another study found at least 50%of effort spent on maintenance  Another study found between 65% and 75%on maintenance  In embedded real-time systems, maintenance costs may be up to 4 times development costs 13 January 2012 Made by Utpal Ray 5
  • 6. Software Maintenance Why is Maintenance so Costly?  Most software is between 10 and 15 years old  Much of that software is showing its age as it was created when program size and storage space were far more important factors  This has lead to inflexible designs, coding and documentation  Maintenance is usually done by inexperienced staff unfamiliar with the application  Developers don’t like maintenance  Changes often cause new faults in the system  Changes tend to degrade the structure of a program  Changes are often not documented 13 January 2012 Made by Utpal Ray 6
  • 7. Software Maintenance Factors Affecting Maintenance Costs(1)  Module Independence  the ability to modify one part of the system  potential advantage of OO  Programming Language  the higher the level of the language, the cheaper the maintenance  Programming Style  the way in which a program is written  Program Validation and Testing  the more time and effort spent on design validation and program testing, the fewer errors and the less the need for corrective maintenance 13 January 2012 Made by Utpal Ray 7
  • 8. Software Maintenance Factors Affecting Maintenance Costs (2)  Quality of Program Documentation  the better the documentation, the easier it is to maintain  Configuration Management Techniques  keeping track of all the system documents and ensuring they are consistent is a major cost of maintenance, therefore good CM tools and practices reduce this cost  Application Domain  the less well-understood the domain, the greater the likelihood of the need for adaptive maintenance as users and developers begin to understand the domain  Staff Stability  Maintenance costs are reduced if developers have to maintain their own systems, highly unusual though over the life of a system 13 January 2012 Made by Utpal Ray 8
  • 9. Software Maintenance Factors Affecting Maintenance Costs (3)  Age of the System  the older the system, the more likely that its structure has degraded and the harder the maintenance will be  Attracting staff who know the old languages/databases/operating systems becomes harder and more expensive  Dependence of the System on the External Environment  the higher the dependence, the far more likely that adaptive maintenance will be needed  Hardware Stability  If the hardware platform will not change over the life of the system, maintenance for this reason will not be needed 13 January 2012 Made by Utpal Ray 9
  • 10. Software Maintenance Differences between Maintenance and New Development  Constraints of an Existing System  Changes must conform or be compatible with an existing architecture, design and code constraints  Shorter Time Frames  Development spans 6 months upwards  Maintenance spans hours or days up to 6 months  Available Test Data  Development creates all test data from scratch  Maintenance uses existing test data with regression testing, creating new data for the changes 13 January 2012 Made by Utpal Ray 10
  • 11. Software Maintenance Types of Maintenance  So how and why do we spend so much time and effort on maintenance?  Maintenance is much more than fixing bugs  Commonly divided into three main categories  Corrective Maintenance  Adaptive Maintenance  Perfective Maintenance  The boundaries between the three types of maintenance are often blurred  We can also define another type of maintenance - Preventive Maintenance 13 January 2012 Made by Utpal Ray 11
  • 12. Software Maintenance Types of Maintenance Corrective 17% Adaptive 18% Perfective 65%
  • 13. Software Maintenance Corrective Maintenance(1)  Focused on fixing failures  Is a reactive process  failures and their associated faults generally need to be corrected either immediately or in the near future  Failures vary in their cost to correct  Coding - usually relatively cheap  Design - more expensive as they may require changes to several program components  Requirements - most expensive - may require extensive system redesign  Design and Requirements are the source of approximately 80% of failures 13 January 2012 Made by Utpal Ray 13
  • 14. Software Maintenance Corrective Maintenance (2)  Fixing a fault has a 20 to 50% chance of introducing another fault  Reasons for new faults include  the ripple effect, where a change in one area may cause changes in seemingly unrelated areas  Person who makes the repair is generally not the person who wrote the code or designed the system  Two types of corrective maintenance  Emergency Repairs - short time frame, often a single program, failure needs to be repaired as soon as possible  Scheduled Repairs - failure doesn’t need immediate attention, re-examination of all emergency repairs 13 January 2012 Made by Utpal Ray 14
  • 15. Software Maintenance Adaptive Maintenance  The evolution of the system to meet the needs of the user and the business  Caused by  internal needs  external competition  external requirements e.g. changes in law  Essentially we are introducing new requirements to the system  Therefore we should treat like a new development in our approach and methods 13 January 2012 Made by Utpal Ray 15
  • 16. Software Maintenance Perfective Maintenance  Old proverb says “If it isn’t broken, don’t fix it”  Perfective maintenance ignores this ancient piece of wisdom  Is about improving the quality of a program that already works  Aim to achieve  reduced costs in using the system  increase maintainability of the system  more closely meet the users’ needs 13 January 2012 Made by Utpal Ray 16
  • 17. Software Maintenance Perfective Maintenance (2)  Includes all efforts to polish or refine the quality of the software or the documentation  Important that the potential benefits of the perfective maintenance outweigh  the costs of the maintenance  and the opportunity costs of improvements elsewhere or using the resources on new developments  Therefore before performing perfective maintenance, one should go through an analysis process  Nevertheless, a little perfective maintenance can have dramatic effects 13 January 2012 Made by Utpal Ray 17
  • 18. Software Maintenance Preventative Maintenance  Can be seen as radical perfective maintenance or as an alternative to maintenance  More commonly known as Software Re- engineering  Taking a legacy system and converting its structure or converting to a new language  Old system starts as a specification for the new system  Common method now is known as wrappers where an entire system is placed in an OO wrapper and treated as one large object 13 January 2012 Made by Utpal Ray 18
  • 19. Software Maintenance Alternatives to Maintenance  Sometimes, maintenance is not enough on its own  Partial restructuring integrated with adaptive maintenance  use for orderly improvement with each system release  Complete restructuring or overhaul of the existing code  use on highly maintenance-prone system 13 January 2012 Made by Utpal Ray 19
  • 20. Software Maintenance Alternatives to Maintenance (2)  Complete redesign and rewrite  Use when more than 20% of program must be changed  Use when program is being upgraded to a new technology  Don’t use when the design and function of a system are not known  Retirement of the system and complete redevelopment  Use when moving to a new technology  use when the costs of maintaining the software and the hardware exceed the cost of re-development 13 January 2012 Made by Utpal Ray 20
  • 21. Software Maintenance The Maintenance Process Below is an ideal process, that is often not achieved Change requests System Change Impact Change System release management analysis implementation release planning Perfective Adaptive Corrective maintenance maintenance maintenance 13 January 2012 Made by Utpal Ray 21
  • 22. Software Maintenance The Maintenance Process (2)  Change Management  Uniquely identify, describe and track the status of all change requests  Impact Analysis  identifies all systems and system products affected by a change request  makes an estimate of the resources needed to effect the change  analyses the benefits of the change  System Release Planning  to establish the schedule and contents of a system release  don’t want each change request released as they are processed 13 January 2012 Made by Utpal Ray 22
  • 23. Software Maintenance The Maintenance Process (3)  Change Implementation  Design Changes  Coding  Testing - must perform regression testing  System Release includes  documentation  software  training  hardware changes  data conversion 13 January 2012 Made by Utpal Ray 23
  • 24. Software Maintenance Lehman’s Laws of Software Change  Five laws based upon the growth and evolution of a number of large software systems  Law of Continuing Change  A program used in a real-world environment necessarily must change or become less useful in that environment  Law of Increasing Complexity  As an evolving program changes, its structure tends to become more complex. Extra resources must be devoted to preserving and simplifying the structure 13 January 2012 Made by Utpal Ray 24
  • 25. Software Maintenance Lehman’s Laws of Software Change (2)  Law of Large Program Evolution  Program evolution is a self-regulating process. System attributes such as size, time between releases and the number of reported errors are approximately invariant for each system release  Law of Organisational Stability  Over a program’s lifetime, its rate of development is approximately constant and independent of the resources devoted to system development  Law of Conservation of Familiarity  Over the lifetime of a system, the incremental change in each release is approximately constant 13 January 2012 Made by Utpal Ray 25
  • 26. Software Maintenance Motivating Maintenance Staff  Often considered a dead-end in organisations as well as being boring!  Critical to the success of the organisation  Possible strategies  Couple software objectives to organisational goals  Couple software maintenance rewards to organisational performance  Integrate software maintenance personnel into operational teams  Create a discretionary, perfective/preventative maintenance budget which allows the maintenance team to decide when to re-engineer the system  Involve maintenance staff early in the software process during standards preparation, reviews and test preparation 13 January 2012 Made by Utpal Ray 26
  • 27. Software Maintenance HOME TASK 1. Explain the factors which affect the maintenance cost. 2. Explain the different types of Maintenance. 3. Explain the Lehman’s Laws of Software Change. 4. Explain the Maintenance Process.