SlideShare una empresa de Scribd logo
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




 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
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
MDE y DSLs

INTRODUCCIÓN




             10/04/2012   3
Evolución del desarrollo software
1.    Programación en Ensamblador
     x86
2.    Programación Estructurada
     Pascal, C
3.    Orientación a Objetos
     C++, Java
4.    Componentes software
     J2EE, .NET
5.    Orientación a Aspectos
     AspectJ, Spring Framework AOP
6.    Arquitecturas orientadas a Servicios
     WSDL, SOAP, REST
7.    .…
                          10/04/2012         4
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
Ejemplo de Modelo




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

                  10/04/2012                6
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
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
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
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
MDE y DSLs

LA VISIÓN DE LA OMG
(MDA)




             10/04/2012   11
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
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
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
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
Proceso de desarrollo MDA
 Initial           Manual              Manual             Manual
Definition        Refinement          Refinement         Refinement




CIM                 PIM                 PSM             Code


       Transformation     Transformation      Transformation
           Rules              Rules               Rules




                               10/04/2012                             16
Relación entre siglas “model-
    driven”




Jordi Cabot. http://modeling-languages.com/
                                          10/04/2012   17
MDE y DSLs

LENGUAJES
ESPECÍFICOS DE
DOMINIO



             10/04/2012   18
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
Herramienta de Propósito
   General




Peter Friese, itemis
                       10/04/2012   20
Herramienta de Propósito
   Específico




Peter 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.
 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
Clasificación de DSL
   Representación
    ◦ Visuales
    ◦ Textuales
   Implementación
    ◦ Internos
    ◦ Externos




                     10/04/2012   23
Ejemplos DSL




              Apache Maven
Automatización de la gestión y construcción de
               proyectos Java

                    10/04/2012                   24
Ejemplos DSL (II)




              JBOSS DROOLS
Reglas de negocio definidas en alto nivel, dentro
           de un motor de procesos

                      10/04/2012                25
Ejemplos DSL (III)




                     TREW@
    Modelado de procedimientos administrativos
telemáticos en el marco de la administración pública
                   en Andalucía
                       10/04/2012                      26
Ejemplos DSL (IV)




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

                    10/04/2012                 27
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
MDE y DSLs

¿CÓMO DESARROLLAR
UN DSL?




             10/04/2012   29
Fases en el desarrollo de un
DSL externo (enfoque MDE)
        Diseño del metamodelo


Desarrollo del formato de representación


    Generación de transformaciones


        Construcción de un IDE

                  10/04/2012               30
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
Metamodelo




Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.
                                               10/04/2012                        32
Desarrollo del formato de
representació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
Formato de representación




Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.
                                               10/04/2012                        34
Generación de
transformaciones
 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
Transformaciones M2T




Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.
                                               10/04/2012                        36
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
IDE Procesamiento de
       Imágenes




Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.
                                               10/04/2012                        38
Uso del DSL




Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T.
                                               10/04/2012                        39
MDE y DSLs

HERRAMIENTAS




             10/04/2012   40
Herramientas basadas en
MDE
 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
Herramientas de desarrollo
DSL
 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
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
MDE y DSLs

CONCLUSIONES




             10/04/2012   44
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
Model-Driven Engineering
            &
Domain Specific Languages
        Iván Ruiz Rube
         ivan.ruiz@uca.es




               10/04/2012   46

Más contenido relacionado

La actualidad más candente

UML. un analisis comparativo para la diagramación de software
UML.  un analisis comparativo para la diagramación de softwareUML.  un analisis comparativo para la diagramación de software
UML. un analisis comparativo para la diagramación de software
Yaskelly Yedra
 
Arquitectura software.taxonomias.construccion.002
Arquitectura software.taxonomias.construccion.002Arquitectura software.taxonomias.construccion.002
Arquitectura software.taxonomias.construccion.002
Jose Emilio Labra Gayo
 
Clase 08a estilos_arquitectonicos
Clase 08a estilos_arquitectonicosClase 08a estilos_arquitectonicos
Clase 08a estilos_arquitectonicos
Demián Gutierrez
 
Arquitectura software.taxonomias.negocio.001
Arquitectura software.taxonomias.negocio.001Arquitectura software.taxonomias.negocio.001
Arquitectura software.taxonomias.negocio.001
Jose Emilio Labra Gayo
 
Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001
Jose Emilio Labra Gayo
 
