UML, OCL y Patrones en el contexto MDA



Documentos relacionados
MDA: Arquitectura Dirigida por Modelos

El Proceso Unificado Rational para el Desarrollo de Software.

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

Enterprise Analyst: Taller de Bautizo

Una recomendación basada en MDA, BPM y SOA para el desarrollo de software a partir de procesos del negocio en un contexto de Negocio Bajo Demanda

Enterprise Architect y UML

Enterprise Architect y UML Basic

Desarrollo de Software con enfoque en el Negocio

Trabajo de Grado Análisis comparativo de Lenguajes Notacionales para Modelado de Procesos

Model Driven Development (MDD)

Departamento de Lenguajes y Sistemas Informáticos

Transformación de modelos en el proceso de obtención de Modelos Conceptuales partiendo de BPMN

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

Extensión MDA (Model Driven Architecture) para proceso basado en RUP (Rational Unified Process)

Enterprise Architect

El Proceso Unificado de Desarrollo de Software

Introducción. El uso de la ingeniería guiada por modelos para el aseguramiento de la calidad

UML. Lenguaje de Modelado Unificado

Desarrollo de un Modelo Computacional basado en Arquitectura Orientada a Modelos para la Transformación de un Diagrama de Clases en Código Fuente Java

"Módulo OOWS para StarUML" INTRODUCCIÓN

Una Aproximación para Aplicaciones Web: MOWEBA

MDA TOOLS COMPARISON

Definición de Lenguajes de Modelos MDA vs DSL

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.1 UML: Introducción

Syllabus.

Diseñando Transformaciones de Modelos CIM / PIM: desde un enfoque de negocio hacia un enfoque de sistema

Definición de Rich Internet Applications a través de Modelos de Dominio Específico. Rivero, José Matías Buzzo, Marcos Hernán

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

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO UNIDAD DIDÁCTICA : ANÁLISIS Y DISEÑO DE SISTEMAS INFORMÁTICOS

BOA, un framework MDA de alta productividad

Vicente Pelechano. Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia

MARCO DE REFERENCIA PARA LA GESTIÓN DE TI EN EL ESTADO COLOMBIANO

PEEPER PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERIA CARRERA DE INGENIERIA DE SISTEMAS. Mayo Versión 2.1 OSCAR IVAN LÓPEZ PULIDO

Sistema de Mensajería Empresarial para generación Masiva de DTE

DIAGRAMA DE CLASES EN UML

Introducción a la ingeniería del software dirigida por modelos Curso

IBM Rational Software Architect/Modeler

OMG UML 2.0 Marcando un hito en el desarrollo de software Resumen Keywords Historia del Surgimiento

Elementos requeridos para crearlos (ejemplo: el compilador)

Iván Ruiz Rube Departamento de Ingeniería Informática Escuela Superior de Ingeniería Universidad de Cádiz

Propiedad Colectiva del Código y Estándares de Codificación.

Reporte Técnico RT 07-02

Curso de UML 2.0: Patrones de Diseño de Software

Un Análisis Crítico de la Aproximación Model-Driven Architecture

PROPUESTA DE INCLUSIÓN DE MDA EN INGENIERÍA DE SISTEMAS DE LA UNIVERSIDAD TECNOLÓGICA DE PEREIRA

Anteproyecto Fin de Carrera

El proceso unificado en pocas palabras

Arquitectura cliente/servidor

CAPÍTULO 5. DESARROLLO Y PRUEBAS

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

PLIEGO DE PRESCRIPCIONES TÉCNICAS PARA LA CONTRATACIÓN DE SERVICIOS DE MANTENIMIENTO DEL SISTEMA DE INFORMACIÓN ESTADÍSTICO DE LA CONSEJERÍA DE

Ambiente Virtual de Comercio Electrónico B2B para la Comunidad Virtual de Negocios del departamento del Cauca

Ingeniería del Software

quiénes somos Agosto 2006

Presentación de servicios. Estimado Cliente

Mejoramiento en la productividad de software por la adaptación de un marco de desarrollo ágil.

Oscar Alberto, Custodio Izquierdo Carlos Arturo, Hernández Torruco José Fecha de elaboración: 28 de Mayo de 2010 Fecha de última actualización:

II. PROPÓSITO GENERAL DEL CURSO

Ingeniería de Software I

Programa de Cátedra Desarrollo de Aplicaciones Cliente Servidor

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

Proceso Unificado de Rational

MDE Aplicaciones. Juan Manuel Cueva Lovelle B. Cristina Pelayo García-Bustelo Universidad de Oviedo

Desarrollo Dirigido por Modelos de Procesos de egocio Colaborativos: Análisis de herramientas para la transformación de modelos

