Professional Documents
Culture Documents
Departamento de Computacion
CINVESTAV-IPN
Pedro Mejia
Contenido
1.
2.
3.
4.
5.
Pedro Mejia
Diagramas de UML
Los diagramas expresan grficamente partes de un modelo
Use Case
Use Case
Diagramas de
Diagrams
Diagrams
Secuencia
Scenario
Scenario
Diagramas de
Diagrams
Diagrams
Colaboracin
Scenario
Scenario
Diagramas de
Diagrams
Diagrams
Estados
Pedro Mejia
Use Case
Use Case
Diagramas de
Diagrams
Diagrams
Casos de Uso
State
State
Diagramas de
Diagrams
Diagrams
Clases
State
State
Diagramas de
Diagrams
Diagrams
Componentes
Modelos
Diagramas de
Actividad
State
State
Diagramas de
Diagrams
Diagrams
Objetos
Component
Component
Diagrams
Diagramas
Diagrams de
Distribucin
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
El modelo de casos de uso debera aportar
informacin para establecer las clases, objetos,
4
atributos y operaciones
Pedro Mejia
Objetos
Pedro Mejia
Clases y Objetos
En UML, para distinguir
una clase y una instancia de
la clase (un objeto) se
representa por un rectngulo
con un nombre subrayado
Objeto = Identidad + Estado
+ Comportamiento
El estado est representado
por los valores de los
atributos los cuales tienen
una visibilidad.
Un atributo toma un valor
en un dominio concreto.
Pedro Mejia
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()
Clases y objetos
Pedro Mejia
color
cilindrada
velocidad mxima
arrancar()
acelerar()
frenar()
Clases: Encapsulacin
Pedro Mejia
Clases: Encapsulacin
Los niveles de encapsulacin estn heredados de los
niveles
de C++, y explican si estos son visibles desde el exterior
de
la clase:
(-) Privado : es el ms fuerte. Esta parte es
totalmente invisible (excepto para clases friends en
terminologa C++)
(#) Los atributos/operaciones protegidos estn
visibles para las clases friends y para las clases
derivadas de la original
(+) Los atributos/operaciones pblicos son visibles
a otras clases (cuando se trata de atributos se est
10
transgrediendo
el principio de encapsulacin)
Pedro Mejia
Curso de Ingeniera de Software, CINVESTAV-IPN
Clases: Encapsulacin
Ejemplo:
Reglas de visibilidad
+ Atributo pblico : Integer
# Atributo protegido : Integer
- Atributo privado : Integer
+ "Operacin pblica"()
# "Operacin protegida"()
- "Operacin privada"()
Pedro Mejia
11
Diagramas de Clases
Un diagrama de clases describe los tipos de objetos
en el sistema y los distintos tipos de relaciones
estticas que existen entre ellos. Existen cuatro
relaciones:
Asociacin
Generalizacin/especializacin
Agregacin/composicin
Dependencia
Pedro Mejia
12
Asociacin
Departamento
dirige
director
0..1
Empresa
Profesor
1
empleador
trabajadores
Empleado
1..*
Cargo
nombre
sueldo
subordinado
superior
0..1
1..*
13
Asociacin
Departamento
dirige
director
0..1
Profesor
1
14
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
Pedro Mejia
15
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)
Pedro Mejia
16
Generalizacin
Library item
Catalogue number
Acquisition date
Cost
Type
Status
Number ofcopies
Acquire ()
Catalogue ()
Dispose ()
Issue ()
Return ()
Published item
Title
Medium
Title
Publisher
Book
Author
Edition
Publication date
ISBN
Pedro Mejia
Recorded item
Magazine
Year
Issue
Film
Director
Date of release
Distributor
Computer
program
Version
Platform
17
Generalizacin
Pedro Mejia
18
... Generalizacin
Pedro Mejia
19
Proveedor
Cliente
Pedro Mejia
20
Agregacion de Objetos
En este modelo se muestra como
las clases pueden estar compuestas
por otras clases.
Existe la relacion de agregacion y
la de composicion.
Son similares a los modelos de
entidad-relacion.
Study pack
Course title
Number
Year
Instructor
Credits
Exercises
#Problems
Description
Pedro Mejia
OHP slides
Assignment
Slides
Lecture
notes
Text
Videotape
Tape ids.
Solutions
Text
Diagrams
21
Agregacion de Objetos
Estas son relaciones todo/parte.
La relacin de composicin
(representada con un diamante relleno)
es la forma ms fuerte de relacin
todo/parte que la relacin de agregacin
(mostrada por un diamante vaco).
El diamante toca la caja de clase de la
clase (todo) compuesta/agregada.
Pedro Mejia
22
Ejemplos
Window
scrollbar[2] : Slider
title : Header
body : Panel
Study pack
Course title
Number
Year
Instructor
Son parte de
Assignment
Credits
OHP slides
Slides
Lecture
notes
Text
Videotape
Window
Tape ids.
Esta compuesta de
Exercises
#Problems
Description
Pedro Mejia
Solutions
Text
Diagrams
scrollbar
Slider
title 1
Header
body 1
Panel
23
Retirar dinero
Cliente
Consultar Extracto
24
Casos de Uso
25
Casos de Uso
Ejemplo:
Retirar dinero
Consultar Extracto
Cliente
Realizar transferencia
Pedro Mejia
26
Casos de Uso
Actores:
Pedro Mejia
27
Casos de Uso
Pedro Mejia
28
Passajero
Comprarboleto
Un caso de uso representa un tipo
de funcionalidad del sistema
Pedro Mejia
29
Ejemplo: Actores
Pasajeros
Nombre
Pedro Mejia
opcional
30
Caso de uso
Compraboleto
Pedro Mejia
Nombre unico
Actores participantes
Condiciones de entrada
Condiciones de Salida
Flujo de eventos
Requisitos especiales
31
5. Flujo de eventos:
Pasajero
Compraboleto
Elpasajerosedirigeal
laventanilladeboletos
Elpasajerocuentacon
suficientedineropara
comprarelboleto
4. Condicion de salida:
ELpasajerocomproel
boleto
Pedro Mejia
6. Requerimientos especiales:
Especificar el tipo de
transporte: Tren o autobus.
32
Pedro Mejia
Comunicacin
Inclusion
Extension
Herencia
33
Pasajero
Comunicacin: permite
comunicar al actor con
su caso de uso.
Compramultiplesboletos
Compraunboleto
<<includes>>
<<includes>>
<<extends>>
Nocambio
Pedro Mejia
Recogeeldinero
<<extends>>
Cancela
<<extends>>
Cambiodemoneda
Curso de Ingeniera de Software, CINVESTAV-IPN
34
Casos de Uso:
Relaciones
Inclusin : una instancia del Caso de Uso
origen incluye tambin el comportamiento
descrito por el Caso de Uso destino.
La relacin <<include>> pretende evitar
duplicacin de interacciones en distintos casos
de uso
<<include>>
Pedro Mejia
35
Relacion <<includes>>
Larelacion<<includes>>
Pasajero
representa una funcionalidad
comun necesaria en mas de
un caso de uso
Compramultiplesboletos
Lafuncionalidadde
Compraunboleto
<<includes>> puede
reutilizarse
<<includes>>
La direcion de la relacion
<<includes>>
<<includes>> es hacia el caso
de uso (de forma distinta que
la relacion <<extends>>).
Recogeeldinero
<<extends>>
Nocambio
Pedro Mejia
<<extends>>
Cancela
<<extends>>
Cambiodemoneda
Curso de Ingeniera de Software, CINVESTAV-IPN
36
Casos de Uso:
Relaciones
Pedro Mejia
37
Relacion <<extends>>
Pasajero
Compraboleto
<<extends>>
<<extends>>
Larelacion<<extends>> modela
casos exceptional, o casos de uso
auto invocados
EL flujo de eventos excepcionales
pueden detallarse para claridad del
caso de uso
La direccion de la relacion
<<extends>> es hacia el caso de
uso
Los casos de uso representando
flujos excepcionales pueden
extender mas de un caso de uso.
<<extends>>
Fueradeservicio
<<extends>>
Cancela
Pedro Mejia
Nohaycambio
Curso de Ingeniera de Software, CINVESTAV-IPN
Tiempoagotado
38
Casos de Uso:
Relaciones
<<include>>
<<include>>
Arrange Payment
<<include>>
1
Salesperson
Pedro Mejia
<<extend>>
*
Place Order
Request Catalog
39
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
Pedro Mejia
40
Casos de Uso:
Construccin
Pedro Mejia
41
Casos de Uso:
Construccin
La descripcin del Caso de Uso comprende:
Pedro Mejia
42
Identificador
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>
Pedro Mejia
43
Diagrama de Secuencia
: Encargado
:WInPrstamos
:Socio
:Video
:Prstamo
prestar(video, socio)
verificar situacin socio
verificar situacin video
registrar prstamo
entregar recibo
Describe el
comportamiento
dinamico del los
objetos en el
sistema
Pedro Mejia
44
Diagrama de Secuencia
Actor
Mensajes
:WatchUser
Objeto
:Watch
pressButton1()
pressButton1()
pressButton2()
Lifeline
:LCDDisplay
:Time
blinkHours()
blinkMinutes()
return
incrementMinutes()
refresh()
pressButton1and2()
commitNewTime()
Activacion
Pedro Mejia
stopBlinking()
45
Diagrama de Secuencia
Pedro Mejia
46
Diagrama de Secuencia
Pedro Mejia
47
Diagrama de Secuencia
Maquinade
Boletos
Pasajero
seleccionadestino()
insertamonedas()
retiracambio()
Retiraboleto()
Pedro Mejia
Diagrama de secuencia
Maquinade
Boletos
Pasajero
seleccionadestino()
insertamonedas()
Lifeline
Activacion
retiracambio()
Retiraboleto()
Pedro Mejia
Mensaje:Flujo
de control
49
Lifeline y Especificacion de la
ejecucion
Pedro Mejia
50
Mensajes
Pedro Mejia
51
Tipos de mensajes
Asincronos
Sincronos
Llamada(Call) y creacion
de un objeto
Reply
Lost
Found
Asincrono
Pedro Mejia
52
Pedro Mejia
53
Tipos de flechas
Pedro Mejia
54
Flujo de Datos
Pasajero
Botondestinoo
TarifasS
Diespiliegue
Seleccionadestino()
lookupPrice(selection)
precio
Flujo de
Datos
Despliegaprecio(precio)
55
Iteracion y Condicion
Procesadorde
Identif.demonedas
Cambios
Pasajero
Diespliegue
Dispensa
Moneda
*insertacambio(moneda)checamoneda(moneda)
Iteracion
precio
displiegaprecio(precio)
Condicion
[Monto<0]returnCambio(cambio)
Pedro Mejia
56
Creacion y destruccion
Pasajero
Proc.deCambios
creaboletoT(seleccion)
BoletoT
print()
free()
57
Representa comportamiento en
terminos de interacciones
Util para identificar o encontrar objetos
Complemento al diagrama de flujo de
datos y al diagrama de clases.
Pedro Mejia
58
Diagrama de
Secuencia(ejemplo)
Pedro Mejia
59
Diagrama de
Secuencia(ejemplo)
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
Pedro Mejia
stop tone
stop ringing
----< 1 sec
-----
60
Diagrama de Colaboracin
:Socio
:Video
2: verificar situacin socio
1: prestar(video, socio)
5: entregar recibo
: Encargado
4: registrar prstamo
:Prstamo
61
Diagrama de Colaboracin
Muestran una vista dinamica del sistema.
El diagrama de secuencia muestra el ordenamiento en el tiempo de los
mensajes mientras que el diagrama de colaboracion expone la estructura
organizacional de los mensajes.
Los diagramas de colaboracion muestran el flujo de mensajes entre
objetos en un sistema, y tambien exponen las relaciones (asociaciones)
entre sus clases.
Los diagramas de colaboracion son tambien diagramas de interaccion.
Manejan la misma informacion que los diagramas de secuencia pero se
enfocan mas en los roles de los objetos que en los tiempos en que los
mensajes son enviados.
Pedro Mejia
62
Diagrama de Colaboracin
Pedro Mejia
63
Diagrama de Colaboracin
Pedro Mejia
64
65
Guardia.
condicion aplicada al mensaje
en brackets redondos al principio del mensaje.
Numeros secuenciales.
numeros separados por puntos, con terminacion en coma.
Valor de retorno
nombre seguido de :=
Nombre de la operacion
Lista de argumentos.
nombres separados por comas, dentro de brackets
redondeados.
Pedro Mejia
66
Tipos de Mensajes
Simple
Sincrono.
indica flujo de control anidado.
usado para asegurar que el estado no pueda ser
interrumpido por factores externos.
mostrado mediante una flecha llena.
Asincrono
muestra una seal de un objeto a otro.
se indica mediante una flecha a la mitad
Pedro Mejia
67
Diagrama de Colaboracin
1. Trazado del diagrama: a nivel de instancia y especificacion.
2. Mensajes.
3. Conectores (Links)
Pedro Mejia
68
Diagrama de Colaboracin
Diagramas a nivel de instancia: usuados para explorar las
caracteristicas del diseo de los objetos. Estos diagramas muestran
interacciones entre objetos (instancias).
Pedro Mejia
69
Diagrama de Colaboracin
Diagramas a nivel de especificacion: se usan para analizar y
explorar los roles de las clases en el sistema.
Pedro Mejia
70
Mensajes en el Diagrama de
Colaboracin
Pedro Mejia
71
72
Diagrama de Estados
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
Modela el
comportamiento de
una parte del
sistema
Pedro Mejia
73
Diagrama de UML:
Statechart
Estado inicial
Evento
button1&2Pressed
Blink
Hours
Transicion
button1&2Pressed
Estado
button2Pressed
Increment
Hours
button1Pressed
Blink
Minutes
button2Pressed
Increment
Minutes
button1Pressed
Stop
Blinking
Blink
Seconds
button2Pressed
Increment
Seconds
Estado final
Pedro Mejia
74
Diagrama de Actividades
Es un caso especial de un diagrama
de state-chart en donde los estados
son actividades (funciones).
Es util para dibujar los flujos de
trabajo (workflows) en un sistema
Buscar Bebida
[ no hay caf ]
[ hay caf ]
[ hay zumo ]
Poner caf
en filtro
Aadir agua
al depsito
Coger taza
Coger
zumo
Puede especificar:
(1)El comportamiento de los objetos
de una clase
Poner filtro
en mquina
Encender
mquina
/ cafetera.On
Caf en
preparacin
indicador de fin
[ no zumo ]
Servir caf
Beber
75
Nodos de actividades y
flechas
Nodos de control
Nodos executables: acciones
Nodos de objetos
Pedro Mejia
76
Notacion delForkDiagrama
Join
node
node
Initial
node
Control
flow
Final
node
Object
node
Pedro Mejia
Merge
node
Action
Object
flow
Curso de Ingeniera de Software, CINVESTAV-IPN
77
Permite modelar
desiciones
Buscar Bebida
Decision
[ 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
Pedro Mejia
Beber
78
Modelacion de concurrencia
Open
Incident
Allocate
Resources
Coordinate
Resources
Synchronization
Archive
Incident
Document
Incident
Pedro Mejia
79
Agrupamiento de
actividades
Open
Incident
Coordinate
Resources
Dispatcher
Archive
Incident
FieldOfficer
Document
Incident
Pedro Mejia
80
Diagrama de Componentes
Interfaz de Terminal
Gestin de Cuentas
Rutinas de conexin
Control y Anlisis
Acceso a BD
81
Diagrama de
Componentes
82
Diagrama de
Componentes
Pedro Mejia
83
Diagrama de Despliegue
Pedro Mejia
84
Diagrama de Despliegue
Servidor Central
Control y Anlisis
Comment
Acceso a BD
Comment
Rutinas de Coneccion
Comment
Modela la distribucin en
tiempo de ejecucin de
los elementos de
procesamiento y
componentes de
software, junto a los
procesos y objetos
asociados
Se modelan los nodos y
la comunicacin entre
ellos
Cada nodo puede
contiene instancias de
85
Curso de Ingeniera de Software, CINVESTAV-IPN
componentes
Terminal de Consulta
Rutinas de Coneccion
Comment
Punto de Venta
Rutinas de Coneccion
Comment
Gestin de Cuentas
Interfaz de Terminal
Comment
Comment
Pedro Mejia
Interfaz de Terminal
Comment
Diagrama de Despliegue
86
Diagrama de Despliegue
<<Servidor>>
<<TCP/IP>>
Base de
Datos
<<RDSI>>
Podemos distinguir
tipos de nodos y
conexiones por
estereotipado
Pedro Mejia
Control
<<RDSI>>
87
Diagramas de
Despliegue
Ejemplo:
Pedro Mejia
88
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
Pedro Mejia
89
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
Pedro Mejia
Component Diagram:
Components / Terminal
de Consulta
Rutinas de conexin
Rutinas de conexin
Interfaz de Terminal
Interfaz de Terminal
90
Paquetes en UML
Pedro Mejia
91
Paquetes en UML
Pedro Mejia
92
Paquetes en UML
El operador :: permite
designar una clase definida en
un contexto distinto del actual
Pedro Mejia
93
Otra Clase
Customers
CheckingAccount
<<access>>
Banking
(f rom Banking)
Banking
CheckingAccount
Pedro Mejia
94
Paquetes en UML
Pedro Mejia
95
Pedro Mejia
96
Pedro Mejia
Pedro Mejia
98
Resumen
UML define una notacin que se expresa
como diagramas sirven para representar
modelos/subsistemas o partes de ellos
El modelo de proceso RUP utiliza UML para
el modelado.
Pedro Mejia
99
Tendencias
www.objecteering.com/products_uml_profile_builder.php )
Pedro Mejia
100
Pedro Mejia
101
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/
Pedro Mejia
102