Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 / 14 CS 425/625 Software Engineering Software Change Based on Chapter 27 of the textbook [SE-6] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,

Similar presentations


Presentation on theme: "1 / 14 CS 425/625 Software Engineering Software Change Based on Chapter 27 of the textbook [SE-6] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,"— Presentation transcript:

1 1 / 14 CS 425/625 Software Engineering Software Change Based on Chapter 27 of the textbook [SE-6] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley, 2000 and on the “Ch27” PowerPoint presentation available at the book’s web-site: www.comp.lancs.ac.uk/computing/resources/IanS/SE6/Slides/index.html December 3, 2003

2 2 / 14 Outline n Introduction n Software Maintenance u Overview u Process u Prediction

3 3 / 14 Introduction n Software evolves continuously due to demands for changes: u New requirements surface u Existing requirements need be modified u Errors found need be fixed n Strategies for software change: u Software maintenance: does not affect significantly the software architecture u Architectural transformation: significant changes to the software architecture are required u Re-engineering: no new functionality required but modifications are needed to improve understandability and maintainability These strategies are not mutually exclusive

4 4 / 14 Software Maintenance: Overview….. n Software maintenance = the activities of changing the system after it has been delivered n Types of software maintenance: u Corrective maintenance: repair of software faults u Adaptive maintenance: modification of software due to changes in the operating environment (hardware, supporting software) u Perfective maintenance: additions to and/or modifications of system functionality due to organizational or business changes

5 5 / 14 Software Maintenance:.Overview…. n Distribution of maintenance effort (Fig. 27.2 [Somm00])

6 6 / 14 Software Maintenance:.. Overview… n Software maintenance is a natural continuation of the development process (specification, design, implementation, testing). Hence: u The term evolution u The generalized spiral model of software life-cycle that shows software evolution [next slide] n Development and maintenance costs vary from application to application n Investing in development leads to reduction of both maintenance costs and overall project costs [slide 11]

7 7 / 14 Software Maintenance: …Overview.. n The generalized spiral model (Fig. 27.3 [Somm00])

8 8 / 14 Software Maintenance: ….Overview. n Costs of development and maintenance (Fig. 27.4 [Somm00])

9 9 / 14 Software Maintenance: …..Overview n Why maintenance costs are higher than development costs? Factors: u Team stability: development teams break up after delivery u Contractual responsibility: different teams or organizations have the responsibility for maintenance u Staff skills: more experienced software engineers tend to avoid maintenance u Program age and structure: not structured in the first place, the program copes poorly with changes and its structure degrades

10 10 / 14 Software Maintenance: The Process.. n The maintenance process: an overview (Fig. 27.5 [Somm00])

11 11 / 14 Software Maintenance:.The Process. n Change implementation (Fig. 27.6 [Somm00])

12 12 / 14 Software Maintenance:.. The Process n Emergency repair (Fig. 27.7 [Somm00]). Prompted by: u System faults u Business changes u Environmental changes all requiring urgent treatment. n The dangers of emergency repair: u Software becomes inconsistent u Changes are not reflected in documentation u Software ageing is accelerated by workaround solutions

13 13 / 14 Software Maintenance: Prediction. n Maintenance prediction (Fig. 27.8 [Somm00])

14 14 / 14 Software Maintenance:. Prediction n Generally, more complex the software, more expensive its maintenance n Some software complexity metrics are: u Software size u Module size / Procedure size u Density of branching u Cyclomatic complexity n Factors used to assess maintainability: u Number of requests for corrective maintenance u Average time required for impact analysis u Average time taken to implement a change u Number of outstanding change requests


Download ppt "1 / 14 CS 425/625 Software Engineering Software Change Based on Chapter 27 of the textbook [SE-6] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,"

Similar presentations


Ads by Google