Sie sind auf Seite 1von 29

Prepared By: Chauhan Dharmik L. 090130116049 5th I.T.

1
Software re-engineering

What is Software re-engineering ?

Software re-engineering

Software re-engineering
3

Software Re-engineering is the examination, analysis and alteration of an existing software system to reconstitute it in a new form, and the subsequent implementation of the new form.

Software re-engineering

Objectives
4

To explain why software re-engineering is a cost-effective option for system evolution To describe the activities involved in the software re-engineering process To distinguish between software and data reengineering and to explain the problems of data re-engineering

Software re-engineering

Topics covered
5

Software Maintenance Source code translation Reverse engineering Program structure improvement Program modularisation

Software re-engineering

Why Software re-engineering ?

Software re-engineering

Software Maintenance
7

Adaptive maintenance: Changes are made in response to changes in the environment the product operates Corrective maintenance: Changes are made for the removal of faults, leaving the specifications unchanged Perfective maintenance: Changes are made for the improvement of product effectiveness (e.g., additional functionality, decreased response time) re-engineering Software

Software Maintenance
8

Classification

Software re-engineering

Software Maintenance
9

Software re-engineering

Software Maintenance
10

Why is Software Maintenance Expensive?

Costs can be high because:


Maintenance staff are often inexperienced and unfamiliar with the application domain Programs being maintained may have been developed without modern techniques; they may be unstructured, or optimized for efficiency, not maintainability Changes may introduce new faults, which trigger further changes As a system is changed, its structure tends to degrade, which makes it harder to change With time, documentation may no longer reflect the implementation
Software re-engineering

Why Reengineering?
11

Pros:

Reengineering can help build on existing software than embarking on a high risk re-implementation Reengineering can help reduce maintenance costs Reengineering can help evaluate software assets Reengineering can help integrate strategic legacy applications with new software packages

Software re-engineering

Why Reengineering?
12

Cons:
Reengineering projects if not carefully planned and technically justified can be very high risk projects Technical and business success criteria often are not in alignment There are not generic success criteria for a reengineering project

Software re-engineering

When to re-engineer
13

When system changes are mostly confined to part of the system then re-engineer that part When hardware or software support becomes obsolete When tools to support re-structuring are available

Software re-engineering

System re-engineering
14

Re-structuring or re-writing part or all of a legacy system without changing its functionality Applicable where some but not all subsystems of a larger system require frequent maintenance Re-engineering involves adding effort to make them easier to maintain. The system may be re-structured and re-documented
Software re-engineering

Definition
15

Forward Engineering is the traditional process of moving from high-level abstractions and logical, implementation independent designs to the physical implementation of a system. Reverse Engineering is the process of analyzing a subject system to

identify the systems components and their interrelationships and create representations of the system in another form or at a higher level of abstraction.

Reengineering ... is the examination and alteration of a subject system to reconstitute it in a new form and the subsequent implementation of the new form.
Software re-engineering

Forward engineering and reengineering


16

System specification Forward engineering Existing software system Software re-engineering

Design and implementation

Ne w system

Understanding and transformation

Re-engineered system

Software re-engineering

Source code translation


17

Involves converting the code from one language (or language version) to another e.g. FORTRAN to C May be necessary because of:
Hardware platform update Staff skill shortages Organisational policy changes

Only realistic if an automatic translator is available


Software re-engineering

18

The program translation process

System to be re-engineered

System to be re-engineered

Re-engineered system

Identify source code differences

Design translator instructions

Automatically transla te code

Manually transla te code

Software re-engineering

Reverse and Reengineering


19

Software re-engineering

Reverse engineering
20

Analysing software with a view to understanding its design and specification May be part of a re-engineering process but may also be used to re-specify a system for reimplementation Builds a program data base and generates information from this Program understanding tools (browsers, crossreference generators, etc.) may be used in this process
Software re-engineering

Reverse engineering
21

Reverse engineering often precedes reengineering but is sometimes worthwhile in its own right
The design and specification of a system may be reverse engineered so that they can be an input to the requirements specification process for the systems replacement The design and specification may be reverse engineered to support program maintenance

Software re-engineering

Program structure improvement


22

Maintenance tends to corrupt the structure of a program. It becomes harder and harder to understand The program may be automatically restructured to remove unconditional branches Conditions may be simplified to make them more readable

Software re-engineering

Program modularisation
23

The process of re-organising a program so that related program parts are collected together in a single module Usually a manual process that is carried out by program inspection and re-organisation

Software re-engineering

Data re-engineering
24

Involves analysing and reorganising the data structures (and sometimes the data values) in a program May be part of the process of migrating from a file-based system to a DBMS-based system or changing from one DBMS to another Objective is to create a managed data environment

Software re-engineering

Data problems
25

End-users want data on their desktop machines rather than in a file system. They need to be able to download this data from a DBMS Systems may have to process much more data than was originally intended by their designers Redundant data may be stored in different formats in different places in the system
Software re-engineering

Data conversion
26

Data re-engineering may involve changing the data structure organisation without changing the data values Data value conversion is very expensive. Special-purpose programs have to be written to carry out the conversion

Software re-engineering

Key points
27

The objective of re-engineering is to improve the system structure to make it easier to understand and maintain The re-engineering process involves source code translation, reverse engineering, program structure improvement, program modularisation and data re-engineering Source code translation is the automatic conversion of of program in one language to another
Software re-engineering

Key points
28

Reverse engineering is the process of deriving the system design and specification from its source code Program structure improvement replaces unstructured control constructs with while loops and simple conditionals Program modularisation involves reorganisation to group related items Data re-engineering may be necessary because of inconsistent data management
Software re-engineering

29

Software re-engineering

Das könnte Ihnen auch gefallen