Professional Documents
Culture Documents
MDE: Model Driven Engineering Eclipse y su relacin con MDE EMF: Eclipse Modeling Framework
Preguntas y Repuestas
1. Requirements
3. Activity Diagrams
2. MarTE Model
4. Interation Diagrams
5. Static Diagrams
6. O-R-M Diagrams
8. Deployment
"Everything is an object" was one of the strongest technology improvement driving principles in the last twenty years
As long as this principle was followed, steady progresses were achieved
Object
isInstanceOf
Class
System
isRepresentedBy
Model
Tomado de: MDA : From Hype to Hope, and Reality. Jean Bzivin, UML 2003, San Francisco
1980
1995
2000
procedural technology
object technology
component technology
model technology
procedural refinement
object composition
model transformation
Que camino se debe recorrer para adoptar paradigmas basados en la transformacin de modelos?
Adaptado de: Bzivin, J.: MDA : From Hype to Hope, and Reality. In 6th International Conference on the Unified Modeling Language, UML 2003, San Francisco, California. Keynote Talk. (2003)
Transformacin M2M
DSL de Aplicacin
Mapear
Incluir
Plantillas de Generacin
MDE: Model Driven Engineering Eclipse y su relacin con MDE EMF: Eclipse Modeling Framework
Preguntas y Repuestas
Software Factories
Microsoft
Adaptado de: OBJECT MANAGEMENT GROUP. Business Processes and the OMG: An Overview.
Model-driven software development (MDSD) is not just about generating code. Several additional challenges have to be mastered. These include: how to get usable graphical and textual editors for your domain specific language (DSL), how to validate your models against your metamodels, how to define model modifications and transformations and finally, how to write scalable, maintainable and extensible code generators. In this article we show how to tackle all these challenges, based on a collection of open source tools: Eclipse, Eclipse Modeling Framework (EMF), Graphical Modeling Framework (GMF) as well as openArchitectureWare. We believe that this tool chain provides a proven and stable stack for making MDSD a practical reality.
With the increasing popularity of Domain Specific Languages (DSLs), the need for quality tooling in the form of language workbenches and graphical editors will be critical to their success. The Eclipse Modeling Project (EMP) includes the necessary components for abstract and graphical syntax development, model transformation and code generation; that is, all you need for a DSL Toolkit in Eclipse. This presentation will illustrate the capabilities of the Eclipse Modeling Project to develop a DSL and associated generators for use in a Model-Driven Software Development (MDSD) scenario. Specifically, the Eclipse Modeling Framework (EMF), Graphical Modeling Framework (GMF), Model-to-Model Transformation (M2M:QVT OML) and Model-to-Text (M2T:Xpand) Transformation projects will be demonstrated in the context of a real-world DSL toolkit.
MDE: Model Driven Engineering Eclipse y su relacin con MDE EMF: Eclipse Modeling Framework
Preguntas y Repuestas
EMF es un framework en Java con utilidades para construir herramientas y otras aplicaciones basadas en un modelo estructurado.
EMF ayuda a convertir rpidamente los modelos en cdigo Java eficiente, correcto y personalizable. Para aquellos que no necesariamente utilizan los modelos formales, la intencion de EMF es proveer los mismos servicios a un bajo costo.
UML
Herramientas de Transformacin
JAVA
Herramientas de Bases de Datos
Herramientas de Pruebas
EMF
Integra
Herramientas MDE
XMI
Administracin de MetaDatos
Customizable
Command-line or
GENERATE
XML Schema
Fully supports
Java edit
Java editor*
Ecore
eSuperTypes 0..* EClass name : String eAttributes 0..* eReferences 0..* 1 eReferenceType EReference name : String containment : boolean lowerBound : int upperBound : int EAttribute name : String eAttributeType 1 EDataType name : String
eOpposite
0..1
MDE: Model Driven Engineering Eclipse y su relacin con MDE EMF: Eclipse Modeling Framework
Preguntas y Repuestas
Eclipse Platform
Java Development Tools (JDT)
Team
Your Tool
Workspace
Debug
Their Tool
Eclipse is a universal platform for integrating development tools Open, extensible architecture based on plug-ins
PDE JDT
Platform
Java VM
Extension - 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
plugin.xml
<plugin id = com.example.tool" name = Example Plug-in Tool" class = "com.example.tool.ToolPlugin"> <requires> <import plugin = "org.eclipse.core.resources"/> <import plugin = "org.eclipse.ui"/> </requires> <runtime> <library name = tool.jar"/> </runtime> <extension point = "org.eclipse.ui.preferencepages"> <page id = "com.example.tool.preferences" icon = "icons/knob.gif" title = Tool Knobs" class = "com.example.tool.ToolPreferenceWizard/> </extension> <extension-point name = Frob Providers id = "com.example.tool.frobProvider"/> </plugin>
Plug-in identification
Other plug-ins needed
Location of plug-ins code Declare contribution this plug-in makes Declare new extension point open to contributions from other plug-ins
extension point P
interface I
implements
class C
Plug-in A Plug-in B
creates, calls
Implements interface I with its own class C Contributes class C to extension point P
UI
SWT
Core
Workspace
Ant
Platform Runtime
SWT generic low-level graphics and widget set JFace UI frameworks for common UI tasks Workbench UI personality of Eclipse Platform
Menu bar
Tool bar
Perspective and Fast View bar
Text editor
Outline view
Properties view
Message area
Stacked views Tasks view
MDE: Model Driven Engineering Eclipse y su relacin con MDE EMF: Eclipse Modeling Framework
Preguntas y Repuestas
Microkernel se aplica a los sistemas de software que debe ser capaz de adaptarse a los cambio en los requisitos del sistema. Separa un ncleo funcional mnimo de la funcionalidad extendida y partes especficas del cliente. El microncleo tambin sirve como un socket para conectar estas extensiones y coordinar su colaboracin. [Buschmann, et al. 1996]
Reflection provee un mecanismo para cambiar la estructura y el comportamiento de los sistemas de software de forma dinmica. Es compatible con la modificacin de los aspectos fundamentales, tales como las estructuras y mecanismos de tipo de llamada a funcin. En este modelo, una aplicacin se divide en dos partes: Un nivel meta proporciona informacin sobre las propiedades del sistema seleccionado y hace que el software autoconocido. Un Nivel de base incluye la lgica de la aplicacin. Su aplicacin se basa en el nivel meta. Los cambios en la informacin guardada en el nivel meta influyen en el comportamiento posterior de nivel base. [Buschmann, et al. 1996]
Esta clase representa el decorador y debe implementar una de las interfaces que provee eclipse para definir decoradores
Estrategia concreta
MDE: Model Driven Engineering Eclipse y su relacin con MDE EMF: Eclipse Modeling Framework
Preguntas y Repuestas
el
anhelado
sueo
de
Algunas autores plantean que usando MDA se puede generar hasta el 60%-70% de una aplicacin. La ingeniera en reversa se presenta como un gran reto en MDA. Entonces que pasa con la polucin del cdigo? (el otro 40%-30%)
encuentra la compaa?
Utiliza BPMN?
En que plataformas o tecnologas mviles desarrolla?