11/07/2022
En el mundo de la ingeniería de software y sistemas, comprender a fondo los requisitos de un proyecto es fundamental para su éxito. Una de las metodologías más efectivas y ampliamente utilizadas para lograrlo es el uso de los casos de uso. Pero, ¿qué son exactamente y por qué son tan importantes?

Un caso de uso es una técnica empleada en el análisis de sistemas para identificar, clarificar y organizar los requisitos. Se compone de un conjunto de secuencias posibles de interacciones entre sistemas y usuarios en un entorno particular, todas relacionadas con un objetivo específico. En esencia, documenta todos los pasos que un usuario realiza para completar una actividad dentro del sistema. Los analistas de negocio suelen ser los responsables de redactar los casos de uso, y se utilizan en diversas etapas del desarrollo de software, desde la planificación de requisitos hasta la validación del diseño y las pruebas.
¿Qué se Entiende por Caso de Uso?
Los casos de uso describen los requisitos funcionales de un sistema desde la perspectiva del usuario final, creando una secuencia de eventos enfocada en un objetivo que es fácil de seguir tanto para usuarios como para desarrolladores. Ayudan a los equipos a comprender cómo un usuario interactúa con un sistema o producto.

Por ejemplo, en el desarrollo de software, si estás creando una tienda en línea, deberás pensar en cómo tus clientes interactuarían con tu sitio web. Un caso de uso como "El cliente realiza una compra" detallaría pasos como: ¿Es un usuario registrado o nuevo? ¿Cómo agrega un artículo al carrito? ¿Cómo elimina un artículo? ¿Qué información necesita para finalizar la compra?
En el desarrollo de productos, los casos de uso ayudan a los gestores de proyectos y desarrolladores a entender, desde una perspectiva de análisis y gestión empresarial, cómo un usuario interactúa con un producto físico o digital más complejo. Identifican cada forma en que un usuario interactuaría con ese producto para lograr un fin.
Anatomía y Elementos Clave de un Caso de Uso
Todo caso de uso contiene elementos esenciales que definen la interacción y el objetivo. Comprender estos componentes es crucial para redactar casos de uso efectivos:
- El Actor: Es una entidad externa al sistema que interactúa con él y demanda una funcionalidad. Puede ser una persona (definiendo un rol, por lo que una persona puede ser varios actores) o un sistema externo (como un servicio de autenticación o un rastreador de inventario). El actor principal es el que inicia la interacción con el sistema o producto, aunque puede haber actores secundarios que también participen.
- El Objetivo: Es el resultado final exitoso que completa el proceso. Es lo que el actor espera lograr al interactuar con el sistema.
- El Sistema: Se refiere al proceso y los pasos que se toman para alcanzar el objetivo final. Incluye los requisitos funcionales necesarios y sus comportamientos anticipados. Es el espacio donde se anotan cada uno de los pasos de la interacción.
Además de estos elementos básicos, al redactar un caso de uso se pueden considerar otros:
- Interesados (Stakeholders): Cualquier persona con un interés o inversión en el rendimiento del sistema.
- Pre-condiciones: Elementos que deben ser verdaderos antes de que un caso de uso pueda comenzar.
- Disparadores (Triggers): Los eventos que causan el inicio del caso de uso.
- Post-condiciones: Lo que el sistema debe haber completado al finalizar los pasos.
Flujos y Escenarios: Normales y Alternativos
Dentro de la descripción del sistema, se detalla el curso normal de eventos. Esta es la descripción paso a paso que explica cómo el actor alcanzará el objetivo de manera exitosa y esperada. Sin embargo, la realidad no siempre sigue el camino ideal.
Por ello, es vital incluir cursos alternativos. Estos abordan diferentes trayectorias que puede tomar la interacción. Un flujo alternativo describe variaciones normales del flujo básico o situaciones inusuales. Es importante destacar que, incluso si un actor sigue un flujo alternativo, el objetivo deseado aún debería alcanzarse (aunque por un camino distinto).

