Académique Documents
Professionnel Documents
Culture Documents
Clase 6
UML
UML
www.dsic.upv.es/~uml
Patricio Letelier Torres UPV (politcnica de
Valencia)
UML Gota a Gota (Fowler)
UML (Booch, Rumbaugh, Jacobson)
Instant UML (Muller)
Webs
www.omg.org/uml
Ejemplos Modelado
Construccin de una Proceso bien
definido
cucha para un perro
Herramientas ms
Puede hacerlo sofisticadas
una sola persona Construccin de un
Requiere: rascacielos
Modelado mnimo
Proceso simple Contexto de
Herramientas desarrollo
simples Determinar
Construccin de una configuracin del
casa proceso
Recursos
Construida
necesarios
eficientemente y
Herramientas ms
en un tiempo
sofisticadas an.
razonable de un
UNPSJB - 2005
equipoIngeniera de Software - Clase 6 4
www.dsic.upv.es/~uml
Claves en Desarrollo de SI
Notacin
Herramientas Proceso
Orden
Item
envo
Proceso de Negocios
Sistema Computacional
Rumbaugh
Booch Jacobson
Odell
Meyer
Pre- and Post-conditions
Shlaer-Mellor UML
Object life cycles
Harel
State Charts
Gamma et. al.
Frameworks, patterns,
notes
Embly Wirfs-Brock
Singleton classes Responsabilities
Fusion
Operation descriptions,
message numbering
UNPSJB - 2005 Ingeniera de Software - Clase 6 11
Aspectos Novedosos www.dsic.upv.es/~uml
Scenario State
Scenario State
Diagramas de
Diagrams Diagramas de
Diagrams
Diagrams Diagrams
Colaboracin Modelo Componentes
Scenario Component
Scenario Component
Diagramas
Diagrams de
Diagramas de
Diagrams Diagrams
Diagrams Distribucin
Estados Diagramas de
Actividad
UNPSJB - 2005 Ingeniera de Software - Clase 6 18
Organizacin de Modelos www.dsic.upv.es/~uml
Vista de
Vista Lgica Realizacin
Vista de los
Casos de Uso
Vista de Vista de
Procesos Distribucin
Nombre de
paquete
para captura de
requisitos Tipos de Venta
[Tarjeta Caducada]
<<extend>>
Venta en Rebajas
Vendedor
<<include>>
Reintegro Cuenta Corriente
<<include>>
prestar(video, socio)
verificar situacin socio
registrar prstamo
entregar recibo
:Socio
:Video
5: entregar recibo
: Encargado 4: registrar prstamo
:Prstamo
dirige director
Departamento Profesor
0..1 1
empleador trabajadores
Empresa Empleado
* 1..*
Cargo
superior
nombre
sueldo 0..1
subordinado 1..*
Trabajador
{ disjunta, completa }
1..4 1..2 1
1 n
n
1 n 1 n
Avin Vuelo Reserva
n
{ disjunta, completa }
{ disjunta, completa }
alta baja
nmero_prstamos = 0
sin prstamos
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
Encender mquina
/ cafetera.On
Caf en preparacin
indicador de fin
Servir caf
Beber
Solicitar pasaje
Verificar
existencia vuelo
Informar alternativas
y precios
Seleccionar vuelo
Confirmar
Pagar pasaje plaza reservada
Emitir billete
Control y Anlisis
Interf az de Terminal
Comment
Comment
Acceso a BD Comment
Comment
Rutinas de Coneccion
Comment
T erminal de Consulta
Interfaz de Terminal
Rutinas de Coneccion
Comment Comment
Punto de Venta
Rutinas de Coneccion
Comment
Comment Comment
Paradigma OO
Diagramas
Conceptos comunes
Proximidad de los conceptos de modelado durante
de modelado respecto de las el anlisis, diseo e
entidades del mundo real implementacin
Mejora captura y validacin Facilita la transicin
de requisitos
entre distintas fases
Acerca el espacio del
problema y el espacio de la Favorece el desarrollo
solucin iterativo del sistema
Modelado integrado de Disipa la barrera
propiedades estticas y entre el qu y el
dinmicas del mbito del cmo
problema Sin embargo, existen
Facilita construccin, problemas ...
mantenimiento y reutilizacin
DFDs DEs
Enfoque Entornos de
Estructurado E-R Programacin
Modelo Visual
Diagramas de Casos de Uso Relacional
Diagramas de Actividad
Diagramas de Secuencia
Diagramas de Colaboracin d Modelo
Relacional !! Bases de Datos
(Objeto-)
Enfoque OO Diagrama de Clases
Relacionales
Diagrama de Estados
Diagramas de Actividad
particionan el conjunto
de necesidades
atendiendo a la Caso de Uso B
categora de usuarios Actor B
que participan en el
mismo
Estn basado en el
lenguaje natural, es
decir, es accesible por
los usuarios
UNPSJB - 2005 Ingeniera de Software - Clase 6 48
Casos de Uso www.dsic.upv.es/~uml
Actores:
Principales: personas que usan el sistema
Secundarios: personas que mantienen o
administran el sistema
Material externo: dispositivos materiales
imprescindibles que forman parte del mbito de la
aplicacin y deben ser utilizados
Otros sistemas: sistemas con los que el sistema
interacta
La misma persona fsica puede interpretar varios
papeles como actores distintos
El nombre del actor describe el papel
desempeado
<<include>>
<<include>>
reemplaz al
Caso de Uso
Actor
denominado
<<uses>>
UNPSJB - 2005 Ingeniera de Software - Clase 6 51
Casos de Uso: Relaciones
www.dsic.upv.es/~uml
Ejemplo:
Identificacin
<<include>>
Transferencia
Cliente
<<extend>>
Transferencia en Internet
Ejemplo:
El Diagrama de Secuencia es ms
adecuados para observar la perspectiva
cronolgica de las interacciones
El Diagrama de Colaboracin ofrece una
mejor visin espacial mostrando los
enlaces de comunicacin entre objetos
El D. de Colaboracin puede obtenerse
automticamente a partir del
correspondiente D. de Secuencia (o
viceversa)
Un mensaje Un mensaje se
desencadena una
accin en el objeto enva de manera
destinatario condicionada:
Un mensaje se enva
si han sido enviados
los mensajes de una [x>y] 1: Mensaje
lista (sincronizacin): B
A
Otros ejemplos:
lista
pila
primero
ultimo apilar
aadir desapilar
quitar cardinalidad
cardinalidad
Ejemplo:
Reglas de visibilidad
+ "Operacin pblica"
# "Operacin protegida"
- "Operacin privada"
Universidad Estudiante
Una asociacin
Ejemplo:
marido
casado-con 0.. 1
0.. 1 trabaja-para * Compaa
mujer Persona *
nombre emplea-a
jefe nombre
0.. 1 s. s. direccin
Administra * empleado
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)
La multiplicidad mnima >= 1 establece
una restriccin de existencia
* 0..1
Aerolnea nro_billete Viajero
Tablero fila 1 1
columna
Cuadro
Ajedrez
1 contiene
Agregacin Polgono 3.. *
Punto
{ordenado}
* * Persona
Cuenta Asociacin excluyente
or
*
Empresa
1
* est-autorizado-en *
Usuario Estacin
Autorizacin
prioridad
Clase de asociacin privilegios
camb_privil
UNPSJB - 2005 Ingeniera de Software - Clase 6 86
Clases y Objetos www.dsic.upv.es/~uml
La Generalizacin y
Nombres usados: clase Especializacin son
padre - clase hija. Otros equivalentes en
nombres: superclase - cuanto al resultado: la
subclase, clase base - jerarqua y herencia
clase derivada establecidas
Las subclases heredan Generalizacin y
propiedades de sus clases Especializacin no son
padre, es decir, atributos operaciones reflexivas
y operaciones (y ni simtricas pero s
asociaciones) de la clase transitivas
padre estn disponibles
en sus clases hijas
Vehculo
Coche
Restricciones predefinidas
Funcionando Estropeadoen UML:
disjunta - no disjunta
total (completa) - parcial (incompleta)
Particionamiento del
La nocin de clase est espacio de objetos =>
prxima a la de conjunto Clasificacin Esttica
Dada una clase, podemos Particionamiento del
ver el conjunto relativo a espacio de estados de
las instancias que posee o los objetos =>
bien relativo a las Clasificacin Dinmica
propiedades de la clase En ambos casos se
Generalizacin y recomienda considerar
especializacin expresan generalizaciones/espe
relaciones de inclusin cializaciones disjuntas
entre conjuntos
Un ejemplo de Clasificacin
Esttica:
Vehculo Areo
{ esttica }
Avin Helicptero
Un ejemplo de Clasificacin
Dinmica:
Coche
{ dinmica }
Funcionando Estropeado
int(A) int(B)
ext(B) ext(A)
B
Clasificacin Esttica
C0
C1 Cn
Clasificacin Dinmica
C0
ext(C0) = ext(Ci) completa
extt(Ci) extt(Cj) = disjunta en t
{ dinmica }
extt1(Ci) extt2(Cj) posiblemente
no disjunta en
C1 Cn diferentes
instantes
uso
Vehculo Areo
estructura
Avin Helicptero
UNPSJB - 2005 Ingeniera de Software - Clase 6 98
www.dsic.upv.es/~uml
Clasificacin Mltiple (herencia mltiple)
cubertura comida
Animal
Con Plumas cobertura
comida
cobertura Carnvoro
Con Escamas
Conejo
?
Len Oso Tigre
Animal Dormir()
{
dormir()
}
Estados y Transiciones
A B
perder empleo
jubilarse
jubilarse
jubilado
estado A
entry: accin por entrar
exit: accin por salir
do: accin mientras en estado
on evento: accin
Ejemplo:
e1
A B
e2
e2
Quedara como:
e1
Aa b
B
e2
C
UNPSJB - 2005 Ingeniera de Software - Clase 6 116
Generalizacin de Estados
www.dsic.upv.es/~uml
e1
Aa Bb
e2
e0
e1
Aa b
B
e2 C
e0
La agregacin de estados es la
composicin de un estado a partir
de varios estados independientes
La composicin es concurrente por
lo que el objeto estar en alguno de
los estados de cada uno de los
subestados concurrentes
Ejemplo:
e1
e1
Ejemplo:
Ejemplo:
A
d2
B
in
D x y
out
d1
C
H*
UNPSJB - 2005 Ingeniera de Software - Clase 6 123
Historia www.dsic.upv.es/~uml
Ejemplo:
Espera
La destruccin de un objeto es
efectiva cuando el flujo de control
del autmata alcanza un estado
final no anidado
La llegada a un estado final anidado
implica la subida al superestado
asociado, no el fin del objeto
Ejemplo:
crash
En vuelo
despegar aterrizar
Crear(matricula)
En tierra
Ejemplo: A
/ Abrir ranura
Depsito efectuado
B
UNPSJB - 2005 Ingeniera de Software - Clase 6 128
Diagrama de Actividad www.dsic.upv.es/~uml
Ejemplo:
Nodo
<<RDSI>>
<<RDSI>>
Podemos distinguir tipos Control
de nodos y connexiones
por estereotipado
Enfoque Ericsson
UNPSJB - 2005 Ingeniera de Software - Clase 6 142
www.dsic.upv.es/~uml
Dos dimensiones
tiempo
Workflows (Disciplinas)
Workflows Primarios
Business Modeling (Modado del Negocio)
Requirements (Requisitos)
Analysis & Design (Anlisis y Diseo)
Implementation (Implementacin)
Test (Pruebas)
Deployment (Despliegue)
Workflows de Apoyo
Environment (Entorno)
Project Management (Gestin del Proyecto)
Workers Artefactos
UNPSJB - 2005 Ingeniera de Software - Clase 6 Actividades 146
... Elementos en RUP www.dsic.upv.es/~uml
Artefactos Conjuntos de
Resultado parcial o Artefactos
final que es producido Business Modeling
y usado durante el Set
proyecto. Son las Requirements Set
entradas y salidas de Analysis & Design Set
las actividades
Implementation Set
Un artefacto puede Test Set
ser un documento, un Deployment Set
modelo o un elemento
Project Management
de modelo Set
Configuration & Change
Management Set
Environment Set
Capturar, definir y
Requisitos
validar los casos de uso
Verificar que se
Pruebas satisfacen los casos
de uso
trace trace
trace
trace
Pruebas
Unitarias
Pruebas Funcionales X
Caso de Prueba
[The Unified Software Development Process. I. Jacobson, G. Booch and J. Rumbaugh. Addison-Wesley, 1999]
UNPSJB - 2005 Ingeniera de Software - Clase 6 153
..Proceso dirigido por los casos de Uso
www.dsic.upv.es/~uml
Anlisis
Diseo
Codific.
n veces Pruebas e
Integracin
UNPSJB - 2005 Ingeniera de Software - Clase 6 156
www.dsic.upv.es/~uml
... Proceso Iterativo e Incremental
Cada iteracin comprende:
Planificar la iteracin (estudio de riesgos)
Anlisis de los Casos de Uso y escenarios
Diseo de opciones arquitectnicas
Codificacin y pruebas. La integracin del nuevo
cdigo con el existente de iteraciones anteriores
se hace gradualmente durante la construccin
Evaluacin de la entrega ejecutable (evaluacin
del prototipo en funcin de las pruebas y de los
criterios definidos)
Preparacin de la entrega (documentacin e
instalacin del prototipo)
Enfoque
Cascada
Enfoque
Iterativo e
Incremental
Architecture
UNPSJB - 2005 Ingeniera de Software - Clase 6 160
Fases del Ciclo de Vida www.dsic.upv.es/~uml
15%
Requisitos
Una iteracin en la
fase de elaboracin
Anlisis
10%
Diseo 15%
Implementacin
30%
Pruebas 15%
P re lim ina ry ite r. ite r. ite r. ite r. ite r. ite r. ite r.
Ite ra tion (s) #1 #2 #n # n+ 1 # n+2 #m #m +1
Requisitos
Una iteracin en la
fase de elaboracin
Anlisis
Diseo
Implementacin
Pruebas
Otro
Objeto
Banco de Valencia
Felipe
Cuenta Corriente 114
Azul
979 Kg
70 CV
...
Ejemplo de interaccin:
Otro objeto
Un mensaje
Operacion 2
Un objeto
Operacion 1
Comunicacin
Categoras de objetos:
Activos - Pasivos
Cliente Servidores, Agentes
Objeto Activo: posee un hilo de ejecucin
(thread) propio y puede iniciar una
actividad
Objeto Pasivo: no puede iniciar una
actividad pero puede enviar estmulos una
vez que se le solicita un servicio
Cliente es el objeto que solicita un servicio.
Servidor es el objeto que provee el servicio
solicitado
UNPSJB - 2005 Ingeniera de Software - Clase 6 180
Comunicacin www.dsic.upv.es/~uml
Servidor 2
Un cliente
Objeto 1
: Mensaje A
Objeto 2
: Mensaje C : Mensaje E
Objeto 3 Objeto 4
: Mensaje D
UNPSJB - 2005 Ingeniera de Software - Clase 6 184
Mensaje y Estmulo www.dsic.upv.es/~uml