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