You are on page 1of 53

Caso de Uso.

(CU)
Prof. Guillermo E. Badillo Astudillo

Diagrama de Casos de Uso (DCU)


Caractersticas del DCU Componentes de un DCU Relaciones entre Casos de Uso Ejemplos de DCU Gua para la construccin de DCU Consideraciones finales

Caractersticas de un DCU
Modelo desarrollado por I. Jacobson a partir de los aos 60, finalmente divulgado en 1992 e incluido en la primera versin de UML en 1997. Asume una descomposicin del sistema centrada en actores externos. Responde a preguntas tales como:
cules son los requerimientos funcionales del sistema? qu funciones debe proveer al entorno? qu debe hacer el sistema para sus usuarios?

...Caractersticas del DCU


Indica qu hace el sistema sin indicar cmo lo hace. Puede entenderse como el establecimiento de un contrato entre el sistema y los actores. Describe las posibles modalidades de utilizacin" o casos de uso (CU) del sistema por parte de actores externos. Cada CU del DCU entrega un valor especfico para un actor individual del sistema.

Componentes de un DCU
El DCU presenta los siguientes componentes:
sistema actor caso de uso

Ejemplo:

Sistema Banco
Girar dinero

Depositar dinero

Cliente Banco

Transferir entre cuentas

Sistema
Conjunto explcitamente delimitado de CU internos provedos a los actores externos. Representa el lmite entre lo que forma parte del sistema (los CU) y lo que es externo al mismo (los actores). Frecuentemente se omite por su obviedad. Representacin:

Sistema Banco

Actor
Representa un papel o rol que algo o alguien del entorno desempea con relacin al sistema. Corresponde a una clase o conjunto de actores reales (instancias) que viven fuera del sistema e interactan con l. Representaciones:

actor ClienteBanco

Cliente Banco

...Actor
Interacta de alguna forma con el sistema, pudiendo originar o no la interaccin. Puede ser desempeado por:
una persona o cargo (ej. operador, supervisor) un sistema informtico (ej. sistema de monitoreo, sistema transaccional) una seccin o departamento (ej. contabilidad, produccin) un dispositivo externo de hardware (ej. impresora, sensor)

Clasificacin de Actores
Segn la iniciacin de la interaccin de un CU:
activo: actor que inicia la interaccin pasivo: cualquier otro actor que interacte

Segn el objetivo de la interaccin en un CU:


primario o principal: actor beneficiario del valor del CU secundario: cualquier otro actor que interacte

Clasificaciones son por CU: un actor puede ser principal o activo con respecto a un CU y ser secundario o pasivo con respecto a otro.

...Clasificacin de Actores
Otras personalidades de los actores:
iniciador: inicia el CU servidor: provee un servicio al sistema en el CU receptor: recibe informacin del CU facilitador: apoya la interaccin de otro actor con el sistema

Personalidades tambin son por CU: un actor puede comportarse como servidor/facilitador en un CU, y comportarse como iniciador/facilitador en otro.

...Clasificacin de Actores
Un actor pasivo principal (o receptor) ocurre cuando el actor activo (iniciador/facilitador) relacionado es:
un representante del actor principal (ej. vendedor en representacin del cliente), o un instante del tiempo (ej. ltimo da hbil del mes), o un evento cualquiera (ej. alarma de estado crtico).

Ubicacin recomendada de los actores principal y secundario:

Sistema

Actor Principal

Actor Secundario

...Clasificacin de Actores
Segn la categora de la interaccin:
general: abstraccin de actores especializados en un rol general comn especializado: rol particular de un actor general
Representacin:

Empleado

Actor especializado hereda los CU del actor general, pudiendo agregar otros CU. Conjunto de actores general y especializado(s) configuran una jerarqua de actores.

Vendedor seguros casa

Vendedor seguros auto

Inspector de terreno

Caso de Uso (CU)


