Software re engineering

22
SOFTWARE RE-ENGINEERING UNDER THE GUIDANCE OF PROF R.B.HANJI BY: ` ABHILASH .A.M ABHILASH SHET AKSHAY KUMAR A SEMINAR ON THE TOPIC 1

description

A basic presentation on Software Re-engineering.

Transcript of Software re engineering

Page 1: Software re engineering

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

Page 2: Software re engineering

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.

Page 3: Software re engineering

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.

Page 4: Software re engineering

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.

Page 5: Software re engineering

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.

Page 6: Software re engineering

6

STEPS INVOLVED IN SOFTWARE RE-ENGINEERING

1) Source code translation2) Reverse Engineering3) Program structure improvement4) Program modularisation5) Data re-engineering

Page 7: Software 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

Page 8: Software re engineering

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

Page 9: Software re engineering

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

Page 10: Software 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

Page 11: Software re engineering

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.

Page 12: Software re engineering

12

DIAGRAMMATIC REPRESENTATION:

Program to be restructured

Analyser and graph builder

Program generator

Restructured program

Graph representation

Page 13: Software re engineering

13

Problems with automatic program restructuring include:

1) Loss of comments2) Loss of documentation 3) Heavy computational demands

Page 14: Software re engineering

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

Page 15: Software re engineering

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.

Page 16: Software re engineering

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.

Page 17: Software re engineering

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

Page 18: Software re engineering

18

OVERVIEW Software Re-engineering its needs advantages. Steps involved in Software re-

engineering.

Page 19: 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

Page 20: Software 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.

Page 21: Software re engineering

21

REFERENCES Ian Sommerville- Software Engineering,

sixth edition, Pearson Education Bruce R. Maxim- Software

Reengineering ppt, CIS 376, UM-Dearborn

Page 22: Software re engineering

22

THANK YOU