2:
UML (Lenguaje de
Modelamiento
Unificado)
Diagramas de UML
Use Case
Use Case
Diagramas de
Diagrams
Diagrams
Secuencia
Use Case
Use Case
Diagramas de
Diagrams
Diagrams
Casos de Uso
Scenario
Scenario
Diagramas de
Diagrams
Diagrams
Colaboracin
Scenario
Scenario
Diagramas de
Diagrams
Diagrams
Estados
State
State
Diagramas de
Diagrams
Diagrams
Clases
Modelo
Diagramas de
Actividad
State
State
Diagramas de
Diagrams
Diagrams
Objetos
State
State
Diagramas de
Diagrams
Diagrams
Componentes
Component
Component
Diagrams
Diagramas
Diagrams de
Distribucin
Casos de Uso
Existen dos elementos primordiales cuando
se realiza la modelacin de C.U.
Casos de Uso
Ejemplo:
Sistema
Caso de uso X
Actor A
Actor B
Caso de uso Y
Casos de Uso
Un C.U representa un objetivo individual del
sistema y describe una secuencia de actividades
y de interacciones del usuario para alcanzar el
objetivo.
Un C.U por s solo no se considera como
requerimiento funcional, pero la historia (el
escenario) que relata el C.U consiste en uno o
ms requerimientos.
Inicialmente los CU se definen durante la etapa
de los requerimientos del ciclo de vida y se
refinarn adicionalmente a lo largo de ste
Estos
eventos
son
ejemplo
de
eventos
temporales, Quin sera el actor?, el actor de un
evento temporal es el tiempo.
Casos de Uso:
Relaciones
Una relacin: se ilustra como una lnea entre
dos smbolos en el diagrama de casos de uso.
El significado de las relaciones puede diferir
dependiendo de cmo se dibujen las lneas y
que tipo de smbolos conectan
Casos de Uso:
Relaciones
Asociaciones: Existe una relacin entre un
actor y un CU siempre que el caso describa
una interaccin entre stos.
Comunicacin:
Actor
Caso de Uso
Ejemplos
En el paquete tipos de venta:
Venta Normal
Cliente
Venta en Rebajas
Venta en Oferta
Vendedor
Casos de Uso:
Relaciones
Extensin: Un CU puede contener una funcionalidad
compleja que consiste de varios pasos que hacen difcil
entender la lgica del caso.
Casos de Uso:
Relaciones
Ejemplos
Realizar prstamo
Socio
Encargado
tarjeta caducada
<<extend>>
<<extends>>
Casos de Uso:
Relaciones
Casos de Uso:
Relaciones
Ejemplos
<<include>>
<<uses>>
Validar operacin
Cliente
<<uses>>
<<include>>
Casos de Uso:
Relaciones
Dependencia: Como administrador de proyecto o
desarrollador lder, es de mucha ayuda saber
cules CU tienen una dependencia sobre otros CU,
con objeto de determinar la secuencia en que es
necesario desarrollar los CU.
Ej Bancario: Hacer un retiro no puede ejecutarse
hasta que haya ocurrido el caso de uso Abrir una
Cta Bancaria. Debido a esto el equipo de desarrollo
probablemente escoger desarrollar el CU Abrir una
cuenta bancaria primero y en segundo lugar haga
un depsito y en tercer lugar haga un retiro.
Casos de Uso:
Relaciones
Un diagrama de CU que modele las
dependencias de CU del sistema mediante el
uso de relaciones de dependencia proporciona
un modelo que es una herramienta excelente
para
propsitos
de
planeacin
y
de
programacin.
Esta relacin se representa con una lnea con
cabeza de flecha que comienza en un CU y
que apunta al CU del cual depende.
<<depende de>>
Casos de Uso:
Relaciones
Herencia: Cuando dos o ms actores
comparten un comportamiento comn (En
otras palabras, pueden iniciar el mismo caso
de uso), lo mejor es extrapolar este
comportamiento comn y asignarlo a un
nuevo actor resumen con objeto de reducir la
comunicacin redundante en el sistema.
Casos de Uso:
Relaciones
Casos de Uso:
Relaciones
Ejemplo:
Giro por Internet
Transferencia
por
Internet
<<extends>>
<<extend>>
<<includes>>
<<include>>
Identificacin
Cliente
Giro
Transferencia
Casos de Uso
El segundo elemento, narracin del caso de
uso, describe los detalles de cada evento.
Precondicin
Secuencia
Normal
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Importancia
Urgencia
Comentarios
Casos de Uso
Proceso de la modelacin de casos de
Usos para los requerimientos:
Caso
uso
de Programar Procedimiento.
Actores
Propsito
Tipo
Resumen
Referenci
a
cruzadas
Seccin Principal.
Accin de los actores.
Flujo
normal
de
eventos.
1.
3.
5..
6.
7.
2.
4.
9.
10
11
Flujos alternativos.
Lnea 3:
Lnea 7:
Lnea 8:
8.
Diagrama de Secuencia
Diagrama de Secuencia
Antes del diseo (cmo funcionar el
software) se debe investigar y definir su
comportamiento como caja negra
El comportamiento del sistema es una
descripcin de lo que hace,
sin explicar la manera en que lo hace
Parte de esa descripcin es un diagrama
de secuencia del sistema
Los diagramas de
secuencia
Es un artefacto creado de manera
rpida y fcil que muestra los eventos
de entrada y salida relacionados con el
sistema que se est estudiando.
UML incluye la notacin de los
diagramas
de
secuencia
para
representar los eventos que parten de
los actores externos hacia el sistema.
Diagrama de secuencia
El comportamiento del sistema es una
descripcin de qu hace el sistema, sin explicar
cmo lo hace.
Def: Es un dibujo que muestra para un
escenario especfico de un caso de uso, los
eventos que generan los actores externos, el
orden y los eventos entre los sistemas. Todos los
sistemas se tratan como cajas negras.
Los diagramas destacan los eventos que cruzan
los lmites del sistema desde los actores a los
sistemas.
Diagrama de secuencia
Asignacin de nombres a los
eventos:
Sesin 1
36
RunningExample DSS
Modificar
Capital
Curso
normal de
los
eventos
Sesin 1
37
Eventos y operaciones
Evento del sistema
Sesin 1
38
DSS
Diagrama que muestra
los eventos generados por actores externos,
su orden
y los eventos inter-sistemas
para un escenario particular de un CU
Todos los sistemas son tratados como cajas
negras
Foco en los eventos que cruzan la frontera
entre actores y sistemas
Sesin 1
39
DSS
Los casos de uso del sistema (escenarios y
eventos) son input para su creacin
El tiempo se describe (avanza) hacia abajo
El orden de los eventos debe seguir el mismo
orden del escenario que representan
Los eventos del sistema pueden incluir
parmetros
Usa diagrama de secuencia de UML
Sern input para
contratos de operacin
y diseo de objetos
Sesin 1
40
Sistema como
caja negra
Mensaje con
parmetros
Valor(es) de
retorno
asociado con el
mensaje previo
tiempo
Sesin 1
41
Elaborando un DSS
Para elaborar un DSS para un escenario, y:
Trace una lnea que represente el sistema como una
caja negra
Identifique los actores que operan directamente sobre
el sistema
Trace una lnea para cada uno de ellos.
A partir del escenario identifique los eventos
(externos) del sistema que son generados por los
actores
Mustrelos grficamente en el diagrama.
A la izquierda del diagrama puede incluir o no el texto
del caso de uso.
Sesin 1
42
Modificar Capital
Curso normal de los eventos
Accin del actor
43
Elaborando un DSS
Consideramos ahora el caso de uso Modificar
Capital a fin de identificar los eventos del
sistema
Sesin 1
44
Elaborando un DSS
Los eventos de un sistema (y sus operaciones asociadas)
deben expresarse en el nivel de propsito
y no en el nivel del medio de entrada o de elementos de
la interfaz
Sesin 1
45
DSS
Guideline:
Haz un DSS para el escenario principal de cada
caso de uso, y para escenarios alternativos
frecuentes o complejos
Por qu son importantes?
Investigan y definen el comportamiento del
sistema como una caja negra
Describen qu es lo que sistema hace, sin
explicar cmo lo hace
Junto con CU y contratos de operacin del
sistema
Sesin 1
46
RunningExample DSS
Modificar
Capital
Curso
normal de
los
eventos
Sesin 1
47
Diagramas de Secuencia
: Socio
: Encargado
: Libro
: Ficha socio
Coger libro
Solicitar prstamo
Verificar situacin socio
Situacin socio ok
Verificar situacin libro
Situacin libro ok
Introducir prstamo
Autorizar prstamo
: Ficha libro
: Prstamo
Diagramas de
Secuencia
B
m1
m2
m3
m4
m5
Diagramas de
Secuencia
Ejemplo
Quien llama
Lnea telefnica
Llamado
descuelga
tono
marcar
Las bandas
rectangulares
representan los
periodos de
actividad de los
objetos
indicacin de llamada
timbre
descuelga
diga?
Diagramas de
Secuencia
Un objeto puede enviarse a s mismo
un mensaje:
a
mensaje reflexivo
Diagramas de
Secuencia
El retorno se
considera implcito
cuando el envo es
sncrono
Diagrama de Secuencia
En el caso asncrono el retorno, si
existe, se debe representar:
a : aa
b : aa
Tipos de Control
El Diagrama de Secuencia refleja de
manera indirecta las opciones de
control
Tipos de control
Un control descentralizado tiene una
forma como esta:
Estructuras de control
Podemos representar iteraciones en
el envo de mensajes, p.e., mientras
se cumpla una condicin:
While X
Loop
end Loop
Estructuras de control
La iteracin puede expresarse
tambin como parte del mensaje:
*[condicin] Mensaje
Estructuras de control
Las bifurcaciones condicionales
pueden representarse de esta forma:
If condicin
else
end if
Diagrama de Colaboracin
Mensaje
Mensaje entre objetos que es representado por
una expresin de mensaje y una pequea
flecha indicando la direccin del mensaje
Muchos mensajes pueden navegar a travs de
cada link
Un n de secuencia es agregado para mostrar
el orden secuencial de los mensaje en el flujo
de control actual
Puede haber automensajes tambin
this
Sesin 1
60
Creacin de instancias
Cualquier mensaje puede ser usado para crear
instancias
La convencin es llamar a estos mtodos create, o
usar un estereotipo de tipo <<create>>
Puede incluir argumentos
Sesin 1
61
Link
Camino de conexin entre dos objetos
Indica que alguna forma de navegacin o
visibilidad entre los objetos es posible
Es una instancia de asociacin
A lo largo de estos links pueden navegar los
mensajes
Puede haber mltiples mensajes en ambas
direcciones en un mismo link (carretera de
doble va)
Sesin 1
62
Sesin 1
63
Mensajes condicionales
Siguiendo al nmero de secuencia se
incluye una clusula condicional en
parntesis cuadrados
El mensaje es enviado slo si la
condicin es cierta
Sesin 1
64
Caminos condicionales
exclusivos
Expresiones de secuencia se
modifican con una letra de camino
condicional
Sesin 1
65
Loops
Expresiones que describen un ciclo se
identifican con un asterisco y una
expresin condicional
Sesin 1
66
Sesin 1
67
Sesin 1
68
Mensajes polimrficos
Mensajes a clases abstractas
Sesin 1
69
www.dsic.upv.es/~uml
Problemas tpicos
Problemas tpicos de su uso:
Sesin 1
71
DSS
UML no define nada que se llame
diagrama de secuencia del
sistema, sino que simplemente
diagrama de secuencia
El apellido sealado corresponde a
un uso especfico del diagrama de
secuencia, en que precisamente el
sistema es visto como caja negra.
Sesin 1
72
Comparacin
Uno elige cul quiere usar
Diagrama de secuencia
Sesin 1
73
Comparacin
Diagrama de comunicacin
Sesin 1
74
Diagrama de
comunicacin
1: Coger libro
: Socio
: Libro
2: Solicitar prstamo
3: Verificar situacin socio
8: Autorizar prstamo
6: Situacin libro ok
: Ficha s
ocio
4: Situacin socio ok
: Encargado
7: Introducir prstamo
: Prsta
mo
Sesin 1
75
Running Example
Desarrolle un diagrama de
comunicacin que represente lo
mismo que este diagrama de
secuencia
Sesin 1
76
Referencias
[LARMAN]
Larman, Craig.
Applying UML and Patterns. An Introduction to
Object Oriented Analysis and Design.
Prentice Hall, 1998.
[OO Head First]
Brett D. McLaughlin, Gary Pollice, Dave West.
Head First Object-Oriented Analysis and
Design: A Brain Friendly Guide to OOA&D.
O'Reilly Media, Inc., 2006.
Sesin 1
77
1: Coger libro
: Socio
: Libro
2: Solicitar prstamo
3: Verificar situacin socio
8: Autorizar prstamo
6: Situacin libro ok
4: Situacin socio ok
: Encargado
7: Introducir prstamo
: Ficha s
ocio
: Prsta
mo
Mensajes
Un mensaje desencadena una accin
en el objeto destinatario
Mensajes
Un mensaje se enva iterada y
secuencialmente a un conjunto de
instancias:
1 *[i:=1..n] : Mensaje
B
A
Mensajes
Un mensaje se enva iterada y
concurrentemente a un conjunto de
instancias:
1 *| | [i:=1..n] : Mensaje
B
A
Mensajes
Un mensaje se enva de manera
condicionada:
[x>y] 1: Mensaje
B
A
Mensajes
Un mensaje que devuelve un
resultado:
1: distancia:= mover(x,y)
B
A
Diagrama de Clases
Temario
El Modelo de Dominio
Posibles Elementos del Dominio
Buscando elementos del Dominio en el ejemplo
Una primera representacin grfica: usando
una herramienta UML
Revisando nuestro mono: Conceptos y
Atributos
Revisando nuestro mono: Conceptos en
Asociacin
2da Iteracin: profundizando relaciones
Corrijamos nuestro mono inicial
Sesin 1
85
El Modelo de Dominio
Ya conocemos una forma bsica de representar
y especificar requerimientos
Sesin 1
86
El Modelo de Dominio
Entonces ya llegamos a las Clases y los
Objetos?
Sesin 1
87
Sesin 1
88
Cliente
Sesin 1
compra Auto
89
Formato de la relacin
Sesin 1
91
Persona
Sociedad
es socio de
Sesin 1
92
Ahora 2da
que identificamos
los profundizando
conceptos, estudiemos
Iteracin:
mejor sus relaciones
relaciones
tiene
Sociedad
1
+participacionCapital
+participacionUtilidad
Ejemplos de
Cardinalidades:
0..1
1..1
0..* 1..8 (nmero mximo
1..* especfico)
*
Sesin 1
93
Podemos
enriquecer
nuestro
modelo
2da
Iteracin:
profundizando
agregando otros tipos de relaciones:
relaciones
Sesin 1
94
ES-UN
Conceptos comparten las mismas relaciones
(y comportamiento)
Nos lleva a relaciones de herencia
Sesin 1
+contactos
1
*+contacto
+grupos
GrupoContactos
1
+grupo
Sesin 1
96
Algunas Reflexiones
Cmo asegurarme que he modelado todo lo que
corresponde?
Sesin 1
97
Referencias
[LARMAN]
Sesin 1
98
motocicleta
color
cilindrada
velocidad maxima
nombre de la clase
atributos de la clase
arrancar
acelerar
operaciones de la clase
frenar
Asociacin
La asociacin expresa una conexin
bidireccional entre objetos
Una asociacin es una abstraccin de
la relacin existente en los enlaces
entre los objetos
Univ. de Murcia:Universidad
Un enlace
Universidad
Antonio:Estudiante
Estudiante
Una asociacin
Asociacin
Ejemplo:
marido
casado-con
Administra
0.. 1
mujer
jefe
0.. 1
0.. 1
Persona *
nombre
s. s.
empleado
trabaja-para
emplea-a
* Compaa
nombre
direccin
Asociacin Cualificada
Aerolnea
Tablero
Ajedrez
nro_billete
0..1
1
fila
columna
Viajero
Cuadro
Agregacin:
Caracterizacin
Objeto
Componente
Multiplicidad Mnima
0
flexible
> 0 estricta
Multiplicidad Mxima
1
disjunto
> 1 no disjunto
Ejemplos
coche
Persona
1
0..2
+Padre
1
motor
+Hijos
Ejemplos
Agregacin
Cuenta
1 contiene
Polgono
3.. *
{ordenado}
Persona
or
1
Punto
Asociacin excluyente
Empresa
Usuario
Clase de asociacin
est-autorizado-en
Autorizacin
prioridad
privilegios
camb_privil
Estacin
... Jerarquas de
Generalizacin/Especializa
Abstracciones ms generales.
cin
vehiculo
vehiculo terrestre
camion
coche
vehiculo areo
avion
helicoptero
... Jerarquas de
Generalizacin/Especializa
cin
La especializacin es una tcnica
muy eficaz para la extensin y
reutilizacin coche
funcionando
estropeado
... Jerarquas de
Generalizacin/Especializa
cin
Un ejemplo de Especializacin
Esttica:
vehiculo areo
avion
helicoptero
... Jerarquas de
Generalizacin/Especializa
cin
Un ejemplo de Especializacin
Dinmica:
coche
funcionando
estropeado
... Jerarquas de
Generalizacin/Especializa
cin
Ejemplo: varias especializaciones a
partir de la misma superclase:
comercial
vehiculo areo
militar
avion
helicoptero
... Jerarquas de
Generalizacin/Especializa
cin
Ejemplo: especializaciones
dinmicas de la misma superclase:
de menos de 1000kms
coche
de ms de 1000 kms
funcionando
estropeado
... Jerarquas de
Generalizacin/Especializa
Un ejemplo combinado:
cin
vehiculo
comercial
vehiculo terrestre
vehiculo areo
esttica
esttica
camion
esttica
avion
de menos de 1000kms
militar
helicoptero
coche
dinmica
de ms de 1000 kms
dinmica
funcionando
estropeado
... Jerarquas de
Generalizacin/Especializa
cin
El siguiente es un ejemplo de
clasificacin no equilibrada:
vehiculo terrestre
camion
coche
Harley Davidson
... Jerarquas de
Generalizacin/Especializa
cin
Por regla general, es mejor limitar el
... Jerarquas de
Generalizacin/Especializa
cin
Ejemplo:
mariposa
oruga
mariposa
crislida
Aspecto
Lepidptero
estadio
1
oruga
crislida
Lepidptero
Diagrama de Estados
Diagramas de Estados
alta
sin prstamos
Socio Biblioteca
Nmero : int
Nombre : char[50]
Nmero prstamos : int = 0
Alta()
Baja()
Prestar(CdigoLibro : int, Fecha : date)
Devolver(CdigoLibro : int, Fecha : date)
baja
prestar
nmero_prstamos = 0
devolver[ nmero_prstamos = 1 ]
nmero_prstamos > 0
con prstamos
prestar
Diagramas de Estados
Ejemplo de un Diagrama de
Estados para la clase persona:
contratar
en el paro
en activo
perder empleo
jubilarse
jubilarse
jubilado
Diagramas de Estados
La comunicacin bidireccional
puede representarse mediante
comunicacin asncrona. Por
ejemplo en un Diagrama de
1: una pregunta
Colaboracin:
un
objeto
otro
objeto
2: la respuesta
Diagramas de Estados
Si la comunicacin es sncrona el
cliente debe esperar la respuesta.
Con lo cual en el cliente
a
tendramos:
plantear pregunta
espera respuesta
recibir respuesta
Diagramas de Estados
Las guardas permiten condicionar
la transicin:
a
Evento[ condicin ]
Acciones
Podemos especificar la ejecucin
de una accin como consecuencia
de la transicin:
a
Acciones
Podemos especificar el envo de un
evento a otro objeto como
consecuencia de la transicin:
a
Acciones
Se puede especificar el hacer una
accin como consecuencia de
entrar, salir o estar en un estado:
estado A
entry: accin por entrar
exit: accin por salir
do: accin mientras en estado
.. Acciones
Se puede especificar el hacer una
accin cuando ocurre en dicho
estado un evento que no conlleva
salir del estado:
estado A
on evento_activador( arg1 )[ condicin ]: accin por evento
Actividades
Las actividades son similares a las
acciones pero tienen duracin y se
ejecutan dentro de un estado del objeto
Actividades
Cuando una actividad finaliza se
produce una transicin automtica
de salida del estado
a
do: actividad
[ condicin ]
[ not condicin ]
Generalizacin de Estados
Podemos reducir la complejidad de
Generalizacin de Estados
Ejemplo:
e1
e2
e2
c
Generalizacin de Estados
Quedara como:
a
e1
e2
Generalizacin de
Estados
Las transiciones de entrada deben
ir hacia subestados especficos:
e1
a
b
e2
e0
Generalizacin de
Estados
Es preferible tener estados
iniciales de entrada a un nivel de
manera que desde los niveles
superiores no se sepa a qu
subestado se entra:
e1
b
e2
c
e0
Generalizacin de
Estados
Ejemplo:
e1
e1
Historial
Por defecto, los autmatas no
tienen memoria
Historial
Ejemplo:
d2
in
h
out
d1
Historial
Tambin es posible la memorizacin
para cualquiera de los subestados
anidados (aparece un * junto a la H)
a
d2
h
in
x
out
y
d1
H*
Historial
Ejemplo:
Enjuague
Lavado
Cerrar
Abrir Puerta
Abrir Puerta
Cerrar
Espera
Secado
Destruccin de Objeto
Ejemplo:
En vuelo
despegar
Crear(matricula)
En tierra
crash
aterrizar
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
Depsito efectuado
b
anular transaccin
Transiciones
temporizadas
Ejemplo v.2:
/ Abrir ranura
esperar dinero
entry: Mostrar mensaje
exit: cerrar ranura
Temporizador
(30 segundos)
anular transaccin
Depsito efectuado
b
Diagrama de Actividades
Ejemplos
Buscar Bebida
[hay caf
Poner caf en filtro
[no zumo]
[hay zumo]
Encender mquina
^cafetera.On
Caf en preparacin
indicador de fin
Servir caf
Beber
Solicitar pasaje
Vendedor
Airline
Verificar
existencia vuelo
Dar detalles vuelo
Informar alternativas
y precios
Seleccionar vuelo
Pagar pasaje
Emitir billete
Diagrama de
Componentes
Diagramas de
Componentes
La representacin grfica es la
siguiente:
Especificacin
Package
specification
Cuerpo
Package
body
Genrico
Generic
package
Subsistemas
Los distintos componentes pueden
agruparse en paquetes segn un
criterio lgico y con vistas a simplificar
la implementacin
Diagrama de Distribucin
Diagramas de Distribucin
Servidor Central
Control y Anlisis
Comment
Acceso a BD
Comment
Rutinas de Coneccion
Comment
Terminal de Consulta
Rutinas de Coneccion
Comment
Punto de Venta
Rutinas de Coneccion
Comment
Gestin de Cuentas
Interfaz de Terminal
Comment
Comment
Interfaz de Terminal
Comment
Diagramas de
Distribucin
<<<<TCP/IP>>>>
conexin1
conexin7
<<RDSI>>
dispositiv
En Rational Rose podemos
o
distinguir entre el dispositivo
por estereotipado y el
dispositivo con su propio
smbolo
<<dispositivo>>
nodo2
Paquetes
Paquetes en UML
Los paquetes ofrecen un
mecanismo general para la
organizacin de los modelos
agrupando elementos de modelado