You are on page 1of 7

Diagramas de Caso de Uso

Introduccin
El diagrama de casos de uso representa la forma en como un Cliente (Actor) opera con el
sistema en desarrollo, adems de la forma, tipo y orden en como los elementos
interactan (operaciones o casos de uso).
Un diagrama de casos de uso consta de los siguientes elementos:
Actor.
Casos de Uso.
Relaciones de Uso, Herencia y Comunicacin.
Elementos
Actor:

Una definicin previa, es que un Actor es un rol el usuario juega con respecto al
sistema. Es importante destacar el uso de la palabra rol, pues con esto se
especifica que un Actor no necesariamente representa a una persona en particular,
sino ms bien la labor que realiza frente al sistema.
Como ejemplo a la definicin anterior, tenemos el caso de un sistema de ventas en
que el rol de Vendedor con respecto al sistema puede ser realizado por un
Vendedor o bien por el Jefe de Local.
Caso de Uso:

Es una operacin/tarea especfica que se realiza tras una orden de algn agente
externo, sea desde una peticin de un actor o bien desde la invocacin desde otro
caso de uso.

Relaciones:
o Asociacin
Es el tipo de relacin ms bsica que indica la invocacin desde un actor o
caso de uso a otra operacin (caso de uso). Dicha relacin se denota con
una flecha simple.
o Dependencia o Instanciacin
Es una forma muy particular de relacin entre clases, en la cual una clase
depende de otra, es decir, se instancia (se crea). Dicha relacin se denota
con una flecha punteada.
o Generalizacin
Este tipo de relacin es uno de los ms utilizados, cumple una doble
funcin dependiendo de su estereotipo, que puede ser de Uso (<<uses>>) o
de Herencia (<<extends>>).
Este tipo de relacin est orientado exclusivamente para casos de uso (y no
para actores).
extends: Se recomienda utilizar cuando un caso de uso es similar a otro
(caractersticas).
uses: Se recomienda utilizar cuando se tiene un conjunto de caractersticas
que son similares en ms de un caso de uso y no se desea mantener
copiada la descripcin de la caracterstica.







Ejemplo:
Mquina Recicladora
Sistema que controla una mquina de reciclado de botellas, latas, etc. El sistema debe
controlar y/o aceptar:
Registrar el nmero de artculos ingresados.
Imprimir un recibo cuando el usuario lo solicita:
a. Describe lo depositado
b. El valor de cada artculo
c. Total
El usuario/cliente presiona el botn de comienzo
Existe un operador que desea saber lo siguiente:
a. Cuantos artculos han sido retornados en el da.
b. Al final de cada da el operador solicita un resumen de todo lo depositado
en el da.
El operador debe adems poder cambiar:
a. Informacin asociada a los artculos.
b. Dar una alarma en el caso de que:
i. Artculo se no exista
ii. No hay ms papel.
Como una primera aproximacin identificamos a los actores que interactan con el
sistema:

Luego, tenemos que un Cliente puede Depositar artculos y un Operador puede cambiar la
informacin de un artculo o bien puede Imprimir un informe:

Adems podemos notar que un artculo puede ser una Botella, una lata o cualquier
artculo de reciclaje.

Otro aspecto es la impresin de comprobantes, que puede ser realizada despus de
depositar algn artculo por un cliente o bien puede ser realizada a peticin de un
operador.














Entonces, el diseo completo del diagrama de caso de uso es:



Casos con include y casos con extend

Un tema que genera mucha polmica entre la gente que modela casos de uso es la eleccin entre
la relacin de <<include>> y <<extend>>. Esto se debe a que dichas relaciones, muchas veces no
son del todo comprendidas por la persona que la modela, y mucho menos son comprendidas por
las personas que leen el modelo. As que al final no se le saca el provecho que en todo caso
debera de tener dicha eleccin.

Antes que todo, qu es el include y el extend?

Grficamente es una relacin de dependencia entre el par de casos de uso, con el nombre
correspondiente al tipo de relacin de la que se trate: ya sea <<include>> o <<extend>>.
Estas, son relaciones que usamos para ligar grficamente dos casos de uso, cuyos flujos de
eventos estn unidos, normalmente en una sola sesin del usuario. En otras palabras, un caso de
uso que est ligado, por medio de una de estas dos relaciones, a otro caso de uso; tambin podra
leerse o ejecutarse como un slo caso de uso en lugar de dos.
Imagina el conjunto de pasos que ocurren al realizar una compra en una tienda departamental.
Seguramente no tendrs problema en visualizar el conjunto de pasos para solicitar la autorizacin
de la tarjeta de crdito con la que vas a pagar, ligado a los pasos donde el vendedor registra los
productos a comprar. Es decir, los flujos de eventos de ambos procesos forman una sola cosa;
juntos podran formar un solo caso de uso, en lugar de dos casos de uso unidos por alguna de
estas relaciones que aqu estamos tratando.

Figura 1. Relacionando casos de uso

Include. En trminos muy simples, cuando relacionamos dos casos de uso con un include,
estamos diciendo que el primero (el caso de uso base) incluye al segundo (el caso de uso
includo). Es decir, el segundo es parte esencial del primero. Sin el segundo, el primero no podra
funcionar bien; pues no podra cumplir su objetivo. Para una venta en caja, la venta no puede
considerarse completa si no se realiza el proceso para cobrarla en ese momento. El caso de uso
Cobrar Renta est incluido en el caso de uso Rentar Video, o lo que es lo mismo Rentar
Video incluye (<<include>>) Cobrar Renta.


Figura 2. Ejemplo de Include

Extend. La polmica al querer seleccionar una de las dos relaciones es que en el extend
tambin podemos ver, desde la perspectiva del usuario, a los dos flujos como si fueran uno slo. Y
en ciertos escenarios el caso de uso base no podra cumplir su objetivo si no se ejecutara la
extensin. Pero, una de las diferencias bsicas es que en el caso del extend hay situaciones en
que el caso de uso de extensin no es indispensable que ocurra, y cuando lo hace ofrece un valor
extra (extiende) al objetivo original del caso de uso base. En cambio en el include es necesario
que ocurra el caso includo, tan slo para satisfacer el objetivo del caso de uso base. Ejemplo:
Puedes Realizar Venta sin Acumular Puntos de Cliente VIP, cuando no eres un cliente VIP.
Pero, si eres un cliente VIP s acumulars puntos. Por lo tanto, Acumular Puntos es una
extensin de Realizar Venta y slo se ejecuta para cierto tipo de ventas, no para todas.


Figura 3. Ejemplo de Extend

You might also like