59
Introduction to Software Maintenance

Introduction to Software Maintenance. Software Maintenance Definition One of the phases in the software development process, and follows deployment

Embed Size (px)

Citation preview

Page 1: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

Introduction to Software Maintenance

Page 2: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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/

Page 3: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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))

Page 4: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

Growth of Maintenance Problem

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

Page 5: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

Purpose of Maintenance enhancing and optimizing deployed software

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

Page 6: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

 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.

Page 7: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 8: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 9: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment
Page 10: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

Maintenance Process Model

Page 11: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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

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

Page 12: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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,

Page 13: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 14: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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

principles. management decisions are made that drives the process.

Page 15: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

Maintenance Process Model: Osborne's Model it deals directly

with the reality of the maintenance environment.

Page 16: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

Maintenance techniques

Page 17: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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

Page 18: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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

Page 19: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 20: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

Maintenance With and Without Reengineering

Expansion Without Reengineering

Added1/98

Added7/99

Added7/98

Added1/99

The Beginning Product

Page 21: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 22: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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

Page 23: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

Legacy Architectures

LegacyApplication

New system

Extensions

Modifications

EncapsulationIncorporation

(fig i)0

Page 24: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 25: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

IEEE standard 840-1992:

Page 26: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 27: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 28: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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

Page 29: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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

Page 30: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

  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

Page 31: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

  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

Page 32: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

  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

Page 33: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 34: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

Abstract Factory Applied to Encounter

Area

Level3Area

Level3FactorygetArea()getAreaConnection()

EnvironmentFactorygetArea()buildConnection()

EncounterEnvironment

Client1..n

Page 35: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 36: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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

Page 37: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 38: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

  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

Page 39: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

The management of maintenance

Page 40: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 41: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 42: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

Maintenance& Patching

Help desk

1. Interface with customer

Complaints Marketing

Patch (optional)

Execute with patch

Docu-mentpatch

Page 43: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 44: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 45: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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 . . . . .

Page 46: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 47: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

Qualities in maintenance

Page 48: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 49: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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

Page 50: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 51: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 52: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 53: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 54: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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]

. . . .

Page 55: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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

Page 56: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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:

Page 57: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

Summary

Page 58: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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.

Page 59: Introduction to Software Maintenance. Software Maintenance Definition  One of the phases in the software development process, and follows deployment

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