You are on page 1of 44

Juan Bernardo Quintero

MDE: Model Driven Engineering Eclipse y su relacin con MDE EMF: Eclipse Modeling Framework

PDE: Plugin Development Environment


Implicaciones de Patrones y Frameworks

Preguntas y Repuestas

1. Requirements

2. Use Case Diagrams

3. Activity Diagrams

2. MarTE Model

4. Interation Diagrams

5. Static Diagrams

6. O-R-M Diagrams

7. Diagrams >>> Code

8. Deployment

9. Final Product 3. Final Product

"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

"Everything is a model" is a current driving principle for the MDE/MDA


As long as we follow this principle, steady progresses may be achieved

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

Procedures, Pascal, C, ...

Objects, Classes, Smalltalk, C++, ...

Packages, Frameworks, Patterns,

Models, Meta-Models, UML, OCL, MOF, XMI, SPEM, CWM

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)

Tomado de: http://www.theenterprisearchitect.eu/archive/2009/02/18/modeldriven-engineering-tools-compared-on-user-activities

Modelos del Domino


Considerar

Transformacin M2M

DSL de Aplicacin

Elementos comunes de IU en aplicaciones web, RIA y mviles

Modelo Intermedio Configuracin de plataforma destino


Transformacin M2T

Mapear

Plantillas de Generacin Plataforma X Plantillas de Generacin Plataforma Y

Incluir

Plantillas de Estilos A Plantillas de Estilos A

Aplicacin Plataforma X Aplicacin Plataforma Y

Tomado de: http://www.theenterprisearchitect.eu/archive/2009/02/18/modeldriven-engineering-tools-compared-on-user-activities

Modelos Conceptuales (Estructura en UML)

Modelos Conceptuales (Comportamiento en BPMN)

Configuracin Plataforma Mvil X Configuracin Plataforma RIA Y Configuracin Plataforma Web Z

Herramienta sobre Eclipse

Plantillas de Generacin

Aplicaciones Mviles Plataforma X

Aplicaciones Web Plataforma Z

Aplicaciones RIA Plataforma Y

MDE: Model Driven Engineering Eclipse y su relacin con MDE EMF: Eclipse Modeling Framework

PDE: Plugin Development Environment


Implicaciones de Patrones y Frameworks

Preguntas y Repuestas

MDA (Model Driven Architecture)


OMG (Object Management Group)

SPL (Software Product Line)


Sobresale el SEI (Software Engineering Institute)

Software Factories
Microsoft

MDSD (Model-Driven Software Development)


Industria y Academia en OOPSLA, JAOO y OOP

Adaptado de: OBJECT MANAGEMENT GROUP. Business Processes and the OMG: An Overview.

MDSD en una imagen [Markus Vlter]

From Front End To Code - MDSD in Practice

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.

Eclipse Modeling Project as a DSL Toolkit

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

PDE: Plugin Development Environment


Implicaciones de Patrones y Frameworks

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

Herramientas JAVA, ETC

Model Import and Generation


UML
I M P O R T

Generator features: Ecore Model

Customizable

JSP-like templates (JET)


integrated with Eclipse JDT

Command-line or
GENERATE

XML Schema

Fully supports

regeneration and merge

Java Java model model

Java edit

Java editor*

* requires Eclipse to run

Ecore

Ecore is EMFs model of a model (metamodel)


Persistent representation is XMI

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

PDE: Plugin Development Environment


Implicaciones de Patrones y Frameworks

Preguntas y Repuestas

Eclipse Platform
Java Development Tools (JDT)

Another Tool Help

Workbench JFace SWT

Team

Your Tool

Plug-in Development Environment (PDE)

Workspace

Debug

Platform Runtime Eclipse Project

Their Tool

Eclipse is a universal platform for integrating development tools Open, extensible architecture based on plug-ins

Plug-in development environment

PDE JDT

Java development tools


Eclipse Platform Standard Java2 Virtual Machine

Platform
Java VM

Plug-in - smallest unit of Eclipse function


Big example: HTML editor Small example: Action to create zip files

Extension point - named entity for collecting contributions


Example: extension point for workbench preference UI

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

Details spelled out in the plug-in manifest


Manifest declares contributions Code implements contributions and provides API plugin.xml file in root of 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

Typical arrangement plug-in A plug-in B contributes extension

extension point P
interface I

implements

class C

Plug-in A Plug-in B

Declares extension point P Declares interface I to go with P

creates, calls

Plug-in A instantiates C and calls its I methods

Implements interface I with its own class C Contributes class C to extension point P

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
SWT

JFace Team Help Debug

Core

Workspace

Ant

Platform Runtime

Workbench JFace SWT

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

Resource Navigator view Bookmarks view

Properties view

Message area
Stacked views Tasks view

Editor Status area

MDE: Model Driven Engineering Eclipse y su relacin con MDE EMF: Eclipse Modeling Framework

PDE: Plugin Development Environment


Implicaciones de Patrones y Frameworks

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]

Diagrama de Clases y Esquema de Funcionamiento Bsico


http:// http://www.eclipse.org/articles/Article-Plug-in-architecture/plugin_architecture.html

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]

Diagrama de Clases y Esquema de Funcionamiento Bsico


http://www.vico.org/pages/PatronsDisseny/

Esta clase representa el decorador y debe implementar una de las interfaces que provee eclipse para definir decoradores

Este es el mtodo que adiciona el comportamiento adicional.

El objeto que se va a decorar se define en el archivo plugin.xml en las seccin de extensiones.

Se asigna la estrategia para organizar los elementos

Estrategia concreta

MDE: Model Driven Engineering Eclipse y su relacin con MDE EMF: Eclipse Modeling Framework

PDE: Plugin Development Environment


Implicaciones de Patrones y Frameworks

Preguntas y Repuestas

Lograremos prontamente programar modelos ?

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%)

En que nivel de madurez en el uso de modelos se

encuentra la compaa?

Que herramientas de modelado utiliza? Utiliza un DSL o perfiles?

Que experiencias tiene la compaa en Eclipse?


Que frameworks de desarrollo utiliza? Se utilizan estrategias de transformacin de modelos?

Utiliza BPMN?
En que plataformas o tecnologas mviles desarrolla?

You might also like