Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 44

SUBJECT:

SOFTWARE ENGINEERING

Reverse Engineering

INSTRUCTOR: NGUYEN THI THANH


SLIDESMANIA.CO
SLIDESMANIA.CO
MEMBER

Trần Văn Hào – 2191665


Hồ Văn Hiền – 2196193
Hoàng Văn Huân – 2191786
SLIDESMANIA.CO
SLIDESMANIA
Content
I. What is Reverse Engineering (RE)?
II. Why do we need Reverse Engineering?
III. Approaches: Restructuring, Reengineering
SLIDESMANIA.CO
SLIDESMANIA
What is Reverse Engineering (RE)?

● Software Reverse Engineering is a process of recovering the design, requirement


specifications, and functions of a product from an analysis of its code. It builds a
program database and generates information from this.
● The purpose of reverse engineering is to facilitate maintenance work by improving the
understandability of a system and producing the necessary documents for a legacy
system.
● Reverse engineering is applicable in the fields of computer engineering, mechanical
engineering, design, electronic engineering, software engineering, chemical engineering,
and systems biology.
SLIDESMANIA.CO
SLIDESMANIA
Reverse Engineering Goals:
1. Cope with Complexity.
2. Recover lost information.
3. Detect side effects.
4. Synthesise higher
abstraction.
5. Facilitate Reuse.
M
SLIDESMANIA.CO
SLIDESMANIA.CO
Steps of Software Reverse Engineering:

1. Collection Information:

This step focuses on collecting all possible


information (i.e., source design documents,
etc.) about the software.
SLIDESMANIA.CO
SLIDESMANIA
2. Examining the information:
The information collected in step-1 as
studied so as to get familiar with the
system.
SLIDESMANIA.CO
SLIDESMANIA
3.Extracting the structure:
This step concerns with identification
of program structure in the form of
structure chart where each node
corresponds to some routine.
SLIDESMANIA.CO
SLIDESMANIA
4.Recording the functionality:
During this step processing
details of each module of the
structure, charts are recorded
using structured language like
decision table, etc.
SLIDESMANIA.CO
SLIDESMANIA
5.Recording data flow:
From the information exA
tracted in step-3 and step-4, set
of data flow diagrams are
derived to show the flow of data
among the processes.
SLIDESMANIA.CO
SLIDESMANIA
6.Recording control flow:
High level control structure of the software is recorded.
SLIDESMANIA.CO
SLIDESMANIA
7. Review extracted design:
Design document extracted is
reviewed several times to ensure
consistency and correctness. It also
ensures that the design represents
the program
SLIDESMANIA.CO
SLIDESMANIA
8. Generate documentation:
Finally, in this step, the complete
documentation including SRS, design
document, history, overview, etc. are
recorded for future use.
SLIDESMANIA.CO
SLIDESMANIA
1.
II. Why do we
Exploring existing designs and maneuvers
need Reverse Engineering?
2. Reconstructing a product that is outdated

3. Discovering any product vulnerabilities

4. Bringing less expensive & more efficient products to the


market

5. Creating a reliable CAD model for future reference


SLIDESMANIA.CO

6. Inspiring creative minds with old ideas


SLIDESMANIA
1. Exploring existing designs and
maneuvers
Reverse engineering allows us to
see what already exists. This
includes any parts, structures, or
processes that could benefit
communities in other ways.
Examining current products leads
to innovation and discovery, all
SLIDESMANIA.CO

thanks to reverse engineering.


