introduction to software maintenance. software maintenance definition one of the phases in the...

Post on 23-Dec-2015

233 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduction to Software Maintenance

Software Maintenance Definition One of the phases

in the software development process, and follows deployment of the software into the field.

http://cnx.org/content/m14719/latest/

SE, Maintenance, Hans van Vliet, ©2008

Growth of maintenance problem 1975: ~75,000 people n maintenance (17%)

1990: 800,000 (47%)

2005: 2,500,000 (76%)

2015: ??

Lehman’s 3rd law: a system that is used, will change

(Numbers from Jones (2006))

Growth of Maintenance Problem

http://www.clarityincode.com/software-maintenance/

Purpose of Maintenance enhancing and optimizing deployed software

(software release), as well as remedying/fixing defects.

 Purpose of Maintenance (formal) Corrective (remedying/fixing )

defect identification and removal Adaptive  (remedying/fixing )

responds to environmental changes, such as porting to new hardware or a different OS, but without affecting functionality.

Perfective  (enhancing / optimizing ) any functionality changes to meet new

requirements, as well as performance improvements.

Preventive (enhancing / optimizing) improve maintainability itself, such as refactoring an

awkward design or adding comments.

Example of Corrective Maintenance Request Maintenance Request 78 The computations that ensue when the player

changes the value of a quality, are supposed to keep the total invariant, but they do not. For example, if the qualities are strength = 10, patience = 0.8 and endurance = 0.8 (sum = 11.6), and the player adjusts strength to 11, then the result is strength = 11, patience = 0 and endurance = 0, which do not sum to 11.6.

Example of Perfective Maintenance Request Maintenance Request 162 Modify Encounter so that the game begins

with areas and connections a coordinated style. When the player achieves level 2 status, all areas and connections are displayed in an enhanced coordinated style, which is special to level 2 etc. The art department will provide the required images.

Maintenance Process Model

Software Maintenance is a Process is the process of enhancing and optimizing

deployed software (software release), as well as remedying/fixing defects.

Maintenance Process Model: quick-fix an ad hoc approach

an unreliable model It is a 'firefighting' approach

waiting for the problem to occur and trying to fix it as quickly as possible,

Why people use quick-fix model pressure of deadlines and resources

If customers are demanding the correction of an error, for example, they may not be willing to wait for the organization to go through detailed and time consuming stages of risk analysis.

Often, a company will release a quick fix as a temporary measure. The real solution will be implemented, along with

other corrections and enhancements, as a major upgrade at a later date.

Maintenance Process Model: Boehm's Model maintenance process based upon economic models and

principles. management decisions are made that drives the process.

Maintenance Process Model: Osborne's Model it deals directly

with the reality of the maintenance environment.

Maintenance techniques

Impact of MR #162

Requirements

Architecture

Add: “change appearance when player achieves new levels”

Accommodate ability to change global appearance: use Abstract Factory design pattern

http://en.wikipedia.org/wiki/Abstract_factory_pattern

Impact of MR #162

Requirements

Architecture

System code

Interface specs

Detailed design

Function code

Module (e.g., package) code

Add: “change appearance when player achieves new levels”

Accommodate ability to change global appearance: use Abstract Factory design pattern

Add interface methods for Layout package

Add classes and methods as per detailed design

Modify gameplay control code

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Maintenance With and Without Reengineering

Expansion Without Reengineering

Added1/98

Added7/99

Added7/98

Added1/99

The Beginning Product

Maintenance With and Without Reengineering

Reengineered Expansion

Expansion Without Reengineering

Added1/98

Added7/99

Added7/98

Added1/99

The Beginning Product

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Continue to maintain Discontinue maintenance and --

1. Replace buy replacement OR build replacement

reverse engineer legacy system or develop new architecture possibly replace in phases

2. Incorporate as integral part of new application freeze maintenance

3. Encapsulate and use as server consider using Adapter design pattern

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Options for Dealing with Legacy Systems

Legacy Architectures

LegacyApplication

New system

Extensions

Modifications

EncapsulationIncorporation

(fig i)0

wrapper

Legacy Architectures

LegacyApplication

New system

Extensions

LegacyApplication

Modifications

uses...

LegacyApplication

EncapsulationIncorporation

(fig i)

(fig ed)

(fig ew)

New system

New application

Adapter 3Adapter 2Adapter 1

New system

New application

Adapter 3Adapter 2Adapter 1

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

IEEE standard 840-1992:

Table of Content

