Clase 5 - Diagrama de Clases en Uml
Clase 5 - Diagrama de Clases en Uml
Clase 5 - Diagrama de Clases en Uml
DE DIOS
Tipos de Diagramas
Diagrama
de Clase Diagrama
de Secuencia
Diagrama
Diagrama de Colaboración
de Actividades
Diagrama
de Estados
La clase define las reglas; los objetos
expresan los hechos.
La clase define que puede ser; el objeto
describe que es.
Se considera un caso especial del diagrama
de clases.
Puede construirse junto con el de clases.
Describe una instancia de un diagrama de
clase en un momento en particular.
Este diagrama contiene objetos y ligas.
La representación de una clase es un
rectángulo con 3 divisiones:
◦ El del nombre define la clase, (un tipo de objeto).
◦ El de los atributos contiene la definición de los
datos.
◦ El de las operaciones contiene la definición de cada
comportamiento soportado por este tipo de objeto.
La siguiente figura muestra un vuelo de una
aerolínea modelado como una clase UML.
Nombre
Operaciones Operación(parámetros:
Tipo de dato):valor de
retorno
Un atributo describe una pieza de
información que un objeto tiene o conoce
de sí mismo. Para poder usar esta
información se debe asignar un nombre y
especificar el tipo de dato.
El tipo de dato puede ser primitivo o tipo de
dato abstracto (definido)
Cada atributo puede tener reglas que
limiten los valores asignados a éste. Se
puede usar un valor de default para
protegerlo.
La definición de un atributo debe
especificar que otros objetos los pueden
ver. La visibilidad puede ser:
◦ Public (+) permite el acceso a objetos de las otras
clases.
◦ Private (-) limita el acceso a la clase, solo
operaciones de la clase tienen acceso.
◦ Protected (#) permite el acceso a subclases. En el
caso de generalización (herencia), las subclases
deben tener acceso a los atributos y operaciones
de la superclase, sino no pueden heredar.
◦ Package (~) permite el acceso a los otros objetos
en el mismo paquete.
Elemento Ejemplo
Nombre del atributo compañía
Tipo de dato compañía:character
Valor de default (si hay) compañía:character = espacios
Restricciones compañía:character = espacios
{1 a 30}
Caracteres compañía:character = espacios{1
a 30 alfabéticos, espacios,
puntuación, no especiales}
Asociación
Agregación
Composción
Es un tipo especial de asociación utilizado
para modelar una relación “whole to its
parts”.
Por ejemplo, Coche es una entidad “whole” y
Llanta es una parte del Coche.
Una asociación con una agregación indica
que una clase es parte de otra clase.
En este tipo de asociación, la clase hijo puede
sobrevivir sin su clase padre.
En este caso el ciclo de vida de una
instancia de la clase hijo depende del ciclo
de vida de una instancia de la clase padre.
A diferencia de la agregación básica, para
representarla el diamante no es hueco.
Una instancia de la clase Company debe
tener al menos una en la clase
Departamento.
En este tipo de relaciones, si una la
instancia Company se elimina,
automáticamente la instancia Departamento
también se elimina.
Otra característica importante es que la
clase hijo solo puede relacionarse con una
instancia de la clase padre.
HACER LOS DIAGRAMAS DE ASOCIACIÓN INDICANDO
SI EXISTE AGREGACIÓN / COMPOSICIÓN. ANOTAR
LA MULTIPLICIDAD.
51
Emisor Centralita Receptor
listo( )
tono
marcar_numero
tono_sonando
timbre_sonando
Escenario para_tono
telefono_cogido
para_timbre
Los Casos de uso son ideados por Jacobson a principios de los noventa y
están inspirados en los Escenarios utilizados para describir procesos.
actor caso de uso
Gestionar Préstamos
Responsable
Prestamos
asociación
53
Un actor representa un conjunto
coherente de roles que juegan los
usuarios de los casos de uso al
interaccionar con el sistema.
Roles jugados por personas, dispositivos,
u otros sistemas.
El tiempo puede ser un actor (“procesos
iniciados automáticamente por el
sistema”).
No forman parte del sistema.
54
Un usuario puede jugar diferentes roles.
En la realización de un caso de uso pueden
intervenir diferentes actores.
Un actor puede intervenir en varios casos de
uso.
Identificar casos de uso mediante actores y
eventos externos.
Un actor necesita el caso de uso y/o participa
en él.
55
Dos tipos de actores:
◦ Principal:
Requiere al sistema el cumplimiento de un
objetivo.
◦ Secundarios:
El sistema necesita de ellos para satisfacer un
objetivo.
56
Un caso de uso describe un conjunto de
secuencias de interacciones entre actores y
el sistema (escenarios): flujo principal y
flujos alternativos o excepcionales.
Un escenario es una instancia de un caso de
uso
Un escenario es una historia particular de
uso de un sistema.
Escenarios principales vs. Escenarios
secundarios
57
Son iniciados por un actor con un objetivo en
mente y es completado con éxito cuando el
sistema lo satisface.
Puede incluir secuencias alternativas que
llevan al éxito y fracaso en la consecución del
objetivo.
El sistema es considerado como una “caja
negra” y las interacciones se perciben desde
fuera.
El conjunto completo de casos de uso
especifica todas las posibles formas de usar
el sistema, esto es el comportamiento
requerido. 58
Son documentos de texto, no son
diagramas.
◦ El modelado de casos de uso consiste en escribir
texto, no en dibujar diagramas.
Describir el flujo de eventos
◦ Texto estructurado informal
◦ Texto estructurado formal (plantillas)
◦ Pseudocódigo
◦ Notaciones gráficas: diagramas de secuencia
Debe ser legible y comprensible para un
usuario no experto.
Debe indicar: actores, flujos principal y
excepcionales.
59
60
Realizar Venta (en un Terminal de Punto de Venta
o TPV)
61
Realizar Venta (en un Terminal de Punto de Venta
o TPV)
62
Realizar Venta
Diagrama de secuencia
:Sistema
: Cajero
crearNuevaVenta()
* introducirItem(cod,cantidad)
finalizarVenta()
hacerPago(cantidad)
63
Reservar Libro Prestamo Revista
Profesor
Socio
Extender Prestamo
Consultar
Socio
64
Con un caso de uso se describe un
comportamiento esperado del sistema, pero
no se especifica cómo se implementa.
Una caso de uso se implementa a través de
una colaboración:
“Sociedad de clases y otros elementos que
colaborarán para realizar el comportamiento
expresado en un caso de uso”
Una colaboración tiene una parte estática
(diagramas de clases) y una parte dinámica
(diagramas de secuencia).
65
caso de uso
colaboración
Hacer Pedido
Gestión Pedidos
realización
66
Tres tipos de relaciones:
◦ Generalización
Un cdu hereda el comportamiento y significado de
otro.
◦ Inclusión
Un cdu base incorpora explícitamente el
comportamiento de otro en algún lugar de su
secuencia.
◦ Extensión
Un cdu base incorpora implícitamente el
comportamiento de otro cdu en el lugar
especificado indirectamente por este otro cdu.
67
Extensión
«extend»
Hacer Pedido
Hacer Pedido Urgente
(establecer
prioridad)
«include»
Comprobar clave
Inclusión
Validar Usuario
Generalización
«include»
Seguir Pedido Examinar retina
68
Permite factorizar un comportamiento en
un caso de uso aparte y evitar repetir un
mismo flujo en diferentes casos de uso.
Ejemplo:
Hacer Pedido:
Obtener y verificar el número de
pedido;
Incluir “Validar usuario”;
Recoger los ítem del pedido del
usuario;
…
69
El caso de uso base incluye una serie de
puntos de extensión.
Sirve para modelar:
◦ la parte opcional del sistema, o
◦ un subflujo que sólo se ejecuta bajo ciertas
condiciones.
70
Ejemplo:
Hacer Pedido:
Incluir “Validar usuario”;
Recoger los ítem del pedido del usuario;
Establecer prioridad: punto de extensión
Enviar pedido para ser procesado según
la prioridad.
71
1) Identificar los usuarios del sistema.
2) Encontrar todos los roles que juegan los
usuarios y que son relevantes al sistema.
3) Para cada rol identificar todas las formas
(objetivos) de interactuar con el sistema.
4) Crea un caso de uso por cada objetivo.
5) Estructurar los casos de uso.
6) Revisar y validar con el usuario.
72
Resumen
Actores Principales y Secundarios
Personas involucradas e Intereses
Precondiciones
Poscondiciones
Escenario Principal (Flujo Básico)
Extensiones (Flujos Alternativos)
Requisitos de Interfaz de Usuario
Requisitos No-Funcionales
Cuestiones Pendientes
73
Resumen: Un cliente llega al TPV con un conjunto de
artículos. El cajero registra los artículos y se genera un
ticket. El cliente paga en efectivo y recoge los
artículos.
Actores: Cajero (principal), Sistema (secundario)
Personal Involucrado e Intereses:
◦ Cajero: quiere entradas precisas, rápidas y sin errores de pago.
◦ Compañía: quiere registrar transacciones y satisfacer clientes.
◦ ...
Precondición: El cajero se identifica y autentifica.
Poscondiciones: Se registra la venta. Se calcula el
impuesto. Se actualiza la contabilidad y el inventario.
74
Escenario Principal (Flujo Básico):
1. El cliente llega al TPV con los artículos.
2. El cajero inicia una nueva venta.
3. El cajero introduce el identificador de cada artículo.
4. El sistema registra la línea de venta y presenta descripción
del artículo, precio y suma parcial.
El cajero repite los pasos 3 y 4 hasta que se indique.
5. El sistema presenta el total.
6. El cajero le dice al cliente el total a pagar .
7. El cliente paga y el sistema gestiona el pago.
8. El sistema registra la venta completa y actualiza el
inventario.
9. El sistema presenta recibo.
75
Extensiones (Flujos Alternativos):
A1: Identificador no válido
La secuencia A1 comienza en el punto 3.
4. El sistema señala el error y rechaza la entrada.
El escenario vuelve al punto 3.
A2: El cliente pide eliminar un artículo de la compra.
La secuencia A2 puede ocurrir entre los puntos 3-6.
1. El cajero introduce identificador a eliminar.
2. El sistema actualiza la suma.
El escenario continúa en el punto 6.
A3: Pago en efectivo
La secuencia A3 ocurre en el punto 7.
1. El cajero introduce la cantidad entregada por el cliente.
2. El sistema muestra cantidad a devolver.
El escenario continúa en el punto 8.
…
76
Requisitos de Interfaz de Usuario:
- Pantalla táctil en un monitor de pantalla plana.
- El texto debe ser visible a un metro de distancia.
Requisitos No-Funcionales:
- El identificador del producto podría ser cualquier
esquema de código de barras UPC, EAN-8, EAN-13, ...
- El tiempo de respuesta para autorizar el pago con la
tarjeta de débito o de crédito es de 30 segundos.
Cuestiones Pendientes:
- Explorar cuestiones de recuperación de accesos a
servicios remotos.
- ¿Qué adaptaciones son necesarias en un TPV para
diferentes negocios?
77
Hay consenso en considerar casos de
uso como esenciales para capturar
requisitos y guiar el modelado.
Pero todavía existe mucha confusión
sobre cómo usarlos.
◦ ¿Cuál es el número de casos de uso apropiado
en un proyecto?
◦ ¿Qué casos de uso hay en el sistema?
78
Diferente granularidad
◦ Casos de uso del negocio
Procesos de Negocio: Objetivo estratégico de la empresa
Ej. Vender productos
◦ Casos de uso del sistema
Objetivo de un usuario
Ej. Realizar una compra
◦ Casos de uso de inclusión
Forman parte de otro, son como subfunciones
Ej. Buscar, Validar, Login
79
Especificar casos de uso no es una actividad de
dibujar diagramas sino de escribir con el detalle
necesario el flujo principal y los flujos alternativos:
“centrado en la escritura en vez del dibujo”.
No hay que preocuparse demasiado por las
relaciones entre casos de uso ni entre actores.
El objetivo inicial es identificar los actores y a partir
de sus objetivos encontrar los casos de uso, ya que
el diagrama de casos de uso es una ayuda visual.
Los actores deben interactuar con el
sistema.
80
No incluir como caso de uso las operaciones CRUD
sobre un objeto de negocio (alta, consulta, borrado,
actualización). CRUD es el acrónimo de Crear, Obtener,
Actualizar y Borrar (Create, Retrieve, Update y
Delete en inglés).
La excepción es si se trata de operaciones relevantes para el
sistema, como “Registrar Cliente” en un sistema de venta por
Internet.
Cuidado con el empleo de la relación “include”.
¡NO HACER UNA DESCOMPOSICION FUNCIONAL!
Los casos de uso sólo consideran los requisitos
funcionales del proyecto, hay que añadir los no-
funcionales.
81
UML
Diagrama de Secuencia
1
Los Diagramas de Secuencias muestran la forma en
que un grupo de objetos se comunican (interactúan)
entre sí a lo largo del tiempo
Recordar
Etiquetas
Ejecución en Instanciación
Objeto
Paralelo
Objeto
(Ejecución)
Línea de Vida
Activo
de un Actor
u Objeto
Separador de
las ejecuciones
concurrentes
Fuente: http://www.tracemodeler.com/articles/pimp-my-diagram-three-little-pigs/
Comentario
Mensaje
Fin de la vida
de un objeto
Recordar
Etiquetas
Pila de Retorno
Llamada Explícito
Fuente: http://www.tracemodeler.com/articles/pimp-my-diagram-three-little-pigs/
Ojo, aquí
hay un error
Fuente: http://www.tracemodeler.com/articles/pimp-my-diagram-three-little-pigs/
Flujo Normal:
1.- El actor pulsa sobre el botón para crear un nuevo mensaje.
2.- El sistema muestra una caja de texto para introducir el título del mensaje
y una zona de mayor tamaño para introducir el cuerpo del mensaje.
3.- El actor introduce el título del mensaje y el cuerpo del mismo. 4.- El
sistema comprueba la validez de los datos y los almacena.
5.- El moderador recibe una notificación de que hay un nuevo mensaje. 6.- El
moderador acepta y el sistema publica el mensaje si éste fue aceptado por el
moderador.
Flujo Alternativo:
4.A.- El sistema comprueba la validez de los datos, si los datos no son
correctos, se avisa al actor de ello permitiéndole que los corrija.
9
Mensaje
Distintos símbolos
a si mismo
usados para diferenciar
distintos tipos de
objetos
Recordar
Etiquetas
Numeración
(Orden) Mensaje
de los Asíncrono
Mensajes
10
protected void doPaint(Painter painter) {
painter.drawRect(x, y, width, height);
Origen del
Mensaje
Indeterminado
Destino del
Mensaje
Indeterminado
Repetición *
mientras / para
Recordar [condición]
Etiquetas 12
protected void doPaint(Painter painter, Config config) {
painter.drawRect(x, y, width, height);
Mientras / para
[condición]
Marco
Compuesto
Recordar
Etiquetas
protected void doPaint(Painter painter, Config config) {
painter.drawRect(x, y, width, height);
if (translate) {
painter.translate(x, y);
}
if (translate) { painter.setTransformsEnabled(true);
painter.translate(x, y);
}
if (translate) { painter.setTransformsEnabled(true);
painter.translate(x, y);
} else { painter.setTransformsEnabled(false);
painter.translate(0, 0);
}
10
Se pueden
Flujos tener todos los
Alternativos compartimientos
(if/else) que sean
[condición] necesarios
10
Identificación
del diagrama
10
Identificación
del diagrama
10
Una referencia rápida de UML
http://www.holub.com/goodies/uml/
10
Gra cias
Los diagramas de componentes ilustran las piezas
del software, controladores que conformaran un
sistema. Tiene un nivel más alto de abstracción que
un diagrama de clase.