Presentation is loading. Please wait.

Presentation is loading. Please wait.

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 Chapter 28 Software Re-engineering.

Similar presentations


Presentation on theme: "©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 Chapter 28 Software Re-engineering."— Presentation transcript:

1 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 Chapter 28 Software Re-engineering

2 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 2 Software re-engineering l Reorganising and modifying existing software systems to make them more maintainable

3 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 3 Objectives l To explain why software re-engineering is a cost- effective option for system evolution l To describe the activities involved in the software re-engineering process l To distinguish between software and data re- engineering and to explain the problems of data re-engineering

4 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 4 Topics covered l Source code translation l Reverse engineering l Program structure improvement l Program modularisation l Data re-engineering

5 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 5 l Re-structuring or re-writing part or all of a legacy system without changing its functionality l Applicable where some but not all sub-systems of a larger system require frequent maintenance l Re-engineering involves adding effort to make them easier to maintain. The system may be re- structured and re-documented System re-engineering

6 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 6 l When system changes are mostly confined to part of the system then re-engineer that part l When hardware or software support becomes obsolete l When tools to support re-structuring are available When to re-engineer

7 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 7 Re-engineering advantages l Reduced risk There is a high risk in new software development. There may be development problems, staffing problems and specification problems l Reduced cost The cost of re-engineering is often significantly less than the costs of developing new software

8 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 8 Business process re-engineering l Concerned with re-designing business processes to make them more responsive and more efficient l Often reliant on the introduction of new computer systems to support the revised processes l May force software re-engineering as the legacy systems are designed to support existing processes

9 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 9 Forward engineering and re-engineering

10 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 10 The re-engineering process

11 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 11 Re-engineering cost factors l The quality of the software to be re-engineered l The tool support available for re-engineering l The extent of the data conversion which is required l The availability of expert staff for re-engineering

12 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 12 Re-engineering approaches

13 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 13 Source code translation l Involves converting the code from one language (or language version) to another e.g. FORTRAN to C l May be necessary because of: Hardware platform update Staff skill shortages Organisational policy changes l Only realistic if an automatic translator is available

14 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 14 The program translation process

15 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 15 Reverse engineering l Analysing software with a view to understanding its design and specification l May be part of a re-engineering process but may also be used to re-specify a system for re- implementation l Builds a program data base and generates information from this l Program understanding tools (browsers, cross- reference generators, etc.) may be used in this process

16 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 16 The reverse engineering process

17 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 17 Reverse engineering l Reverse engineering often precedes re- engineering but is sometimes worthwhile in its own right The design and specification of a system may be reverse engineered so that they can be an input to the requirements specification process for the systems replacement The design and specification may be reverse engineered to support program maintenance

18 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 18 Program structure improvement l Maintenance tends to corrupt the structure of a program. It becomes harder and harder to understand l The program may be automatically restructured to remove unconditional branches l Conditions may be simplified to make them more readable

19 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 19 Spaghetti logic

20 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 20 Structured control logic


Download ppt "©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 Chapter 28 Software Re-engineering."

Similar presentations


Ads by Google