El proyecto que sustenta este trabajo tiene como objetivo el desarrollo de una herramienta ICASE (Integrated Computer Aided Software Engineering) que produzca sistemas, esto es, el código y la documentación completos, a partir de especificaciones gráficas de alto nivel de abstracción. Para ello se definió un proceso de desarrollo ágil basado en la prototipación evolutiva, con ciclos conformados por la especificación o evolución de requerimientos, la especificación o evolución de diseño y la generación o regeneración del sistema[11].
Para modelar la estructura estática de los productos se emplean diagramas de clase que representan el modelo de dominio (entity classes), y para modelar la estructura dinámica se emplea un modelo basado en la teoría de autómatas finitos[10]: se concibe a todo sistema como a un autómata cuyos estados se asimilan a interfaces (boundary classes), y sus transiciones a funciones (métodos de un controller asociado a cada interfaz) que también se especifican con un alto nivel de abstracción, y que son la base para la generación del código. Para cada ciclo de evolución se contemplan las etapas del proceso refinándose estos diagramas.