Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso OOcon UML
Curso OOcon UML
Anlisis y Diseo
Orientado a Objetos usando
la notacin UML
Ing. Mario Alberto Prez
Universidad Nacional de Colombia
Introduccin: Modelado de SI
Breve Tour por UML
El Paradigma Orientado a Objetos
Fundamentos del Modelado OO
Captura de Requisitos
Modelado de Interacciones
Modelado de la Estructura del Sistema
Diagramas de Estados
Modelado de Componentes
Modelado de Distribucin
Proceso de Desarrollo de SW con UML
Conclusiones
Introduccin: Modelado de SI
Puede hacerlo una sola persona
Requiere :
Modelado mnimo
Proceso simple
Herramientas simples
Construccin de un rascacielos
Claves en Desarrollo de SI
Notacin
Orden
Item
envo
Herramientas
Proceso de Negocios
Proceso
Sistema Computacional
7
Interfaz de Usuario
(Visual Basic,
Java, ..)
Lgica del Negocio
(C++, Java, ..)
Servidor de BDs
(C++ & SQL, ..)
10
MV promueve la reutilizacin
Mltiples Sistemas
Componentes
Reutilizados
11
12
Qu es UML?
Situacin de Partida
13
14
Historia de UML
Historia de UML
UML 2.0
2001 ?
UML 1.4
2000
1999
UML 1.3
1998
Nov 97
Revisiones menores
UML aprobado por el OMG
UML 1.2
15
Rational Software
(Grady Booch, Jim Rumbaugh y
Ivar Jacobson)
Digital Equipment
Hewlett-Packard
i-Logix (David Harel)
IBM
ICON Computing
(Desmond DSouza)
16
MCI Systemhouse
Microsoft
ObjecTime
Oracle Corp.
Platinium Technology
Sterling Software
Taskon
Texas Instruments
Unisys
Rumbaugh
Booch
Jacobson
Odell
Meyer
Pre- and Post-conditions
Shlaer-Mellor
Objectlife cycles
UML
Harel
State Charts
Embly
Singleton classes
17
Wirfs-Brock
Fusion
Responsabilities
Operation descriptions,
message numbering
18
Aspectos Novedosos
Constraints
Tagged Values
Inconvenientes en UML
20
Perspectivas de UML
UML ser el lenguaje de modelado orientado a
objetos estndar predominante los prximos aos
Razones:
Evidencias:
Ejemplos aislados
21
Diagramas de UML
Use
UseCase
Case de
Diagrams
Diagramas
Use
Diagrams
UseCase
Case de Casos
de Uso
Diagramas
Diagrams
Diagrams
Secuencia
Scenario
Scenario
Diagrams
Diagramas
Diagrams de
Colaboracin
Scenario
Scenario de
Diagramas
Diagrams
Diagrams
Estados
State
State de
Diagrams
Diagramas
Diagrams
Clases
Modelo
Diagramas de
Actividad
22
State
State de
Diagrams
Diagramas
Diagrams
Objetos
State
State
Diagrams
Diagramas
de
Diagrams
Componentes
Component
Component
Diagramas
Diagrams
Diagrams
de
Distribucin
24
Paquetes en UML
Paquetes en UML
Nombre de
paquete
25
26
Prctica 1
Paquetes en UML
Paquetes en UML
El operador :: permite designar una clase
definida en un contexto distinto del actual
27
28
Ejemplos
Verificar Situacin
Vendedor
Cliente
Establecer Crdito
Preparar Catlogo
Supervisor
Secretaria
Tipos de Venta
29
30
Ejemplos
Ejemplos
Venta Normal
Realizar prstamo
Socio
Encargado
tarjeta caducada
<<extend>>
<<extends>>
Venta en Rebajas
Cliente
Vendedor
Venta en Oferta
31
32
Prctica 2
Diagramas de Secuencia
Ejemplos
: Socio
: Encargado
: Libro
: Ficha socio
: Ficha libro
: Prstamo
Coger libro
<<include>>
<<uses>>
Solicitar prstamo
Verificar situacin socio
Situacin socio ok
Cliente
Validar operacin
Verificar situacin libro
Situacin libro ok
<<uses>>
<<include>>
Introducir prstamo
Autorizar prstamo
33
34
Prctica 3
Diagramas de Colaboracin
1: Coger libro
: Socio
: Libro
2: Solicitar prstamo
: Ficha s
ocio
3: Verificar situacin socio
8: Autorizar prstamo
4: Situacin socio ok
6: Situacin libro ok
: Encargado
7: Introducir prstamo
: Prsta
mo
35
36
Ejemplos (Asociacin)
Alumno
DNI : char[10]
nmero_exp : int
nombre : char[50]
dirige
Departamento
director
0..1
Profesor
1
alta()
poner_nota(asignatura : char *, ao : int, nota : float)
matricular(cursos : asignatura, ao : int)
listar_expediente()
37
Empresa
trabajador
38
Ejemplos (Generalizacin)
Empleado
Empleado
*
1..*
{disjunta, completa}
Cargo
nombre
sueldo
+superior
0..1
Directivo
1..*
Administrativo
Obrero
+subordinado
39
40
Prcticas 4-8
Ejemplos
Diagramas de Estados
Motor
Vendedor de billetes
Piloto
1..4
alta
1..2
baja
nmero_prstamos = 0
sin prstamos
1
Avin
*
1
Vuelo
*
1
Socio Biblioteca
Reserva
Nmero : int
Nombre : char[50]
Nmero prstamos : int = 0
{ disjunta, completa }
1
Avin militar
Avin comercial
prestar
Alta()
Baja()
Prestar(CdigoLibro : int, Fecha : date)
Devolver(CdigoLibro : int, Fecha : date)
devolver[ nmero_prstamos = 1 ]
nmero_prstamos > 0
con prstamos
Lnea area
prestar
{ disjunta, completa }
devolver[ nmero_prstamos > 1 ]
Avin de carga
Avin de pasajeros
41
42
Prctica 9
Diagramas de Actividad
Buscar Bebida
Pasajero
[no zumo]
Vendedor
Airline
[hay zumo]
[hay caf
Poner caf en filtro
Verificar
existencia vuelo
Coger zumo
Informar alternativas
y precios
Seleccionar vuelo
Encender mquina
^cafetera.On
Caf en preparacin
indicador de fin
Confirmar
plaza reservada
Pagar pasaje
Servir caf
Beber
Emitir billete
43
44
Prctica 10
Diagramas Componentes
Diagramas de Distribucin
Servidor Central
Control y Anlisis
Control y Anlisis
Comment
Acceso a BD
Interfaz de Terminal
Comment
Comment
Comment
Rutinas de Coneccion
Terminal de Consulta
Gestin de Cuentas
Acceso a BD
Rutinas de Coneccion
Comment
Interfaz de Terminal
Rutinas de Coneccion
Comment
Comment
Comment
Punto de Venta
Rutinas de Coneccion
Comment
Gestin de Cuentas
Interfaz de Terminal
45
46
Resumen
Captura de Requisitos
Anlisis y Diseo
Implementacin
Diagramas de
Estados
Diagramas de
Secuencia
Diagramas de
Casos de Uso
Diagramas de
Colaboracin
Diagramas de
Actividad
El Paradigma
Orientado a Objetos
Diagramas de
Distribucin
Diagramas
De Clases
Diagramas de
Componentes
Diagramas de
Actividad
"You can model 80 percent of most problems by using about 20 percent of the UML."-- Grady Booch
47
48
49
Problemas en OO
50
Problemas en OO
--Wolfgang Strigel
51
52
DFDs
E-R
Enfoque OO
Diseo
DEs
Modelo
Relacional
Modelo
Relacional !!
Diagrama de Clases
Diagrama de Estados
Diagramas de Actividad
Implementacin
Entornos de
Programacin
Visual
Bases de Datos
(Objeto-)
Relacionales
53
54
Objetos
Objetos
Otro
Objeto
ms
Un Objeto
Otro
Objeto
55
Objetos
56
Objetos
Felipe
Cuenta
corriente
Libreta de
ahorro a
plazo
Juan
Un coche
Azul
979 Kg
70 CV
...
Libreta de
ahorro
Cuenta
corriente
57
Identidad
58
Identidad
60
10
Estado
Comportamiento
Ejemplo de interaccin:
Otro objeto
Un mensaje
Operacion 2
Un objeto
Operacion 1
61
Comportamiento
62
Persistencia
63
Comunicacin
64
Comunicacin
Categoras de objetos:
Activos - Pasivos
Cliente Servidores, Agentes
66
11
Comunicacin
Comunicacin
Sevidor 1
Un agente
Servidor 2
Un cliente
Aislante
67
El Concepto de Mensaje
68
El Concepto de Mensaje
Objeto 1
: Mensaje A
Objeto 2
: Mensaje C
: Mensaje E
Objeto 3
Objeto 4
: Mensaje D
69
70
Mensaje y Estmulo
Captura de Requisitos
72
12
Casos de Uso
Casos de Uso
73
Casos de Uso
74
Casos de Uso
Actores:
Ejemplo:
Sistema
Caso de uso X
Actor A
Actor B
Caso de uso Y
75
Casos de Uso
76
Comunicacin:
Actor
Caso de Uso
77
78
13
<<include> >
<<extend >>
79
80
Giro por
Transferencia
porInternet
Internet
<<extend>>
<<extends>>
Cliente
<<includes>>
<<include>>
Transferencia
Giro
81
82
83
14
Precondicin
Secuencia
Normal
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Importancia
Urgencia
Come n t a r i o s
85
86
Prctica 11
Modelado de Interacciones
87
Interaccin
88
Diagramas de interaccin
Los Diagramas de Secuencia son ms
adecuados estn para observar la perspectiva
cronolgica de las interacciones
89
90
15
Diagramas de Secuencia
Diagramas de Secuencia
Un ejemplo:
B
m1
m2
m3
m4
m5
91
Diagramas de Secuencia
Ejemplo
Quien llama
Lnea telefnica
92
Diagramas de Secuencia
Un objeto puede enviarse a s mismo un mensaje:
Llamado
descuelga
tono
marcar
Las bandas
rectangulares
representan los
periodos de
actividad de los
objetos
indicacin de llamada
mensaje reflexivo
timbre
descuelga
diga?
93
Diagramas de Secuencia
94
Diagramas de Secuencia
Normalmente no es necesario indicar el retorno
del control:
El retorno se
considera implcito
cuando el envo es
sncrono
95
96
16
Diagrama de Secuencia
Tipos de Control
El Diagrama de Secuencia refleja de manera
indirecta las opciones de control
b : aa
97
Tipos de control
98
Estructuras de control
While X
Loop
end Loop
99
Estructuras de control
100
Estructuras de control
*[condicin] Mensaje
If condicin
else
end if
101
102
17
Diagramas de Colaboracin
Mensajes
A
103
Mensajes
104
Mensajes
1 *[i:=1..n] : Mensaje
1 *| | [i:=1..n] : Mensaje
105
Mensajes
106
Mensajes
1: distancia:= mover(x,y)
[x>y] 1: Mensaje
107
108
18
Prctica 12
Mensajes
Los argumentos de un mensaje pueden ser
valores obtenidos como consecuencia de las
llamadas anteriores
Modelado Conceptual
Clases
110
Clases
Modelado Conceptual:
Organizacin del conocimiento del dominio del
problema en un conjunto de abstracciones
ordenadas de forma que se obtiene un
conocimiento ms profundo del problema
Mecanismos de abstraccin:
Clasificacin / Instanciacin
Composicin / Descomposicin
Agrupacin / Individualizacin
Especializacin / Generalizacin
111
Clases
112
nombre de la clase
atributos de la clase
operaciones de la clase
motocicleta
color
cilindrada
velocidad maxima
arrancar
acelerar
frenar
113
114
19
Clases: Encapsulacin
Otros ejemplos:
lista
pila
primero
ultimo
aadir
quitar
cardinalidad
apilar
desapilar
cardinalidad
115
Clases: Encapsulacin
Clases: Encapsulacin
116
Ejemplo:
Reglas de visibilidad
+ Atributo pblico : int
# Atributo protegido : int
- Atributo privado : int
+ "Operacin pblica"
# "Operacin protegida"
- "Operacin privada"
117
118
Asociacin
Univ. de Murcia:Universidad
Un enlace
Universidad
Antonio:Estudiante
Estudiante
Una asociacin
119
120
20
Asociacin
Asociacin
Especificacin de multiplicidad
(mnima...mxima)
Ejemplo:
1
0..1
M..N
*
0..*
1..*
marido
0.. 1
0.. 1
mujer Persona
casado -con
trabaja-para
emplea -a
jefe nombre
0.. 1 s. s.
Administra
* Compaa
nombre
direccin
empleado
122
Asociacin Cualificada
0..1
Aerolnea nro_billete *
Tablero
Ajedrez
fila
columna
Agregacin
La agregacin representa una relacin parte_de
entre objetos
Viajero
Cuadro
123
124
Agregacin: Caracterizacin
Agregacin: Caracterizacin
4. Puede existir un objeto parte sin ser componente de un objeto
No => inclusiva
Si => no inclusiva
agregado?
Si => flexible
No => estricta
5. Cuntos objetos de una clase componente puede tener asociados un objeto
agregado?
Si => dinmica
No => esttica
No => disjunta
Si => no disjunta
125
21
Agregacin: Caracterizacin
Ejemplos
1
univaluado
> 1 multivaluado
>1
*
+Padre
1
motor
Multiplicidad Mxima
1
disjunto
Multiplicidad Mxima
+Hijos
0..2
0
flexible
> 0 estricta
nulos permitidos
Persona
Multiplicidad Mnima
Multiplicidad Mnima
0
coche
no disjunto
Objeto Componente
127
Ejemplos
Agregacin
Polgono
*
*
Persona
or
1
3.. *
{ordenado}
Cuenta
128
Punto
Asociacin excluyente
Empresa
Usuario
Clase de asociacin
est-autorizado -en
Estacin
Autorizacin
prioridad
privilegios
camb_privil
129
Jerarquas de
Generalizacin/Especializacin
130
... Jerarquas de
Generalizacin/Especializacin
131
132
22
... Jerarquas de
Generalizacin/Especializacin
... Jerarquas de
Generalizacin/Especializacin
Abstracciones ms generales.
vehiculo
vehiculo terrestre
camion
coche
vehiculo areo
avion
helicoptero
133
... Jerarquas de
Generalizacin/Especializacin
134
... Jerarquas de
Generalizacin/Especializacin
coche
funcionando
estropeado
disjunta - no disjunta
total (completa) - parcial (incompleta)
135
... Jerarquas de
Generalizacin/Especializacin
136
... Jerarquas de
Generalizacin/Especializacin
137
helicoptero
138
23
... Jerarquas de
Generalizacin/Especializacin
... Jerarquas de
Generalizacin/Especializacin
coche
A
funcionando
int(A) int(B)
estropeado
ext(B) ext(A)
B
139
... Jerarquas de
Generalizacin/Especializacin
140
... Jerarquas de
Generalizacin/Especializacin
Estticas:
Dinmicas:
ext(C 0) = ext(C i)
ext(C i) ext(Cj ) =
C0
ext(C 0) = ext(C i)
C0
extt(C i) extt(Cj ) =
extt1(C i) extt2(Cj )
C1
C1
Cn
Cn
141
... Jerarquas de
Generalizacin/Especializacin
142
... Jerarquas de
Generalizacin/Especializacin
Ejemplo: varias especializaciones a partir de
la misma superclase:
comercial
vehiculo areo
helicoptero
144
24
... Jerarquas de
Generalizacin/Especializacin
... Jerarquas de
Generalizacin/Especializacin
coche
de ms de 1000 kms
funcionando
estropeado
145
... Jerarquas de
Generalizacin/Especializacin
146
... Jerarquas de
Generalizacin/Especializacin
Un ejemplo combinado:
vehiculo
comercial
vehiculo terrestre
vehiculo terrestre
vehiculo areo
esttica
esttica
esttica
camion
avion
de menos de 1000kms
militar
helicoptero
coche
camion
dinmica
coche
Harley Davidson
de ms de 1000 kms
dinmica
funcionando
estropeado
147
... Jerarquas de
Generalizacin/Especializacin
148
... Jerarquas de
Generalizacin/Especializacin
Ejemplo:
mariposa
oruga
crislida
Lepidptero
Aspecto
mariposa
estadio
1
oruga
149
crislida
Lepidptero
150
25
Herencia Mltiple
Herencia Mltiple
Realiza >
Clase
Tipo
*
Tipo A
Tipo B
Tipo C
151
Herencia Mltiple
152
Delegacin
conejo
con pelo
Herbvoro
con plumas
omnvoro
Animal
con escamas
carnvoro
Bipedo
Cuadrpedo
153
Delegacin
Principio de Sustitucin
x Locomocin
Bpedo
154
Cuadrpedo
x Alimento
Herbvoro
Carnvoro
155
156
26
Principio de Sustitucin
Polimorfismo
El trmino polimorfismo se refiere a que una
caracterstica de una clase puede tomar
varias formas
Polimorfismo
158
Polimorfismo
Zoo
Animal
1
*
Zoo
Dormir()
{
}
Animal
?
*
dormir
Len
Oso
Tigre
?
Len
Oso
Tigre
Dormir()
{
sobre el vientre
}
Dormir()
{
sobrela espalda
}
Dormir()
{
en un rbol
}
159
Polimorfismo
160
Comentarios
Los Diagramas de Clases v/s los modelos de
datos (Diagramas Entidad -Relacin)
161
162
27
Diagramas de Estados
Los Diagramas de Estados representan
autmatas de estados finitos, desde el p.d.v.
de los estados y las transiciones
Son tiles slo para los objetos con un
comportamiento significativo
El resto de objetos se puede considerar que
tienen un nico estado
El formalismo utilizado proviene de los
Statecharts (Harel)
Diagramas de Estados
163
Diagramas de Estados
Diagramas de Estados
164
165
Diagramas de Estados
Diagramas de Estados
contratar
en el paro
166
en activo
perder empleo
1: una pregunta
jubilarse
un
objeto
jubilarse
otro
objeto
2: la respuesta
jubilado
167
168
28
Diagramas de Estados
Diagramas de Estados
Evento[ condicin ]
plantear pregunta
espera respuesta
recibir respuesta
169
Acciones
Acciones
170
b
171
Acciones
172
.. Acciones
estado A
estado A
173
174
29
Actividades
Actividades
Cuando una actividad finaliza se produce una
transicin automtica de salida del estado
a
do: actividad
[ not condicin ]
[ condicin ]
175
Generalizacin de Estados
176
Generalizacin de Estados
Ejemplo:
e1
e2
e2
c
177
Generalizacin de Estados
Generalizacin de Estados
Quedara como:
178
e1
b
e2
e0
e2
c
c
179
180
30
Generalizacin de Estados
Generalizacin de Estados
e1
a
e0
c
e2
e0
181
Generalizacin de Estados
182
Generalizacin de Estados
Ejemplo:
e1
e1
183
Historial
184
Historial
Ejemplo:
a
d2
in
h
out
d1
H
185
186
31
Historial
Historial
Ejemplo:
Enjuague
Lavado
Secado
a
d2
H
in
h
Cerrar
Abrir Puerta
out
Cerrar
Abrir Puerta
d1
H*
Espera
187
188
Destruccin de Objeto
Ejemplo:
crash
En vuelo
despegar
Crear(matricula)
aterrizar
En tierra
189
Transiciones temporizadas
190
Transiciones temporizadas
Ejemplo:
Si en 30 segundos no se
introduce el dinero se
termina la actividad
pasando a anular la
transaccin. En
cualquier caso se cierra
la ranura.
/ Abrir ranura
esperar dinero
entry: Mostrar mensaje
do: Esperar 30 segundos
exit: cerrar ranura
anular transaccin
Depsito efectuado
b
191
192
32
Transiciones temporizadas
Ejemplo v.2:
Diagrama de Actividades
/ Abrir ranura
esperar dinero
entry: Mostrar mensaje
exit: cerrar ranura
Temporizador
(30 segundos)
anular transaccin
Depsito efectuado
b
193
...Diagrama de Actividades
194
Ejemplos
Buscar Bebida
[hay caf
[no zumo]
[hay zumo]
Coger zumo
Encender mquina
^cafetera.On
Caf en preparacin
indicador de fin
Servir caf
Beber
195
196
Solicitar pasaje
Vendedor
Airline
Verificar
existencia vuelo
Modelado de Componentes
Pagar pasaje
Emitir billete
197
198
33
Diagrama de Componentes
...Diagramas de Componentes
199
Diagramas de Componentes
Diagramas de Componentes
Cuerpo
200
Genrico
Package
body
Generic
package
201
202
Subsistemas
Los distintos componentes pueden agruparse en
paquetes segn un criterio lgico y con vistas a
simplificar la implementacin
Son paquetes estereotipados en <<subsistemas>>
<<subsistema>>
NewPackage4
203
204
34
Subsistemas
Modelado de Distribucin
205
Diagramas de Distribucin
206
Diagramas de Distribucin
Dispositivos
Procesadores
Memoria
Nodo
207
208
Diagramas de Distribucin
Ejemplo de conexin entre nodos:
<<Procesador>
Nodo
<<<<TCP/IP>>>>
conexin1
Proceso de Desarrollo
de SW con UML
<<dispositivo>>
nodo2
conexin7
<<RDSI>>
dispositiv
o
209
210
35
Hacia un Mtodo OO
Hacia un Mtodo OO
Reproducible
Definido
Medible en cuanto a rendimiento
Optimizable
...
211
Hacia un Mtodo OO
Requisitos
Anlisis
Diseo
Hacia un Mtodo OO
Implement.
Pruebas
Vista de
Realizacin
Vista Lgica
Vista de los
Casos de Uso
Vista de
Distribucin
Vista de
Procesos
Capturar, clarificar y
validar los casos de uso
212
Verificar se
satisfacen los casos
de uso
213
214
Anlisis
Diseo
Codific.
n veces
215
Pruebas e
Integracin
216
36
218
Reparto de Actividades
Actividades
Construc tion
Tr ansition
Una iteracin en la
fase de elaboracin
Anlisis
Diseo
Implementacin
Pruebas
P r eli m in ary
I te ratio n (s)
iter.
#1
iter.
#2
iter.
#n
iter.
#n +1
ite r.
#n + 2
i te r.
#m
iter.
#m + 1
220
Elabora tion
Requisitos
219
Fases
Ince ption
Elaboracin
Estudio de oportunidad
Elaboracin
Construccin
Transicin
221
222
37
Construccin
El producto se desarrolla a travs de iteraciones
donde cada iteracin involucra tareas de anlisis,
diseo e implementacin
Las fases de estudio y anlisis slo dieron una
arquitectura bsica que es aqu refinada de manera
incremental conforme se construye (se permiten
cambios en la estructura)
Gran parte del trabajo es programacin y pruebas
Se documenta tanto el sistema construido como el
manejo del mismo
Esta fase proporciona un producto construido junto
con la documentacin
Transicin
223
Ela boration
C onstr uction
224
Tra nsition
Ela boration
C onstr uction
Tra nsition
15%
Requisitos
Requisitos
Una iteracin en la
fase de elaboracin
Una iteracin en la
fase de elaboracin
Anlisis
10%
Anlisis
Diseo
15%
Diseo
30%
Implementacin
15%
Pruebas
P re lim i na ry
Iter atio n(s)
i ter.
#1
i te r.
#2
i te r.
#n
i te r.
# n+ 1
iter.
#n +2
iter.
#m
Implementacin
Pruebas
P re lim i na ry
Iter atio n(s)
ite r.
# m +1
225
Esfuerzo:
Duracin:
5%
10%
i ter.
#1
i te r.
#2
i te r.
#n
20%
30%
i te r.
# n+ 1
65%
50%
iter.
#n +2
iter.
#m
ite r.
# m +1
10%
10%
226
Claves en el Desarrollo de SI
Notacin
UML
Conclusiones
Herramientas
p.e. Rational Rose
227
Proceso
p.e. Proceso Unificado
228
38
Contexto de Desarrollo :
Grado de Complejidad
Sencillez y Elegancia
229
... Finalmente
Bibliografa Recomendada
UML
Otras
231
www.omg.org/ uml/
Martin Fowler , UML Destilled (UML Gota a Gota)
Terry Quatrani , Visual Modeling ..., un caso de estudio
Herramientas CASE
230
39