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…

  • ¿Cuáles son los mecanismos más adecuados para clarificar los requerimientos del cliente?
  • ¿Qué herramientas se pueden utilizar para comunicar los requisitos?
  • ¿Existe algún documento que sirva para validar si el software ha alcanzado sus objetivos y es útil para el cliente?

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:

  1. Escenarios en los que existe una interacción entre las personas, organizaciones o sistemas externos con el sistema.
  2. Las metas y objetivos que se plantea el usuario.
  3. El alcance del sistema.

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

1

2

3

4

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

 

Versión

Fecha

Cambios

Autor

1.0

24.05.2015

Creación del documento

Jack Porter

2.0

26.05.2015

Actualización de reglas de negocio

Jack Porter

2.5

28.05.2015

 

 

5

Autores

Jack Porter (ingeniero de requerimientos)

6

Prioridad

Importancia del éxito del sistema: alta
Riesgo tecnológico: alto

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
Conductor
Sistema Satelital de GPS
Servidor de información de tráfico

12

Información de contexto

Objetivo: mostrar ruta más óptima a seguir desde el origen al destino.

Alcance:
Precondiciones: activación del sistema de navegación.
Evento de disparo: asignación de orden de transporte por parte del operador de rutas.
Postcondiciones: el conductor llega al destino en el menor tiempo posible.

Reglas de negocio:

  • RN01. La ruta sugerida por el sistema debe contemplar información de tráfico en línea del sistema de tráfico.
  • RN02. El estimado de tiempo de la ruta debe contemplar un límite de velocidad de 95 km.

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

  • El sistema de navegación le pide el destino deseado.
  • El conductor ingresa la dirección destino CU-IDESTINO-v1.0, QR.15
  • El sistema de navegación señala el destino en sus mapas QR.01
  • Sobre la base de la posición actual y el destino deseado, el sistema de navegación calcula una ruta adecuada CU-PosActual-v1.0
  • El sistema de navegación muestra un mapa la posición actual y la ruta al destino WF- NAVSYS-v1.0
  • El sistema va actualizando el tiempo de navegación restante RN01, RN02
  • Cuando el sistema detecta que ha llegado al destino debe mostrar "Ha llegado el destino" en la pantalla.
  • Termina caso de uso.

15

Escenarios alternativos

4a. El sistema calculará la ruta evitando zonas congestionadas de tráfico.
4a.1 El sistema de navegación debe mantener actualizada la información de tráfico
4a.2 El sistema recalculará la ruta de navegación evitando las zonas congestionadas de tráfico.

16

Puntos de Extensión

Descargar información de tráfico CU-InfoTrafico-v2.5

17

Requerimientos de Calidad

  • QR.01 Tiempo de respuesta del sistema a una solicitud de ruta.
  • QR.15 Condiciones de operación.

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

 

 

 

 

Juan Pérez
Gerente de operaciones

Teresa Torres
Director de Operaciones

20

Anexos

Manual Operativo v2.5
Wireframe: WF- NAVSYS-v1.0

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

 

Versión

Fecha

Cambios

Autor

1.0

24.05.2015

Creación del documento

Jack Porter

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


  • Jacobson, I., Christerson, M., Jonsson, P. y Overgaard, G. (1993). Object-oriented software engineering. Wokingham: Addison-Wesley.
  • Pohl, K. y Rupp, C. (2011). Requirements engineering fundamentals. EE. UU: Rocky Nook.
  • Sommerville, I. (2011). Ingeniería de software (9ª ed.). México: Pearson.
  • Tsui, F., Karam, O. y Bernal, B. (2013). Essentials of Software Engineering (3ª ed.). EE. UU: Jones & Bartlett Learning.