Reverse Engineering, Engineering Design, Reverse Engineering Process
Reverse Engineering, Engineering Design, Reverse Engineering Process
Reverse Engineering can be defined as the process wherein a device’s,
object’s, or system’s technological principles are discovered by
analyzing its operation, function, and structure. It often refers to
detaching something, say- a software program, electronic equipment, or
mechanical device and carrying out the analysis of its workability in
detail. This is done in order to manufacture a new program or device
which performs the same function without doubling anything from
original.
Motivation: Reasons behind the emergence of reverse engineering include
interoperability, lost documentation which means loss or non-existence
of documentation of the concerned device, product analysis, security
auditing, exclusion of protection of copy, circumvention of
restrictions regarding access, and fraud.
‘Reverse Engineering’ of ‘mechanical devices’ : With the
ever-increasing popularity of CAD, ‘reverse engineering’ has proven
to be a blessing for creation of ‘3D virtual model’ of the on hand
physical part to be used in 3D CAE, CAM, CAD and many other soft wares.
The measuring of physical object can be done by making use of ‘#D
scanning technologies’ such as computed tomography, ‘structured
light digitizers’, laser scanners, and CMMs. The data that is
measured usually gets represented as ‘point cloud’. It is devoid of
topological information. That’s why, the processing and modelling
takes place into usable format like a ‘triangular faced mesh’, CAD
model, or a collection of surfaces of NURBS. Applications such as
Polyworks, Image ware, Geomagic, or Rapidform are used for processing
the ‘point clouds’ into the formats that can be used in
applications like 3D CAE, CAM, CAD or visualization.
‘Reverse Engineering’ of ‘software’ : The term ‘reverse
engineering’ differs from person to person when applied in terms of
software. As per the research conducted by Cross and Chikofsy, reverse
engineering can be referred to as the process that involves the
analysis of the subject system for creating its representation at the
higher level. This level might be called the ‘level of
abstraction’. As far as software is concerned, reverse engineering
can be described as an examination process only. There is no
modification from the software point of view. The use of ‘software
anti-tamper technology’ takes place in order to deter reengineering
and reverse engineering of the software-powered systems and proprietary
software.
Two major reverse engineering types exist in the present scenario. In
the first type, source code is available, but program’s greater level
aspects are poorly documented or invalidated. In the second type,
source code does not exist. Any efforts made in this direction would be
termed as ‘reverse engineering’. The 2nd use is that which majority
of people know. ‘Reverse Engineering of software’ is implied at
making use of ‘clean room design’ technique for avoiding infringing
copyrights. In today’s world, around 95% of reverse engineering
consists of ‘reverse engineering of software’.
On the other hand, ‘black box testing’ in ‘software
engineering’ has many similarities to reverse engineering. The tester
normally possesses the API. However, their main goal is to locate
undocumented features and bugs by smashing the products from the
outside. This process is used for customizing the embedded systems as
well.