These are categories used to classify software development projects. An enhancement project involves adding new capabilities to an existing system, such as correcting defects, new reports, and modifying functionality. Maintenance is the process of ensuring software functions as expected. Upgrade involves releasing an improved version of the software.