Software re-engineering 1. It is an activities that improves once understandability of software itself, usually for increased maintainability, reusability, evoluability . or 2. Software re-engineering is the examination and alteration of a system to reconstitute it in a new form.
Re-engineering Process Activities Source code translation:- convert code to a new language . Reverse engineering analyze the program to understand. structure improvement restructure automatically for understandability. Program modularization re-organize the program structure. Data re-engineering Clean-up & restructure system data.
Need of software re-engineerings Reduced risk- The re-engineering allows the developer to eliminate certain constraints on the system. This helps in reducing the risk of failures. Reduced cost- the cost of re-engineering is often significantly less than the cost of developing new software.
Difference Between Software Re-engineering &Reverse Engineering Reverse engineering attempts to discover how something works, while re - engineering seeks to improve a current design by investigating particular aspects of it. 1)In re- engineering new piece of code with similar or better Functionality than the existing one is created. 2)In reverse engineering the source code is re-created From the compiled code.
Software Reverse Engineering It is a process to achieve system specification by thoroughly analyzing, understanding the existing system. This process can be seen as reverse SDLC model, i.e. we try to get higher abstraction lower By analyzing lower abstraction levels.
Reverse engineering goal Cope of complexity Recover lost information Detect side effect Synthesize higher abstraction Facilitate reuse
Forward engineering 1)In software development life cycle, we start specification phase, analysis & implementation. 2)Forward engineering is same as software Engineering with Only one difference- it is carried out always after reverse engineering.
Purpose Configuration management activities The process of software development and maintenance is controlled is called configuration management Systematically control changes to the configuration and maintain the integrity and traceability of the configuration t hrough out the system life cycle.
The activities are divided into four categories The identification of the component are changes. The control of the way by which the changes are made. 3)Auditing the changes. 4)Status accounting-recording and documenting all the activities that have taken place.
Document required for these activities Project plan Software requirements specification document Software design description document Source code listing Test plan/procedures/test cases User manuals