An Introduction to Object-Oriented Systems Analysis and Design with UML and the Unified Process McGraw-Hill, 2004 Stephen R. Schach [email protected] 16Chapter OverviewMaintenance—DefinitionWhy Maintenance Is NecessaryDevelopment and MaintenanceDevelopment and Maintenance (contd)What Is Required of Maintainers?What Is Required of Maintainers? (contd)Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Maintenance Case StudyMaintenance Case Study (contd)Lessons of the Case StudyLessons of the Case Study (contd)Management of MaintenanceFault ReportsFault Reports (contd)Fault Reports (contd)Slide 30Slide 31Slide 32Authorizing Changes to the Information SystemAuthorizing Changes to the Information SystemAuthorizing Changes to the Information SystemEnsuring MaintainabilityEnsuring Maintainability (contd)The Problem of Repeated MaintenanceThe Problem of Repeated Maintenance (contd)The Problem of Repeated Maintenance (contd)Slide 41Slide 42Slide 43Maintenance and the Object-Oriented ParadigmSlide 45Slide 46Slide 47Slide 48Slide 49Slide 50Slide 51Maintenance versus Development SkillsReverse EngineeringReverse Engineering (contd)Testing during MaintenanceCASE Tools for MaintenanceCASE Tools for Maintenance (contd)Slide 58Slide 59Slide 16.1Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction toObject-Oriented Systems Analysis and Design with UML and the Unified Process McGraw-Hill, 2004Stephen R. [email protected] 16.2Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. CHAPTER 16MAINTENANCESlide 16.3Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter OverviewWhy Maintenance Is NecessaryDevelopment and MaintenanceWhat Is Required of Maintainers?Temperate Fruit Committee Mini Case StudyThe Management of MaintenanceMaintenance and the Object-Oriented ParadigmMaintenance Skills versus Development SkillsReverse EngineeringTesting during MaintenanceCASE Tools for MaintenanceSlide 16.4Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. Maintenance—DefinitionMaintenance is the process that occurs when an information system artifact is modified–Either because of a problem, or–Because of a need for improvement or adaptation»(International Standards Organization and International Electrotechnical Commission, 1995)That is, maintenance occurs whenever an information system is modified–Regardless of whether this takes place before or after installationSlide 16.5Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. Why Maintenance Is NecessaryThere are three main types of maintenance:Corrective maintenance–To correct a faultPerfective maintenance–To improve the effectiveness of the information systemAdaptive maintenance–To react to changes in the environment in which the information system operatesSlide 16.6Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. Development and MaintenanceThe information system life cycle can be viewed as an evolutionary process –This is how maintenance is viewed by the Unified Process–Maintenance is treated merely as another incrementHowever, there is a basic difference between development and maintenance–It is easier to create a new version than to modify an existing versionSlide 16.7Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. Development and Maintenance (contd)ExampleConsider the similarities and differences between–Modifications to a portrait–Modifications to a information systemConclusions–A new portrait must be painted from scratch–The existing information system must be modifiedSlide 16.8Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. What Is Required of Maintainers?About 67% of the total cost of a product can be attributed to maintenanceMaintenance is a major income sourceNevertheless, even today many organizations assign maintenance to –Unsupervised beginners, and –Less competent maintainersSlide 16.9Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. What Is Required of Maintainers? (contd)Maintenance is one of the most difficult aspects of software production because–Maintenance incorporates aspects of the rest of the life cycleSlide 16.10Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. What Is Required of Maintainers? (contd)Suppose a fault report is handed to a maintainerWhat tools does the maintainer have to find the fault?–The fault report filed by user–The source code–And often nothing elseSlide 16.11Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. What Is Required of Maintainers? (contd)A maintainer must have superb debugging skills–The fault could lie anywhere within the information system–The original cause of the fault might lie in the old (and by now non-existent) specifications or design documentsSlide 16.12Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. What Is Required of Maintainers? (contd)Suppose that the maintainer has located the faultProblem–How to fix it without introducing a regression faultSlide 16.13Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. What Is Required of Maintainers? (contd)How to minimize regression faults–Consult the detailed documentation for the information system as a whole–Consult the detailed documentation for each individual code artifactWhat usually happens–There is no documentation at all, or –The documentation is incomplete, or –The documentation is faultyThe maintainer must gather information from the source code to avoid introducing a regression faultSlide 16.14Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. What Is Required of Maintainers? (contd)Now the maintainer changes the source code, then–Tests that the modification works correctly»Using specially constructed test cases–Checks for regression faults »Using stored test cases–Adds the specially constructed test cases to the existing test data for future regression testing, and–Documents all changesSlide 16.15Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. What Is Required of Maintainers? (contd)Major skills required for
View Full Document