Conjunto de actividades de un sistema que proporciona un valor identificable a un actor principal. El valor que se ofrece motiva al actor principal a usar el sistema por medio del CU: explica por qu el actor principal deseara usar el CU. Existe una dependencia mutua entre el CU y actor principal (por qu?).

...CU
Representacin con nombre significativo en la forma verbo + objeto:

Monitorear alarma

Representa una porcin de la funcionalidad que el sistema entrega al entorno. Corresponde a una visin externa del sistema en la forma de una caja negra.

...CU
Un escenario es una realizacin de un CU, donde instancias de actores intercambian datos y eventos especficos con el sistema. Un escenario es entonces una instancia de un CU: un CU se dice que es instanciado cada vez que un actor activo inicia la interaccin, crendose as un escenario. Con respecto a los escenarios, un CU es un conjunto de escenarios posibles que tienen un objetivo comn para un actor principal.

Ejemplo de CU Procesar venta (formato breve)


Un cliente llega a la caja con los artculos que quiere comprar; el cajero usa el sistema de PdV para registrar cada artculo comprado; el sistema muestra un total y detalles por artculo; el cliente ingresa informacin para pagar, que el sistema valida y registra; el sistema actualiza el inventario; el cliente recibe una boleta del sistema y se lleva los artculos que compr. Quin es el Actor Principal? Quin es el Actor Secundario?

16

Ejemplo: Caso de uso Consultar Vuelo (formato breve)


El usuario indica que quiere hacer consultas acerca de vuelos. El sistema ofrece opciones para especificar las ciudades de origen y destino y las fechas de ida y regreso. El usuario especifica las ciudades de origen y destino y las fechas de ida y regreso. El sistema muestra una lista de vuelos de ida y una lista de vuelos de regreso, con sus horas de salida y llegada y sus tarifas en cabina econmica. El usuario selecciona los vuelos que desea. El sistema muestra el itinerario, las restricciones de equipaje y la tarifa total, incluyendo impuestos. Quin es el Actor Principal? Quin es el Actor Secundario?

Relaciones entre los componentes del DCU


Existen relaciones entre:
actores: jerarqua de actores (ya vista) actores y CU: asociacin de comunicacin CU: dependencias de inclusin y extensin y jerarquas de CU (generalizacin)

Relaciones entre actores y CU


Asociacin de comunicacin entre actor y CU:
muestra una va de comunicacin entre el CU y el(los) actor(es) permite el intercambio de datos y eventos

Ejemplos:
Configurar equipo

Girar dinero

Operador

Monitorear alarmas

Depositar dinero

Cliente Banco

Transferir entre cuentas

Consultar informe

Supervisor

Relaciones entre CU
Con relacin a un CU tomado como base:
inclusin: CU incluido muestra parte de la funcionalidad de uno o ms CU base extensin: CU extensor agrega funcionalidad condicionada a un CU base

Generalizacin: CU especializado se considera como un caso particular de la funcionalidad de un CU general. Estas relaciones son ms evidentes analizando el DCU conjuntamente con su documentacin.

Inclusin de CU
Idea: evitar la representacin redundante de funcionalidad. Existe cuando se extrae una porcin de funcionalidad de un CU base y se representa aparte en un CU incluido. Se entiende que el CU incluido forma parte u ocurre dentro del CU base. Antes llamada relacin usa (uses en ingls). Representacin (include en ingls):

incluye CU base 1 CU incluido

incluye CU base 2

...Inclusin de CU
Ejemplo:
incluye Vender pliza de seguros incluye Calcular prima incluye Notificar asegurado incluye Renovar pliza de seguros

CU incluido puede tambin existir para un nico CU base cuando:


se desea representar explcitamente una porcin relevante de funcionalidad fuera del CU base se estima que el CU incluido es potencialmente compartible

...Inclusin de CU
Ejemplo: CU incluido:
Mostrar estado encomienda incluye Buscar encomienda

siempre es realizado como parte de la realizacin del CU base no puede ser iniciado directamente puede tener asociado actores pasivos secundarios (por qu?)

