Software Re-Engineering
Software Re-Engineering
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.
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
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
Reverse
engineering
Program
structure
improvement