Upload
aniravi21
View
217
Download
0
Embed Size (px)
Citation preview
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
1/19
C o n f i d e n t i a l
Unit-10 Re-engineering
1
Program : MCA
Semester :
Subject Code : MC 0084 (B)
Subject Name : Advanced Software Project Management
and Quality Assurance
Unit number : 10
Unit Title : Re-engineering
Lecture Number : 10
Lecture Title : Re-engineering
HOME NEXT
1
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
2/19
C o n f i d e n t i a l
Unit-10 Re-engineering
2
The objectives of this lecture are to:
define re-engineering
describe the growing problems of software maintenance
distinguish between redevelopment vs. re-engineering
explain business process re-engineering
explain software re-engineering process model
List the technical problem of re-engineering
define common terminologies of software re-engineering
HOME NEXTPREVIOUS
Objectives
2
Re-engineering
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
3/19
C o n f i d e n t i a l
Unit-10 Re-engineering
3
Lecture Outline
Introduction
Growing problems of software maintenance
Re-development or Re-engineering
Business Process Re-engineering
Software Re-engineering Process Model
Technical Problems of Re-engineering
Terminology of Software Re-engineering
Summary
Check Your Learning
Activity
3
HOME NEXTPREVIOUS
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
4/19
C o n f i d e n t i a l
Unit-10 Re-engineering
4
Re-engineering is a set of activities that are carried out to re-structure a
legacy system to a new system with better functionalities and conform to
the hardware and software quality constraint.
Legacy software (old method / technology) needs to be maintained even
though its quality, performance, reliability and maintainability are
deteriorating.Reasons for Re-engineering
Allow legacy software to quickly adapt to changing requirements.
Comply to new organisational standards
Upgrade to newer technologies / platforms / paradigms (e.g., object-
oriented).
Extend the softwares life expectancy.
Identify candidates for reuse
Improve software maintainability
4
Introduction
HOME NEXTPREVIOUS
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
5/19
C o n f i d e n t i a l
Unit-10 Re-engineering
5
5HOME NEXTPREVIOUS
Growing Problems of Maintaining Software
Software maintenance is the modification of a software product to
correct errors, improve or adapt to new requirements.
Software errors can be very expensive: The most expensive
software errors involved a single line of source code and cost their
respective organisations $1.6 billion, $900 million and $245 million.
Software maintenance is very costly: Maintenance costs (includingpersonnel and hardware / software usage fees) run as high as 50-80%
of the software life cycle resources or $30 billion a year in the United
States alone.
Maintenance personnel are getting scarce: Software maintenance
faces problems such as frequent failure rates, Complex design,
Unpredictable ripple effects, Unreliable or missing documentation and
Loss of experienced maintenance programmers.
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
6/19
C o n f i d e n t i a l
Unit-10 Re-engineering
6
Re-engineering problem become severe enough then redevelopment is
the traditional solution.
Following are the reasons not to prefer redevelopment:
o Critical corporate knowledge is contained within the legacy
software: If the legacy software has been in use for a long time in
an organisation, then it has most likely survived by providing acritical service.
o Legacy software is a valuable asset: According to some
estimates, software development runs about $8-20 per LOC.
o Reusable, re-engineered software costs much less than
redeveloped code: Estimates of reusing re-engineered software
is about $2-$5 per LOC.
6HOME NEXTPREVIOUS
Redevelopment Vs Re-engineering
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
7/19C o n f i d e n t i a l
Unit-10 Re-engineering
7
Business Process Re-engineering (BPR) is the fundamental rethinking
and radical redesign of business processes, to achieve dramatic
improvements in critical, contemporary measures of performance, such
as cost, quality, service and speed.
Legacy software was developed to support business functions within the
traditionally vertical organisation structure. Thus, organisations havesoftware to support marketing, manufacturing, etc.
Software re-engineering uses new tools and techniques to capture the
software design information and breaks up into functionally cohesive
chunks. These chunks are then analysed and regrouped around the
newly identified key business process.
7HOME NEXTPREVIOUS
Business Process Re-engineering
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
8/19C o n f i d e n t i a l
Unit-10 Re-engineering
8
Re-engineering takes time, costs significant amounts of money and
absorbs resources.
Re-engineering of information systems is an activity that will absorb
information technology resources for many years.
The steps of re-engineering are as represented in this following figure.
8HOME NEXTPREVIOUS
Software Re-engineering Process Model
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
9/19C o n f i d e n t i a l
Unit-10 Re-engineering
9
Every software organisation should have an inventory of all applications.
It is spreadsheet model containing information that provides a detailed
description (e.g., size, age, business criticality) of every active
application.
By sorting this information according to business criticality, longevity,
current maintainability and other locally important criteria, candidatesfor reengineering appear.
Resources can then be allocated to candidate applications for
reengineering work.
The status of applications can change as a function of time and as a
result, priorities for reengineering will shift.
9HOME NEXTPREVIOUS
Inventory Analysis
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
10/19C o n f i d e n t i a l
Unit-10 Re-engineering
10
Creating documentation is too time consuming. It is not possible to re-
create documentation for hundreds of computer programs.
Documentation must be updated, with the limited resources. A new
approach called document when touched is used. So that it may not
be necessary to fully re-document an application.
The system is business critical and must be fully re-documented. Asoftware organisation must choose the one that is most appropriate for
each case.
10HOME NEXTPREVIOUS
Document Restructuring
(Contd)
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
11/19C o n f i d e n t i a l
Unit-10 Re-engineering
11
Reverse engineering derives one or more design and manufacturing
specifications for a product by examining actual specimens of the
product.
Reverse engineering for software is the process of analysing a program
in an effort to create a representation of the program at a higher level of
abstraction than source code. Reverse engineering is a process of design recovery. Reverse
engineering tools extract data, architectural and procedural design
information from an existing program.
11HOME NEXTPREVIOUS
Reverse Engineering
(Contd)
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
12/19C o n f i d e n t i a l
Unit-10 Re-engineering
12
Some legacy systems have relatively solid program architecture, but
individual modules are coded in a way that is difficult to understand, test
and maintain.
In such cases, the code within the suspect modules can be restructured.
To accomplish this activity, the source code is analysed using a
restructuring tool. Violations 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.
12HOME NEXTPREVIOUS
Code Restructuring
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
13/19C o n f i d e n t i a l
Unit-10 Re-engineering
13
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.
When data structure is weak, the data are re-engineered.
Data architecture has a strong influence on program architecture. The algorithms that populate it, changes to the data will invariably result
in either architectural or code-level changes.
13HOME NEXTPREVIOUS
Data Restructuring
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
14/19C o n f i d e n t i a l
Unit-10 Re-engineering
14
In an ideal world, applications would be rebuilt using an automated re-
engineering engine.
The old program would be fed into the engine, analysed, restructured
and then regenerated in a form that exhibited the best aspects of
software quality.
CASE vendors have introduced tools that provide a limited subset ofthese capability-ties that addresses specific application domains (e.g.,
applications that are implemented using a specific database system).
14HOME NEXTPREVIOUS
Forward Engineering
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
15/19C o n f i d e n t i a l
Unit-10 Re-engineering
15
Mainframe-based organisations are interested in re-engineering face
downsizing / downloading of their software to run on these platforms.
An interface issue is introduced both for input to the tool and returning
its output to the production platform.
Re-engineering tools have a serious problem in handling software
written in multiple languages or with embedded macros, DBMS calls,etc.
Some re-engineering tools problem include significantly slower tool
response times, insufficient memory, downloading congestion and
difficulty in re-integrating different software modules.
Even the graphics will have problems displaying excessive design
information.
15HOME NEXTPREVIOUS
Technical Problems of Re-engineering
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
16/19C o n f i d e n t i a l
Unit-10 Re-engineering
16
16HOME NEXTPREVIOUS
Terminologies of Re-engineering
SystemEngineering The top level process of engineering a system to meet overallrequirements
Software Re-engineering
The combination of sub-processes such as reverse engineering,
restructuring, re-documentation, forward engineering and
retargeting
Reverseengineering
The engineering process of understanding, analysing and
abstracting the system to a new form at a higher abstraction level
Forwardengineering
The set of engineering activities that consume the products and
artifacts derived from legacy software and new requirements to
produce a new target system
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
17/19C o n f i d e n t i a l
Unit-10 Re-engineering
17
17
A set of activities that are carried out to re-structure a legacy
system to a new system with better functionalities andconform to the hardware and software quality constraint is
known as re-engineering.
Business Process Re-engineering (BPR) is the fundamental
rethinking and radical redesigning of business processes to
achieve dramatic improvements in critical, contemporarymeasures of performance, such as cost, quality, service and
speed.
Software maintenance is the modification of a software
product to correct errors and to improve or adapt to new
requirements. The steps of re-engineering are: Inventory analysis,
document restructuring, reverse engineering, code
restructuring, data restructuring and forward engineering.
Summary
HOME NEXTPREVIOUS
U it 10 R i i
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
18/19C o n f i d e n t i a l
Unit-10 Re-engineering
18
1. What is re-engineering?
Ans: Re-engineering is a set of activities that are carried out tore-structure a legacy system to a new system with better
functionalities and conform to the hardware and software
quality constraint.
2. List the steps involved in software re-engineering process
model.
Ans: 1. Inventory analysis
2. Document restructuring
3. Reverse engineering
4. Code restructuring
5. Data restructuring
6. Forward engineering
18
Check Your Learning
HOME NEXTPREVIOUS
U it 10 R i i
7/27/2019 MC0084(B)-Unit-10-PPT.pptx
19/19C f i d t i l
Unit-10 Re-engineering
19
Activity 1
Visit an organisation to find the growing problems for
maintaining software.
19
Activity
HOMEPREVIOUS