49
Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007 1 Toñi Reina Quintero [email protected] Separación Avanzada de Conceptos Dirigida por Modelos

Separación Avanzada de Conceptos Dirigida por Modelos

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Separación Avanzada de Conceptos Dirigida por Modelos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

1

Toñi Reina Quintero

[email protected]

Separación Avanzada de Conceptos Dirigida por Modelos

Page 2: Separación Avanzada de Conceptos Dirigida por Modelos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

2

Índice de contenido

• Introducción

• Desarrollo de Software Orientado a Aspectos (DSOA)

• Desarrollo de Software Dirigido por Modelos (DSDM)

• Conclusiones

• Bibliografía

Page 3: Separación Avanzada de Conceptos Dirigida por Modelos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

3

Introducción

Page 4: Separación Avanzada de Conceptos Dirigida por Modelos

Introducción (I)

MDA

AOP

WEB

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

4

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 5: Separación Avanzada de Conceptos Dirigida por Modelos

Introducción (II)1995 2000

1970 2007

1980 1997

1995 - 2007

Tecnología de Componentes

1980 - 2007

Tecnología de objetos

1970 - 2007

Tecnología procedural

1997 - 2007

Tecnología de Aspectos

2000 - 2007

Tecnología de Modelos

Procedimientos,

Pascal, C, ...

Objetos, Clases

Smalltalk, C++, ...

Paquetes, Frameworks, Patrones

Aspecto, Pointcut, Advice

AspectJ

Modelo, Metamodelo,

UML, XMI, MOF

Evolución de la ingeniería del software5

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 6: Separación Avanzada de Conceptos Dirigida por Modelos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

6

“Un place pour chaque chose, et chaque chose à sa place”

(Proverbio Francés)

Desarrollo de Software Orientado a Aspectos

Page 7: Separación Avanzada de Conceptos Dirigida por Modelos

Problema: código enmarañado (Tangling & Scattering)

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

7

• Localización del código de logging en org.apache.tomcat• Las líneas rojas muestran el código asociado al logging.• No está solamente en un sitio, ni en un número reducido de sitios.

• Localización del código del análisis de archivos XML en org.apache.tomcat

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 8: Separación Avanzada de Conceptos Dirigida por Modelos

Consecuencias del código enmarañado

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

8

•Código redundante.•El mismo trozo de código se repite en muchos lugares

•Dificultad para razonar sobre él.

•No hay una estructura explícita.

•Dificultad para realizar modificaciones.•Hay que encontrar todo el código involucrado.

•Ineficiente cuando el código del concepto entremezclado no

es necesario.

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 9: Separación Avanzada de Conceptos Dirigida por Modelos

Programación Orientada a Aspectos (POA)

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

9

MecanismosComposición

AOP

“Let me try to explain to you, what to my taste is characteristic for all intelligent

thinking. It is, that one is willing to study in depth an aspect of one’s subject

matter in isolation for the sake of its own consistency,…”

(E. W. Dijkstra)

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 10: Separación Avanzada de Conceptos Dirigida por Modelos

Terminología DSOA

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

10

Elementos importantes:

• Elementos a componer.• Aspectos, conceptos, competencias o componentes.

• Puntos de enlace o de unión.• Aquellos puntos dentro de los elementos que se van a

componer en los que se puede hacer la composición.

• Relaciones de composición.• Especifican cómo se va a realizar la composición en los puntos

de unión.

Aproximaciones a la hora de realizar la composición:

• Asimétrico.• Al menos hay dos tipos de elementos a componer.

• Simétrico.• Solamente hay un tipo de elemento a componer..

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 11: Separación Avanzada de Conceptos Dirigida por Modelos

Desarrollo de Software Orientado a Aspectos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

11

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 12: Separación Avanzada de Conceptos Dirigida por Modelos

Técnicas de programación para expresar Crosscutting Concerns

Librería DJ

Aspect-Oriented Software Development

(AOSD)

Composition

Filters

(CF)

Adaptive

Programming

(AP)

Aspect-Oriented

Programming

(AOP)

Multidimensional

Separation of

Concerns (MSC)

ComposeJ AspectJ HyperJ

Asimétrico Asim.->sim Asimétrico Simétrico

Herramientas

Enfoque

Propuesta

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

12

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Filtros

Objetos

Objetos Aspectos

ClasesHyperslicesElementos a

componer

Filtros Estrategia Trans Pointcut HypermodulePtos. unión

Visitor AdaptableFiltros Advice Reglas composReglas comp

