Software Maintanence
- Corrective: Repair any kind of defect.
- Adaptive: Porting to new hardware or a different OS, without affecting functionality.
- Perfective: New requirements, and performance improvements.
- Preventive: Improve maintainability itself, refactor awkward designs and comments.