www.dsic.upv.es/~uml
Contenido
I.
II.
III.
IV.
V.
Introduccin
Modelado de Software
UML
Breve Tour por UML
El Paradigma Orientado a Objeto usando UML
Fundamentos del Modelado OO
Requisitos del software
Interaccin entre objetos
Clases y relaciones entre clases
Comportamiento de objetos
Componentes
Distribucin y despliegue de componentes
Object Constraint Language (OCL)
Proceso de Desarrollo de SW basado en UML
Conclusiones
www.dsic.upv.es/~uml
I
Introduccin
www.dsic.upv.es/~uml
Introduccin: Modelado de
SW
www.dsic.upv.es/~uml
I. Introduccin: Modelado de SW
www.dsic.upv.es/~uml
I. Introduccin: Modelado de SW
www.dsic.upv.es/~uml
I. Introduccin: Modelado de SW
Construccin de un
rascacielos
www.dsic.upv.es/~uml
I. Introduccin: Modelado de SW
Claves en Desarrollo de SI
Notacin
Herramientas
www.dsic.upv.es/~uml
Proceso
I. Introduccin: Modelado de SW
envo
Proceso de Negocios
Sistema Computacional
www.dsic.upv.es/~uml
I. Introduccin: Modelado de SW
Interface de Usuario
(Visual Basic,
Java, ..)
Mltiples Sistemas
Servidor de BDs
(C++ & SQL, ..)
Modelar el sistema
independientemente
del lenguaje de
implementacin
www.dsic.upv.es/~uml
Componentes
Reutilizados
Promover la Reutilizacin
10
Introduccin: UML
www.dsic.upv.es/~uml
11
I. Introduccin: UML
Qu es UML?
Modelado
Modelado
Modelado
Modelado
www.dsic.upv.es/~uml
Orientado a Objetos
de Datos
de Componentes
de Flujos de Trabajo (Workflows)
12
I. Introduccin: UML
Situacin de Partida
www.dsic.upv.es/~uml
13
I. Introduccin: UML
Historia de UML
www.dsic.upv.es/~uml
14
I. Introduccin: UML
Historia de UML
UML 2.0
2005?
2003
2000
1999
1998
Nov 97
www.dsic.upv.es/~uml
UML 1.5
UML 1.4
UML 1.3
Revisiones
menores
UML 1.2
UML aprobado
por el OMG
15
I. Introduccin: UML
Rational Software
Digital Equipment
Hewlett-Packard
i-Logix (David Harel)
IBM
ICON Computing
(Desmond DSouza)
www.dsic.upv.es/~uml
MCI Systemhouse
Microsoft
ObjecTime
Oracle Corp.
Platinium Technology
Sterling Software
Taskon
Texas Instruments
Unisys
16
I. Introduccin: UML
Jacobson
Odell
Meyer
Pre- and Post-conditions
Shlaer-Mellor
Object life cycles
UML
Harel
State Charts
Embly
Singleton classes
Wirfs-Brock
Fusion
Responsabilities
Operation descriptions,
message numbering
www.dsic.upv.es/~uml
17
I. Introduccin: UML
Aspectos Novedosos
Constraints
Tagged Values
www.dsic.upv.es/~uml
18
I. Introduccin: UML
Inconvenientes en UML
Ejemplos aislados
www.dsic.upv.es/~uml
19
I. Introduccin: UML
Perspectivas de UML
www.dsic.upv.es/~uml
20
II
Breve Tour por UML
www.dsic.upv.es/~uml
21
Modelos y Diagramas
www.dsic.upv.es/~uml
22
www.dsic.upv.es/~uml
23
www.dsic.upv.es/~uml
24
Use Case
Use Case
Diagramas de
Diagrams
Diagrams
Secuencia
Scenario
Scenario
Diagramas de
Diagrams
Diagrams
Colaboracin
Scenario
Scenario
Diagramas de
Diagrams
Diagrams
Estados
www.dsic.upv.es/~uml
Use Case
Use Case
Diagramas de
Diagrams
Diagrams
Casos de Uso
State
State
Diagramas de
Diagrams
Diagrams
Clases
Modelos
Diagramas de
Actividad
State
State
Diagramas de
Diagrams
Diagrams
Objetos
State
State
Diagramas de
Diagrams
Diagrams
Componentes
Component
Component
Diagrams
Diagramas
Diagrams de
Distribucin
25
Organizacin de Modelos
4+1 vistas de Kruchten (1995)
Vista Lgica
Vista de
Realizacin
Vista de los
Casos de Uso
Vista de
Procesos
Vista de
Distribucin
www.dsic.upv.es/~uml
26
www.dsic.upv.es/~uml
27
Paquetes en UML
www.dsic.upv.es/~uml
28
Paquetes en UML
www.dsic.upv.es/~uml
29
Paquetes en UML
Todos los elementos no son
necesariamente visibles desde
el exterior del paquete, es
decir, un paquete encapsula a
la vez que agrupa
El operador :: permite
designar una clase definida en
un contexto distinto del actual
www.dsic.upv.es/~uml
30
Otra Clase
Customers
CheckingAccount
<<access>>
Banking
(f rom Banking)
Banking
CheckingAccount
www.dsic.upv.es/~uml
31
Paquetes en UML
Prctica 1
www.dsic.upv.es/~uml
32
www.dsic.upv.es/~uml
33
Ejemplos
Ejemplo:
Retirar dinero
Cliente
Consultar Extracto
Realizar transferencia
Prctica 2
www.dsic.upv.es/~uml
34
Diagrama de Secuencia
: Encargado
:WInPrstamos
:Socio
:Video
:Prstamo
prestar(video, socio)
verificar situacin socio
verificar situacin video
registrar prstamo
entregar recibo
www.dsic.upv.es/~uml
35
Diagrama de Colaboracin
:Socio
:Video
2: verificar situacin socio
1: prestar(video, socio)
5: entregar recibo
: Encargado
4: registrar prstamo
:Prstamo
Prctica 3
www.dsic.upv.es/~uml
36
Diagrama de Clases
El Diagrama de Clases es el diagrama principal
para el anlisis y diseo del sistema
Un diagrama de clases presenta las clases del
sistema con sus relaciones estructurales y de
herencia
La definicin de clase incluye definiciones para
atributos y operaciones
Alumno
DNI : char[10]
nmero_exp : int
nombre : char[50]
alta()
poner_nota(asignatura : char *, ao : int, nota : float)
matricular(cursos : asignatura, ao : int)
listar_expediente()
www.dsic.upv.es/~uml
38
Ejemplos (Asociacin)
Departamento
dirige
0..1
www.dsic.upv.es/~uml
director
Profesor
1
39
Ejemplos (Clase
Asociacin)
Empresa
empleador
trabajadores
Empleado
1..*
Cargo
nombre
sueldo
superior
0..1
subordinado 1..*
www.dsic.upv.es/~uml
40
Ejemplos (Generalizacin)
Trabajador
{ disjunta, completa }
Directivo
www.dsic.upv.es/~uml
Administrativo
Obrero
41
Ejemplos
Motor
1..4
1
Avin
Vendedor de billetes
Piloto
1..2
Vuelo
Reserva
{ disjunta, completa }
1
Avin militar
Avin comercial
Lnea area
{ disjunta, completa }
Avin de carga
www.dsic.upv.es/~uml
Avin de pasajeros
Prcticas 4
42
Diagrama de Estados
alta
baja
sin prstamos
nmero_prstamos = 0
Socio
nmero : int
nombre : char[50]
nmero_prestamos : int = 0
prestar
devolver[ nmero_prstamos = 1 ]
alta()
baja()
prestar(cdigo_libro : int, fecha : date)
devolver(cdigo_libro : int, fecha : date)
nmero_prstamos > 0
con prstamos
prestar
www.dsic.upv.es/~uml
43
Diagrama de Actividad
Buscar Bebida
[ no hay caf ]
[ no zumo ]
[ hay caf ]
[ hay zumo ]
Poner caf
en filtro
Aadir agua
al depsito
Coger taza
Coger
zumo
Poner filtro
en mquina
Encender
mquina
/ cafetera.On
Caf en
preparacin
indicador de fin
Servir caf
www.dsic.upv.es/~uml
Beber
Prctica 5
44
Diagrama Componentes
Interfaz de Terminal
Gestin de Cuentas
www.dsic.upv.es/~uml
Rutinas de conexin
Control y Anlisis
Acceso a BD
45
Diagrama de Despliegue
Servidor Central
Control y Anlisis
Comment
Acceso a BD
Comment
Rutinas de Coneccion
Comment
Terminal de Consulta
Rutinas de Coneccion
Comment
Punto de Venta
Interfaz de Terminal
Comment
Rutinas de Coneccion
Comment
Gestin de Cuentas
Interfaz de Terminal
Comment
Comment
www.dsic.upv.es/~uml
46
Diagrama de Despliegue en
Rational
Control y Anlisis
Acceso a BD
Servidor Central
Component Diagram:
Components / Servidor
Central
Rutinas de conexin
Servidor Central
Punto de Venta
Punto de Venta
Terminal de
Consulta
Gestin de Cuentas
Terminal de Consulta
Component Diagram:
Components / Punto de
Venta
Component Diagram:
Components / Terminal
de Consulta
Rutinas de conexin
Rutinas de conexin
Interfaz de Terminal
Interfaz de Terminal
Prctica 6
www.dsic.upv.es/~uml
47
Resumen
UML define una notacin que se expresa
como diagramas sirven para representar
modelos/subsistemas o partes de ellos
El 80 por ciento de la mayora de los
problemas pueden modelarse usando
alrededor del 20 por ciento de UML-- Grady
Booch
www.dsic.upv.es/~uml
48
III
El Paradigma
Orientado a Objeto
www.dsic.upv.es/~uml
49
III. El Paradigma OO
Por qu la Orientacin a
Objetos?
www.dsic.upv.es/~uml
50
III. El Paradigma OO
Por qu la Orientacin a
Objetos?
www.dsic.upv.es/~uml
51
III. El Paradigma OO
Problemas en OO
...Los conceptos bsicos de la OO se conocen
desde hace dos dcadas, pero su aceptacin
todava no est tan extendida como los beneficios
que esta tecnologa puede sugerir
...La mayora de los usuarios de la OO no utilizan
los conceptos de la OO de forma purista, como
inicialmente se pretenda. Esta prctica ha sido
promovida por muchas herramientas y lenguajes
que intentan utilizar los conceptos en diversos
grados
--Wolfgang Strigel
www.dsic.upv.es/~uml
52
III. El Paradigma OO
Problemas en OO
www.dsic.upv.es/~uml
53
Fundamentos de Modelado
OO
www.dsic.upv.es/~uml
54
Objetos
www.dsic.upv.es/~uml
55
Objetos
Un objeto
Otro objeto ms
www.dsic.upv.es/~uml
56
Objetos
Felipe
Cuenta Corriente 114
www.dsic.upv.es/~uml
57
Objetos
www.dsic.upv.es/~uml
58
Clases y Objetos
www.dsic.upv.es/~uml
59
Comportamiento
Ejemplo de interaccin:
Un Objeto
1: Un mensaje
Operacin 1
Operacin 2
Otro Objeto
www.dsic.upv.es/~uml
60
Comportamiento
www.dsic.upv.es/~uml
61
Persistencia
www.dsic.upv.es/~uml
62
Comunicacin
www.dsic.upv.es/~uml
63
Comunicacin
Categoras de objetos:
Activos - Pasivos
Cliente Servidores, Agentes
www.dsic.upv.es/~uml
64
Comunicacin
www.dsic.upv.es/~uml
65
Comunicacin
www.dsic.upv.es/~uml
3:
Servidor 2
66
El Concepto de Mensaje
1: Mensaje A
Objeto 2
2: Mensaje C
4: Mensaje E
Objeto 4
Objeto 3
3: Mensaje D
www.dsic.upv.es/~uml
67
Mensaje y Estmulo
www.dsic.upv.es/~uml
68
www.dsic.upv.es/~uml
69
Casos de Uso
www.dsic.upv.es/~uml
70
Casos de Uso
www.dsic.upv.es/~uml
71
Casos de Uso
Ejemplo:
Actor A
Caso de Uso A
Caso de Uso B
www.dsic.upv.es/~uml
Actor B
72
Casos de Uso
Actores:
www.dsic.upv.es/~uml
73
Casos de Uso
www.dsic.upv.es/~uml
74
Actor
www.dsic.upv.es/~uml
Caso de Uso
75
Casos de Uso:
Relaciones
Inclusin : una instancia del Caso de Uso origen
incluye tambin el comportamiento descrito por el
Caso de Uso destino
<<include>>
www.dsic.upv.es/~uml
76
Casos de Uso:
Relaciones
Ejemplo <<include>>:
Reintegro Cuenta Corriente
<<include>>
Verificar Operacin
Cliente
<<include>>
www.dsic.upv.es/~uml
77
Casos de Uso:
Relaciones
Extensin : el Caso de Uso origen
extiende el comportamiento del Caso de
Uso destino
<<extend>>
www.dsic.upv.es/~uml
78
Casos de Uso:
Relaciones
Ejemplo <<extend>>:
Cliente
Solicitar Prstamo
[Tarjeta Caducada]
<<extend>>
www.dsic.upv.es/~uml
79
Casos de Uso:
Relaciones
Cliente
Identificacin
Transferencia
< <extend>>
Transferencia en Internet
www.dsic.upv.es/~uml
80
Casos de Uso:
Relaciones
<<include>>
<<include>>
Arrange Payment
<<include>>
1
Salesperson
www.dsic.upv.es/~uml
<<extend>>
*
Place Order
Request Catalog
81
Casos de Uso:
Relaciones
Herencia : el Caso de Uso origen hereda
la especificacin del Caso de Uso destino
y posiblemente la modifica y/o ampla
www.dsic.upv.es/~uml
82
Casos de Uso:
Construccin
www.dsic.upv.es/~uml
83
Casos de Uso:
Construccin
La descripcin del Caso de Uso comprende:
Prctica 7
www.dsic.upv.es/~uml
84
CU-<id-requisito>
Nombre
Descripcin
Precondicin
Secuencia
Normal
Paso
Postcondicin
Excepciones
Rendimiento
Accin
Accin
Paso
Cota de tiempo
n segundos
Frecuencia esperada
Importancia
Urgencia
Comentarios
<comentarios adicionales>
www.dsic.upv.es/~uml
85
Comentarios
www.dsic.upv.es/~uml
86
www.dsic.upv.es/~uml
87
Interaccin
www.dsic.upv.es/~uml
88
Mensajes
Sintaxis para mensajes:
predecesor / guarda secuencia: retorno := msg(args)
www.dsic.upv.es/~uml
89
Diagramas de interaccin
www.dsic.upv.es/~uml
90
Diagrama de Secuencia
www.dsic.upv.es/~uml
91
Diagrama de Secuencia
www.dsic.upv.es/~uml
92
Diagrama de Secuencia
Caller
Exchange
Receiver
a: lift receiver
{b.receiveTime
- a.sendTime < 1 sec.}
b: dial tone
{c.receiveTime
-b.sendTime < 10 sec.}
c: dial digit
...
The call is routed
through the network
d: route
{d.receiveTime
-d.sendTime < 5 sec.}
ringing tone
phone rings
answer phone
www.dsic.upv.es/~uml
stop tone
stop ringing
----< 1 sec
-----
93
Diagrama de Secuencia
mostrando foco de
control,
condiciones,
recursividad
creacin y destruccin
de objetos
www.dsic.upv.es/~uml
94
ob3 : C3
op( )
ob4 : C4
ob1 : C1
[x>0] fool(x)
ob2 : C2
[x<0] bar(x)
doit(z)
doit(w)
more( )
www.dsic.upv.es/~uml
95
Diagrama de Secuencia
Diagram 2
Diagram 1
ob3 : C3
ob1 : C1
ob4 : C4
[x<0] bar(x)
bar(x)
doit(w)
Sequence Diagram:
Diagrams / Diagram 2
Sequence Diagram:
Diagrams / Diagram 1
www.dsic.upv.es/~uml
96
Diagrama de Colaboracin
www.dsic.upv.es/~uml
97
Mensajes
www.dsic.upv.es/~uml
98
Mensajes
B
A
www.dsic.upv.es/~uml
99
Mensajes
1: distancia:= mover(x,y)
B
A
Prctica 8
www.dsic.upv.es/~uml
100
Clases y relaciones
entre clases
www.dsic.upv.es/~uml
101
Clasificacin
Mecanismos de abstraccin:
Clasificacin / Instanciacin
Composicin / Descomposicin
Agrupacin / Individualizacin
Especializacin / Generalizacin
www.dsic.upv.es/~uml
102
Clases
www.dsic.upv.es/~uml
103
www.dsic.upv.es/~uml
104
Otros ejemplos:
lista
primero()
ultimo()
aadir()
quitar()
cardinalidad()
www.dsic.upv.es/~uml
pila
apilar()
desapilar()
cardinalidad()
105
Clases: Encapsulacin
www.dsic.upv.es/~uml
106
Clases: Encapsulacin
www.dsic.upv.es/~uml
107
Clases: Encapsulacin
Ejemplo:
Reglas de visibilidad
Atributo pblico : Integer
Atributo protegido : Integer
Atributo privado : Integer
"Operacin pblica"()
"Operacin protegida"()
"Operacin privada"()
www.dsic.upv.es/~uml
108
www.dsic.upv.es/~uml
109
Asociacin
Un enlace
Antonio : Estudiante
Estudiante
Universidad
Una asociacin
www.dsic.upv.es/~uml
110
Asociacin
Ejemplo:
marido
casado-con
mujer
jefe
Administra
0..1
0..1
Persona
nombre
s.s.
emplea-a
Compaa
trabaja-para nombre
direccin
*
0..1
empleado
www.dsic.upv.es/~uml
111
Asociacin
Especificacin de multiplicidad
(mnima...mxima)
1 Uno y slo uno
0..1
Cero o uno
M..N
Desde M hasta N (enteros naturales)
* Cero o muchos
0..*Cero o muchos
1..*Uno o muchos (al menos uno)
www.dsic.upv.es/~uml
112
Asociacin Cualificada
Aerolnea
nro_billete
Tablero
Ajedrez
fila
columna
0..1
Viajero
Cuadro
www.dsic.upv.es/~uml
113
Agregacin
www.dsic.upv.es/~uml
114
Ejemplos
Window
scrollbar[2] : Slider
title : Header
body : Panel
Window
1
scrollbar
Slider
www.dsic.upv.es/~uml
title 1
Header
body
Panel
115
... Ejemplos
Person
Member-of
* Committee
{ subset }
Chair-of
*
Represents an
incorporated entity.
worker
Person
employee
employer
Company
0..1
*
0..1
boss
{Person.employer =
Person.boss.employer}
www.dsic.upv.es/~uml
116
Ejemplos
Polgono
Agregacin
{ordenado}
*
Cuenta
Punto
contiene
3..*
Persona
Asociacin excluyente
or
Empresa
*
1
est-autorizado-en
Usuario
*
Clase de asociacin
www.dsic.upv.es/~uml
Estacin
*
Autorizacin
prioridad
privilegios
camb_privil()
117
Clases y Objetos
www.dsic.upv.es/~uml
118
Generalizacin
www.dsic.upv.es/~uml
119
... Generalizacin
www.dsic.upv.es/~uml
120
... Generalizacin
Vehculo
Veihculo Terrestre
Coche
www.dsic.upv.es/~uml
Camin
Vehculo Areo
Avin
Helicptero
121
... Generalizacin
Funcionando
Estropeado
disjunta - no disjunta
total (completa) - parcial (incompleta)
www.dsic.upv.es/~uml
122
... Generalizacin
www.dsic.upv.es/~uml
123
... Generalizacin
www.dsic.upv.es/~uml
124
... Generalizacin
Avin
www.dsic.upv.es/~uml
Helicptero
125
... Generalizacin
Funcionando
www.dsic.upv.es/~uml
Estropeado
126
... Generalizacin
www.dsic.upv.es/~uml
127
... Generalizacin
Clasificacin Esttica
C0
ext(C0) = ext(Ci)
{ static }
completa
ext(Ci) ext(Cj) =
C1
www.dsic.upv.es/~uml
Cn
disjunta
128
... Generalizacin
Clasificacin Dinmica
C0
ext(C0) = ext(Ci)
{ dinmica }
completa
C1
www.dsic.upv.es/~uml
Cn
no disjunta en
diferentes
instantes
129
... Generalizacin
Militar
uso
Vehculo Areo
estructura
Avin
www.dsic.upv.es/~uml
Helicptero
130
www.dsic.upv.es/~uml
131
Herencia Mltiple
Cuadrpedo
nro patas
nro patas
Herbvoro
Con Pelos
comida
cubertura
Con Plumas
cobertura
Animal
comida
cobertura
Carnvoro
Con Escamas
Conejo
www.dsic.upv.es/~uml
132
Principio de Sustitucin
www.dsic.upv.es/~uml
133
Principio de Sustitucin
www.dsic.upv.es/~uml
134
Polimorfismo
www.dsic.upv.es/~uml
135
Polimorfismo
?
dormir
?
Len
www.dsic.upv.es/~uml
Oso
Tigre
136
Polimorfismo
Animal
dormir()
Dormir()
{
}
Len
Oso
Tigre
dormir()
dormir()
dormir()
Dormir()
{
sobre el vientre
}
www.dsic.upv.es/~uml
Dormir()
{
sobrela espalda
}
Dormir()
{
en un rbol
}
137
Polimorfismo
Prctica 9-12
www.dsic.upv.es/~uml
138
Comportamiento de
objetos
www.dsic.upv.es/~uml
139
Diagrama de Estados
www.dsic.upv.es/~uml
140
Diagrama de Estados
www.dsic.upv.es/~uml
141
Diagrama de Estados
www.dsic.upv.es/~uml
142
Diagrama de Estados
Estados y Transiciones
Evento [condicin] / Accin
B
Tanto el evento como la accin se
consideran instantneos
www.dsic.upv.es/~uml
143
Diagrama de Estados
en activo
perder empleo
jubilarse
jubilarse
jubilado
www.dsic.upv.es/~uml
144
Acciones
www.dsic.upv.es/~uml
145
Acciones
www.dsic.upv.es/~uml
146
Generalizacin de Estados
www.dsic.upv.es/~uml
147
Generalizacin de Estados
Ejemplo:
e1
e2
e2
C
www.dsic.upv.es/~uml
148
Generalizacin de Estados
Quedara como:
Aa
e1
b
B
e2
www.dsic.upv.es/~uml
149
Generalizacin de
Estados
Bb
e2
e0
www.dsic.upv.es/~uml
150
Generalizacin de
Estados
b
B
e2
www.dsic.upv.es/~uml
C
e0
151
Generalizacin de
Estados
La agregacin de estados es la
composicin de un estado a partir de
varios estados independientes
www.dsic.upv.es/~uml
152
Generalizacin de
Estados
Ejemplo:
e1
www.dsic.upv.es/~uml
e1
153
Generalizacin de
Estados
lift receiver
/ get dial
tone
Active
Timeout
do/ play message
Dialing
caller hangs up
/ disconnect
Invalid
do/ play message
callee
hang
s up
Connecting
callee
hangs
up
Busy
busy
connected
Talking
Ringing
callee answers
/ enable
speech
www.dsic.upv.es/~uml
154
Historia
www.dsic.upv.es/~uml
155
Historia
Ejemplo:
A
d2
B
in
D
out
d1
C
H*
www.dsic.upv.es/~uml
156
Historia
Ejemplo:
Enjuague
Lavado
Secado
abir puerta
cerrar puerta
Espera
www.dsic.upv.es/~uml
157
www.dsic.upv.es/~uml
158
Destruccin de Objeto
Ejemplo:
En vuelo
despegar
Crear(matricula)
www.dsic.upv.es/~uml
crash
aterrizar
En tierra
159
Transiciones temporizadas
www.dsic.upv.es/~uml
160
Transiciones
temporizadas
Ejemplo:
A
/ Abrir ranura
esperar dinero
entry: Mostrar mensaje
exit: cerrar ranura
despus de
30 segundos
anular
transaccin
Depsito efectuado
www.dsic.upv.es/~uml
161
Diagrama de Actividad
www.dsic.upv.es/~uml
162
Solicitar
pasaje
Vende dor
Verificar
existencia vuelo
Airline
Dar detalles
vuelo
Informar alternativas y
precios
Seleccionar
vuelo
Solicitar
pago
Reservar
plazas
Confirmar plaza
reservada
Pagar
pasaje
Emitir
billete
www.dsic.upv.es/~uml
163
... Ejemplos
Customer
Request service
Sales
Stockroom
Order
[placed]
Take order
Order
[entered]
Play
Fill order
Order
[delivered]
Deliver order
Order
[filled]
Collect order
www.dsic.upv.es/~uml
164
... Ejemplos
Calculate
total cost
www.dsic.upv.es/~uml
Change customer's
account
Get
authorization
165
Componentes
www.dsic.upv.es/~uml
166
Diagrama de
Componentes
www.dsic.upv.es/~uml
167
...Diagrama de
Componentes
www.dsic.upv.es/~uml
168
...Diagrama de
Componentes
www.dsic.upv.es/~uml
169
Distribucin y despliegue
de Componentes
www.dsic.upv.es/~uml
170
Diagrama de Despliegue
www.dsic.upv.es/~uml
171
Diagrama de
Despliegue
www.dsic.upv.es/~uml
172
Diagrama de
Despliegue
<<Servidor>>
<<TCP/IP>>
Base de
Datos
<<RDSI>>
Podemos distinguir
tipos de nodos y
connexiones por
estereotipado
www.dsic.upv.es/~uml
Control
<<RDSI>>
173
Diagramas de
Despliegue
Ejemplo:
www.dsic.upv.es/~uml
174
Diagramas de
Despliegue
Ejemplo:
Client
Component Diagram:
videoStoreApplication /
VideoStoreApplication
Diagram
<<Container>>
Component Diagram:
Client / Client
VideoStoreApplication
Component Diagram:
videoStoreServer /
videoStoreServer
<<browser>>
OpenSourceBrowser
Client
<<AppServer>>
videoStoreServer
<<Session>>
<<Entity>>
ShoppingSession
Catalog
DBServer
<<Entity>>
ShoppingCart
videoStoreApplication
Component Diagram:
DBServer / DBServer
DBServer
VideoStoreDB
www.dsic.upv.es/~uml
175
III. El Paradigma OO
Object Constraint
Language
OCL
www.dsic.upv.es/~uml
176
Qu es OCL?
www.dsic.upv.es/~uml
177
Usos de OCL
Lenguaje de consulta
Especificacin de invariantes en clases y tipos
Especificacin de invariantes de tipo para
Estereotipos
Describir pre- y post condiciones en
Operaciones y Mtodos
Describir Guardas
Especificar destinatarios para mensages y
acciones
Especificar restricciones en Operaciones
Especificar reglas de derivacin para atributos
www.dsic.upv.es/~uml
178
Ejemplo
www.dsic.upv.es/~uml
179
Invariantes
www.dsic.upv.es/~uml
180
Sintaxis
Ejemplo
www.dsic.upv.es/~uml
181
Valores iniciales y
derivados
Sintaxis
Ejemplo
www.dsic.upv.es/~uml
182
Expresiones Let
Ejemplo
www.dsic.upv.es/~uml
183
Definiciones
Ejemplo
context Persona
def: ingresos : Integer = self.puesto.sueldo->sum()
def: apodo : String = Gallito rojo
def: tieneElTtulo(t : String) : Boolean = self.puesto>exists(ttulo = t)
www.dsic.upv.es/~uml
184
Navegacin
Ejemplos
context Compaa
inv: self.director.estEnparo = false
inv: self.empleado->notEmpty()
context Compaa
inv:self.director.edad > 40
context Persona
inv:self.empleador->size() < 3
context Persona
inv:self.empleador->isEmpty()
context Persona
inv:self.esposa->notEmpty() implies self.esposa.sexo = Sexo::mujer
www.dsic.upv.es/~uml
185
Navegacin
Ejemplo
www.dsic.upv.es/~uml
186
IV
Proceso de Desarrollo
de SW basado en UML
www.dsic.upv.es/~uml
187
Qu es un Proceso de Desarrollo de
SW?
Requisitos nuevos
o modificados
Proceso de Desarrollo
de Software
Sistema nuevo
o modificado
www.dsic.upv.es/~uml
188
RationalObjectory Process
1996-1997
Objectory Process
Pruebas funcionales
Pruebas de desempe
Gestin de requisitos
Gestin de cambios y
configuracin
Ingeniera de Negocio
Ingeniera de datos
Diseo de interfaces
UML
1987-1995
Enfoque Ericsson
www.dsic.upv.es/~uml
189
Dos Dimensiones
www.dsic.upv.es/~uml
190
Inception Elaboration
Objetivos
(Vision)
Construction
Arquitectura
Transition
Capacidad
Operacional
Inicial
Release
del Producto
tiempo
www.dsic.upv.es/~uml
191
Elementos en RUP
Workflows (Disciplinas)
Workflows Primarios
Workflows de Apoyo
Environment (Entorno)
Project Management (Gestin del Proyecto)
Configuration & Change Management (Gestin de Configuracin
y Cambios)
www.dsic.upv.es/~uml
192
Workers
www.dsic.upv.es/~uml
Artefactos
Actividades
193
Business-Process Analyst
Business Designer
Business-Model Reviewer
Requirements Reviewer
System Analyst
Use-Case Specifier
User-Interface Designer
Developer workers
www.dsic.upv.es/~uml
Architect
Architecture Reviewer
Capsule Designer
Code Reviewer
Database Designer
Design Reviewer
Designer
Implementer
Integrator
Manager workers
Other workers
Any Worker
Course Developer
Graphic Artist
Stakeholder
System Administrator
Technical Writer
Tool Specialist
194
www.dsic.upv.es/~uml
195
Business Modeling
Deployment Set
Conjuntos
de Artefactos
Set
Requirements Set
Test Set
www.dsic.upv.es/~uml
196
www.dsic.upv.es/~uml
197
Caractersticas Esenciales de
RUP
www.dsic.upv.es/~uml
198
Requisitos
Anlisis & Diseo
Implementacin
Pruebas
www.dsic.upv.es/~uml
Casos de Uso
integran el
trabajo
Realizar los
casos de uso
Verificar que se
satisfacen los
casos de uso
199
trace
trace
trace
Pruebas
Unitarias
Pruebas Funcionales
Caso de Prueba
[The Unified Software Development Process. I. Jacobson, G. Booch and J. Rumbaugh. Addison-Wesley, 1999]
200
www.dsic.upv.es/~uml
www.dsic.upv.es/~uml
201
Proceso Iterativo e
Incremental
www.dsic.upv.es/~uml
202
n veces
www.dsic.upv.es/~uml
Codific.
Pruebas e
Integracin
203
www.dsic.upv.es/~uml
204
Enfoque
Iterativo e
Incremental
www.dsic.upv.es/~uml
205
www.dsic.upv.es/~uml
206
Proceso Centrado en la
Arquitectura
Architecture
www.dsic.upv.es/~uml
207
release
(producto al final de
una iteracin)
www.dsic.upv.es/~uml
ciclo de evolucin
base line
generacin
(release asociada
a un hito)
(release final de
un ciclo de desarrollo)
208
Inicio
Elaboraci
n
Construcci
n
Transici
n
Esfuerzo
5%
20 %
65 %
10%
Tiempo
Dedicado
10 %
30 %
50 %
10%
www.dsic.upv.es/~uml
209
www.dsic.upv.es/~uml
210
V
Conclusiones
www.dsic.upv.es/~uml
211
V. Conclusiones
Claves en el Desarrollo de SI
Notacin
UML
Herramientas
p.e. Rational Rose
Poseidon
www.dsic.upv.es/~uml
Proceso
p.e. Rational Unified Process
Mtrica 3.0 o XP
212
V. Conclusiones
Gestin de modelos
Documentar (a posteriori)
Comunicar ideas y estudiar alternativas
Tomar decisiones de anlisis/diseo que dirijan la implementacin
Generar parcial o totalmente una implementacin a partir de los
modelos
Sincronizacin de modelos
www.dsic.upv.es/~uml
213
V. Conclusiones
www.dsic.upv.es/~uml
214
V. Conclusiones
Tendencias
Modelado gil
Modelado opcional y/o desechable (en Metodologas giles)
www.dsic.upv.es/~uml
215
V. Conclusiones
... Tendencias
www.objecteering.com/products_uml_profile_builder.php )
www.dsic.upv.es/~uml
216
www.dsic.upv.es/~uml
217
V. Conclusiones
Bibliografa Adicional
UML
www.omg.org/uml/
Meta-links www.cetus-links.org/oo_uml.html
Martin Fowler, autor de UML Destilled (UML Gota a Gota)
http://www.martinfowler.com/
Herramientas CASE
Herramientas basadas en UML www.objectsbydesign.com /tools/
umltools_byPrice.html
International Council in SE (INCOSE) www.incose.org/tools/
Otras
Revista IEEE Software, Conferencias: OOPSLA, ECOOP
Patrones http://www.cmcrossroads.com/bradapp/docs/patterns-intro.html,
Foro UML en yahoo: http://groups.yahoo.com/group/uml-forum/
www.dsic.upv.es/~uml
218