Desarrollo de software dirigido por modelos: quién quiere escribir código?



Documentos relacionados
SOA. Arquitectura Orientada a Servicios

BUSINESS MODELLING. Arquitecturas y procesos para integrar. sistemas y tecnologías de información. Universidad de Castilla-La Mancha (España)

Hoja de Ruta IT

De la Estrategia a la Ejecución. Germán Domínguez Rational IT Specialist IBM Software México, Rational

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática

Una puerta abierta al futuro

Service Oriented Architecture

MDA: Arquitectura Dirigida por Modelos

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Service Oriented Architecture: Con Biztalk?

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Introducción a SOA (II) Huibert Aalbers Senior Certified Software IT Architect

Oferta tecnológica: Herramienta software y método para modelar aplicaciones web independientes de dispositivo

Enterprise Analyst: Taller de Bautizo

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Cómo usar MDE para obtener Modelos de Simulación a partir de Modelos de Negocio

Tecnologías de componentes y proceso de diseño de aplicaciones basado en componentes

Elementos requeridos para crearlos (ejemplo: el compilador)

Curso de Java POO: Programación orientada a objetos

Desarrollo de Software Dirigido por Modelos

Nuevas Tendencias de Software y Creación de empresas.

PROCESOS SOFTWARE. Según esta estrategia, todo proceso debe planificarse, implantarse y evaluarse, para luego actuar sobre él.

Metodología y Framework para el Desarrollo de Aplicaciones Científicas con Computación de Alto Rendimiento a través de Servicios Web

"Módulo OOWS para StarUML" INTRODUCCIÓN

UNIVERSIDAD DE BUENOS AIRES FACULTAD DE INGENIERÍA. Documentación de Motivación del Proyecto. JMit. Java Monitoring by Introspection Tool

Capítulo 5. Cliente-Servidor.

Sistema informatizado de Trazabilidad alimentaria

CAPÍTUL07 SISTEMAS DE FILOSOFÍA HÍBRIDA EN BIOMEDICINA. Alejandro Pazos, Nieves Pedreira, Ana B. Porto, María D. López-Seijo

Generación de código para Hibernate desde modelos UML

Plataforma desarrollo Java Formación elearning tutorizada en castellano. Fabricante: Java Grupo: Desarrollo Subgrupo: Master Java

TOPICOS IV: ING. YIM APESTEGUI FLORENTINO

BI Business Intelligence Un Mercado de Alto Crecimiento

(Integrated Development Environment) Herramienta de soporte para el desarrollo de sotfware: Editor (escribir y editar programas); un

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

ARQUITECTURA ORIENTADA A SERVICIOS (SOA) EN LA JUNTA DE ANDALUCÍA

Patrones de software y refactorización de código

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Resumen obtenido de: Roger S. Pressman, Ingeniería de Software. Un enfoque práctico, quinta edición, Introducción al Diseño de Software

Fundamentos del diseño 3ª edición (2002)

Algunas Herramientas de Apoyo al Análisis y Diseño de Software. Agustín J. González ELO329: Diseño y programación orientados a objetos

Enterprise Architect y UML Básico

La siguiente generación de Datawarehouse : Más allá del Data Warehouse permitir information on demand. IBM Information Management

Interoperabilidad de Fieldbus

El presente documento describe la importancia que está tomando el cómputo distribuido en

Diseño orientado a los objetos

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

SSTQB. Nivel Fundamentos. Examen ejemplo. Programa de estudios 2010

GLOSARIO. Análisis Bottom-Up: Técnica utilizada en tareas de ingeniería inversa la cual parte de

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas...

UML, OCL y Patrones en el contexto MDA

5.1 Introducción a Servicios Web


Servicios Web con Java EE

Servicios Web con Java EE

CAPÍTULO 5. DESARROLLO Y PRUEBAS

Metodología Orientada a Objetos Clave Maestría en Sistemas Computacionales

Programador en Plataforma Java y XML

MODELO DE PLAN PRELIMINAR DE VALIDACIÓN Y VERIFICACIÓN PARA EL SISTEMA DE PROTECCIÓN DEL REACTOR CAREM

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Ingeniería de Software: Parte 2

Metodologías de diseño de hardware