Page 13: Separación Avanzada de Conceptos Dirigida por Modelos

Un enfoque asimétrico basado en mecanismos lingüísticos: POA

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

13

Terminogía AspectJ:

• Join Points: Sitios bien definidos en el flujo de ejecución del código

donde se puede inyectar un comportamiento adicional.

• Advice: El comportamiento a ejecutar en el join point. (before /

after/instead).

• Pointcut designator: Describe un conjunto de joinpoints.

• Aspect: Unidad modular diseñada para implementar un concepto. Puede

incluir código (llamado advice) e indicar dónde, cuándo y cómo invocarlo.

• Weaving: Proceso de componer los módulos que tienen el núcleo de la

funcionalidad con los aspectos.Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 14: Separación Avanzada de Conceptos Dirigida por Modelos

Ejemplo de aspecto AspectJ

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

14

public aspect TestAspect {

pointcut outputLog(): call (public void helloWorld*(..));

before(): outputLog() {

System.out.println("Antes de la llamada - Hacer log a consola");

}

pointcut fileLog(): call (public String helloWorldReturn());

after(): fileLog() {

System.out.println("Antes de la llamada - Hacer log a un archivo");

}

}

Pointcut

designator

Advice

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 15: Separación Avanzada de Conceptos Dirigida por Modelos

Un enfoque simétrico: SMC

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

15

Terminogía HyperJ:

• Unidad: Constructor sintáctico que se utiliza en el lenguaje de programación con el

que se cosntruye el software. En Java serían, método, atributo, clase e interfaz.

• Concern: Un elemento de interés para un sistema. En Java, las clases.

• Espacio de concerns: Conjunto de todas las unidades de un sistema software.

• Hyperspace : Espacio de concerns estructurado para dar soporte a la SMC como

una matriz multidimensional. Cada eje representa una dimensión (un tipo de concern). Cada punto de un eje representa un concern de esa dimensión.

• Hyperslice: Conjunto de unidades que son completas declarativamente.

• Relaciones de integración: Forma de indicar cómo se combinan dos

hyperslices.Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 16: Separación Avanzada de Conceptos Dirigida por Modelos

Ejemplo: HyperJ

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

16

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Expresion

+crear()+metodos get/set+eval( )+display ()

+check ()

Literal

+crear()

+metodos get/set+eval( )+display ()+check ()

OpBinaria

+crear()

+metodos get/set+eval( )+display ()+check ()

OpUnaria

+crear()

+metodos get/set+eval( )+display ()+check ()

Mas

+crear()+metodos get/set+eval( )+display ()+check ()

Menos

+crear()+metodos get/set+eval( )+display ()+check ()

MasUnario

+crear()+metodos get/set+eval( )+display ()+check ()

MenosUnario

+crear()+metodos get/set+eval( )+display ()+check ()

EvalCheckDisplay

a:= b +5 a:= 16Corrección

sintáctica

:=

a +

b 5

Page 17: Separación Avanzada de Conceptos Dirigida por Modelos

Ejemplo: HyperJ

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

17

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

CLASES

CARACTERÍSTICAS

Exp

resio

n

Lite

ral

Check

Eval

Kernel

Display

Op

Bin

ari

a

Op

Un

ari

a

Mas

Me

no

s

MasU

nari

o

Me

no

sU

nari

o

Page 18: Separación Avanzada de Conceptos Dirigida por Modelos

Hypermodule SEE_With_Display_and_Check

hyperslices: Feature.Kernel, Feature.Display,

Feature.Check

relationships: mergeByName

Ejemplo de módulos HyperJ

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

18

Package com.ibm.hyperJ.ExpressionSEE: Feature.Kernel

operation display: Feature.Display

operation check: Feature.Check

operation eval: Feature.Eval

Regla composición

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Concern mappings

Eltos a componer

Hypermodule

Page 19: Separación Avanzada de Conceptos Dirigida por Modelos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

19

“Modeling is the future …

And the promise here is that you write a lot less code, that you have a model of the business process … “

(Bill Gates)

Desarrollo de Software Dirigido por Modelos (DSDM)

Page 20: Separación Avanzada de Conceptos Dirigida por Modelos

¿Qué es un modelo? (I)

modelo.(Del it. modello).1. m. Arquetipo o punto de referencia para imitarlo o

reproducirlo.2. m. En las obras de ingenio y en las acciones morales,

ejemplar que por su perfección se debe seguir e imitar.3. m. Representación en pequeño de alguna cosa.4. m. Esquema teórico, generalmente en forma

