You are on page 1of 45

Metodologas de Anlisis y Diseo

Unidad IV
Anlisis y UML
Fundamento de los Casos de Uso
Sergio Snchez Rios.
Ingeniero en Informtica Licenciado en Informtica

Sergio Snchez Rios

UML: Fundamentos de los modelos de Caso de


Uso
Fueron presentados por primera vez por Jacobson a principios de los 90.

Los casos de uso documentan el comportamiento del sistema (accin y


reaccin) desde el punto de vista del usuario.

Como <<usuario>> se entiende cualquier cosa que ajena al sistema se


desarrolla y que interacta con el mismo (persona, sistema de
informacin, dispositivos de hardware, etc.).

El modelado de caso de uso ayuda con tres de los aspectos ms difciles


del desarrollo: La captura de requisitos, La planificacin de las
iteraciones del desarrollo, La validacin de los sistemas.

Sergio Snchez Rio

UML: Fundamentos de los modelos de Caso de


Uso
Definicin:

Un caso de uso especifica un comportamiento deseado del sistema.


Representan los requisitos funcionales del sistema.

Un caso de uso especifica una secuencia de acciones, incluyendo


variantes, que el sistema puede ejecutar y que produce un resultado
observable de valor para un particular actor .

Describe que hace el sistema, no como lo hace.

Sergio Snchez Rio

UML: Fundamentos de los modelos de Caso de Uso


Un diagrama de caso de uso es relativamente fcil de comprender de
forma intuitiva, incluso sin conocer la notacin. Esto es una ventaja
importante.

<Use Case Name>


(from <Use Case Name>)

Figura que representa al caso de


uso. Un caso de uso individual
representa un tipo de tarea que
tiene que soportar el sistema

Los casos de uso tambin se describen en detalle, normalmente en


texto. (Descripcin de alto nivel, Formato expandido)

Sergio Snchez Rio

UML: Fundamentos de los modelos de Caso de Uso


Otro componente de los caso de uso es el Actor, normalmente aparece
con el smbolo de un mueco, representa un tipo de usuario del
sistema.

Notacin UML
<Actor Name>
(f rom Actors)

Un actor es una entidad externa del sistema que de alguna manera


estimula el sistema con eventos de entrada o espera una respuesta del
sistema.

Sergio Snchez Rio

UML: Fundamentos de los modelos de Caso de Uso


Los actores suelen ser los roles representados por las personas, como
tambin cualquier tipo de sistema. Ejemplo:

Roles: Cliente, Cajero, Alumno, Profesor.


Sistemas de Computo.
Aparatos electrnicos o mecnicos.
El tiempo puede ser un actor (procesos iniciados por el sistema)
La misma persona fsica puede desempear varios roles distintos.

Sergio Snchez Rio

UML: Fundamentos de los modelos de Caso de Uso


Ejemplo:

<Use Case Name>


<Actor Name>

(from <Use Case Name>)

(f rom Actors)

Hay una lnea que conecta un actor con un caso de uso si el actor interacta
con el sistema para realizar parte de la tarea. (Comunicacin sencilla).

Sergio Snchez Rio

UML: Actores en Detalle


Beneficiarios: Cada caso de uso tiene que representar una tarea, que se le
requiere al sistema que soporte. Normalmente esto significa que el caso de uso
tiene valor para al menos uno de los actores. Al actor para el que un caso de
uso tiene valor se le llama beneficiario del caso de uso.

Por esta razn los desarrolladores tienen que conocer quin necesita un caso de
uso (Actor Primario) y quien esta implicado en l sin obtener ningn beneficio
(Actor Secundario).

Identificar los actores: los usuarios humanos potenciales de un sistema, tienden


a ser relativamente fciles de identificar. Para desarrollar un modelo de caso de
uso se necesita identificar los roles que estos humanos pueden desempear.

Sergio Snchez Rio

UML: Actores en Detalle


Actores no humanos: la situacin con los actores no humanos tiende a ser
menos clara, principalmente debido a que es menos claro qu se debera
considerar como un sistema externo o dispositivo.

La solucin es pragmtica: se hace lo que parece que va a ser ms til, y


