Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introduccion Emf D Alonso

1,664 views

Published on

Published in: Education, Technology
  • Be the first to comment

Introduccion Emf D Alonso

  1. 1. EclipseDAY INTRODUCCIÓN A EMF DESDE UN PUNTO DE VISTA PRÁCTICO Diego Alonso Cáceres [email_address] Cristina Vicente Chicote [email_address]
  2. 2. TABLA DE CONTENIDOS <ul><li>Brevísima introducción al DSDM: </li></ul><ul><ul><li>Conceptos básicos </li></ul></ul><ul><ul><li>Eclipse y los plug-ins de soporte para DSDM </li></ul></ul><ul><li>Características de EMF, núcleo de DSDM en Eclipse </li></ul><ul><li>¿Cómo definir meta-modelos? </li></ul><ul><li>¿Cómo definir modelos? </li></ul><ul><li>Algunos ejemplos </li></ul><ul><li>Lecciones aprendidas </li></ul>eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  3. 3. INTRODUCCIÓN AL DSDM MDA Meta-Modelo Modelo DSDM MOF M2M XMI PSM PIM CIM DSL M2T EMF ¡¡ Un “meta-infierno” de siglas !! 1/4 eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  4. 4. <ul><li>Meta-Modelo : conjunto finito de conceptos del dominio + conjunto de relaciones entre ellos. </li></ul><ul><ul><li>Ejemplo 1: Palabras del diccionario de la lengua española + gramática de la lengua española. </li></ul></ul><ul><ul><li>Ejemplo 2: Meta-modelo para modelar máquinas de estados </li></ul></ul>* * 1 1 origen destino INTRODUCCIÓN AL DSDM 2/4 eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote Estado Transición MaquinaEstados
  5. 5. <ul><li>Lenguaje de modelado : conjunto infinito de todos los modelos válidos que se pueden construir a partir de un meta-modelo. </li></ul><ul><ul><li>Ejemplo 1: Lenguaje español = conjunto de todas las posibles frases correctas que se pueden formar con las palabras del diccionario. </li></ul></ul><ul><ul><li>Ejemplo 2: Conjunto de todos los modelos de máquinas de estados que se pueden construir a partir del meta-modelo anterior. A continuación se muestran sólo algunos ejemplos: </li></ul></ul>INTRODUCCIÓN AL DSDM 3/4 eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote S 1 S 2 S 1 S 3 S 1 S 2 S 3 S 4 S 2 Modelos ...
  6. 6. Código MOF UML, SysML, ... Diagramas UML, ... Modelo Meta-Modelo Meta-Meta-Modelo INTRODUCCIÓN AL DSDM 4/4 eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote M3 M2 M1
  7. 7. <ul><li>Eclipse es una plataforma de desarrollo abierta y de libre distribución. </li></ul><ul><li>En su desarrollo participan importantes empresas como Borland, IBM, Intel, Motorola, etc. </li></ul><ul><li>Actualmente, la comunidad Eclipse se organiza alrededor de múltiples proyectos que evolucionan en paralelo de manera independiente o cooperativa. </li></ul><ul><li>Los proyectos relacionados con el DSDM se encuentran entre los más activos: EMF, GMF, M2M , M2T , GMT, etc. </li></ul>http://www.eclipse.org http://www.eclipse.org/modeling/ LA PLATAFORMA ECLIPSE eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  8. 8. PLUG-INS PARA (META-) MODELADO <ul><li>Eclipse Modeling Framework (EMF) </li></ul><ul><li>http://www.eclipse.org/emf/ </li></ul><ul><ul><li>Creación / Manipulación / Almacenamiento de modelos y meta-modelos en formato XMI. </li></ul></ul><ul><ul><li>Proporciona: </li></ul></ul><ul><ul><ul><li>Editor reflexivo de modelos (tree-editor) integrado. </li></ul></ul></ul><ul><ul><ul><li>Facilidades para la generación automática de editores reflexivos como plug-ins Eclipse. </li></ul></ul></ul><ul><li>Herramientas gráficas de modelado </li></ul><ul><ul><li>Creación de editores gráficos de modelos a partir de meta-modelos definidos en EMF . </li></ul></ul><ul><ul><li>Graphical Modeling Framework (GMF) http://www.eclipse.org/gmf / </li></ul></ul><ul><ul><li>TOPCASED http://topcased.gforge.enseeiht.fr/ </li></ul></ul>eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  9. 9. PLUG-INS ECLIPSE PARA M2M Y M2T <ul><li>Transformaciones M2M </li></ul><ul><li>Proyecto Model-to-Model (M2M) </li></ul><ul><li>http://www.eclipse.org/m2m/ </li></ul><ul><ul><li>Atlas Transformation Language (ATL) </li></ul></ul><ul><ul><li>http://www.eclipse.org/m2m/atl/ </li></ul></ul><ul><ul><li>http://www.sciences.univ-nantes.fr/lina/atl/ </li></ul></ul><ul><li>Transformaciones M2T </li></ul><ul><li>Proyecto GMT ( Generative Modelling Technologies ) </li></ul><ul><li>http://www.eclipse.org/gmt/ </li></ul><ul><ul><li>MOFScript: http://www.eclipse.org/gmt/mofscript/ </li></ul></ul><ul><li>Proyecto M2T (Model-to-Text) </li></ul><ul><li>http://www.eclipse.org/modeling/m2t/ </li></ul><ul><ul><li>Xpand: http://www.eclipse.org/modeling/m2t/?project=xpand </li></ul></ul><ul><ul><li>JET: http://www.eclipse.org/modeling/m2t/?project=jet </li></ul></ul>eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  10. 10. PROCESO DE DSDM <ul><li>Fundamental el diseño del meta-modelo </li></ul><ul><ul><li>Establece los conceptos que modelan la realidad con el grado de detalle requerido </li></ul></ul><ul><ul><li>Condiciona la expresividad de los modelos </li></ul></ul><ul><ul><li>Condiciona el resto de etapas: editor gráfico, M2M y M2T </li></ul></ul><ul><li>Prueba y error  </li></ul>EMF ≈ MOF eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote M3 M2 M1
  11. 11. ECLIPSE MODELING FRAMEWORK <ul><li>Soporte básico para DSDM en Eclipse </li></ul><ul><li>EMF agrupa otros plug-ins que permiten: </li></ul><ul><ul><li>Realizar consultas sobre los elementos de un modelo EMF y su contenido ( Query ) </li></ul></ul><ul><ul><li>Verificar si el modelo es conforme a su meta-modelo ( Validation ) </li></ul></ul><ul><ul><li>Generar implementación en Java del modelo </li></ul></ul><ul><ul><li>Generar un editor de modelos </li></ul></ul>Implementación de Essential-MOF eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  12. 12.
  13. 13. PRINCIPALES ELEMENTOS DE EMF <ul><li>EClass : conceptos del meta-modelo </li></ul><ul><li>EAttribute : propiedad de una EClass en forma de tipos primitivos (int, float, String, tipos enumerados,…) </li></ul><ul><li>EReference : relación entre conceptos (EClass) </li></ul><ul><li>EEnum : define tipos de datos con valores enumerados </li></ul><ul><li>EPackage : paquetes para organizar los elementos anteriores </li></ul><ul><li>EOperation : define métodos en los conceptos (EClass) </li></ul><ul><ul><ul><li>Multiplicidad </li></ul></ul></ul><ul><ul><ul><li>Rol </li></ul></ul></ul><ul><ul><li>Contención </li></ul></ul><ul><ul><li>Navegabilidad </li></ul></ul>eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  14. 14. EMF TIENE TIPOS DE DATOS … eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  15. 15. … Y MÁS TIPOS DE DATOS eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  16. 16. ¿CÓMO DEFINIR UN META-MODELO? <ul><li>Editor ( tree-editor ) de EMF </li></ul><ul><li>Editor gráfico, por ejemplo GMF </li></ul><ul><li>Otros plug-ins DSDM ofrecen sus propios editores </li></ul><ul><li>También se puede importar un modelo UML (Rational, etc.) </li></ul><ul><li>El fichero importante es el . ecore </li></ul>1/2 eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  17. 17. <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <ecore:EPackage xmi:version=&quot;2.0&quot; … <eClassifiers xsi:type=&quot;ecore:EClass&quot; name=&quot; Root &quot;> <eStructuralFeatures xsi:type=&quot;ecore:EReference&quot; name=&quot; componentes &quot; upperBound=&quot;-1&quot; eType=&quot;#//Componente&quot; containment=&quot;true&quot;/> <eStructuralFeatures xsi:type=&quot;ecore:EReference&quot; name=&quot; conectores &quot; upperBound=&quot;-1&quot; eType=&quot;#//Conector&quot; containment=&quot;true&quot;/> </eClassifiers> <eClassifiers xsi:type=&quot;ecore:EClass“ name=&quot; Componente &quot;> <eStructuralFeatures xsi:type=&quot;ecore:EAttribute&quot; name=&quot; nombre &quot; lowerBound=&quot;1&quot; eType=&quot;ecore:EDataType </eClassifiers> <eClassifiers xsi:type=&quot;ecore:EClass&quot; name=&quot; Conector &quot;> <eStructuralFeatures xsi:type=&quot;ecore:EReference&quot; name=&quot; origen &quot; lowerBound=&quot;1&quot; eType=&quot;#//Componente&quot;/> <eStructuralFeatures xsi:type=&quot;ecore:EReference&quot; name=&quot; destino &quot; lowerBound=&quot;1&quot; eType=&quot;#//Componente&quot;/> <eStructuralFeatures xsi:type=&quot;ecore:EAttribute&quot; name=&quot; nombre &quot; lowerBound=&quot;1&quot; eType=&quot;ecore:EDataType </eClassifiers> </ecore:EPackage> Example1.ecore_diagram ¿CÓMO DEFINIR UN META-MODELO? 2/2 eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote Example1.ecore
  18. 18. ¿CÓMO CREAR MODELOS? <ul><li>Instancia dinámica (editor reflexivo) EMF </li></ul><ul><li>Creando un plug-in editor en Eclipse </li></ul><ul><li>Editor gráfico, creado por ejemplo con GMF </li></ul><ul><li>Algunos plug-ins DSDM ofrecen sus propios editores de modelos </li></ul>1/2 eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  19. 19. ¿CÓMO CREAR MODELOS? <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <example:Root xmi:version=&quot;2.0&quot; xmlns:xmi=&quot;http://www.omg.org/XMI&quot; xmlns:example=&quot;example&quot;> <componentes nombre=&quot;C1&quot;/> <componentes nombre=&quot;C2&quot;/> <componentes nombre=&quot;C3&quot;/> <conectores origen=&quot;//@componentes.0&quot; destino=&quot;//@componentes.1&quot; nombre=&quot;L12&quot;/> <conectores origen=&quot;//@componentes.2&quot; destino=&quot;//@componentes.0&quot; nombre=&quot;L31&quot;/> <conectores origen=&quot;//@componentes.1&quot; destino=&quot;//@componentes.1&quot; nombre=&quot;L22&quot;/> <conectores origen=&quot;//@componentes.1&quot; destino=&quot;//@componentes.2&quot; nombre=&quot;L23&quot;/> </example:Root> 2/2 eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  20. 20. ANTES DE QUE SEA DEMASIADO TARDE … EJEMPLOS eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  21. 21. REMM Studio Begoña Moros Valle (UMU) Cristina Vicente Chicote (UPCT) C. Vicente-Chicote, B. Moros, A. Toval, REMM-Studio: an Integrated Model-Driven Environment for Requirements Specification, Validation and Formatting , Journal of Object Technology, Special Issue TOOLS EUROPE 2007, Vol. 6, No. 9, pp. 437-454, October 2007. http://www.jot.fm/issues/issue_2007_10/paper22 APLICACIONES EJEMPLO eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  22. 22. StateML + Diego Alonso Cáceres (UPCT) Cristina Vicente Chicote (UPCT) D. Alonso, C. Vicente-Chicote, J. A. Pastor, B. Álvarez, StateML + : From Graphical State Machine Models to Thread-Safe Ada Code, Proc. 13 th Int'l Conference on Reliable Software Technologies (Ada Europe 2008), 16-20 June, Venice (Italy), 2008 APLICACIONES EJEMPLO eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  23. 23. LECCIONES APRENDIDAS <ul><li>Las herramientas Eclipse para DSDM están en fase de desarrollo y se liberan nuevas versiones frecuentemente. </li></ul><ul><li>Existen numerosas dependencias/incompatibilidades entre las distintas versiones de los plug-ins. </li></ul><ul><li>Los manuales están, como mínimo, desactualizados. news://news.eclipse.org/ es la mejor (o la única) fuente de ayuda fiable y actualizada!! </li></ul><ul><li>El meta-modelo es la pieza clave del DSDM. Es como los cimientos de una casa. Debe probarse exhaustivamente. </li></ul><ul><li>Existen varias formas de modelar la misma realidad. </li></ul>eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  24. 24. EclipseDAY INTRODUCCIÓN A EMF DESDE UN PUNTO DE VISTA PRÁCTICO Diego Alonso Cáceres [email_address] Cristina Vicente Chicote [email_address] ¡¡ Gracias por su atención !!

×