QUÉ ES Y PARA QUÉ SIRVE UML? VERSIONES DEL LENGUAJE UNIFICADO DE MODELADO. TIPOS DE DIAGRAMAS. INGENIERÍA DEL SOFTWARE (DV00205D)

Consideraciones para implementaciones BPM y EDA

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

CONFIGURACIÓN DE LA METODOLOGÍA OPENUP V1.0. Centro Ideoinformática

IN 579 Tendencias y soluciones TI en los modelos de negocio. Clase 5 Semestre 02/2007

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

Ingeniería de Software

Ingeniería de Software I

Calidad Escuela de Ingeniería de Sistemas y Computación Desarrol o de Software II Agosto Diciembre 2007

Nuevas Tendencias de Software y Creación de empresas.

Syllabus.

2 E STADO DEL ARTE Modelado Lenguajes Formales UML XML Herramientas Específicas de Dominio Aproximaciones a la Integración de Herramientas

cenidet Centro Nacional de Investigación y Desarrollo Tecnológico Departamento de Ciencias Computacionales

Software Reutilizable. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 1

REPUBLICA DE HONDURAS SECRETARIA DE FINANZAS

Conceptos básicos de Ingeniería de Software

Capítulo II. Arquitectura del Software

Analista Programador

TEMA 1.-Programación orientada a objetos (POO) Objetivo

Capítulo 7: Introducción a la dinámica de servicios Web

Ingeniería de Software

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

Baires. Design - Test - Automate

8. Desarrollo de aplicaciones web

CAPÍTULO 2 ANTECEDENTES

Hacia la Integración de Técnicas de Pruebas en Metodologías Dirigidas por Modelos para SOA

PROCEDIMIENTO OPERATIVO DESARROLLAR SISTEMAS INFORMÁTICOS PDO-COCTI-DTIN-04

Curso: Arquitectura Empresarial basado en TOGAF

Introducción al curso CONTENIDOS Y REGLAS

Arquitectura cliente/servidor

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

Ingeniería de Software

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ SECRETARÍA GENERAL FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES DESCRIPCIÓN DE CURSO DE LA CARRERA DE

Ingeniería de Software: Parte 2

Capítulo 11. Conclusiones y trabajo futuro

Fundamentos de Ingeniería del Software. Capítulo 8. Introducción a los métodos de desarrollo de software

Transcripción:

UML, OCL y Patrones en el contexto MDA Ana Garis email: agaris@unsl.edu.ar Maestría en Ingeniería de Software

Agenda Model Driven Architecture (MDA) Unified Modeling Language (UML) y Perfiles UML Object Constraint Language (OCL) Patrones Conclusiones

Modalidad del curso Marco teórico Trabajo práctico diario Trabajo práctico final

Arquitectura Dirigida por Modelos (Model Driven Architecture -MDA-) Maestría en Ingeniería de Software

Contenido Model Driven Architecture (MDA) Motivaciones Modelo Lenguajes de especificación Metamodelo Introducción a MDA Objetivos Enfoque general Concepto de plataforma

Contenido Model Driven Architecture (MDA) El enfoque Puntos de vista Roles Transformación de modelos Conceptos asociados Descripción de la propuesta MDA

Contenido Model Driven Architecture (MDA) MDA en el proceso de desarrollo de SW MDA en el contexto de RUP MDA en el contexto de las Met. Agiles MDA aplicado Casos de estudio Planteo de algunos beneficios Herramientas

Motivaciones Modelos Proceso de Desarrollo de SW

Motivaciones Definiendo Modelo Diccionario 1. Arquetipo digno de ser imitado que se toma como pauta a seguir 2. Representación a escala reducida de alguna cosa. 3. Figura de barro, yeso o cera que se reproduce en un material más sólido. Wikipedia Según el contexto, modelo puede referirse a: * Modelo científico, una representación de la realidad* Modelo matemático;* Modelo numérico... es.wikipedia.org/wiki/modelo Una definición Un modelo de un sistema es una descripción o especificación de ese sistema y su ambiente para algún cierto propósito

Motivaciones Por qué usamos modelos? Especificar un sistema de SW Comprender el problema que se desea resolver Comunicar con otros desarrolladores de SW Analizar posibilidades de reutilización

Motivaciones Cómo construimos modelos? Lenguaje de modelado informal semi-formal formal -> UML -> OCL Reuso de modelos que resultaron exitosos -> Patrones

Motivaciones Características deseables de los modelos Un buen modelo Abstrae solo los aspectos relevantes Ayuda al razonamiento sobre el problema Mas barato de contruir que el código Comunica con personas Comunica con máquinas Niveles de madurez N0 Sin especificación N1 Especificación textual N2 Texto con modelos N3 Modelos con texto N4 Modelos precisos N5 Solamente modelos [Fuente: Stephen Meller] [Fuente: Kleppe and Warmer] Niveles de madurez N0 No UML N1 No UML N2 Poco UML N3 Mucho UML N4 Mucho UML + OCL N5 -------------

