©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.

Slides:



Advertisements
Similar presentations
Chapter 27 Software Change.
Advertisements

Chapter 27 Software Change.
1 Note content copyright © 2004 Ian Sommerville. NU-specific content copyright © 2004 M. E. Kabay. All rights reserved. Software Evolution IS301 – Software.
Chapter 11 Software Evolution
1 / 24 CS 425/625 Software Engineering Software Evolution Based on Chapter 21 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8 th Ed., Addison-Wesley,
Software Configuration Management
Software Evolution Managing the processes of software system change
Dr Kettani, Spring 2002 Software Engineering IIFrom Sommerville, 6th edition Software change l Managing the processes of software system change.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software evolution.
Software evolution.
Software maintenance Managing the processes of system change.
 2004 by SEC Chapter 9 Software Maintenance. 2  2004 by SEC 9.1 Software Evolution.
Chapter 9 – Software Evolution Lecture 1 1Chapter 9 Software evolution.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Chapter 9 – Software Evolution and Maintenance
Lecture # 22 Software Evolution
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
Software change  Managing the processes of software system change.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Software Engineering Lecture 20 Software Maintenance.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution CS 425 November 12, 2013 Ian Sommerville, Software Engineering, 9 th Edition Pearson Education,
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CS 425/625 Software Engineering Legacy Systems
Chapter 9 Software Evolution.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Software evolution l Software evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing.
Lecture 1 Chapter 9 Software evolution1. Topics covered Evolution processes Change processes for software systems Program evolution dynamics Understanding.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
Software Evolution Program evolution dynamics Software maintenance Complexity and Process metrics Evolution processes 1.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Chapter 9 – Software Evolution Chapter 9 Software Evolution1.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Chapter 9 – Software Evolution Lecture 1 Chapter 9 Software evolution1.
Chapter 2: Software Maintenance Omar Meqdadi SE 3860 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 9 – Software Evolution Chapter 9 Software Evolution130/10/2014.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution CS 425 November 12, 2012 Ian Sommerville, Software Engineering, 9 th Edition Pearson Education,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software change Software change is inevitable –New requirements emerge when the software is used –The business environment changes –Errors must be repaired.
© SERG Reverse Engineering (Software Maintenance & Reengineering) Software Maintenance Managing the processes of system change.
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,
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVI. Software Evolution.
Software Configuration Management
Overview Software Maintenance and Evolution Definitions
Chapter 9 – Software Evolution
Chapter 18 Maintaining Information Systems
Introduction to Software Evolution and Maintenance
Chapter 9 – Software Evolution
Software Engineering (CSI 321)
Chapter 9 – Software Evolution
CS 425/625 Software Engineering Software Evolution
Software Testing and Maintenance Maintenance and Evolution Overview
Chapter 9 – Software Evolution and Maintenance
Chapter 9 Software Maintenance
IS301 – Software Engineering V:
Chapter 27 Software Change.
Chapter 9 – Software Evolution
Chapter 8 Software Evolution.
Lecture 06:Software Maintenance
Chapter 9 – Software Evolution
Chapter 9 – Software Evolution
Presentation transcript:

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 2 Objectives l To explain why change is inevitable (if software systems are to remain useful) l To describe different types of software maintenance l To identify maintenance cost factors l To describe the maintenance prediction process

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 3 Topics covered l Software change l Program evolution dynamics l Software maintenance and maintenance types l Maintenance costs and cost factors l Maintenance prediction

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 4 Topics covered l Software change l Program evolution dynamics l Software maintenance and maintenance types l Maintenance costs and cost factors l Maintenance prediction

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 5 Why software changes l Software change is inevitable…  New requirements emerge when the software is used;  The business environment changes;  Errors must be repaired;  New computers and equipment are added to the system;  The performance or reliability of the system may have to be improved.

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 6 Why effective change management is critical l The ability to implement and manage change is critical since…  Organizations have huge investments in their software systems - they are critical business assets.  To maintain the value of these assets, they must be changed and updated as necessary. l In fact, most of the software budget in large companies is devoted to evolving existing software rather than developing new software.

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 7 Spiral model of evolution

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 8 Topics covered l Software change l Program evolution dynamics l Software maintenance and maintenance types l Maintenance costs and cost factors l Maintenance prediction

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 9 l …is the study of the processes of system change. l After major empirical studies, Lehman and Belady proposed a number of “laws” which apply to large systems as they evolved. l They are actually sensible observations rather than “laws.” Program evolution dynamics…

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 10 Lehman’s laws (the “saturated state” idea) (how to apply this?)

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 11 Limits of applicability l Lehman’s laws seem to be generally applicable to large, custom systems developed by large organizations. (But what about systems such as MS Word which originally operated in 256K of memory, but which is now a giant requiring many megabytes of memory?) (cont’d)

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 12 Limits of applicability (cont’d) l Also, it is not clear how the laws should be modified for  Shrink-wrapped software products;  Systems that incorporate a significant number of COTS components;  Small organizations;  Medium sized systems.

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 13 Topics covered l Software change l Program evolution dynamics l Software maintenance and maintenance types l Maintenance costs and cost factors l Maintenance prediction

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 14 l Modifying a program after it has been put into use to effect software change l Does not normally involve major changes to the system’s architecture l Changes are implemented by modifying existing components and/or adding new components to the system. Software “maintenance”

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 15 l Maintenance to repair software faults l Maintenance to adapt software to a different operating environment l Maintenance to add to or modify the system’s functionality Types of maintenance

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 16 l Maintenance to repair software faults l Maintenance to adapt software to a different operating environment l Maintenance to add to or modify the system’s functionality How is maintenance effort typically divided among these three activities? Types of maintenance

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 17 Distribution of maintenance effort

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 18 Topics covered l Software change l Program evolution dynamics l Software maintenance and maintenance types l Maintenance costs and cost factors l Maintenance prediction

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 19 l Usually greater than development costs (2 to 100 times greater depending on the application). l Affected by both technical and non-technical factors. l Increases as software is maintained. (Maintenance corrupts the software structure so makes further maintenance more difficult.) l Ageing software can have very high support costs (e.g. old languages, compilers etc.). Maintenance costs

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 20 Development/maintenance costs reducing lifetime costs by spending more to increase maintainability during development

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 21 So what factors affect maintenance costs? Maintenance cost factors

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 22 l Team stability: Maintenance costs are reduced if the same staff are involved with the system for some time. l Contractual responsibility: The developers of a system may have no contractual responsibility for maintenance so there is no incentive to design for future change. (cont’d) Maintenance cost factors (cont’d)

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 23 l Staff skills: Maintenance staff are often inexperienced and have limited domain knowledge. l Program age and structure: As programs age, their structure is degraded and they become harder to understand and change. Maintenance cost factors (cont’d)

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 24 Topics covered l Software change l Program evolution dynamics l Software maintenance and maintenance types l Maintenance costs and cost factors l Maintenance prediction

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 25 Maintenance prediction… l …is concerned with assessing which parts of the system will be affected by change and what the costs of change will be. l This involves predicting:  Number of changes that will be required and the system parts that will be impacted;  Maintainability of different system parts; and  Short- and long-term cost of maintenance.

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 26 Maintenance prediction (cont’d) What parts of the system are most likely to be affected by change requests? What parts of the system will be the most expensive to maintain?

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 27 Maintenance prediction (cont’d) What parts of the system are most likely to be affected by change requests? What parts of the system will be the most expensive to maintain?

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 28 Change prediction l Predicting the number of changes requires an understanding of the relationships between a system and its environment. (Tightly coupled systems require changes whenever the environment is changed.) (cont’d)

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 29 Change prediction (cont’d) l Factors influencing this coupling are:  Number and complexity of system interfaces;  Number of inherently volatile system requirements; and  The business processes associated with system use. (cont’d)

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 30 Maintenance prediction (cont’d) What parts of the system are most likely to be affected by change requests? What parts of the system will be the most expensive to maintain?

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 31 Product metrics l Studies have shown that most maintenance effort is spent on a relatively small number of system components. l Predictions of maintainability can be made by assessing the complexity of system components. E.g.,  Complexity of control structures;  Complexity of data structures;  Object, method (procedure) and module size. (See, for example: Identifying Error-Prone Software - An Empirical Study (S.M. Thebaut, V.Y. Shen, T.J. Yu, and L.R. Paulsen), IEEE Transactions on SE 11(4): , 1985.

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 32 Process metrics l Process measurements taken over time may also be used to assess maintainability:  Number of requests for corrective maintenance;  Average time required for impact analysis;  Average time taken to implement a change request;  Number of unresolved change requests. l If any of these are increasing, it may indicate a decline in maintainability.

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 33 Maintenance prediction (cont’d) What parts of the system are most likely to be affected by change requests? What parts of the system will be the most expensive to maintain?

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 34 Cost prediction l Use predicted change request and maintainability info together with intuition and experience to predict costs. l Cost estimation models (e.g., Boehm’s COCOMO 2) utilize estimates of program understandability and new code development effort to predict costs. (See Chap. 26.)

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 35 Key points l Software development and evolution should be seen as a single, iterative process. l Lehman’s “Laws” describe a number of insights into system evolution. l Three types of maintenance are: bug fixing, adapting software for a new environment, and adding/modifying functionality. l For custom systems, maintenance costs usually far exceed development costs.

©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 36 Chapter 21 Software Evolution