Maintenance & Re-Engineering of Software

19
Click to edit Master text styles Second level Third level Fourth level » Fifth level Software Maintenance & Re-engineering Adeel Riaz Mirza Danish Baig Advisor: Sir Ayub Latif PAF KIET Fall 11

Transcript of Maintenance & Re-Engineering of Software

Page 1: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

Software Maintenance & Re-engineering

Adeel Riaz

Mirza Danish Baig

Advisor: Sir Ayub Latif

PAF KIET Fall 11

Page 2: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

PAF-KIET CoCIS Dept.

Development

Modification

Use

Once a Software is developed, its enters a cycle of being used and modified that continues for the

rest of the Software’s life.

Software Life

Software doesn't wear out.

Page 3: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

Software Life Cycle

PAF-KIET CoCIS Dept.

Maintenance cost twice as much as

development.

Page 4: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

Once we deploy our product, our job is still not finished.

We and/or our customers are probably going to want to

make some changes and improvements to the product.

This is what we refer to as software maintenance.

If we plan for maintainability all the way through the

development cycle, we can make our job much easier

when we are in the maintenance phase.

PAF-KIET CoCIS Dept.

What is Software Maintenance?

Page 5: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

Maintenance is a good thing.”

S. J. Schappelle

• You won’t have to do maintenance if no one uses your

product.

• If your product is used, users will ask for improvements.

• The more successful products have high maintenance

budgets.

PAF-KIET CoCIS Dept.

The Challenge of Maintenance

Page 6: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

• Perfective maintenance

– Adding or modifying the system’s functionality to

meet new requirements.

• Adaptive maintenance

– Changing a system to adapt it to new hardware or

operating system, such as database upgrades,

operating system upgrades, compiler version

changes etc.

• Corrective maintenance

– Changing a system to fix coding, design, or

requirements errors.PAF-KIET CoCIS Dept.

Types of Maintenance

Page 7: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

PAF-KIET CoCIS Dept.

Maintenance Effort Required

Page 8: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

Operating System Patching

– Microsoft, Apple, Linux/Unix

– OS is core to use of computer, so it must be

constantly maintained

Commercial Software in General

– customers need to be informed of updates

– updates have to be easily available - web is

good tool

PAF-KIET CoCIS Dept.

Maintenance Examples

Page 9: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

Repair software faults– Changing a system to correct deficiencies in the way

meets its requirements.

Adapt software to a different operating environment– Changing a system so that it operates in a different

environment (computer, OS, etc.) from its initial implementation.

Add to or modify the system’s functionality– Modifying the system to satisfy new requirements.

Improve the program structure and system performance– Rewriting all or parts of the system to make it more

efficient and maintainable.

PAF-KIET CoCIS Dept.

Types of changes“M

ain

tenance”

“Reengin

eering”

Page 10: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

• Availability of qualified staff.

• Understandable system structure.

• Use of standardized programming languages and

operating systems.

• Standardized structure of documentation.

• Availability of test cases.

• Built-in debugging facilities.

• Availability of a proper computer to conduct

maintenance.

PAF-KIET CoCIS Dept.

Maintainability Factors

Page 11: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

• Developer not available.

• Proper documentation doesn't exist.

• Not designed for change.

• Maintenance activity not highly regarded.

PAF-KIET CoCIS Dept.

Maintenance Problems

Page 12: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

• Re-design, re-code and re-test those portions of the

software that require modification.

• Completely re-design, re-code and re-test the entire

program (again, using good software engineering).

PAF-KIET CoCIS Dept.

Maintenance Option

Page 13: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

PAF-KIET CoCIS Dept.

Proposed

M. R.’s

Approved

M. R.’s

Modified source

& documentation

Current source

& documentation

Change control boardMaintenance

engineer

Written

MR’sMaintenance

manager

Marketing

Rejected

MR’s

Customer

Help desk

nominal path

A Typical Maintenance Flow

Page 14: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

There are some sizing approaches for estimating the

software maintenance efforts such as source lines of

code (SLOC), function points (FPs), and object points.

We review the annual change traffic (ACT) model,

the FP model and Construction Cost Model

(COCOMO) 2.0 reuse model. The ACT model

estimates the maintenance size depending on the

actual data of annual change traffic and the FP model

counts the number of FPs. The COCOMO 2.0 reuse

model reflects the estimated efforts for modifying

reusable software.

PAF-KIET CoCIS Dept.

Estimation Model for Software Maintenance Efforts

Page 15: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

• Annual Change Traffic(ACT) is defined as ‘the fraction of the

software product’s source instructions which undergo change during

a typical year, either addition or modification’. Boehm established

Equation (1) for estimating maintenance costs using the data

gathered from 63 projects

AME = ACT × SDT

• where AME and SDT are the annual maintenance effort and the

software development time, respectively. The dimension of AME

may be expressed in man-months (MM). Similarly, Schaefer’s study

suggests the following Equation(2):

E = ACT × 2.4KLOC^1.05

• where E is the effort (MM) required to maintain the software

annually. ACT is defined as the ratio of the system undergoing

maintenance and the number of source code instructions that are

modified or added during one year of maintenance.

PAF-KIET CoCIS Dept.

The ACT model

Page 16: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

Process Model

PAF-KIET CoCIS Dept.

Reengineering needs time (maybe years) and money pragmatic strategy

•mostly linear

•cyclical model

Page 17: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

Stages of Reengineering

PAF-KIET CoCIS Dept.

•Inventory Analysis

inventory: attributes of application (size, age,

business criticality, etc.) changes revisit inventory regularly!

•Document Restructuring

no re- documentation (relatively static, not much

longer used, no changes expected)

update documentation when changes were made

complete re- documentation, but kept at a minimum

(business critical systems)

Page 18: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

Stages of Reengineering

PAF-KIET CoCIS Dept.

•Reverse Engineering

analyze program code to create a representation of the program at a higher level of abstraction (e.g. UML diagrams)

design and specification recovery

•Code Restructuring

most common type

analyze source code (restructuring tool), possible automatically restructuring

review and test the result, update code documentation!

Page 19: Maintenance & Re-Engineering of Software

• Click to edit Master text styles

– Second level

• Third level

– Fourth level

» Fifth level

Stages of Reengineering

• Data Restructuring

restructuring begins mostly with reverse engineering (define/review data

models and structures)

restructure weak data architectures

data restructuring requires changes in architectural or source- code

changes

• Forward Engineering

recover design information from existing software AND alter/restore

system improve overall quality

re- implement old function, add new ones, improve overall performance

and quality

PAF-KIET CoCIS Dept.