distintas personas tienen visiones diferentes. Incluso si esta claro lo que es un
sistema externo o dispositivo, nace una pregunta qu cosa debera aparecer en
un caso de uso. Fowler y Scott, resumen diciendo que se pueden mostrar las
interacciones con sistemas externos:
Siempre.
Cuando es el otro sistema o dispositivo el que inicia el contacto.
Cuando es el otro sistema o dispositivo el obtiene algo del contacto.

Sergio Snchez Rio

UML: Propiedades de los casos de uso


Son iniciados por un actor con un objetivo en mente y es completado
con xito cuando el sistema lo satisface.

Pueden incluir secuencias alternativas que llevan al xito y fracaso


en la consecucin 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.

Sergio Snchez Rio

UML: Escenarios y Casos de Uso

Un caso de uso describe un conjunto de secuencias de interacciones


o escenarios: flujo principal y flujo alternativos o excepcionales.

Un escenario es una instancia de un caso de uso.

Sergio Snchez Rio

UML: Ejemplo
Sist.Punto
Puntode
deVenta
Venta
Sist.
Comprar producto
Actor

Caso de uso

Cajero

Log in
Dar vuelto

Cajero

Cliente

Comprar productos
Paga productos

Gerente

Iniciar
Terminar

Sistema administrador

Agregar nuevos usuarios

Log In

Cliente

Pagar producto

Inicializar

Terminar
Sist. Adm.

Agregar usuarios

Sergio Snchez Rio

Gerente

UML: Formato para Casos de Uso


Descripcin en lenguaje natural, respetando el dominio del
problema.

Formatos:

Formato de Alto nivel: describen muy clara y concisamente un


proceso.

Formato expandido: describe un proceso en mayor detalle,


concentrndose en el curso de los eventos: describen los
detalles de la interaccin entre el sistema y sus actores.

Sergio Snchez Rio

UML: Formato para Casos de Uso


Descripcin del formato de alto nivel
Caso de Uso: Nombre del Caso de Uso
Actores: Lista de Actores (agentes externos)
Tipo: Primario (Representa un proceso comn e importante),
Secundario (representa un proceso menor o raro), Opcional
(representa un proceso que no debe abordarse necesariamente)
Descripcin: Resumen de los eventos involucrados en el caso de
uso.

Sergio Snchez Rio

UML: Formato para Casos de Uso


Descripcin del formato de alto nivel
Ejemplo:

Caso de uso:

Comprar productos

Actores:

Cliente, Cajero

Descripcin:

Un cliente llega a la caja registradora con los artculos que


comprar. El Cajero registra los artculos y recibe el pago, el
cual debe ser autorizado. Al terminar la operacin, el Cliente
se marcha con los artculos comprados.

Tipo:

Primario

Sergio Snchez Rio

UML: Formato para Casos de Uso


Descripcin formato Expandido
Primera Seccin:
Caso de Uso: Nombre del Caso de Uso.
Actores: Lista de Actores (agentes externos), en el cul se indica
quien inicia el caso de uso.
Propsito: Intencin del caso de uso.
Precondicin: Descripcin de las condiciones que deben
satisfacerse antes de dar inicio al caso de uso. No se prueban en el
caso de uso se asumen que son verdaderas.

Sergio Snchez Rio

UML: Formato para Casos de Uso