Finalmente, se definen los escenarios de éxito y fracaso. Un escenario de éxito es cuando el actor completa todos los pasos del sistema satisfactoriamente y logra su objetivo. Siempre se debe esbozar el escenario principal de éxito. Un escenario de fracaso es el resultado si el actor no logra alcanzar su meta, quizás debido a un obstáculo o a la indisponibilidad de un recurso (como un artículo agotado en el ejemplo de la tienda online).
Tipos de Casos de Uso
Existen dos tipos principales de casos de uso, diferenciados por su nivel de detalle y enfoque:
- Casos de Uso de Negocio: Son descripciones más abstractas, escritas de forma agnóstica a la tecnología. Se refieren únicamente al proceso de negocio que se describe y a los actores involucrados en la actividad. Identifican la secuencia de acciones que el negocio necesita realizar para proporcionar un resultado significativo y observable al usuario final. Suelen tener un alcance empresarial.
- Casos de Uso de Sistema: Se escriben con mucho más detalle que los casos de uso de negocio. Hacen referencia a los procesos específicos que deben ocurrir en diversas partes del sistema para alcanzar el objetivo del usuario final. Detallan especificaciones funcionales, incluyendo dependencias y características internas necesarias.
Relaciones entre Casos de Uso y Actores
En un modelo de casos de uso, se representan diversas relaciones:
- Comunica (<
>): Esta relación de asociación entre un actor y un caso de uso denota la participación del actor en dicho caso de uso. Si el actor es primario, inicia la comunicación; si es secundario, el sistema la inicia. - Usa (<
>) o Incluye (< Es una relación de dependencia entre dos casos de uso que denota la inclusión del comportamiento de un escenario en otro. Se utiliza cuando una parte del comportamiento es común a varios casos de uso y se quiere evitar repetir su descripción. Si un actor realiza el caso de uso base, también realiza el caso de uso incluido.>): - Extiende (<
>): Este estereotipo de dependencia ofrece una forma de extensión más controlada. El caso de uso base declara puntos de extensión, y el caso de uso especializado solo puede alterar el comportamiento en esos puntos. Se utiliza cuando un caso de uso es una variante de otro, haciendo algo más. Un actor que realiza el caso de uso base puede realizar o no sus extensiones. - Generalización: Indica que un caso de uso (el especializado) es una variante de otro (el base). El especializado puede variar cualquier aspecto del base. También puede haber herencia entre actores.
En resumen, se usa <
Beneficios de Utilizar Casos de Uso
Implementar la metodología de casos de uso aporta múltiples ventajas al proceso de desarrollo:
- Organizan Requisitos Funcionales: Proporcionan una estructura clara para documentar lo que el sistema debe hacer.
- Modelan Objetivos: Se centran en las metas del usuario, asegurando que el sistema satisfaga sus necesidades reales.
- Identifican Necesidades Tempranamente: Al enfocarse en el usuario y el sistema, las necesidades clave se detectan en las primeras etapas del diseño.
- Facilitan la Comunicación: Al estar escritos a menudo en lenguaje narrativo y no técnico, son fácilmente comprendidos por todas las partes interesadas (clientes, usuarios, ejecutivos, desarrolladores).
- Reducen Errores y Omisiones: Al considerar flujos alternativos y excepciones, ayudan a definir requisitos sutiles y a anticipar problemas.
- Evitan la "Expansión del Alcance" (Scope Creep): Al definir claramente los límites del sistema en el alcance del diseño del caso de uso, se ayuda a mantener el proyecto enfocado.
- Sirven como Base para Pruebas: Los casos de uso se transforman fácilmente en casos de prueba funcionales, mapeando los flujos normales y alternativos.
- Apoyan la Planificación: La lista de objetivos puede usarse para estimar la complejidad y el costo del sistema.
- Guían la Documentación: Son una excelente base para crear ayuda en línea y manuales de usuario.
La técnica de caso de uso es particularmente exitosa en sistemas interactivos porque expresa la intención del actor al usar el sistema, centrando al analista en las necesidades del usuario y ayudando a priorizar los requisitos que aportan mayor valor al negocio.
¿Cómo Redactar un Caso de Uso Empresarial?
Redactar casos de uso de manera efectiva sigue un proceso estructurado:
- Define a tu Actor Principal: Identifica quién (persona o sistema externo) interactuará con el producto o sistema. Considera segmentar a tu público si son clientes para entender sus roles y comportamientos.
- Determina los Objetivos del Actor: Define claramente qué espera lograr el actor al interactuar con el sistema. Cada objetivo se convierte en un caso de uso potencial.
- Traza tu Modelo de Caso de Uso: Representa visualmente (diagrama de casos de uso) o textualmente el actor, el objetivo y el sistema.
- Describe el Curso Normal de Eventos: Detalla paso a paso la secuencia ideal de interacciones para que el actor alcance su objetivo.
- Considera los Cursos Alternativos: Identifica y describe las diferentes trayectorias posibles que pueden desviarse del flujo normal pero que aún buscan alcanzar el mismo objetivo.
- Define Escenarios de Fracaso: Describe qué sucede si el actor no logra alcanzar su objetivo y por qué.
- Repite: Sigue este proceso para todos los demás actores y sus objetivos relevantes dentro del sistema.
Al redactar, se suele seguir una plantilla estandarizada que incluye campos como ID, Nombre, Descripción, Trigger, Pre-condición, Post-condición, Flujo Normal, Flujos Alternativos, Includes, Frecuencia de Uso, Reglas de Negocio, Requisitos Especiales, Notas y Asuntos.

