0
0
Software Engineeringknowledge~10 mins

Types of maintenance (corrective, adaptive, perfective, preventive) in Software Engineering - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Types of maintenance (corrective, adaptive, perfective, preventive)
Start: Software in use
Identify issue or need
Bug found?
YesCorrective Maintenance
Environment changed?
YesAdaptive Maintenance
Enhancement requested?
YesPerfective Maintenance
Potential problems?
YesPreventive Maintenance
End
The flow shows how software maintenance types are chosen based on issues or needs: fixing bugs (corrective), adjusting to environment changes (adaptive), improving features (perfective), or preventing future problems (preventive).
Execution Sample
Software Engineering
Issue found: Bug in login
-> Perform corrective maintenance
Environment update: New OS version
-> Perform adaptive maintenance
User requests faster reports
-> Perform perfective maintenance
Check for potential failures
-> Perform preventive maintenance
This sequence shows how different maintenance types are applied based on the situation encountered.
Analysis Table
StepCondition/TriggerMaintenance TypeAction TakenResult
1Bug found in softwareCorrectiveFix the bugSoftware works correctly again
2Operating system updatedAdaptiveModify software to run on new OSSoftware compatible with new OS
3User requests new featurePerfectiveAdd or improve featuresSoftware performance or usability improved
4Potential future issues detectedPreventiveMake changes to avoid problemsReduced risk of future failures
5No issues or requestsNoneNo maintenance neededSoftware continues running as is
💡 Maintenance type chosen based on current software condition or user needs; stops when no further action is required.
State Tracker
Maintenance TypeBeforeAfter Step 1After Step 2After Step 3After Step 4Final
CorrectiveNo bugs fixedBug fixedBug fixedBug fixedBug fixedBug fixed
AdaptiveNot adaptedNot adaptedAdapted to new OSAdapted to new OSAdapted to new OSAdapted to new OS
PerfectiveNo improvementsNo improvementsNo improvementsFeatures improvedFeatures improvedFeatures improved
PreventiveNo preventionNo preventionNo preventionNo preventionPrevention donePrevention done
Key Insights - 3 Insights
Why do we do corrective maintenance only after a bug is found?
Because corrective maintenance specifically fixes errors or bugs that cause the software to malfunction, as shown in step 1 of the execution_table.
How is adaptive maintenance different from perfective maintenance?
Adaptive maintenance changes software to work with new environments (step 2), while perfective maintenance improves features or performance based on user requests (step 3).
Why is preventive maintenance important even if software works fine?
Preventive maintenance helps avoid future problems by making changes before issues occur, as shown in step 4 of the execution_table.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what maintenance type is performed at step 3?
ACorrective
BAdaptive
CPerfective
DPreventive
💡 Hint
Check the 'Maintenance Type' column for step 3 in the execution_table.
At which step does the software get modified to work with a new operating system?
AStep 1
BStep 2
CStep 3
DStep 4
💡 Hint
Look for 'Adaptive' maintenance in the execution_table.
If no bugs or requests are found, what does the maintenance process do according to the execution_table?
APerform corrective maintenance
BPerform adaptive maintenance
CPerform perfective maintenance
DNo maintenance needed
💡 Hint
See the last row of the execution_table for the case with no issues.
Concept Snapshot
Types of software maintenance:
- Corrective: Fix bugs
- Adaptive: Adjust to environment changes
- Perfective: Improve features/performance
- Preventive: Avoid future problems
Choose based on software condition or user needs.
Full Transcript
Software maintenance involves four main types: corrective fixes bugs found during use; adaptive adjusts software to new environments like updated operating systems; perfective improves or adds features based on user requests; preventive makes changes to avoid future problems. The process starts when software is in use and an issue or need is identified. Depending on the trigger, the appropriate maintenance type is chosen and applied. If no issues or requests exist, no maintenance is performed. This ensures software remains functional, compatible, efficient, and reliable over time.