0% found this document useful (0 votes)
18 views8 pages

SE, Unit 4, Software Maintenance

Uploaded by

Abhinav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views8 pages

SE, Unit 4, Software Maintenance

Uploaded by

Abhinav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

10.1.

INTRODUCTION OF RE-ENGINEERING
Re-engineering means to re-implementing
systems to make more maintainable. In re-
engineering the functionality and architecture
ofthe systems remains the same but it includes
redocumenting, organizing, modifying and
updatingthe system.Re-engineering essentially
means having a re-look on an entity such as
process, task, design approach or strategy using
engineering principles to bring in radical and
dramatic improvement. The re-look is
multidimensional and is taken by specialists in
different fields. When re-engineering principles
are applied to business process then it is called
Business process Re-engineering (BRR).

10.2. STEPS IN RE-ENGINEERING


The steps involved in re-engineering are:
1. Goal setting
2. Critical analysis of existing scenario such
as process, task, design, methods etc.
3. Identifying the problems and solving
them by new innovative thinking.
In other words re-engineering means to use
new
technology to gaina significant breakcould
through
improvement The new technology
from engineering, electronics
be
rom or information

technologgy and the solution often involves


measures such as mechanization, automotion and
computerization. 295
10.3 RE-ENGINEERING PROCESS
The input to the process is a le
Figure 10.1 shows a possible re-engineering process.
modularized version of the same program
legacy
program and the output is a structured,
Program
Documentation
Reverse
Engineering

Original Source Code Program


Translation Modularization
Program
Program
Structure Structured
Improvement
Program

Data Modularized
Re-engineering Re-engineering
Data Program

Original
Data

Fig. 10.1

Re-engineering T "ocess includes the following activities:


1. Source code translation: Here we convert old program into the modern version of
the same language or to a new language.
2. Reverse Engineering: In it, program is analyzed and important and useful
information's are extracted from it which helps to document its functionality.
3. Program Structure Improvement: In it, control structure of the program is analyzed
and modified to make it eaiser to read and understand.
4. Program Modularization: In it, redundancy is removed and related parts are grouped
together.
5. Data Re-engineering: In this data processed by the program is change to reflect
program changes.
10,5SOFTWARE RE-ENGINEERING PROCESS MODEL
Re-engineering is a rebuilding activity. Software re-engineering process model defines six
activities, shown in figure.

Forward Inventory
Analysis
Engineering9

Data Document
Restructuring Restructuring

Code Reverse
Restructuring Engineering

Fig. 10.2

Inventory Analysis The inventory


