Sánchez García, Luis MiguelTovar Moreno, Alejandro2014-07-282014-07-282013-06-252013-07-04http://hdl.handle.net/10016/19209En este Trabajo de Fin de Grado presentaremos los sistemas dirigidos por modelos (MDE) y las arquitecturas dirigidas por modelos (MDA). Trataremos de aplicar un sistema de transformación de modelo a texto dentro de una arquitectura MDA como una nueva alternativa a la generación de analizadores y conversores entre lenguajes de programación. El objetivo será conseguir un refactorizador de código que permita modelar una clase C++ y aplicar transformaciones para obtener código C++11. Para ello, tras analizar y utilizar diferentes mecanismos y sistemas que podrían realizar estas transformaciones, nos decidiremos por utilizar un sistema basado en plantillas de transformación y el lenguaje de programación JAVA. La situación ideal, consistiría en conseguir una arquitectura que nos permita realizar las tres actividades principales en estos sistemas de transformación modelo a texto de forma independiente, para que de esta manera, cualquier cambio que pretenda realizarse afecte a la menor parte de la arquitectura posible y sea fácil de modificar. En nuestro caso en particular, presentaremos una arquitectura basada en esta separación de funcionalidades para conseguir de esta manera realizar algunas transformaciones entre dos lenguajes de programación C++03 y C++11. Por un lado, procederemos a la lectura y modelado de ficheros C++ recurriendo a complementos de eclipse que nos permitan realizar esta función. Una vez, consigamos extraer el modelo y seleccionemos las transformaciones que pretendemos realizar desde el lenguaje inicial C++03 a nuestro lenguaje final C++11, utilizaremos el complemento de eclipse XTEND2 que nos permitirá realizar conversiones utilizando un lenguaje de programación muy sencillo y similar a JAVA. Para terminar, cuando todo el contenido del fichero C++ se halla analizado y se hayan realizado las transformaciones de lenguaje oportunas, la parte de la aplicación encargada de la generación de ficheros, se encargará de crear un nuevo fichero C++ con el contenido transformado a C++11. En resumen, lo que se propone con este Trabajo de Fin de Grado es presentar una arquitectura que nos permita realizar transformaciones entre los distintos lenguajes de programación que conviven hoy en día; y como muestra de un caso aplicado basado en una arquitectura MDA, un sistema de refactorización y rejuvenecimiento de código C++03 a C++11.application/pdfspaAtribución-NoComercial-SinDerivadas 3.0 EspañaDiseño de softwareArquitectura de ordenadoresLenguaje C++ (Lenguaje de programación)MicroprocesadoresLenguajes de programaciónTraductores de lenguajesIngeniería dirigida a modelos, sistemas de transformación modelo a texto, complemento de refactorización de código C++ a C++11 para eclipsebachelor thesisInformáticaopen access