REVERSE ENGINEERING & APPLICATION REWRITE
Reverse
EngineeringProgorithms view
reverse engineering model as the process of analyzing a
subject system or going backwards through the
development cycle to create representations of the
system at a higher level of abstraction.
Traditionally in this model, we support and work
on two approaches:
1. The output of the
implementation phase (in source code form) is reverse
engineered back to the analysis phase, in an inversion
of the traditional waterfall model, where the high-level
aspects of the system are poorly documented or not
documented.
2. From the output results (or end
product), discovering the source code for the system is
also regarded as one of our reverse engineering
approach.
Rewrite or Re-engineering
It is a contemporary 'rebuilding industrial engineering'
method, rather than something that is totally original.
However, this model is showing improved profits to many
business enterprises.
Progorithms view
application rewrite or re-engineering as an easy way out, as the model
recommends constituting a workable system on the basis
of mixed ideas and requirements. For re-engineering
projects, we follow the SEI's Horseshoe Model that has
three defined processes:
1. Analysis of an existing
system recovering the system architecture and design by
extracting artifacts from the source system. The
recovered system is measured and evaluated for quality
attributes like performance, modifiability, security and
reliability.
2. Logical transformation at this
step, the 'as built' system design and architecture is
then re-engineered to become a desirable new system. It
is also re-evaluated against quality attributes and
other economic constraints.
3. Development of a
new system implementing the new system based on the
re-engineered design and architecture. Code-level
artifacts from the source system are often re-written in
order to fit into the new system.
The purpose of
the visual metaphor of the "horseshoe" is to integrate
the code-level and the architectural re-engineering
views of the world.