Juan velasquez
Juan velasquezJuan velasquez
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Software
lcastillo110
 
12.diseño basado en patrones
12.diseño basado en patrones12.diseño basado en patrones
12.diseño basado en patrones
Ramiro Estigarribia Canese
 
Diseño de arquitectura del software
Diseño de arquitectura del softwareDiseño de arquitectura del software
Diseño de arquitectura del software
deahesy najera garcia
 
Arquitectura software.taxonomias.definiciones.001
Arquitectura software.taxonomias.definiciones.001Arquitectura software.taxonomias.definiciones.001
Arquitectura software.taxonomias.definiciones.001
Jose Emilio Labra Gayo
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del software
Johns Chacon
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño
landeta_p
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
UPT
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a Objetos
Dat@center S.A
 
Proceso de diseño
Proceso de diseñoProceso de diseño
Proceso de diseño
Juan Pablo Bustos Thames
 
Mda 2
Mda 2Mda 2
Clase 04 diseno_ui
Clase 04 diseno_uiClase 04 diseno_ui
Clase 04 diseno_ui
Demián Gutierrez
 
Uml
UmlUml
Uml
CBISOE
 
UML para dispositivos móviles - Milena Cabrera
UML para dispositivos móviles - Milena CabreraUML para dispositivos móviles - Milena Cabrera
UML para dispositivos móviles - Milena Cabrera
2008PA2Info3
 
Conceptos de diseño
Conceptos de diseñoConceptos de diseño
Conceptos de diseño
Juan Pablo Bustos Thames
 

La actualidad más candente (20)

UML. un analisis comparativo para la diagramación de software
UML.  un analisis comparativo para la diagramación de softwareUML.  un analisis comparativo para la diagramación de software
UML. un analisis comparativo para la diagramación de software
 
Arquitectura software.taxonomias.construccion.002
Arquitectura software.taxonomias.construccion.002Arquitectura software.taxonomias.construccion.002
Arquitectura software.taxonomias.construccion.002
 
Clase 08a estilos_arquitectonicos
Clase 08a estilos_arquitectonicosClase 08a estilos_arquitectonicos
Clase 08a estilos_arquitectonicos
 
Arquitectura software.taxonomias.negocio.001
Arquitectura software.taxonomias.negocio.001Arquitectura software.taxonomias.negocio.001
Arquitectura software.taxonomias.negocio.001
 
Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001
 
Juan velasquez
Juan velasquezJuan velasquez
Juan velasquez
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Software
 
12.diseño basado en patrones
12.diseño basado en patrones12.diseño basado en patrones
12.diseño basado en patrones
 
Diseño de arquitectura del software
Diseño de arquitectura del softwareDiseño de arquitectura del software
Diseño de arquitectura del software
 
Arquitectura software.taxonomias.definiciones.001
Arquitectura software.taxonomias.definiciones.001Arquitectura software.taxonomias.definiciones.001
Arquitectura software.taxonomias.definiciones.001
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del software
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a Objetos
 
Proceso de diseño
Proceso de diseñoProceso de diseño
Proceso de diseño
 
Mda 2
Mda 2Mda 2
Mda 2
 
Clase 04 diseno_ui
Clase 04 diseno_uiClase 04 diseno_ui
Clase 04 diseno_ui
 
Uml
UmlUml
Uml
 
UML para dispositivos móviles - Milena Cabrera
UML para dispositivos móviles - Milena CabreraUML para dispositivos móviles - Milena Cabrera
UML para dispositivos móviles - Milena Cabrera
 
Conceptos de diseño
Conceptos de diseñoConceptos de diseño
Conceptos de diseño
 

Similar a MDE & DSLs

MDD - Andrés Goyes
MDD - Andrés GoyesMDD - Andrés Goyes
MDD - Andrés Goyes
2008PA2Info3
 
20090723 Presentacion Pfc
20090723 Presentacion Pfc20090723 Presentacion Pfc
20090723 Presentacion Pfc
azubi
 
20090723 Presentacion Pfc
20090723 Presentacion Pfc20090723 Presentacion Pfc
20090723 Presentacion Pfc
azubi
 
