El mantenimiento de software es el proceso de mejora y optimización del software desplegado, que incluye corregir defectos y prevenirlos. Existen cuatro tipos de mantenimiento: perfectivo, evolutivo, adaptativo y correctivo. Las actividades comunes de mantenimiento incluyen corregir defectos, agregar nuevas funcionalidades y mejorar el rendimiento. La reingeniería de software puede ayudar a reducir riesgos, recuperar inversiones y hacer el software más fácil de modificar.