matemática, de un sistema o de una realidad compleja, como la evolución económica de un país, que se elabora para facilitar su comprensión y el estudio de su comportamiento.

DICCIONARIO DE LA LENGUA ESPAÑOLA - Vigésimo segunda edición

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

20

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 21: Separación Avanzada de Conceptos Dirigida por Modelos

¿Qué es un modelo? (II)

Modelo Sistemarepresentación de

Ejemplos de modelos:

• Modelos matemáticos

• Modelos hidrológicos

• Modelos biológicos

• Modelos ecológicos

• Modelos económicos

• Modelos meteorológicos

• Modelos de simulación

• Software

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

21

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 22: Separación Avanzada de Conceptos Dirigida por Modelos

¿Qué es un modelo? (III)

Modelo 1

SistemaModelo 2

Modelo 3

Modelo

circulatorio

Modelo

S. Nervioso

Modelo

Respiratorio

representación de

representación de

22

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 23: Separación Avanzada de Conceptos Dirigida por Modelos

Múltiples vistas de un sistema con diferentes DSL’s

Vista Instalación

Eléctrica

Vista Instalación

Fontanería

Vista CimentaciónVista Estructuras

Cada vista se expresa en un DSL distinto

Los vocabularios de las vistas son distintos 23

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 24: Separación Avanzada de Conceptos Dirigida por Modelos

¿Qué es un metamodelo? (I)

• Un modelo no tiene significado si se le separa

de su metamodelo.

Modelo Sistemarepresentación deMetamodelo

conforme a

•Un metamodelo es una especificación explícita de una

conceptualización compartida.

•En un metamodelo se definen una serie de conceptos y las

relaciones entre los mismos.

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

24

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 25: Separación Avanzada de Conceptos Dirigida por Modelos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

¿Qué es un metamodelo? (II)

Modelo

Metamodelo

conforme a

25

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 26: Separación Avanzada de Conceptos Dirigida por Modelos

¿Qué es un metamodelo? (III)

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

26

<<instance of >>

ModeloMetamodeloconforme a

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 27: Separación Avanzada de Conceptos Dirigida por Modelos

¿Qué es un metamodelo? (IV)

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

27

<<instance of >>

ModeloMetamodeloconforme a

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 28: Separación Avanzada de Conceptos Dirigida por Modelos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

28

¿Qué es un meta-metamodelo?

M1: System Model

M2:(Meta-model)

M0: System

M3: (Meta-meta-model)

+name

MOF Class

-name

UML Class

-name

UML Attribute

-title

-name

Customer

-name

-number

Order

title = "Dr"

name = "John Doe"

Objeto1 : Customer

title = "Dr"

name = "Frank Else"

: Customer

name = "Something"

number = "12345678"

: Order

<<instance of>>

<<instance of>> <<instance of>>

<<instance of>>

<<instance of>>

<<instance of>> <<instance of>>

<<instance of>> <<instance of>>

Modelo

Sistema

representación de

Metamodelo

conforme a

conforme a

Meta-metamodelo

conforme a

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 29: Separación Avanzada de Conceptos Dirigida por Modelos

Resumen

• Un modelo es una representación de un sistema.

• Un modelo puede tener una representación

gráfica (a veces).

• Un modelo está escrito en el lenguaje definido

por su metamodelo único.

• Un metamodelo está escrito en el lenguaje de

su único meta-metamodelo.

• Un metamodelo es un grafo etiquetado, dirigido

y restringido.

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

29

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 30: Separación Avanzada de Conceptos Dirigida por Modelos

Transformaciones de modelos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

30

Modelo

origenModelo

destino

Metamodelo

origenMetamodelo

destino

Motor de

Transformación

Definición

Transformación

ejecutada por

conforme a

conforme a

salidaentrada

se refiere ase refiere a

Metamodelo

Transformación

conforme a

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 31: Separación Avanzada de Conceptos Dirigida por Modelos

Transformaciones M2M

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

31

Motor transformaciones M2M

Transformaciones

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 32: Separación Avanzada de Conceptos Dirigida por Modelos

Transformaciones M2T

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

32

Motor transformaciones M2T

Transformaciones

public class Customer{

private String name;

private Address adr;

public void setName(String name){

this.name=name;

}

public String getName(){

return this.name;

}

public void setAddr (Address addr){

this.addr = addr;

}

public Address getAddr(){

return this.addr;

}

}

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 33: Separación Avanzada de Conceptos Dirigida por Modelos

Desarrollo de Software Dirigido por Modelos (DSDM)

