t4 - metamodelado

31
Iván Ruiz Rube Departamento de Ingeniería Informática Escuela Superior de Ingeniería Universidad de Cádiz 01/11/13 1 Metamodelado Procesadores de Lenguajes 2 PL2 - Metamodelado Curso 2013-2014

Upload: gustavo-alejandro-galindo-rosales

Post on 18-Aug-2015

251 views

Category:

Documents


6 download

DESCRIPTION

Metamodelado de Datos

TRANSCRIPT

Ivn Ruiz Rube Departamento de Ingeniera Informtica Escuela Superior de Ingeniera Universidad de Cdiz 01/11/131 Metamodelado Procesadores de Lenguajes 2 PL2 - Metamodelado Curso 2013-2014 Contenidos !Introduccin !Ejemplos !Lenguajes !Arquitectura 01/11/132PL2 - Metamodelado INTRODUCCIN METAMODELADO 01/11/133PL2 - Metamodelado Desarrollo de un procesador de lenguaje (enfoque MDE) 01/11/13PL2 - Desarrollo de DSLs usando MDE44 Generacin de transformaciones Desarrollo del formato de representacin Diseo del metamodelo Construccin del editor Desarrollo de un procesador de lenguaje (enfoque MDE) 01/11/13PL2 - Desarrollo de DSLs usando MDE55 Generacin de transformaciones Desarrollo del formato de representacin Diseo del metamodelo Construccin del editor Introduccin !Metamodelado es el anlisis, diseo y construccin de los metamodelos necesarios para cubrir un determinado tipo de problemas, as como las reglas y restricciones aplicables. !Metamodelo es el conjunto de conceptos del dominio a modelar (metaclases) y las relaciones entre ellos (metasociaciones). !Metamodelo es el modelo de un modelo. 01/11/13PL2 - Metamodelado6 Introduccin !El objetivo es definir los conceptosy relaciones del dominio del problema que queremos abordar. !Se definen de forma abstracta, independientemente del formato de representacin deseado. !Los metamodelos definirn la sintaxis abstracta de nuestro lenguaje. 01/11/137PL2 - Metamodelado EJEMPLOS METAMODELADO 01/11/138PL2 - Metamodelado Ejemplos de metamodelado !Vamos a tratar con instancias del mundo real, modelos y metamodelos correspondientes a varios sistemas. !En primer lugar, veremos un ejemplo de un sistema web de informacin acadmica. !Luego, observaremos un ejemplo de una aplicacin web de gestin de proyectos que hace uso de una mquina de estados. !Finalmente, un ejemplo de un sitio web corporativo para bares y restaurantes. 01/11/139PL2 - Metamodelado Informacin acadmica: Instancias 01/11/13PL2 - Metamodelado10 El sistema de informacin acadmica gestiona datos (elementos del mundo real) que son conformes a un determinado modelo. Paco PepeIng. Informtica imparte imparte miembro imparte pertenece pertenece Informacin acadmica: Modelo 01/11/13PL2 - Metamodelado11 Modelo de clases de nuestro sistema de informacin acadmica representado con el lenguaje UML. Este modelo es, a su vez, conforme a un metamodelo. Informacin acadmica: Metamodelo 01/11/13PL2 - Metamodelado12 Este metamodelo (simplificado) representa los conceptos del propio lenguaje UML para modelar sistemas software. Gestin de tickets: Instancias 01/11/13PL2 - Metamodelado13 Una aplicacin de gestin de proyectos, lleva el control del ciclo de vida de los tickets (tareas, bugs, etc). Los estados de los tickets son conformes a un determinado modelo. Gestin de tickets: Modelo 01/11/13PL2 - Metamodelado14 Modelo sencillo de mquina de estados, para controlar el ciclo de vida de un ticket de error (bug). Este modelo es, a su vez, conforme al metamodelo de nuestro DSL. Nuevo Asignado Verificado Cerrado Gestin de tickets: Metamodelo 01/11/13PL2 - Metamodelado15 Este metamodelo define los conceptos y las relaciones que pueden existir en mquinas de estado.El metamodelo define un lenguaje para modelar mquinas de estados.Web Restaurante: Instancias 01/11/13PL2 - Metamodelado16 El sitio web se compone de pginas web con galeras de imgenes, formularios de reserva, etc. Es conforme a un determinado modelo. Web Restaurante: Modelo 01/11/13PL2 - Metamodelado17 MiBar.com BIENVENID@S NUESTRO BAR Modelo de nuestro sitio web representado con un DSL. Este modelo es, a su vez, conforme al metamodelo de nuestro DSL Web Restaurante: Metamodelo 01/11/13PL2 - Metamodelado18 Este metamodelo representa los conceptos del dominio del tipo de problema que queremos modelar (sitios web para bares y restaurantes) LENGUAJES METAMODELADO 01/11/1319PL2 - Metamodelado Necesidad de meta-metamodelos !Para construir modelos, hacemos uso de lenguajes de modelado, los cuales estndefinidos por un determinado metamodelo. !De forma similar, para construir metamodelos, necesitaremos un lenguaje de metamodelado (definidos por un determinado meta-metamodelo). !Por tanto, un meta-metamodelo es el modelo de un metamodelo. 01/11/13PL2 - Metamodelado20 Un lenguaje de metamodelado bsico 01/11/13PL2 - Metamodelado21 Este meta-metamodelo bsico define un lenguaje de metamodelado basado en un grafo: conceptos (nodos) y relaciones entre ellos (arcos).Meta-Object Facility !Meta-Object Facility (MOF) es el meta-metamodelo propuesto por la OMG. !Este meta-metamodelo define un lenguaje estndar para escribir metamodelos para nuevos lenguajes especficos de dominio. !As mismo, el propio lenguaje UML est descrito utilizando los elementos de MOF. 01/11/13PL2 - Metamodelado22 Ecore !MOF es un meta-metamodelo muy amplio y complejo. !La comunidad Eclipse desarroll Ecore, un meta-metamodelo basado en MOF, pero con los elementos esenciales para construir nuevos DSLs. !Ecore se est convirtiendo en el estndar de facto en MDE para metamodelar. 01/11/13PL2 - Metamodelado23 ARQUITECTURA METAMODELADO 01/11/1324PL2 - Metamodelado Arquitectura de metamodelado Meta-metamodelo (M3) Metamodelo (M2) Modelo (M1) Instancias (M0) 01/11/1325PL2 - Metamodelado (Meta-)modelos y lenguajes !Las instancias del mundo real son conformes a un determinado modelo. !Modelo es conforme a un metamodelo. !Metamodelo es conforme a un meta-metamodelo. !Un meta-metamodelo es conforme a si mismo. !Un metamodelo define un lenguaje de modelado. !Un meta-metamodelo define un lenguaje de metamodelado. 01/11/13PL2 - Metamodelado26 Pirmide MDE 01/11/13PL2 - Metamodelado27 Arquitectura y el enfoque MDA 01/11/1328 Meta-metamodelo (M3) Metamodelo (M2) Modelo (M1) Instancias (M0) CIMPIMPSMCode CIMPIMPSMCode PL2 - Metamodelado RESUMEN METAMODELADO 01/11/1329PL2 - Metamodelado Resumen !Todos los modelos diseados con UML son conformes al metamodelo de UML. El metamodelo de UML se define en trminos del meta-metamodelo MOF. !Para construir los DSL, tendremos que definir un metamodelo que recoja los conceptos y relaciones del tipo de problema a modelar. !Este metamodelo definir, por tanto, la sintaxis abstracta de nuestro lenguaje. !Para el desarrollo del metamodelo, utilizaremos Ecore un meta-metamodelo de Eclipse basado en MOF. 01/11/13PL2 - Metamodelado30 01/11/1331PL2 - Metamodelado Metamodelado Procesadores de Lenguajes 2 Ivn Ruiz Rube [email protected] Curso 2013-2014