MDA en el contexto de datawarehouse
MDA en el contexto de datawarehouseMDA en el contexto de datawarehouse
MDA en el contexto de datawarehouse
Martin Baez
 
Metodología de Desarrollo de Software en base a MDE con DSL
Metodología de Desarrollo de Software en base a MDE con DSLMetodología de Desarrollo de Software en base a MDE con DSL
Metodología de Desarrollo de Software en base a MDE con DSL
Santiago Jacome
 
Metodologías de ingeniería Web dirigida por modelos
Metodologías de ingeniería Web dirigida por modelosMetodologías de ingeniería Web dirigida por modelos
Metodologías de ingeniería Web dirigida por modelos
Jose R. Hilera
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
Franklin Parrales Bravo
 
Mda
MdaMda
Kiwi
KiwiKiwi
No más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittNo más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKitt
Javier Muñoz
 
Analisis desarrollo-patrones-j2 ee
Analisis desarrollo-patrones-j2 eeAnalisis desarrollo-patrones-j2 ee
Analisis desarrollo-patrones-j2 ee
Victor Basurto Alonso
 
Que es el anlisis y diseño de software orientado a objetos
Que es el anlisis y diseño de software orientado a objetos Que es el anlisis y diseño de software orientado a objetos
Que es el anlisis y diseño de software orientado a objetos
Carlos Andrés Pérez Cabrales
 
Automatización en el desarrollo de software a través de lenguajes específicos...
Automatización en el desarrollo de software a través de lenguajes específicos...Automatización en el desarrollo de software a través de lenguajes específicos...
Automatización en el desarrollo de software a través de lenguajes específicos...
Omar S. Gomez
 
Modelado de datos
Modelado de datosModelado de datos
Modelado de datos
manuel
 
Leo métodos de modelado para aplicaciones web-4
Leo métodos de modelado para aplicaciones web-4Leo métodos de modelado para aplicaciones web-4
Leo métodos de modelado para aplicaciones web-4
Leo Jm
 
Fundamentos
FundamentosFundamentos
Fundamentos
Monica Naranjo
 
Bd orientados al objeto
Bd orientados al objetoBd orientados al objeto
Bd orientados al objeto
UCE Sede Santo Domingo
 
UDA-Selección de tecnologías
UDA-Selección de tecnologíasUDA-Selección de tecnologías
UDA-Selección de tecnologías
Ander Martinez
 
Trade-Off sobre Tecnologías Web
Trade-Off sobre Tecnologías WebTrade-Off sobre Tecnologías Web
Trade-Off sobre Tecnologías Web
Miguel Angel Macias
 
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
Jordi Cabot
 

Similar a MDE & DSLs (20)

MDD - Andrés Goyes
MDD - Andrés GoyesMDD - Andrés Goyes
MDD - Andrés Goyes
 
20090723 Presentacion Pfc
20090723 Presentacion Pfc20090723 Presentacion Pfc
20090723 Presentacion Pfc
 
20090723 Presentacion Pfc
20090723 Presentacion Pfc20090723 Presentacion Pfc
20090723 Presentacion Pfc
 
MDA en el contexto de datawarehouse
MDA en el contexto de datawarehouseMDA en el contexto de datawarehouse
MDA en el contexto de datawarehouse
 
Metodología de Desarrollo de Software en base a MDE con DSL
Metodología de Desarrollo de Software en base a MDE con DSLMetodología de Desarrollo de Software en base a MDE con DSL
Metodología de Desarrollo de Software en base a MDE con DSL
 
Metodologías de ingeniería Web dirigida por modelos
Metodologías de ingeniería Web dirigida por modelosMetodologías de ingeniería Web dirigida por modelos
Metodologías de ingeniería Web dirigida por modelos
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
 
Mda
MdaMda
Mda
 
Kiwi
KiwiKiwi
Kiwi
 
No más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittNo más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKitt
 
Analisis desarrollo-patrones-j2 ee
Analisis desarrollo-patrones-j2 eeAnalisis desarrollo-patrones-j2 ee
Analisis desarrollo-patrones-j2 ee
 
Que es el anlisis y diseño de software orientado a objetos
Que es el anlisis y diseño de software orientado a objetos Que es el anlisis y diseño de software orientado a objetos
Que es el anlisis y diseño de software orientado a objetos
 
