Ingenieria de modelos con MDA - Departamento de Informática y

Anuncio
!"
!
#"
!
"
# $
$
!
%
&
"
%
%
*
########################################################$
'##################################################(
' ####################################################)
" +
%
#############,
&%
&%
"
%
%
% .
+
!
%
'
################################################
/ ############################################################
####################################################
(%$
)
0
2
2
2
2
1
&
" ###################################################################
1 * #############################################
##########################################################
##################################################
########################################################
3
4
####################################################
"
################################################
/ ############################################
#########################################################################
* %+ ,
$
$
$
(
(
(
)
)
5
-
,
!
*
%
!
%*
.%
/
6 72
.
!
/
8
8
8
8
8
1
6
%
%
%
%
%*
%
######################################################
###################################################################
#########################################################
###############################################################
%
%*
"
"
"
"
:
$
%
%
%
!
!
$
$
$
$
0
%
(
(
(
)
)
)
#######################################
" 9 #####################################
" 9 ######################################
- ###########################################
"
#######################################
##############################################################
!!
1(
2
;
6
'
##################################################################### ,
######################################################################## ,
############################################################### ,
!
&
#
%
2%
$ %
%3
&
0
5
7
8
&
" ###################################################################3$
&
' ##############################################3(
2
&
'##########################################3(
&
' ######################################3)
##########################################################35
/
" &
' ##########################################3,
%
" &< -' ##################################################3,
=9
&+ .'######################################################!
.
######################################################!
2" 9 &2
' ##################################################!
"
+ . ################################################!3
"
.
########################################!3
"
%
" #########################################!!
0
%
0
$
*#
2
% 9
2
7
7
- "
9
/
2
2
%
0!
4
'
6
%
(
"
$
4
7
8
$ "
!9
######################################################!)
" ###################################################!5
########################################################!5
9 > ######################################################$
########################################################$
########################################################$3
$
7
$ "
8
&!
)*
9
!0
6
(
4
&9
" ###################################################################$)
/ /
##############################################################$5
0 ######################################################################$5
/%
###############################################################$,
1
?
################################################################(
#######################################################################(
/ ##################################################################(
"
############################################(
/42
9 ###############################################################(
@ A
############################################################(!
9
%
$
7
$
4
4
00
+ .###################################################################((
.
########################################################(,
< - ##################################################################)
9
*#
/
% 9
2
2
2
2
%
/
"
%
7
$ "
9
#####################################################)
/
" ##################################################)
###########################################################)3
##############################################################)3
%
#########################################################)!
#############################################################)$
9!
+
2
$
&
:
4
'
)* ,
%7
%
9&
!
(+
9:
%
%
&% ' #########################################################)5
&% '#########################################################5
%
&% 3' #############################################5
9 "
&% !' #####################################################5
&% $' ##########################################################5
/
"
&% (' ###################################5
;
&% )' #####################################################5
+B
&% 5' #################################################53
&% ,' ###########################################################5$
9
"
&% '########################################5(
6
4
&% ' ###############################################5)
6 7&% ' ##############################################################55
2
&% 3' #############################################################5,
+
7 " &% !' ###########################################################5,
2
&% $'###################################5,
2
" 9 9
&% (' #################################################,
8
&% )'#####################################################,
:
% %7
C
0. 1 2
%
'
########################################################,
################################################################,
" ################################################################,3
*
./
-(
;
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
," 7
% %
+
"
! 2
7
& 2
7
0 2
7
9
%
:
%
' (%$
- %
2
2
2
! =
$
&
%
0 2
7
9 )
: 4
%
' +
"
7 %
!
&
0
9
:
'
-
!
&
0
9
:
'
!!
!
!
!!
!&
!0
!9
!:
!'
&&
&
&
&!
&&
&0
&9
%
7
$
%
% %+ ,
4
%
%
%
%
%
%
%
% 4 %
% *<
%%
3 7
%%
-5
3 7
+ ,3 7
5
5
)3 7
5
% %
% 7 %
%7
7 %
)>
.
? @
>
!
3
+ ,
%
%
%*
%
$ *
7
1
% %
%%
3
5
% 7
%
7
8>
.
?0@
% %
4
%
%%
7
7
$
7
%
%
$ 3A 5
B"
328C5
C%
%
%
$
6 %
%3
5
6 %7
" %3 # 5
C
7
%7
41,
"
7
8
2
7
* D 84 % "
7
7
7 %
$
%%
7
$
E%6
28C
7
$
% "
F" 7
7
7
$
CE%6
7
7
3
5
,%
%
$
%
CE%6
%7
G % 7 $
,%
" .%
$
%
" .
$
%
,%
%
* $
*
$
$
%
$
7
$
%7
7 %
4
>
? @
/
4
* %
4
F " 7
$
%
8
6.
H
"%
/
7 7
% %7
7
* 4
"
%
7
=7 %
7
%
%%
4
4
%7
7
%7 * $ %
, D
B
7
4
%7
7 %%
% % %
!
&
0
9
:
'
!
&
0
0
9
:
'
:
!
0
9
9
:
'
!!
!
!!
!&
!9
!9
!:
!:
!'
&&&
&
&
&
&
&!
&!
&:
&'
&'
0
0
0&
0&
00
09
09
0:
0:
0'
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
)"
&:
&'
00
0
0
0!
0&
00
09
0:
0'
99
9
9
9!
9&
90
99
9:
9'
::
:
%7
7 %%
"
"
2
= "%
F" 7
,%
%%
*
= "%
%
$
4
5
%
7
7
$
" .
%
7
7
7
%7
%
%
#
%
7
% %3 7
%
% %
%
% %7
%
%
3
85
4
%
A 3 7
85
"
2%
%7
%
7
8>
.
C 6 %
%
6 %7
"
I %7
" %
4
"
%
7
7
%
7 7
%
%
% 7
%%
7
$
5
3
?0@
%
4
7
5
8
28C 3 7
7
85
%
"
%3
3 7
85
". 28C 3
4
28C
7
4
5
5
3 7
85
0'
99
9
9
9
9
9!
9!
9!
9&
9&
9:
9'
::!
:&
:0
:9
::
::
:'
''
'
9
>
/
1 Introducción
1.1
+
Contexto
!
D ,, E
"
1 *
0E 1 E ?
2<
:
+
D
E
&1 *'
%
7
-
1 *
-
"
E
"
*
F
1 /
@
E
E
@ A
21C./E
D
" E
+
%
"
-
%
7
9> F
E
-
F
-
E
F
/
F
7
%
-
7
"
" %
"
%
@
E
9>
&. .'
1 *E
9
"
" E F
9
9>
F
< J
9>
"
.
:
+
$
/
F
9
"
@ E F
21C./E
&2 .'
E 9
9
7
"
E
0
@
E
%
E
7
9
F
-
7
E
/
-
9
7
7
&%
*
G
9
'E
:
%7 .* %
$ " %
% E %
+
:
/
/
9
7
&%
*
/
E
" 9 'E
9
%
"
:
%
'E
F
:
" &!*0 '
9
+
>
F
E
E
:
: : E
@
D $ :
> 0
:
9
&%
7
-
9
E
9
:
>
9
"
B
7 "
H
/E >
$
%
D
:
:
"
!
:
#
/
9
>
/
+
>
:
D
9
/
E
B
-
-
9
1.2
+
Objetivo del Proyecto
/
7
B
%
G
$
E
D E
"
1.3
:
:
-
F
-
:
-
-
/E
-
/
9
F
:
Método de Trabajo
+
- "
B
2 E
F
F
F> F
F
:
- "
:
"
E
&:
GI
I@@@
/E
9 9I I' +
J E
E !E (E 5E 3 K
"
"
+
-
9
/
9>
/ J K 6
/E
&'
J ,KE
B
:
:
-
7
"
F :
+
E
&
+
B
F
7
9
"
@ A
>
/E
F
" (
:
/
-L
@
&'
>F
) )E -
7
:
1
9
9
"
/
7
9
D
"
1 *
>
"
( *
#
: > 6
:
- .
+ , J3K
L
J$K
6
(
:
-
&
E
"
/
E
J ,K
1
B
E
M B
H
:
:
J K
-L
(
"
N
:
/
>B
E
E
9
>
/
3
-L
"
-
E
7
9
/
F
1
:
"
0 H
:
:
6
/
E
"
J 3E !E $E (E )K
-
E
+
:
9
:
"
9
H
7
F
7
" (
7
0
J K
/
"
9
"
1.4
Organización del Documento
+
B
7.
+
7
7.
-
"
/E
9
+
7
7.
/
F
" E
E:
:
F
6
/E
0E
:
7.
+
7.
F
$ 6 -L
1
:
7.
/
"
1
7
0
"
:
-
&
:
B
"
/
:
1
%
>
"
"
7
9:
F
E
9H
-
" E
-
"
F
>
(
E
:
/
E
"
79
7.
E
9
-L :
:
:
%
-
2 34(
"
+
:
:
-
! : -
7.
L
B
+
:
1 /( *
/
+
@
"
-
:
:
-
H
/
H
E
7.
9 "
'
>
9
>
/
!
2 Presentación de MDA
2.1
9H
Introducción
1 *E
9>E
-
/
9
@ AE
"
"
9
," 7
< - 0
7
B
9
E
@
$
FL
)
5
F
/Q
F
@ A
F
@
E
-
E
9
++
9
/
)"
%
OP L
21C./E
1 *E
/
-
" E
9
D :
"
/
E
E
%
E
"
E
E
F
/
-
G
-
F
E
-
F
E
9
E
"
0
-
/
7
: GI
I
@@@ 9 9I
+
E 6
#
I
9
7
E
7
E
9
>
/
/9
$
9 E
@
/
G
%
&(
$
%
F
%*
9>
$
&( *
F
%
9>
K
$
$ "
(
%
%
'
2
-
7
-
4
9>
" 9
%
*
F
"
9
+
:
B
*
(% 'E
F
"
E
%
%
7
%
%
"
" 9
7 M
7
NE
6
0
9
/E
F
9
F
H
%
)"
2.2
% %
%
Modelos en MDA
Introducción a los modelos
"
+ : :
*
9
F
L
9
/E
%
%*
0
9
7
9
=
F
+
%
%F %
"
E
M
N
B
"
/
%>
/
+ ,E
/E
9
F
>F
9
F
:
M
9
F
N
9
F
F
F>
0
:
F
F
9
9
>
/
(
0E
E
%
>
%
+
0
1
2
7 L
/ 0
EF
F
/E
+
76
tipoTarjetaCredito = {"VISA", "MasterCard", "American Express"}
tipoPago = {"Tarjeta de Credito", "Contra reembolso", "Transf erencia bancaria"}
estado = {"Pendiente", "Entregado", "Anulado"}
Cliente
clienteID : String
nombre : String
+cliente
nif : String
email : String
1
login : String
password : String
+pedidos
0..n
Pedido
pedidoID : String
fecha : Date
direccion : String
localidad : String
provincia : String
codigoPostal : Integer
tipoPago : String
tipoTarjetaCredito : String
numeroTarjetaCredito : Long
fechaCaducidad : Date
estado : String
/ total : Single
+pedido
LineaPedido
lineaPedidoID : String
unidades : Integer
+lineasPedido
1..n
1
0..n
calcularPrecioPedido() : Single
+animal
1
Categoria
categoriaID : String +categoria
nombre : String
descripcion : String 1
)"
+
"
+animales
0..n
Animal
animalID : String
nombre : String
descripcion : String
precio : Single
urlFoto : String
% %+ ,
PIM (Platform Independent Model)3
F
E
+
H
F
-
-
/
> 9
>
•
E
9>
G
+
E
-
H
E
E
"
3
+
9>
%
/J K
F
:
: L
-L
9
%
=
8 &2
-
E
/
'E
9
>
/
•
)
"
E
0
9
-
!
%
9
9
+
3
Cliente
Item
id
fecha
n
)"
E
%
Pedido
nombre
edad
1
dni
2
-L
! 2
nombre
cantidad
precio
1..n
7
%
"
% %
+ ,
PSM (Platform Specific Model)
2
)
>
F
9
-
>F
F
%
+ %
%
F
E
E
" 9 F
D
"
E
%
>
%
%
E
:
E
%
"
0
9 $
-L
- %
%
%
9
0 +
E
+ .! 2
G
:
D
+.
%
B
B
9
-
L
"
%
0 F
>
& "
UML & 9 '
&
"
( *
%
%
:
E
F
$
-
<<EJBEntity>>
!
&
!E
%
<<EJBEntity>>
:
:
9
-
%
H-
H-
" &
'
6 $ &1 / ( * 'E F
D
"
%
9
1 /: -
"
-
E
( * 1 /
" Perfiles
$
E
H
J)K
9
>
/
5
)"
8
F
& 2
7
F
4
%
-
9
% 4 %E
%
Generación de puentes de comunicación.
+
%
0
%*
•
•
$
-
4
2
%
E9
%
•
E9
G
%
F
F
%
%
%
:
:
9
E
"
Transformación & 9 ('
%
-L
$
-
/
-
E
E:
9
%
E
9
" 9 F
9
+ %
:
F
%
%
$
%
" 9
F
"
+
7
+
"
/ 0 :
Herramientas de
D
F
F
Transformaciones de Modelos ( 9 3'E B
/
>
%
%
M
" E
9
+
N
9
>
/
,
Generación de puentes de comunicación. Ejemplo de desarrollo con
varios PSMs
+
9
9
2
9
F
% E
%
F
9
/
> F
%
%
F
+
%
E
" 9
7
%
" 9 + 9
7 L
1
%
$
6
9
4
1
4
1
& "
1
(
(%
E
-L
E
(
(
9
76
6
6
4
&
4
- >
%
8
*
& "7
:
/
*
8
:
(
$ 8
& "7 $
:
;
)"
2.3
0 2
7
%
% 4 %
Desarrollo tradicional vs. Desarrollo con MDA
+
>
&'
J ,K
7
/E
(
+
9
F
9
-
( &
:
/F
-
R
H
+.R
< -'
E
F
9
>
/
0
:
"
B >
>
Problemas del desarrollo tradicional
>
C
/
3
!
$
(
0
9
@
9
9
G
F
D
2
%
"
9
)
F
7
)"
H
@
9
%
D
:
%
% *<
: :
:
F :
9
@
9
@
9
/
-
H
+
E
0
" E
9
9
E
G
DT'
F
S
7
:
"
9
E
E
>
7
"
"
9
F
9
-
>E
G
E
9
H
- E
" 9 O+
& F
>F
9
FL
"
9
E
7
Q0
0 F
9
>
/
F
-
+
F
@
E
D
9>
9>
@
B
9 "
&
E N'E -
F
F
F
2
:
-
E
9> +
7
9
E
0
7
E
M
-9
>
--
F
E
%
E
-L =
B
E
"
-
E
9
$
:
@
:
F
+
"
F
-
"
@
E
E
= > -
B '
9
" 9
E
9
"
E
-
F
D
9
" 9
)
F
F
F
9
9
+
&
F
F
7
9>
F
-
0
F
"
F
&
/E
L
9
9
Beneficios del MDA
/
"
B
"
/
-
B
4
9
G%
$ +
G
/
&
E
9
F
>
7
9
)
:
+
+
-
-
%
%
%
E
" E
S
%
" E
0
7
9
%
F
>
7
%
B
%
:
" 9
-
'
E
M
:
D
F
N
-
:
"
>
9
>
/
G%
4
$G +
/E
%
/
L
:
%
G
$G0 %
EF
4
-
9
F
" EF
9
F
1
E
4
G
$G 2
@
-
"
9
%
" 0
9
E
"
E
%
"
: E
" 9 .
F
F
7
"
%
F
: :
:
9
%
7
%
=
E F
/9
2
"9 E
" EF
/
9> +
-L
:
/
9>E
7
%
%
-L
%
9
%
E
%
D
E
F
%
" 9 /
B
%
>E 9
% E
El nuevo proceso de desarrollo
/
"
0 F
6 %
-
F % %E
F % %G
%E
7
%7
% M
9
% MG
%
F
G
E9
9
%
+
F
9
F
"
-
E
:
F
E
-
9
-
-L
F
F
0
D
E
*
:
@
9
9
%
9
&
$E
*
9
"
%
%
F
"
'
$G
7
"
-
0
9
9
" 9
H
F
9
>
/
3
D
E M
F
" 9 9
N
E
9H
/E
H
E
@
*
0
%
%*
%
9
5
/ ;
9
%
F
:
@
" 9
/E
F
-
%
"
)"
E F
"
/ +
%
%
:
2.4
9
E
:
E
"
-
%
%
F
B
:
%
E-
E
-
%
Visión Alternativa de MDA
"
/
-
J K
9
/
-
.
0
EF
=7 %
@
-
"
" G
7
9> :
$
-
C
"
/E
9
,
9
>
/
!
-
:
@
# $
E
9
D
7
F
9
F
:
/
:
7
" 9
" +
9
"
9
3
2% F
% 0
%
9
F
:
:
9> 0
9
F
" 9
-L
"
-
E
:
9
>
"
9
F
' (%$
7
+
"
)"
>
:
E
9
>
/
$
3 Fundamentos de MDA
3.1
Metamodelado y MOF
+
B
B
FL
FL
/
Introducción
+
F
9
/ >E
9
"
9
9
%
9
E
.
-
E
0
9
F
0
+
9
F
F
1 *
Las cuatro capas de modelado del OMG
+ 1 *
F
+
7
-
9>
"B
%
1 *
M
"
/F >
+ 9
E
E
%
+
2
-E
N
: -
E
E
>
E
F
B
7 L
6
6
!
<
&
$
7
,
)"
-
%
%
%%
3 7
-5
&
9
8 $ =* >
9
>
/
7
4%
%
H
@
E
2
(
EF
0
9 >
+
7 L
9
E
8 $ =*
7
?
76
8 &
/
6
7
76
=
6
?
Articulo
codigo : int
titulo : String
descripcion : String
precioAlquiler : float
diasAlquiler : int
Cliente
nombre : string
direccion : string
telefono : int
)"
2
0
%
%%
3 7
5
0
7
/
9
>
E
+
E
2
7
-
+
8
7 L
/
1 /
1 /6
!
9
1 /
UML Class
name : String
)"
+
2
0
%
+ ,3 7
>
E
0
7
H
+
> E
3E
4
UML Attribute
name : String
5
9
L
7
9
>
/
1 *E
1
1
2
1
9
E
E + ,%
F
B F
7 L
/ 9
1 /
)
3 +
E
*
!
+ /
+
)"
%$
>
H
+
3
*
0
7
2
%
)
0
MOF Attribute
name
MOF Class
name
+
%
1
3
F
0E
) +
F
9
5
%
)3 7
5
7 %
D
E
9
!E
F
1 *
3E
"F
F
9
>
F
)%
%. %
9
!
"
B
1 *
%
E
-
G
7
2
U
U
+
U
+
3U
4
2
/9
N
2
M2
M
- N
+
M
9
+
7
9
+
- VM
= V!5!, ()3
N
M =N
02 N
0
M 1 2 N
1
Importancia del Metamodelado en MDA
+
9 E
*
-9
+
"
-9W
/
F
E
%
F
:
F
H
"
E
-
0
%
E
9
" %
%*
$>
9
"E
9
"
9
>
/
)"
5
! =
$
%
%
%
7 %
MOF
/
1 *F
E
1
)
7
B
*
"
:
9
%
9
&./
E
-
"
"
*
%
-
G
•
9
0 &
% %G
%
1 /99
E
"
'
1
+
F
•
K
# $G
1 /99
*
:
•
:
9
0
%
7 "
1 /99
-
>
0
%G
-
E
0
%
E
9
>
/
1 /99&
,
99
0
•
%
B
"
%G
7
/
&
F
E
-
9"
•
F
-
%
1 /99
E 1 /99
+
*
-
!
1 *E
1
$
'5
4
E
"
0
-
%G
0 +
9
1
E
>
3
F
"
1
)"
5
= :
9
&
%
%7
3E
F
1
7
%
E
)>
.
>
? @
9
9
>
/
0
"
1
9
-L
"
&
G
4
F
-
*
-
"
1
%
%
? 0
5
' S F
-L ?
9
'
+
:
1
-L
E
@ % &@ /
>
E
1
-
1
-
7
-
3.2
:
E
&
/
9
*
Perfiles UML
E
6 $
+
-
6
+B
B
"
0
G
o
-
B
0 %
F
0
E
B
-
-
F
-
*
<<nombre-estereotipo>> 1
o 0
F
"
>
*
E
L
B
o
!
0E
F
L M-
L
3
+
9
9H
F
" 9
"
"
120
B
"
"
"
F
-
&
NE
"
D
*
-
F
'E
&V'E
(
&
0
F
'
" 9
0
9
>
/
)"
%
0 2
7
>
!
-
F
L
*1 / -
7
E
+ ,
3
-
F
0
2
0
"
>
>
E
F
0
E
0
"
9>
-
"
•
/
%
"
>-
F
B
"
B
E
"
•
/D
•
/D
B
E
7 "
" F
" 9
/D
B
H
21C./E
9>
>
3.3
9
:
E + . 2RRE
F
OCL
!
-
/
B
! &120'
-
9
"
E
E
E
E
/9
120
+
G
-
+ +
+B
/
J $K
4 %
G
•
•
7
EF
9>
*
"
9
9
5
-
"
9
B
120E B >
F
"
9
>
0
H
/
B
"
A E
-
-
F
F $
context Compañia inv:
self.numeroDeEmpleados > 50
+
9
9
"
:
"
$
" E F
-
0
-
context Persona::ganancias(d : Date) : Integer
post: result = 5000
+ H
"
&
9
$'
0
"
"
F
" &
-
'F
L
context Persona::getConyugeActual() : Persona
pre: self.estaCasado = true
body: self.matrimonios->select( m | m.finalizado = false ).conyuje
/
"
E 120
"
G
9 E
"
"
F
-L
B
E
9
0
B
B
"
120 =
9
"
120
-
E
9
1 *
P;6E
9
>
/
3
4 Transformaciones de Modelos
4.1
Definiciones de Transformación
*
$
%*
%
"
9
•
$
"
9H J KE
1
%
" G
%*
%
" E M
6
*
7 % 3
9H
15
*
*
(%
'
(
N +
E
%
9
%
+
&
0E
- E
E
9
" E
'
E
6
2
-L
% E
9
7 %G
? (
(% 7
<<ComponentSegment>>
&
)
•
"
9
$
(
*
(
(%
%*
7
*
B
8 <
C $ A
$ >
%
%
%
>
& "
& "
B
C
(
=
6
$
% 3
F
15
-
E
+
9
%
%
%
"
E
>
%
2
7 G
(
6
0
%
0
%
"
*
& "7
(% D
*
E
"
"
*6 %
L
9
E
+
7
9
>
%
E
&
E
7
& "& $
(
9
7
-
%
$
B
F
$
E
9
>
/
!
%
- 9E
"
"
>
E
-
9
/>
E
F
9
> 9
" E
"
%
"
>
>
F
%
E F
FL
-
9
-
-
FL
"
9
%
-
0
FL
%
4.2
Características Deseables de las Transformaciones
%
9
J ,K
"
&'
-
%
F
B
/ +
%
/E
F
>
+
- F
-
>
>
E
%*
%>
0
E
E
#
-
B
)
%%
9
Ajustar las Transformaciones
+
F
F
- >
9
F
+
9
:
-
"
"
G
•
G
"
-
+
FL
FL
"
E
•
B- E
F
%
9 +
> G M3
FC
*
•
L
%
9
"
F
%
9
9
%G
" E
-
F
-
'
$G
-
>
>
D
%
-
<<persistent>>
7
%
L
+
7
%*
%*
"
E
E
B
M
-
N
H-
&
"
"
%
G <H,>
>
9
E
%
9
E
>
1
9
>
/
$
9
"
"
"
0
-
L
0
"
Trazabilidad
0
9
F
9
:
F
/E
F
9
9
-L
7-
>
>
%
%
+
-
9
0
7" 9
"
H
- F
-H F
7:
9
%
:
:
F
-
:
"
%
-L
H
"
"
0
%
F
" 9
Consistencia Incremental
=
E
9
EL
" 9
9
E
F
F
-
2
FL
+
B
-
-
B E
F
9 E
9 E
"
-
"
F
9H
7
"
-
-L
7
"
9
-
E
B
+
9
>
Bidireccionalidad
0
F
+
0
/ -
E
F
E
-
F
9
G
H
"
"
"
"
+
>
: : E
9
:
F
"
-
E
F
"
-
9
%
9
>
/
(
E
9
"
4.3
"
:
+
-
E "
9 E 9
9
9
Herramientas de Transformación
= 9
/
"
@ AG
0
" 9E
"
>
E
:
F
"
-
"
"
E
" 9
-
@
+
/
0 9
:
:
/ /
9
L
"
" 9E
E
/ +
:
E9
:
E
EF
"
Herramientas de transformación de PIM a PSM
%
:
-
:
0 :
&;L
%
:
%
F
E
+
B
:
La herramienta OptimalJE
F
9 3$'
Herramientas de transformación de PSM a código
+
%
/
" 9 %
&
9
"
"
&%
" 9' 0
" 9
:
:
:
"
7
+
F
9
"
-
E
9
'
2/ +
:
F
F
"
%
&%
" 9
F
F %
"
" 9E
" 9'
Herramientas de transformación de PIM a código
1
%
:
%
%
"
$
>
F
F
" 9 +
%
" 9E F
9
E
F
E
>
B
%
%
0 :
B > E
F
9
>
/
%
Herramienta ArcStylerE
)
9
9 $)'
La
" 9 &;L
Herramientas de transformación ajustables
0
=
:
/
- >
*
F
!
+
E
:
9
:
E
9
:
9
,'E L
-
"
9
>
>
>
:
&;L
9
P;6
:
-
9
%
EF
0E
"
0 +
0
>
9
:
-L
-9
:
"
:
-
Herramientas de definición de transformaciones
H
:
>
F
E
-
:
F
-
:
:
-
0
9
H
>
0
"
9
"
:
%
&P6;'
E
>F
9
9
F
Otras herramientas
0
:
/E
"
H
F
7"
4&'
+
J ,K
9
F
/E
" G
2
+
% &'E
C
$ "
7
&%
" E
) D
%
$ "
&
"
"
/ F
E
B
9
" 9
" 9
B 0
:
E
F
9
:
:
%
G
9
>
/
o /
7
5
9
E
o *
=7 %
:
" 9
F
:
7
:
% +
-
B F
:
B F
% 8
(
" 9 -
: F
2
9
0
9
+
F
-
9
*
%
9
"
:
>F
%*
*
)
E
2/ +
9
=7 %
0
B
E
% 0
B
*
B
" 9
?
2
:
%
%E
%*
%E
F
-
/
)"
0
H
:
>
9 )
%
:
0
2/ +
- E
2/ +
9
:
:
E
" 9
"
:
9
>
4.4
/
,
QVT
2
$7
#
3
*
&P;6'
1 +
F
9
:
EF
1 E
G
9
9
9
7
-
-
0 H
0
/E
"B
>
B
E -
B
P;6
-
2 34(
J )K
Consultas
2
120
9
J $K
4
4
4
E
9
2
0
=
+B
:
"
2 34(
>
"
-
G
7
9
B
9
7
9
120
:
Vistas
2 34(
F
"
"
=
E
7
E "
F
Transformaciones
0
J )K
/ 0
9
E
5
B
0
9
•
=
% 7 %
%*
%G
=
%G
- E
F
- 9
: F
6>
"
: F
7
9
>
/
)"
•
3
: 4
%
%
%*
%
1G
E
/
*
E
2
7 L
/
9
F
,
6
*
6
5
>7
8
8
* 6
3
*
5
6
)"
0
= 5$
< * 5
' +
2 34(
E
$
*
7
-L
1
9
$ 1 1
06
,
% 1
0
5
B
-
X
F
"
2
7 G
1 !
*
8
8
*
'
9
relation IncrementoSabiduria {
domain { (Persona)[nombre = n, edad = a, sabiduria = w1]
when a + 1 < 13 or a + 1 > 19 }
domain { (Persona)[nombre = n, edad = a + 1, sabiduria = w2] }
when { w2 > w1 }
}
9
>
/
%
7
3
!
6
A
7 '
?I
A >7
6
(Persona)[nombre = n, edad = a + 1, sabiduria = w2]
8
A
<
/
?+ $
'
8
!
9
>
/
3
5 Criterios para Evaluar Herramientas MDA
+
9
-
:
"
/
" (
:
F
:
"
-
"
:
- -
"
/E
1
-
F
J K
F
: ->
: ->
:
-
/
:
9>
E:
9
" E
9
D
/
"
-
G
%
"
%
%
0
:
F
%
%
&% '
0 :
F
F
F
9>
"
% 3
%
0
&%
:
7
%
'
9
E
6
F
9
"
%
H
M
% $
-
%
-L
9
" E
N
>
9
0 :
E
D
:
% !
"
"
B
"
:
% (
/
"
0 :
"
B
F
% )
% 5
;
>
9H
E
+B
: F
%
0 :
%
-
% ,
"
%
9
B
%
"
0 :
D
"
%
E %
" 9E
B
%
9
"
0 :
:
E 9
6 -L
M
" 9
%
-
E
%
-
N
9
>
%
/
6
33
4
%
%
%
%
%
6 7-
9
9
% 3
2
E
-
/E
" E
% !
+
7 "
0 :
2
/ %
7
0E
9
?
9
E
%
DE
9
-
B
B
1
"
0
:
E
E
7
E
% $
E
%
" 9 %
E
%
%
E
-
% (
2
" 9 9
0
" 9
F
9% )
8
" 9
/
" E
:
/G
:
E
9H
" 9E
9 E
-
:
-
E
9
E
:
"
%
EB
-
E
!
G
$
%
7 $
>
3
!
5.1
.
+B
Caso de Estudio. Tienda de animales (Pet Store)
%
:
"
:
E
7
3
>
-
>
(
++ J ,KE
9>
"
:
:
F
%
L
7
L
+
- >
/
:
< 9
E
< -
9
"
G
9 I
"
+
@
:
F
"
B
>
>
F
9
>
/
/
2
C
2
3!
"
-
9 >
7 "
7
%
E
E
/
"
-
F
9G
F
>
L
E
-
0
'
9 > &
E9
>
-L
"
-
2
E
E
"
E
F
9
9
tipoTarjetaCredito = {"VISA", "MasterCard", "American Express"}
tipoPago = {"Tarjeta de Credito", "Contra reembolso", "Transf erencia bancaria"}
estado = {"Pendiente", "Entregado", "Anulado"}
Cliente
clienteID : String
nombre : String
+cliente
nif : String
email : String
1
login : String
password : String
+pedidos
0..n
Pedido
pedidoID : String
fecha : Date
direccion : String
localidad : String
provincia : String
codigoPostal : Integer
tipoPago : String
tipoTarjetaCredito : String
numeroTarjetaCredito : Long
fechaCaducidad : Date
estado : String
/ total : Single
+pedido
+lineasPedido
1..n
1
LineaPedido
lineaPedidoID : String
unidades : Integer
0..n
calcularPrecioPedido() : Single
+animal
1
Categoria
categoriaID : String +categoria
nombre : String
descripcion : String 1
)"
+
>
-
"
%
-
7
-
%%
0..n
3
5
" F F
"
-
=
% %
+animales
:
:
FL 9
/E
-
Animal
animalID : String
nombre : String
descripcion : String
precio : Single
urlFoto : String
E
9
D
"
" 9
9
>
/
3$
6 La herramienta OptimalJ
0
:
&%
:
7 7
'E
7
/F
&
9
% 8 22
++
/
0
"
7 "
( *
&
" 3
6.1
#
'
F
:
8
-
&
,
7/
'
-
-L
"
3
"
:
E >F
" 3
"
Arquitectura de OptimalJ
Introducción
1
1 E
0E ?
.
E
@ A
/:
E ? 0E < 0E
++
9>
9
G
o
&
F
'G
9
E
%
"
o
$ &
7
'G
& ++' 2
9>
%
"
o
'G " 9
$ " 3
" E9
"
/
E1
G
%
"
o
%
G
". &3 5
%
&%
o
+F
"
$
'
7
" &%
$ &%
'
" 9
'G
" &%
'
'G
:
9
>
/
3(
%
:
+
I
"
1
o
G
&
%
F
o
E
'G
E
%
$ &
7
E
o
"
$ " &
%
'G
" 9E
9
-
-
'G
F
+
7
*
-
J K
F
1
)"
7 %
%
7
%
+B
7
8>
.
?0@
"
"B
Modelo del Dominio (Domain Model)
+ 1
+
% %
%
&
7
4
'
G
%
7
%
% %3
+
"
% %
"
"
,
5
9
"
0 +
-
F
-
9
>
/F >
1
/
E
3)
E
E(
E
+
9
(
)"
4
+
%3
4
% %
-
E
E
"
+
&
5
) !
%
.
E
E
9
&
&
E
7
" 9
3
'E
"
H
+
>E
- '
"
E
"
'
)"
4
%
#
9
>
/
35
0
F
9
+ .E
B-
"
F
F
:
:
%
1
&
%
9
F
7
-
%
E
'
7
F
B
E
"
%
B
"
-L
2
-
9
" E
+
&#
(
"
"
L
'
0
&(
:
"
L
"
E
-
+
#
F
"
)"
!
0
%%
>E
7
7
H
0
D
$
7
0
7
E-
>F
%
-
D
7
E
E
3
"
9
!
"
9
!
' %
E
H
D
-
G
9
>
/
3,
Modelo de Aplicación (Application Model)
7
E1
$ &
7
:
".
F
++ +
+
"
%
"
-
9
$E
%
9
'E
B"
%
G
%
C%
-
"B
)"
%
&
$ 3A
+
" E 9H
•
8
• :
•
%
$ 3A
5
"
++ G
: G
5
:
•
5
9
< @-
G
G
"
7
8 : G
5
L
"
"
:
H
F>
"
++ %
++ J !K
F
E
9
>
•
/
3
(
!
8 :
G
"
"
%
&
" 9
$
+
9
??
5
'
% F
< -
9
E 2
-L
" 9 6
&#
$
"
(
="
#
9
'
F
9
< &+ .'
"
B"
+
328C5
&
"
E
"
9
&
E
E
-
+.
$
' +
E -$
/ F
-H F
E
"
+.
)"
2
&+ .' J)K
9
E
1
E
5
9> + . J)K
L
-
0
9>
+.9
L
9
D
B"
328C5
E
E
E
&
L
5
E
L
E
"
'
< -
9
>
0
/
9
!
(
%
9
+.
9
+.
6
E
-H F
&
9
E F
-L
F
9
&
calcularPrecioPedido()'
findByCliente()E findByFechas()'
E
L
C%
L
%
0
++ 0
B
:
%
E
-
"
H
-
E
"
-
E
1
9
C%
%
". +
%
-
1
-
0
4
+
9
F
)
E
- E
E
-
)"
E
E
(
9
C%
%
Modelo de Código (Code Model)
79
"
E1
/
%
+ " 9
9
9
"
7
"
$ " :
$
"9
9
&+ .'E -
" &< -'
7 +
E
"
E :
9
9
9
9
>
/
!
9
+ .E
+
" 9
6
F
=
E
.
-L
F
9
1
++ + " 9 9
" E " 9
" 9 9
1
< -
1
" 9 9
:
E
%
? 0E
P0
H
6 %7
E1
D
9
E
" 9
% +
"
9
=
6 %
" 9 9
%
2
"
E
2
"
L
7 L
&
:
9
B
E
- F
5
*5
calcularPrecioPedido()
(
8
8
8
6
<
=
(
$
=
=
!
>7
*
$
6
6
7
7
=
5
"
6
8
E
7
6
8
8
)"
:
%
$
6 %
-
%3
5
6 %7
"
%3 # 5
6
9
>
/
1
!3
-L
" 9
7
" 9 9
9
"
F
:
Implementación del modelo de EJB
0
+. 9
1
E
+.
6
+. 1
+ .G
•
•
•
9
E
-
9
& "G
+.
& "
5 G
& "
& " -$
G
& "-$
•
9
•
F
+.
& "
"
H
& "&
G
H
& "
8G
-
-
H
-
& "
4
D
E
F
9
J$
F
9
G
+. %
>
6
0
L
+
%
7
H
•
+.
-L
" & % 'E
&
' +
9
"
++
%
"
7
%7
"
E 1
28C
-L
Implementación del Modelo de Base de Datos
+
"
-
-
F
9
1
I
-
-
"
P0
-
.
1
P0E F
.2 &
-L
, %
P0
9
-
E1
$'
0 :
-L 9
9
1
+.
9
:
++
-L
9
& /C'E
F
++
%
E
! & /1'
9
- 9E + .
9
>
/
" E
F
9
!!
7
F
9
)"
%
1
7 "
-
' C
7
"%
-
%7
41,
"
:
% %
7
E
8
F
% )
:
"
.
1
E F
Implementación del Modelo de Presentación
0
"
"
E
%
+
"
E
9
"
0
1
%
"
%
" E
@ -86 0
#
E
9
.1CC/C
1
2/C
" &< -'
< - %
%
9
&+ .'
+. B
+
E
$
E
7
-
+. 2
+ .E
-
9
< 0++CE 2C+/CE
"
" 9
9
>
/
1
7 D J KE ;2
7
" %
D
-L
< -&:
%
!$
"
4;
F
"9
B
-
9
E
%
9
'
+
9 " < --
:
$
%
5
-
"
:
" F
F
= -
E
:
"
D
7
< -
3
)"
1
4
DE
D
:
:
- F
- 2
E
F
"
%
@
< -E
B
-L
F
"
9
< -E
+
7
H
&
5
%
9
+
$
&
•
0
0
- EF
G
2
:
•
0
*
< J)
& ;2' 0
F
H
%E 2
"
"
42
9
-
7
% 9
1
"
- F
*D
9
84 % "
8
-L
F
7
86 0
Y
< -
:
7
7 %
$
F
9
>
/
1
-L
+.
!(
%
%
%
EF
-
84 %
-
"
9
6.2
Construcción de la Aplicación Pet Store con OptimalJ
+
" 0
1
-
+
9 E
-
" &%
9
:
9
7
E
%
" G
< -E
9
+ .E
-
9
$
(
E
9
)
" 9
L
-
%
-
E " E
" E
" 9
E :
F
F
H E
F
:
7
"
"
9
G
•
%
%
•
6
•
•
*
+
•
E
%
E
E
9
"
-H F
"
F
Z %
'E F
/
9
%
%
%
+
Z
B
%
E%6
E -H F
9 >E
7@ -9
E -H F
: E -H F
E
%
F
9L
*
-
%E
%
=E
% "
%
%
E
+
-
%
%
9
F"
%
E : F
-L
F
" G7 %%<
•
•
-
%
%6
E
E
%
%
" $
E
" @:
-
"
:
7
&#
' F
9 3 E
-H F
=
-
1
"
L
+ .(
E
F
"
" 9 9
+
-
"
" 9
-9
-
9
E
-
-
9
>
/
)"
6.3
%%
!)
7
$
E%6
28C
Interfaz de la aplicación generada
+
1
7
0 :
" G3 /
" E9
9 "
*
.
< -E
E
9 "
< -E
E
"B
Comprobación de seguridad
0
" E
- "
9
9
1
"
"
4
%
G
G
% G
9
"
B
"
@
4
3 E
+
-L
"
)"
@
7
$
% "
9
>
/
!5
Página principal de la aplicación
6
" E
9
)"
0
9
33
F"
7
9
" EF
"
7
7
2
$
E
F
+.
Mantenimiento de Animal
/
F
E
-H F
E
)"
+
! CE%6
7
9
B
1
1
G 9
G
)
)
"
9
7
3
9
9
3!
5
G
"
"
" .G 9
G
9
-H F
-H F
9 >
-
I
9
>
/
+
[\Y :
!,
>
E
F
- " &'
>
[\Y
% E
9 3$
-
)"
+
9
E
/
9 3(
9
>%
E
7
[NY
-9
B
-9
*
:
-
%
"
%
2
& ,%
9
[#Y
E
9
E
0"9
E
H
9
>
/
)"
$
0
$
%
;
E
E
%
H
:
* D
E
7 %
6
- "
%
-L
9 >
F
E
"
0
9
-H F
E
+ .E
F
> [\Y &
>
)"
0
5
E
L
9 CE%6
Mantenimiento de Categoría
9
3)E
-H F
' [#Y &
%7
+.;
>
G
"
%
7 $
'
9
>
/
/
$
"
9
>
9
-H F
/
9 >
- " &'
9 >E
9 > &:
9
)"
0
3,
>
9 >
9 >E
9 >
%@' +
9
?(
: ,%
"
"
35
" .%
9 >
)"
% H
E
&1
)
E
E
'
$
%
9
" .'
L
9
" .
-H F
-
-H F
9
I
3)
"
Mantenimiento de Cliente
+
" E
- E
I
"
&1
-H F
)
:
'
F
/
D
>
-H F
9
0
>
/
9 !
9 !
$
9
)"
"
!-
$
)"
+
9
9
9
!
7
-
!
"
/
" E
%
,%
%
-L
E
9
>
/
)"
$3
!
*
$
*
$
Mantenimiento de Pedido
+
9
>F
F
F>
+
9
%
B
9
-
"
9
*5
1
!3
:
F
&
%
(
5
E
E
% H
/
E
/F >
-
EF
9
"
3 ! '
-
-
F
>
9
9
F
- "
!!
F
E
>
E
F
F
%
:
%
E
%
- "
9
>
/
)"
)"
6.4
$!
!
$
!!
%
$
7
Evaluación de OptimalJ
+
:
1
9H
Criterios para Evaluar Herramientas MDAE & 9 3 ' 0
9
" G
B
9
-
9
>
/
7
$$
$
%
%
!
%
1
%
%
% 3
%
E
L
-
3
&.
B- E
" E
+
9
%
E + . < -' +
< 9
"
% E
& ++' /
% !
9
"
!
D
0
%
9
E
%
-
+.
>E
:
:
-
%
9
>
E
-
>/
E
"
< -E
21C./
:
F
% $
% (
-
!
/
1
B
>?
+
( *
*
&
"
- 9E
% )
;
3
M
" N
&
5
0 :
:
E
-
E
%
%
EF
"
+
-
% 5
9
.
+B
"
%
" 9
%
2
"
%
E
" &< -'E
B
F
->
E
-
:
B7
"
% ,
!
1
:
H
E
"
" 9
&
%
!
9
"
9
2
0 :
9
"
" 9 /
:
9
B
E
%
E
-
%
%
" 9E
%
9
+ 9
%
: :
-
6
4
"
7
"
5
/
6
6
M
N
" 9
E
7
%
%
%
E
"
9
E
6 7-
3
1
%
F
9
%
E
+.
%
F
"
" 9
9
% 3
>
/
2
3
$(
9
0 :
E -E
9 E
DE
+
7 "
!
2
F
1
/
0
IB
% $
9
>?
/ F
E
/
1
2
9
" 9
3
+ " 9 9
9-
%
D F
8
3
:
-
" 9 =
E
" 9
" 9
-
" 9
/
"
+
"
F
E1
+
:
-L
&6
E
-
9
% )
-L
:
%
% (
" E
=
9
% !
" E
9
'
+ .& .
7
'
-
&
I %
.'E
9
>
/
$)
7 La Herramienta ArcStyler
$
%
! J K
@
:
"B
"
F
F
:
/E
:
E
7
(
"
/
9H
B
0
"
7
7.1
Arquitectura de ArcStyler
$
)*
8
,
7,
-7
Introducción
/
"
-
:
" 9
4
F
" E
E
9 E
.
>
:
0
F
"
" 9
/
9
9
:
M
-L
/
"
N
4
>
E
L
"
F
9
/
B
++E + .E =+6E
E
4
< -E
/
-L
H
%
/
@
9
9
-
:
E
%
*
E
/
/42
&
'
-L
9
-
E
/% 24 1
' 0
9 !$
&
0
"
E
/
3
/
9
/
9
:
:
:
:
B
F
9
>
/CI+/C
9 L
-
E
0
F
0
1 F
:
G
9
>
/
$5
:
/=6
9
"
9
)"
!&
$
%7
7
%
4
F
/
J 5K
E
9
>
? @
D
9>
E
:
4
&'
E
$
:
" 9E
MDA en ArcStyler
+
B
-
"
/
7
/
+ ,
2
-
E+ ,
9
/ /
!E
H
9
:
/
"
!(
: /
:
9
0 :
0E
0
"
!
9
:
:
0
/
/
+
"
:
(
-
"
9
%
E
"
AE
E
:
F
? 0
F
9
>
/
)"
$,
!0 /
4
* %
/
( *
B
B
9
Perfiles UML
/ +
1 /
F
*
0G
•
•
•
+
6
)"
!9
* %
4
/
9
>
/
2
(
E
-
>
F
E F
& 9
F
0
9
-
'
0
*
0 0
9
F
E
!)
%
*
F
*
9
9
>
/
*
0
+ .E /
2
"
*
>
) O
/
E
)
E
0E ?
MOF & 9 5'E O
2
1 F
? 0
"
/
?
%
B
?
/
E
B
:
?
8
+
& 2%'
%
*
9
"
$(
?
-
E
7
+
9 "
E
"
"
"
/
L
B"
> 9
:
+
-
+
E
9
F
+
/
9
H
F
"
E
/
:
F
9
H
F D
7
-L -
Marcas MDA
%
:
F
9
F
E
+
:
-
7
+
E O "
:
9
F
D
"
>
9
Q 0
" H F
' +
F
4
"
F
&
>
9
>
/
(
2
M
:
E
N
E
+
E:
B
-
0
F
9
!5
9
/42
+.
9
9
4
4
"
4
(
G
3$ G
/
%
*
-
G
9
E
&
&
$'
9
G
/42
G
4
-
>
/F >
;
"
-
E
9
-
&
9
(E " (
F
'
&
*
'
)"
: :
- 9E
0
!:
F " 7
B
"
0
F
E
0
E
D
-
E
"
0 & 3E
E/
4
>
F
+
F
%
F
:
%
2
$
"
!E
F
:
"
0
F
'E
9
>
/
(
0
E
9
"
E
" G
6
+
;
F
9
H
>
2
F
F
%*
$
%
Transformación & 9 3' /
"
&
$
'
J K
" 9
Definiciones de
F
&
%F
7
'
"
-
Funciones de transformación de modelos
0 *
" 9
%
M
$ F
H
%*
N
"
:
9 E
"
E
:
9
"9
:
>
E
-
E
" 9
E
:
"
B F
"
? 0 0
9
E
E
>
9
E
4
"
"
0
"
9
: NE "
F
9" 9
"
1
" E
%
"
+
"
/
E
"
"
9
- >
6
:
9H
9
9
:
9
< -& % E 86 0'E
E
/
M
/
:
: >
"
>
F
FL
"
MDA-Cartridges
%
"
/
E
:
9
1
%
9
7
"
F
E
B
F
7
"
0
9
4
F
9
>
/
/
(3
"
#
/
%
"
9
+.
F
:
E
"
E
F
F
/
+.
F
G 35
4
"
53
"
"
9
2/C/6
+
9
-
9
-
/42
-
/
- E/
B
)"
!' 8
6.
E
!,
2
E
B
"%
" E /
4
4
9
9
H
9
:
4
/
0
/
21C./E =+6E + .
9
5
E
E
:
"
/
B
4
:
%
-
M: N
" F
9
4
4
F
%
-L
E
4
;
:
F
4
B
9
%
!,
E
7
+.
:
9
>
/
(!
E
:
*
J (K
-
E
7
F>
Framework Accessor
+
@ A
/
"
+
-
/
"
E
" E
9
E
+
9
"
9>
(
E
9
" 9E
/
+
%
:
+
:
E
0 +
9
H
4
-
4
F
& ;2' +
"
;2 +
-
-
F
7 B
B
"
9
"9
9
"B
;2E
E F
>
-
+
9
0E
-
4
E
9
%
-
D
/ % =+6 0
F
7
E
;2 C
6
F
E
:
:
/
9
E
$
7
-
7
7
9>
< - +
0E
L
$ A
%E
9</C F
:
"
F
"
0
%
+
B
% + ,
9
+
9
0G
• 4
) G
F
•
.
)
"
9
2
B
9
&
7
'
E
:
G
-
9
"
7
>
-
&
9
>
/
)"
&- /
($
7 7
% %7
9
7
*
4
(
9
-
$ E
F
9
+
9
E
/
9
E
K
1
K
EF
K
+
$
)"
&
"
%
7
9- E
F
- 2
7
1
0
- " E
"
1
|RE|::vistaLogin::root::nuevoUsuario
7E
%
:
E
9
>
/
((
- "
9
6
9
-L
$ E
7
EF
1
"
9
79
" 9
%
E
" |RE|::vistaNuevoUsuario::root::aceptar
7
D
9
)"
+
7
%
@ A
$
F
B-
7.2
& =7 %
%%
"
E
E 9
F
Construcción de la aplicación Pet Store con ArcStyler
+
B
" (
/
9
9
+
"
9
E
9
9
4
9>
" 9
:
"
H
" E
7
E
"
E
"
/
/
%
J !K
Modelo EJB
%
9
+ ."
"
+.
:
9
(
L?&A 4,:'E
!,
/
E:
"
"
E
<<ComponentSegment>>
%
"
•
7
&
'
2
H
7
"
G
+.
"
+.
7:
E
"
9
+.
"
0E
4
/42
:
9
0
9
9
>
•
•
•
•
•
•
/
7
7G
7G
&
&
"
&"
'
%
'
'
&
"
2
-$
()
'
.
-
+.
& -9
'
9 & -9
4
-
9
)"
%
&
9
9 $3
<<ComponentSegment>>
< 05
&+ .
I E
+
:
4
F
9
&!
0
9 :
/
4
+ .E
/
&
F
'
)"
'
%7
:
" E E
- E
: E
E
M
'
N
9
2
>
/
7 G
/ 0
(5
MH
& "??N) ,
4
6
(
*(
6
7
%
F /
+ .E &
9
:
'
0
9
"
)"
&&
7
7
%7
9
E/ : /
9
E
*
$
%
" 9
:
:
A
/=6
-
BE
:
? 0
)"
&0 , D
B
$$
"
9
2
"
9
'
+.
+ .E
/
$- $
9
&
&
*
7
4
9
>
/
:
:
/=6
(,
9
E
:
.
9
/
" 9 9
E
E
-
< -0 9
- +
9
E
E
$(
:
Modelo de Base de Datos
/
F
E
F
+ . &<0 5'
1
E
>
/
-
B
+. +
B
-
+ .E
+. %
%
-
- 9E
K
Q
< 05E
7
-
-
$)
)"
%
&
E
+.
3
-
"
O2"
9
B >
K
H
&9
%7
'
&
& 1 6 'E
)"
&:
7 %%
%
% %
E
E
3$ 'E
&
9
%7
#K '
$5
7 %%
%
9
>
/
)
Modelo Web
0
< :
+
Framework Accessor
F
%
"
(
:
@ A
4
9 (!'
%
7
&;L
< -E 9
3
< -:
"
%
:
=
"
E
B
+
F E
F
B
E
L
9
$,
)"
&'
+
9
"
% %7
"
% %
"
%
"
F
E
-
>
+
F
9
+
F
>
9
%
9>
@ A
(
"
E
&/
G
'
7 "
&
F :
" G
/
E
G
9
(
G
7
" E
2
9
0
(
+
9
9
(
9
(
'
:>
9
>
"
/
3
)
Interfaz de la aplicación generada & 9
EF
) '
)"
7.3
0-
"
%
%
4
5
Interfaz de la aplicación generada
+
-
79
"
(
Acceso del usuario al sistema
/
7
M
" E
- E :
C
9
6
B
/
%
-
D M
)"
3
(
C
0
2
%%
9
E
9
>
/
)
-L
9
+
9
*
%
9
F :
*
)"
2
- "
9 (
" E
0 = "%
%
- "
9
Página Principal de la Aplicación
7
-
DE
"
9
9 >
9 >
9 >
(3 +
9
- "
- "
7
)"
0
"
"
F"
7
9
7
9
7
$
9
>
%
/
E
)3
7F
9
:
" E
9
C9
;
;
F
*
-
7
9
" &- " %
&- "
(
'
7
&- "
G
'
'
Consulta de Animales
7
9 >E
9 >E
9 (!
- E
E
2
D
9
- "
A
%
" E
F
"
E
>
:
F
9
- "
"
)"
0! , %
%
" .
Carro de la compra
2
7F
D
E
&- " [4['
E
9
&
2
- "
($
E
3
F>
&- " &
'
9
9
D
&- " [O.'
'
9
>
/
%
E
)!
-
- "
)"
*
0&
(
7
Confirmación de Pedido
/
- "
*
"
(
"
9
)"
%
:
9
E
9
- "
9
E
((E
9
00
*
$
7
9
2
F
)"
09 = "%
- " %
- "
(
7
()E
9
F
9
9
9
>
/
)$
Consulta de Pedidos
- "
9
(
9
()
*
(3
7F
0
7
9
(5
9
- "
&
>
/= 0/ 1'
)"
6
-L
%
/
0
%
"
0'
%
7
Evaluación de ArcStyler
"
:
$
9H
Criterios para Evaluar Herramientas MDA
$
%
!
%
/
%
9
%
#
(,
7
%
%
F
)"
7.4
%7
>
- "
9
0:
%
/
+
0
9
=1
%
%
E
%
B >
9
>
/
)(
9
% 3
%
!
" 9
0 :
&
E + .E
< -E 21C./E
2/C/6 &
4
E
0 :
F
H
E
< -/
+ .E
9
F
"
- 9E
" 9 M 9
N
F
9 "
/
-L
B
>
?
0
"
/42
9
B
B
+
/42
9
=+6E
53
% !
9
"
% $
% (
/
!
!
"
' /
'E
E9
-
"
F
% )
;
+B
2/C/6E
:
E
2
/42
9
0
F :
+ . < -/
E
9
9
"
" 9E
:
E
>
F
% 5
+B
!
% ,
3
0
B
&+ . < -/
E
E
'
2
F
< -/
&+ .
0 4
'
7
"
E
"
9
+.
%
3
9
"
/
+
F
=
-
-
-
9
" 9
9
E
%
6
0 :
9
+ .E 9
J (K = E
4
%
6 7-
&
/
% !
+
!
7 "
!
E
"
9
E
%'
/
9 L
@ A
7
:
F
E
-
2
E
"
9
% 3
" 9
" 9
"
9
:
"
E
E
9
" 9
0 :
9 E
DE
-E
"
&
.
'E F
/
6 -L
F
E
F
:
/
"
:
- 9E
" 9
G
9
:
%
+ B
9
9
-
9
>
/
))
/G
0
9
E?
-
1
1
/
E
7
% $
2
!
0
" E
9
% (
2
9
" 9
!
B-
+ " 9 9
:
-
>
" 9E
-
9- / F
7
:
"
:
" 9 B
% )
8
3
/
9
E/
:
&3
'
:
K3
F
-
E
I %
9
E >
:
+.
E
:
/
:
.
" &" :
&(
" ':
+
9
+
'
F
>
/
F
:
E
:
-
F
9
>
/
)5
8 OptimaJ frente a ArcStyler. Estudio comparativo
6
:
"
B >
$ E 9
Herramientas MDA & 9 3 '
F
- :
%
E
B
H
:
L
E
/
9
E
:
$
8.1
:
"
Criterios para Evaluar
F
E
*
F
%
Aspectos MDA
Soporte para PIMs (P01)
6
-
1
/
+
&
1
"
E %
' +
- >
"
"
&
%
$'E F
F
G
-
/
E
F
-
)"
9-
% %3 7
85
-
9
>
+
/
9
),
)
/
(
-L
%
" E
+
%
F
"
7
*
*
8
de Transformación & 9
(
<<ComponentSegment>>E F
"
%
9
F
L
%
/
E
+
9
)
L
E
%
9
%
F
F
9 )
;
F
+.
%
/
E
F
L
L
-H F
E
% E
+. = E
L
- >
B >
E
:
%
H
L
-H F
* "$0 5 <> +
+
L
-H F
+ .F
- >
9
%
/
" % >
" = E
3
F
E
:
F
F
-L
<<find>>
E
4
5
%
H
:
%
F
F
F
: E
+.
2
%
1
Definiciones
%
(
E
H
9
+ .E
)"
1
-
0
E
8
+
3' 0
/
:
F
1
>E
E
F "
%
2
D
F
E
H
>+
%
9
9
>
/
5
Soporte para PSMs (P02)
+
>
"
9
%
%
1
F
9
H
4 %
4 %
4 %
9
% %
F
%
E9
%
+.
9> < - %I
B
B%
F
>
-H F
< -
L
5
F
E
E
E
%
9
+ .E
-
/
L
4 %
9
E
E
%
%
7.
% +
9
%
" 9
E/
"
E
9
5
E
" 9
2
L
%
>
G
/ F
/
%
F
)
)"
L
/
" 9E
%
+ .'
&
-
L
-H F
%
E
F
>
L
Permitir varias implementaciones (P03)
%
/
+
"
E B
9
1
/
1
9
< -'E
7
*
8 22 ]
1
0 H
+ .E
9
< :
E D
:
:
%
>
"
F
&
9
H
"
+ .E
"
"
< -
9
B
21C./
+
E
-
9
#
F
-
E
9
>
/
+
5
>
/
1 E
< -E
'E
/ :6
=+6E
-
%I
'
/
&+ .E
&2/C
B
=
4
F
+
E
:
E
9
E B
>
4
/
+
-
4
/
9>
:
&%
F
B
!
D
+
/
'E
"
EF :
"
L
1
:
F
/
Integración de modelos (P04)
2
:
E
: E1
++
B
+.
9 "
G
F
< 0 :
< 7< H
-
F
+.
9
- 9E
%
H
/
9
-
9
+ .E
+.
"
+.
E
"
/
- E
4
F M
7 N "
9
7 9
9
E
F
-
4
:
9
"
& "
(
9H
F
" 9
" 9 M 9
N
&
4
9
:
:
1
< F
7
9
D
+ .E
/
+.
E
' +
"
G
*
L
B
7G
7G
F 9
" 9
+.
E
E
7 -H F
+.
7%
E
F
" 9
E
9
>
/
5
K
-
1
E
-
G
getVistaNuevoUsuarioRepresenter().getRoot().SetDni(“nuevoValor”);
+ " 9 M 9
L
1
E
N
7G
7
>
E
7E M
+ .E
+
" 9
7
F
-
+.
N
>
"
9
Interoperabilidad (P05)
C
:
>
B
F
?
:
/ - :
>
E
-
:
Acceso a la definición de las transformaciones (P06)
2
"
*
&
%
&
" ' %
6
%
8
=
1
EF
-
E
:
1
E
9>'
E
>
%
D
" G3 /
< F
"
" F
" 9 &
9 "
*
E
9
"
"
F
" E
M
"
F
D
"
F
F
- N
"
H
/
/
9
B
E 2/C/6
>
/
-L
2/C/6
:
B
F
9
E
7
>
7
>
" E 9
2
>
:
H
F
"
E
E
F
9
9
+
8 ->
F
-
Verificador de modelos (P07)
%
"
&%
'
" 9
9
E
" F
9
9
>
/
9
9
F
"
53
"
%
" 9
1
"
F
"
%
E
•
•
•
•
%
-
E
J!K %
9
:
+.
7E
E
G
+.
0
"
&
"
+.
L
L
9
-H F
5
-
+.
"
L
ejbRemove()
•
+
L
+.
ejbRemove()
/
-L
E
:
2 &:
F
"
-
9H
E
F
4
F
:/ L' E
-
-
9
4
"
:
"
-
-
/
E
:
-
9
"
" 9E
%
F
E
< -/
B
E
9
"
9
" 9
F
E
>
"
F
Expresividad de los modelos (P08)
+
F
E
B
"
B-
:
-
F
0
:
B
F
1
9
E
)3
9
9
%
E
< < M
OP L
7
9 " 9
$ 0 :
< < +
1
.
+. =
9 " < -E
-
N
1
Q0
7
9 "
%
9
>
/
5!
< - !E
7F
< F
" G3 /
E
" 9
)"
.
9
.
:
E
9
-
A
F
/ F
9
*
E
9 " 9
9
3 7
5
> H
85
&
E
F :
F
9 "
2
9
" E
F
E
" E
-
9 " < -E
& :
" 9
9
> 9
>
D
9H
F
E
9 "
9
:
< -E
+
:
E
:
E
/
+
B
7
!
1
-
1
+
9
*
' /
/G
B" E
F L
%E < -
E
< -
9
%
F
)!
9 9
"
9
>
+
/
5$
@ A
>E
E
E
7
)"
9!
E
"
2%
E
%7
3
4
5
Modelo Web & 9 ) '
% %
%
" +
B
+
9>
9
2
9>
9
F
D
>
@ A
E
"
9
E
D
9
Uso de patrones (P09)
/
D
- >
"
9
F
"
" 9E
7
-
1
7
9H
7
%
"
/
%
" E
7
E
E
%
7
%
7
%
7
"
$
&%
".
'E
&%
7
%
7
'
$
9
>
/
5(
%
" 9
+
"
/
++
" 9E
" 9 9
1
7
7
%
E
9
$ "E
* J K
" 0
" E
&+ .'
6
"
%
0
F
" "
" &< -'
0P
"
:
F
B-
:
& 9 35'
9
:
)$
B
)"
/
9&
%
1
7
8>
.
L
1
D F
7
F
" 9
5
&
E B
La ventaja principal
E F
9
F
F
+ .E
-
?0@
2
4
E
"
J (E )K
E
"
0
+.
Soporte para la regeneración de modelos (P10)
1
9
B
%
%
E9
0
"
/
7
%
-
9
E
%
%
%
9
"
"
" 9E
F
9
- F
- F
:
9
E
-
7
F
9
-
6 %
9
1
/
%
E
" 9
" 9E
6 %7
" % 6
9
+
- F
-
F
9 )(
9
9
>
/
/
%
9
5)
E
>F
&% ' "
1
9
F
" 9E " F
F
1
F %7
" % +
B
" 9 9
9
9
+
9 ))
/
E
:
"
" 9
7
7
- F
F>
9
9
:
9
F
"
E
9
)"
90 C 6 %
%
6 %7
"
%
7
8
Transformaciones intra-modelo (P11)
1
7
7
-
%
%
9
E
7
+. < -= E:
7
%
-L
F
+ /
:
4
%
>
E
H
9 L
E
-
"
4
+
J (K +
@ A
E
F
7F
9
" E F
>
9
- 9
9
B
9
>
/
55
)"
99 I
%7
"
%
4
Trazabilidad (P12)
2
:
M
NF :
"
9
" 9
H E
%
1
9
-
" 9 & :
9 &
%
" 9E
'
F
&
)"
0
9:
"
"
9
E
'
E
"
9
E
- E
'
E ' 0
9
)5
+.
%
7
28C 3 7
/
9
- E
9
"
*
% &
-
7=
E
%
%
7
F
9
:
H
F
E
85
" 9
E
9
>
/
0
9
9
5,
),
" E
F
)"
9'
7
%
%
"
%3
4
5
Ciclo de vida (P13)
1
7
9
/
:
G
E
DE
-L
" E
F
B
/
" 9 B
:
:
/
"
"
E
%
-
" E
E B
= -
" 9
F
1
" E
9
/ F
9
E 9 F
%
6
1
/
7
/G
•
•
•
0
9
1
C
?
-
/
7
& L
-L
9( '
Control y refinamiento de las transformaciones (P15)
+
1
"
9
-
E
E F
"
E9
:
Estandarización (P14)
"
-E
-
E
9
>
/
-
%
&
,
E
5'
"
B
>
9
&
$'E
- &
)"
+ /
E
+
" E
F
&
9 5
' +
F
F
&$ '
'
:-
7 7
- 9E > B
E9
- E
%
3 7
85
+
%
" E
4
F
L
L
9> + .
9
"
" 3$ G
/
%
5
-
E
6
+ .E
G
*
&
G
(
F
&
9
G
$'
-L
E
-
&2 %E . %
/42
9'
G
&
*
'
+
:
9
9
9
" E
9 F
1
:
:
+
F
*
8
Definiciones de Transformación & 9 3' /
*
8
*
8
1
E
- 9E
7
B
9
*
F
" 9
8
F
Calidad del código generado (P16)
/ -
:
9
>
" 9
B
:
9
=
1
E
F
E
9
>
/
,
7
" 9 F
9-
F
". 28C 3
4
7
)"
:
%
% 7
5
Herramientas de soporte (P17)
2
E1
&3
%I
/
F
&
' =
E
+.
/
>E
" 9E
'
:
E
9
E
+.& "
"'E
9
" 9
:
:
/
EF :
/=6
E
/
F
F
6
-
9
>
/
8.2
Otros aspectos
/
F
9
-L
,
/E B
:
2
"B
Rendimiento y estabilidad
6
1
/
F
9
7
:
87
"
%
;
/
!
:
6 %
:
.
$
E
-
E
E
%
-
@
-
C/
-
$
+
F
/
E
.
C/
-
-
G
0 :
/ &1
/
+.
'
9
7
-
+.
"
%I
%
/
F /
%
7
-L
/
E
-
E
:
" 9
E
F
:
+
9
F
%
"
E
9
%
%
"
9
F
:
F 9
"
E
9
E
:
:
+.+
%
"
E
F
7
L
Facilidad de uso
9
9
1
:
/
%
@
F
E
>
F
E
=
7
%
"
%
"
#
1
H
&#
"
>
-
:
>
E1
:
'E F
+
E
9>
9 5
%
9
>
1
&
/
1
+
" E
,3
F
"
B
:
" E
%
7
9
"
"
.
F
-
F
7
-
7
>
)"
+
:
:
%%
$
7
>
28C
/
:
E
:
/=6
:
7
-
2
7
3 7
7
H
@ A F
" 9
E
F
" 9
E
E
" 9
7
B
"
"
'
85
-L
E
F
E
@ A
1
E
@ A
/
F
I
:
F
-
EF
:
I
1
< -G
9
" 9
9
%
E
/
-
< -E
:
F
1
9
%
&
'E
9 F
-
E
:
F
E
:
F
7
7 $
"
-
E
%
F
1
0
/
F
B
:
F
9
-
Documentación
/
:
9>
E 1
B
"
"
7
9
>
6
/
,!
EF
F
-L
7
%
.
-
% &
%
%
E
9
:
#
-
9
#
< -E
+
< -
"
:
7
D>' F
*
%
9
E
-
F
:
F
E
4
"
6
"
E
9
+.
E
6
7
-L
/ F
7
9
7
M
:
B
E
7
%$
:
/
F
9
:
:
7
:
:
9
9
E>
4
E
-
:
E
>
H
N +
9
>
/
,$
9 Conclusiones y Trabajo Futuro
/
@ A +
-
7
:
F
:
:
:
8
E
:
" 9
E 9
- 9E
"
D
E
4
-
8
E
F
9
:
E
9
F
E
F 1
E
F 1
%
%
F /
" 9
F B
/
>
E/
E
D
:
D
4
1
++
" 9
>
-
9
E
"
E
-
=
/E
+ /
%
E
%
F
B
F%
9
@ A
F
E
E
4
7
:
9
B
B
/
"
E
D
+
E
++E
9
9
F
-
1
/
-
%
"
>
9>
B9
:
>F
6
1
%
:
" E9
"
F
F D
+
E
E
B
>
/
:
E
9
>
:
:
, \
" 9
" 9 F
" E
F
E
"
7
7
E
E
+
"
"
"
/
@
+
/
NE :
-
/
F
/ M
B-
:
9
E /
%
:
9
G
+
"
6 %
F
+
:
%
:
/
&
4
'
"
9
>
/
,(
+
*
E
< J
@ A
/
9
/
%
E
7
+
1(
>
G
9
7
+ , /G
B
+
9
9
"
B
*
9
9
"
"
7
"
8
"
9
>
/
,)
Bibliografía
.
9
E
%E
:
.
C
:E * E / . @ E
@
C
E
- 9:E
*
2
@
E
!
2
@
E1
+,
$
2
@
E1
+ ,93
(
2
@ E
5
http://javacentral.compuware.com/demos/mda.html
:
*
5
A E
,
+,
E0*E0^ S _
7
),
E
E
.
!E http://javacentral.compuware.com/
3
)
!E
3
E
3
` :
5
3
E&
"
$
&
3E <
E0
/ ;
E1 %
8
( * 1 /
!
http://www.lcc.uma.es/~av/Publicaciones/04/UMLProfiles-Novatica04.pdf
*
E+E
E
(
,,!E /
8 - E CE
5
http://convergentarchitecture.com
3
!
1-
E
$
H,I,
1-
E
$
(
1E
H,
3
$
1-
E
$
(
1-
E
$
)
1$
E
$
H,
1-
E
H,
5
$
,
`
E/E
<
E<
2
% - : 9
! http://www.arcstyler.com/
*
0
$
$
L?*
4<
$
1
3
Q
*
*
4
H,
*
$
$
H,
$
3
* "& :
3
$
*
3
< .
3
H,
&'
E
3
E
&'
3E /
4<
9
>
/
` 9a 2
&
&
*
E
A
E
E
A
E
5
*
E
!
1(
9
*
E
$
1-
9
*
E 1 /) ,
(
%
E
3 5
,
! 0
5
<
$<
E
/
>
0>
*
*
7
3 5
*
9
2
E8
0(
3
5
4
P;64%
3
*
( *
?,?
9
E
#
3
1?H
5
3
E
3
3
)
3
9 0
,5
3
7
&
0) ,2
$N
# N
3
E CE
5
E1 *
=
E
(
!
http://java.sun.com/developer/releases/petstore/
=
?H
6:
E
R )(
2
5
E
*
&
&
*
3
@
*
<
>
5
3
)&& 1
7
8
Documentos relacionados
Descargar