En este artículo hablaré sobre como modelar los requisitos funcionales de un software mediante diagramas de casos de uso.
¿Qué son los casos de uso?
Un caso de uso es una descripción de las actividades que deben realizarse para llevar a cabo un proceso. Representan las funciones que proporciona un sistema que son de valor para sus usuarios.
En el siguiente ejemplo podemos ver un diagrama de casos de uso con dos componentes, un actor llamado usuario y un caso de uso registrarse. Ese caso de uso habrá que especificarlo para ver las actividades que hay que realizar para que se lleve a cabo el proceso de que un usuario se registre en nuestro sistema.
Los diagramas de caso de uso nos ayudan a modelar los requisitos funcionales de nuestro sistema, de tal forma que veremos las relaciones que existen entre los requisitos (casos de uso) y los actores (que pueden ser personas u otros sistemas). En sistemas medianamente grandes es imprescindible modelar los requisitos funcionales ya que podemos tener 50 requisitos por ejemplo y si no los vemos de una forma más abstracta sería imposible seguir adelante.
Componentes de un diagrama de casos de uso
A continuación explicaré los componentes que existen en un diagrama de casos de uso.
Caso de uso
Los casos de uso corresponden con los requisitos funcionales del sistema. Si vamos a realizar un sistema para gestionar los préstamos de una biblioteca tendremos un requisitos que nos diga: El empleado de la biblioteca seleccionará la opción de “Prestar Libro” para hacer efectivo el préstamo. La idea es que cuando alguien quiera coger un libro prestado, irá al mostrador, el empleado pulsará en “Prestar Libro”, introducirá los datos del libro y del cliente y el préstamo quedará registrado en el sistema. Eso se modelaría asi:
Actores
Los actores son los que interactúan con el sistema. Como he dicho antes pueden ser humanos (un usuario, el empleado de la biblioteca, etc) u otros sistemas. Se representan con esa especie de muñeco o monigote.
Relaciones
Podemos tener relaciones entre actores y casos de uso como hemos visto antes o entre casos de uso. Las relaciones que tenemos son:
- Asociación: La asociación sólo es entre actores y casos de uso. Denota la participación de ese actor en ese caso de uso. En los ejemplos anteriores podéis ver esa relación.
- Inclusión: Esta relación es entre dos casos de uso. Se usa para evitar describir el mismo flujo de eventos repetidas veces. Siguiendo con el ejemplo de la biblioteca, supongamos que si un usuario tiene 3 libros prestados no puede coger otro libro. Por tanto cuando el empleado de la biblioteca vaya a registrar el préstamo, el sistema tendrá que comprobar los préstamos que tiene ese usuario. Ese se podría modelar así:
- Extensión: Esta relación también es entre dos casos de uso. Se utiliza cuando un caso de uso extiende el comportamiento de otro. Sirven para separar el comportamiento obligatorio del opcional, o para modelar ciertos subflujos de eventos que se ejecutan sólo bajo ciertas condiciones. Imaginemos que queremos modelar el funcionamiento de un tienda online. Los usuarios pueden realizar pedidos. Cuando están realizando el pedido hay una opción que es “urgente”. Si seleccionan esa opción el pedido se envía lo más rápido posible aunque el coste será mayor. Eso lo modelariamos de la siguiente forma:
- Generalización: La generalización en los casos de uso es igual que la de las clases. Tenemos un caso de uso abstracto cuyo comportamiento lo proporcionarán sus hijos. Por ejemplo hay sistemas en los que es necesario validarse para poder usarlos. Podemos validarnos con la típica forma de usuario y contraseña o con formas más futuristas como la comprobación de retina o de huellas dactilares. Eso lo podemos modelar así:
Especificación de casos de uso
Cuando hemos identificado los casos de uso tenemos que realizar su especificación, que incluirá una descripción del caso de uso, precondiciones para que se dé el caso de uso, postcondiciones o que es lo que pasará cuando se ejecute el caso de uso, y lo más importante, el flujo de eventos. Para especificar los casos de uso suelen usarse plantillas como la del siguiente ejemplo, que se trata de la especificación del caso de uso Generar Factura.
Hasta aquí el artículo de hoy. Ahora tendréis un poco más claro este proceso básico en la ingeniería de requisitos y en la ingeniería del software.
El artículo Diagrama de Casos de Uso apareció por primera vez en Instinto Binario.