Proyecto Metáfora
•
•
•
•
Un meta-modelo es un modelo que define el lenguaje para expresar un modelo. La siguiente figura ilustra las diferentes capas definidas en la arquitectura de la OMG que sustenta [OMG-MOF2003].
Djurić
: The Tao of Modeling Spaces Gašević, Vladan Devedžić
: - The Tao of Modeling Spaces Dragan Djurić, Dragan Gašević, Vladan Devedžić - On the Unification Power of Models
•
•
MOF
Meta-modelo PIM
<
>
PIM
Meta-modelo PSM
<>
PSM
MOF
UML Meta-Model
UML
Instancias con datos
M2
M1 <> M2
<> <>
<>
<>
<>
M1
<>
M2 <>
<>
<>
<> <>
M1 M1 <> M2
•
•
Modelos Conceptuales (Estructura en UML)
Configuración Plataforma Móvil X
Modelos Conceptuales (Comportamiento en BPMN)
Herramienta sobre Eclipse
Configuración Plataforma RIA Y Plantillas de Generación
Configuración Plataforma Web Z
Aplicaciones Móviles Plataforma X Aplicaciones RIA Plataforma Y
XMI es un lenguaje para permitirle a los usuarios desarrolladores de software el intercambio de modelos UML. Es una especificación de la OMG definida con el objetivo de facilitar el intercambio de modelos entre herramientas de modelado y repositorios de meta datos basados en la especificación [OMG XMI2003].
• • • • • •
Modelos Metamodelos Reglas de Transformación Plantilla de Generación Código Generado Archivos de Frameworks y APIs incluidos
: http://www.theenterprisearchitect.eu/archive/2009/02/18/model-
: http://www.theenterprisearchitect.eu/archive/2009/02/18/model-
•
•
EMF es un framework en Java con utilidades para construir herramientas y otras aplicaciones basadas en un modelo estructurado.
Herramientas de Transformación
EMF ayuda a convertir rápidamente los modelos en código Java eficiente, correcto y personalizable.
JAVA Herramientas de Bases de Datos
Herramientas de Pruebas
Para aquellos que no necesariamente utilizan los modelos formales, la intención de EMF es proveer los mismos servicios a un bajo costo.
UML
EMF
Integra
Herramientas MDE
XMI
Administración de MetaDatos
Herramientas JAVA, ETC…
Model Import and Generation UML
I M P O R T
Ecore Model
•
Customizable JSP-like templates (JET)
•
Command-line Command-line or integrated with Eclipse JDT
•
Fully supports regeneration and merge
GENERATE
XML Schema
Java Java model model
Generator features:
Java edit
Java editor*
* requires Eclipse to run
Ecore
Ecore is EMF’s model of a model (metamodel) ◦
Persistent representation is XMI
eSuperTypes EAttribute
0..*
eAttributes
EClass name : String
0..* eReferences 0..*
1
name : String
eAttributeType
eReferenceType
EReference name : String containment : boolean lowerBound : int upperBound : int
eOpposite
0..1
1
EDataType name : String
Definición de una Clase raíz para poder contener las instancias
Definición de tipos de datos no definidos en Ecore, para hacer el Meta-modelo autocontenido
•
•
Proyecto de Eclipse que tiene como objetivo proveer un puente generativo entre: ◦
◦
Eclipse Modeling Framework (EMF) Graphical Editing Framework (GEF)
Modelo de origen para la construcción de redes de distribución de costos basados en actividades.
•
•
Another Tool
Eclipse Platform Java Development Tools (JDT)
Workbench JFace SWT
Plug-in Development Environment (PDE)
Help
Workspace
Team
Debug
Platform Runtime Eclipse Project
Your Tool
Their Tool
■
■
Eclipse is a universal platform for integrating development tools Open, extensible architecture based on plug-ins
Plug-in Development Environment
PDE
Java Development Tools
JDT
Eclipse Platform
Platform
Standard Java Virtual Machine
Java VM
smallest unit of Eclipse function
◦
◦
Big example: HTML editor Small example: Action to create zip files
- named entity for collecting
“contributions” ◦
Example: extension point for workbench preference UI
a contribution
◦
Example: specific HTML editor preferences
Each plug-in ◦
◦
◦
◦
◦
◦
Contributes to 1 or more extension points Optionally declares new extension points Depends on a set of other plug-ins Contains Java code libraries and other files May export Java-based APIs for downstream plug-ins Lives in its own plug-in subdirectory
Details spelled out in the ◦
◦
◦
Manifest declares contributions Code implements contributions and provides API plugin.xml file in root of plug-in subdirectory
plugin.xml
Plug-in identification Other plug-ins needed
Location of plug-in’s code Declare contribution this plug-in makes Declare new extension point open to contributions from other plug-ins
■
Typical arrangement plug-in B
plug-in A extension point P
interface I
Plug-in A
implements
extension
class C
creates, calls
Declares extension point P Declares interface I to go with P
Plug-in B
contributes
Implements interface I with its own class C Contributes class C to extension point P
Plug-in A instantiates C and calls its I methods
Eclipse Platform Runtime is micro-kernel ◦
All functionality supplied by plug-ins
Eclipse Platform Runtime handles start up ◦
◦
◦
◦
Discovers plug-ins installed on disk Matches up extensions with extension points Builds global plug-in registry Caches registry on disk for next time
■ ■
Eclipse Platform is the common base Consists of several key components Eclipse Platform Workbench
“UI”
JFace SWT
“Core”
Workspace
Team
Ant Platform Runtime
Help Debug
Workbench JFace SWT
SWT – generic low-level graphics and widget set JFace – UI frameworks for common UI tasks Workbench – UI personality of Eclipse Platform
Esta clase representa el decorador y debe implementar una de las interfaces que provee eclipse para definir decoradores
Este es el método que adiciona el comportamiento adicional.
El objeto que se va a decorar se define en el archivo plugin.xml en las sección de extensiones.
Se asigna la estrategia para organizar los elementos
Estrategia concreta
•
•
Akhter, N. y Tariq, N. (2005). Comparison of Model Driven Architecture (MDA) based tools. Estocolmo: Institute of Technology y Karolinska University Hospital. p. 74. Bézivin, J. (2004). In Search of a Basic Principle for Model Driven Engineering. Upgrade, 5(2): 21-24. ISSN 1684-5285. Calic, T. Dascalu, S y Egbert D. (2008). Tools for MDA Software Development: Evaluation Criteria and Set of Desirable Features. 5° International Conference on Information Technology: New Generations. CSE Department, University of Nevada, Reno. Czarnecki, K., Helsen, S. (2006). Feature-based survey of model transformation approaches. IBM System Journal, 45(3). Dumas, M. (2009). Case Study: BPMN to BPEL Model Transformation. En 5th International Workshop on Graph-Based Tools – GraBaTs. Zurich. Forrester Consulting. (2008). Modernizing Software Development Through ModelDriven Development. A commissioned study conducted by Forrester Consulting on behalf of Unisys. Forward, A., Lethbridge, C. (2008). Problems and opportunities for model-centric versus code-centric software development: a survey of software professionals. Proceedings of the 2008 international workshop on Models in software engineering. Leipzig, Germany: ACM. p. 27-32.
Greenfield, J., Short, K. (2004). Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. Wiley. Grønmo, R. y Oldevik J. (2005) An Empirical Study of the UML Model Transformation Tool (UMT). En INTEROP-ESA – First International Conference on Interoperability of Enterprise Software and Applications, Suiza. IST - Information Society Technologies. (2006). MODELPLEX: MODELling solution for comPLEX software systems. European Commission. [Documento en línea]. [Consulta: 9-8-2010] http://www.modelplex.org/ King’s College London, University of York. (2003). An Evaluation of Compuware OptimalJ Professional Edition as an MDA tool. Kleppe, A., Warmer , J. y Bast, W. (2003). MDA explained: The practice and promise of model-driven architecture. Addison-Wesley. Larman, C. (2005). UML y patrones: Introducción al análisis y diseño orientado a objetos. 4ª ed. Prentice Hall. Lo Giudice, D. (2007). The State Of Model-Driven Development. OMG Technical Meeting, Brussels, Belgium. López, H., Varesi, F., Viñolo, M., et al. (2009). Estado del Arte de Lenguajes y Herramientas de Transformación de Modelos. Instituto de Computación, Universidad de la República, Montevideo, Uruguay.
Mens, T., Van Gorp, P., Varró, D., et al. (2006). Applying a Model Transformation Taxonomy to Graph Transformation Technology. En: Electronic Notes in Theoretical Computer Science, 152: 143-159. Mitra, T. (2008). Architecture in practice, Part 6: Why business process management (BPM) is important to an enterprise. IBM. [Documento en línea]. [Consulta: 23-9-2010] http://www.ibm.com/developerworks/library/ar-arprac6/ Mohagheghi, P., Fernandez, M., Martell, J., et al. (2009). MDE Adoption in Industry: Challenges and Success Criteria. Springer- LNCS 5421. p. 54-59. ISBN 978-3-64201647-9. Northrop, L. (2008). Software Product Line Essentials. Software Engineering Institute, Carnegie Mellon University. Object Management Group. (2003). Model Driven Architecture (MDA) Guide v1.0.1. [Documento en línea]. [Consulta: 6-7-2010] http://www.omg.org/cgibin/doc?omg/03-06-01.pdf. Object Management Group. (2006). Meta Object Facility (MOF) Core Specification v2.0. [Documento en línea]. [Consulta: 6-7-2010] http://www.omg.org/spec/MOF/2.0/PDF/. Object Management Group. (2007). Object Constraint Language v2.2. [Documento en línea]. [Consulta: 6 7 2010] http://www.omg.org/spec/OCL/2.2/PDF.
Object Management Group. (2009). Meta Object Facility (MOF) 2.0 Query/View/Transformation Specification v1.1. [Documento en línea]. [Consulta: 6 7 2010] http://www.omg.org/spec/QVT/1.1/Beta2/PDF Object Management Group. (2009). Business Process Modeling Notation (BPMN) FTF Beta 1 v2.0. [Documento en línea]. [Consulta: 6 7 2010] http://www.omg.org/spec/BPMN/2.0/Beta1/PDF/ Quintero, J., Anaya, R. (2007). Marco de Referencia para la Evaluación de Herramientas Basadas en MDA. Memorias del X Workshop IDEAS 2007. p. 225- 238. ISBN 978-980325-323-3. Quintero, J., Pérez, J. (2009) Estrategias para la Definición de una Técnica de Modelado para Arquitecturas de Referencia, Memorias del XII Workshop IDEAS, 2009. p.127-132. ISBN 978-958-44-5028-9. Sendall, S. y Kozaczynski, W. (2003). Model Transformation - the Heart and Soul of Model-Driven Software Development. Software Modeling and Verification Lab.,University of Geneva, CH-1211 Geneva 4, Switzerland. Völter, M. y Stahl, T. (2006). Model-Driven Software Development (Technology, Engineering, Management). Wiley. Wang, W. (2005). Evaluation of UML Model Transformation Tools. Viena: Business Informatics Group, Vienna University of Technology. p. 102.