Académique Documents
Professionnel Documents
Culture Documents
Tipo de artculo: Artculo original Temtica: Ingeniera de software Recibido: 18/01/2012 | Aceptado: 20/02/2012 | Publicado: 15/03/2012
Una introduccin al desarrollo de software dirigido por modelos An introduction to the development of model-driven software
Isabel Mara Higuera Igarza1* , Darin Horacio Grass Boada1 , Arianna Pez Valds 2
1
Carretera a San Antonio de los Baos, km 2 , Torrens, Boyeros, La Habana, Cuba. CP. 19370
3
Facultad 2. Universidad de las Ciencias Informticas, Carretera a San Antonio de los Baos, km 2 , Torrens,
Resumen En un mercado dinmico como el actual, el cual promueve la competencia, las empresas estn obligadas a llevar sus ideas y proyectos lo ms rpido posible a la realidad. Por este motivo, el desarrollo de software ha venido evolucionando constantemente, reduciendo los tiempos de desarrollo, y mejorando la calidad de los productos. El Desarrollo de Software Dirigido por Modelos es sin lugar a dudas el esquema de desarrollo que ms atencin recibe a nivel mundial. El presente artculo muestra un acercamiento a sus orgenes, etapas, ventajas y desventajas, as como algunas de las caractersticas ms importantes que posee. Palabras clave: Desarrollo de software dirigido por mode los, generacin de cdigo, modelos. Abstract In a dynamic market like this, which promotes competition, companies are forced to take their ideas and projects as quickly as possible to reality. For this reason, the software development has been evolving constantly, reducing development time and improving product quality. Development of Model-Driven Software is without doubt the most development scheme received worldwide attention. The present article shows one approach to its origins, stages, advantages and disadvantages as well as some important features he owns.
Serie Cientfica de la Universidad de las Ciencias Informticas http://publicaciones.uci.cu/index.php/SC | seriecientifica@uci.cu No. 3, Vol. 5, Ao: 2012 ISSN: | RNPS:
Introduccin
En el mercado actual las empresas estn obligadas a ser flexibles y dinmicas, lo cual implica que deben ser capaces de desarrollar sus ideas lo ms rpido posible para poder ser competitivas y no desaparecer. Las empresas de software han tenido que buscar alternativas que optimicen sus procesos de desarrollo y aumenten la rentabilidad de cada producto desarrollado. Una alternativa se basa en la reutilizacin, en donde se hace uso de un mismo conjunto de artefactos de software durante la fase de desarrollo de cada producto. Paralelamente a la evolucin de la tecnologa se han creado varias plataformas para el desarrollo de software que soportan cada vez ms funcionalidades. Estas plataformas son generalmente heterogneas, es decir, que a pesar de ofrecer interfaces similares, estas no se crean ni se utilizan de la misma manera. Esto implica que las aplicaciones se desarrollen sobre una plataforma en particular y solamente puedan ejecutarse sobre esta. Desarrollo de Software Dirigido por Modelos (MDD, por sus siglas en ingls) es una aproximacin para solucionar el problema asociado a la complejidad de cada plataforma tecnolgica y la inhabilidad que experimentan los lenguajes de propsito general en aliviar esta complejidad. MDD propone el uso de modelos como elementos de primera clase (que pueden ser procesados por un computador o herramienta) para el desarrollo de software. De acuerdo a lo anterior, estos modelos se pueden utilizar para representar los conceptos del negocio y la solucin del problema en sus diferentes niveles (arquitectura, tecnologa, etc.) (Ceballos, 2009). El principal objetivo del presente trabajo es caracterizar el desarrollo de software dirigido por modelos MDD lo cual permitir identificar problemas comunes, analizar las soluciones existentes y definir lneas de trabajo e investigaciones futuras. El mtodo cientfico utilizado para el desarrollo de esta investigacin es el terico, especficamente el mtodo histrico debido a que se analiza la trayectoria completa del paradigma MDD, revela las principales etapas de su desenvolvimiento y las conexiones histricas fundamentales.
Desarrollo
1. Qu es un modelo?
Un modelo es una representacin abstracta de un sistema y la porcin del mundo que interacta con l. (Ceballos, 2009) Los modelos en la ingeniera de software generalmente se utilizan para documentar elementos del problema y
Serie Cientfica de la Universidad de las Ciencias Informticas http://publicaciones.uci.cu/index.php/SC | seriecientifica@uci.cu No. 3, Vol. 5, Ao: 2012 ISSN: | RNPS:
la solucin, ofreciendo un grado de abstraccin alto con respecto a lo esencial del problema, puesto que responden preguntas sobre el sistema de software y la porcin del mundo que es de inters para los stakeholders1 . Segn Escobar (2011), un modelo tiene un grado de abstraccin cuidadosamente seleccionado para: Descartar detalles irrelevantes (reduce la complejidad). Descartar detalles constantes en la familia (reduce la complejidad). Explicitar los aspectos importantes (variables) (no oculta lo relevante). Un modelo oculta ciertos detalles para mostrar aquellos relevantes para cierto propsito y se expresa en algn lenguaje o notacin (Molina, 2011).
Los modelos permiten especificar aspectos del sistema software tales como los requisitos, la estructura, el comportamiento o el despliegue. En el anlisis y diseo de aplicaciones software se crean modelos (planos del software) antes de escribir el cdigo. A finales de los noventa aparece UML (del ingls, Unified Modeling Language) como lenguaje estndar para realizar modelado de software, la Figura 2 muestra un ejemplo de modelos y diagramas UML.
Stakeholders: es aquella persona o entidad que est interesada en la realizacin de un proyecto o tarea, auspiciando el mismo ya sea mediante su poder de decisin o de financiamiento, o a travs de su propio esfuerzo .
Serie Cientfica de la Universidad de las Ciencias Informticas http://publicaciones.uci.cu/index.php/SC | seriecientifica@uci.cu No. 3, Vol. 5, Ao: 2012 ISSN: | RNPS:
Los modelos son de gran utilidad porque ayudan a razonar sobre el cmo se implementa, facilita la comunicacin entre el equipo al existir un lenguaje comn, proporcionan documentacin que trasciende al proyecto, hay estructuras que no son visibles en los programas y tambin facilitan la generacin de cdigo a partir de modelos (Molina, 2011).
1.2 El metamodelo
Para poder realizar modelos resulta necesario un metamodelo del lenguaje. El metamodelo de un lenguaje es una descripcin de todos los conceptos que pueden usarse en el mismo. Por ejemplo, los conceptos de paquete, clase, atributo y operaciones aparecen en UML; los conceptos de mtodos, constructores e interfaces en JAVA; los conceptos de tabla, columna, clave son parte de SQL. Cada elemento de un modelo es una instancia de una metaclase en el metamodelo. Una clase define a sus objetos y una metaclase define a los elementos del modelo. El meta-modelado consiste bsicamente en dotar a los creadores de modelos de abstracciones apropiadas para su dominio particular, esto implica definir conceptos ms especficos (Jimnez, 2011).
Serie Cientfica de la Universidad de las Ciencias Informticas http://publicaciones.uci.cu/index.php/SC | seriecientifica@uci.cu No. 3, Vol. 5, Ao: 2012 ISSN: | RNPS:
El conjunto de estos modelos forman el Modelo Conceptual. El Modelo Conceptual se utiliza para representar las actividades que elicitan y describen el conocimiento general que un sistema particular debe ofrecer (Juristo, 2007).
Serie Cientfica de la Universidad de las Ciencias Informticas http://publicaciones.uci.cu/index.php/SC | seriecientifica@uci.cu No. 3, Vol. 5, Ao: 2012 ISSN: | RNPS:
El Modelo Conceptual est compuesto por varios modelos y cada modelo representa una vista diferente del sistema. Los modelos tienen relaciones entre s que permiten la transformacin de un modelo a otro de un nivel menos abstracto. A estas relaciones se les conoce con el nombre de mapeos2 y hacen posible que en cada nivel de abstraccin se expresen diferentes aspectos del sistema, manteniendo sincronizados los modelos de cada nivel. El procedimiento que transforma los modelos al cdigo de un lenguaje de programacin se denomina Compilacin de Modelos. La Figura 4 muestra un esquema con todos los conceptos de MDD (Juristo, 2007).
La iniciativa MDD cubre un amplio espectro de reas de investigacin: lenguajes para la descripcin de modelos, definicin de lenguajes de transformacin entre modelos, construccin de herramientas de soporte a las distintas tareas involucradas, aplicacin de los conceptos en mtodos de desarrollo y en dominios especficos, etc. Para esto
2
Serie Cientfica de la Universidad de las Ciencias Informticas http://publicaciones.uci.cu/index.php/SC | seriecientifica@uci.cu No. 3, Vol. 5, Ao: 2012 ISSN: | RNPS:
MDD propone el uso de un conjunto de estndares como MOF (del ingls, Microsoft Operation Framework ), UML (del ingls, Unified Modeling Lenguage ) y QVT (del ingls, Query/View/Transformation ). Actualmente, algunos de estos estndares estn bien fundamentados y se estn empezando a aplicar con xito, otros sin embargo estn todava en proceso de definicin.
Serie Cientfica de la Universidad de las Ciencias Informticas http://publicaciones.uci.cu/index.php/SC | seriecientifica@uci.cu No. 3, Vol. 5, Ao: 2012 ISSN: | RNPS:
de aplicacin particular. Entre las ventajas ofrecidas por los DSLs se encuentran que tienen una mayor expresividad y facilidad de uso, incremento de la productividad, reduccin de los costes de mantenimiento, facilitan comprensin de los expertos del dominio, mayor nmero de desarrolladores (Molina, 2011). Factoras de Software = Lneas de Producto Software + MDD (MDD Fundamentos): una Ingeniera de Lnea de Producto de Software (SPLE) es una familia de sistemas que comparten un conjunto de caractersticas administrables, las cuales satisfacen las necesidades especficas de un mercado o segmento particular y que son desarrolladas a partir de un conjunto comn de activos base. Un activo base es un artefacto de software que se usa en la produccin de varios productos, este puede ser un componente de software, una arquitectura, un modelo, un proceso, un documento o cualquier otro elemento til en la construccin de un sistema. De acuerdo al enfoque MDD, el aumento en el nivel de abstraccin permite representar el modelo del problema y utilizarlo como elemento de primera clase para obtener el modelo de la solucin independiente de la plataforma a travs de transformaciones sucesivas. Si se incorpora el enfoque MDD dentro de una SPL se puede aprovechar su carcter generativo para facilitar la derivacin de los productos a travs de la representacin del problema y no de la solucin. Adicionalmente, este enfoque permite generar soluciones que no estn basadas en una tecnologa especfica. De esta manera, se abre la posibilidad de representar la misma solucin del problema en diferentes plataformas. De acuerdo al enfoque MDD en donde los modelos representan elementos de primera clase y la derivacin del software se realiza de manera generativa, los elementos involucrados en esta generacin representarn los activos base de una Lnea de producto (Ceballos, 2009).
Serie Cientfica de la Universidad de las Ciencias Informticas http://publicaciones.uci.cu/index.php/SC | seriecientifica@uci.cu No. 3, Vol. 5, Ao: 2012 ISSN: | RNPS:
y las herramientas de generacin pueden aplicar framework, patrones y tcnicas cuyo xito se ha comprobado (Rotela, 2007).
2.7 Deficiencias
Segn Molina (2011), en los aspectos tcnicos se pueden observar las siguientes deficiencias: Pobre usabilidad de las herramientas. Problemas de interoperabilidad entre herramientas. Problemas de escalabilidad de los modelos. Falta base terica, tecnologa actual desarrollada ad-hoc. En los aspectos culturales se pueden observar las siguientes deficiencias: Falta concienciacin sobre su potencial. Dificultad de introducir nuevos mtodos en la empresa. Mentalidad conservadora de muchos profesionales, inercia al cambio. En los aspectos econmicos se pueden observar las siguientes deficiencias: Empresas centradas en el corto plazo para conseguir el ROI.
Serie Cientfica de la Universidad de las Ciencias Informticas http://publicaciones.uci.cu/index.php/SC | seriecientifica@uci.cu No. 3, Vol. 5, Ao: 2012 ISSN: | RNPS:
2. Principales autores
MDD comenz en Gran Bretaa en 1994 como un consorcio de compaas del Reino Unido que queran construir sobre Rapid Application Development (RAD, por sus siglas en ingls) y desarrollo iterativo. Habiendo empezado con 17 fundadores ahora cuenta con ms de mil miembros y ha crecido fuera de sus races britnicas. Siendo desarrollado por un consorcio, tiene un sabor diferente a muchos de los otros mtodos giles. Tiene una organizacin de tiempo completo que lo apoya con manuales, cursos de entrenamiento, programas de certificacin y dems. Tambin lleva una etiqueta de precio, lo que limita la investigacin sobre su metodologa (Escobar, 2011). Surgi con xito en la era de la generacin cuarta herramienta, hasta el punto que hoy existe una unidad entre un amplio nmero de expertos en modelizacin y proveedores de herramientas de todo el Lenguaje Unificado de Modelado (UML, por sus siglas en ingls), dirigido por el Object Management Group (OMG, por sus siglas en ingls) y sus Model Driven Architecture (MDA, por sus siglas en ingls) estndar. Sin embargo, MDD no siempre resultan ser popular entre los desarrolladores del ncleo duro, ya que muchos de ellos prefieren el cdigo en lugar de construir modelos. Es en las grandes empresas con grandes necesidades, como la defensa y aeroespacial, que es ms probable encontrar la actividad de modelado.
Conclusiones
En este artculo se han mostrado algunos elementos del paradigma MDD, se puede observar que el desarrollo de software dirigido por modelos cobra cada vez ms auge dentro de la comunidad de desarrolladores, debido a que es una tendencia contempornea relevante en la ingeniera de software. Los beneficios radican en poder manejar proyectos complejos, acortar los ciclos de desarrollo y gestionar adecuadamente los niveles de expectativas de los interesados (stakeholders). La idea fundamental es representar los diversos aspectos y fases del desarrollo de un producto de software comenzando desde modelos del mbito del problema, pudiendo incluso utilizar lenguajes de modelado propios de este mbito, y va transformaciones, obtener productos de software confiables y que respondan a las necesidades del mbito de aplicacin. Lo anterior permite mejorar la gestin y el control de calidad sobre proyectos de software debido a que el control es establecido sobre modelos ms que sobre porciones de un programa.
10
Serie Cientfica de la Universidad de las Ciencias Informticas http://publicaciones.uci.cu/index.php/SC | seriecientifica@uci.cu No. 3, Vol. 5, Ao: 2012 ISSN: | RNPS:
Referencias CEBALLOS, A. R. y. F. "Lneas de Productos de Software Dirigidas por Modelos (MD-SPL): Oportunidades y Retos." 2009. - ESCOBAR, K. R. "Un acercamiento al Desarrollo Dirigido por Modelos." Serie Cientfica de la Universidad de las Ciencias Informticas 4. 2011. - FONS, V. P. A. V. J. M. J. Actas del I Taller sobre Desarrollo Dirigido por Modelos, MDA y Aplicaciones (DSDM04). Mlaga, Espaa. 2004. - JIMNEZ, R. M. Metodologa de generacin automtica de aplicaciones colaborativas. Espaa, UNIVERSIDAD AUTNOMA DE MADRID: 142. 2011. - JURISTO, J. I. P. F. V. . P. N. Modelado de la Usabilidad en Entornos de Desarrollo Dirigidos por Modelos. Espaa. 2007. - MOLINA, J. J. G. Creacin de Lenguajes Especficos del Dominio, Universidad de La Habana. 2011. - MOLINA, J. J. G. Fundamentos del Desarrollo de Software Dirigido por Modelos, Universidad de La Habana. 2011. - ROTELA, R. O. MDA Model Driven Architecture Arquitectura Dirigida por Modelos - MDD Model Driven Development Desarrollo Dirigido por Modelos. Espaa, Universidad Catlica Nuestra Seora de la Asuncin. 2007.
11