José Fabián Díaz Silva*, Daniel Andrés Guzmán Arévalo **
* Especialista en Tecnologías Avanzadas para el Desarrollo de Software.
** Especialista en Teleinformática
Resumen — El trabajo de ingeniería de software esta en constante evolución, la búsqueda de herramienta que agilicen los desarrollos son una constante, así como el deseo creciente de brindar soluciones que no dependan de un fabricante o empresa. Este proyecto busca establecer un modelo comparativo de las características de las herramientas MDA (Model Driven Architecture), para identificar las mejores prácticas y llevar estas experiencias a la comunidad de software libre que este detrás de la construcción de las mismas. Se desarrollaron instrumentos y procesos específicos de medición, así como estrategias de divulgación que involucro, desde el establecimiento de categorías de evaluación, hasta la búsqueda de comunidades de software libre y sus respectivos canales de participación.
Palabras Claves— MDA, ingeniería, libre, comparación, modelo.
Abstract – The software engineering work is in constant evolution,
the search of tool to speed up the development are a constant,and the growing desire to provide solutions that are not dependent on a manufacturer or company. This project seeks to establish a model
compare the characteristics of the tools MDA (Model Driven Architecture), to identify best practices and bring those experiences to the free software community that behind the the same building. Instruments and processes were developed specific measurement and disclosure strategies get involved, since the establishment of categories of evaluation to search for free software communities and their respective channels participation.
Keywords – engineering, free, comparison, model.
I. INTRODUCCIÓN
El proyecto gira alrededor de una pregunta. ¿Cuáles son los elementos característicos que permiten elaborar un modelo comparativo entre las herramientas MDA existentes en el mercado, para entregar información que contribuya a los desarrollos de la comunidad de software libre?.
El desarrollo de software con modelos o herramientas antiguas ha demostrado repetidamente no funcionar en proyectos de todo tipo, especialmente en el desarrollo para software que requieren grandes de soluciones. Los fracasos de proyectos de desarrollo de software lo atestiguan. Parece necesario, por tanto, acometer el desarrollo de software utilizando una visión de ingeniería.
Es por eso que nace la necesidad de diseñar y aplicar un modelo donde se puedan comparar software libre o comercial bajo la arquitectura dirigida por modelos MDA para identificar las características principales que permitan la evolución del desarrollo de herramientas libres.
Los caminos marcados por instituciones y organismos internacionales de estandarización han permitido que no sean pocas las herramientas que están presentes en el mercado, resaltando su diversidad y heterogeneidad a la hora de abordar filosofías del MDA. Gracias a las investigaciones se tiene un punto de partida que permitirá establecer elementos de mayor precisión y coherencia a la hora de identificar características únicas de modelos MDA
En empresas y universidades se guiaban estudios de herramientas para el desarrollo de software y la investigación generada por OMG se dedicó a la definición de un estándar que extendiera la notación UML (Unified Model Language) con el uso de un metalenguaje que permitiera completar su alcance. “MDA automatiza la generación de código pero este es sólo un aspecto del estándar, en realidad MDA, como otras especificaciones, se propone abarcar todo el ciclo de construcción de software, definiendo elementos capaces de darle consistencia y flexibilidad al proceso, reduciendo la incertidumbre, y acelerando los tiempos de desarrollo”[1]
Por otro lado con la popularidad de arquitecturas abiertas y el terreno ganado por el software libre, los desarrolladores de software orientan sus trabajos hacia la construcción y adaptación de herramientas que permitan la generación de códigos y la transformación de modelos MDA, que aprovechen las ventajas y filosofías que el software libre contempla. Por los que se pueden encontrar en el mercado herramientas construidas de forma específica para lidiar con elementos MDA como lo es “openmdx”[2] que ofrece un framework de trabajo unificado, es compatible con tecnologías java, maneja una única interfaz para administrar todos los elementos y transforma los PIM a java apis. Bajo ese mismo enfoque se encuentra “androMDA”, herramienta que permite transformar los componentes en múltiples plataformas, maneja los denominados kits de desarrollo (expansión del aplicativo), genera interfaces web y es compatible con jsf, strauts y axis.
II. ELABORACION MODELO COMPARATIVO PARA HERRAMIENTAS MDA
Para efectuar el modelo comparativo de las herramientas MDA se opto en este proyecto seguir el esquema sugerido por la ISO/IEC 14598 y trabajos relacionados como lo fue el estudio de Universidad Rey Juan Carlos, de España[3] y una investigación desde México, realizada por el Centro Nacional de Investigación y Desarrollo Tecnológico[4], donde el desarrollo de software mediante herramientas MDA, entre otras.
Para gestionar el proceso de diseño y evaluación se determino el siguiente proceso de comparación.

