Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porRicardo Córdoba Camacho Modificado hace 8 años
1
Cómo aumentar la productividad a través de las tecnologías de modelado Adrián Noguero adrian.noguero@tecnalia.com
2
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
3
¿Por qué emplear modelos?
4
¿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!
5
Modelos en todas partes Los modelos son una simplificación de la realidad para facilitar la compresión de la misma
6
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
7
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
8
Algunos casos de éxito – Proyecto TOPCASED
9
Algunos casos de éxito – Simulink (Mathworks)
10
¿Qué es y en qué consiste la ingeniería dirigida por modelos (MDE)?
11
¿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?
12
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
13
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
14
El proceso de MDE Cada vista puede (de hecho, suele) tener su propias: –Herramientas –Metodología
15
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
16
¿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
17
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
18
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
19
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.
20
Hagamos un ejemplo... Por grupos trataremos de establecer un proceso MDE –Objetivo –Fases y vistas: Metamodelos
21
Explotar los modelos Generación de código Generación de documentación Verificación y generación de configuraciones
22
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
23
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)
24
Transformaciones en el centro
25
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
26
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
27
Automatizar la transición entre fases
28
Vinculación con herramientas externas Los datos de entrada de muchas herramientas comienzan a escribirse en XML PEPA
29
Mezclar modelos
30
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
31
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
32
Ejercicio 1: M2T HelloWorld! – En Java
33
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!
34
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
35
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
36
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!
37
¿Cómo probar estas técnicas en mi empresa? Herramientas y guías básicas
38
Editores de modelos libres Papyrus – Eclipse Modelling TOPCASED Moskitt Crea el tuyo!! GMF & Eugenia
39
Editores de modelos de pago OBEO Designer IBM Rational Software Architect MagicDraw
40
Herramientas de transformación M2M ATL QVT Xtend
41
Herramientas de transformación M2T Acceleo Jet Xpand2
42
Herramientas de transformación M2M & M2T MOFScript Java!
43
Cómo puedo hacer funcionar todo esto DEMO: Papyrus + MOFScript + GEMDE
44
¡Gracias por vuestra atención!
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.