Cómo aumentar la productividad a través de las tecnologías de modelado Adrián Noguero

Slides:



Advertisements
Presentaciones similares
Lenguaje Unificado de Modelado
Advertisements

Arquitecturas de BD Modelo ANSI/SPARC
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
SOFTWARE DE PROGRAMACIÓN
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
DIAGRAMA DE FLUJO DE DATOS
Herramientas CASE.
“SISTEMA DE PASANTÍAS PARA LA FACULTAD DE INGENIERÍA
Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz.
© Manuel ColladoHerramientas software-1 Herramientas software Clasificación. Integración de herramientas.
Una Introducción a UML El Modelo de Proceso de Negocio
HERRAMIENTAS CASE.
 El termino OO, significa que el software es organizado como una colección de objetos. Un objeto es un paquete de software que contiene datos y procedimientos.
Ignacio Esmite, Mauricio Farías, Nicolás Farías, Beatriz Pérez
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Uso de DocBook en la creación de Objetos Educativos interoperables.
 El primer navegador Web incluía un lenguaje de estilo interno que utilizaba dicho navegador para mostrar las páginas HTML.  Sin embargo estos primeros.
SOFTWARE INTERACTIVO PARA LA CÁTEDRA LABORATORIO DE FÍSICA I
Ingeniería de Software
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Sesión 5 Herramientas de creación de DSL gráficos (GMF)
Ingeniería de Software Orientado a Objetos
Como Desarrollar SW Distribuido de Calidad
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Técnicas para la obtención de requerimientos
1 Diseño Orientado a Objetos Agustín J. González ELO-329: Diseño y Programación Orientados a Objetos 1er. Sem
Contexto Proyecto consolidado dentro de la línea de investigación de Sistemas de Información en el Dpto. de Ingeniería en Sistemas de Información de la.
CS-432: Ingeniería Moderna de Software Semana 3
ILIANA CORDOVA.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
CONCEPTOS BÁSICOS Diseño de Sistemas.
Ingeniería de Software Asistida por Computadora
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)
UML 2.0 Integrantes: Diana Carolina Valencia M. Jhon Fernando Lopez T. Carlos Alberto Castillo.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Test-Driven Development Juan Carlos Olivares Rojas MSN:
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
Considerada como la actividad en la cual se realiza una investigación de la literatura existente sobre un tema en particular, con el fin, de identificar.
HERRAMIENTAS CASE.
TEMA: DESARROLLO DE UN SISTEMA INFORMÁTICO PARA EL CONTROL DE USO Y EL MANTENIMIENTO DE VEHÍCULOS DE UNA INSTITUCIÓN PÚBLICA AUTOR: EDISON GUAMAN   DIRECTOR:
Tecnologías para el Aprendizaje
Ing. Noretsys Rodríguez. Definición de Conceptos  Falla: Ocurre cuando un programa no se comporta de manera adecuada. Es una propiedad estadística de.
Ámbito y Estimaciones de Proyecto ISF5501 Ingeniería de Software Semana 7/1.
REQUISITOS.
Metodología de la programación
Diseño de Sistemas Expertos
Alexander Aristizabal Ángelo flores herrera
I NGENIERÍA DE S OFTWARE L ABORATORIO VI Diseño - Diagrama de clases Eduardo Saavedra A. 07/10/2009.
Introducción a UML Departamento de Informática Universidad de Rancagua
Ciclo de vida de un sistema
IDENTIFICACIÓN DEL CICLO DE VIDA DEL SOFTWARE. POLITÉCNICO COLOMBIANO JAIME ISAZA CADAVID.
Jairo Pinto Ing. sistemas
DISEÑO CURRICULAR Presentado por: Cesar Augusto Sáenz María Alejandra Hernández 1.contenidos curriculares de competencia.
DIAGRAMA DE CLASES.
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Introducción al proceso de verificación y validación.
PROCESOS DE DESARROLLO DE SOFTWARE
Edwin Oliveros.  El diseño de sistemas consiste en la transformación del modelo de diseño, que toma en cuenta los requerimientos no funcionales y las.
Estructurar tus ideas para hacerlas realidad
INTRODUCCIÓN A INGENIERIA KARLA TATIANA OLAYA TORRES ID ( )
Un requerimiento es una condición o capacidad a la que el sistema (siendo construido) debe conformar [ Rational ]. Un requerimiento de software puede.
Proceso de desarrollo de Software
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
Modelado Orientado a Objetos Programación Orientada a Objetos Departamento de Sistemas Universidad del Cauca 2006.
Es una metodología ágil diseñada para el desarrollo de software, basada en la calidad y el monitoreo constante del proyecto. Consiste esencialmente en.
ALUMNO ALUMNO: DIEGO URES LEGAJO LEGAJO: La prueba unitaria es la herramienta para la Calidad Presentación Trabajo Final de Grado.
Variabilidad en requisitos: Un enfoque basado en meta-modelado y transformación de modelos Bruno González-Baixauli Miguel A. Laguna Julio Cesar Sampaio.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Transcripción de la presentación:

