View
169
Download
0
Embed Size (px)
Citation preview
What is Maintenance ?
software maintenance is the modification of a software product after delivery to correct faults, to improve performance
or add other attributes
Why we need it?With time software deteriorate so updates are needed.• Reasons
• New requirements.• hidden bugs.• weaknesses of performance.
Since these cannot be predicted ,maintenance based on customer feedback is the only solution.
• Cost considerations• Technical factors
(Language ,style , Documentation)
• Non technical(Domain ,Staff ,hardware ,Age)
How to do it?Maintenance can be category as • Corrective - Bug fixes• Perfective - Performance enhancement• Adaptive - To match with new hardware, OS, Frameworks
• Structured - Used when Documentation is available• Un-Structured - Only when code is available
• Preventive - Improve maintainability and reliabilityWhen doing preventive maintenance depending on the situation and the cost, developers can choose to
• Reengineer - Restructure the system to achieve higher quality• Reverse engineer - Analyze code and make higher level
representation• Refactor - Only certain parts of code changed
When good software go badWhen software are left with design flows it invites heap of vulnerabilities to the software in question
• Exploits• Unhandled errors• System crashes• Unauthorized accessed• Data inconsistency • Etc………….
Case studiesSQL Slammer Exploited a Bug in Microsoft SQL Servers that were not properly maintained and missed security patches in 2004 resulting in a global Internet Traffic slowdown the virus infected Microsoft own servers..
Code RedExploited a Buffer overflow bug In Microsoft's IIS web server during 2001.Even though a patch had been released for the bug many failed to use it.
WordPerfect 5.1A popular Word processor during early 90’s for windows which lost its market to MS Word due to poor maintenance.