Casos de Uso vs. Historias de Usuario vs. Flujos de Proceso
Aunque a veces se confunden, estos términos tienen propósitos distintos en la documentación de requisitos:
| Característica | Caso de Uso | Historia de Usuario | Flujo de Proceso |
|---|---|---|---|
| Enfoque principal | Interacciones actor-sistema para lograr un objetivo | Necesidades y deseos del usuario, el beneficio obtenido | Secuencia general de pasos para lograr un objetivo (puede involucrar personas, sistemas, objetos) |
| Nivel de detalle | Alto, describe pasos específicos, flujos normales y alternativos | Bajo, descripción breve (plantilla "Como... puedo... para que...") | Medio/Alto, describe cada paso, pero no necesariamente todas las interacciones detalladas con un sistema específico |
| Aplicación principal | Ingeniería de Software/Sistemas, Desarrollo de Producto | Metodologías Ágiles (Scrum) | Documentación general de procesos de negocio, guías paso a paso |
| Propósito | Identificar, clarificar, organizar requisitos funcionales; base para pruebas y diseño | Generar conversación sobre requisitos; priorizar funcionalidades basadas en valor | Documentar procedimientos operativos; formación; mejora de procesos |
| Formato típico | Documento textual detallado, diagrama UML | Frase corta | Diagrama de flujo, lista de pasos, guía |
Mientras que un caso de uso detalla el cómo el sistema actúa para satisfacer un objetivo, una historia de usuario se centra en el por qué (el beneficio) y el qué general quiere el usuario. Los flujos de proceso son más amplios y cubren la secuencia de actividades sin limitarse a la interacción con un sistema específico.
Un Poco de Historia
El concepto de caso de uso fue introducido en 1986 por Ivar Jacobson, una figura clave en el desarrollo de UML y el Proceso Unificado. Posteriormente, Alistair Cockburn realizó contribuciones significativas, especialmente en su libro "Escribir Casos de Uso Efectivos" (2000), que influyó en la definición del término. Durante los años 90, los casos de uso se popularizaron, particularmente con la programación orientada a objetos, aunque son aplicables a otros paradigmas.
Normas de Aplicación y Limitaciones
Al aplicar los casos de uso, es importante seguir ciertas normas: evitar el lenguaje técnico, usar el lenguaje del usuario o experto del dominio, trabajar en colaboración con los clientes, centrarse en una única meta por caso de uso y mantener un nivel de detalle apropiado. Describen el comportamiento observable del sistema desde fuera, no su funcionamiento interno.

A pesar de sus beneficios, los casos de uso tienen limitaciones. Son excelentes para establecer requisitos de comportamiento, pero no definen completamente los requisitos funcionales ni los no funcionales por sí solos. Necesitan ser complementados con información adicional como reglas de negocio, requisitos no funcionales específicos y diccionarios de datos para proporcionar una visión completa del sistema.
Preguntas Frecuentes sobre Casos de Uso
Aquí respondemos algunas dudas comunes:
¿Quién crea los casos de uso?
Típicamente, los analistas de negocio o analistas de requisitos son los responsables de redactar los casos de uso, a menudo en colaboración con los clientes, usuarios y expertos del dominio.
¿Para qué se utilizan principalmente los casos de uso?
Se utilizan principalmente en ingeniería de software y sistemas para identificar, documentar y organizar los requisitos funcionales de un sistema desde la perspectiva del usuario. También son valiosos en el desarrollo de productos y como base para la planificación de pruebas y la documentación.

¿Cuál es la diferencia clave entre un caso de uso y una historia de usuario?
Un caso de uso es un documento detallado que describe la secuencia de interacciones entre un actor y un sistema para lograr un objetivo, incluyendo flujos normales y alternativos. Una historia de usuario es una descripción breve y de alto nivel del deseo o necesidad del usuario, enfocada en el beneficio, utilizada principalmente para generar conversación en metodologías ágiles.
¿Los casos de uso son solo para software?
Aunque nacieron en la ingeniería de software, el concepto se aplica también en el desarrollo de productos más generales para entender la interacción del usuario con el producto. La metodología descrita en la información provista se centra fuertemente en sistemas y software.
En conclusión, los casos de uso son una herramienta poderosa para comprender y definir lo que un sistema o producto debe hacer para satisfacer a sus usuarios. Al desglosar las interacciones en pasos claros y considerar diferentes escenarios, ayudan a construir sistemas que realmente resuelven las necesidades y alcanzan los objetivos deseados.
Si quieres conocer otros artículos parecidos a Casos de Uso: Requisitos de un Sistema puedes visitar la categoría Vivienda.
