Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 11 Maintaining the System System evolution Legacy systems Software rejuvenation.

Similar presentations


Presentation on theme: "Chapter 11 Maintaining the System System evolution Legacy systems Software rejuvenation."— Presentation transcript:

1 Chapter 11 Maintaining the System System evolution Legacy systems Software rejuvenation

2 Software maintenance  Maintenance: any work done to change the system after it is in operation Software does not degrade or require periodic maintenance like hardware However, software is continually evolving  Maintenance process can be difficult

3 Discussion question  If we build the system right in the first place, will it need to be maintained?

4 Maintenance is inevitable New requirements emerge when the software is used The business environment changes Errors must be repaired New equipment must be accommodated The performance or reliability may have to be improved

5 Characterizing systems  Lehman’s system types (1980) S-system: formally defined, derivable from a specification. P-system: requirements based on approximate solution to a problem, but real-world remains stable. E-system: embedded in the real world and changes as the world does.

6 Maintenance effort  Typical systems (1983) Development time: 2 years Maintenance time: 5 to 6 years  Effort (1979) 39% of effort in development 61% of effort in maintenance  80-20 rule 20% of effort in development 80% of effort in maintenance

7 Software evolution vs. retirement  When is it time to let an aging system retire?

8 Maintenance versus retirement  Is the cost of maintenance too high?  Is the system reliability unacceptable?  Can the system no longer adapt to further change, and within a reasonable amount of time?  Is system performance still beyond prescribed constraints?  Are system functions of limited usefulness?  Can other systems do the same job better, faster, or cheaper?  Is the cost of maintaining the hardware great enough to justify replacing it with cheaper, newer hardware?

9 Legacy system  An application program which continues to be used because of the cost of replacing or redesigning it. The implication is that the system is large, monolithic and difficult to modify. If legacy software only runs on antiquated hardware the cost of maintaining the hardware may eventually outweigh the cost of replacing both the software and hardware unless some form of emulation or backward compatibility allows the software to run on new hardware.

10 Types of maintenance  Corrective: reactive modification of a software product performed after delivery. Correcting problems  Adaptive: modifications to keep software usable in a changing environment (hardware, peripherals, etc. Adapting to new enviroments  Perfective: to better meet the needs and desires of customers. Adding new features, changing interfaces, etc. Redesign  Preventive: modification to detect and correct latent faults in the software before they become effective faults Adding additional internal checks

11 Multiple-choice  A credit card company upgrades its system for handling credit card payments, and this requires a slight change to the type of data that the e-commerce program needs to send to it.  What type of maintenance is required? A.Corrective B.Adaptive C.Perfective D.Preventive

12 Multiple-choice  The customer has stated that the e-commerce program should be able to allow additional credit card companies should the business decide to make them available to shoppers in the future. However, the maintenance team realizes that the way the system handles credit card payments will not scale up if more credit card options are made available in the future.  What type of maintenance is required? A.Corrective B.Adaptive C.Perfective D.Preventive

13 Multiple-choice  An additional product line is added for customers to the e-commerce site.  What type of maintenance is required? A.Corrective B.Adaptive C.Perfective D.Preventive

14 Multiple-choice  When confirmation receipts are emailed to customers following purchase, if the customer's name exceeds a certain length, then the email does not get sent.  Note: This situation does not occur very frequently (at most, once a week)  What type of maintenance is required? A.Corrective B.Adaptive C.Perfective D.Preventive

15 Types of maintenance

16 Who Performs the Maintenance?  Separate maintenance team May be more objective May find it easier to distinguish how a system should work from how it does work  Part of development team Will build the system in a way that makes maintenance easier May feel over-confident, and ignore the documentation to help maintenance effort

17 Maintenance is hard  Interact with developers, customers, and users  Understand the big picture  47% of effort devoted to understanding the software  Good debugging skills  Good testing skills

18 Maintenance Problems  Staff problems Limited understanding Morale  Technical problems Artifacts and paradigms Testing difficulties

19 Modeling Maintenance Effort  M = p + K c-d M : total maintenance effort p : productive (development) effort C : complexity d : degree of familiarity K : empirical constant

20 Measuring complexity is difficult  Cyclomatic number (McCabe, 1976) Metric for the structural complexity of the source code

21 Cyclomatic Number  Linearly independent path = e - n + 2 e: edges, n : nodes

22 Software Rejuvenation  Tries to increase the overall quality of an existing system Re-documentation: static analysis adds more information Restructuring: transform to improve code structure Reverse engineering: recreate design and specification information from the code Reengineering: reverse engineer and then make changes to specification and design to complete the logical model; then generate new system from revised specification and design

23 Software Rejuvenation  Software rejuvenation is a proactive fault management technique aimed at cleaning up the system internal state to prevent the occurrence of more severe crash failures in the future. Reboot system


Download ppt "Chapter 11 Maintaining the System System evolution Legacy systems Software rejuvenation."

Similar presentations


Ads by Google