Tecnología y Synergix

Ejemplo de caso de uso

Posteado por: Iván Garcerant en: 4-06-08

Considerando lo vital que es la gestión de requisitos y lo populares y útiles que son los casos de uso, nunca esta de más intentar una explicación de la técnica. Así que supongamos a un sistema pequeño que nos sirva de ejemplo: el teléfono de un hogar promedio. En dicho sistema, es de interés realizar llamadas de voz, o en otras palabras, el sistema tiene entre sus objetivos el de permitir al usuario del mismo comunicarse remotamente por medio de conexiones de voz.

Primero hemos de identificar al actor. En este caso es claramente el operador o usuario del teléfono. Tendremos en cuenta siempre que cada actor admite solamente cierto tipo de comunicación, impone sus propios requisitos sobre el sistema y exige una funcionalidad bajo ciertas condiciones. Pero para facilitar las cosas podemos simplemente indicarlo; quizás incluso recurriendo a un formalismo gráfico tomado de UML.

Usuario

Fig. 1 – Ejemplo sencillo de un Actor

Ahora podemos identificar cual es la actividad precisa que queremos expresar en nuestro modelo. Digamos que estamos hablando de las llamadas de voz. Así que decimos:

“El usuario del teléfono levanta el auricular y marca el número de destino. Al completar la secuencia de dígitos la conexión se realiza. Por medio de tonos particulares el sistema indica el estado de error y de progreso en la conexión”.

El párrafo previo contiene la esencia de la situación de llamar por teléfono. A esta breve descripción le llamamos Caso de Uso por cuanto describe la interacción entre un actor -el usuario- y el sistema -el teléfono- indicando el requisito funcional que se exige al sistema.

Ahora bien, ciertamente es difícil referirse a este caso de uso diciendo cada vez el párrafo completo. Por esto le vamos a poner un nombre y un código de identificación. Digamos que le llamamos llamada de voz y que le colocamos el código CS-0100.

Además es claro que antes de hacer la llamada de voz es necesario que el teléfono este colgado así que podemos pensar en una precondición: el teléfono ha de estar colgado.

Armados con estos datos, podemos construir una tabla que resuma lo que tenemos en nuestro caso de uso:

Código: CS-0100.
Nombre: Llamada de voz.
Actores: Usuario.
Descripción: El usuario del teléfono levanta el auricular y marca el número de destino. Al completar la secuencia de dígitos la conexión se realiza. Por medio de tonos particulares el sistema indica el estado de error y de progreso en la conexión.
Precondición: El teléfono está colgado.
Postcondición: Ninguna.

Tabla 1 – Detalle de un sencillo Caso de Uso

Y aún más, podemos construir un atractivo diagrama con el fin de comunicar lo que hemos hecho con los clientes.

Sencillo Modelo de Casos de Uso

Fig. 2 – Sencillo ejemplo de un Modelo de Casos de Uso

Si bien en la representación gráfica no aparecen ni la precondición ni la descripción, si en cambio nos ha permitido indicar que el caso de uso (el ovalo) esta en el alcance del proyecto, al haberlo colocado dentro del rectángulo que define los límites del sistema. Por cierto, a dicho rectángulo lo llamamos sujeto en la especificación de UML.

Si en la revisión con los stakeholders identificamos que el caso de uso CS-0100 (el del ejemplo) merece ser detallado más cuidadosamente, entonces y solo entonces, podemos invertir algo de tiempo en la creación de los flujos de eventos. Observemos aquí, que la línea que une al actor con el caso de uso en el modelo gráfico quiere justamente hacer referencia al flujo de eventos.

Al flujo de eventos lo construimos como una tabla, indicando el número del paso el sujeto que realiza la acción y el paso de información que se hace. En aquellos pasos en que estemos hablando del sistema también vamos a indicar la operación o cálculo que este ha de efectuar con los datos. Por otra parte, el flujo de eventos lo vamos a iniciar, casi sin excepción, con el actor.