UML El Lenguaje de Modelado Unificado. Maestría en Ingeniería de Software

IBM Software Development Platform

Capítulo 1 Introducción

Adquisición de Datos usando Matlab

Ingeniería de Software en SOA

Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz

Estilos Arquitectónicos

Título: Optimización de Procesos de Negocio con SOA / BPM Nombre y Apellido: Mario Bolo bolo@ar.ibm.com Fecha: 15/08/2012

Tema 6: Comparativa CORBA/Servicios Web

SISTEMAS DE INFORMACIÓN II TEORÍA

SMART FLEXIBILITY. Aportamos Soluciones y Servicios Tecnológicos innovadores basados en modelos de negocio flexibles

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Enterprise Architect

3. Horario laboral referencial: Lunes Viernes 8:00 a.m. a 6:00 p.m.

BPMN vs UML. Los Requerimientos y el Modelo del Negocio. Autor: Norberto Figuerola

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Herramienta Software y Método para Modelar Aplicaciones Web Independientes de Dispositivo

REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP

Gerencia de Procesos de Negocio (Business Process Management, BPM). Lic. Patricia Palacios Zuleta

Introducción a la Programación 11 O. Humberto Cervantes Maceda

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Unidad II. Interfaz Grafica

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

Capítulo 4 Pruebas e implementación de la aplicación CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

Arquitectura de sistema de alta disponibilidad


E-Government con Web Services

Área Académica: Sistemas Computacionales. Profesor: I.S.C. Guadalupe Hernández Coca

INTRODUCCION. Ing. Camilo Zapata Universidad de Antioquia

IBM Rational Statemate ayuda a los ingenieros de sistemas a enfrentarse a los retos del mercado de sistemas integrados complejos

BOA, un framework MDA de alta productividad

Centro de Investigación y Desarrollo en Ingeniería en Sistemas de Información (CIDISI)

Un caso de estudio para la adopción de un BPMS

SISTEMAS DE INFORMACIÓN III TEORÍA

Visión General de GXportal. Última actualización: 2009

Transcripción:

Desarrollo de software dirigido por modelos: quién quiere escribir código? Antonio Vallecillo Universidad de Málaga Ciudad Real, Abril 2006 Un recorrido por nuestra historia Ensamblador Registros: AX, BX, Segmentos: DS, SS, NOP JMP CALL RETURN Direcciones de memoria Demasiado bajo nivel Poca expresividad Programas muy complejos Ciudad Real, Abril 2005 2 1

Luego surgió la prog. estructurada Ensamblador Prog. Estructurada Estructuras de control: if while Abstracción de procedimientos Lenguajes Fortan Pascal C Demasiado bajo nivel Poca expresividad Programas muy complejos Ciudad Real, Abril 2005 3 Aparecieron los objetos Ensamblador Prog. Estructurada Prog. O. Objetos Encapsulacion de datos y comportamiento Interacciones mediante intercambio de mensajes Mecanismos: Herencia Vinculación dinámica Polimorfismo, Lenguajes: Eiffel, Smalltalk, C++, Java, Analisis Orientado a Objetos Diseño Orientado a Objetos Demasiado bajo nivel Poca expresividad Programas muy complejos Ciudad Real, Abril 2005 4 2

