Está en la página 1de 6

IDM (Ingeniera Dirigida por los Modelos): Una nueva tendencia en el rea del desarrollo de software

Sumario Motivaciones para la IDM Principios de la IDM El enfoque MDA (Model Driven Architecture)

Algunos dtos claves Las prcticas en el mbito empresarial vs el estado del arte en el mbito acadmico La evolucin (mas y mas) rpida de los sistemas La evolucin (muy) rpida de las tecnologas

mbito empresarial En la prctica, muy pocos softwares han sido especificados va modelos explcitos, y cuando eso ocurri, estos modelos se volvieron obsoletos y luego inutilizables por varias razones: Solo el cdigo fuente esta mantenido Para muchos profesionales del rea informtica, software es sinnimo de cdigo fuente UML llev (lleva todava) inters en todo el mundo Muchos libros tienen UML en el titulo Muchas veces modelo est considerado como sinnimo de diagrama UML A pesar de eso, la utilizacin general de UML consiste en establecer esbozos que luego sern abandonados para (por fin!) escribir el cdigo mbito acadmico Numerosos trabajos de investigacin tratan de subir el nivel de abstraccin: Lenguajes de especificaciones formales Lenguajes de Descripcin de Arquitecturas (ADL) => dar a los diseadores la posibilidad de establecer modelos abstractos del software A pesar de los esfuerzos significativos de los investigadores, el impacto en las empresas est bastante limitado El estado de las practicas (diferente del estado del arte!) en la Ingeniera del Software se caracteriza siempre por el predominio casi exclusivo del cdigo La meta de la IDM es llevar soluciones a estos problemas Problema Las relaciones entre los modelos et los artefactos de software concretos: En la prctica (empresas), disociacin casi completa, a pesar de los esfuerzos de investigacin para subir el nivel de abstraccin La IDM quiere poner el(los) modelo(s) al corazn de las preocupaciones

Evolucin de los sistemas La (relativa) estabilidad que exista, ya no es la regla Cambios econmicos al nivel de la empresa (fusiones, adquisiciones) Cambios comerciales al nivel de las relaciones con los clientes y los proveedores (e-business) Los sistemas evolucionan ms frecuentemente y el impacto de la evolucin es ms importante Evolucin de las tecnologas Sistemas distribuidos: Sockets TCP/IP RPC CORBA RMI EJB Web services

Normas y estndares Objetivo: limitar el nmero de tecnologas Normalizar un middleware: CORBA (Common Object Request Broker Architecture) Independiente de los lenguajes de programacin Independiente de los sistemas operativos Para la interoperabilidad de todos los softwares, independientemente de las tecnologas utilizadas CORBA no consigui a imponerse en la industria Varias implementaciones de CORBA La guerra de los middlewares Otros middlewares han aparecido: Java/RMI Plataforma de ejecucin universal, basada en Java Los componentes de software han llegado El OMG ha desarrollado un modelo de componentes basado en CORBA: CCM (Corba Component Model) Sun propone los EJB (Enterprise Java Beans) MS .Net, Web Services basados en HTTP/XML Balance Nuevos paradigmas, nuevas tecnologas para un desarrollo ms rpido, ms eficiente Standardizacin difcil o obsolescencia rpida de cada tecnologa o guerra para imponer su tecnologa Huida hacia adelante, la mejora tecnologa es la que va a llegar.

Consecuencias

Para poder aprovechar las nuevas tecnologas y sus ventajas, hay que adaptar el sistema El coste resulta muy alto, por la mezcla del cdigo de negocio y del cdigo tcnico, se tiene que escribir otra vez casi todo el software Ninguna capitalizacin de la lgica y de las reglas de negocio Ejemplo Software de clculos cientficos distribuidos en una red de computadores - Paso de C/RPC a Java/EJB Imposibilidad de reutilizar el cdigo existente (pase del paradigma estructural a objetos / componentes) A pesar de eso, los algoritmos de distribucin de los clculos y de reparticin de las cargas sobre las maquinas no dependen de la tecnologa (lgica de negocio independiente de la tecnologa) Hacia la IDM Necesidad de separar de manera muy clara la lgica de negocio y la tecnologa utilizada Separacin de las preocupaciones (separation of concerns), uno de los principios fundamentales de la IDM Necesidad de modelizar / especificar: o La parte de negocio a un nivel abstracto o La plataforma de implementacin o De proyectar el nivel abstracto sobre la plataforma de manera automtica

La IDM MDE (Model Driven Engineering) / MDD (Model Driven Development): Favorecer una IS mas dedicada al negocio Permitir una visin de los sistemas segn varios puntos de vista (modelos) separados Integrar y poner en coherencia estas perspectivas Proponer herramientas (automticas) para la validacin de los modelos, las transformaciones de modelos et la generacin del cdigo Principios de la IDM Capitalizacin, reutilizacin de la lgica de negocio y de su modelizacin Abstraccin de las tecnologas utilizadas Adaptar una lgica de negocio a una tecnologa Evolucionar de forma ms fcil hacia nuevas tecnologas