Motivaciones Conceptos previos Punto de Vista Un punto de vista de un sistema es una técnica de abstracción Vista Una vista de un sistema es una representación de ese sistema desde una perspectiva de un punto de vista elegido Diagrama Elemento gráfico que forma parte de la descripción de una vista.

Motivaciones Metamodelo Para especificar un modelo usamos un lenguaje. Para especificar un lenguaje usamos un metamodelo. Para especificar un metamodelo usamos un metalenguaje

Motivaciones Jerarquía de metamodelos [Fuente: 2003-2004 Czarnecki, Frankel, Graff, Helsen]

Motivaciones Modelos Principalmente usados para documentación Cambios en el modelo no reflejados en el código y viceversa. Desconexión entre modelos (horizontal y vertical) Escasa transformación de modelos Modelos de software inmaduros con respecto a modelos de otras ingenierías. Desarrollo Dirigido por Modelos

Motivaciones Desarrollo dirigido por modelos (Model-Driven Development -MDD) + Abstracción Modelo 0 Transformación0 Modelo 1 Transformación1 _ Modelo N TransformaciónN Código

Motivaciones Arquitectura dirigida por modelos (Model-Driven Architecture -MDA) La propuesta [Object Management Group. Model Driven Architecture Guide, 2003] Estandarizar MDD promoviendo el uso de lenguajes estándares MOF (Meta Object Facility)) UML (Unified Modeling Language) OCL (Object Constraint Language) XMI (XML Metadata Interchange) CWM (Common Warehouse Model)

Motivaciones Estándares de la OMG MOF (Meta Object Facility): Lenguaje abstracto para la especificación de metamodelos. XMI (XML Metadata Interchange): Lenguaje para mapear MOF a XML. Proporciona reglas para transformar metamodelos MOF en DTD (o XML schema), y para transformar modelos basados en metamodelos MOF en archivos XML. CWM (Common Warehouse Metamodel): Define un metamodelo, para modelar metadatos y la mayoría de objetos encontrados en un ambiente data warehousing

Motivaciones Arquitectura dirigida por modelos Introducción (Model-Driven Architecture a -MDA) [Fuente: IBM]

Introducción a MDA Arquitectura dirigida por modelos (Model-Driven Architecture -MDA) El objetivo - Brindar un framework con soporte para la especificación de modelos - Especificaciones permitirán creación de componentes y modelos de datos interoperables, reusables y portables utilizando estándares de modelado.

Introducción a MDA Arquitectura dirigida por modelos (Model-Driven Architecture -MDA) El enfoque especificar un sistema independientemente de la plataforma que éste soporte, especificar plataformas, elegir una plataforma particular para el sistema, transformar la especificación del sistema en una de las plataformas. [Object Management Group. Model Driven Architecture Guide, 2003]

Introducción a MDA Plataforma Definición Conjunto de subsistemas y tecnologías que proveen un conjunto coherente de funcionalidades sin mostrar el detalle de cómo estas son implementadas. Tipos - Genérica (Object, Dataflow, etc.) - Específica de la tecnología (CORBA, J2EE) - Específica del vendedor (Borland VisiBroker, IBM WebSphere)

El enfoque PIM P1 SM P2 SM... PN SM PIM en P2

El enfoque Por qué separar de acuerdo a las plataformas? Existen numerosas plataformas y tecnologías que deben interoperar (objetos distribuidos, aspectos, servicios web,etc). Evolución tecnológica de cada plataforma (surgen nuevas versiones)

El enfoque

El enfoque Puntos de Vista en MDA CIM (Computation Independent Model) Descripción de la lógica del negocio desde una perspectiva independiente de la computación PIM (Platform Independent Model) Descripción de la funcionalidad del sistema en forma independiente de las características de plataformas PSM (Platform Specific Model) Descripción del sistema en términos de una plataforma

El enfoque Roles Analista del Negocio CIM Arquitecto Diseñador PIM Desarrollador Testeador PSM Código

El enfoque PIM PSM J2EE PSM Rel. PSM.NET... PSM... Código java SQL Código C#......

Transformación de modelos PIM PSM 1 PSM 2 Algunos conceptos Refinamiento Antirefinamiento Refactoring Puentes

Transformación de modelos Modelo Fuente Herramienta Transformación Modelo Destino especifica usa especifica Lenguaje de Modelado Reglas de Transformac Lenguaje de Modelado

Transformación de modelos UML Modelo Fuente Herramienta Transformación Modelo Destino UML especifica usa especifica Metamodelo UML Lenguaje de Modelado Reglas de Transformac Lenguaje de Modelado Metamodelo UML especifica MOF QVT especifica Lenguaje de Transformac especifica Metalenguaje MOF

Transformación de modelos Información Adicional