AIS Reports Due Dates Stores & Mrkts Smart Plus Smart Plus Launcher P16 - Tally Sheet Stock Options L02-Resource Scheduling Resumix Cobra CTS ACH Prodigy Banks - ACH and Pos to Pay Plan Administrators (401K, PCS, Life, Unicare, Solomon Smith Barney) E02-Employee Purchase Scorecard - HR P09 Bonus/HR ASIS Texlon 3.5 U16-Texlon Merch Mngr Approval AIMS Admin Data Warehouse (Interfaces to and from the M02 - Millennium P15 EES Employee Change Notice P14 On-line New Hire Entry Intercept V03- Mkt Reactions I35 - CEI Rebate Transfer ELT PowerSuite CopyWriter's Workspace AIS Calendar Broadcast Filter M03 - Millennium 3.0 Sign System PSP In-Home Repair Warranty Billing System P09 - P17 Cyborg AIMS AIMS Reporting Vendor Setup Budget Analysis Tool Insertions Orders Invoice App POS S08 - Vertex Sales Tax S03-Polling Star Repair Vendor Maintenance Printer Maintenance Printer PO Print Costing S07 - Cell Phones V01-Price Management System G02 - General Ledger C02 - Capital Projects F06 - Fixed Assets Equifax A04 - Cust Refund Chks P01- Frick Co V04-Sign System Spec Source SKU Tracking NPD, SoundScan Spec Source I18 SKU Rep Process Servers (Imaging) S20-Sales Polling A05 - AP E13 E3 Interface D01 Post Load Billing Optika AAS SiteSeer US Bank Recon File Mesa Data CTO2 U18 - CTO B01 - Stock Status B02 Merchandise Analysis Connect 3 S01 - Sales Corrections I12 Entertainment Software Connect 3 Reports Cash Over/ Short NEW Soundscan NPD Group AIG Warranty Guard S05 - House Charges I04 Home Deliveries I09 Cycle Counts I55 SKU Information ICMS Credit Roadshow I06 - Customer Order S04 - Sales Posting NARM E01-EDI Tracking Cash Receipts/Credit I10 Cycle Physical Inventory I03 Return to Vendor I14 Count Corrections 1 OTHER APPS - PC AP - Collections/Credit TM - Credit Card DB S09 - Digital Satellite System S11 - ISP Tracking L60 MDF Coop I07 Purchase Order Misc Accounting/Finance Apps - PC/NT COBA (Corp office Budget Assistant) PCBS(Profit Center Budget System) Merchandising Budget Fringe PO UAR - Universal Account Reconciliation S06 - Credit App I01 PO Receiving Depository Banks I35 Early Warning System Valley Media INVENTORY CONTROL APPS - PC Code Alarm Debit Receivings Devo Sales Display Inventory In Home Junkouts Merchandise Withdrawal Promo Credits RTV Accrual Shrink AP Research - Inv Cntrl AP Research-Addl Rpts Book to Perpetual Inventory Close Out Reporting Computer Intelligence Data Count Corrections Cross Ref for VCB Dnlds Damage Write Off Debit Receivings DFI Vendor Database Display Inventory Reconcile Display Inventory Reporting L01-Promo Analysis Support Supplier Compliance Journal Entry Tool Kit INVENTORY CONTROL APPS - PC DPI/CPI IC Batching Inventory Adj/Count Correct Inventory Control Reports Inventory Levels Inventory Roll Merchandise Withdrawal Open Receivings PI Count Results PI Time Results from Inv Price Protection Sales Flash Reporting Shrink Reporting SKU Gross Margin SKU Shrink Level Detail USM VCB Downloads I17 Customer Perceived In-Stock I06 Warehouse Management Washington, RGIS, Ntl Bus Systems X92-X96 SKU Performance SKU Selection Tool Arthur Planning Ad Expense Store Scorecard Store Budget Reporting BMP - Bus performance Mngt I15 Hand Scan Apps ACCTS REC APPS - PC 990COR Bad Debt Beneficial Fees Beneficial Reconcile JEAXF JEBFA JEBKA JEDVA JESOA JEVSA JEVSF NSF TeleCredit Fees Aparecen los componentes Ensamblador Prog. Estructurada Prog. O. Objetos Prog. O. Componentes Distribución Heterogeneidad Packaging Mecanismos: Reflexión y Metadata Polimorfismo paramétrico Home, Contenedores, Lenguajes (IDLs), IDEs os y plataformas J2EE, CORBA/CCM,.NET CBSE! Demasiado bajo nivel Poca expresividad Programas muy complejos Ciudad Real, Abril 2005 5 El problema es la complejidad Maininframe PC/NT apps Unix apps 3rd Party Interface General Maintenance Sterling VAN Mailbox (Value) I13- Auto Replenishment Employee Masterfile I05 Inventory Info S02 - Layaways I11 Price Testing V02-Price Marketing I02 - Transfers Host to AS400 Communication Store Monitor EDI Coordinator K02 Customer Repair Batch Forecasting Ad Measurement Ad Launcher Data Warehouse are not displayed on this diagram) Connect 3 PDF Transfer Cellular Rollover Diseño de una Aplicación Real (Retail) Ciudad Real, Abril 2005 6 3

Otra variante de la POO: los aspectos Ensamblador Prog. Estructurada Prog. O. Objetos Prog. O. Componentes Prog. O. Aspectos Crosscutting concerns Nuevos conceptos: Aspecto Joint point Weaving Lenguajes O. aspectos AspectJ, AOSD! Early aspects Aspectos y componentes Demasiado bajo nivel Poca expresividad Programas muy complejos Ciudad Real, Abril 2005 7 Y ahora los servicios Ensamblador Prog. Estructurada Prog. O. Objetos Prog. O. Componentes Prog. O. Aspectos Prog. O. Servicios Mayor interoperabilidad Menor acoplamiento Alta disponibilidad Nuevos conceptps Web Services WSDL, SOAP, UDDI, Semantic Web Services BPEL Servicio Service Bus SOA! Demasiado bajo nivel Poca expresividad Programas muy complejos Ciudad Real, Abril 2005 8 4

Y después? Ensamblador Prog. Estructurada Prog. O. Objetos Prog. O. Componentes Prog. O. Aspectos Prog. O. Servicios Prog. O. Eventos Prog. O. X??? Prog. O. Y??? Prog. O. Z??? Demasiado bajo nivel Poca expresividad Programas muy complejos Ciudad Real, Abril 2005 9 Qué hacemos con esto? Es preciso romper ese nudo Gordiano La programación no debe ser el centro de atención. Hay que elevar NOTABLEMENTE el nivel de abstracción Cómo se hace en otras ingenierías más maduras? Ingenierías civiles (caminos, canales, puertos, ) Arquitectura y construcción Ingeniería aeronáutica y del espacio Ciudad Real, Abril 2005 10 5

Las ingenierías tradicionales usan modelos Tan antiguos como las Ingenierías (p.e. Vitruvius) Los ingenieros tradicionales siempre construyen modelos antes de construir sus obras y artefactos Los modelos sirven para: Especificar el sistema Estructura, comportamiento, Comunicarse con los distintos stakeholders Comprender el sistema (si ya existe) Razonar y validar el sistema Detectar errores y omisiones en el diseño Prototipado (ejecutar el modelo) Inferir y demostrar propiedades Guiar la implementación Ciudad Real, Abril 2005 11 Características de los modelos [Selic, 2003] Abstractos Enfatizan ciertos aspectos, mientras que ocultan otros Comprensibles Expresados en un lenguaje comprensible por por los usuarios y stakeholders Precisos Fieles representaciones del objeto o sistema modelado Predictivos Deben de poder ser usados para inferir conclusiones correctas Baratos Mas fáciles y baratos de construir y estudiar que el propio sistema Ciudad Real, Abril 2005 12 6

Limitaciones actuales de los modelos (de software) Sólo se usan como documentación Que además no se actualiza! Gap entre el modelo y la implementación del sistema Grandes diferencias semánticas en los lenguajes respectivos No hay herramientas de propagación automática de cambios Cambios en el modelo no se reflejan en el código Cambios en el código no se reflejan en el modelo (el modelo no vuelve a usarse jamás tras la primera implementación) Los distintos modelos del sistema no se armonizan Suponen vistas de un mismo sistema, pero no hay forma de relacionarlas No hay herramientas de integración de modelos Cada lenguaje de vista tiene una semántica distinta del resto (*) No hay ni lenguajes ni herramientas para manejar modelos Solo editores, pero no hay compiladores, optimizadores, validadores, transformadores de modelos, etc. Estamos realmente hablando de Ingeniería (del software)?? Ciudad Real, Abril 2005 13 The Remarkable Thing about Software Software has the rare property that it allows us to directly evolve models into full-fledged implementations without changing the engineering medium, tools, or methods [John Hogg, 2003] Esto facilita enormemente garantizar la fiabilidad entre los modelos y los sistemas producidos, puesto que todos viven en el mismo mundo Corolario: El modelo es la implementación. Salvedad: Sólo si el modelo contiene toda la información necesaria para producir el sistema Ciudad Real, Abril 2005 14 7

Qué es un modelo (de software)? A description of (part of) a system written in a well-defined language. (Equivalent to specification.) [Kleppe, 2003] A representation of a part of the function, structure and/or behavior of a system [MDA, 2001] A description or specification of the system and its environment for some certain purpose. A model is often presented as a combination of drawings and text. [MDA Guide, 2003] A set of statements about the system. [Seidewitz, 2003] (Statement: expression about the system that can be considered true or false.) Ciudad Real, Abril 2005 15 Driven Development (MDD) Un enfoque de desarrollo de software en donde las entidades de primer nivel son los modelos y las transformaciones de modelos frente a los programas y los compiladores, que constituyeron el paradigma análogo hace treinta años MDD implica la generación (casi) automática de implementaciones a partir de modelos En MDD son claves los lenguajes, tanto de modelado como de transformación de modelos. Los modelos son conformes a meta-modelos MDA es la propuesta para MDD que hace OMG, usando sus estándares: MOF, UML, OCL, XMI, QVT MOF y UML permiten definir nuevas familias de lenguajes Ciudad Real, Abril 2005 16 8

Driven Architecture MDA es una iniciativa de la OMG Anunciada en el 2000 10 años de plazo para madurar Debe durar al menos 20 años Extiende OMA Las plataformas middleware pasan a un segundo plano La clave son los modelos MDA aboga por la separación de la especificación de la funcionalidad de un sistema, independiente de su implementación en cualquier plataforma tecnológica concreta http://www.omg.org/mda Ciudad Real, Abril 2005 17 Ventajas (esperadas) de MDA Protege la inversión ante los continuos cambios en las tecnológias Conserva los PIM de una empresa (su modelo de negocio) cuando aparece nuevo middleware Permite abordar mejor sistemas más complejos Mediante la separación de diferentes aspectos en diferentes modelos Permite la simulación y la implementación automática de los modelos Permite la integración de sistemas existentes (COTS, legacy systems) ADM: Architecture Driven Modernization Permite la especificación de los requisitos del sistema independientemente de las plataformas de implementación MBA: -Based Adquisition Ciudad Real, Abril 2005 18 9

Ejemplos de modelos MDA CIM os de casos de uso que capturan los requisitos del sistema PIM La descripción de la arquitectura software del sistema, que especifica cómo se descompone la funcionalidad básica del sistema en términos de componentes (arquitectónicos) y conectores PSM Un modelo de la implementación J2EE del sistema, expresado usando el perfil UML para EJB para representar cómo los componentes (arquitectónicos) del sistema se han de implementar como EJBs Código Los propios componentes EJBs, sus ficheros de configuración, y toda la información necesaria para realizar el deployment en las máquinas concretas Ciudad Real, Abril 2005 19 Transformaciones de os Una transformación de modelos especifica el proceso de conversión de un modelo a otro (del mismo sistema) El patron MDA incluye (al menos): un PIM, un modelo de Platforma, una transformación, y un PSM. Ciudad Real, Abril 2005 20 10

Aplicaciones sucesivas El patron MDA es normalmente utilizado sucesivas veces para producir una sucesión de cambios: El PSM resultante de una transformación se convierte en el PIM de la siguiente De esta forma, cada plataforma se concentra en un aspecto diferente del sistema, y se aplica ordenadamente Este proceso es modular y ordenado Ciudad Real, Abril 2005 21 Cómo se construye una aplicación usando MDA Platform- Independent Un modelo detallado, que especificaría la estructura del sistema, las pre- y post-condiciones en OCL, y el comportamiento en Action Semantics Language (por ejemplo) Se comienza con el Platform-Independent (PIM) que representa la lógica del negocio y su funcionalidad, independiente de los detalles de la implementación Ciudad Real, Abril 2005 22 11

Se genera el PSM CORBA Platform- Independent Se escoge una plataforma concreta, y el PIM se transforma al modelo PSM correspondiente a esa plataforma Las transformaciones pueden ser definidas con QVT, entre los metamodelos origen y destino. Las transformaciones pueden ser parcial o completamente automatizadas Ciudad Real, Abril 2005 23 Generación a múltiples tecnologías CORBA Platform- Independent Java/EJB Pero las transformaciones pueden realizarse a otras plataformas XML/SOAP Other Las transformaciones pueden ser definidas con QVT, entre los metamodelos origen y destino. Las transformaciones pueden ser parcial o completamente automatizadas Ciudad Real, Abril 2005 24 12

Generación de implementaciones Write Once, Run Everywhere Once, Generate Everywhere! CORBA Platform- Independent Java/EJB Los PSM se transforman en interfaces, código, GUIs, preguntas SQL, etc. XML/SOAP Other Es fácil contar con implementadores automáticos a partir de modelos específicos, pues son de muy bajo nivel CORBA Java/EJB XML/SOAP Other Ciudad Real, Abril 2005 25 ADM e integración de sistemas Legacy App Platform- Independent COTS App Usamos ingeniería inversa para construir modelos de aplicaciones existentes Other Code Muy útil para: (1) Integración en nuestra aplicación de COTS, sistemas de terceras casas, y sistemas heredados (2) Architecture Driven Modernization: modernización de sistemas actuales NASA, DoD, EDF, Banca Ciudad Real, Abril 2005 26 13

Generación de bridges CORBA Platform- Independent Los bridges se construyen a partir de los modelos XML/SOAP Los bridges (puentes) pueden generarse de forma automática en la mayoría de los casos, tanto dentro de la propia empresa, como para lograr interoperabilidad entre sistemas de diferentes compañías CORBA System Interop Bridge XML/SOAP System Ciudad Real, Abril 2005 27 Ventajas Cada modelo es independiente del resto Se definen de forma separada Cada modelo define sus propias entidades, reside en un nivel de abstracción adecuado, y se expresa en un lenguaje apropiado para el tipo de stakeholders interesados en ese tipo de modelo El proceso de desarrollo software se convierte en transformación de modelos Cada paso selecciona una plataforma y transforma uno o mas PIM del sistema en uno (o más) PSM del mismo...hasta que se llegue a la implementación final del sistema Las transformaciones pueden automatizarse Ganamos modularidad, flexibilidad y facilidad de evolución Los modelos de la aplicación que capturan la lógica del negocio y la propiedad intelectual se convierten en los principales activos de la empresa, y son independientes de la(s) tecnología(s) en las que serán implementados Ciudad Real, Abril 2005 28 14

Pero... De verdad crees que funciona esto del MDD? Sinceramente, tu crees en eso de pintar dos cajas y tres líneas y obtener todo el código de tu aplicación? Seremos capaces de generar código a partir de modelos, incluso cuando todavía no estamos de acuerdo ni en cómo representar el comportamiento? La mejor respuesta a esta pregunta la dan las experiencias que actualmente han demostrado que (en ciertos dominios de aplicación) MDA no sólo es factible, sino que consigue mejoras espectaculares en la productividad y la calidad de los productos desarrollados Ciudad Real, Abril 2005 29 Éxitos (hasta la fecha) Lockheed Martin (F16 mission computer) Nortel (Passport) TRW Automotive BAE Systems (Stingray torpedo) US DoD SIAP (Single Integrated Air Picture) US Goverment -based Adquisition US ERA (Electronic Record Archives) Usando herramientas y sistemas de: Kennedy Carter iuml MDA y ADM usando UML ejecutable IO-Software ArcStyler, Compuware Optimal/J, Borland Together, etc. Herramientas MDA de carácter general, muy útiles para aplicaciones distribuidas (J2EE o CORBA), aplicaciones Web, o aplicaciones orientadas a servicios. Kabira s Adaptive Realtime Infrastructure (ARI) Aplicaciones para sistemas distribuidos transaccionales Secant technologies Aplicaciones de extracción de conocimiento Ciudad Real, Abril 2005 30 15

Conclusiones? MDD eleva el nivel de abstracción de programas a modelos Igual que los lenguajes de programación estructurada elevaron el nivel de abstracción del ensamblador MDA es la propuesta de OMG para hacer MDD, usando sus estándares: UML, MOF, XMI, OCL, QVT Las ideas son buenas, los primeros resultados están aquí ( y son buenos!) y la dirección parece la adecuada Algunos peros: las herramientas y la tecnología que soporta MDA no están del todo maduras La compatibilidad y portabilidad entre modelos no funciona del todo Hay pocas experiencias todavía De todas formas, se plantearía a día de hoy si usar o no lenguajes de programación, frente a ensambladores, para construir sus aplicaciones? Ciudad Real, Abril 2005 31 Gracias! av@lcc.uma.es http://www.lcc.uma.es/~av 16