La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Cómo aumentar la productividad a través de las tecnologías de modelado Adrián Noguero"— Transcripción de la presentación:

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!


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

Presentaciones similares


Anuncios Google