SLIDESMANIA
2. Reconstructing a product that is
outdated
A key part of redesigning an
existing product is understanding
the product itself. Reverse
engineering provides the visual to
work out outdated kinks in an older
system. Quality is the most
important aspect of this process.
SLIDESMANIA.CO
SLIDESMANIA
3. Discovering any product
vulnerabilities
Similar to the previous step, reverse
engineering supports finding faults in
the product. This is to ensure the
safety and well-being of the product’s
users. It is best for an issue to arise
during the research phase rather than
the distribution phase.
SLIDESMANIA.CO
SLIDESMANIA
4. Bringing less expensive & more
efficient products to the market
Reverse engineering’s main goal is
to lead engineers on a path towards
innovation and success.
Succeeding includes lowering
manufacturing costs and raising
product effectiveness as much as
possible.
SLIDESMANIA.CO
SLIDESMANIA
5. Creating a reliable CAD model for
future reference
Most reverse engineering processes
include a full-working CAD file for
future references. A CAD file is created
so the part can be examined digitally if
future issues arise. This form of
technology has enhanced engineering
productivity and product expression.
SLIDESMANIA.CO
SLIDESMANIA
6. Inspiring creative minds with old
ideas
Lastly, reverse engineering gives
way for innovative design. During
the process, an engineer might
discover a system that could be
useful for a completely different
project. This shows how
engineering connects projects with
SLIDESMANIA.CO

previous knowledge.
SLIDESMANIA
Q&A
SLIDESMANIA.CO
SLIDESMANIA
Approaches: Restructuring
and Reengineering
SLIDESMANIA.CO
SLIDESMANIA

This is where you section ends. Duplicate this set of slides as many times you need to go over all your sections.
Restructuring
SLIDESMANIA.CO
SLIDESMANIA
Restructuring
● Sofware restructuring modifies: source code and/or data in an effort to make it
amenable to future changes.
● In general, restructuring does not modify the overall program architecture. It tends
to focus on the:
- Design details off individual modules
- On local data structures defined within modules
● Restructuring occures when the basic architecture of an application is solid, even
though technical internals need work. It is initiated when major parts of the
software are serviceable and only a subset of all modules and data need extensive
modification.
SLIDESMANIA.CO
SLIDESMANIA
Code restructuring
● Code restructuring is performed to yield a design that produces the same function but with higher
quality than the original program.

● Code restructuring source code is analyzed using a restructuring tool

● Poorly design code segments are redesigned

● Violations of structured programming constructs are noted and code is then restructured(this can be
done automatically)

● The resultant restructured code is reviewed and tested to ensure that no anomalues have been
introduced internal code documentation is updated.
SLIDESMANIA.CO
SLIDESMANIA
Data restructuring
1/Data analysis:

Before data restructuring can begin, a reverse engineering activity called analysis of source code must be
conducted.

2/Data redesign in its simplest form:

• Standardization: a data record standardization step clarifies data difinitions to achieve consistency among data
item names or physical record formats within an existing data structure or file format

• Rationalization, ensures that all data naming conventions conform to local standards and that aliases are
eliminated as data flow through the system
SLIDESMANIA.CO
SLIDESMANIA

When restructuring moves eyond standardization and rationalization, physical modfications to existing data
strcutures are made to make the data design more effective
What are the benefits of
restructuring?
Restructuring can provide the following benefits:
• Makes the code easier to understand and read because the goal is to simplify code and reduce complexities.
• Improves maintainability and makes it easier to spot bugs or make further changes.
• Encourages a more in-depth understanding of code. Developers have to think further about how their code
will mix with code already in the code base.
• Focus remains only on functionality. Not changing the code's original functionality ensures the original
project does not lose scope
SLIDESMANIA.CO
SLIDESMANIA
Q&A
SLIDESMANIA.CO
SLIDESMANIA
Reengineering
SLIDESMANIA.CO
SLIDESMANIA
a. What is SoftwareReengineering?
Re-engineering is the
reorganizing and modifying
existing software systems to make
them more maintainable.

Software Re-engineering is a
process of software development
which is done to improve the
maintainability of a software
system.
SLIDESMANIA.CO
SLIDESMANIA
b. The need of software Re-engineering

- The software system fails frequently.


- Ageing of the software has an effect on its
performance.
- The outdated technology used in the
software product leads to adverse cost
implications.
- Economical process for software
development and quality enhancement of the
product.
SLIDESMANIA.CO
SLIDESMANIA
c. Objectives

