Software Maintenance and Evolution Overview Jeff Offutt SWE 437 George Mason University 2008 Thanks to Ian Sommerville Susan Eisenbach Jeff Lei Hausi A M ller Oscar Nierstrasz and Hiern Variava Software Maintenance When When the the transition transition from from development development to to evolution evolution is is not not seamless seamless the the process process of of changing changing the the software software after after delivery delivery is is often often called called software software maintenance maintenance Sommerville Sommerville 2004 2004 Modifying a program after it has been put into use Maintenance does not normally involve major changes to the system s architecture Changes are implemented by modifying existing components and adding new components to the system Maintenance requires program understanding SWE 437 Software Testing and Maintenance Jeff Offutt 2 Importance of Maintenance Organizations have huge investments in their software systems they are critical business assets To maintain the value of these assets to the business they must be changed and updated The majority of the software budget in large companies is devoted to modifying existing software rather than developing new software SWE 437 Software Testing and Maintenance Jeff Offutt 3 What is Software Maintenance A program that is used undergoes continual change or it becomes progressively less useful Manny Lehman Software maintenance is the modification of a software product after delivery to correct faults to improve performance or other attributes or to adapt the product to a changed environment IEEE definition 1983 Average system takes 1 2 years to write and is in operation 5 6 years Most software development is maintenance SWE 437 Software Testing and Maintenance Jeff Offutt 4 Software Changes are Inevitable We cannot avoid changing software New requirements emerge when the software is used The business environment changes Faults must be repaired New computers and equipment is added to the system The performance or reliability of the system may have to be improved Software is tightly coupled with the environment When software is installed in an environment it changes that environment and therefore changes the software requirements A key problem for organizations is implementing and managing change to their existing software systems SWE 437 Software Testing and Maintenance Jeff Offutt 5 Management Myths Myth We already have a book that s full of standards and procedures for building software won t that provide my people with everything they need to know Reality The book of standards may very well exist but is it used In many cases the answer to the following questions is no Are software practitioners aware of its existence Does it reflect modern software engineering practice Is it complete Is it streamlined to improve time to delivery while still maintaining a focus on quality Myth If we get behind schedule we can add more programmers and catch up Reality Software development is not a mechanistic process like manufacturing In the words of Brooks adding people to a late software project makes it later Myth If I decide to outsource the software project to a third party I can just relax and let that firm build it Reality If an organization does not understand how to manage and control software projects internally it will invariably struggle when it outsources software projects SWE 437 Software Testing and Maintenance Jeff Offutt 6 Customer Myths Myth A general statement of objectives is sufficient to begin writing programs we can fill in the details later Reality A poor up front definition is the major cause of failed software efforts A formal and detailed description of the information domain function behavior performance interfaces design constraints and validation criteria is essential These characteristics can be determined only after thorough communication between customer and developer 60 100x Myth Project requirements continually change but change can be easily accommodated because software is flexible Reality It is true that software requirements change but the impact of change varies with the time at which it is introduced Cost of fixing faults 1 5 6x 1x Definition SWE 437 Software Testing and Maintenance Jeff Offutt Development After release 7 Practitioner s Myths Myth Once we write the program and get it to work our job is done Reality Someone once said that the sooner you begin writing code the longer it ll take you to get done Industry data indicate that between 60 and 80 percent of all effort expended on software will be expended after it is delivered to the customer for the first time Myth Until I get the program running I have no way of assessing its quality Reality One of the most effective software quality assurance mechanisms can be applied from the inception of a project the formal technical review Software reviews are more effective than testing for finding certain classes of software defects Myth The only deliverable work product for a successful project is the working program Reality A working program is only one part of a software configuration that includes many elements Documentation provides a foundation for successful engineering and more important guidance for software support Myth Software engineering will make us create voluminous and unnecessary documentation and will invariably slow us down Reality Software engineering is not about creating documents It is about creating quality Better quality leads to reduced rework And reduced rework results in faster delivery times SWE 437 Software Testing and Maintenance Jeff Offutt 8 Types of Maintenance Perfective maintenance Enhancement new operations and refinements to old functions about 50 Adaptive maintenance Modifying the application to meet new operational circumstances about 25 Corrective maintenance Eliminating errors in the program functionality about 21 of all maintenance activity Preventive maintenance Modifying a program to improve its future maintainability about 4 Why so little preventive maintenance Preventive programming is more constrained by time than other types SWE 437 Software Testing and Maintenance Jeff Offutt 9 Distribution of Maintenance Preventive 4 Corrective 21 Perfective 50 Adaptive 25 SWE 437 Software Testing and Maintenance Jeff Offutt 10 Development vs Maintenance not directly linked to the real directly driven by the real world world freedom constrained by existing system defects have no
View Full Document
Unlocking...