Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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

921 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

×