Descripcin formato Expandido
Primera Seccin:
Resumen: Repeticin de la descripcin de alto nivel.
Tipo: 1.- Primario, secundario u opcional. 2.- Esencial (caso de
uso expandido libre de aspectos tecnolgicos y detalle de
implementacin (diseo, interfaz usuario, etc.), Real (caso de
uso expandido que describe concretamente el proceso a partir
de su diseo concreto actual, sujeto a las tecnologas
especificas de entrada.

Sergio Snchez Rio

UML: Formato para Casos de Uso


Descripcin formato Expandido
Primera Seccin:
Referencia Cruzada: casos de uso y funciones relacionadas
con el sistema.
Segunda Seccin: Curso normal de eventos (Escenario principal de
xito y pasos).
Detalle de la conversacin iterativa entre los actores y el
sistema.
Se explica la secuencia genrica ms comn no las situaciones
alternativas.

Sergio Snchez Rio

UML: Formato para Casos de Uso


Descripcin formato Expandido
Segunda Seccin:
Formato Dos columnas

Accin del Actor

Responsabilidad del Sistema


(Respuesta del Sistema)

Acciones numeradas de los


actores

Descripcin numerada de las respuestas


del sistema

Sergio Snchez Rio

UML: Formato para Casos de Uso


Descripcin formato Expandido
Ultima Seccin: Curso alternativo de eventos
Describe las opciones o excepciones ms importantes que
pudiesen presentarse en el curso normal de eventos. Si son muy
complejas pueden convertirse en otro caso de uso o seccin.

Sergio Snchez Rio

UML: Formato para Casos de Uso


Descripcin formato expandido
Ejemplo:
Caso de uso:

Comprar productos

Actores:

Cliente (iniciador), Cajero

Propsito:

Capturar una venta y su pago en efectivo.

Resumen:

Un cliente llega a la caja registradora con los artculos que comprar. El


Cajero registra los artculos y recibe el pago, el cual debe ser autorizado.
Al terminar la operacin, el Cliente se marcha con los artculos comprados.

Tipo:

Primario y esencial

Referencias
Cruzadas:

Funciones: R1.1, R1.2, R1.3, R1.7, R2.1

Sergio Snchez Rio

UML: Formato para Casos de Uso


Descripcin formato expandido
Ejemplo: Segunda Seccin
Accin de los actores

Respuesta del sistema

1.- Comienza cuando el cliente llega a una caja con productos


que desea comprar.
2.- El cajero registra la identificacin de cada producto. Si hay
varios productos de una categora, se puede introducir la
cantidad

3.- Determina el precio del producto e incorpora a la transaccin


actual la informacin correspondiente. Se presenta la
descripcin y el precio actual del producto.

4.- Al terminar de introducir el producto. El cajero indica que se


concluya la captura de productos

5.- Calcula y presenta el total de la venta

6.- El cajero indica el total al cliente


7.- El cliente efecta el pago en efectivo (el efectivo ofrecido
probablemente es mayor que la venta)
8.- El cajero registra la cantidad de efectivo recibido

9.- Muestra al cliente la diferencia, emite recibo

10.- El cajero deposita el efectivo recibido y extrae el cambio

11.- Registra venta concluida

12.- El cliente se marcha con los artculos comprados

Sergio Snchez Rio

UML: Formato para Casos de Uso


Descripcin formato expandido
Ejemplo: Ultima Seccin Casos Alternativos
Lnea 2: Introduccin del identificador invalido. Indicar Error.
Lnea 7: El cliente no tenia suficiente dinero. Cancelar Venta.

Sergio Snchez Rio

UML: Formato para Casos de Uso


Otros formatos
Formato de una lnea para eventos.

Nota: No existe el formato ideal. Algunos prefieren un a columna


otros dos. Quitan y agregan secciones. Sin embargo esto no es
importante, la clave est en escribir el curso normal de eventos y los
curso alternativos en alguna forma.

Sergio Snchez Rio

UML: Limite del Sistema


Opcionalmente, puede haber una caja en un diagrama de casos de
uso, alrededor de los casos de uso, etiquetado con el nombre del
sistema. La caja representa el limite del sistema.

Puede ser til cuando se modelan sistemas complejos con muchos


subsistemas.

Sergio Snchez Rio

UML: Utilizacin de los casos de uso


Para la captura de requisitos
Los casos de uso pueden ayudar con la captura de requisitos,
proporcionando una forma estructurada de abordarlos:
Identificar los actores.
Para cada actor averiguar:
Lo que necesita del sistema , es decir, qu casos de
uso hay que tienen valor para ellos.
Cualquier otra interaccin que espera tener con el
sistema, esto es, en qu casos de uso podra formar
parte para el beneficio de otro.

Sergio Snchez Rio

UML: Utilizacin de los casos de uso


Casos de uso a travs del desarrollo
Planificacin: antes de realizar una estimacin coherente y
planificar el proceso para todo el proyecto, se necesita tener una
lista con todos los caso de uso del sistema, junto con:
Una buena idea de lo que significa cada caso de uso.
Un entendimiento de quien quiere cada uno y cuanto.
El conocimiento de que casos de uso tienen mas riesgos.
Un plan de cuanto llevara implementar cada caso de uso.

Un aspecto bsico es que no se debera planificar la entrega del


sistema en una suma de tiempo inferior a la suma de los tiempos para
el desarrollo de cada caso de uso.

Sergio Snchez Rio

UML: Utilizacin de los casos de uso


Casos de uso a travs del desarrollo
Aspectos polticos: entregar primero los casos de uso ms
prioritarios, para mostrar que el sistema genera aportes.
Aspectos Tcnicos: entra en conflicto con los anteriores, hay que
implementar primero los casos de uso ms riesgosos, para abordar
los riesgos cuando sea posible.
Validacin del sistema: Cada caso de uso describe un requisito del
sistema por lo que un diseo correcto permite que se ejecuta cada
caso de uso: es decir realizar cada caso de uso. Una tcnica y obvia
para validar el diseo de un sistema es tomar de uno en uno los
casos de uso y comprobar que el sistema permite ejecutar dicho
caso de uso.

Sergio Snchez Rio

UML: Ejercicios
Realice los siguientes ejercicios para practicar los conceptos
aprendidos.

Ejercicios

Sergio Snchez Rio

UML: Relacin entre casos de uso


Casos de Uso para la reutilizacin
El caso ms vital es cuando se puede sacar factor comn del
comportamiento de dos o ms casos de uso originales.
Tambin cuando se descubre que se puede implementar parte de
uno de los casos de uso utilizando un componente.
Ejemplo: Tomar prestada copia y ampliar prstamo.
Ampliar Prstamo

Actor

Tomar Prestada
Copia de libro

<<inclu
d

clud
<<in

e>>

e>>

Sergio Snchez Rio

Comprobar para
Reserva

UML: Relacin entre casos de uso


Casos de Uso para la reutilizacin
Destacar que la flecha va desde el caso de uso <<usuario>> hacia
el caso de uso <<usado>>, y se etiqueta con <<include>>, para
representar que el caso de uso origen incluye el caso de uso
destino
Ampliar Prstamo

Actor

Tomar Prestada
Copia de libro

<<inclu
d

c
<<in

lu

e>>

>
de>

Sergio Snchez Rio

Comprobar para
Reserva

UML: Relacin entre casos de uso


Casos de Uso para la reutilizacin
El caso de uso origen depende del caso de uso destino, pero el
caso de uso destino no depende del caso de uso origen.

Cuando una instancia del caso de uso <<llega al lugar>> donde el


comportamiento de otro caso de uso debe ser incluido, ejecuta todo
el comportamiento descrito por el caso de uso incluido y luego
continua de acuerdo a su caso de uso original.

Sergio Snchez Rio

UML: Relacin entre casos de uso


Casos de Uso para la reutilizacin
Ventajas:
Es una manera conveniente de almacenar la decisin de que
se va a utilizar un componente, o de evitar almacenar la
informacin en ms de una descripcin detallada del caso de
uso.
Sacar factores de partes de la descripcin del caso de uso,
puede hacer que las descripciones de los casos de uso sean
ms cortas y fciles de comprender.
Puede ser una manera de descubrir una posible reutilizacin
de un componente.

Sergio Snchez Rio

UML: Relacin entre casos de uso


Casos de Uso para la reutilizacin
Desventajas:
Hay un serio riesgo de que la bsqueda de la reutilizacin en
el modelo de caso de uso orientados a la funcionalidad, se
vuelva atrs hacia un estilo de diseo de descomposicin
funcional de arriba hacia abajo.
La incorporacin de un caso de uso <<include>> es difcil de
leer por alguien que no esta acostumbrado a UML.

Sergio Snchez Rio

UML: Relacin entre casos de uso


Casos de Uso para la reutilizacin
Resumen: Considere la utilizacin de <<include>> entre casos de
uso:
Para mostrar cmo el sistema puede utilizar un componente
que ya existe.
Para mostrar la funcionalidad comn entre casos de uso.
Para documentar el hecho de que el proyecto ha desarrollado
un nuevo componente reutilizable.

Sergio Snchez Rio

UML: Relacin entre casos de uso


Separacin del comportamiento variable <<extend>>
Si un caso de uso incorpora dos o ms escenarios con diferencias
significativas, esto es, se podra mostrar como un caso de uso
principal y uno o ms casos secundarios.
Cuando se realiza esto es un problema de juicio, ya que siempre se
pueden mostrar casos variables en un caso de uso.
Ejemplo: Tomar prestada copia de libro.
<<extend>>
Tomar Prestada
Copia de libro

Actor

Sergio Snchez Rio

Rechazar Prstamo

UML: Relacin entre casos de uso


Separacin del comportamiento variable <<extend>>
Se utiliza la flecha <<extends>> desde el caso de uso menos
central al central. La flecha va desde el caso excepcional al caso
normal.
La precondicin debe hacer referencia al caso de uso extendido

<<extends>>
Tomar Prestada
Copia de libro

Actor

Sergio Snchez Rio

Rechazar Prstamo

UML: Relacin entre casos de uso


Generalizacin (herencia)
Dos actores, o dos casos de uso, pueden estar relacionados por
medio de la generalizacin.
Ejemplo: generalizacin actores

PrestatarioLibro

PrestatarioRevistas

Sergio Snchez Rio

UML: Relacin entre casos de uso


Generalizacin (herencia)
Cuando los casos de uso estn relacionados a travs de una
generalizacin la idea es mostrar una tarea y una versin
especializada de la misma.

Pagar en Efectivo
Pagar

Pagar con Cheque

Sergio Snchez Rio

UML: Relacin entre casos de uso


Una regla bsica es que si se quiere describir comportamiento extra
posiblemente se requiera <<extends>>, mientras que si lo que se
quiere es una etiqueta para una versin especializada de una tarea
completa, probablemente se quiera generalizacin.

Sergio Snchez Rio

UML: Pasos para la especificacin de


los casos de uso
Identificar las funciones del sistema, identifique los actores y
casos de uso.
Describa todos los casos de uso de alto nivel.
Dibuje un diagrama de caso de uso.
Escriba el formato esencial expandido de los casos de uso ms
importantes para lograr una mayor comprensin de la complejidad y
las dimensiones del problema, posponga los dems para la etapa de
anlisis.
Posponga, la descripcin de los casos de usos reales hasta la
fase de diseo.

Sergio Snchez Rio

UML: Por qu casos de Uso?


Ofrecen un medio sistemtico e intuitivo para capturar los requisitos
funcionales, centrndose en el valor aadido para el usuario.

Dirigen todo el proceso de desarrollo puesto que la mayora de las


actividades (planificacin, anlisis, diseo, validacin, test, ..) se realizan
a partir de los casos de uso.

Mecanismo importante para soportar trazabilidad entre modelos.

Sergio Snchez Rio

UML: Recomendaciones
ERROR COMN: no identificar como casos de uso las tareas que lanza
el propio sistema.
Anular reservas pasadas quince das

No incluir casos de uso de las operaciones CRUD sobre un objeto de


negocios (consultas, borrado, actualizacin, registros): excepto si se
trata de operaciones relevantes para el sistema, como registrar clientes
en un sistema de ventas por Internet.

Cuidado con el empleo de la relacin <<include>>


NO HACER UNA DESCOMPOSICIN FUNCIONAL!!!

Sergio Snchez Rio

UML: Recomendaciones
Escribir casos de uso independientes de la interfaz o de detalles de
implementacin, escribirlos a nivel esencial.
Hay que comprobar que los casos de uso incluyen toda la funcionalidad
del sistema.
Los casos de uso slo consideran los requisitos funcionales del
proyecto, hay que aadir los no funcionales.

Sergio Snchez Rio

Bibliografa
Gua del Tpico:
Software Engineering 6a. ed. Ian Sommerville Pearson Education
2000. (Cap. 6)
Ingeniera de Software Teora y Prctica Shari Lawrence Pfleeger
Pearson Education 2002.
Utilizacin de UML en ingeniera del software con objetos y
componentes Perdita Stevens & Rob Pooley Addison Wesley 2002.
UML y Patrones una introduccin al anlisis y diseo orientados a
objeto y al proceso unificado Craig Larman Prentice Hall - 2002.

Sergio Snchez Rio

You might also like