MDE & DSLs

46
Iván Ruiz Rube Departamento de Lenguajes y Sistemas Informáticos Universidad de Cádiz 11/06/2022 1 Model-Driven Engineering & Domain Specific Languages Desarrollo de software orientado a servicios y procesos de aprendizaje Itinerario de Doctorado en Modelado, Simulación y Pruebas de Procesos y Tratamiento de Señales y Datos

description

 

Transcript of MDE & DSLs

Page 1: MDE & DSLs

11/04/2023 1

Iván Ruiz RubeDepartamento de Lenguajes y Sistemas Informáticos

Universidad de Cádiz

Model-Driven Engineering

& Domain Specific

Languages

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

Page 2: MDE & DSLs

11/04/2023 2

ContenidosIntroducciónLa visión de la OMGLenguajes específicos de dominio¿Cómo desarrollar un DSL?HerramientasConclusiones

Page 3: MDE & DSLs

11/04/2023 3

INTRODUCCIÓNMDE y DSLs

Page 4: MDE & DSLs

11/04/2023 4

Evolución del desarrollo software1. Programación en Ensamblador

x86

2. Programación EstructuradaPascal, C

3. Orientación a ObjetosC++, Java

4. Componentes softwareJ2EE, .NET

5. Orientación a AspectosAspectJ, Spring Framework AOP

6. Arquitecturas orientadas a ServiciosWSDL, SOAP, REST

7. .…

Page 5: MDE & DSLs

11/04/2023 5

ModelosHasta ahora, la programación

siempre es el centro de atenciónAl 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

Page 6: MDE & DSLs

11/04/2023 6

Ejemplo de Modelo

Diagrama de componentes. Arquitectura de diseño (3 capas) de un sistema web

Page 7: MDE & DSLs

11/04/2023 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

Page 8: MDE & DSLs

11/04/2023 8

ProblemasSólo suelen usarse como

documentaciónEn muchas ocasiones su calidad se

mide “al peso”Falta de sincronía: entre modelos y

entre modelos-códigoNo podemos optimizar o validar

modelos automáticamente¿Cuál es el retorno de la inversión que

conseguimos al desarrollar modelos?

Page 9: MDE & DSLs

11/04/2023 9

Model-Driven EngineeringMDE es un “nuevo” enfoque en

Ingeniería del SoftwareUtilización de modelos como artefactos

softwarePodremos 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

Page 10: MDE & DSLs

11/04/2023 10

UsosModel-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

Page 11: MDE & DSLs

11/04/2023 11

LA VISIÓN DE LA OMG (MDA)

MDE y DSLs

Page 12: MDE & DSLs

11/04/2023 12

Model-Driven ArchitectureMDA 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

Page 13: MDE & DSLs

11/04/2023 13

EstándaresUML: Unified Modeling LanguageOCL: Object Constraint LanguageQVT: Query/View/TransformationXMI: XML Metadata Interchange…MOF, SPEM, CWM, ODM, …

Page 14: MDE & DSLs

11/04/2023 14

Enfoque de modeladoMDA 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

Page 15: MDE & DSLs

11/04/2023 15

Niveles en MDACIM: 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

Page 16: MDE & DSLs

11/04/2023 16

Proceso de desarrollo MDA

CIM PIM PSM Code

Transformation Rules

Transformation Rules

Transformation Rules

Manual Refineme

nt

Manual Refineme

nt

Manual Refineme

nt

Initial Definitio

n

Page 17: MDE & DSLs

11/04/2023 17

Relación entre siglas “model-driven”

Jordi Cabot. http://modeling-languages.com/

Page 18: MDE & DSLs

11/04/2023 18

LENGUAJES ESPECÍFICOS DE DOMINIO

MDE y DSLs

Page 19: MDE & DSLs

11/04/2023 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.

Page 20: MDE & DSLs

11/04/2023 20

Herramienta de Propósito General

Peter Friese, itemis

Page 21: MDE & DSLs

11/04/2023 21

Herramienta de Propósito Específico

Peter Friese, itemis

Page 22: MDE & DSLs

11/04/2023 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.

Page 23: MDE & DSLs

11/04/2023 23

Clasificación de DSLRepresentación

◦Visuales◦Textuales

Implementación◦Internos◦Externos

Page 24: MDE & DSLs

11/04/2023 24

Ejemplos DSL

Apache MavenAutomatización de la gestión y construcción

de proyectos Java

Page 25: MDE & DSLs

11/04/2023 25

Ejemplos DSL (II)

JBOSS DROOLS Reglas de negocio definidas en alto nivel,

dentro de un motor de procesos

Page 26: MDE & DSLs

11/04/2023 26

Ejemplos DSL (III)

TREW@ Modelado de procedimientos administrativos telemáticos

en el marco de la administración pública en Andalucía

Page 27: MDE & DSLs

11/04/2023 27

Ejemplos DSL (IV)

Structured Query Language (SQL)Manipulación de bases de datos

relacionales

Page 28: MDE & DSLs

11/04/2023 28

Ejemplos DSL (V)HTML

◦Utilizado para escribir páginas webCSS

◦Usado para describir hojas de estilos en la web

Flex, Bison o ANTLR:◦Para generar compiladores

AWK, plantillas Wikipedia, shell scripts, etc.

Page 29: MDE & DSLs

11/04/2023 29

¿CÓMO DESARROLLAR UN DSL?

MDE y DSLs

Page 30: MDE & DSLs

11/04/2023 30

Fases en el desarrollo de un DSL externo (enfoque MDE)

Construcción de un IDE

Generación de transformaciones

Desarrollo del formato de representación

Diseño del metamodelo

Page 31: MDE & DSLs

11/04/2023 31

Diseño del metamodeloEl 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.

Page 32: MDE & DSLs

11/04/2023 32

Metamodelo

Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.

Page 33: MDE & DSLs

11/04/2023 33

Desarrollo del formato de representaciónMecanismo 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.

Page 34: MDE & DSLs

11/04/2023 34

Formato de representación

Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.

Page 35: MDE & DSLs

11/04/2023 35

Generación de transformacionesLas 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 clases JAVA.

Page 36: MDE & DSLs

11/04/2023 36

Transformaciones M2T

Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.

Page 37: MDE & DSLs

11/04/2023 37

Construcción de un IDEPara 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◦Auto-completado, …

Page 38: MDE & DSLs

11/04/2023 38

IDE Procesamiento de Imágenes

Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.

Page 39: MDE & DSLs

11/04/2023 39

Uso del DSL

Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.

Page 40: MDE & DSLs

11/04/2023 40

HERRAMIENTASMDE y DSLs

Page 41: MDE & DSLs

11/04/2023 41

Herramientas basadas en MDEEs 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◦…

Page 42: MDE & DSLs

11/04/2023 42

Herramientas de desarrollo DSLPara 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+◦…

Page 43: MDE & DSLs

11/04/2023 43

Eclipse Modeling ProjectMDT: Model Development ToolsEMF: Eclipse Modeling FrameworkGMP: Graphical Modeling ProjectTMF: Textual Modeling FrameworkM2M: Model-to-Model TransformationM2T: Model To Text Transformation

Page 44: MDE & DSLs

11/04/2023 44

CONCLUSIONESMDE y DSLs

Page 45: MDE & DSLs

11/04/2023 45

ConclusionesEl 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.

Page 46: MDE & DSLs

11/04/2023 46

Model-Driven Engineering

& Domain Specific

LanguagesIván Ruiz [email protected]