You are on page 1of 22

A SEMINAR ON THE TOPIC

UNDER THE GUIDANCE OF

PROF R.B.HANJI
BY:
` ABHILASH .A.M
ABHILASH SHET
AKSHAY KUMAR
AMRUT DESHPANDE
1
 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
 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
 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
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
1) Source code translation
2) Reverse Engineering
3) Program structure improvement
4) Program modularisation
5) Data re-engineering

6
 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
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
 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
Program
structure
diagrams
Automated
analysis

System
System to be Document Data structure
Information
re-engineered generation diagrams
Store

Manual
annotation
Traceability
matrices

10
 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
Program to be
Restructured
restructured program

Analyser and Program


graph builder generator

Graph representation

12
Problems with automatic program
restructuring include:
1) Loss of comments
2) Loss of documentation
3) Heavy computational demands

13
 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
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
 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
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
 Software Re-engineering
 its needs
 advantages.
 Steps involved in Software re-engineering.

18
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
 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
Ian Sommerville- Software Engineering, sixth
edition, Pearson Education
 Bruce R. Maxim- Software Reengineering
ppt, CIS 376, UM-Dearborn

21
22

You might also like