En sntesis: CU base incorpora (incluye) al CU incluido

Extensin de CU
Idea: agregar funcionalidad extra sin alterar el CU base. Existe cuando se agrega una porcin condicionada de funcionalidad, como un CU extensor, a la funcionalidad de un CU base. Se entiende que el CU extensor se agrega como un extra a la funcionalidad normal del CU base.

...Extensin de CU
Indica que el CU extensor interrumpe al CU base, cuando la condicin es verdadera, para realizarse fuera de ste, retornando posteriormente al CU base. La extensin separa explcitamente las funcionalidades:
normal no condicionada en el CU base extra condicionada en el CU extensor

Representacin (extend en ingls):

extiende CU base CU extensor

...Extensin de CU
Ejemplo: si la funcionalidad normal implica pagar al contado y sin descuentos
extiende Pagar con tarjeta de crdito

Recibir pago Recibir cupn de descuento

Cajero

extiende

En un escenario del CU base pueden realizarse todos, algunos o ninguno de los CU extensores. Opcionalidad de la extensin es individual por CU extensor y siempre con respecto al CU base.

...Extensin de CU
Realizacin de un CU extensor es independiente de quien la origina:
un CU base o un actor activo.

Ejemplo:

Crear nuevo cliente

extiende Identificar cliente

Cliente

Consultar informe burstil

incluye

...Extensin de CU
CU extensor ocurre siempre en los puntos de extensin del CU base. Un punto de extensin es el paso dentro de la funcionalidad del CU base:
donde es evaluada la condicin que puede implicar la realizacin del CU extensor, y al que se retorna despus de haber sido realizado.

Los puntos de extensin pueden indicarse explcitamente en la documentacin de un CU base.

...Extensin de CU
CU extensor:
se realiza opcional y separadamente, cuando el CU base se realiza puede ser iniciado directamente, independiente del CU base puede tener asociado actores de todo tipo, incluso principales (por qu?) En sntesis: CU extensor se agrega (extiende) al CU base

Generalizacin de CU
Idea: separar funcionalidad general de casos particulares. Existe cuando es posible distinguir funcionalidad general, en un CU general, de un caso particular de esta funcionalidad, en un CU especializado. El CU especializado hereda la funcionalidad y relaciones (con actores y otros CU) del CU general pudiendo extenderlas o modificarlas. Extensin y modificacin de funcionalidad es visible en la documentacin asociada.

...Generalizacin de CU
Conjunto de CU general y especializado(s) configuran una jerarqua de CU. Cada CU especializado es entonces un caso particular del CU general. Representacin:
CU general

CU especializado

...Generalizacin de CU
Ejemplos:
Validar usuario

Negociar precio

Negociar precio bajo el mnimo

Verificar contrasea

Reconocer retina

La funcionalidad total de una jerarqua de CU puede distribuirse de diferentes formas entre el CU general y el(los) CU especializado(s) distintos grados de abstraccin del CU general

...Generalizacin de CU
Caso especial:
CU general no posee funcionalidad, en cuyo caso se dice abstracto (puede indicarse con el nombre en cursiva) CU especializados tienen toda la funcionalidad y se dicen concretos.

Ejemplo:
Realizar transaccin

Girar dinero

Depositar dinero

Transferir entre cuentas

...Generalizacin de CU
Posibilidades al iniciar un CU general:
CU general puede realizarse independiente del CU especializado: escenario es propio del CU general, ya que su funcionalidad es suficientemente concreta

Negociar precio

Negociar precio bajo el mnimo

...Generalizacin de CU
...Posibilidades al iniciar un CU general:
uno de los CU especializados debe realizarse en lugar del CU general: escenario del CU especializado elegido reemplaza al escenario del CU general, ya que ste es abstracto o su funcionalidad es insuficientemente concreta

Realizar transaccin

Validar usuario

Girar dinero

Depositar dinero

Transferir entre cuentas

Verificar contrasea

Reconocer retina

