include "../cabecera.php" ?>
INGENIAS utiliza principalmente dos herramientas: el entorno de especificación y el generador de código.
El entorno de especificación se ha construido con la herramienta METAEDIT+ (www.metacase.com), disponible gratuitamente para uso académico en linux. Esta herramienta se ha concretado con los meta-modelos presentados en otras secciones. Se está desarrollando una versión distribuible de los meta-modelos para que los investigadores puedan aplicar INGENIAS. Desde este entorno generamos la documentación del sistema que es la que se puede apreciar en los ejemplos de desarrollo.
El generador de código es otra herramienta que estamos desarrollando activamente se basa en la hipótesis de que cuando se implementa un sistema de tamaño mediano-grande, existen múltiples estructuras de código que se repiten. Un desarrollador experimentado sabe qué patrones de diseño son más adecuados para cada caso y dónde encontrar software que le pueda valer para situaciones concretas. Al final, el esfuerzo de programar el sistema se reduce gracias a la reutilización de software. El problema general es que para reutilizar hay que ser capaz de adaptar lo que ya existe y ahí es donde interviene la herramienta. Basicamente, actúa como una herramienta de sustitución de texto avanzada.
Nosotros utilizamos un lenguaje de marcado con el que el desarrollador señala en código fuente ya existente qué es lo que quiere concretar. Este lenguaje reconoce tres elementos:
Variables. Señalan sustituciones por un valor concreto.
Repeticiones. Indica un segmento de código que hay que replicar y concretar con valores concretos o más repeticiones. Al replicar el código, se replica también todo el marcado asociado al mismo, por lo que tiene sentido concretar cada repetición sustituyendo las variables o repeticiones por valores asociados.
Órdenes. De momento sólo existe la orden de grabación a fichero. Esta orden escribe el texto asociado a un fichero concreto. Junto con las repeticiones, permite, desde un único fichero, replicar un conjunto de clases Java y grabar cada una a un fichero distinto.
El generador de código está escrito en Java, por lo que puede portarse a cualquier sistema operativo. Y al trabajar con el código fuente como si fuera un documento de texto cualquiera, puede aplicarse para generación de código escrito en cualquier lenguaje.