MC0084(B)-Unit-10-PPT.pptx

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