...Generalizacin de CU
Cuidar situaciones que combinen jerarquas de actores y de CU: problemas con las herencias Ejemplos incorrectos:
Autorizar compra
Empleado abastecimiento

Autorizar compra
Jefe abastecimiento Empleado abastecimiento

Autorizar compra

Autorizar compra mayor

Autorizar compra menor

Autorizar compra menor

Jefe abastecimiento

Empleado abastecimiento

Jefe abastecimiento

[2]

...Generalizacin de CU
Ejemplos correctos:
Autorizar compra

Autorizar compra
Jefe abastecimiento
Empleado abastecimiento

Autorizar compra menor Autorizar compra mayor


Empleado abastecimiento

Autorizar compra menor

Jefe abastecimiento

[1]

...Generalizacin de CU
CU especializado:
siempre puede reemplazar al CU general en un escenario puede ser iniciado directamente o a travs del CU general puede tener asociado cualquier tipo de actor

En sntesis: CU especializado es un caso particular del CU general

Inclusin vs. Extensin vs. Generalizacin


CONCEPTO
Propsito Concepto clave Instanciacin Grado de dependencia Recomendado cuando se quiere...

INCLUSIN

EXTENSIN

GENERALIZACIN
Separar funcionalidad general de los casos particulares. Especializacin de funcionalidad. Cuando se requiera. CU especializado puede o no iniciarse solo. ...describir variaciones con respecto al CU general, en trminos de casos particulares. CU especializado puede extender o modificar la funcionalidad heredada del CU general.
CU general

Evitar la representacin Agregar funcionalidad extra redundante de funcionalidad. sin alterar el CU base. Reutilizacin de funcionalidad. Adicin de funcionalidad. Siempre dentro del CU base. CU incluido no puede instanciarse solo. ...extraer funcionalidad repetida en ms de un CU base. Opcionalmente, en forma separada del CU base. CU extensor puede iniciarse solo. ...describir funcionalidad opcional adicional en un CU base.

Impacto en CU base CU base incorpora a CU CU extensor se realiza en los o general incluido en cualquier parte de puntos de extensin del CU su funcionalidad. base.

CU base

CU base

Representacin

incluye

extiende

CU incluido

CU extensor

CU especializado

Ejemplos de DCU
Sistema Cajero Automtico
incluye Identificar cliente

Suponga un sistema para un cajero automtico en que el cliente, previa identificacin, selecciona una de las opciones para su cuenta:
girar depositar Cliente transferir a otra cuenta consultar saldo

Usar cajero automtico incluye incluye Consultar saldo cuenta

incluye incluye

Cliente

Depositar en cuenta

Girar de cuenta

Transferir entre cuentas

Sistema Cajero Automtico


incluye Identificar cliente

Usar cajero automtico incluye

Seleccionar transaccin

Consultar saldo cuenta

Girar de cuenta

Transferir entre cuentas Depositar en cuenta

[2]

...Ejemplos de DCU

Ejemplo: Suponga un sistema de ventas donde, previa solicitud de datos de los clientes, estos pueden hacer pedidos de productos y consultar su estado. Los pedidos pueden incluir catlogos. Las formas de pago
posibles son al contado o mediante un crdito acordado.
incluye Solicitar datos cliente
Cliente

Sistema de Ventas
Hacer pedido extiende Solicitar catlogo

incluye Pedir producto

incluye Definir forma de pago

incluye

Consultar estado pedido

Pagar al contado

Acordar crdito

[1]

Gua para la construccin de DCU


Procedimiento bsico de construccin Actores en un DCU Preguntas para identificar CU Errores ms comunes

Procedimiento descendente (top-down) de construccin


1. 2. 3. 4. 5. 6.

Construir una lista con todos los actores posibles. Identificar para cada actor los CU posibles. Si es necesario, relacionar los actores. Relacionar los CU en forma preliminar (sujeto a posteriores modificaciones). Documentar los CU. Corregir las relaciones entre actores y principalmente entre CU.

