Contexto
En todo proyecto en el que participes es importante que se aclaren sus alcances, se detallen sus objetivos y se elijan a los participantes desde antes de iniciar el proyecto. Esto permite que el administrador del proyecto tenga claras las metas que se esperan alcanzar y todos los involucrados reconozcan sus responsabilidades asignadas. Dicho alcance se documenta en el acta constitutiva del proyecto.
Un proyecto de desarrollo de sistemas no difiere de cualquier otro proyecto. También es necesario que se aclare el alcance y los objetivos del software desde antes de comenzar el diseño y construcción del sistema. Esto se logra a través de una exhaustiva documentación de las necesidades, requerimientos y expectativas que tiene el cliente, a través de las especificaciones de requerimientos.
Pero…
Explicación
6.1 Fundamentos de casos de uso
La herramienta fundamental en la ingeniería de requerimientos que permite documentar los requerimientos, de forma tal que sean claros para el cliente y el equipo de desarrollo es llamada casos de uso.
Los casos de uso permiten establecer con claridad la forma en la que interactúan diferentes entidades o actores en un sistema, ya sea ingresando datos o bien recuperando información que servirá para otros proceso del sistema. Es importante aclarar que una entidad o un actor puede ser una persona, un sistema ajeno o incluso otro caso de uso.
“El caso de uso es una secuencia de acciones que un sistema debe realizar en el contexto del negocio a través del usuario o el actor” (Tsui, Karam y Bernal, 2013).
El objetivo principal es establecer los pasos que un usuario realizaría en el sistema que está por construirse para llevar a cabo una función que ha determinado que necesita, así como las reglas de negocio que serán un marco de referencia trabajar con el sistema.
Los casos de uso son documentados por el ingeniero de requerimientos en un documento que deberá ser explicado y revisado en conjunto con el usuario final. El texto debe ser redactado de tal manera que el usuario comprende todo el documento. En palabras de Pressman (2010): “Un caso de uso es tan bueno como lo sean sus autores. Si la descripción es poco clara, el caso de uso será confuso o ambiguo”.
Pasos para generar los casos de uso:
Haz clic para conocer el detalle de cada paso
6.2 Modelos UML del caso de uso
Un modelo gráfico permite expresar de forma rápida y sencilla un escenario que nos interesa resolver. Otra forma de decirlo, es la forma de abstraer un problema facilitando la comunicación.
El modelado de casos de uso fue desarrollado por Jacobson et al. (1993) y fue agregado como una herramienta UML (Unified Modeling Language).
Los diagramas de casos de uso permiten establecer:
Imagen obtenida de http://www.uml.org/ Sólo para fines educativos.
Según Sommerville (2011) los casos de uso son documentados utilizando un diagrama de alto nivel en el que se representan todas las posibles interacciones que serán descritas en los requerimientos del sistema. A estos diagramas se les acompaña de la descripción detallada del caso de uso.
Los casos de uso son una técnica muy efectiva para indagar requerimientos y aclarar los escenarios que se podrían presentar con el sistema a los usuarios o stakeholders.
Imagen obtenida de https://msdn.microsoft.com/en-us/library/dd409432.aspx#BasicSteps Sólo para fines educativos.
Pasos para dibujar un diagrama de caso de uso:
Haz clic en cada número para conocer el detalle de cada paso
Como puedes observar en el diagrama de caso de uso anterior, existen 2 actores: el cliente y el restaurante. Las acciones que son incluidas en el sistema son “Proveer un menú” y “Ordenar la comida”. Mientras que “Entregar la comida” no es parte del sistema.
Relaciones de casos de uso:
Incluye: la relación permite describir con mayor detalle alguna actividad del caso de uso. Dividir una actividad en módulos independientes permite reutilizarlas en otras actividades y evita la necesidad de repetir todos los pasos. Por ejemplo, nota que en el diagrama anterior la actividad “pagar” es utilizada en dos actividades.
Imagen obtenida de https://msdn.microsoft.com/en-us/library/dd409432.aspx#BasicSteps Sólo para fines educativos.
Extiende: esta relación permite mostrar que un caso de uso puede incluir funcionalidad de otro caso de uso bajo ciertas circunstancias. La notación a utilizar sería una línea continua con una flecha que apunta hacia el caso principal que contiene la funcionalidad.
En el siguiente diagrama es posible extender el proceso de autenticar cuando el usuario ha sido dado de alta como usuario nuevo.
Imagen obtenida de https://msdn.microsoft.com/en-us/library/dd409432.aspx#BasicSteps Sólo para fines educativos.
Generalización: es una técnica que permite gestionar la complejidad. Se coloca la actividad de forma “general” y se le relaciona con actividades más específicas. La forma de representar la generalización es ubicando las actividades más específicas debajo de la actividad general y utilizando una flechas sin relleno.
Imagen obtenida de https://msdn.microsoft.com/en-us/library/dd409432.aspx#BasicSteps Sólo para fines educativos.
6.3 Documentación de casos de uso
¿Cómo se vería un caso de uso completo?
¿Existe una plantilla para documentar un caso de uso?
El formato de especificación de casos de uso debe ajustarse a las necesidades de cada organización. Un ejemplo de las partes que debe contener un caso de uso son:
|
Sección |
Contenido / Explicación |
1 |
Diagrama de caso de uso |
Se incluye el diagrama del caso de uso. |
2 |
Identificación |
Es un código de identificación del documento de caso de uso. Este código debe ser único e irrepetible. |
3 |
Nombre |
Descripción breve del caso. |
4 |
Historial |
Se registra cada uno de los cambios del documento. |
5 |
Autores |
Nombres de los autores que participaron en la redacción de los casos de uso. |
6 |
Prioridad |
Es la importancia del caso de uso de acuerdo con alguna técnica de priorización que utilice la organización. |
7 |
Criticidad |
Especifica el posible daño que puede causar si el caso de uso falla. |
8 |
Fuente |
Describe la fuente de información de donde se obtuvo el caso de uso (stakeholder, documento o un sistema). |
9 |
Persona responsable |
Es la persona representante del usuario final que es responsable del caso de uso. |
10 |
Descripción |
Descripción breve del caso de uso. |
11 |
Actores |
Lista de todos los actores que aportaron para la construcción de este caso de uso. |
12 |
Información de contexto |
Objetivo, alcance, precondiciones, evento de disparo, reglas de negocio, postcondiciones, excepciones / alternativas. |
13 |
Resultado |
Descripción de los resultados que se producen durante la ejecución del caso de uso. |
14 |
Escenario principal |
Descripción del escenario principal del caso de uso. |
15 |
Escenarios alternativos |
Es posible que existan postcondiciones diferentes dependiendo de las decisiones que se tomen en el escenario principal. La extensión de casos puede ser descrita en esta sección. |
16 |
Puntos de extensión |
Se especifica la extensión a otros casos de uso. |
17 |
Requerimientos de calidad |
Es la referencia al documento de requerimientos de calidad. |
18 |
Definiciones, acrónimos y abreviaciones |
Listado de definiciones, acrónimos y abreviaciones utilizados en el documento. Son bastante útiles como información complementaria para personas que no tienen el dominio de los términos utilizados. |
19 |
Firma de aceptación |
Espacio que permite incluir la firma de aceptación de la persona responsable |
20 |
Anexos |
Cualquier documento o información que complemente la información del caso de uso. |
Wireframes
Los wireframes son un prototipo que muestra cómo podría verse el sistema. Son bastante útiles en la revisión de los casos de uso ya que es posible hacerse una idea de cómo se vería el sistema, lo que ayuda al usuario a entender la descripción de los casos de uso.
Cada pantalla debe tener un identificador, referencia al caso de uso, fecha de elaboración, historial de cambios, autor y una breve descripción.
Es importante hacer mención al cliente que los Wireframes son de referencia y que el diseño podría cambiar.
Ejemplo de casos de uso
Un ejemplo de cómo podrías documentar un caso de uso de un sistema de apoyo de navegación a conductores de camiones de carga es de la siguiente manera:
|
Sección |
Contenido / Explicación |
||||||||||||||||
1 |
Imagen obtenida de Pohl, K. y Rupp, Chris. (2011). Requirements Engineering Fundamentals. EE.UU: Rocky Nook. Figura 6.4 An example using modeling elements of use case diagrams. Sólo para fines educativos. |
|||||||||||||||||
2 |
Identificación |
CU-NAVSYS-v2.5 |
||||||||||||||||
3 |
Nombre |
Navegar a un destino |
||||||||||||||||
4 |
Historial de versiones |
|
||||||||||||||||
5 |
Autores |
Jack Porter (ingeniero de requerimientos) |
||||||||||||||||
6 |
Prioridad |
Importancia del éxito del sistema: alta |
||||||||||||||||
7 |
Criticidad |
Alta |
||||||||||||||||
8 |
Fuente |
Juan Pérez (Gerente de operaciones), John Smith (Operador de rutas), Manual Operativo v2.5. |
||||||||||||||||
9 |
Persona responsable |
Juan Pérez (Gerente de operaciones). |
||||||||||||||||
10 |
Descripción |
El conductor introduce la dirección destino. El sistema le indica la ruta a seguir. |
||||||||||||||||
11 |
Actores |
Operador de rutas |
||||||||||||||||
12 |
Información de contexto |
Objetivo: mostrar ruta más óptima a seguir desde el origen al destino. Alcance: Reglas de negocio:
Excepciones / Alternativas: el sistema de navegación no recibe señal del GPS / el operador de rutas puede enviar la ruta de navegación desde la base hasta el tracto camión vía red celular. |
||||||||||||||||
13 |
Resultado |
Ruta óptima del origen al destino. |
||||||||||||||||
14 |
Escenario principal |
|
||||||||||||||||
15 |
Escenarios alternativos |
4a. El sistema calculará la ruta evitando zonas congestionadas de tráfico. |
||||||||||||||||
16 |
Puntos de Extensión |
Descargar información de tráfico CU-InfoTrafico-v2.5 |
||||||||||||||||
17 |
Requerimientos de Calidad |
|
||||||||||||||||
18 |
Definiciones, acrónimos y abreviaciones |
GPS. Sistema de posicionamiento global, permite determinar la ubicación un automóvil o persona en movimiento o estático. |
||||||||||||||||
19 |
Firma de Aceptación |
|
||||||||||||||||
20 |
Anexos |
Manual Operativo v2.5 |
Wireframes
|
Sección |
Contenido / Explicación |
||||||||
1 |
Identificación |
WF- NAVSYS-v1.0 |
||||||||
2 |
Nombre |
Ruta de navegación |
||||||||
3 |
Referencia |
CU-NAVSYS-v2.5 |
||||||||
4 |
Historial de versiones |
|
||||||||
5 |
Autor |
Jack Porter (Ingeniero de requerimientos) |
||||||||
6 |
Descripción |
El sistema mostrará las posibles rutas en un color y en otro color la ruta ya recorrida. |
Cierre
Una definición de la funcionalidad de un sistema no es suficiente para desarrollar adecuadamente un sistema, se requiere que la funcionalidad sea descrita en el contexto operativo del negocio, para ello puedes apoyarte de los casos de uso.
Los casos de uso son una herramienta indispensable en cualquier proyecto de desarrollo de software, pues facilitan la comunicación entre el cliente y el equipo de desarrollo, establecen con claridad cómo abordar los escenarios de interacción entre actores y el sistema, y son una pieza clave para el proceso de validación.
Checkpoint
Asegúrate de poder:
Elaborar un diagrama de casos de uso como herramienta de abstracción de información para poder representar los actores y los procesos que intervienen en un sistema.
Documentar un caso de uso como mecanismo de especificación de requerimientos de un sistema de cómputo.
Elaborar un wireframe relacionado a un caso de uso que sirva para comunicar mejor la información contenida en los casos de uso.
Referencias