Download presentation
Presentation is loading. Please wait.
Published byBarbara Wiggins Modified over 9 years ago
1
Software evolution l Software evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing software initially, then repeatedly updating it for various reasons.
2
Software Evolution2 Importance of evolution l Organizations have huge investments in their software systems - they are critical business assets. l To maintain the value of these assets to the business, they must be changed and updated. l The majority of the software budget in large companies is devoted to evolving existing software rather than developing new software. l Studies indicate that up to 75% of all software professionals are involved in some form of maintenance/evolution activity.
3
Software Evolution3 Software change 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 is added to the system; The performance or reliability of the system may have to be improved. l A key problem for organizations is implementing and managing change to their existing software systems.
4
Software Evolution4 l Repair software faults Changing a system to correct deficiencies in the way meets its requirements. l Adapt software to a different operating environment Changing a system so that it operates in a different environment (computer, OS, etc.) from its initial implementation. l Add to or modify the system’s functionality Modifying the system to satisfy new requirements. l Improve the program structure and system performance Rewriting all or parts of the system to make it more efficient and maintainable. Types of changes
5
Software Evolution5 Software evolution and software maintenance l No standard definitions. l Broad definition of evolution: Generally, software evolution refers to the study and management of the process of making changes to software over time. In this definition, software evolution comprises: Development activities Maintenance activities Reengineering activities l Narrow definition of evolution: Sometimes, software evolution is used to refer to the activity of adding new functionality to existing software. l Maintenance refers to the activity of modifying software after it has been put to use in order to maintain its usefulness.
6
Software Evolution6 l Repair software faults Changing a system to correct deficiencies in the way meets its requirements. l Adapt software to a different operating environment Changing a system so that it operates in a different environment (computer, OS, etc.) from its initial implementation. l Add to or modify the system’s functionality Modifying the system to satisfy new requirements. l Improve the program structure and system performance Rewriting all or parts of the system to make it more efficient and maintainable. Types of changes “Maintenance” “Evolution” “Reengineering”
7
Software Evolution7 Evolution processes l Processes for evolving a software product depend on The type of software being maintained; The development processes used; The skills and experience of the people involved. l Proposals for change are the drivers for system evolution. Change identification and evolution continue throughout the system lifetime. Sommerville, Ch. 21
8
Software Evolution8 Change identification and evolution Sommerville, Ch. 21
9
Software Evolution9 The system evolution process Release planning Change implementation System release Impact analysis Change requests Platform adaptation System enhancement Fault repair Sommerville, Ch. 21
10
Typess of maintenance l Corrective maintenance: Reactive modification of a software product performed after delivery to correct discovered problems. l Adaptive maintenance: Modification of a software product performed after delivery to keep a software product usable in a changed or changing environment; Software Evolution10
11
Cont………….. l Perfective maintenance: Modification of a software product after delivery to improve performance or maintainability. l Preventive maintenance: Modification of a software product after delivery to detect and correct latent faults in the software product before they become effective faults. Software Evolution11
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.