Software re-engineering
process model is a very generic process meant to uplift the standard of the
poor code that is currently not acceptable. This model is known to have 6 major
stages namely:
- Inventory analysis
- Documentation reconstruction
- Reverse engineering
- Code re- structuring
- Data re- structuring
- Forward Engineering
This article is all about
the third stage i.e., “reverse engineering” which is an important concept in
itself.
Re- engineering is usually required when the some of the sub systems of
a larger software system or application need to frequently maintained. The re-
engineered system is then restructured and re- documented.
What is Reverse Engineering?
- The reverse
engineering forms a very important factor in success of the re- engineering
process.
- The reverse engineering can be considered to be a process of
recovering the design of the software system or application that is to be re-
engineered.
- This step involves analyzation of the software program in an effort
to obtain an abstract level representation of the program that is higher than
the level of the source code.
- The
software system or application is analyzed in such a way so as to understand
its design and specifications and requirements.
- Reverse engineering is
an entirely individual process.
- In some cases the reverse re- engineering may be used for specifying a software system before it is
implemented again.
- The reverse engineering process makes use of the program
understanding tools like:
- Browsers
- Cross reference generators and so on.
Levels in Reverse Engineering
The reverse engineering
process takes effect through the following levels:
1. Abstraction level: The design information of the
software system or application is derived at the highest level possible.
2. Completeness: At the above abstraction level, the
details of the system are obtained.
3. Interactivity: The degree of the human integration with
5the automated reverse engineering tools is measured.
4. Directionality: It can be either:
(a)
One way: All the extracted information is given
to the sogftware engineering who is doing the maintenance.
(b)
Or two way: All the extracted information is fed
to a re- engineering tool which then regenerates the old software program.
5. Extract abstraction: From the old source the processing
specifications are obtained.
Stages in Reverse Engineering Process
Reverse engineering process from sommerville goes through the following
stages:
1. System to be re- engineered is subjected to automated
analysis.
2. Then it is manually annotated.
3. With the system information obtained, a whole set of new
documentation is generated containing:
(a)
Program structure diagrams
(b)
Data structure diagrams and
(c) Trace ability matrices.
Activities in Reverse Engineering Process
There are 3 basic activities involved with the reverse engineering
process:
1. Understanding process: In order to understand the
procedural abstractions as well as functionality analyze the source code on the
level:
(a)
System
(b)
Program
(c)
Component
(d)
Statement and
(e)
Pattern
2. Understanding data: It analyzes internal data
structures and data base structure.
3. User interfaces: It analyzes the basic actions
processed by the interface, system’s behavioral response to those actions and
equivalency of the interfaces.
When is Reverse Engineering Preferred?
- Reverse engineering is
usually preferred when the specifications and designs of the system are required
to carry out the program maintenance activities.
- The re- engineering process is
preceded by the reverse engineering.
- To put it simply, the reverse engineering
can be thought of as a process that goes back through the whole development
cycle.
- UML is a source that supports reverse engineering.
- Different people have
their own different perceptions of the reversion engineering.
- It can also be
thought of as an inversion of the water fall model of software development.
No comments:
Post a Comment