1. Problem identification 1.1 Input 1.2 Process 1.3 Control 1.4 Output 1.5 Quality factors 1.6 Metrics2. Analysis 2.1 Input 2.2 Process 2.2.1 Feasibility analysis 2.2.2 Detailed analysis

2.3-2.6 Control, Output, Quality factors, Metrics.

3. Design 3.1-3.6 Input, Process, Control, Output, Quality factors, Metrics.

1. Problem identification 1.1 Input 1.2 Process 1.3 Control 1.4 Output 1.5 Quality factors 1.6 Metrics2. Analysis 2.1 Input 2.2 Process 2.2.1 Feasibility analysis 2.2.2 Detailed analysis

2.3-2.6 Control, Output, Quality factors, Metrics.

3. Design 3.1-3.6 Input, Process, Control, Output, Quality factors, Metrics.

4. Implementation 4.1 Input 4.2 Process 4.2.1 Coding and & testing 4.2.3 Risk analysis & review 4.2.4 Test-readiness review

4.3-4.6 Control, Output, Quality factors, Metrics.

5. System test 5.1-5.6 Input, Process, Control, Output, Quality factors, Metrics.

6. Acceptance test 6.1-6.6 Input, Process, Control, Output, Quality factors, Metrics.

7. Delivery 7.1-7.6 Input, Process, Control, Output, Quality factors, Metrics.

Five Attributes of Each Maintenance Step (IEEE)

1. Problem identification

2. Analysis

3. Design

4. Implementation

5. System test

6. Acceptance test

7. Delivery

Step

Five Attributes of Each Maintenance Step (IEEE)

1. Problem identification

2. Analysis

3. Design

4. Implementation

5. System test

6. Acceptance test

7. Delivery

Step Attributes

a. Input life cycle arti-facts for this step

b. Process required for this step

c. How the process is controlled

d. Output life cycle artifacts

e. Process quality factors involved

f. Metrics for this step

  IEEE 1219-1992Maintenance phase 1: Problem

Identification

a. Input • The Maintenance Request (MR)

b. Process

• Assign change number • Classify by type and severity etc. • Accept or reject change • Make preliminary cost estimate • Prioritize

c. Control• Identify MR uniquely • Enter MR into repository

d. Output • Validated MR

e. Selected quality factors

• Clarity of the MR • Correctness of the MR (e.g., type)

f. Selected metrics

• Number of omissions in the MR • Number of MR submissions to date • Number of duplicate MR's • Time expected to confirm the problem

  IEEE 1219-1992Maintenance phase 2: Problem Analysis

 a. Input • Original project documentation • Validated MR from the identification phase

b. Process

• Study feasibility of the MR • Investigate impact of the MR • Perform detailed analysis of the work required • Refine the MR description

c. Control

• Conduct technical review • Verify …

…test strategy appropriate…documentation updated

• Identify safety and security issues

d. Output

• Feasibility report • Detailed analysis report, including impact • Updated requirements • Preliminary modification list • Implementation plan • Test strategy

e. Selected quality factors • Comprehensibility of the analysis

f. Selected metrics

• Number of requirements that must be changed • Effort (required to analyze the MR) • Elapsed time

  IEEE 1219-1992Maintenance phase 3: Design

a. Input • Original project documentation • Analysis from the previous phase

b. Process• Create test cases • Revise …

…requirements…implementation plan

c. Control• Verify design • Inspect design and test cases

d. Output

• Revised ……modification list…detailed analysis…implementation plan

• Updated ……design baseline…test planse. Selected

quality factors• Flexibility (of the design) • Traceability • Reusability• Comprehensibility

f. Selected metrics

• Effort in person-hours • Elapsed time • Number of applications of the change

EncounterEnvironment Package (Before Modification)

GameEnvironment

GameCharacterGameArea

EncounterEnvironment

Area

EncounterEnvironment

GameAreaConnection

EncounterAreaConnection

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Abstract Factory Applied to Encounter

Area

Level3Area

Level3FactorygetArea()getAreaConnection()

EnvironmentFactorygetArea()buildConnection()

EncounterEnvironment

Client1..n

Abstract Factory Applied to Encounter

Area

Level2AreaLevel1Area Level3Area

Level1FactorygetArea()getAreaConnection()

Level2FactorygetArea()getAreaConnection()

Level3FactorygetArea()getAreaConnection()

EncounterAreaConnection

EnvironmentFactorygetArea()getConnection()

EncounterEnvironment

Level1AreaConnectionLevel2AreaConnection

