Professional Documents
Culture Documents
Mod 7 - Software Maintenance
Mod 7 - Software Maintenance
Identify
corporate Keep application useful
practices after delivery
- Fix defects
- Enhance the application
Plan
project
Maintain
Analyze
requirements
Integrate
Design & test system
Implement Test units
Development
$
Learning Goals of This Chapter
De
• Management
– Return on investment hard to define
• Process
– Extensive coordination required to
handle stream of Maintenance Requests
• Technical
– Covering full impact of changes
– Testing very expensive compared with
the utility of each change
• focused tests ideal but expensive
• regression testing still required
Estimate
Estimate
Activity Activity (person-
(person-days)
days)
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
RoadMap to Establish Maintenance (After Pigoski)
• Corrective
Fixing – defect identification and removal
• Adaptive
– changes resulting from operating
system, hardware or DBMS changes
• Perfective
Enhancing – changes resulting from user requests
• Preventative
– changes made to the software to
make it more maintainable
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
Modify gameplay
System code control code
Expansion Without Reengineering
Added Added
The Beginning Product
1/98 7/99
Expansion Without Reengineering
Added Added
The Beginning Product
1/98 7/99
Reengineered Expansion
Re-engineering Management Training;
Re-engineering Encounter to Conform
Current Encounter
Software re-
engineering
Play management
version
of Encounter
Re-engineering Encounter to Conform to Management
Training
Current Encounter
New system
Extensions
Legacy Modifications
Application
(fig i)0
Legacy Architectures
uses...
Incorporation Encapsulation
New system
(fig ed)
New application
Legacy
Adapter 3
Application Adapter 2
New system Adapter 1
Extensions
Legacy Modifications
(fig ew)
Application
New system
wrapper
(fig i) New application
Legacy
Application Adapter 3
Adapter 2
Adapter 1
4. IEEE standard 840-1992
1. Problem identification
1.1 Input 1.2 Process
•Identify MR uniquely
c. Control •Enter MR into repository
d. Output •Validated MR
•Feasibility report
•Detailed analysis report, including impact
•Updated requirements
d. Output •Preliminary modification list
•Implementation plan
•Test strategy
e. Selected quality
factors •Comprehensibility of the analysis
•Verify design
c. Control •Inspect design and test cases
•Revised …
…modification list
…detailed analysis
d. Output …implementation plan
•Updated …
…design baseline
…test plans
•Effort in person-hours
f. Selected metrics •Elapsed time
•Number of applications of the change
EncounterEnvironment Package (Before Modification)
GameEnvironment
GameArea GameCharacter
GameAreaConnection
Area EncounterAreaConnection
EncounterEnvironment
EncounterEnvironment
Client
1..n
EncounterEnvironment EnvironmentFactory
getArea()
Area buildConnection()
Level3Area
Abstract
Factory
Applied to
Encounter
Level3Factory
getArea()
getAreaConnection()
Client Abstract
1..n Factory
EncounterEnvironment EnvironmentFactory Applied to
getArea() Encounter
Area getConnection()
EncounterAreaConnection
«create»
•Inspect code
•Verify
c. Control
CM control of new code
Traceability of new code
•Updated …
…software
d. Output
…unit test reports
…user documents
•Flexibility
•Traceability
e. Selected quality
•Comprehensibility
factors •Maintainability
•Reliability
•Lines of code
f. Selected metrics •Error rate
5. The management of maintenance
A Typical Maintenance
Flow
Written
MR’s
Customer
nominal Proposed
path M. R.’s
Help desk
Approved
M. R.’s
Modified source
& documentation
A Typical Maintenance
Flow Marketing
nominal Written
path MR’s
Proposed
Customer Maintenance
manager M. R.’s
Help desk
Approved
M. R.’s
Docu- Patch
ment (optional)
patch
Execute
with
patch
Maintenance
& Patching
Maintenance
1. Get maintenance request
& Patching
optional
2. Approve changes
Docu- Create
ment patch
3. Plan changes patch
Assess
Coordinate
impact Execute
with
patch
4. Change code and documentation
• Defect count
Selected Corresponding Metrics
Goal Question Note: The numbered metrics are from the IEEE.
•Fault closure
Average time required to correct a defect, from start of correction work.
How long does it take to •Fault open duration
Average time from defect detection to validated correction.
fix a problem?
Maximize customer
satisfaction Maintenance Metrics Classified by Goal
•Staff utilization per task type:
Average person-months to (a) detect each defect and (b) repair each defect.
•Computer utilization
Where are the Average time / CPU time per defect.
bottlenecks?
Effort and time spent, per defect and per severity category …
o… planning
Optimize effort and Where are resources o… reproducing customer finding
schedule being used? o… reporting error
o… repairing
o… enhancing
400
300
200
100
0
1993 1994 1995 1996
Profiles of Open Maintenance Requests
5
ry
y
ua
t
ar
ch
s
gu
ril
br
ne
nu
ay
ar
ly
Au
Ap
Ju
Fe
Ju
Ja
M
M
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
Profiles of Open Maintenance Requests
5
ry
y
ua
t
ar
ch
s
gu
ril
br
ne
nu
ay
ar
ly
Au
Ap
Ju
Fe
Ju
Ja
M
M
Effects on Maintainability of Source Code Properties
S OU R C E C OD E
S YS T E M C O M P ON E N T S YS T E M C O M P ON E N T S YS T E M C O M P ON E N T
....
C O N T R O L ST R U C T U RE IN F O R M A T IO N C O D E D E T A IL
STRUCTURE
S YS T E M C O M P ON E N T S YS T E M C O M P ON E N T S YS T E M C O M P ON E N T
Examples:
+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.
7. Summary
Summary of This Chapter