Presentation is loading. Please wait.

Presentation is loading. Please wait.

Object-Oriented Analysis and Design Lecture 11 Maintenance (from Schach, “O-O and Classical Software Engineering”)

Similar presentations


Presentation on theme: "Object-Oriented Analysis and Design Lecture 11 Maintenance (from Schach, “O-O and Classical Software Engineering”)"— Presentation transcript:

1 Object-Oriented Analysis and Design Lecture 11 Maintenance (from Schach, “O-O and Classical Software Engineering”)

2 Why Maintenance? Correct faults in specification, design, coding, documentation This is corrective maintenance, maybe 20% of the job (according to one study) Perfective maintenance (60%) is adding functionality or improving operability Adaptive maintenance (20%) is reaction to changes in the operating environment Altogether, often 2/3 of the cost of software

3 Maintenance is Hard Yet organizations usually give it to newbies and incompetents Maintenance requires knowledge of all the skills in software development Maintenance requires knowledge of the complete program

4 Responding to a Fault Report User submits fault report: product doesn’t work like the manual says Is the user wrong? Is the manual wrong? Is it the code? What code? Can I fix the code without regression faults? Is there documentation (requirements, design, code, testing)?

5 Perfective Maintenance The programmer has to be expert in specs, design, coding, testing & documentation Less experienced programmers don’t belong here

6 The “Rewards” Thankless task; you only deal with unhappy users Someone else caused the problem, you have to fix it The code may be badly written Definitely not a high-status position But if you do a poor job, the client goes elsewhere (maybe you do too)

7 Temperate Fruit Committee The problem - no room for expansion - was caused by the developer, not the maintainer Clients don’t understand that maintenance can be difficult or impossible Development must consider future expansion

8 Maintenance Management Fault reports Keep a prioritized list of backlogged reports Try to find a workaround immediately Analyze, and add info (documentation, listings, etc.) to the fault report Circulate fault report with workaround to all users Sometimes cheaper & easier to fix several faults at once

9 Maintenance Management Know which modules need changing Use version control to ensure two modules aren’t simultaneously changed Ensure continued maintainability Beware the moving target

10 Maintenance of O-O Software Encapsulation is supposed to make some maintenance problems disappear But it can add new difficulties It may be hard to see all the methods of a class in a deep hierarchy. Solution: use tools Polymorphism may make it time consuming to check the effect of a change Changes to a class interior to a hierarchy are propagated to the leaf classes

11 Other Issues Reverse engineering may be necessary Case tools can help for O-O software Metrics can alert to especially fragile or sensitive classes Are changes being made to reused components? If so, should the reuse library be updated?


Download ppt "Object-Oriented Analysis and Design Lecture 11 Maintenance (from Schach, “O-O and Classical Software Engineering”)"

Similar presentations


Ads by Google