EclipseEMFGMF

Model Driven Software Development

(MDSD)

Software

Factories

(SF)

Model Driven

Architecture

(MDA)

Model-Integrated

Computing

(MIC)

Otros

Estándares

MS Visual StudioDSL Tools

GME Otrasherramientas

Microsoft MDA ISIS Otros

Herramientas

Organismo

Estándar

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

33

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 34: Separación Avanzada de Conceptos Dirigida por Modelos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

34

SF vs. MDA

• Microsoft.• Líneas de Producto

Software• Herramientas Extensibles

y Configurables• Integra diferentes

actividades y técnicas.• Desarrollo de diferentes

lenguajes y herramientasespecíficas.

• OMG.• Estándares de modelado

(UML, MOF, XMI, …).• Niveles de modelado (CIM,

PIM, PSM).• Transformaciones entre

niveles• Modelos y transformaciones Ciudadanos de primeraclase.

Model Driven Development

(MDD)

Software Factories

(SF)Model Driven Architecture

(MDA)

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 35: Separación Avanzada de Conceptos Dirigida por Modelos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

35

Rápida

adaptación a

Cambios

Tecnológicos

Objetivo de MDA

IDEA:

• Separar las partes dependientes de una plataforma y las partes independientes de la misma.

• Desacoplar el modo en que se definen las aplicaciones de la tecnología en la que se ejecutan.

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 36: Separación Avanzada de Conceptos Dirigida por Modelos

Organización de modelos en MDA

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

36

Computation Independent

Model (CIM)

Platform Independent

Model (PIM)

Platform Specific

Model (PSM)

Código

Platform Specific

Model (PSM)

Código

Transf. M2M

Transf. M2MTransf. M2M

Transf. M2TTransf. M2T

EJB

Cobol

Write Once, Run AnywhereModel Once, Generate Anywhere

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 37: Separación Avanzada de Conceptos Dirigida por Modelos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

37

Estándares implicados en MDA (I)

M1: System Model

M2:(Meta-model)

M0: System

M3: (Meta-meta-model)

+name

MOF Class

-name

UML Class

-name

UML Attribute

-title

-name

Customer

-name

-number

Order

title = "Dr"

name = "John Doe"

Objeto1 : Customer

title = "Dr"

name = "Frank Else"

: Customer

name = "Something"

number = "12345678"

: Order

<<instance of>>

<<instance of>> <<instance of>>

<<instance of>>

<<instance of>>

<<instance of>> <<instance of>>

<<instance of>> <<instance of>>

LENGUAJES DE MODELADO

Catalog of OMG Modeling and Metadata Specificationshttp://www.omg.org/technology/documents/modeling_spec_catalog.htm

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 38: Separación Avanzada de Conceptos Dirigida por Modelos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

38

Estándares implicados en MDA (II)

LENGUAJES DE TRANSFORMACIONES

Catalog of OMG Modeling and Metadata Specificationshttp://www.omg.org/technology/documents/modeling_spec_catalog.htm

Computation Independent

Model (CIM)

Platform Independent

Model (PIM)

Platform Specific

Model (PSM)

Código

MOF Model to Text

MOF Query / Views / Transformations (QVT)

MOF Query / Views / Transformations (QVT)

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 39: Separación Avanzada de Conceptos Dirigida por Modelos

Dos visiones de MDA

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

39

http://www.omg.org/mda/committed-products.htm

56"The Architecture of Choice for a Changing World®"

Committed Companies and Their Products

Elaboracionista Translacionista

PIM

PSM

Código

PIM

PSM

Código

Reglas de generación

S. J. Mellor, M. Barcell.Executable UML: A Foundation for

MDA

A. Kleppe, J. Warmer, W. Bast. MDA Explained: The Model Driven

Architecture™: Practice and Promise

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 40: Separación Avanzada de Conceptos Dirigida por Modelos

Diferencias AOP/MDA

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

40

1. El objetivo de la POA y de MDA es similar. Ambas propuestas tratan

de atacar la complejidad de los sistemas a través de la separación de

conceptos.

• AOP Separación de “crosscutting concerns” de la lógica básica

de la aplicación.

• MDA Separar “conceptos tecnológicos” de la lógica de la

aplicación.

2. Tiempo compilación vs. tiempo ejecución.

• AOP T. compilación o T. ejecución

• MDA T. compilación / T. generación

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 41: Separación Avanzada de Conceptos Dirigida por Modelos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

41

Conclusiones

Page 42: Separación Avanzada de Conceptos Dirigida por Modelos