Automatización en el desarrollo de software a través de lenguajes específicos...
Automatización en el desarrollo de software a través de lenguajes específicos...Automatización en el desarrollo de software a través de lenguajes específicos...
Automatización en el desarrollo de software a través de lenguajes específicos...
 
Modelado de datos
Modelado de datosModelado de datos
Modelado de datos
 
Leo métodos de modelado para aplicaciones web-4
Leo métodos de modelado para aplicaciones web-4Leo métodos de modelado para aplicaciones web-4
Leo métodos de modelado para aplicaciones web-4
 
Fundamentos
FundamentosFundamentos
Fundamentos
 
Bd orientados al objeto
Bd orientados al objetoBd orientados al objeto
Bd orientados al objeto
 
UDA-Selección de tecnologías
UDA-Selección de tecnologíasUDA-Selección de tecnologías
UDA-Selección de tecnologías
 
Trade-Off sobre Tecnologías Web
Trade-Off sobre Tecnologías WebTrade-Off sobre Tecnologías Web
Trade-Off sobre Tecnologías Web
 
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
 

Más de Iván Ruiz-Rube

Applying static code analysis for domain-specific languages
Applying static code analysis for domain-specific languagesApplying static code analysis for domain-specific languages
Applying static code analysis for domain-specific languages
Iván Ruiz-Rube
 
Static code analysis to measure the quality of musical scores
Static code analysis to measure the quality of musical scoresStatic code analysis to measure the quality of musical scores
Static code analysis to measure the quality of musical scores
Iván Ruiz-Rube
 
Static analysis of textual models
Static analysis of textual modelsStatic analysis of textual models
Static analysis of textual models
Iván Ruiz-Rube
 
Cómo desarrollar fácilmente una app para Android
Cómo desarrollar fácilmente una app para AndroidCómo desarrollar fácilmente una app para Android
Cómo desarrollar fácilmente una app para Android
Iván Ruiz-Rube
 
Un framework para el despliegue y evaluación de procesos software
Un framework para el despliegue y evaluación de procesos softwareUn framework para el despliegue y evaluación de procesos software
Un framework para el despliegue y evaluación de procesos software
Iván Ruiz-Rube
 
Introducción al BI con pentaho
Introducción al BI con pentahoIntroducción al BI con pentaho
Introducción al BI con pentaho
Iván Ruiz-Rube
 
PseudoDSL. Un lenguaje generativo para el aprendizaje de pseudocódigo
PseudoDSL. Un lenguaje generativo para el aprendizaje de pseudocódigoPseudoDSL. Un lenguaje generativo para el aprendizaje de pseudocódigo
PseudoDSL. Un lenguaje generativo para el aprendizaje de pseudocódigo
Iván Ruiz-Rube
 
Herramientas para linked data
Herramientas para linked dataHerramientas para linked data
Herramientas para linked data
Iván Ruiz-Rube
 
Revisiones de la literatura en Ingeniería del Software
Revisiones de la literatura en Ingeniería del SoftwareRevisiones de la literatura en Ingeniería del Software
Revisiones de la literatura en Ingeniería del Software
Iván Ruiz-Rube
 
Desarrollo y monitorización de TFGs basados en un modelo de procesos y un eco...
Desarrollo y monitorización de TFGs basados en un modelo de procesos y un eco...Desarrollo y monitorización de TFGs basados en un modelo de procesos y un eco...
Desarrollo y monitorización de TFGs basados en un modelo de procesos y un eco...
Iván Ruiz-Rube
 
Development issues on linked data weblog enrichment
Development issues on linked data weblog enrichmentDevelopment issues on linked data weblog enrichment
Development issues on linked data weblog enrichment
Iván Ruiz-Rube
 
Evaluación de un ecosistema software en organizaciones de desarrollo web bajo...
Evaluación de un ecosistema software en organizaciones de desarrollo web bajo...Evaluación de un ecosistema software en organizaciones de desarrollo web bajo...
Evaluación de un ecosistema software en organizaciones de desarrollo web bajo...
Iván Ruiz-Rube
 
Supporting the software process management with model driven engineering
Supporting the software process management with model driven engineeringSupporting the software process management with model driven engineering
Supporting the software process management with model driven engineering
Iván Ruiz-Rube
 
