Gestión de los Requisitos (y II) : los casos
de uso
Gestión
de los Requisitos (y II) : los casos de uso
1.
Introducción a la Gestión de Casos de Uso
3 Casos de
uso para usuarios finales
4 Elementos
de un caso de uso estandarizado
5 Escribir
el flujo de un caso de uso
6
Organización de los casos de uso
Resumen
Cuando vamos a abordar el desarrollo de un proyecto, ya sea
de ingeniería de software o de cualquier campo, una de sus primeras
etapas es la definición de los requisitos del proyecto. Para ello
debemos saber qué son los requisitos, cómo se capturan,
cómo se analizan y cómo se realiza la definición final de
requisitos del proyecto.
En este artículo vamos a realizar una
introducción a la gestión de requisitos para el desarrollo de un
sistema informático. Vamos a comenzar definiendo lo que son los
requisitos: Luego veremos diferentes técnicas de captura de requisitos.
También dedicaremos un apartado a la organización de los
requisitos. Otro apartado que vamos a incluir es el dedicado a los Casos de
Uso, ampliamente usados como complemento a la toma de requisitos del sistema.
En el artículo anterior de la serie nos centramos en
la gestión general de los requisitos, ahora nos vamos a centrar en la
gestión de los casos de uso, pues es una muy buena herramienta de
generación y análisis de requisitos para nuestros sistemas. El
objetivo de este artículo es ampliar el paquete de herramientas del
analista para generar casos de uso más eficiente y fáciles de
leer, proporcionándole diferentes criterios para que enfoque la
creación de los casos de uso según la audiencia de sus
documentos.
1. Introducción a la Gestión de Casos
de Uso
Los requisitos de un sistema son los aspectos que el sistema
desarrollado debe cumplir. Surgen de las necesidades del cliente, de las
limitaciones del entorno donde se va a implantar o de la propia gestión
de la información que debe realizar el sistema. Normalmente van a
representar valores que debe cumplir como mínimo o como máximo a
cada uno de los aspectos desarrollados del sistema. Los requisitos sirven para
acotar la funcionalidad o la construcción del sistema imponiendo límites
al diseño del sistema y enumerando todas las funcionalidades que debe
cubrir el sistema.
2. Casos de uso
La utilización de los casos de uso, ideados por Ivar
Jacobson, es una buena herramienta para la captura y el análisis de
requisitos más comunes en los proyectos de sistemas de gestión de
la información. Los casos de uso permiten definir de forma sencilla el
comportamiento del sistema desde el punto de vista de interacción con el
usuario u otros sistemas.
Un caso de uso es una descripción textual de la
secuencia de interacción de los usuarios (actores) con el sistema. Al
escribir el caso de uso se considera al sistema como una “caja
negra”, ya que no nos importa lo que sucede dentro sino las posibles
interacciones entre el sistema y el usuario. Los casos de uso son documentos de
texto breves (normalmente caben en una página) en la que se va
detallando los posibles caminos de interacción entre el usuario y el
sistema.
3 Casos de uso para usuarios finales
Antes de comenzar la descripción de un caso de uso en
su formato más habitual, es decir, para ser usado como parte de la
documentación de análisis y diseño de una
aplicación informática, vamos a describir un formato de caso de
uso más sencillo, que será el que podríamos presentar a
los usuarios finales del sistema, que normalmente no poseen conocimientos de
desarrollo de aplicaciones (ni falta que les hace…)
En este formato más sencillo sólo incluimos
tres elementos:
·
Nombre del caso de uso
·
Descripción breve de la funcionalidad que cubre.
Normalmente serán sólo unas pocas líneas de texto.
·
Descripción textual sencilla de la interacción
entre el usuario y el sistema. En esta descripción sólo
incluiremos los aspectos relevantes de la interacción, omitiendo todos
los detalles técnicos de la misma. Distinguiremos claramente el flujo de
interacción, creando un párrafo de texto para cada paso de la
interacción. Podemos usar la indentación sugerida en la
descripción formal del caso de uso, descrita en el siguiente apartado,
pues el usuario la entenderá fácilmente. Es importante que el
estilo visual del caso de uso sea muy sencillo, con indentaciones claras de
cada párrafo.
Un ejemplo de caso de uso para usuario final podría
ser el siguiente:
Nombre: Alta de nuevo curso de formación Descripción: Este caso de uso cubre la Flujo funcional: El usuario llegará hasta 1. Elección a. b. c. 2. a. b. 3. a. b. c. 4. 5. 6. Publicar
|
En este caso de uso no he pretendido ser exhaustivo, sino
simplemente que se capte la idea de lo que puede ser un caso de uso explicado
para un usuario final. Por ejemplo la consulta de alumnos realmente llama a la
pantalla de selección de alumnos, pero eso es un detalle técnico
que he omitido. A la vista de este caso de uso el usuario sabe que tiene que
completar seis pasos para dar de alta un curso, sabe el orden en que tiene que
darlos y las opciones disponibles en cada uno de ellos, por lo tanto es capaz
de imaginar cómo el sistema va a realizar este proceso siguiendo sus
instrucciones.
4 Elementos de un caso de uso estandarizado
Para escribir un caso de uso basta usar una plantilla muy
simple de documento que debe contener al menos el nombre del caso de uso, la
descripción corta del mismo y el flujo del caso de uso.. Un caso de uso
puede contener por ejemplo las siguientes propiedades:
§ Identificador
único. Conviene darle un número de referencia único a cada
caso de uso, pues será muy útil para la matriz de trazabilidad,
para que sea más compacta.
§ Nombre o
título. Una línea indicando el nombre del nuevo caso de uso.
§ Descripción o
resumen. Un breve resumen de la funcionalidad que cubre el caso de uso.
§ Actores: Los actores
del sistema que van a poder ejecutar este caso de uso. Pueden ser usuarios del
sistema, procesos automáticos y otros sistemas externos.
§ Flujo o secuencia.
Representa la secuencia de interacción entre el actor y el sistema.
§ Flujos alternativos. Son
los diferentes flujos que podría tomar el caso de uso. Normalmente si el
sistema tiene una capa de presentación se suele incluir un flujo de
error para mostrar al usuario los errores dentro del flujo principal o
alternativo.
§ Precondiciones. Representan
las condiciones que se deben dar en el sistema para poder ejecutar este caso de
uso.
§ Poscondiciones.
Indica cómo debe quedar el sistema tras la ejecución del caso de
uso.
§ Casos de uso asociados.
Se puede incluir la lista de casos de uso que usan este caso de uso, o en los
que está incluido.
§ Versión. Es
el identificador de la versión actual del caso de uso.
§ Fechas de
Creación y última modificación.
Esto no pretende ser una lista
exhaustiva de propiedades de un caso de uso. Como siempre, deberemos adaptar
nuestra plantilla para crear casos de uso a las necesidades de nuestro
proyecto.
5 Escribir el flujo de un caso de uso
Para escribir el flujo del caso de uso basta con poner una
línea por cada interacción, indicando si el origen es el usuario
(actor) o el sistema. Normalmente el caso de uso será un diálogo
entre el usuario y el sistema. Por ejemplo:
- Usuario. El usuario realiza una petición al
navegador para visualizar la pantalla de login. - Sistema. Se presenta al usuario la pantalla de login a la
aplicación - Usuario. Introduce su nombre de usuario y una
contraseña. Pulsa el botón “Iniciar
sesión” - Sistema. Se muestra la pantalla principal de la
aplicación.
En realidad no hay un estándar para crear el texto
del flujo de un caso de uso. Yo particularmente sigo estas normas:
§ Uso listas numeradas por
números para cada paso de una secuencia.
§ Uso listas numeradas por
letras para pasos opcionales alternativas dentro de la secuencia
§ Uso marcadores sencillos
para indicar si los pasos alternativos son excluyentes, si algunos pasos se
deben repetir hasta o mientras se cumpla una condición, etc.
§ Se llama a subcasos de uso
para completar tareas más específicas o para romper un caso de
uso muy grande en casos de uso más sencillos.
Hay que tener en cuenta
que la notación de los casos de uso no es excesivamente precisa. Por
ejemplo, las opciones de uno de los puntos del flujo podrían ser
excluyentes o no. Si queremos complicar la notación podemos ir
añadiendo diferentes elementos. Por ejemplo, podemos usar letras
mayúsculas para opciones excluyentes y minúsculas para
alternativas simples. Veremos un ejemplo de notación un poco más
sofisticada con el uso de estereotipos de casos de uso.
6 Organización de los casos de uso
Igual que los requisitos los hemos organizado por grupos, los
casos de uso se pueden organizar en los mismos grupos. Lo normal es utilizar la
misma clasificación y agrupación que para los requisitos, bien
funcionalmente, bien por módulos, fases, entregas o productos
7 Ejemplos de casos de uso
Para ilustrar cómo hacer un caso de uso estandarizado
podemos ver el siguiente ejemplo:
Nombre: UC-AltaAlumno Alta de alumno Descripción: Este caso de uso describe el Actores: Gestores de formación Precondiciones: El alumno debe estar inscrito como Postcondiciones. Ninguna Flujo: 1. El 2. El · · · · 3. El 4. El 5. Guardar 1. 2. 6. Cancelar 1. 2. a. b.
|
8 Casos de uso abreviados
Cuando hacemos los casos de uso del sistema para una
aplicación de gestión de gran tamaño encontraremos que
fácilmente obtenemos varias decenas de casos de uso. En este caso nos
aparecen varios problemas:
·
Es difícil seguir la navegación en el sistema
viendo los casos de uso, ya que nos obligan a movernos entre páginas de
un documento de gran tamaño
·
No se obtiene una visión global del sistema ya que la
información está recogida en cada caso de uso
·
No tenemos un resumen de todos los casos de uso que nos permita
comparar de manera sencilla unos con otros, detectar elementos repetidos o
refactorizar los casos de uso.
Para solventar estos problemas os propongo realizar una
versión abreviada de los casos de uso. Para escribir el resumen
abreviado:
1. El
nivel superior será las agrupaciones funcionales de casos de uso que
hemos creado
2. En
el siguiente nivel introduciremos todos los casos de uso de cada
agrupación: Los casos de uso los marcaremos subrayándolos (por
ejemplo) o mejor utilizando hipervínculos, para facilitar la
navegación entre casos de uso
3. En
cada caso de uso introduciremos la siguiente información.
o
Junto al nombre del caso de uso pondremos los parámetros
de entrada y salida.
o
Si el caso de uso utiliza la pantalla de otro caso de uso
se indica “Como Nombre del caso de uso” pero (modificaciones a
tener en cuenta). En este caso los elementos del caso de uso nuevo se
añadirán o reemplazarán a los existentes en el caso de uso
referido.
o
Si desde una pantalla vamos a navegar a otra, en la acción
ponemos: Navega a Nombre de caso de uso
o
Si en una acción llamamos a una pantalla para completar la
acción (vamos a la pantalla y luego volvemos) ponemos: Usa Nombre del
caso de uso
o
Iconos y enlaces descriptivos. Icono o enlace de pantalla: lleva
a la pantalla que define el caso de uso. Icono o enlace de perfil: actores
(usuarios) que pueden ejecutar el caso de uso
o
Filtros aplicados. Si los listados tienen un filtro fijo sobre el
listado de entidades, se especifica
o
Criterios de filtrado seleccionables por el usuario
o
Los datos a mostrar los agruparemos en conjuntos, por ejemplo:
Datos de Alumno (nombre, dirección, etc), Datos de formador (nombre,
dirección, etc)
o
Listados. Por ejemplo Listado de Alumnos (nombre,
dirección, nivel, etc.), Listado de Cursos (código, nombre Curso,
área, etc)
o
Acciones. Por ejemplo Acció: Guardar. Guarda los cambios y
sale. Si una acción llama a un nuevo caso de uso se indica: Usa “nombre
del caso de uso”
Para ilustrar este sistema de descripción de casos de
uso voy a mostrar como ejemplo (no completo) un sistema de gestión de un
centro de formación
Sistema de gestión de Centro de formación
General
·
Login
o Datos de usuario
o Acciones: Iniciar Sesión. Si OK navega a Menú principal
· Menú principal
o Datos de cabecera (publicidad, rastro de migas, menú principal)
o Datos de Presentación (Imagen principal, texto de presentación)
o Datos de cursos recomendados
Mis Cursos
· Consulta de Cursos
o Criterios: Tipo de Curso, Ubicación, datos de curso
o Listado de Cursos: Código Curso, Nombre Curso, etc.
o Acciones: Buscar, Salir
o Acción: Detalle de curso. Usa Detalle de Curso
· Detalle de Curso
o Datos de Curso
o Datos de solicitud (si se ha solicitado dicho curso)
o Listado de lecciones
o Listado de Cursos similares recomendados
o Acción: Inscribirse en curso
o Acción: Comenzar curso. Usa Ejecutar Lección de e-Learning, posicionándose en la primera lección del curso
o Acción: Ejecutar lección. _Sobre la lección seleccionada, usa Ejecutar lección de e-learning
o Acción: Informe y Diploma. Usa Informe y Diploma del Curso
o Acción: Solicitar curso nuevo
· Ejecutar Lección e-learning
Gestión Alumnos
· Gestión de alumnos. Como Consulta de alumnos
o Acción: Nuevo Alumno
o Acción. Detalles del alumno seleccionado
o Acción: Dar de baja alumno
· Gestión de alumnos para Formador. Como Consulta de Alumnos, actual
o Filtro: aquellos alumnos que pertenecen a cursos impartidos por el formador
o Acción. Mandar un correo a alumnos. Abre un cuadro de diálogo para poner el texto del mensaje. Botón Enviar y Cancelar
· Consulta de alumnos
o Criterios: datos del curso
o Listado de alumnos (Nombre, documento)
o Acción Detalle de alumno. Con el alumno seleccionado a Detalle de Alumno
· Detalle de alumno
o Datos del Alumno
o Listado de cursos del alumno
o Listado de cursos solicitados del alumno
o Acción: Modificar. Permite modificar los datos del alumno
o Acción: Guardar: Guarda los cambios, Cancelar los cambios
o Acción: Salir
Gestión de Formadores
· Gestión de formadores
o Criterios: Datos del formador
o Listado de formadores
o Listado de cursos para un formador
o Acción: Nuevo Formador. Usa Detalle de formador con los datos en blanco
o Acción. Detalles del formador. Usa Detalle del formador con el formador seleccionado
o Acción: Dar de baja Formadores
o Acción: Salir
· Detalles de formador
o Datos de formador
o Listado de cursos del formador
o Acción: mandar un mensaje al formador. Abre un cuadro de di&aacutaacute;logo para enviar mensaje de correo.
o Acción: Modificar. Permite modificar el formador
o Acciones: Guardar y Cancelar los datos modificados
o Acción: Salir
Gestores de Cursos
· Consulta de cursos
· Detalles de Curso
· Modificar lecciones de curos
· Importar Curso
Biblioteca
Administración del sistema
· Gestión de usuarios
· Gestión de Grupos
· Gestión de Perfiles
9 Utilización de estereotipos
Todavía podemos simplificar más el listado abreviado de casos de uso. Para ello vamos a utilizar estereotipos, con lo cual los listados van a ser mucho más reducidos. Para usar estereotipos en nuestro listado debemos definir primero los estereotipos. En nuestros estereotipos de ejemplo, vamos a utilizar una notación semejante a la utilizada para el uso de plantillas en los lenguajes orientados a objetos.
Estereotipos de un sistema de gestión
o Selección de <Entidad>
o Criterios: Datos principales de <Entidad>
o Listado de <Entidad>: Datos principales de <Entidad>
o Acción: Detalle de <Entidad>. Usa Detalle de <Entidad> con la entidad seleccionada en el listado
o Acción: Selección de una <Entidad>. Devuelve al CU llamador la <Entidad> seleccionada del listado de <Entidad>.
o Selección múltiple de <Entidad>
o Criterios: Datos principales de <Entidad>
o Listado de <Entidad>: Datos principales de <Entidad>
o Acción: Detalle de <Entidad>. Usa Detalle de <Entidad> con la entidad seleccionada en el listado
o Acción: Selección múltiple de varias <Entidad>. Devuelve al CU llamador las <Entidad> seleccionadas del listado de <Entidad>.
o Gestión de <Entidad>. Como Consulta de <Entidad>
o Acción: Creación <Entidad>. Usa Creación de <Entidad>
o Acción: Modificación de <Entidad>. Usa Modificación de <Entidad>
o Acción: Borrado. Bora la <Entidad>
o Consulta de <Entidad>
o Criterios: Datos principales de <Entidad>
o Listado de <Entidad>: Datos principales de <Entidad>
o Acción: Detalle de <Entidad>. Usa Detalle de <Entidad> con la entidad seleccionada en el listado
o Acción: Salir
o Creación de <Entidad>. Como Modificación de <Entidad> pero con los datos en blanco
o Modificación de <Entidad>. Como Detalle de <Entidad>
o Acción Modificar. Permite modificar los datos de la entidad
o Acción: Guardar: Guarda los datos modificados de la entidad
o Acción: Cancelar. Muestra un diálogo de confirmación. Si Cancelar=OK se sale sin guardar los cambios
o Detalle de <Entidad>
o Datos principales de la <Entidad>
o Datos complementarios de <Entidad>
o Acción: Salir
Con estos estereotipos el ejemplo anterior se puede reescribir de la siguiente forma, que es más compacta:
General
· Login
o Datos de usuario
o Acciones: Iniciar Sesión. Si OK navega a Menú principal
· Menú principal
o Datos de cabecera (publicidad, rastro de migas, menú principal)
o Datos de Presentación (Imagen principal, texto de presentación)
o Datos de cursos recomendados
Mis Cursos
· Consulta de Cursos <Consulta>
o Criterios: Tipo de Curso, Ubicación, datos de curso
o Listado de Cursos: Código Curso, Nombre Curso, etc.
o Acciones: Buscar, Salir
o Acción: Detalle de curso. Usa Detalle de Curso
· Detalle de Curso <Detalle>
o Datos de solicitud (si se ha solicitado dicho curso)
o Listado de lecciones
o Listado de Cursos similares recomendados
o Acción: Inscribirse en curso
o Acción: Comenzar curso. Usa Ejecutar Lección de e-Learning, posicionándose en la primera lección del curso
o Acción: Ejecutar lección. _Sobre la lección seleccionada, usa Ejecutar lección de e-learning
o Acción: Informe y Diploma. Usa Informe y Diploma del Curso
o Acción: Solicitar curso nuevo
· Ejecutar Lección e-learning
Gestión Alumnos
· Gestión de alumnos. <Gestión>
· Gestión de alumnos para Formador. Como Consulta de Alumnos
o Filtro: aquellos alumnos que pertenecen a cursos impartidos por el formador actual
o Acción. Mandar un correo a alumnos. Abre un cuadro de diálogo para poner el texto del mensaje. Botón Enviar y Cancelar
· Consulta de alumnos <Consulta>
o Criterios: datos del curso
o Listado de alumnos (Nombre, documento)
· Detalle de alumno <Detalle>
o Listado de cursos del alumno
o Listado de cursos solicitados del alumno
Gestión de Formadores <Gestión>
· Gestión de formadores
o Criterios: Datos del formador
o Listado de formadores
o Listado de cursos para un formador
· Detalles de formador <Detalle>
o Listado de cursos del formador
o Acción: mandar un mensaje al formador. Abre un cuadro de diálogo para enviar mensaje de correo.
· Consulta de cursos <Consulta>
· Detalles de Curso <Detalle>
o Listado de lecciones
· Modificar lecciones de curos. <Gestión>
o Listado de lecciones
· Importar Curso
o Datos identificativos del curso
o Listado de Cursos importables
o Acción: importar curso seleccionado
Biblioteca
· Gestión de Libros <Gestión>
· Consulta de libros disponibles <Consulta>
o Filtro: estado = disponible
o Acción: reservar libro
· Consulta de libros reservados <Consulta>
o Filtro: estado = reservado
· Consulta de libros <Consulta>
· Creación de Libro <Creación>
· Modificación de Libro <Modificación>
· Detalle de libro<Detalle>
Administración del sistema
· Gestión de usuarios <Gestión>
· Creación Usuario <Creación>
· Modificación de Usuario <Modificación>
· Detalle usuario <Detalle>
· Listado de grupos a los que pertenece
· Listado de grupos a los que puede pertenecer
· Acción: asignar grupo seleccionado
· Acción: Desasignar grupo seleccionado
· Gestión de Grupos <Gestión>
· Creación de Grupo <Creación>
· Modificación de Grupo <Modificación>
· Detalle de Grupo <Detalle>
· Perfil de grupo
· Acción: Asignar perfil
· Gestión de Perfiles <Gestión>
· Creación de Perfil <Creación>
· Modificación de Perfil <Modificación>
· Detalle de perfil <Detalle>
o Listado de permisos asignados al perfil
o Listado de permisos disponibles
o Acción: asignar permiso al perfil
o Acción: Desasignar permiso al perfil
Como vemos, usando estereotipos podemos describir más funcionalidad escribiendo menos información. Por ejemplo, con un simple vistazo a la parte de administración, podemos hacernos una idea no sólo de las pantallas que van a utilizarse para realizar la administración, sino incluso del esquema de usuarios, grupos y perfiles que estamos usando. ¿Qué relación hay entre grupos y perfiles, o entre usuarios y grupos?
Y otra cosa, ¿cuántas pantallas debes construir para realizar la aplicación?
10 Conclusión
En este artículo hemos dado un repaso a las técnicas de gestión de casos de uso. Se dan algunos consejos útiles para la creación y gestión de nuestros casos de uso, pero sin intentar imponer una metodología en concreto.