Vous êtes sur la page 1sur 11

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:

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

Departamento de Programacin e Ingeniera de Software. Facultad 2. Universidad de las Ciencias Informticas,

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,

Boyeros, La Habana, Cuba. CP. 19370

{imhiguera, dgrass}@uci.cu; apaez@estudiantes.uci.cu

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:

Keywords: Code generation, development of model-driven software, models.

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).

1.1 Qu es un modelo del software?


Un modelo de software es una descripcin de un aspecto de un sistema software, escrita en un lenguaje bien definido. (Molina, 2011) La figura 1 muestra un modelo de clases UML como ejemplo de un modelo de software.

Figura 1. Modelo de clases UML

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:

Figura 2. Modelos / Diagramas UM L

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).

1.3 Modelo Conceptual


Los modelos estn compuestos por un conjunto de Primitivas Conceptuales, que son los ladrillos utilizados para su construccin. Formalmente, se pueden definir las Primitivas Conceptuales como un elemento del lenguaje de modelado que permite representar de forma abstracta algn aspecto del sistema. Las Primitivas Conceptuales estn agrupadas por modelos (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 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).

1. Desarrollo de Software Dirigido por Modelos


El Desarrollo de Software Dirigido por Modelos es un paradigma de ingeniera del software que propone el uso de modelos para conducir las distintas fases del desarrollo.(Jimnez, 2011) Adems promete elevar los niveles de abstraccin y automatizacin. 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). Cada uno de los modelos representan un aspecto distinto del sistema, por ejemplo, puede haber un modelo para representar la persistencia, otro para representar la funcionalidad y otro para representar la interfaz (Juristo, 2007). MDD utiliza un tipo determinado de lenguaje de programacin que son los lenguajes especficos de dominio (DSL por sus siglas en ingls), los cuales presentan notables diferencias respecto a los lenguajes de propsito general. Los DSLs ofrecen las siguientes ventajas frente a los lenguajes de propsito general: (Jimnez, 2011) Proporcionan implementaciones prediseadas que representan los conceptos fundamentales del dominio. Proporcionan notacin natural y evita el desorden sintctico. Permiten analizadores estticos que pueden detectar ms errores. Permiten la opcin de generar cdigo optimizado. Permiten mejorar herramientas del entorno de desarrollo. Un entorno MDD parte de un Modelo Conceptual donde se presenta el sistema de forma abstracta. Al Modelo Conceptual se pueden aplicar reglas de transformacin para generar el cdigo que implemente lo especificado en el Modelo Conceptual (Figura 3). Estas transformaciones se pueden automatizar mediante un Compilador de Modelos. Es este caso, el proceso MDD se automatiza y aparece el concepto de Tecnologa de Transformacin de Modelos (TTM), el cual se define como la capacidad de tomar un modelo abstracto y transformarlo de forma automtica en otro modelo o cdigo (Juristo, 2007).

Figura 3. Proceso de generacin de cdigo en una tecnologa de transformacin de modelos.

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).

Figura 4. Vista esquemtica de los componentes de un modelo conceptual.

2.1 Objetivos principales del enfoque MDD


Dentro de los objetivos principales del enfoque MDD segn Rotela (2007) se encuentran: Mejorar la calidad del software. Mejorar la mantenibilidad del software. Mejorar los niveles de reusabilidad. Manejo de la complejidad abstraccin. Productividad. Interoperabilidad.

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

Proyectar un modelo en otro de menor nivel de abstraccin

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.

2.2 Etapas de MDD


MDD distingue al menos las siguientes etapas: (Escobar, 2011). La construccin de un modelo del dominio, denominado CIM, que expresa la lgica del negocio desde una perspectiva independiente de la computacin. La construccin de los Modelos Independientes de la Plataforma (PIM), que expresa la funcionalidad del sistema en forma independiente de las caractersticas de plataformas de implementacin especficas. La transformacin de un Modelo Independiente de la Plataforma (PIM), en uno o ms Modelos Especficos de la Plataforma (PSM). La transformacin de modelos especficos de la plataforma (PSM) a modelos de implementacin, denominados ISM.

Figura 5. Etapas de MDD.

2.3 Diferentes Visiones o Paradigmas MDD


Model-Driven Architecture (MDA): es un estndar de OMG (del ingls, Object Management Group ) que defiende el MDD y agrupa varios lenguajes que pueden usarse para seguir esta aproximacin. Segn esta afirmacin, MDA posee el valor aadido de proporcionar lenguajes con los que definir mtodos que sigan MDD. Sin embargo, MDA no es por s mismo un mtodo que define tcnicas, etapas, artefactos, etc, solamente proporciona la infraestructura tecnolgica y conceptual con la que construir estos mtodos MDD (Fons, 2004). En s MDA no puede ser utilizado directamente para desarrollar software, es necesario que se construyan mtodos precisos que proporcionen a los equipos de desarrollo pautas y tcnicas que stos puedan seguir y utilizar. Domain-Specific Development (Desarrollo basado en DSL): Un lenguaje especfico del dominio (DSL, por sus siglas en ingls) proporciona construcciones y notacin apropiada para resolver problemas en un dominio

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).

2.4 Ejes principales de MDD


Por un lado hace nfasis en la separacin entre la especificacin de la funcionalidad esencial del sistema y la implementacin de dicha funcionalidad usando plataformas tecnolgicas especficas. Para ello, el MDD identifica dos tipos principales de modelos: modelos con alto nivel de abstraccin e independientes de cualquier tecnologa de implementacin, llamados PIM (del ingls, Platform Independent Model) y modelos que especifican el sistema en trminos de construcciones de implementacin disponibles en alguna tecnologa especfica, conocidos como PSM (del ingls, Platform Specific Model). Por otro lado, los modelos son considerados los conductores primarios en todos los aspectos del desarrollo de software. Un PIM es transformado en uno o ms PSMs, es decir que para cada plataforma tecnolgica especfica se genera un PSM especfico. La transformacin entre modelos constituye el motor del MDD y de esta manera los modelos pasan de ser entidades meramente contemplativas a ser entidades productivas. MDD reduce el salto semntico entre el dominio del problema y de la solucin, se reducen los tiempos de desarrollo

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.5 Aportaciones de MDD


Todos los autores estn de acuerdo en que el aspecto novedoso de MDD respecto a los mtodos tradicionales de desarrollo de software que usan modelos es que los modelos dejan de ser utilizados nicamente para la documentacin o como gua para la implementacin, convirtindose en el artefacto principal del proceso de desarrollo. Una vez especificado el sistema, los modelos se transforman en el producto final. La clave para que sea posible llevar a cabo la filosofa de desarrollo promulgada por MDD es la transformacin de los modelos. Hasta ahora esta etapa era ignorada o tratada de forma escueta e informal por los mtodos que utilizaban modelos.

2.6 Ventajas de MDD


Segn Molina (2011), las principales ventajas que tiene MDD es que: Proporciona una elevacin del nivel de abstraccin debido a que se estudian los niveles de conceptos cercanos al dominio del problema. El cdigo fuente final se genera a partir de especificaciones de alto nivel (automatizacin) proporcionado una mayor productividad, mayor calidad, favorece el mantenimiento, los usuarios no expertos puede escribir cdigos con ms facilidad.

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:

Dificultad de encontrar personas con experiencia.

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

Vous aimerez peut-être aussi