Procedimiento ascendente (bottom-up) de construccin


1. 2. 3. 4. 5. 6. 7.

Crear escenarios posibles de interaccin con el sistema. Generalizar los escenarios para definir los CU. Definir los actores posibles para cada CU. Si es necesario, relacionar los actores. Relacionar los CU en forma preliminar (sujeto a posteriores modificaciones). Documentar los CU. Corregir las relaciones entre actores y principalmente entre CU.

Actores en un DCU
En un DCU, puede optarse por representar como actores:
slo a los principales agrupando a principales (izquierda) y a secundarios (derecha) slo a los activos en general a todo y cualquier agente externo que interacta con el sistema sin distinguir si es principal/secundario o activo/pasivo
recomendados

Decisin depende de complejidad del DCU, conveniencia del modelador y estndares de modelado, entre otros.

Preguntas para identificar CU


Asumiendo que los actores ya estn identificados:
Cules son las principales tareas de cada actor? Debe el actor crear, consultar, actualizar o eliminar informacin del sistema? Debe el actor informar al sistema de algo? Se le debe informar al actor de cambios ocurridos en el sistema?

Verifiquemos el nivel de los casos de uso


En lugar de preguntar, Cul es un caso de uso vlido? una pregunta ms prctica es, Cul es un nivel til para expresar casos de uso para el anlisis de requisitos de la aplicacin? Pruebas para chequear posibles casos de uso:
La prueba del jefe. La prueba EBP. La prueba del tamao.

La prueba del jefe chequea la utilidad para el negocio


Si el jefe nos pregunta, Qu has estado haciendo todo el da?, y nosotros le contestamos, Conectndome al sistema, va a estar contento el jefe? Si el jefe no est contento, entonces el caso de uso no pasa la prueba del jefe:
el caso de uso no est relacionado con el logro de resultados de valor medible para el negocio.

La prueba EBP chequea la complejidad en el tiempo y en el espacio


Proceso de negocio elemental (EBP):
una tarea realizada por una persona en un lugar y de una vez, en respuesta a un evento del negocio, que agrega valor de negocio medible y deja los datos en un estado consistente. p.ej., Consultar Vuelos, Comprar Pasajes, Hacer Checkin.

Busquemos casos de uso que reflejen EBPs:


esta prueba es similar a la del jefe, en trminos de la calificacin de valor de negocio medible

La prueba del tamao chequea la extensin de la narracin


Rara vez un caso de uso es una accin o paso individual:
ingresar el cdigo de una reserva; borrar una lnea; imprimir un documento.

Un caso de uso tpicamente contiene varios pasos; en el formato detallado, puede llegar a tener varias pginas de texto.

Errores ms comunes
Crear CU de dentro hacia fuera: Funcionalidad definida desde la perspectiva del sistema y no del actor. Problemas de lmites: P. ej.: un lector de cdigo de barras es un actor o es parte del sistema? debiera aparecer en el DCU? Confusin de actor principal con activo: Quien inicia la interaccin no es necesariamente quien recibe el valor del CU. Confusin de personas con roles: Un actor es independiente de la persona que lo ejerce, pudiendo sta cambiarse sin alterar el CU.

...Errores ms comunes
Abuso de relaciones entre CU: Un DCU no tiene por qu tener todas las relaciones posibles entre los CU. Muchas veces no tiene ninguna. Granularidad de los CU: CU no deben ser muy elementales ni muy agregados, deben orientarse a los propsitos de los actores principales. Confusin entre incluye y extiende: Revisar sentido de las flechas y verificar correcta utilizacin. Confusin del CU con el escenario: Escenario es una realizacin (o ejemplo) de un CU.

En resumen
Un DCU muestra la funcionalidad del sistema sin consideraciones temporales:
no se representa la concurrencia ni sincronizacin entre CU los CU no tienen una secuencia de realizacin definida

Importante: La documentacin de los CU es tanto o ms relevante que el propio DCU (por qu?).

You might also like