Figura 1: Proceso de comparación.
1-Establecimiento de requerimientos: Se especifican los requerimientos considerados para el estudio y los límites considerando dentro de los actuares del mismo.
2-Especificación de la evaluación: Entre otros elementos de definen las características a considerar, fundamentado en los elementos del mercado MDA y de proyectos similares. Para el estudio se identificaron 28 características consideradas las de mayor prioridad.
3-Diseño de evaluación: Incluye la selección de la herramienta, iniciando con 37 de ellas y estableciendo 5 para el estudio y determinación de sus características (establecidas en el anterior numeral) empleando instrumentos de evaluación que manejan escalas de medición específicas para cada elemento objeto de estudio. Cada escala registra una serie de parámetros para controlar desde su valor hasta los rangos considerados, así como la justificación y los métodos de calcularla.
Lo anterior enmarcado dentro de un plan de evaluación, riguroso y monitoreado, que puede ser apreciado en la figura 2.

Figura 2: Plan de Evaluación
De igual forma se emplea un instrumento o artefacto para registrar las evaluaciones de cada herramienta sobre las 28 características identificadas. Soportado por instrumentos adicionales, como registros de sucesos, momentos y registro final, que contiene en forma ordenada, la clasificación de las mejores 3(tres) herramientas por cada característica. La siguiente tabla presenta un ejemplo del “registro de evaluación”.

Tabla 1: Registro evaluación.
Se diseño un caso de estudio para probarlo al interior de las herramientas brindado más herramientas al evaluador, para así determinar el grado de cumplimiento de las características consideradas. La figura 2 presenta a grandes rasgos este caso de estudio de un “Help Desk”.

Figura 3: Diagrama Help Desk
4-Ejecución evaluación: Se efectúa una verificación de las herramientas a la luz de las características consideradas y las escalas establecidas. El resultado de la evaluación se registra en los instrumentos mencionados con anterioridad y produce la siguiente información.

