Introduccion Emf D Alonso
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Introduccion Emf D Alonso

on

  • 2,847 views

 

Statistics

Views

Total Views
2,847
Views on SlideShare
2,844
Embed Views
3

Actions

Likes
4
Downloads
35
Comments
0

1 Embed 3

http://www.slideshare.net 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Eclipse Modeling Framework Project (EMF) The EMF project is a modeling framework and code generation facility for building tools and other applications based on a structured data model. From a model specification described in XMI, EMF provides tools and runtime support to produce a set of Java classes for the model, along with a set of adapter classes that enable viewing and command-based editing of the model, and a basic editor. EMF builds include XML Schema Definition (XSD), now a component of the Model Development Tools (MDT) project, and an EMF-based implementation of Service Data Objects (SDO). XSD provides a model and API for manipulating components of an XML Schema, with access to the underlying DOM representation of the schema document. Other subprojects, such as Model Query , Model Transaction , and Validation Framework , are available separately. The next release of EMF is scheduled for the end of June 2008, along with the rest of the Ganymede projects. EMF (Core) EMF consists of three fundamental pieces: EMF - The core EMF framework includes a meta model (Ecore) for describing models and runtime support for the models including change notification, persistence support with default XMI serialization, and a very efficient reflective API for manipulating EMF objects generically. EMF.Edit - The EMF.Edit framework includes generic reusable classes for building editors for EMF models. It provides Content and label provider classes, property source support, and other convenience classes that allow EMF models to be displayed using standard desktop (JFace) viewers and property sheets. A command framework, including a set of generic command implementation classes for building editors that support fully automatic undo and redo. EMF.Codegen - The EMF code generation facility is capable of generating everything needed to build a complete editor for an EMF model. It includes a GUI from which generation options can be specified, and generators can be invoked. The generation facility leverages the JDT (Java Development Tooling) component of Eclipse. Three levels of code generation are supported: Model - provides Java interfaces and implementation classes for all the classes in the model, plus a factory and package (meta data) implementation class. Adapters - generates implementation classes (called ItemProviders) that adapt the model classes for editing and display. Editor - produces a properly structured editor that conforms to the recommended style for Eclipse EMF model editors and serves as a starting point from which to start customizing. All generators support regeneration of code while preserving user modifications. The generators can be invoked either through the GUI or headless from a command line. Want to learn more about how easy it is to use this exciting new technology to help you boost your Java programming productivity, application compatibility and integration? Start by reading the overview documents and the tutorial , followed by downloading the driver , and then sit back and watch your applications write themselves! Well, not completely, but this wouldn't be a sales pitch if there weren't a little bit of exaggeration. Downloads CDO CDO is both a technology for distributed shared EMF models and a fast server-based O/R mapping solution. More... Downloads Model Query The query component provides capabilities to specify and execute queries against EMF model elements and their contents. More... Downloads Model Transaction The transaction component provides a model management layer built on top of EMF for managing EMF resources. It provides API that include extensions to the EditingDomain and related APIs of the EMF.Edit framework, and an internal model of transactions. It consists of two layers: a non-Eclipse core, providing primarily the "transaction model", and an Eclipse workspace integration layer. More... Downloads Net4j Net4j is an extensible client-server system based on the Eclipse Runtime and the Spring Framework. More... Downloads SDO Service Data Objects (SDO) is a framework that simplifies and unifies data application development in a service oriented architecture (SOA). It supports and integrates XML and incorporates J2EE patterns and best practices. EMF includes an EMF-based implementation of Service Data Objects. More... Downloads Teneo Teneo is a database persistency solution for EMF using Hibernate or JPOX/JDO 2.0. It supports automatic creation of EMF to Relational Mappings. EMF Objects can be stored and retrieved using advanced queries (HQL or JDOQL). More... Downloads Validation Framework The validation component provides capabilities used to ensure model integrity.

Introduccion Emf D Alonso Presentation Transcript

  • 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. TABLA DE CONTENIDOS
    • Brevísima introducción al DSDM:
      • Conceptos básicos
      • Eclipse y los plug-ins de soporte para DSDM
    • Características de EMF, núcleo de DSDM en Eclipse
    • ¿Cómo definir meta-modelos?
    • ¿Cómo definir modelos?
    • Algunos ejemplos
    • Lecciones aprendidas
    eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  • 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.
    • 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
    * * 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.
    • 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:
    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. 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.
    • 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
  • 8. 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
  • 9. 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
  • 10. 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 
    EMF ≈ MOF eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote M3 M2 M1
  • 11. 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
  • 12.
  • 13. 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
  • 14. EMF TIENE TIPOS DE DATOS … eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  • 15. … Y MÁS TIPOS DE DATOS eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  • 16. ¿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
  • 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. ¿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
  • 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. ANTES DE QUE SEA DEMASIADO TARDE … EJEMPLOS eclipseDay - Introducción a EMF - Diego Alonso Cáceres y Cristina Vicente Chicote
  • 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. 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. 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
  • 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 !!