Informe científico de investigador: Favre, Liliana María (2010-2011)
Resumen
La investigación en este período se centró, de acuerdo al plan de actividades propuesto, en la definición de procesos rigurosos de evolución de software en desarrollos dirigidos por modelos. Esta investigación se basa en la integración del enfoque MDD (Model Driven Development), técnicas clásicas del área de compiladores y técnicas de verificación basadas en especificaciones algebraicas. Bajo la denominación MDD se define a un amplio rango de desarrollos basados en el uso de modelos como entidades de primera clase. Una realización específica de MDD propuesta por OMG (Object Management Group) es la arquitectura MDA (Model Driven Architecture). MDA propone separar la especificación de la funcionalidad del sistema de su implementación sobre una plataforma en una tecnología específica y controlar la evolución del software desde modelos abstractos a implementaciones tendiendo a aumentar el grado de automatización. Los procesos de desarrollo en MDA distinguen los siguientes modelos: modelo independiente de la computación (Computation Independent Model o CIM), modelo independiente de la plataforma (Platform Independent Model o PIM), modelo específico a la plataforma (Platform Specific Model o PSM) y modelos específicos a la implementación o código. Una de las características esenciales de MDA es que todos los artefactos involucrados en un proceso de desarrollo son representados a partir del lenguaje de metamodelado MOF (Meta Object Facility). MOF es un meta-metamodelo que define una forma común de capturar todas las construcciones de los estándares de modelado e intercambio que son usadas en MDA y es la esencia de MDA al permitir que diferentes tipos de artefactos provenientes de diferentes vendedores sean usados juntos en un mismo proyecto. Otro concepto fundamental en MDA es el de transformaciones entre modelos. El estándar propuesto por OMG para especificar transformaciones es el metamodelo QVT (Query, View, Transformation). Los resultados más relevantes en este período de investigación están vinculados a la definición de procesos de ingeniería inversa para la recuperación, a partir de código orientado a objetos, de modelos PIM y PSM expresados en UML. Específicamente, se definió la recuperación de modelos de clase, modelos de estado, modelos de secuencia, modelos de actividades y modelos de casos de uso. La validación de resultados se realizó bajo el proyecto de código abierto Eclipse dado que algunos de sus subproyectos proporcionan herramientas y entornos de ejecución alineados con estándares de MDA. A fin de controlar la evolución del software en procesos basados en MDA, se definieron técnicas de metamodelado formal, particularmente dentro del marco de la evolución de metamodelos MOF se definió un DSL (Domain Specific Language) para metamodelado formal. Los resultados fueron publicados en un libro, revistas, capítulos de libros y conferencias internacionales. Los resultados logrados podrían incorporar funcionalidad a herramientas CASE MDA existentes, representando una innovación a nivel internacional y nacional.