softwareorganization should have an inventory of all applications.
Every model containinginformation that provides a
detailed
can be nothing more than a spreadsheet sorting this
size, age, business criticality) of every active application. By
description (e.g., current maintainability, and
other
criticality, durability,
information accordingto business then be allocated
candidates for re-engineering appear. Resources can
locally important criteria,
work.It is important to note that the inventory
re-engineering
to candidate applications for
should be revisited on a regular
cycle.
Document Restructuring
many legacy systems. But what do we do about
Weak documentation is the trademark of

it? The options are: f the system works we'll live


time consuming.
1. Creating documentation is far too It is not possible to
correct approach.
cases, this is the
with what we have. In some
hundreds of computer programs.
documentation for
re-create
e'll use aa "docun
resources. We'l "doe
DOCumentation must be updated, butwe havelimited
when touched" approach. It may not be necessary to fully redocument an applicat
Rather, thoseOver t
portions of the system that are currently hange are.
undergoing change
currently undergoing are fu
documented. time, a collection of useful and relevant documentationthis willcase,an
y
3. The system is business.critical and must be fully redocumented-Even in this case evolve
to an essential minimum. an
intelligent approach is to prepare documentation
Each of these options is viable. A software organization must choose the one thatis
is most
appropriate for each case.
Reverse Engineering
Reverse engineering for software is the process of analyzing a program in an effort
eate a representation of the program at a higher levl ofabstraction than sou etoto
code
Reverse engineering is a process of design recovery. Reverse engineering tools extract data
architectural, and procedural design information from an existing program. ata,
Code Restructuring
The most common type of re-engineering is code restructuring. Some legacy svston
stems
have relativelysolid programarchitecture, but individualmodules werecodedin awayt
makes them dif+cultto understand,test, and maintain.in such cases, the code withinthe
suspect modules can be restructured. To accomplish this activity, the sourcecode is analyzer
using a restructuring tool. Víolations of structured programming constructs are noted and
code is then restructured. The resultant restructured code is reviewed and tested to ensure
that no anomalies have been introduced. Internal code documentation
is updated.
Data Restructuring
A program with weak data architecture will be difficult to adapt and enhance. Unlike
code restructuring, which occurs at relatively low level of abstraction, data structuring is a
full-scale re-engineering activity. In most cases,
data restructuring begins with a reverse
engineering activity. Data objects and attributes are identified, and existing data structures
are reviewed for
quality.
Forward Engineering
Forward engineering, also called renovation or reclamation, not only
information from existing software, but uses this information to alter or recovers desIgu
existing system in an effort to improve its overall quality, In most reconstitute tned
the existing system and also adds newre-eenginee
software re-implements the function of cases,
functions aand
or
improves overall performance.
10.6 FACTORS AFFECTING RE-ENGINEERING
T COSTS
Factors that affect re-engineering costs
include:
1. Quality of
Software to be
the quality and the cost of Re-engineered: There is the inverse relationsnip
etween

the software.
2. Tools Available for
system unless you Re-engineering: It is not cost effective to re-engineer a
can use
ftware

CASE tools automate most of the program o


to
3. Availability of Expert Staff: The the
re-engineering staff is not the sa
maintaining staft, and this will increase
costs.
of Data Conversion Required: There
ant
is a direct
4
4lume
volume of data to be converted and the cost of
of dati
the software.
relationship between the
10.7AD ANTAGES AND DISADVANTAGES OF RE-ENGINERING
Advantages

Lower Costs: Evidence from a number of projects


existing system costs suggests that re-engineering ana
significantly less than new system development.
. Lower Risks: Re-engineering is based on
rather than radical system replacement. The riskincremental improvement of systems,
of
which may be embedded in a legacy system, or of losing critical business knowledge,
meet its users' real needs, is producing a system that does not
drastically reduced.
Better Use of Existing Staff:
Existing staff expertise can be maintained, and extended
accommodate new skills during
re-engineering. The incremental nature of re
engineering means that existing staff skills can evolved as the system evolves. The
approach carries less risk and expense, which is associated with
Revelation of Business Rules: As a
hiring new staff.
are embedded in the
system is re-engineered, business rules that
system are rediscovered. This is particularly true where the
rules govern exceptional situations.
Incremental Development: Re-engineering can be carried out in
and resources are available. The stages, as budget
operational
system, and end users are able to gradually adaptorganization always has a working
to the re-engineered as it is delivered
in increments.

Disadvantages
Practical limits to the extent of
re-engineering
Major architectural changes or radical reorganizing of the system data
has to be done manually. management
Re-engineered system is not likely to be as maintainable as a new system developed
using modern software engineering methods.
(UPTU, B. Tech., 2009-10)
105 SOFTWARE REVERSE ENGINEERING
Software reverse engineering is the process of recovering the design and the requirements
specifications of a product from an analysis of its code. Thus, reverse engineering is any
the software
activity that improves one's understanding of software, prepares or improves
the purpose of
itself, usually for increased maintainability, resuability or evolvability. So,
reverse engineering is to facilitate maintenance work by improving
the understandability of
a system and to produce the necessary document for a legacy system.
Reverse has been defined by Arnold as a two-step process of information extraction
engineering
followed by information abstraction.
1. The first step analyses the subject system to identify its components and their inter
relationships.
another form
2. The second step creates the representations of the system in or at a

higher abstraction level.


A new three step approach to reverse engineering was advocated by Scott Tilley in
1995 as fo!lows:
1. Model: Construct domain-specific models of the application using conceptual modelling
techniques.
data from the system using the appropriate extraction
2. Extract: Gather the raw

mechanisms.
and permit
3. Abstract: Create abstractions that facilitate program understanding
information structures.
the navigation, analysis and presentation of the resultant
10.12 REVERSE ENGINEERING PROCESS
The reverse engineering process is shown in Fig. 10.3. The process starts with an analysis
phase. During this phase, the system is analyzed using automated tools to discover its structure.
They add information to this, which they have collected by understanding the system. This
information is maintained as a dir cted graph that is linked to the program source code.
I
Dirty Source Code

Restructure
Code

Processing
Clean Source Code

Extract Interface
Abstractions

Initial Specification
Database

Refine and
Simplify

Final Specification

Fig 10.3
Information store browsers are used to compare the graph structure and the codae and to
with extra information. Documents of
various types, such as Dr
annotate the graph
and data structure diagrams
om the diM
and traceability matrices can be generated from ected program
entities in the system are defined and referoe
graph. Traceability matrices show where ferenced.
Automated Programstructure
Analysis Dlagran
System to be System Document Data-structure
re-engineered Information Generation Diagram
Manual Traceabi
Annotation Matice
Fig. 10.4

In Fig. 10.3, initially the dirty source code or unstructured source code is taken and
processed and the code is restructured. After restructuring process the source code becomes
clean.
In extract abstraction activity, the engineer must evaluate older programs and extract
information about procedures interfaces, data structures or data bases used.
The output of reverse engineering process is a clear, unambiguous final specification
obtained from unstructured source code. This final specification helps in easy understanding
of source code.

You might also like