Intérprete funcional para OCL : HaskellOCL

Vaz, Leticia - Sintas, Gonzalo

Supervisor(es): Calegari, Daniel - Viera, Marcos

Resumen:

El paradigma de Ingeniería Dirigida por Modelos (MDE por sus siglas en inglés) propone la construcción de software basado en una abstracción de su complejidad a través de la definición de modelos y en un proceso de construcción (semi)automático guiado por transformaciones de estos modelos. El Object Constraint Language (OCL), un lenguaje formal que permite expresar restricciones que se deben cumplir para asegurar la corrección semántica de un modelo. El lenguaje se define como un lenguaje sin efectos secundarios que combina aspectos funcionales (ej. composición de funciones) y orientados a modelos (ej. herencia de tipos). Sus intérpretes se enfocan principalmente en aspectos orientados a modelos, proveyendo una representación directa de construcciones como herencia y navegación a través de propiedades de los elementos de los modelos. Sin embargo, en los últimos años se han propuesto diversas extensiones funcionales al lenguaje, por ejemplo: pattern matching, expresiones lambda y evaluación perezosa. En un trabajo previo se propuso la construcción de un intérprete de OCL basado en el paradigma funcional (usando Haskell), que incluye además la interpretación de modelos, metamodelos y transformaciones. El objetivo de este proyecto es continuar desarrollando las capacidades del intérprete, particularmente definiendo una transformación que permita generar la infraestructura funcional necesaria para interpretar expresiones OCL (OCL2Haskell), así como adaptar un editor de OCL (en Eclipse) para permitir ejecutar automáticamente la transformación y realizar la validación de dichas expresiones OCL haciendo que la infraestructura funcional sea transparente para el usuario final.


Detalles Bibliográficos
2018
MDE
OCL
Haskell
Eclipse
Español
Universidad de la República
COLIBRI
http://hdl.handle.net/20.500.12008/20219
Acceso abierto
Licencia Creative Commons Atribución – No Comercial – Sin Derivadas (CC - By-NC-ND)