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.

Business analysis, software requirements co-development Architecture and design of software application Custom software application development Technology/data migration, porting of software Re-engineering of legacy software applications Support and maintenance of software applications Customization/localization services Software testing and quality assurance