Software Maintenance Introduction
Email this Mix
Tags: Software Engineering
Slide 1 - Software Maintenance Introduction
- Emerson Murphy-Hill
- Creative Commons Attribution 4.0 License.
- Material Created by NCSU Software Engineering Faculty.
Slide 2 - Software Maintenance
- Software maintenance activities are expensive
- can consume as much as 90% of the total effort expended on a system in its lifetime
- Software maintenance is the process of modifying a software system or component after delivery to
- correct faults
- adapt to a changed environment
- improve performance or other attributes, or
- prevent future problems
Slide 3 - Types of maintenance – 1/4
- Corrective: maintenance performed to correct faults in hardware or software need to have strong debugging and interpersonal skills
- Reproduce the failure.
- Possibly the failure cannot be reproduced. Possibly nothing at all might be wrong. See http://goo.gl/qhPPb
- Documentation is often obsolete or nonexistent
- Fix without breaking anything else. Faults injected when fixing other problems are called regression faults.
- Test to make sure the fix works and no regression faults have been introduced.
- Testing Debugging Fixing Testing
Slide 4 - Types of maintenance – 2/4
- Adaptive: software maintenance performed to make a computer program usable in a changed environment
- Environment: totality of all conditions and influences that act from outside the system
- Environment examples: business rules, government policy, work patterns, software platforms, compilers, hardware upgrades
- Reaction to changes in the environment to preserve existing functionality and performance.
- Example: http://www.tomsguide.com/us/Instagram-Android-Facebook-Twitter-Tumblr,news-14690.html
- CSC326: Software Engineering © NC State Software Engineering Faculty
- L01 - 4
Slide 5 - Types of maintenance – 3/4
- Perfective: software maintenance performed to improve the performance or other attributes of a computer program.
- Extend the software beyond its original functional or non-functional requirements.
- Happy users want more.
- (Note: improving maintainability is especially considered in the next type of maintenance: preventative)
Slide 6 - Types of Maintenance – 4/4
- Preventative: maintenance performed for the purpose of preventing problems before they occur
- Make more easily corrected, adapted, and enhanced
- No increase in functionality yet costs significant amounts of money
- Mini restructurings refactoring
- Process of changing a software system in such a way that it does not alter the external behavior of the code yet it improves its internal structure
Slide 7 - Comparison of Maintenance Types
- Request often from customer?
- Effect of change visible to customers?
- Need testing? (if yes, for what?)
- X(reproduce failure, confirm fix, not break)
- X (confirm adaptation, not break)
- X (test new features, not break)
- X (not break)