Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software evolution l Software evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing.

Similar presentations


Presentation on theme: "Software evolution l Software evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing."— Presentation transcript:

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


Download ppt "Software evolution l Software evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing."

Similar presentations


Ads by Google