Corrective maintenance refers to changes to software that have to be made to ensure the system works as it’s supposed to. In a multi-user system the combination of different hardware and software configuration can result in an unexpected failure in the system.
Adaptive maintenance is needed when circumstances change in the environment in which the system runs. For example, if a formula is based on VAT and the value changes then the formula must be modified to ensure the system works correctly in its change environment.
Perfective maintenance involves the addition of new functions which aim to enhance and benefit the software. An example is changing the font as it is too small or does not fit the system very well. A high number of perfective requests can be seen as success for software as the operational side works effectively.