La ingeniería de software dedica una gran parte de sus esfuerzos al mantenimiento y la soportabilidad de los sistemas. El mantenimiento se divide en varias categorías, como preventivo, correctivo, evolutivo y adaptativo, cada uno con objetivos específicos como mejorar la calidad interna, corregir errores, incorporar nuevas funcionalidades y adaptarse a cambios en el entorno.