1 Software Maintenance The process of changing the system after it has been delivered and in operation Software change is inevitable –New requirements.

Slides:



Advertisements
Similar presentations
Chapter 26 Legacy Systems.
Advertisements

Software Re-engineering
Software Re-engineering
Chapter 27 Software Change.
CIS 376 Bruce R. Maxim UM-Dearborn
Legacy Systems Older software systems that remain vital to an organisation.
Chapter 11 Software Evolution
SWE 316: Software Design and Architecture Objectives Lecture # 23 Software Reengineering SWE 316: Software Design and Architecture  To describe the activities.
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,
Introduction to Software Evolution and Maintenance
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.
CSEM01 SE Evolution & Management Anne Comer Helen Edwards
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software evolution.
Software evolution.
Driss Kettani Sommerville, 6th edition Software Engineering II Software re-engineering l Reorganising and modifying existing software systems to make them.
Software maintenance Managing the processes of system change.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
Software Re-engineering
Chapter 9 – Software Evolution and Maintenance
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.
CS 425/625 Software Engineering Legacy Systems
©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 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
Legacy Systems An Introduction. Legacy Systems Why do you think the agents are after his life ??
©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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 CO7206 System Reengineering 4.2 Software Reengineering Most slides are Slides.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 26,27,28 Slide 1 Legacy Systems l Older software.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 2.
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.
©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.
CS223: Software Engineering Lecture 33: Software Maintenance.
CS223: Software Engineering Lecture 34: Software Maintenance.
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.
CS223: Software Engineering
Chapter 18 Maintaining Information Systems
Introduction to Software Evolution and Maintenance
Software Maintenance.
Chapter 9 – Software Evolution
Software Engineering (CSI 321)
Chapter 9 – Software Evolution
CS 425/625 Software Engineering Software Evolution
Legacy Systems Older software systems that remain vital to an organisation.
Chapter 9 – Software Evolution and Maintenance
IS301 – Software Engineering V:
Software Re-Engineering
Chapter 27 Software Change.
Chapter 8 Software Evolution.
Lecture 06:Software Maintenance
Legacy system components
Re- engineeniering.
Software Re-engineering and Reverse Engineering
Presentation transcript:

1 Software Maintenance The process of changing the system after it has been delivered and in operation Software change is inevitable –New requirements emerge –The business environment changes –Errors must be repaired –New equipment must be accommodated –The performance or reliability may have to be improved

2 Maintenance to repair software faults (Corrective) –Changing a system to correct deficiencies in the way meets its requirements Maintenance to adapt software to a different operating environment (Adaptive) –Changing a system so that it operates in a different environment (computer, OS, etc.) from its initial implementation Maintenance to add to or modify the system’s functionality (Perfective) –Modifying the system to satisfy new requirements Types of maintenance

3 Legacy systems Older software systems that remain vital to an organisation Many software systems that are still in use were developed many years ago using technologies that are now obsolete These systems are still business critical that is, they are essential for the normal functioning of the business

4 Legacy system change Systems must change in order to remain useful However, changing legacy systems is often expensive –Different parts implemented by different teams so no consistent programming style –The system may use an obsolete programming language –The system documentation is often out-of-date –The system structure may be corrupted by many years of maintenance It is expensive and risky to replace the legacy system It is expensive to maintain the legacy system

5 Software re-engineering Reorganising and modifying existing software systems to make them more maintainable Re-structuring or re-writing part or all of a legacy system without changing its functionality The system may be re-structured and re-documented Advantages –Reduced risk There is a high risk in new software development. –Reduced cost The cost of re-engineering is often significantly less than the costs of developing new software

6 Forward engineering and re- engineering

7 The re-engineering process

8 Source code translation Involves converting the code from old programming language (or language version) to another e.g. FORTRAN to C May be necessary because of: –Hardware platform update –Staff skill shortages –Organisational policy changes Only realistic if an automatic translator is available

9 Reverse engineering Analysing software to understanding its design and specification The program is unchanged Program understanding tools may be used in this process The output is documents showing: –Program structure diagrams –Data structure diagrams –Traceability matrices (where system entities are defined and referenced)

10 Program structure improvement The control structures of the program is analysed to make it easier to read and understand Maintenance tends to corrupt the structure of a program. –The program may be automatically restructured to remove unconditional branches –Conditions may be simplified to make them more readable

11 Program modularisation The process of re-organising a program so that related program parts are collected together in a single module –Redundancy is removed –Simplify interfaces Usually a manual process that is carried out by program inspection and re- organisation

12 Data re-engineering Involves analysing and reorganising the data structures (and sometimes the data values) in a program to match new changes May be part of the process of migrating from a file- based system to a DBMS-based system or changing from one DBMS to another Data re-engineering approaches –Data cleanup: duplicate removal, formats improved –Data extension: increase fields length, storage capacity –Data migration: move data to different storage

13 Re-engineering approaches Disadvantage of re-engineering is the limited program improvement possible