Cómo aumentar la productividad a través de las tecnologías de modelado Adrián Noguero

Agenda de la sesión ¿Por qué emplear modelos? Beneficios y casos de éxito ¿Qué es y en qué consiste la ingeniería dirigida por modelos? Explotar los modelos: ejemplos. –Generación de código fuente. –Generación de documentación. –Verificación y generación de configuraciones. ¿Cómo probar estas técnicas en mi empresa? Herramientas y guías básicas. Preguntas y respuestas

¿Por qué emplear modelos?

¿Qué es un modelo? “Un modelo es una representación abstracta y parcial de un sistema o proceso” Debemos tener claro que: –Los modelos representan parcialmente la realidad –Cambian en función de su objetivo –¡Están por todas partes!

Modelos en todas partes Los modelos son una simplificación de la realidad para facilitar la compresión de la misma

Modelos en las TICs En esta jornada nos centraremos en modelos para las TICs Los modelos nos permiten: –Almacenar de forma ordenada la información –Facilitar la comprensión –Establecer un lenguaje único –Mejorar la mantenibilidad de nuestros desarrollos

Los modelos para la comunidad científica “The Expert Group considers that the way forward to satisfy all these requirements, and to deal with the complexity increase, the conflicting constraints on systems, and the need to maintain and increase productivity, requires architecture-centric, model-driven approaches.” ARTEMIS – Strategic Research Agenda ITEA2 - Roadmap “Focalizarse en el diseño de Sistemas de Sistemas, y diseñarlos de forma más rápida y eficaz en base a Modelos (Model Driven Architecture)” Plataforma PROMETEO – Áreas estratégicas de investigación

Algunos casos de éxito – Proyecto TOPCASED

Algunos casos de éxito – Simulink (Mathworks)

¿Qué es y en qué consiste la ingeniería dirigida por modelos (MDE)?

¿Qué es y qué no es MDE? ¿Cuando hablamos de MDE… –…hablamos de UML? –…hablamos de generación de código? –…hablamos de esfuerzo extra? –…hablamos de interoperabilidad entre herramientas? –…hablamos de metodologías?

El proceso de MDE Cualquier proceso de MDE debe tener un objetivo: –Captura de requisitos… –Diseño y desarrollo de un equipo / aplicación… –Análisis y testing… –Configuración… El objetivo elegido tendrá un impacto decisivo –Restringirá el lenguaje de modelado a emplear –Restringirá las herramientas disponibles

El proceso de MDE vistas diferentes¡Un proceso MDE puede te tener varias vistas diferentes de una misma realidad! Cada etapa puede tener su propio lenguaje de modelado En cada transición debe haber un mapeo de conceptos

El proceso de MDE Cada vista puede (de hecho, suele) tener su propias: –Herramientas –Metodología

El proceso de MDE Algunas herramientas definen procesos completos de MDE para diferentes objetivos –Simulink –Rational Software Architect –Xilinx ISE Design Suite Sin embargo, no siempre se adecúan a nuestras necesidades

¿Es posible definir nuestro propio proceso de MDE? ¡Sí, claro! Sólo necesitamos… (repaso rápido) –Objetivo. ¿Qué proceso de ingeniería de software quiero mejorar? –Fases y vistas. ¿Cómo represento mi sistema en cada una? –Herramientas –Metodología

Fases y vistas en MDE fase vistaEn un proceso MDE cada fase debe estar asociada a una vista del proyecto Una vista es una representación parcial y diferente de una misma realidad, por tanto: –Se describirá en términos diferentes a otras vistas –La metodología de modelado empleada puede ser diferente