Gestión de la calidad usando ingeniería dirigida por modelos
Gestión de la calidad usando ingeniería dirigida por modelosGestión de la calidad usando ingeniería dirigida por modelos
Gestión de la calidad usando ingeniería dirigida por modelos
Iván Ruiz-Rube
 
Quality management using mde - an overview
Quality management using mde - an overviewQuality management using mde - an overview
Quality management using mde - an overview
Iván Ruiz-Rube
 
Linked Open Data: an overview
Linked Open Data: an overviewLinked Open Data: an overview
Linked Open Data: an overview
Iván Ruiz-Rube
 
Publishing linked data from relational databases
Publishing linked data from relational databasesPublishing linked data from relational databases
Publishing linked data from relational databases
Iván Ruiz-Rube
 
Herramientas para la mejora del proceso de desarrollo de aplicaciones J2EE
Herramientas para la mejora del proceso de desarrollo de aplicaciones J2EEHerramientas para la mejora del proceso de desarrollo de aplicaciones J2EE
Herramientas para la mejora del proceso de desarrollo de aplicaciones J2EE
Iván Ruiz-Rube
 

Más de Iván Ruiz-Rube (18)

Applying static code analysis for domain-specific languages
Applying static code analysis for domain-specific languagesApplying static code analysis for domain-specific languages
Applying static code analysis for domain-specific languages
 
Static code analysis to measure the quality of musical scores
Static code analysis to measure the quality of musical scoresStatic code analysis to measure the quality of musical scores
Static code analysis to measure the quality of musical scores
 
Static analysis of textual models
Static analysis of textual modelsStatic analysis of textual models
Static analysis of textual models
 
Cómo desarrollar fácilmente una app para Android
Cómo desarrollar fácilmente una app para AndroidCómo desarrollar fácilmente una app para Android
Cómo desarrollar fácilmente una app para Android
 
Un framework para el despliegue y evaluación de procesos software
Un framework para el despliegue y evaluación de procesos softwareUn framework para el despliegue y evaluación de procesos software
Un framework para el despliegue y evaluación de procesos software
 
Introducción al BI con pentaho
Introducción al BI con pentahoIntroducción al BI con pentaho
Introducción al BI con pentaho
 
PseudoDSL. Un lenguaje generativo para el aprendizaje de pseudocódigo
PseudoDSL. Un lenguaje generativo para el aprendizaje de pseudocódigoPseudoDSL. Un lenguaje generativo para el aprendizaje de pseudocódigo
PseudoDSL. Un lenguaje generativo para el aprendizaje de pseudocódigo
 
Herramientas para linked data
Herramientas para linked dataHerramientas para linked data
Herramientas para linked data
 
Revisiones de la literatura en Ingeniería del Software
Revisiones de la literatura en Ingeniería del SoftwareRevisiones de la literatura en Ingeniería del Software
Revisiones de la literatura en Ingeniería del Software
 
Desarrollo y monitorización de TFGs basados en un modelo de procesos y un eco...
Desarrollo y monitorización de TFGs basados en un modelo de procesos y un eco...Desarrollo y monitorización de TFGs basados en un modelo de procesos y un eco...
Desarrollo y monitorización de TFGs basados en un modelo de procesos y un eco...
 
Development issues on linked data weblog enrichment
Development issues on linked data weblog enrichmentDevelopment issues on linked data weblog enrichment
Development issues on linked data weblog enrichment
 
Evaluación de un ecosistema software en organizaciones de desarrollo web bajo...
Evaluación de un ecosistema software en organizaciones de desarrollo web bajo...Evaluación de un ecosistema software en organizaciones de desarrollo web bajo...
Evaluación de un ecosistema software en organizaciones de desarrollo web bajo...
 
Supporting the software process management with model driven engineering
Supporting the software process management with model driven engineeringSupporting the software process management with model driven engineering
Supporting the software process management with model driven engineering
 
Gestión de la calidad usando ingeniería dirigida por modelos
Gestión de la calidad usando ingeniería dirigida por modelosGestión de la calidad usando ingeniería dirigida por modelos
Gestión de la calidad usando ingeniería dirigida por modelos
 
Quality management using mde - an overview
Quality management using mde - an overviewQuality management using mde - an overview
Quality management using mde - an overview
 
