introduction to software maintenance. software maintenance definition one of the phases in the...
TRANSCRIPT
![Page 1: Introduction to Software Maintenance. Software Maintenance Definition One of the phases in the software development process, and follows deployment](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/9.jpg)
![Page 10: Introduction to Software Maintenance. Software Maintenance Definition One of the phases in the software development process, and follows deployment](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/10.jpg)
Maintenance Process Model
![Page 11: Introduction to Software Maintenance. Software Maintenance Definition One of the phases in the software development process, and follows deployment](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/16.jpg)
Maintenance techniques
![Page 17: Introduction to Software Maintenance. Software Maintenance Definition One of the phases in the software development process, and follows deployment](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/37.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/38.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/39.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/40.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/41.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/42.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/43.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/44.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/46.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/47.jpg)
Qualities in maintenance
![Page 48: Introduction to Software Maintenance. Software Maintenance Definition One of the phases in the software development process, and follows deployment](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/48.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/49.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/50.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/51.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/52.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/53.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/54.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/55.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/56.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/57.jpg)
Summary
![Page 58: Introduction to Software Maintenance. Software Maintenance Definition One of the phases in the software development process, and follows deployment](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/58.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062221/56649d9e5503460f94a88ea4/html5/thumbnails/59.jpg)
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