software re engineering
DESCRIPTION
A basic presentation on Software Re-engineering.TRANSCRIPT
1
SOFTWARE RE-ENGINEERING
UNDER THE GUIDANCE OF
PROF R.B.HANJI BY:
` ABHILASH .A.M
ABHILASH SHET
AKSHAY KUMAR
AMRUT DESHPANDE
A SEMINAR ON THE TOPIC
2
WHAT IS SOFTWARE RE-ENGINEERING 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.
3
WHY DO WE NEED SOFTWARE RE-ENGINEERING 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.
4
SOFTWARE RE-ENGINEERING AND LEGACY SYSTEMS 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.
5
ADVANTAGES OF SOFTWARE RE-ENGINEERING
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.
6
STEPS INVOLVED IN SOFTWARE RE-ENGINEERING
1) Source code translation2) Reverse Engineering3) Program structure improvement4) Program modularisation5) Data re-engineering
7
1)SOURCE CODE TRANSLATION 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
8
DIAGRAMMATIC REPRESENTATION:
System to be re-
engineered
Identify source code
differences
Design translator
instructions
Automatically translate
code
Manually translate
code
System to be re-engineered
Re-engineered
System
9
2)REVERSE ENGINEERING 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
10
DIAGRAMMATIC REPRESENTATION:
System to be re-engineered
Automated analysis
Manual annotatio
n
System Information
Store
Document
generation
Data structure diagrams
Program structure diagrams
Traceability matrices
11
3)PROGRAM STRUCURE IMPROVEMENT 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.
12
DIAGRAMMATIC REPRESENTATION:
Program to be restructured
Analyser and graph builder
Program generator
Restructured program
Graph representation
13
Problems with automatic program restructuring include:
1) Loss of comments2) Loss of documentation 3) Heavy computational demands
14
4)PROGRAM MODULARISATION 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 abstractions2.Hardware modules3.Functional modules4.Process support modules
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.
16
5)DATA RE-ENGINEERING 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 degradation2.Inherent limits that are built into
the programs3.Architectural evolution
Expensive and time-consuming process.
17
DIAGRAMMATIC REPRESENTATION:
Stage 1 Stage 2 Stage 3
Entity name modification
Literal replacement
Data definition reordering
Data reformatting
Default value conversion
Validation rule modification
Program to be re-engineered
Change summary tables
Data analysis
Modified data
Data analysis
Data conversio
n
18
OVERVIEW Software Re-engineering its needs advantages. Steps involved in Software re-
engineering.
19
Overall Software re-engineering process can be shown as :
Original program
Program documentation
Modularised program
Original data
Structured program
Re-engineered data
Source code
translation
Reverse engineering
Program structure
improvement
Program modularisatio
n
Data re-
engineering
20
CONCLUSION 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.
21
REFERENCES Ian Sommerville- Software Engineering,
sixth edition, Pearson Education Bruce R. Maxim- Software
Reengineering ppt, CIS 376, UM-Dearborn
22
THANK YOU