CS 425625 Software Engineering Software Change Based on
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 “Ch 27” Power. Point presentation available at the book’s web-site: www. comp. lancs. ac. uk/computing/resources/Ian. S/SE 6/Slides/index. html December 3, 2003 1
Outline n n Introduction Software Maintenance u Overview u Process u Prediction 2
Introduction n Software evolves continuously due to demands for changes: New requirements surface u Existing requirements need be modified u Errors found need be fixed u n Strategies for software change: 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 u 3
Software Maintenance: Overview…. . n n Software maintenance = the activities of changing the system after it has been delivered 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 4
Software Maintenance: . Overview…. n 5 Distribution of maintenance effort (Fig. 27. 2 [Somm 00])
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] 6 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]
Software Maintenance: …Overview. . n 7 The generalized spiral model (Fig. 27. 3 [Somm 00])
Software Maintenance: …. Overview. n 8 Costs of development and maintenance (Fig. 27. 4 [Somm 00])
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 9
Software Maintenance: The Process. . n 10 The maintenance process: an overview (Fig. 27. 5 [Somm 00])
Software Maintenance: . The Process. n 11 Change implementation (Fig. 27. 6 [Somm 00])
Software Maintenance: . . The Process n Emergency repair (Fig. 27. 7 [Somm 00]). Prompted by: System faults u Business changes u Environmental changes all requiring urgent treatment. u n The dangers of emergency repair: u u u 12 Software becomes inconsistent Changes are not reflected in documentation Software ageing is accelerated by workaround solutions
Software Maintenance: Prediction. n 13 Maintenance prediction (Fig. 27. 8 [Somm 00])
Software Maintenance: . Prediction n n Generally, more complex the software, more expensive its maintenance Some software complexity metrics are: u u n Factors used to assess maintainability: u u 14 Software size Module size / Procedure size Density of branching Cyclomatic complexity Number of requests for corrective maintenance Average time required for impact analysis Average time taken to implement a change Number of outstanding change requests
- Slides: 14