Flujo Principal:
Paso 1 – Usuario:
Levanta el auricular.
Paso 2 – Sistema: Da el tono de marcado.
Paso 3 – Usuario: Indica el número de teléfono.
Paso 4 – Sistema: Realiza la conexión. Da tono de aviso en tanto se levanta el teléfono del lado contrario de la conexión. Permite la conversación al hacerse efectiva la conexión.
Paso 5 – Usuario: Conversa y al finalizar esta, tranca el teléfono.
Paso 6 – Sistema: Termina la conexión.

Tabla 2 – Flujo principal del Caso de Uso

Claro que no siempre las llamadas de voz se corresponden con este flujo de eventos. Sin embargo en un día feliz, cuando todo sale sin problemas, es de esta manera en que sucede. A lo que ocurre en todos los demás casos los vamos a tratar por medio de los flujos alternativos.

Los flujos alternativos pueden ser vistos como una forma de manejo de errores o bien, como un medio para especificar el comportamiento del sistema en caso de un error. Siendo así el caso, una forma de indicarlo es decir una aserción sobre un paso y la acción a tomar cuando esta se viola. Entre las posibles acciones podríamos tener: terminar el caso de uso, saltar a otro paso, presentar un reporte y continuar, etc.

Digamos entonces para efectos del ejemplo, que queremos especificar el comportamiento del sistema cuando el operador a indicado un número inexistente. El siguiente flujo alternativo trata esa situación:

Flujo alternativo: Número incorrecto
Paso 3 – El sistema:
Presenta tono de error y el caso de uso termina.

Tabla 3 – Flujo alternativo del Caso de Uso

Aceptando que claramente es posible indicar tantos flujos alternativos como sean necesarios, además de especificar post condiciones y requisitos no-funcionales relacionados, tenemos entonces un caso de uso sencillo modelado quizás más completamente que lo que en realidad vale la pena. Pongamos todo junto:

Código: CS-0100.
Nombre: Llamada de voz.
Actores: Usuario.
Descripción: El usuario del teléfono levanta el auricular y marca el número de destino. Al completar la secuencia de dígitos la conexión se realiza. Por medio de tonos particulares el sistema indica el estado de error y de progreso en la conexión.
Precondición: El teléfono está colgado.
Postcondición: Ninguna.
Diagrama:

Sencillo Modelo de Casos de Uso

Flujo Principal:
Paso 1 – Usuario:
Levanta el auricular.
Paso 2 – Sistema: Da el tono de marcado.
Paso 3 – Usuario: Indica el número de teléfono.
Paso 4 – Sistema: Realiza la conexión. Da tono de aviso en tanto se levanta el teléfono del lado contrario de la conexión. Permite la conversación al hacerse efectiva la conexión.
Paso 5 – Usuario: Conversa y al finalizar esta, tranca el teléfono.
Paso 6 – Sistema: Termina la conexión.

Flujo alternativo: Número incorrecto
Paso 3 – El sistema:
Presenta tono de error y el caso de uso termina.

Tabla 4 - Caso de Uso completo

Un modelo de casos de uso es entonces una especificación de funcionalidad desde el punto de vista de la interacción del sistema con sus actores, apoyada en la representación gráfica para facilidad de comunicación pero constituida principalmente por texto.

De momento es todo. Mucho más se puede decir sobre los casos de uso: características avanzadas como la relación de extensión y la relación de inclusión; pero en casi todos los casos priva que mientras más sencillo mantengamos la especificación mejor, lo sencillo se entiende más, y la especificación de requisitos ha de entenderse bien. Que tan sofisticado lo hagamos no es ni de lejos, tan importante como la claridad.

20 comentarios para "Ejemplo de caso de uso"

[...] Un ejemplo más completo de caso de uso puede ser encontrado en este blog, en la entrada Ejemplo de Caso de Uso. [...]

[...] posibles de ser representados con ayuda de un documento de texto. En este blog, podrá encontrar un ejemplo completo. Publicado por Iván Garcerant Archivado en Glosario, Requisitos ·Etiquetas: caso de uso, [...]

ME sirvio bastante, muchas gracias por publicar

que buen aporte gracias

Que bueno que guste el ejemplo que puse! ¿Tendrá algún sentido poner ejemplos adicionales? ¿o se entiende bien con solo este pequeño ejemplo?