5-Conclusión evaluación: Es de suma importancia recalcar que se tomaron 5 herramientas MDA, se tomaron por su tipo de importancia en el desarrollo de proyectos a nivel privado como a nivel Software libre.
Observando las diferencias de las herramientas evaluadas, podemos concluir que el soporte de diferentes modelos, Faltaría establecer una herramienta que apoye los tres estándares del MDA, como son CIM, PIM y PSM. Es importante establecer que la herramienta OpenMDX es la que mas modelos de desarrollo maneja, pero no tiene un patrón de diseño estándar manejado por muchos modelos de desarrollo.
Es importante reconocer que las herramientas evaluadas trabajan estándares de desarrollo como el UML y XMI, que es de gran ayuda para el desarrollo de software utilizado por estas herramientas.
Revisando la manipulación y creación de modelos, estas herramientas apoyan los procesos de desarrollo basado en modelos, y algunos en la transformación de estos.
Es de suma importancia observar la falta de desarrollo en las transformaciones consideradas entre modelos del MDA, podemos observar que ninguna de la herramientas tiene una transformación, texto ->cim, texto<-cim o de texto algún modelo, es una falla importante si algún usuario de estas desea adaptar sus desarrollo a una nueva herramienta.
En las herramientas analizadas se observo la falta de soporte para diferentes modelos, en la cual se podrían crear o adaptar nuevos desarrollos, sin embargo algunas de estas herramientas que se tomaron se encuentra en la misma línea de desarrollo o transformación de modelos.
Si miramos a fondo el soporte y documentación de estas, nuestra conclusión seria, que se debería desarrollar más características para cada una de ellas, si la comparamos frente a herramientas de desarrollo privado.
Al terminar esta evaluación minuciosa, teniendo en cuenta diferentes características estipuladas y definidas en los cuadros anteriores, se puede concluir que el soporte es verdaderamente escaso en todas las herramientas, así como su documentación, y desarrollo.
- RESULTADOS OBTENIDOS
Con la realización del proyecto, se diseño un modelo comparativo atado a un proceso riguroso y repetible, lo que dota a un evaluador de instrumentos suficientes para efectuar sus propias comparaciones y análisis de los resultados con la seguridad de seguir una ruta establecida que se fundamenta en el registro de datos a partir de diversas perspectivas y a la luz de escalas calculadas bajo un proceso transparente y definido. Este modelo y el proceso, junto con las actividades que se desprenden de su implementación, son condensados en un artículo ajustado a la norma IEEE, con los elementos suficientes para repetir su aplicación y proponer mejoras en su diseño.
Además del artículo mencionado en el párrafo anterior, se tiene con el presente documento una guía de referencia del estado del arte del trabajo con MDA, sus herramientas, sus proyectos de investigación y diversas experiencias alrededor de todo el mundo, estos datos fueron recolectados durante la construcción del proyecto, para fundamentar el modelo a desarrollar, pero con la estructuración y rigurosidad apropiada para ser tomado como documento de referencia para futuras investigaciones o implementaciones de nuevos modelos o variantes en los existentes, en un área que no presenta variedad y riqueza en sus fuentes de datos.
Así como se cuenta con un articulo que describe la experiencia de construcción de un modelo comparativo y un documento estructurado con el compendio de los elementos que conforman un entorno MDA, también se consigue con este proyecto, establecer las estrategias de participación en proyectos de software libre y en los grupos responsables de la implementación de herramientas MDA. No solo identificando los grupos y comunidades, si no estableciendo sus canales de participación de mayor popularidad e identificando las características técnicas por mejorar a partir de los instrumentos evaluativos empleados en el presente proyecto.
CONCLUSIONES
Con el estudio realizado se determinaron diversas características que conforman entornos de desarrollo MDA, muchas de estas características ya se encuentran implementadas por herramientas tanto propietarias como libres, pero aun es necesario reforzar y apoyar aquello proyectos con filosofía abierta, para llevar a las pequeñas empresas y profesionales independientes a contar con los elementos adecuados para plasmar en sus diseños de software, las realidades empresariales y sociales del entorno en que desarrollan sus proyectos.
El modelo comparativo desarrollado, mas que un instrumento evaluativo de herramientas MDA, permitió identificar falencias en cuanto participación y divulgación de herramientas libres en la comunidad de desarrolladores, reflejado en la baja participación de los usuarios en la construcción de estas herramientas y el reducido numero de proyectos realizados con herramientas consideradas alternativas viables para desarrollos.
Aun están en crecimiento las propuestas encaminadas al desarrollo de herramientas libres en entornos MDA, algunas han desaparecido por su bajo nivel de implementación sobre proyectos empresariales; El mejoramiento de los medios de participación, el enriquecimiento de la documentación y el aumento de proyectos de investigación relacionados con el mejoramiento de estas herramientas son estrategias que deberían ser consideras por los equipos promotores de iniciativas de desarrollo.
El modelo comparativo desarrollado en este proyecto, es una herramienta que permite a los desarrolladores medir sus iniciativas, bajo un esquema estricto de ingeniería, habilitándolos para tomar decisiones de mejoramiento y encontrando los puntos a concentrar sus esfuerzos encaminados al alcance del máximo nivel en cada escala y por consiguiente al desarrollo de una herramienta MDA ajustada a las necesidades del entorno.
REFERENCIAS
[1]Abmann, Uwe. Model driven architecture: european MDA workshops: foundations and applications, MDAfa 2003 and MDAfa 2004, twente, the netherlands. 1ra edition: springer.2009.250 p. lectures notes in computer science. isbn:978-3540282402
[2]Benneko-minnema, Jan van. the land administration domain model ‘survey package’ and model driven architecture. Holanda. 219 h. Trabajo de maestria (msc geographical information management and applications).Universiteit utrecht.2008 utrecht:<http://www.msc-gima.nl/uploads/theses/datamodels/msc_gima_2008_jan_van_bennekom_minnema.pdf >
[3]Beydeda, Sami. Model-driven software development.1ra edicion: springer.2005.464 p.isbn:978-3540256137.
[4]Bollati, V, Vara, j. , Vela, B. y Marcos, e. ( 2007). Una revisión de herramientas MDA. actas del iv taller sobre desarrollo de software dirigido por modelos MDA y aplicaciones (dsdm’07). España. Páginas 91-100. disponible en: http://www.cacic2007.unne.edu.ar/papers/145.pdf
[citado en 15 de diciembre de 2009]
[5]Boronta, Artur. Moment: a formal framework for model managemment. Valencia, España. 292 h. trabajo de doctorado (doctor of philosophy in computer science and engineering),universitat politecnica de valencia. deparment of information systems and computation. 2007 politecnica:
http://dspace.upv.es/XMLui/bitstream/handle/10251/1964/tesisupv2716.pdf?sequence=1
[6]De Almeida, Pedro. MDA-model driven architecture:improving software development productivity in large-scale enterprise applications. Friboutg, Suiza. 108 h. Tesis de maestria(master software).university of fribourg.department of informatics.software engineering group.2008 fribourg: <http://diuf.unifr.ch/softeng/student-projects/completed/dealmeida/download/report-MDA.pdf>
[7]Deantoni, Julien. A MDA-based approach for real time embedded systems simulation. En: proccedings of the 9th IEEE international symposium on distributed simulation and real-time applications. IEEE computer society, Washington, Usa. 2005 . p 257 – 264. isbn: 0-7695-2462-1
[8]Favre, Liliana. Model driven architecture for reverse engineering technologies: strategic directions and system evolution.1ra ed. igi Global. 2009. 311 p. isbn: 9781615206490
[9]Frankel, David. Model driven architecture: applying MDA to enterprise computing.1ra ed.:wiley. 2003. 352 p. isbn: 978-0471319207.
[10]Gasevic, Dragan. Model driven architecture and ontology development.1ra edicion: springer. 2006. 312 p.isbn:978-3540321804
[11]Guttman, Michael. Real-life MDA: solving business problems with model driven architecture. 1ra edicion: morgan kaufmann.2006. 224 p.isbn:978-0123705921.
[12]Hespanha, Joao. The model driven architecture approach applied to the land administration domain model version 1.1 – with focus on constraints specified in the object constraint language. en: fig working week 2008 , integrating generations, stockholm, 19 p. 2008
<http://www.fig.net/pub/fig2008/papers/ts01e/ts01e_01_hespanha_etal_2962.pdf> [citado en 21 de noviembre de 2009]
[13]Kleppe, Anneke. MDA explained: the model driven architecture(tm):practice and promise.1ra edicion: addison-wesley professional.2003.192 p.isbn:978-0321194428
[14]Lano, Kevin. Advanced systems design with java, UML and MDA. 1ra ed.elsevier sicence & technology books. 2005 . 416 p. isbn: 9780750664967.
[15]Martin, Andreas; Loos, Peter. Software support for computation independent modelling in the MDA context. en: phalp, keith; jeary, sheridan; coles, melanie; seel, christian; spriesterbach, axel. proceedings of the 1st international workshop on business support for MDA. 1st international workshop on business support for MDA (MDAbiz-2008), located at tools- europe-2008, june 29 – july 3, zürich, switzerland, ceur workshop proceedings, vol. 376,ceur workshop proceedings (online), 2008. isbn issn 1613-0073.
[16]Pastor, Oscar. Model-driven architecture in practice: a software production environment based on conceptual modeling. 1ra ed : springer. 2007. 302 p. isbn:978-3540718673.
[17]Quintero, J., Anaya, R, Marin, c., bilbao, a.: Un estudio comparativo de herramientas para el modelado con UML. en: revista universidad eafit. vol. 41, no. 137 (2005) 60-73. issn: 0120-341x.
[18]Rodríguez Vicente, j. Ingeniería de modelos con MDA. Estudio comparativo de optimalj y arcstyler. Proyecto fin de carrera. Facultad de informática, Univ. De murcia. 2004.
[19]Soley, Richard. The MDA journal: model driven architecture straight from the masters.1ra ed.: meghan kiffer pr.2004. 219p. isbn:978-0929652252
[20]Stahl, Thomas. Model-driven software development: technology, engineering, management. 1ra edicion:wiley.2006.444 p. isbn:978-0470025703
[21]Wagelaar, Dennis. Platform Ontologies for the model-driven architecture. 1ra ed. 2009. 211 p. isbn:978-9054874829
[22]Wiley. Herrera, J. C.; Matteo, A. & Díaz, i. (2005), una caracterización de herramientas MDA de código abierto, in ’8º workshop iberoamericano de ingeniería de requisitos y ambientes de software (ideas´05)’. Disponible en:
<http://kuainasi.ciens.ucv.ve/ideas07/documentos/articulos_evetis/id5%20-%20herramientasMDA.pdf> [citado 15 de diciembre de 2009]