MOD 7 - Scope of The Software Maintenance Problem
MOD 7 - Scope of The Software Maintenance Problem
MOD 7 - Scope of The Software Maintenance Problem
FUNDAMENTALS OF
SOFTWARE
ENGINEERING
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
MOD 7: Scope of the Software Maintenance Problem 2
Development
$
Learning Objectives De
Maintenance” is defined
• Appreciate the cost of maintenance
• 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
Modify gameplay
System control code
code MOD 7: Scope of the Software Maintenance Problem 16
Expansion Without Reengineering
Added Added
The Beginning Product
1/98 7/99
Added Added
The Beginning Product
1/98 7/99
Reengineered Expansion
Current Encounter
Software re-
engineering
Play management
version
of Encounter
MOD 7: Scope of the Software Maintenance Problem 19
Re-engineering Encounter to Conform to Management Training
Current Encounter
Incorporation Encapsulation
New system
Extensions
Legacy Modifications
Application
(fig i)0
a. Input
• The Maintenance Request (MR)
d. Output
• Validated MR
e. Selected quality
• Clarity of the MR
factors
• Correctness of the MR (e.g., type)
• Feasibility report
• Detailed analysis report, including impact
d. Output • Updated requirements
• Preliminary modification list
• Implementation plan
• Test strategy
e. Selected quality
• Comprehensibility of the analysis
factors
• Revised …
…modification list
d. Output …detailed analysis
…implementation plan
• Updated …
…design baseline
…test plans
e. Selected quality • Flexibility (of the design)
factors • Traceability
• Reusability
• Comprehensibility
f. Selected metrics • Effort in person-hours
• Elapsed time
MOD 7: Scope of the Software Maintenance Problem 31
• Number of applications of the change
EncounterEnvironment Package (Before Modification)
GameEnvironment
GameArea GameCharacter
GameAreaConnection
Area EncounterAreaConnection
EncounterEnvironment
EncounterEnvironment
MOD 7: Scope of the Software Maintenance Problem 32
Client
1..n
EncounterEnvironment EnvironmentFactory
getArea()
Area buildConnection()
Level3Area
Level3Factory
getArea()
getAreaConnection()
MOD 7: Scope of the Software Maintenance Problem 33
Client
1..n Abstract Factory
Applied to Encounter
EncounterEnvironment EnvironmentFactory
getArea()
Area getConnection()
EncounterAreaConnection
«create»
EncounterEnvironment EncounterEnvironment
Area
EncounterA reaConnection
Area
EncounterAreaConnection
Area
Encounter AreaConnection
Area
EncounterA reaConnection
Phase 3: Introduce The ...Builder Class and Subclasses Final Phase: Activate buildArea() and buildAreaConnection()
EncounterEnvironment EnvironmentFactory EncounterEnvironment EnvironmentFactory
getArea() getArea()
Area Area
EncounterAreaConnection EncounterAreaConnection
• Inspect code
c. Control • Verify
CM control of new code
Traceability of new code
• Updated …
d. Output …software
…unit test reports
…user documents
• Flexibility
e. Selected quality • Traceability
factors • Comprehensibility
• Maintainability
• Reliability
• Lines of code
f. Selected metrics • Error rate
MOD 7: Scope of the Software Maintenance Problem 37
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
MOD 7: Scope of the Software Maintenance Problem 39
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
• Defect count
MOD 7: Scope of the Software Maintenance Problem 47
Selected Corresponding Metrics
Goal Question
Note: The numbered metrics are from the IEEE.
Effort and time spent, per defect and per severity category …
o … planning
Optimize effort and Where are resources o … reproducing customer finding
o … reporting error
schedule being used? o … repairing
o … enhancing
Minimize defects
(continue focused Where are defects most
• (13) Number of entries and exits per module
development-type likely to be found?
• (16) Cyclotomic complexity
testing) MOD 7: Scope of the Software Maintenance Problem 48
Predicting Relative Maintenance Effort
Module size as % of total l.o.c.
90
% non-commented l.o.c. in
80 module
70
Expect high
maintenance
60 costs
50
40
Expect low
maintenance
30 costs
20
10
0
Accounts Timesheet Sick day Benefits
Modules:
Received recorder
MOD 7: Scope of the Software Maintenance Problem reporter 49
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
Managing Maintenance
Example profile of “fixing”-type MR’s
800
400
300
200
100
0
1993 1994 1995 1996
MOD 7: Scope of the Software Maintenance Problem 50
Profiles of Open Maintenance Requests
5 ry
y
ua
t
ar
ch
s
gu
ril
ne
br
nu
ay
ar
ly
Au
Ap
Ju
Fe
Ju
Ja
M
MOD 7: Scope of the Software Maintenance Problem 51
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
ne
br
nu
ay
ar
ly
Au
Ap
Ju
Fe
Ju
Ja
M
MOD 7: Scope of the Software Maintenance Problem 52
Effects on Maintainability of Source Code Properties
SOURCE CODE
CONTROL STRUCTURE IN F O R M A T IO N C O D E D E T A IL
STRUCTURE
....
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
CONTROL STRUCTURE IN F O R M A T IO N C O D E D E T A IL
STRUCTURE
Examples:
+modularity + means greater modularity usually makes an application more maintainable;
MOD 7: Scope of the Software Maintenance Problem 55
-span of data means that the greater the scope of data structures, the less maintainable.
Summary of This Chapter