Fases y vistas en MDE Para cada vista deberemos elegir un (subconjunto de) lenguaje de modelado –Seleccionar uno estándar / conocido Diagramas de clases Simulink Diagramas de casos de uso –Crear el nuestro propio Definir los conceptos Definir las propiedades Definir las relaciones } META-MODELO

Meta-modelos – Un ejemplo (Sistema de ficheros) En primer lugar definiremos los conceptos que formarán nuestro modelo Algunos conceptos tienen relación semántica entre sí, los vincularemos mediante la herencia Algunos conceptos pueden contener a otros. Esto lo indicaremos con relaciones de composición. Por último, algunos conceptos pueden estar relacionados entre sí de igual a igual.

Hagamos un ejemplo... Por grupos trataremos de establecer un proceso MDE –Objetivo –Fases y vistas: Metamodelos

Explotar los modelos Generación de código Generación de documentación Verificación y generación de configuraciones

Sacar más partido a los modelos Utilizar modelos permite hacer más comprensibles los sistemas Pero además puede ofrecer más... –Generación de código –Automatización –Documentación –Configuración –... Estos extras nos permiten aumentar nuestra productividad

Sacar más partido a los modelos En la raíz de cualquier mecanismo de explotación de modelos están las transformaciones Transformaciones Modelo a Modelo (M2M) Transformaciones Modelo a Texto (M2T)

Transformaciones en el centro

Transformaciones M2M Una transformación M2M es aquella que obtiene a partir de uno o varios modelos de entrada en otro modelo más refinado –Mapeo de conceptos –Reglas de inferencia –Restricciones

Transformaciones M2M Las transformaciones M2M pueden tener 3 objetivos en un proceso MDE: –Automatizar la transición de una fase (vista) a la siguiente –Vincular un modelo con una herramienta externa –Mezclar varios modelos en uno

Automatizar la transición entre fases

Vinculación con herramientas externas Los datos de entrada de muchas herramientas comienzan a escribirse en XML PEPA

Mezclar modelos

Transformaciones M2T Una transformación M2T es aquella que obtiene a partir de uno o varios modelos de entrada ficheros de texto plano –Reglas de generación –Inferencia –Zonas protegidas

Transformaciones M2T Las transformaciones M2T normalmente culminan el proceso MDE… –Código fuente –HTML para documentación –Scripts de configuración …aunque no siempre terminan el proceso de desarrollo –Modificaciones –Elementos no modelados

Ejercicio 1: M2T HelloWorld! – En Java

Problemas con las transformaciones Los motores de transformación se basan en reglas, pero… –…¿y si los modelos de entrada son incorrectos? –…¿y si el modelo representa cosas diferentes para diferentes personas? ¡Todas las tranformaciones fallan!¡Todas las tranformaciones fallan!

Problemas con las transformaciones Para solucionar este problema debemos introducir reglas, que: –Permitan distiguir un modelo válido de otro no-válido –Unifiquen criterios –Definan la semántica –Eviten errores en etapas posteriores al proceso MDE

OCL - Object Constraint Language OCL es el estándar adoptado por la comunidad científica para crear estas reglas Se trata de un lenguaje completo: –Muy complejo –Difícil de manejar a la perfección package uml context Class inv: self.ownedPort->select(name = 'Example')->notEmpty() endpackage

Simplificando la creación de reglas La herramienta GEMDE ofrece un interfaz más amigable para crear este tipo de reglas en nuestros metamodelos Además podemos organizar las reglas y ejecutarlas para validar nuestros modelos ¡Hagamos un ejemplo!

¿Cómo probar estas técnicas en mi empresa? Herramientas y guías básicas

Editores de modelos libres Papyrus – Eclipse Modelling TOPCASED Moskitt Crea el tuyo!! GMF & Eugenia

Editores de modelos de pago OBEO Designer IBM Rational Software Architect MagicDraw

Herramientas de transformación M2M ATL QVT Xtend

Herramientas de transformación M2T Acceleo Jet Xpand2

Herramientas de transformación M2M & M2T MOFScript Java!

Cómo puedo hacer funcionar todo esto DEMO: Papyrus + MOFScript + GEMDE

¡Gracias por vuestra atención!