1. A SEMINAR ON THE TOPIC
UNDER THE GUIDANCE OF
PROF R.B.HANJI
BY:
` ABHILASH .A.M
ABHILASH SHET
AKSHAY KUMAR
AMRUT DESHPANDE
1
2. 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.
2
3. 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.
3
4. 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.
4
5. 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.
5
6. 1) Source code translation
2) Reverse Engineering
3) Program structure improvement
4) Program modularisation
5) Data re-engineering
6
7. 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
7
8. System to be System to be Re-engineered
re-engineered re-engineered
System
Identify
source Design Automatically Manually
code translator translate translate
differences instructions code code
8
9. 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
9
10. Program
structure
diagrams
Automated
analysis
System
System to be Document Data structure
Information
re-engineered generation diagrams
Store
Manual
annotation
Traceability
matrices
10
11. 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.
11
12. Program to be
Restructured
restructured program
Analyser and Program
graph builder generator
Graph representation
12
13. Problems with automatic program
restructuring include:
1) Loss of comments
2) Loss of documentation
3) Heavy computational demands
13
14. 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
14
15. Recovering Data Abstraction:
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.
15
16. 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.
16
17. 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
17
19. Overall Software re-engineering process can be
shown as :
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
19
20. 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.
20
21. Ian Sommerville- Software Engineering, sixth
edition, Pearson Education
Bruce R. Maxim- Software Reengineering
ppt, CIS 376, UM-Dearborn
21