software maintenance main issues: why maintenance is such an issue reverse engineering and its...
TRANSCRIPT
![Page 1: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/1.jpg)
Software Maintenance
Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance
![Page 2: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/2.jpg)
SE, Maintenance, Hans van Vliet, ©2008 2
Relative distribution of software/hardware costs
HardwareDevelopment
Software
Maintenance
1955 1970 1985Year
100
60
20
Per
cen
t o
f to
tal c
ost
![Page 3: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/3.jpg)
SE, Maintenance, Hans van Vliet, ©2008 3
Point to ponder #1
Why does software maintenance cost so much?
![Page 4: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/4.jpg)
SE, Maintenance, Hans van Vliet, ©2008 4
Software Maintenance, definition
The process of modifying a software system or
component after delivery to correct faults, improve
performance or other attributes, or adapt to a
changed environment
![Page 5: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/5.jpg)
SE, Maintenance, Hans van Vliet, ©2008 5
Maintenance is thus concerned with:
correcting errors found after the software has been delivered
adapting the software to changing requirements, changing environments, ...
![Page 6: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/6.jpg)
SE, Maintenance, Hans van Vliet, ©2008 6
Key to maintenance is in development
Higher quality less (corrective) maintenance
Anticipating changes less (adaptive and perfective) maintenance
Better tuning to user needs less (perfective) maintenance
Less code less maintenance
![Page 7: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/7.jpg)
SE, Maintenance, Hans van Vliet, ©2008 7
Kinds of maintenance activities
corrective maintenance: correcting errors
adaptive maintenance: adapting to changes in the environment (both hardware and software)
perfective maintenance: adapting to changing user requirements
preventive maintenance: increasing the system’s maintainability
![Page 8: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/8.jpg)
SE, Maintenance, Hans van Vliet, ©2008 8
Distribution of maintenance activities
corrective 21%
adaptive 25%
preventive 4%
perfective 50%
![Page 9: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/9.jpg)
SE, Maintenance, Hans van Vliet, ©2008 9
Growth of maintenance problem
1975: ~75,000 people n maintenance (17%)
1990: 800,000 (47%)
2005: 2,500,000 (76%)
2015: ??
(Numbers from Jones (2006))
![Page 10: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/10.jpg)
SE, Maintenance, Hans van Vliet, ©2008 10
Shift in type of maintenance over time
Introductory stage: emphasis on user support
Growth stage: emphasis on correcting faults
Maturity: emphasis on enhancements
Decline: emphasis on technology changes
![Page 11: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/11.jpg)
SE, Maintenance, Hans van Vliet, ©2008 11
Major causes of maintenance problems
Unstructured code
Insufficient domain knowledge
Insufficient documentation
![Page 12: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/12.jpg)
SE, Maintenance, Hans van Vliet, ©2008 12
Reverse engineering
![Page 13: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/13.jpg)
SE, Maintenance, Hans van Vliet, ©2008 13
Reverse engineering
Does not involve any adaptation of the system
Akin to reconstruction of a blueprint
Design recovery: result is at higher level of abstraction
Redocumentation: result is at same level of abstraction
![Page 14: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/14.jpg)
SE, Maintenance, Hans van Vliet, ©2008 14
Restructuring
Functionality does not change
From one representation to another, at the same level of abstraction, such as:
From spaghetti code to structured code Refactoring after a design step in agile approaches Black box restructuring: add a wrapper With platform change: migration
![Page 15: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/15.jpg)
SE, Maintenance, Hans van Vliet, ©2008 15
Reengineering (renovation)
Functionality does change
Then reverse engineering step is followed by a forward engineering step in which the changes are made
![Page 16: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/16.jpg)
SE, Maintenance, Hans van Vliet, ©2008 16
Refactoring in case of bad smells
Long methodLarge classPrimitive obsessionData clumpsSwitch statementsLazy classDuplicate codeFeature envy Inappropriate intimacy…
![Page 17: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/17.jpg)
SE, Maintenance, Hans van Vliet, ©2008 17
Categories of bad smells
Bloaters: something has grown too largeObject-oriented abusers: OO not fully exploitedChange preventers: hinder further evolutionDispensables: can be removedEncapsulators: deal with data communicationCouplers: coupling too high
![Page 18: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/18.jpg)
SE, Maintenance, Hans van Vliet, ©2008 18
Program comprehension
Role of programming plans, beacons
As-needed strategy vs systematic strategy
Use of outside knowledge (domain knowledge, naming conventions, etc.)
![Page 19: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/19.jpg)
SE, Maintenance, Hans van Vliet, ©2008 19
Software maintenance tools
Tools to ease perceptual processes (reformatters)
Tools to gain insight in static structure
Tools to gain insight in dynamic behavior
Tools that inspect version history
![Page 20: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/20.jpg)
SE, Maintenance, Hans van Vliet, ©2008 20
Analyzing software evolution data
Version-centered analysis: study differences between successive versions
History-centered analysis: study evolution from a certain viewpoint (e.g. how often components are changed together)
![Page 21: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/21.jpg)
SE, Maintenance, Hans van Vliet, ©2008 21
Example version-centered analysis
![Page 22: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/22.jpg)
SE, Maintenance, Hans van Vliet, ©2008 22
Example history-centered analysis
![Page 23: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/23.jpg)
SE, Maintenance, Hans van Vliet, ©2008 23
Organization of maintenance
W-type: by work type (analysis vs programming)
A-type: by application domain
L-type: by life-cycle type (development vs maintenance)
L-type found most often
![Page 24: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/24.jpg)
SE, Maintenance, Hans van Vliet, ©2008 24
Advantages of L-type departmentalization
Clear accountability
Development progress not hindered by unexpected maintenance requests
Better acceptance test by maintenance department
Higher QoS by maintenance department
Higher productivity
![Page 25: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/25.jpg)
SE, Maintenance, Hans van Vliet, ©2008 25
Disadvantages of L-type departmentalization
Demotivation of maintenance personnel because of status differences
Loss of system knowledge during system transfer
Coordination costs
Increased acceptance costs
Duplication of communication channels with users
![Page 26: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/26.jpg)
SE, Maintenance, Hans van Vliet, ©2008 26
Product-service continuum and maintenance
![Page 27: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/27.jpg)
SE, Maintenance, Hans van Vliet, ©2008 27
Service gaps
1. Expected service as perceived by provider differs from service expected by customer
2. Service specification differs from expected service as perceived by provider
3. Service delivery differs from specified services
4. Communication does not match service delivery
![Page 28: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/28.jpg)
SE, Maintenance, Hans van Vliet, ©2008 28
Gap model of service quality
![Page 29: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/29.jpg)
SE, Maintenance, Hans van Vliet, ©2008 29
Maintenance control
Configuration control: Identify, classify change requests Analyze change requests Implement changes
Fits in with iterative enhancement model of maintenance (first analyze, then change)
As opposed to quick-fix model (first patch, then update design and documentation, if time permits)
![Page 30: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/30.jpg)
SE, Maintenance, Hans van Vliet, ©2008 30
Indicators of system decay
Frequent failuresOverly complex structureRunning in emulation modeVery large componentsExcessive resource requirementsDeficient documentationHigh personnel turnoverDifferent technologies in one system
![Page 31: Software Maintenance Main issues: why maintenance is such an issue reverse engineering and its limitations how to organize maintenance](https://reader035.vdocuments.us/reader035/viewer/2022062417/551c5ba65503467b488b57d4/html5/thumbnails/31.jpg)
SE, Maintenance, Hans van Vliet, ©2008 31
SUMMARY
most of maintenance is (inevitable) evolution
Maintenance problems: Unstructured code Insufficient knowledge about system and domain Insufficient documentation Bad image of maintenance department
Lehman’s 3rd law: a system that is used, will change