SlideShare ist ein Scribd-Unternehmen logo
1 von 46
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

Weitere ähnliche Inhalte

Was ist angesagt?

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 softwareYaskelly Yedra
 
Arquitectura software.taxonomias.construccion.002
Arquitectura software.taxonomias.construccion.002Arquitectura software.taxonomias.construccion.002
Arquitectura software.taxonomias.construccion.002Jose Emilio Labra Gayo
 
Clase 08a estilos_arquitectonicos
Clase 08a estilos_arquitectonicosClase 08a estilos_arquitectonicos
Clase 08a estilos_arquitectonicosDemián Gutierrez
 
Arquitectura software.taxonomias.negocio.001
Arquitectura software.taxonomias.negocio.001Arquitectura software.taxonomias.negocio.001
Arquitectura software.taxonomias.negocio.001Jose Emilio Labra Gayo
 
Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001Jose Emilio Labra Gayo
 
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 Softwarelcastillo110
 
Diseño de arquitectura del software
Diseño de arquitectura del softwareDiseño de arquitectura del software
Diseño de arquitectura del softwaredeahesy najera garcia
 
Arquitectura software.taxonomias.definiciones.001
Arquitectura software.taxonomias.definiciones.001Arquitectura software.taxonomias.definiciones.001
Arquitectura software.taxonomias.definiciones.001Jose Emilio Labra Gayo
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del softwareJohns 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ñolandeta_p
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de SoftwareUPT
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDat@center S.A
 
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 Cabrera2008PA2Info3
 

Was ist angesagt? (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
 

Ähnlich wie MDE & DSLs

MDD - Andrés Goyes
MDD - Andrés GoyesMDD - Andrés Goyes
MDD - Andrés Goyes2008PA2Info3
 
20090723 Presentacion Pfc
20090723 Presentacion Pfc20090723 Presentacion Pfc
20090723 Presentacion Pfcazubi
 
20090723 Presentacion Pfc
20090723 Presentacion Pfc20090723 Presentacion Pfc
20090723 Presentacion Pfcazubi
 
MDA en el contexto de datawarehouse
MDA en el contexto de datawarehouseMDA en el contexto de datawarehouse
MDA en el contexto de datawarehouseMartin 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 DSLSantiago 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 modelosJose 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 modelosFranklin Parrales Bravo
 
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 MOSKittJavier Muñoz
 
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 datosmanuel
 
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-4Leo Jm
 
UDA-Selección de tecnologías
UDA-Selección de tecnologíasUDA-Selección de tecnologías
UDA-Selección de tecnologíasAnder Martinez
 
Trade-Off sobre Tecnologías Web
Trade-Off sobre Tecnologías WebTrade-Off sobre Tecnologías Web
Trade-Off sobre Tecnologías WebMiguel 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
 

Ähnlich wie 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!)
 

Mehr von 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 languagesIvá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 scoresIván Ruiz-Rube
 
Static analysis of textual models
Static analysis of textual modelsStatic analysis of textual models
Static analysis of textual modelsIvá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 AndroidIvá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 softwareIvá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 pentahoIvá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ódigoIván Ruiz-Rube
 
Herramientas para linked data
Herramientas para linked dataHerramientas para linked data
Herramientas para linked dataIvá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 SoftwareIvá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 enrichmentIvá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 engineeringIvá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 modelosIvá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 overviewIván Ruiz-Rube
 
Linked Open Data: an overview
Linked Open Data: an overviewLinked Open Data: an overview
Linked Open Data: an overviewIvá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 databasesIvá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 J2EEIván Ruiz-Rube
 

Mehr von 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
 

Kürzlich hochgeladen

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 

Kürzlich hochgeladen (20)

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 

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