3.1 Corrective maintenance
Corrective Maintenance is performed to remove a defect. It is performed once a defect has occurred. It is performed at unpredictable time, since there is no prior knowledge of the presence of defect.
3.2 Adaptivemaintenance
Adaptive maintenance is the change in the software to accommodate changes to the environment in which it operates (e.g. new hardware platforms or new business rules).
3.3 PerfectiveMaintenance
Perfective maintenance is the addition of new functionality It involves making changes to improve some aspect of the system, even when the changes are not suggested by faults.
1 E-type programs are programs that continually change, updated and evolved [13]