Client

Level3AreaConnection

«create»

1..n

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Migration Plan for Level-based Graphics

Area

Level2AreaLevel1Area Level3Area

EncounterAreaConnection

Level3AreaConnection

EncounterEnvironment

Level2AreaConnectionLevel1AreaConnection

Phase 2: Introduce Subclasses of Area and …Connection

Area

EncounterAreaConnection

EncounterEnvironment

Start: Existing Model

Migration Plan for Level-based Graphics

Area

Level2AreaLevel1Area Level3Area

Level1FactorygetArea()

Level2FactorygetArea()

Level3FactorygetArea()

EncounterAreaConnection

EnvironmentFactorygetArea()

EncounterEnvironment

Level2AreaConnectionLevel1AreaConnection

Phase 3: Introduce The ...Builder Class and Subclasses

Level3AreaConnection

Area

Level2AreaLevel1Area Level3Area

Level1FactorygetArea()

Level2FactorygetArea()

Level3FactorygetArea()

EncounterAreaConnection

Level3AreaConnection

EnvironmentFactorygetArea()

EncounterEnvironment

Level2AreaConnectionLevel1AreaConnection

Final Phase: Activate buildArea() and buildAreaConnection()

Area

Level2AreaLevel1Area Level3Area

EncounterAreaConnection

Level3AreaConnection

EncounterEnvironment

Level2AreaConnectionLevel1AreaConnection

Phase 2: Introduce Subclasses of Area and …Connection

Area

EncounterAreaConnection

EncounterEnvironment

Start: Existing Model

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

  IEEE 1219-1992Maintenance phase 4: Implementation

a. Input• Original source code • Original project documentation • Detailed design from previous phase

b. Process

• Make code changes and additions • Perform unit tests • Review readiness for system testing

c. Control

• Inspect code • Verify

CM control of new codeTraceability of new code

d. Output

• Updated ……software…unit test reports…user documents

e. Selected quality factors

• Flexibility • Traceability • Comprehensibility • Maintainability • Reliability

f. Selected metrics

• Lines of code • Error rate

The management of maintenance

A Typical Maintenance Flow

Proposed M. R.’s

Approved M. R.’s

Modified source & documentation

Current source & documentation

Change control boardMaintenanceengineer

Written MR’s

Customer

Help desk

nominal path

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

A Typical Maintenance Flow

Proposed M. R.’s

Approved M. R.’s

Modified source & documentation

Current source & documentation

Change control boardMaintenanceengineer

Written MR’s

Maintenance manager

Marketing

Rejected MR’s

Customer

Help desk

nominal path

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.Graphics reproduced with permission from Corel.

Maintenance& Patching

Help desk

1. Interface with customer

Complaints Marketing

Patch (optional)

Execute with patch

Docu-mentpatch

Maintenance& Patching

1. Get maintenance request

2. Approve changesCreate patch

3. Plan changes

Assessimpact

4. Change code and documentation

Coordinate

Test changesImplement

Update documentation

Remove patch

Docu-mentpatch

optional

Execute with patch

ReleaseDocument

patch removal

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

disadvantages

Keeps customers satisfied in the short run

Enables continued operation and testing without repeated prevalence of the defect

Avoids masking other defects

Enables test of fix

Duplicates work patch and final fix both

implemented Sometimes never

replaced proper fix deferred

forever! Complicates final fix

must remove Complicates

documentation process

advantagesMaintenance Patches

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Ranked Problems in Maintenance (Deklava)

1. Changing priorities

2. Testing methods3. Performance

measurement3. Incomplete or

non-existent system documentation

5. Adapting to changing business requirements

6. Backlog size

7. Measurement of contributions

8. Low morale due to lack of recognition or respect

9. Lack of personnel, especially experienced

10. Lack of maintenance methodology, standards, procedures and tools . . . . .

Examples of Changing PrioritiesTop priority . . .. . . at release : Make this most bug-free game on the

market action: eliminate as many defects as

possible

. . . two months after release: Add more features than our leading

competitor action: add enhancements rapidly

. . . six months after release: Reduce spiraling cost of maintenance

action: eliminate most severe defects only

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Qualities in maintenance

Maintenance Metrics

Number of lines of code

under maintenance

Person-months to perform

various maintenance tasks

 Defect count

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Goal Question Selected Corresponding MetricsNote: The numbered metrics are from the IEEE.

Maximize customer

satisfaction

How many problems are affecting the customer?

