Desarrollo de software orientado a servicios y procesos de aprendizajeItinerario de Doctorado en Modelado, Simulación y Pr...
Contenidos Introducción La visión de la OMG Lenguajes específicos de dominio ¿Cómo desarrollar un DSL? Herramientas ...
MDE y DSLsINTRODUCCIÓN             10/04/2012   3
Evolución del desarrollo software1.    Programación en Ensamblador     x862.    Programación Estructurada     Pascal, C3. ...
Modelos Hasta ahora, la programación siempre  es el centro de atención Al igual que en otras ingenierías..  ¡tenemos que...
Ejemplo de Modelo Diagrama de componentes. Arquitectura de    diseño (3 capas) de un sistema web                  10/04/20...
Características y utilidades   Características:    ◦ Abstracto: ocultación de elementos    ◦ Comprensible: lenguaje enten...
Problemas Sólo suelen usarse como  documentación En muchas ocasiones su calidad se  mide “al peso” Falta de sincronía: ...
Model-Driven Engineering MDE es un “nuevo” enfoque en  Ingeniería del Software Utilización de modelos como  artefactos s...
Usos   Model-Driven Web Engineering (MDWE)    ◦ Generación automática de modelos de      ingeniería (requisitos, análisis...
MDE y DSLsLA VISIÓN DE LA OMG(MDA)             10/04/2012   11
Model-Driven Architecture                MDA es la propuesta                 de la OMG para dar                 soporte a...
Estándares UML: Unified Modeling Language OCL: Object Constraint Language QVT: Query/View/Transformation XMI: XML Meta...
Enfoque de modelado MDA promueve separar la  especificación de la funcionalidad de  un sistema, de los detalles de  imple...
Niveles en MDA   CIM: Computational Independent    Model    ◦ Ej: Modelos de procesos de negocio (ej:      BMPN)   PIM: ...
Proceso de desarrollo MDA Initial           Manual              Manual             ManualDefinition        Refinement     ...
Relación entre siglas “model-    driven”Jordi Cabot. http://modeling-languages.com/                                       ...
MDE y DSLsLENGUAJESESPECÍFICOS DEDOMINIO             10/04/2012   18
Domain Specific Languages(DSL) Lenguaje de programación orientado  a un problema específico. Son opuestos a los lenguaje...
Herramienta de Propósito   GeneralPeter Friese, itemis                       10/04/2012   20
Herramienta de Propósito   EspecíficoPeter Friese, itemis                       10/04/2012   21
Domain Specific Languages(DSL) La semántica del lenguaje está muy  cercana al dominio de problema para  el cual se diseña...
Clasificación de DSL   Representación    ◦ Visuales    ◦ Textuales   Implementación    ◦ Internos    ◦ Externos         ...
Ejemplos DSL              Apache MavenAutomatización de la gestión y construcción de               proyectos Java         ...
Ejemplos DSL (II)              JBOSS DROOLSReglas de negocio definidas en alto nivel, dentro           de un motor de proc...
Ejemplos DSL (III)                     TREW@    Modelado de procedimientos administrativostelemáticos en el marco de la ad...
Ejemplos DSL (IV)    Structured Query Language (SQL) Manipulación de bases de datos relacionales                    10/04/...
Ejemplos DSL (V)   HTML    ◦ Utilizado para escribir páginas web   CSS    ◦ Usado para describir hojas de estilos en    ...
MDE y DSLs¿CÓMO DESARROLLARUN DSL?             10/04/2012   29
Fases en el desarrollo de unDSL externo (enfoque MDE)        Diseño del metamodeloDesarrollo del formato de representación...
Diseño del metamodelo El objetivo es definir los conceptos y  relaciones del dominio del problema  que queremos abordar, ...
MetamodeloLiberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.                                  ...
Desarrollo del formato derepresentación Mecanismo para representar los  elementos del metamodelo. El formato más adecuad...
Formato de representaciónLiberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.                   ...
Generación detransformaciones Las transformaciones permiten  „evolucionar‟ modelos. Modelo a modelo (M2M)    ◦ Mismo mod...
Transformaciones M2TLiberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.                        ...
Construcción de un IDE   Para un DSL visual necesitamos un    entorno de diseño que ofrezca, entre    otros:    ◦ Paleta ...
IDE Procesamiento de       ImágenesLiberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.         ...
Uso del DSLLiberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.                                 ...
MDE y DSLsHERRAMIENTAS             10/04/2012   40
Herramientas basadas enMDE Es evidente que necesitamos  herramientas que ofrezcan soporte a los  principios del enfoque M...
Herramientas de desarrolloDSL Para dar soporte a las fases del  desarrollo de un DSL, necesitamos  herramientas que nos a...
Eclipse Modeling Project   MDT: Model Development Tools   EMF: Eclipse Modeling Framework   GMP: Graphical Modeling Pro...
MDE y DSLsCONCLUSIONES             10/04/2012   44
Conclusiones El enfoque MDE promueve el  desarrollo y transformación de  modelos para dar soporte a diversas  actividades...
Model-Driven Engineering            &Domain Specific Languages        Iván Ruiz Rube         ivan.ruiz@uca.es             ...
Upcoming SlideShare
Loading in...5
×

MDE & DSLs

576

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
576
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
27
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "MDE & DSLs"

  1. 1. Desarrollo de software orientado a servicios y procesos de aprendizajeItinerario de Doctorado en Modelado, Simulación y Pruebas de Procesos y Tratamiento de Señales y Datos Model-Driven Engineering &Domain Specific Languages Iván Ruiz Rube Departamento de Lenguajes y Sistemas Informáticos Universidad de Cádiz 10/04/2012 1
  2. 2. Contenidos Introducción La visión de la OMG Lenguajes específicos de dominio ¿Cómo desarrollar un DSL? Herramientas Conclusiones 10/04/2012 2
  3. 3. MDE y DSLsINTRODUCCIÓN 10/04/2012 3
  4. 4. Evolución del desarrollo software1. Programación en Ensamblador x862. Programación Estructurada Pascal, C3. Orientación a Objetos C++, Java4. Componentes software J2EE, .NET5. Orientación a Aspectos AspectJ, Spring Framework AOP6. Arquitecturas orientadas a Servicios WSDL, SOAP, REST7. .… 10/04/2012 4
  5. 5. Modelos Hasta ahora, la programación siempre es el centro de atención Al igual que en otras ingenierías.. ¡tenemos que aumentar el nivel de abstracción! Los modelos nos ayudan a construir sistemas más complejos. Modelo: descripción o especificación (de parte) de un sistema software desde un determinado punto de vista 10/04/2012 5
  6. 6. Ejemplo de Modelo Diagrama de componentes. Arquitectura de diseño (3 capas) de un sistema web 10/04/2012 6
  7. 7. Características y utilidades Características: ◦ Abstracto: ocultación de elementos ◦ Comprensible: lenguaje entendible ◦ Preciso: correcto sintáctica y semánticamente ◦ Barato: sencillo de construir Utilidades: ◦ Especificar las características del sistema a desarrollar ◦ Comprenderlo con exactitud ◦ Detectar errores con antelación ◦ Guiar la programación 10/04/2012 7
  8. 8. Problemas Sólo suelen usarse como documentación En muchas ocasiones su calidad se mide “al peso” Falta de sincronía: entre modelos y entre modelos-código No podemos optimizar o validar modelos automáticamente ¿Cuál es el retorno de la inversión que conseguimos al desarrollar 10/04/2012 8
  9. 9. Model-Driven Engineering MDE es un “nuevo” enfoque en Ingeniería del Software Utilización de modelos como artefactos software Podremos tener editores, optimizadores, validadores y compiladores (transformadores) de modelos Objetivo perpetuo en IS: facilitar trabajo y reducir tiempos de desarrollo y número de errores 10/04/2012 9
  10. 10. Usos Model-Driven Web Engineering (MDWE) ◦ Generación automática de modelos de ingeniería (requisitos, análisis, etc.) Software Process Engineering (SPE) ◦ Soporte a la gestión de procesos (metodologías) organizacionales Model-Driven Testing (MDT) ◦ Construcción de casos de prueba Model-Driven Development (MDD) ◦ Generación automática de código fuente 10/04/2012 10
  11. 11. MDE y DSLsLA VISIÓN DE LA OMG(MDA) 10/04/2012 11
  12. 12. Model-Driven Architecture  MDA es la propuesta de la OMG para dar soporte al enfoque basado en modelos  MDA ofrece un conjunto de estándares y un enfoque de modelado basado en niveles 10/04/2012 12
  13. 13. Estándares UML: Unified Modeling Language OCL: Object Constraint Language QVT: Query/View/Transformation XMI: XML Metadata Interchange… MOF, SPEM, CWM, ODM, … 10/04/2012 13
  14. 14. Enfoque de modelado MDA promueve separar la especificación de la funcionalidad de un sistema, de los detalles de implementación en cualquier plataforma tecnológica Proceso paso a paso de refinamiento de modelos Cercano a la concepción del ciclo de vida clásico del desarrollo de software 10/04/2012 14
  15. 15. Niveles en MDA CIM: Computational Independent Model ◦ Ej: Modelos de procesos de negocio (ej: BMPN) PIM: Platform Independent Model ◦ Ej: Modelo de casos de uso ◦ Ej: Modelo entidad/relación PSM: Platform Specific Model ◦ Ej: Diagrama de clases de diseño 10/04/2012 15
  16. 16. Proceso de desarrollo MDA Initial Manual Manual ManualDefinition Refinement Refinement RefinementCIM PIM PSM Code Transformation Transformation Transformation Rules Rules Rules 10/04/2012 16
  17. 17. Relación entre siglas “model- driven”Jordi Cabot. http://modeling-languages.com/ 10/04/2012 17
  18. 18. MDE y DSLsLENGUAJESESPECÍFICOS DEDOMINIO 10/04/2012 18
  19. 19. Domain Specific Languages(DSL) Lenguaje de programación orientado a un problema específico. Son opuestos a los lenguajes de propósito general. Diseñado para ser utilizado para un conjunto específico de tareas. Herramienta específica para un trabajo concreto. 10/04/2012 19
  20. 20. Herramienta de Propósito GeneralPeter Friese, itemis 10/04/2012 20
  21. 21. Herramienta de Propósito EspecíficoPeter Friese, itemis 10/04/2012 21
  22. 22. Domain Specific Languages(DSL) La semántica del lenguaje está muy cercana al dominio de problema para el cual se diseña. Los DSL ofrecen un alto nivel de abstracción al usuario. Por tanto, están dirigidos a “expertos en el dominio”. Ofrecen un vocabulario controlado para su ámbito. 10/04/2012 22
  23. 23. Clasificación de DSL Representación ◦ Visuales ◦ Textuales Implementación ◦ Internos ◦ Externos 10/04/2012 23
  24. 24. Ejemplos DSL Apache MavenAutomatización de la gestión y construcción de proyectos Java 10/04/2012 24
  25. 25. Ejemplos DSL (II) JBOSS DROOLSReglas de negocio definidas en alto nivel, dentro de un motor de procesos 10/04/2012 25
  26. 26. Ejemplos DSL (III) TREW@ Modelado de procedimientos administrativostelemáticos en el marco de la administración pública en Andalucía 10/04/2012 26
  27. 27. Ejemplos DSL (IV) Structured Query Language (SQL) Manipulación de bases de datos relacionales 10/04/2012 27
  28. 28. Ejemplos DSL (V) HTML ◦ Utilizado para escribir páginas web CSS ◦ Usado para describir hojas de estilos en la web Flex, Bison o ANTLR: ◦ Para generar compiladores AWK, plantillas Wikipedia, shell scripts, etc. 10/04/2012 28
  29. 29. MDE y DSLs¿CÓMO DESARROLLARUN DSL? 10/04/2012 29
  30. 30. Fases en el desarrollo de unDSL externo (enfoque MDE) Diseño del metamodeloDesarrollo del formato de representación Generación de transformaciones Construcción de un IDE 10/04/2012 30
  31. 31. Diseño del metamodelo El objetivo es definir los conceptos y relaciones del dominio del problema que queremos abordar, mediante un diagrama de clases. Se definen de forma abstracta, independientemente del formato de representación deseado. Los metamodelos definirán la sintaxis abstracta de nuestro lenguaje. 10/04/2012 31
  32. 32. MetamodeloLiberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T. 10/04/2012 32
  33. 33. Desarrollo del formato derepresentación Mecanismo para representar los elementos del metamodelo. El formato más adecuado depende del tipo de problema que queremos modelar y de los potenciales usuarios del lenguaje. Tipo de sintaxis: ◦ Visual: basada en el mapping entre elementos gráficos y elementos de nuestro metamodelo. usualmente son más fáciles de interpretar por el usuario ◦ Textual: basada en una gramática (EBNF). Son más expresivos que los visuales. 10/04/2012 33
  34. 34. Formato de representaciónLiberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T. 10/04/2012 34
  35. 35. Generación detransformaciones Las transformaciones permiten „evolucionar‟ modelos. Modelo a modelo (M2M) ◦ Mismo modelo:  Ej: Refactorización o aplicación de un patrón de diseño. ◦ Modelo distinto  Ej: Refinamiento de un diagrama de clases de análisis a un diagrama de clases para un framework J2EE. Modelo a texto (M2T) ◦ Ej: Transformación de un diagrama de clases de diseño MVC a un conjunto de 10/04/2012 35
  36. 36. Transformaciones M2TLiberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T. 10/04/2012 36
  37. 37. Construcción de un IDE Para un DSL visual necesitamos un entorno de diseño que ofrezca, entre otros: ◦ Paleta de componentes visuales ◦ Área de trazado ◦ Validación automática de modelos Para un DSL textual, sería de gran ayuda disponer de un entorno que ofrezca: ◦ Coloreado de sintaxis ◦ Formato de código ◦ Validación instantánea 10/04/2012 37
  38. 38. IDE Procesamiento de ImágenesLiberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T. 10/04/2012 38
  39. 39. Uso del DSLLiberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T. 10/04/2012 39
  40. 40. MDE y DSLsHERRAMIENTAS 10/04/2012 40
  41. 41. Herramientas basadas enMDE Es evidente que necesitamos herramientas que ofrezcan soporte a los principios del enfoque MDE. Las herramientas MDE permiten diseñar y validar modelos escritos en lenguajes estándar, como UML y luego transformarlos en otros modelos. Algunos ejemplos: ◦ Enterprise Architect ◦ Acceleo ◦ StarUML ◦ … 10/04/2012 41
  42. 42. Herramientas de desarrolloDSL Para dar soporte a las fases del desarrollo de un DSL, necesitamos herramientas que nos asistan en dicho proceso. Algunos ejemplos: ◦ Eclipse (Modeling Project) ◦ MS Visual Studio (DSL Tools) ◦ MetaEdit+ ◦ … 10/04/2012 42
  43. 43. Eclipse Modeling Project MDT: Model Development Tools EMF: Eclipse Modeling Framework GMP: Graphical Modeling Project TMF: Textual Modeling Framework M2M: Model-to-Model Transformation M2T: Model To Text Transformation 10/04/2012 43
  44. 44. MDE y DSLsCONCLUSIONES 10/04/2012 44
  45. 45. Conclusiones El enfoque MDE promueve el desarrollo y transformación de modelos para dar soporte a diversas actividades en IS. Existe gran interés en el mundo académico e investigador. Sin embargo, aún no se ha consolidado completamente en la industria. Podemos construir con poco esfuerzo DSLs visuales o textuales. 10/04/2012 45
  46. 46. Model-Driven Engineering &Domain Specific Languages Iván Ruiz Rube ivan.ruiz@uca.es 10/04/2012 46
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×