Modelizacin La modelizacin no es un asunto reciente en la IS, los procesos de desarrollo de software tampoco (RUP, Merise) Es el uso de estos modelos que cambia Pasar de una visin contemplativa de los modelos, con objetivos de documentacin, especificacin, comunicacin. A una visin productiva, con el fin de generar el cdigo final del software para una tecnologa elegida. Separacin de las preocupaciones 2 principales preocupaciones: o Negocio: el corazn del software, su lgica o Plataforma: el espacio tecnolgico utilizado Pero varias otras preocupaciones posibles o Seguridad o Interface del usuario o Calidad de servicio Cada preocupacin se modeliza con un modelo Integracin de las preocupaciones va: o transformacin de modelos o fusin de modelos o tejido de modelos Diseo orientado a aspectos

Propsito de los modelos Para pasar a una visin productiva, y poder manipular e interpretar los modelos con herramientas, es necesario que: Los modelos sean bien definidos: nocin de meta-modelo Se pueda tratar varios meta-modelos simultneamente con el objetivo de hacer la transformacin entre 2 espacios tecnolgicos diferentes Disponer de espacios (repositorios) de modelos y de meta-modelos Disponer de herramientas y de lenguajes para hacer varias operaciones sobre los modelos (transformacin), y generar el cdigo Disponer de lenguajes especficos a algunos dominios (DSL: Domain Specific Language)

Nociones fundamentales Modelo Meta-modelo Transformacin de modelo Modelo Un modelo es una descripcin, una especificacin parcial de un sistema o Abstraccin de lo que es interesante, dentro de un marco con un objetivo definido o Vista subjetiva y simplificada de un sistema Metas de un modelo

o o Ejemplos

Facilitar la comprensin de un sistema Simular el funcionamiento de un sistema

Modelo econmico Modelo demogrfico Modelo meteorolgico

Diferencia entre especificacin y descripcin Especificacin de un sistema a construir Descripcin de un sistema existente

Un modelo se escribe con un lenguaje que puede ser: No o poco formalizado (dibujo, lengua natural) Formal, bien definido, no ambiguo: sintaxis

El modelo de tal lenguaje (utilizado para describir un modelo) es un meta-modelo Para los modelos descritos va un meta-modelo, se define una relacin de conformidad: un modelo es conforme a su meta-modelo Relacin EsConformeA marcada x Meta-modelo Un modelo es conforme a su meta-modelo La relacin de conformidad es fundamental Base de la IDM para desarrollar herramientas capaces de manipular modelos Un meta-modelo es una entidad de primera clase

La relacin de conformidad no es nueva Un texto es conforme a una ortografa et une gramtica Un programa Java es conforme al lxico y a la sintaxis del lenguaje Java Un archivo XML es conforme a su DTD Un modelo UML es conforme al meta-modelo UML

Ejemplos Lenguaje de programacin Un programa Java modeliza/simula un sistema (el programa a la ejecucin) Un programa Java es conforme a la gramtica del lenguaje Java La gramtica de Java modeliza el lenguaje Java y por consecuencias todos los programas validos El programa Java pertenece a este conjunto UML: Un diagrama UML modeliza un sistema Un diagrama UML es conforme al meta-modelo UML

El meta-modelo UML define el conjunto de los modelos UML validos Un modelo UML pertenece a este conjunto Transformacin de modelo Una transformacin es una operacin que: Coge un modelo fuente en entrada Produce un modelo destino en salida

Se puede distinguir: Transformaciones endgenas Transformaciones exgenas

Transformacin endgena En el mismo espacio tecnolgico Los modelos fuente y destino son conformes al mismo meta-modelo Transformacin de un modelo UML en otro modelo UML

Transformacin exgena Entre 2 espacios tecnolgicos diferentes Los modelos fuente y destino son conformes a meta-modelos diferentes Transformacin de un modelo UML en un programa

El enfoque MDA OMG (Object Management Group)... Final de 2000 [Soley] Origen (?) de la IDM

Caractersticas Llevar soluciones a los varios problemas planteados (evolucin de las tecnologas) Separar los aspectos de negocio y la implementacin... Basada en estndares y tecnologas del OMG (UML, MOF, OCL, QVT)

Los 2 principales niveles de modelos PIM: Platform Independent Model Modelo que representa un sistema (software) independientemente de la tecnologa utilizada Descripcin solamente de los aspectos de negocio del sistema

PSM: Platform Specific Model Modelo que representa el sistema proyectado sobre una plataforma tecnolgica especifica Tiene en cuenta los aspectos de implementacin

También podría gustarte