MDE & DSLs
-
Upload
ivan-ruiz-rube -
Category
Technology
-
view
865 -
download
3
description
Transcript of 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
11/04/2023 2
ContenidosIntroducciónLa visión de la OMGLenguajes específicos de dominio¿Cómo desarrollar un DSL?HerramientasConclusiones
11/04/2023 3
INTRODUCCIÓNMDE y 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. .…
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
11/04/2023 6
Ejemplo de Modelo
Diagrama de componentes. Arquitectura de diseño (3 capas) de un sistema web
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
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?
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
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
11/04/2023 11
LA VISIÓN DE LA OMG (MDA)
MDE y 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
11/04/2023 13
EstándaresUML: Unified Modeling LanguageOCL: Object Constraint LanguageQVT: Query/View/TransformationXMI: XML Metadata Interchange…MOF, SPEM, CWM, ODM, …
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
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
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
11/04/2023 17
Relación entre siglas “model-driven”
Jordi Cabot. http://modeling-languages.com/
11/04/2023 18
LENGUAJES ESPECÍFICOS DE DOMINIO
MDE y 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.
11/04/2023 20
Herramienta de Propósito General
Peter Friese, itemis
11/04/2023 21
Herramienta de Propósito Específico
Peter Friese, itemis
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.
11/04/2023 23
Clasificación de DSLRepresentación
◦Visuales◦Textuales
Implementación◦Internos◦Externos
11/04/2023 24
Ejemplos DSL
Apache MavenAutomatización de la gestión y construcción
de proyectos Java
11/04/2023 25
Ejemplos DSL (II)
JBOSS DROOLS Reglas de negocio definidas en alto nivel,
dentro de un motor de procesos
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
11/04/2023 27
Ejemplos DSL (IV)
Structured Query Language (SQL)Manipulación de bases de datos
relacionales
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.
11/04/2023 29
¿CÓMO DESARROLLAR UN DSL?
MDE y 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
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.
11/04/2023 32
Metamodelo
Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.
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.
11/04/2023 34
Formato de representación
Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.
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.
11/04/2023 36
Transformaciones M2T
Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.
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, …
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.
11/04/2023 39
Uso del DSL
Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.
11/04/2023 40
HERRAMIENTASMDE y 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◦…
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+◦…
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
11/04/2023 44
CONCLUSIONESMDE y 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.