Conclusiones (I)

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

42

Rápida

adaptación a

Cambios

Tecnológicos

Variabilidad de

Requisitos de

Clientes

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 43: Separación Avanzada de Conceptos Dirigida por Modelos

Conclusiones (II)

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

43

Model Driven Architecture

Concern-specific modelling

languages

Aspect-Oriented Software

Development

• Independencia de plataforma

• Mejor separación de conceptos

• Nivel de abstracción más alto

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 44: Separación Avanzada de Conceptos Dirigida por Modelos

Conclusiones (III)

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

44

PIM

User Interface

PIM

Navitgation

PIM

Security

PIM

Distribution

PIM

Persistence

PIM

BD(Conceptual

Model)

PSM

User Interface

JSF Components

PSM

Navigation

JSF Components

PSM

Security

EJB Components

PSM

Distribution

EJB Components

PSM

Persistence

EJB Components

Relational PSM

JSF Source Code JSF Source Code EJB Soruce Code EJB Source Code EJB Source Code SQL Source Code

Transformation:

Code Generation

Transformation:

Code Generation

Transformation:

Code Generation

Transformation:

Code Generation

Transformation:

Code Generation

Transformation:

PIM Relational

Transformation:

PIM EJB Component

Transformation:

PIM EJB Component

Transformation:

PIM EJB Component

Transformation:

PIM -> JSF Component

Transformation:

PIM -> JSF Component

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

MD

A

AOSD

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 45: Separación Avanzada de Conceptos Dirigida por Modelos

Conclusiones (III)

Seminario IntegraWeb - 16 Marzo 2007

45

PIM

User Interface

PIM

Navitgation

PIM

Security

PIM

Distribution

PIM

Persistence

PIM

BD(Conceptual

Model)

PSM

User Interface

JSF Components

PSM

Navigation

JSF Components

PSM

Security

EJB Components

PSM

Distribution

EJB Components

PSM

Persistence

EJB Components

Relational PSM

JSF Source Code JSF Source Code EJB Soruce Code EJB Source Code EJB Source Code SQL Source Code

Transformation:

Code Generation

Transformation:

Code Generation

Transformation:

Code Generation

Transformation:

Code Generation

Transformation:

Code Generation

Transformation:

PIM Relational

Transformation:

PIM EJB Component

Transformation:

PIM EJB Component

Transformation:

PIM EJB Component

Transformation:

PIM -> JSF Component

Transformation:

PIM -> JSF Component

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

Comunication

Bridge

MD

A

AOSD

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 46: Separación Avanzada de Conceptos Dirigida por Modelos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

46

Bibliografía recomendada

Page 47: Separación Avanzada de Conceptos Dirigida por Modelos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

47

Bibliografía Recomendada (I)

• Anneke Kleppe, Jos Warmer, Win Bast.

MDA Explained: The Model Driven Architecture™:

Practice and Promise.

Addison-Wesley. 2003

ISBN: 0-321-19442-X .

• David Frankel.

Model Driven Architecture: Applying MDA to

Enterprise Computing

Wiley Publishing, Inc. 2003

ISBN: 0-471-31920-1

• Stephen J. Mellor, Kendall Scott, Axel Uhl, Dirk Weise.

MDA Distilled

Addison-Wesley. 2004

ISBN: 0201788918

• Stephen J. Mellor, Marc Barcell.

Executable UML: A Foundation for MDA

Addison-Wesley. 2002

ISBN: 0201748045

MDA

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 48: Separación Avanzada de Conceptos Dirigida por Modelos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

48

Bibliografía Recomendada (I)

• Jack Greenfield, Keith Short, Steve Cook, Stuart Kent, John Crupi

Software Factories: Assembling Applications with Patterns,

Models, Frameworks and Tools

Wiley. 2004

ISBN: 0471202843 .

Software Factories

• Robert E. Filman, Tzilla Elrad, Siobhan Clarke, Mehmet Aksit.

Aspect-Oriented Software Development

Addison Wesley Professional. 2004

ISBN: 0321219767.

• Communications of the ACM. Special issue on AOSD. archiveVolume 44 , Issue 10 (October 2001)

ISSN:0001-0782

AOSD

Introducción

DSOA

DSDM

Conclusiones

Bibliografía

Page 49: Separación Avanzada de Conceptos Dirigida por Modelos

Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007

49

Toñi Reina Quintero

[email protected]

Separación Avanzada de Conceptos Dirigida por Modelos

¡Gracias por vuestra atención!