El mantenimiento de software incluye modificaciones realizadas después de la entrega para corregir errores, mejorar el rendimiento u otros atributos. Es una de las actividades más comunes en ingeniería de software y una fase importante del ciclo de vida de desarrollo de sistemas. Aunque comúnmente se percibe como corrección de defectos, la mayoría del esfuerzo de mantenimiento se usa para acciones no correctivas.