separación avanzada de conceptos dirigida por modelos
TRANSCRIPT
Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007
1
Toñi Reina Quintero
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
Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007
3
Introducción
Introducción (I)
MDA
AOP
WEB
Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007
4
Introducción
DSOA
DSDM
Conclusiones
Bibliografía
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
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
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
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
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
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
Desarrollo de Software Orientado a Aspectos
Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007
11
Introducción
DSOA
DSDM
Conclusiones
Bibliografía
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
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
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
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
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
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
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
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)
¿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
¿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
¿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
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
¿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
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
¿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
¿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
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
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
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
Transformaciones M2M
Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007
31
Motor transformaciones M2M
Transformaciones
Introducción
DSOA
DSDM
Conclusiones
Bibliografía
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
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
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
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
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
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
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
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
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
Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007
41
Conclusiones
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
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
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
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
Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007
46
Bibliografía recomendada
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
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
Doctorado - Diseño de Aplicaciones Web - 09 Mayo 2007
49
Toñi Reina Quintero
Separación Avanzada de Conceptos Dirigida por Modelos
¡Gracias por vuestra atención!