Desarrollo de software. Casos de uso II

En este artículo, voy a centrarme en exponer una definición de lo que son los casos de uso, los actores y las relaciones que existen entre casos los casos de uso.

Independientemente de lo que comente, lo importante es ser conscientes de que los casos de uso describen comportamientos del sistema ante interacciones con agentes externos y que esa descripción se puede hacer de múltiples formas, de manera que para un sistema de información puede haber una infinidad de soluciones que sean totalmente válidas.

¿Qué es un caso de uso?

– Conjunto de funcionalidad.
– Tienen relación con uno o más requisitos funcionales del sistema.
– Logra un objetivo discreto para el usuario.
– Visión de caja negra con respecto a los actores en cuanto a que reciben una petición y devuelven unos resultados.
– Con significado en sí mismo.
– Externamente visible (con excepción de algunos casos de uso que sean utilizados por otros), de manera que especifica la forma de funcionar del sistema tal y como se vería desde el exterior (capta una funcionalidad visible para el usuario).
– Aporta valor al actor que lo utiliza.
– Se expresaría como una secuencia de mensajes intercambiados por el sistema y uno o más actores.

¿Qué es un actor?

– Entidad externa al sistema que interactúa con él.
– Puede ser humano u otro sistema (externo).

¿Cuáles son las relaciones entre casos de uso?

Include: se representa como una flecha discontínua entre un caso de uso y otro. El sentido de la flecha va del caso de uso principal al secundario, estereotipada con la palabra include. Viene a representar que el caso de uso principal incluye al secundario, es decir, que hace uso del mismo para poder llevar a cabo su funcionalidad. Este tipo de casos de uso tienen razón de ser en aquellos casos donde un funcionalidad o comportamiento pueda ser utilizado por diferentes casos de uso o bien, porque la complejidad de un caso de uso, aconseje que se fraccione su comportamiento en diversos casos de uso.

Extend: se representa como una flecha discontínua entre un caso de uso y otro. El sentido de la flecha va del caso de uso secundario al principal, estereotipada con la palabra extend. En este caso, el caso de uso secundario proporciona una funcionalidad adicional al caso de uso principal, pero que solo se produce en algún caso, es decir, existirán circunstancias en las cuales el caso de uso principal se ejecutará completamente sin que para ello tenga que hacer uso del caso de uso que lo extiende, en esto se diferencia del include donde necesariamente se tiene que llevar a cabo el caso de uso secundario para que se pueda realizar el objetivo que persigue el caso de uso principal (en su camino básico). Por este motivo, si un caso de uso es extendido por otro, debe tener un camino alternativo que haga referencia a ese comportamiento que proporciona el otro caso de uso, pero que no se ejecuta en todos los casos.

Herencia: este tipo de relación se utiliza con mucho menos frecuencia que las anteriores, de hecho es muy utilizada entre los actores, pero por ejemplo en los diagramas de casos de uso que suelen entregar en proyectos de mi organización casi nunca los he visto aplicados a los casos de uso. Cuando un caso de uso hereda de otro, conserva su comportamiento. Se representa como una línea continua que va del caso de uso específico al más abstracto teniendo en el extremo el triángulo que representa la generalización en UML. En este tipo de relaciones el caso de uso específico hereda todas las características del más general, permitiendo dotarle de un significado y funcionalidad concreto.

Deja un comentario