You are on page 1of 22

Members:-

 Swasti – 17BCE10003
 Rashi – 17BCE10044
 Nupur – 17BCE10055
 Pushpojit – 17BCE10088
 Divyanshu – 17BCE10127
 Sanidhya – 17BCE10111
 Khusiyal – 17BCE10164
 It is a process of software development which is
done to improve the maintainability of a software
system.

 Technical Definition: Software Re- engineering is


the examination and alteration of a system to
reconstitute it in a new form.

 This process encompasses a combination of sub-


processes such as reverse engineering,
restructuring, redocumentation, forward
engineering, and retargeting.
 It is sometimes a cost-effective option for
software system evolution.
 Applicable when some (but not all) subsystems of a
larger system require frequent maintenance.

 It involves putting in the effort to make it easier to


maintain.
 Legacy systems are the old software systems
which are essential for business process support.

 Software re-engineering is concerned with re-


implementing legacy systems to make them more
maintainable. It may be the only viable way to
ensure that legacy systems can continue in
service.
Re-engineering a software system has two key
advantages:

 Reduced risk: As the software is already


existing, the risk is less as compared to
developing a new software.

 Reduced cost: The cost of re-engineering is


significantly less than the costs of developing a
new software.
 Source code translation
 Reverse Engineering
 Program structure improvement
 Program modularisation
 Data re-engineering
 It is a process of translating a source code from
one programming language to another.

 The translated language may be an updated


version of the original language or a completely
different language.

 Necessity of Source-level translation:


1.Hardware platform update 2.Staff skill
shortages 3.Organisational policy changes
4.Lack of software support
System to be System to be Re-
Re- Re- Engineered
Engineered Engineered System

Identify the Design Automaticall Manually


code translator y translate translate
differences instructions code code
 It is the process of analysing software with the
objective of recovering its design and
specification.

 The program itself is unchanged by the


reverse engineering process.

 The software source code is usually available as the


input.

 Reverse Engineering is not the same as Re-


engineering
Program
structure
diagrams
Automated
analysis

System
System to be Document Data structure
Inform generation diagrams
re-engineered
ation
Store
Manual
annotation
Traceability
matrices
 It is the process of improving the structure of
the program to optimise memory use and the
lack of understanding of s/w engineering.
 Typically, programs develop this complex
logic structure as they are modified during
maintenance.
 New conditions and associated actions are
added without changing the existing control
structure.
Program to be
Restructured
restructured program

Analyser and Program


graph builder generator

Graph representation
1) Loss of comments
2) Loss of documentation
3) Heavy computational demands
 It is the process of reorganizing a program so
that related program parts are collected
together and considered as a single module.
 Different types of modules may be created:
1.Data abstractions
2.Hardware modules
3.Functional modules
4.Process support modules
 Data abstractions collect together data and
associated processing and are resilient to change.
 Steps in converting global data areas to
abstract data types:
1. Analyse common data areas to identify logical data
abstractions.
2. Create an abstract data type for each of these
abstractions.
3. Use a program browsing system/cross reference
generator to find all references to the data.
 Practically difficult and time-consuming,but
straightforward.
 It is the process of analysing and reorganising
data structures in a system to make it more
understandable.
 Why do we have to modify data and
programs in a legacy system ?
1. Data degradation
2. Inherent limits that are built into the
programs
3. Architectural evolution
 Expensive and time-consuming process.
PROGRAM TO BE RE-ENGINEERED Data analysis

Entity name Data


modification reformatting

Literal Default value Data


Data replacement conversion conversion
analysis
Data definition Validation rule
reordering modification

Stage 1 Stage 2 Stage 3

Change summary tables Modified data


 Software Re-engineering
 its needs
 advantages.
 Steps involved in Software re-engineering.
Program Modularised
Original program Original data
documentation program

Reverse
engineering

Source code Program Data


translation modularisation re-engineering

Program
structure
improvement

Structured Re-engineered data


program
 Software re-engineering is a cost-effective
option for software system evolution.
 Software re-engineering consists of a
combination of many sub-processes.
 Data re-engineering is different from
software re-engineering.
 Data re-engineering is an expensive and time
consuming process.
 Ian Sommerville- Software Engineering, sixth
edition, Pearson Education
 Bruce R. Maxim- Software Reengineering
ppt, CIS 376, UM-Dearborn
22

You might also like