- To describe a cost-effective option for system evolution.


- To describe the activities involved in the software
maintenance process.
- To distinguish between software and data re-engineering and
to explain the problems of data re-engineering.
SLIDESMANIA.CO
SLIDESMANIA
d. Software Reengineering Process Model:
SLIDESMANIA.CO
SLIDESMANIA
Inventory Analysis
- A spreadsheet model containing
information that provides a detailed
description of every active application.
- Sorting this information according to
business criticality, longevity, current
maintainability and other local important
criteria, helps to identify reengineering
candidates.
- The resource can then be allocated to a
candidate application for re-engineering
work.
SLIDESMANIA.CO
SLIDESMANIA
Document reconstructing
- Documentation of a system either explains how it
operates or how to use it.
- Documentation must be updated
- It may not be necessary to fully document an
application. Rather, those portions of the system
that are currently undergoing change are fully
documented
- The system is business-critical and must be fully
re-documented.
SLIDESMANIA.CO
SLIDESMANIA
Reverse Engineering
- In reverse engineering the software is
disintegrated or disassembled into parts and
components for understanding its design,
architecture and application from all respects.
- Take the software further for major
improvements. In reverse engineering the
software is analyzed by breaking it down for
suggesting improvements.
- The reverse engineering process reveals
problems, difficulties and areas of
improvements by using better technology,
design, methods and tools.
SLIDESMANIA.CO
SLIDESMANIA
Code Reconstructing

- The source code is analyzed using a


restructuring tool.
- Violations of structured programming
constructs are noted and code is then
restructured.
- The resultant restructured code is
reviewed and tested to ensure that no
anomalies have been introduced.
- Internal code documentation is updated.
SLIDESMANIA.CO
SLIDESMANIA
Data Restructuring
- Changes to the data will invariably
result in either architectural or code-
level changes
- Data restructuring begins with a
reverse engineering activity full
reverse engineering.
- Current data architecture is dissected,
and the necessary data models are
defined.
- Data objects and attributes are
identified, and existing data structure
SLIDESMANIA.CO
SLIDESMANIA

are reviewed for quality.


Forward Engineering

- Forward Engineering also called as renovation


or reclamation not only for recovers design
information from existing software but uses
this information to alter or reconstitute the
existing system in an effort to improve its
overall quality such as performance, recovery,
reliability, etc
SLIDESMANIA.CO
SLIDESMANIA
d. Advantages
- Reduced Risk: As the software is already
existing, the risk is less as compared to
new software development.
- Reduced Cost: The cost of re-
engineering is less than the costs of
developing new software.
- Boost up productivity: Software
reengineering increase productivity by
optimizing the code and database so that
processing gets faster.
SLIDESMANIA.CO
SLIDESMANIA
e. Disadvantages
- Practical limits to the extent of re-
engineering.
- Major architectural changes or
radical reorganizing of the systems
data management has to be done
manually.
- Re-engineered system is not likely
to be as maintainable as a new
system developed using modern
software Re-engineering methods.
SLIDESMANIA.CO
SLIDESMANIA
Q&A
SLIDESMANIA.CO
SLIDESMANIA
Do you have any questions?
SLIDESMANIA.CO
SLIDESMANIA
References
● https://www.geeksforgeeks.org/software-engineering-reverse-engineering/
● https://www.geeksforgeeks.org/software-engineering-re-engineering/?
https://www.cedarvilleeng.com/news-and-insights/blog/6-benefits-of-reverse-engineerin
g/
● https://searchsoftwarequality.techtarget.com/definition/reverse-engineering
● https://www.sphinxworldbiz.com/blog/the-6-advantages-of-reverse-engineering/
● https://www.1000sourcecodes.com/2012/05/software-engineering-restructoring.html
● https://www.1000sourcecodes.com/2012/05/software-engineering-software-re.html
SLIDESMANIA.CO
SLIDESMANIA

You might also like