Transformación de modelo Información Adicional QVT

Transformación de modelo Perfiles UML QVT

Transformación de modelos

MDA en el Proceso de Desarrollo de SW

MDA en el Proceso de Desarrollo de SW MDA no es un método de desarrollo de SW MDA en contexto RUP? MDA en contexto Met. Agiles?

MDA en el Proceso de Desarrollo de SW MDA en el contexto de RUP Brindar tareas adicionales para automatizar actividades RUP

MDA en el Proceso de Desarrollo de SW MDA en el contexto de Met. Agiles Agil MDA - Stephen Mellor Agile Model Driven Development (AMDD) Scott Ambler

MDA en el Proceso de Desarrollo de SW Agil MDA construir casos de test escribir modelos ejecutables compilar modelos usando un compilador de modelos correr casos de test entregar fragmentos del sistema al cliente incrementalmente

MDA en el Proceso de Desarrollo de SW Agile Model Driven Development (AMDD) Describe cómo desarrolladores y partes interesadas pueden trabajar cooperativamente para crear modelos apenas lo suficientemente buenos, No requiere que los participantes sean expertos en modelado, No depende de sofisticadas herramientas CASE.

MDA aplicado Caso 1: Middleware company Objectivo: Analizar si el uso de MDA implica un aumento de productividad Contexto: 2 equipos de desarrollando una aplicación, un equipo usando MDA y el otro un enfoque tradicional centrado en el código. Tiempo: appox. 4 semanas (MDA) y 5 semanas (code-centric) en 2003 Herramientas usadas: herramientas UML estándar. Resultados 35% esfuerzo ahorrado, luego de aprender MDA tool en la tarea El equipo MDA estimó que la próxima vez debería ser 10-20%mas rapido Tiempo de desarrollo mas corto que el esperado Amplio uso de patrones en el equipo MDA. Nivel de errores encontrados durante proceso de testing mayor en equipo No MDA [Fuente:Middleware company en Model Driven Development for J2EE Utilizing a Model Driven Architecture (MDA) Approach ]

MDA aplicado Caso 2: Volvo IT Objetivo: Desarrollar un framework MDA para modelado y desarrollo específico SOA Contexto: 5 desarrolladores. Tiempo: appox. 2 años (2002-2004) Herramientas usadas: Rational XDE con Eclipse y MS Visual Stuido. NET Expectativas previas Maximizar calidad y mantenibilidad del código. Minimizar tiempo de entrega Trazabilidad desde las reglas de negocio al código fuente Mejorar la consistencia arquitectónica [Fuente: Miroslaw Staron en Model Driven Architecture in Industry A bigger picture]

MDA aplicado Caso 2: Volvo IT (cont.) Resultados Inmadurez tecnológica Demasiado alta curva de aprendizaje Problemas para el uso de UML en sistemas de modelado basados en SOA. Falta de evaluación de la mejora que implica en la linea de produción [Fuente: Miroslaw Staron en Model Driven Architecture in Industry A bigger picture]

MDA aplicado [MDA guide] Beneficios Flexibilidad a largo plazo (implementación, integración, mantenimiento, testing y simulación) [IBM, Rational Software Architect] Incrementa la productividad Mejora la comunicación Mejora mantenimiento Captura experiencia Permite reuso de componentes legacy Facilita adaptabilidad de nuevos componentes Modelos como recursos a largo plazo Decisiones de tecnología demorada Facilita la consistencia Repetición

Discusión MDA Manifesto Grady Booch Alan Brown Sridhar Iyengar James Rumbaugh Bran Selic

Discusión Estrategia para lograr los objetivos MDA Representación directa: Usar el principio de abstracción separando aspectos relevantes del problema de las decisiones de tecnología. Estándares abiertos. El uso de estándares posibilita la integración de herramientas. Automatización. La propuesta de MDA fortalece el papel que las herramientas CASE, aunque surgen nuevas funcionalidades que deben ser soportadas. El rol de las herramientas es esencial en MDA. [ Fuente: David S. Frankel, MDA Journal, May 2004 ]

Discusión CASE-UML Herramientas Ej: Rational Rose, ArgoUML, MagicDraw, Poseidon, Together, etc CASE-MDA OptimalJ Objecteering ArcStyler AndroMDA OpenModel Together Architect Codagen Architect Rational Architect iuml

Discusión Herramientas ATL (ATLAS Transformation Language): Lenguaje para definir transformaciones con framework MDA. GMT (Generative Model Transformer): Creador de herramientas MDA Integración de herramientas: Para modelar, necesitamos una infraestructura con la cual construir e integrar herramientas. Eclipse Modeling Framework (EMF) es un framework y proyecto de integración de herramientas open-source que soporta y usa estándares de modelado (UML, MOF y XMI) [Fuente: Manifesto MDA]