• (1) Fault density • (30) Mean time to failure • Break / fix ratio

[ Number of defects introduced by maintenance actions ] / [Number of defects repaired ]

How long does it take to fix a problem?

• Fault closureAverage time required to correct a defect, from start of correction work.

• Fault open duration Average time from defect detection to validated correction.

Where are the bottlenecks?

• Staff utilization per task type: Average person-months to (a) detect each defect and (b) repair each defect.

• Computer utilizationAverage time / CPU time per defect.

Optimize effort and schedule

Where are resources being used?

Effort and time spent, per defect and per severity category …

o … planning o … reproducing customer finding o … reporting error o … repairing o … enhancingMinimize

defects (continue focused

development-type testing)

Where are defects most likely to be found?

• (13) Number of entries and exits per module • (16) Cyclotomic complexity

Maintenance Metrics Classified by Goal

Predicting Relative Maintenance Effort

0

10

20

30

40

50

60

70

80

90

AccountsReceived

Timesheet Sick dayrecorder

Benefitsreporter

Module size as % of total l.o.c.

% non-commented l.o.c. inmodule

Expect high maintenance

costs

Expect low maintenance

costs

Modules:

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Managing MaintenanceExample profile of “fixing”-type MR’s

0

100

200

300

400

500

600

700

800

1993 1994 1995 1996

# MR's received# MR's completed# MR's cancelled# MR's open

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Profiles of Open Maintenance RequestsJa

nuar

y

Febr

uary

Mar

ch

April

May

June

July

Augus

t

“Fixing” MR’s

Enhancement MR’s

# weeks open

5

10

E.g., in April, the average enhancement MR had been open for 8 weeks.

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Profiles of Open Maintenance RequestsJa

nuar

y

Febr

uary

Mar

ch

April

May

June

July

Augus

t

“Fixing” MR’s

Enhancement MR’s

# weeks open

5

10

E.g., in April, the average enhancement MR had been open for 8 weeks.

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

SYST EM COM PONENT

CONTROL STRUCT URE

SYST EM COM PONENT

INFORM AT IONSTRUCT URE

SYST EM COM PONENT

CODE DET AIL

SOURCE CODE

Effects on Maintainability of Source Code Properties

From Oman [Om1]

. . . .

Effects on Maintainability of Source Code Properties

• statement formatting -- affects a product’s maintainability, (but more is not necessarily better)

• vertical spacing• horizontal spacing• + intra-module commenting -- usually, more comments with the code make a product more maintainable From Oman [Om1]

The maintainability of a product is affected by this property.

“+” means that more of this property usually makes an application more maintainable;

“-” means that more of the property usually makes an application less maintainable.

S Y S T E M C O M PO N E NT

C O N T R O L ST R U C T U RE

S Y S T E M C O M PO N E NT

IN F O R M A T IO NS T R U C T U R E

S Y S T E M C O M PO N E NT

C O D E D E T A IL

S O U R C E C O D EAspects of source code

SYST EM COM PONENT

CONTROL STRUCT URE

SYST EM COM PONENT

INFORM AT IONSTRUCT URE

SYST EM COM PONENT

CODE DET AIL

SOURCE CODEEffects on Maintainability of Source Code Properties

+modularity

-complexity

+consistency

-nesting

-control coupling

+encapsu-lation

+module re-use

-complexity

+use of structured constructs

-use of un-conditional branching

-nesting

+cohesion

-global data types

-global data structures

+data flow consistency

+data type consistency

-nesting

-I/O complexity

-local data types

-local data structures

-span of data

+data initialized

+overall program formatting

+overall program commen-ting

+module separation

naming

symbol and case

statement formatting

vertical spacing

horizontal spacing

+intra-module commen-ting

From Oman [Om1]

+modularity + means greater modularity usually makes an application more maintainable;-span of data means that the greater the scope of data structures, the less maintainable.

Examples:

Summary

Summary of This Chapter

“Software Maintenance” = post delivery Impact analysis is key IEEE standard covers process

identification, input, process, control, output, process quality, process metrics

order similar to development process Presents several management

challenges manage flow of MR’s motivate personnel ensure all documentation kept up-to-date

Metrics: plot repairs and enhancements

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Reference http://www.clarityincode.com/software-mainte

nance/

http://cnx.org/content/m14719/latest/ www.cs.vu.nl/~hans/SEslides/maint.ppt http://

www.se-cure.ch/images/CSE-F-SM-D-V2.0.pdf Grubb Takang software maintenance chapter

5

top related