Este documento describe tres tipos de sistemas de acuerdo a la clasificación de Lehman-Belady: sistemas estáticos (Tipo S), sistemas prácticos (Tipo P) y sistemas embedded (Tipo E). También describe las etapas de evolución del software, incluyendo la entrada, método y salida, y cuatro tipos de cambios que ocurren durante la reingeniería: computacionales, de rendimiento, de entrada y de salida. Concluye que el mantenimiento de software implica reingeniería e ingeniería inversa para corregir