Linked Open Data: an overview
Linked Open Data: an overviewLinked Open Data: an overview
Linked Open Data: an overview
 
Publishing linked data from relational databases
Publishing linked data from relational databasesPublishing linked data from relational databases
Publishing linked data from relational databases
 
Herramientas para la mejora del proceso de desarrollo de aplicaciones J2EE
Herramientas para la mejora del proceso de desarrollo de aplicaciones J2EEHerramientas para la mejora del proceso de desarrollo de aplicaciones J2EE
Herramientas para la mejora del proceso de desarrollo de aplicaciones J2EE
 

Último

Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
sofiahuarancabellido
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
AMADO SALVADOR
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Festibity
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
julio05042006
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
juanchogame18
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
tamarita881
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
paulroyal74
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
AMADO SALVADOR
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
bendezuperezjimena
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
AMADO SALVADOR
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
larapalaciosmonzon28
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
doctorsoluciones34
 

Último (20)

Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
 

MDE & DSLs

  • 1. 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 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. 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
  • 4. Evolución del desarrollo software 1. Programación en Ensamblador x86 2. Programación Estructurada Pascal, C 3. Orientación a Objetos C++, Java 4. Componentes software J2EE, .NET 5. Orientación a Aspectos AspectJ, Spring Framework AOP 6. Arquitecturas orientadas a Servicios WSDL, SOAP, REST 7. .… 10/04/2012 4
  • 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. Ejemplo de Modelo Diagrama de componentes. Arquitectura de diseño (3 capas) de un sistema web 10/04/2012 6
  • 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. 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. 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. 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. MDE y DSLs LA VISIÓN DE LA OMG (MDA) 10/04/2012 11
  • 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. 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. 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. 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. Proceso de desarrollo MDA Initial Manual Manual Manual Definition Refinement Refinement Refinement CIM PIM PSM Code Transformation Transformation Transformation Rules Rules Rules 10/04/2012 16
  • 17. Relación entre siglas “model- driven” Jordi Cabot. http://modeling-languages.com/ 10/04/2012 17
  • 18. MDE y DSLs LENGUAJES ESPECÍFICOS DE DOMINIO 10/04/2012 18
  • 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. Herramienta de Propósito General Peter Friese, itemis 10/04/2012 20
  • 21. Herramienta de Propósito Específico Peter Friese, itemis 10/04/2012 21
  • 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. Clasificación de DSL  Representación ◦ Visuales ◦ Textuales  Implementación ◦ Internos ◦ Externos 10/04/2012 23
  • 24. Ejemplos DSL Apache Maven Automatización de la gestión y construcción de proyectos Java 10/04/2012 24
  • 25. Ejemplos DSL (II) JBOSS DROOLS Reglas de negocio definidas en alto nivel, dentro de un motor de procesos 10/04/2012 25
  • 26. Ejemplos DSL (III) TREW@ Modelado de procedimientos administrativos telemáticos en el marco de la administración pública en Andalucía 10/04/2012 26
  • 27. Ejemplos DSL (IV) Structured Query Language (SQL) Manipulación de bases de datos relacionales 10/04/2012 27
  • 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. MDE y DSLs ¿CÓMO DESARROLLAR UN DSL? 10/04/2012 29
  • 30. Fases en el desarrollo de un DSL externo (enfoque MDE) Diseño del metamodelo Desarrollo del formato de representación Generación de transformaciones Construcción de un IDE 10/04/2012 30
  • 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. Metamodelo Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T. 10/04/2012 32
  • 33. Desarrollo del formato de representació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. Formato de representación Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T. 10/04/2012 34
  • 35. Generación de transformaciones  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. Transformaciones M2T Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T. 10/04/2012 36
  • 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. IDE Procesamiento de Imágenes Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T. 10/04/2012 38
  • 39. Uso del DSL Liberal Fernández, P.; López Urbina, M.; Sales Montes, N.; Tocino García, J.T. 10/04/2012 39
  • 40. MDE y DSLs HERRAMIENTAS 10/04/2012 40
  • 41. Herramientas basadas en MDE  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. Herramientas de desarrollo DSL  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. 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. MDE y DSLs CONCLUSIONES 10/04/2012 44
  • 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. Model-Driven Engineering & Domain Specific Languages Iván Ruiz Rube ivan.ruiz@uca.es 10/04/2012 46