Hola buen dia!

El ejemplo es muy bueno, sencillo, claro y comprensible.

Gracias por tu aportación Iván, me sirve de mucho ahora que comienzo con UML y algunas herramientas de diseño.

Hasta Luego

Mejor, imposible!, como principiante me ha resultado muy útil el ejemplo de caso de uso. Lo felicito por su fino humor.

Existe un programa gratis donde se pueda realizar el modelado de caso de usu y diagrama de clase

¡Claro que sí Paula! Hay varias opciones, la que más te recomiendo, por ser la que yo mismo utilizo, es StarUML (http://www.staruml.com/) Este programa es el que use para los diagramas de este post así como los de la mayoría del blog. Un punto bueno de StarUML es que no solo podrás hacer el diagrama, sino también los reportes en formato de MS Word con lo que te vas a ahorrar mucho tiempo.

Las otras opciones no son igual de capaces que StarUML, pero quizás también te resulten útiles. El programa ArgoUML (http://argouml.tigris.org/) y el editor Dia (http://www.gnome.org/projects/dia/) son opciones libres que vale la pena evaluar. Ambas también las he utilizado en algunos gráficos del blog con muy buenos resultados.

Visual Paradigm (http://www.visual-paradigm.com/) es una herramienta comercial con una versión personal que puedes utilizar en proyectos pequeños. Tiene un amplio rango de funcionalidades y lo recomiendo mucho. Sin embargo no es libre para usarlo comercialmente.

Ahora que si vamos a hablar de software comercial, la herramienta que me tiene más sorprendido es MagicDraw (http://www.magicdraw.com/) las características que tiene son las más potentes y supera a clásicos como Rational Rose (http://www-01.ibm.com/software/rational/)

En verdad hay muchas opciones. Si te quieres ahorrar la búsqueda, ve directo a StarUML. No te vas a arrepentir.

gracias

emmmmmmmmm
chao

Iván

Sin duda una introducción muy útil a los casos de uso. Ya había leído tu post, pero no lo había comentado porque no tenía nada que discutirle. Ya que me has invitado a leerlo, aprovecho para contribuir invitando a los interesados en profundizar en el tema de los casos de uso y el modelado con UML dentro de un esquema RUP/UP a leer el libro de Craig Larman “Applying UML and Patterns”. Sin duda un clásico de la literatura de desarrollo de software que viene muy a tono no sólo con este post sino con todo tu blog.

Un saludo

Hola!! Solo para aportar algo sobre los software para el modelado UML, existe una herramienta (comercial) pero muy poderosa llamada Enterprise Architect, la cual permite hacer diagramaciones como

- Casos de uso
- Diagramas de estados
- Diagramas de Transiciones
- Diagramas de clases
- etc,

Te genera los codigos en el lenguaje que prefieras y ademas, los reportes en formato RTF (el cual puedes abrir en MS Word).

Ademas de modelados de bases de datos en MySQL, PostgreSQL, SQL Server, etc, con sus diagramas, claro está.

Aqui la versión de demostración en inglés:

http://www.sparxsystems.com.ar/download/easetup.exe

Saludos dsd Tabasco, Mexico.

Yo estoy teniendo muy buena experiencia con BoUML. Recomendable 100%.

http://bouml.free.fr/

Es una herramienta libre y bastante completa.

Sds.

Excelente articulo… Mil felicitaciones. Me ha servido mucho

su ejemplo esta muy bueno, pero lo unico que les falta es como demostrar un poco mas graficamente el mismo

Saludos yhon!

Debes tomar en cuenta que los casos de uso son principalmente artefactos de texto. Los diagramas de casos de uso son útiles para organizar y presentar la información, pero los requisitos están siempre documentados en las partes de texto, como lo son la descripción breve y los flujos de eventos.

excelente articulo y ejemplo, felicitaciones!!

desde Chile!

Buen ejemplo y es super bueno hacer la diferencia entre caso de uso y diagrama de caso de uso.

esta bien. adiosito

Esta cañon.adiosito

Escribe un comentario