Durante el proceso de desarrollo de un sistema de software es común que se utilicen diseños reusables, los cuales debido al carácter iterativo e incremental de este proceso son modificados recurrentemente. Tales modificaciones (llamadas “evoluciones” por cierta comunidad de Ingeniería de Software) pueden tener efectos no deseados en los dise˜nos.
En este trabajo presentamos un formalismo llamado E-Machines que permite analizar el proceso de evolución de una manera rigurosa.