SOFTWARE RE-ENGINEERING PRESENTED BY: AMAN GAUR MCA
WHAT IS RE-ENGINEERING? Examination and alteration of a system to reconstruct it in a new form Reorganising and modifying existing software systems to make them more maintainable
STEPS INVOLVED IN RE- ENGINEERING Source code translation Reverse engineering program structure improvement program modularisation data re-engineering
SOURCE CODE TRANSLATION Converting code from one language to another need of translation: -> Hardware platform update -> staff skill shortage -> organisational policy changes
Conceptual Conceptual System Requirements System Requirements System Design System Design System Implementation System Implementation Reverse Engineering Existing System New System Forward Engineering Re Think Re Specify Re Design Redo Coding
Inventory Analysis Forward Engineering Document Reconstruction Data Re- Construction Reverse Engineering Code Re- Construction Re-engineering
REVERSE ENGINEERING Reorganising and modifying existing software systems to make them more maintainable the program itself is unchanged it is not the same as re-engineering
PROGRAM STRUCTURE IMPROVEMENT Reorganising and modifying existing software systems to make them more maintainable the program may be automatically restructured to remove unconditional branches conditions may be simplified to make them more readable
PROGRAM MODULARISATIO The process of re- organising a program so that related program parts are collected together in a single module different modules can be created: -> Hardware modules -> functional modules -> process support modules -> dataabstractions
DATA RE-ENGINEERING Involves analysing and reorganising the data structures in a system to make it more understandable objective is to create a managed data environment
CONCLUSION Software re-engineering is a cost effective option for system evolution consists of many sub-processes the objective of re-engineering is to improve the system structure to make it easier to understand and maintain