Contexto
Si quisieras hacer las galletas que tanto te gustan de tu abuelita, la mejor forma es que ella te indique la receta, es decir, los ingredientes y el procedimiento. Éstas son dos cosas que necesitas saber, ya que una receta que sólo indique los ingredientes no sería de gran ayuda, lo mismo sucedería con un procedimiento en el que no aparezcan los ingredientes.
Los ingredientes son la materia prima necesaria, mientras que el procedimiento describe los pasos que debes realizar para mezclar los ingredientes de una forma adecuada. Si sigues el procedimiento al pie de la letra, se esperaría que pudieras obtener el mismo resultado: aquellas deliciosas galletas de tu abuela.
¿Qué pasaría si alteras el orden de los pasos que indica el procedimiento de la receta? Seguramente el resultado sería desastroso.
En el desarrollo de sistemas sucede algo similar. Existe cierta información que requiere el sistema (ingredientes) para poder alcanzar un objetivo específico y establecer la secuencia, así como los cambios de estado que sufrirá en cada proceso que asegurará un sistema que dé los resultados esperados.
Explicación
9.1 Identificación de eventos
El modelado de comportamientos permite describir un sistema de forma dinámica a través de eventos que ocurren en tiempos específicos de operación.
“El modelo de comportamiento indica la forma en la que responderá el software a eventos o estímulos externos” (Pressman, 2010).
El primer paso en el modelado de comportamiento es la identificación de eventos y la secuencia en la que se presentan en un sistema. Los diagramas de comportamiento que nos servirán para este tipo de modelos se le llaman diagrama de estado y diagramas de secuencia.
Según Sommerville (2011) este tipo de modelos asumen que los sistemas tienen un número finito de estados y eventos (estímulos) que pueden causar una transición de un estado a otro. A diferencia del diagrama de flujo de datos, no incluyen el flujo de información, pero pueden incluir información adicional para aclarar el procesamiento que se lleva a cabo en cada estado.
Cuando un sistema y un actor intercambian información aparece un evento. De hecho la mayoría de los eventos inician por alguna actividad del usuario, ya sea al hacer clic en un botón, elegir un elemento de una lista (combo box), cambiar de campo en una forma, teclear algún dato, todos son eventos que pueden ser configurados para que el sistema reaccione de diferente forma.
9.2 Representaciones de estado
Cualquier sistema de software puede llevar a cabo ciertas actividades y transiciones de un estado a otro (Pohl y Rupp, 2011).
Para construir un diagrama estado es necesario conocer sus partes:
Haz clic para conocer más detalle
Los estados se representan con rectángulos de esquinas redondeadas, mientras que las transiciones se dibujan utilizando flechas. Para realizar cualquier cambio de estado se requiere de un estímulo generalmente provocado por el usuario.
Los diagramas estado deben incluir un estado inicial y uno o varios estados finales. El primero se representa con un círculo relleno y el segundo con círculo semirelleno.
En un diagrama es posible encontrar transiciones en las que se inicie con el mismo estado en el que termina, tal y como se observa en la imagen anterior.
Un sistema que controla un cajero automático de un banco. El cliente introduce su tarjeta al cajero y le indica el PIN de 4 dígitos que tiene asignado para esa tarjeta. El sistema compara el PIN con los registros de los clientes y verifica que corresponda al número guardado. Si el PIN es incorrecto se procede a solicitarle al usuario ingrese nuevamente el código de 4 dígitos. Si esto se repite por 3 ocasiones la tarjeta es retenida. En caso que el PIN sea correcto, se le permitirá realizar movimientos como retiro de efectivo, compra de tiempo aire o consulta de saldos.
En este texto puedes observar el texto en negritas como eventos que suceden en el sistema de control de un cajero automático. Por ejemplo, los eventos son introducir tarjeta y PIN, comparación del PIN, retener la tarjeta por intentos fallidos, seleccionar acción.
Entre cada uno de los eventos es posible enviar o recibir información: introducir tarjeta, introducir PIN, selección del movimiento del cliente.
En este caso la tarjeta es considerada como información más que una tarjeta física, ya que cualquier tarjeta bancaria tiene una banda magnética o chip que contiene todos los datos de la cuenta del cliente y son recuperados por un lector del mismo cajero.
El evento de recuperar una tarjeta retenida no es parte del modelo de este diagrama ya que es un proceso que se realiza manualmente por el cliente y el gerente del banco.
Adecuación al modelo de estados, recuperado de Pressman, R. (2010). Ingeniería de Software. Un enfoque práctico. (7ª ed.). México: McGraw Hill. Figura 7.6. Sólo para fines educativos.
En estos diagramas también existe el concepto de jerarquía de estados y concurrencia.
En la jerarquía de estados es posible establecer que solo es posible llegar a ciertos estados siempre y cuando hayan pasado por subestados. Por ejemplo para llegar al estado E, es necesario haber pasado por el estado A y los subestados: B, C y D.
La concurrencia permite expresar que un evento puede provocar cambios de estados en paralelo.
9.3 Diagramas de secuencia
Los diagramas de secuencia son una herramienta bastante útil cuando se necesita aclarar la interacción entre el usuario y el sistema en un caso de uso en particular.
En el siguiente ejemplo, Sommerville (2011) nos ofrece un diagrama de secuencia que aclara los momentos en los que interactúa un asistente de un médico con un sistema que mantiene el historial médico de pacientes.
Imagen obtenida de Sommerville, I. (2011). Ingeniería de Software (9ª ed.). México: Pearson. Figura 5.6. Sólo para fines educativos.
El diagrama incluye los objetos y los actores que están involucrados en la parte superior. Cada uno de ellos se les dibuja una línea punteada hacia abajo, mientras las interacciones son representadas por flechas a las que se les coloca una etiqueta que explica las llamadas al objeto, sus parámetros (entre paréntesis) y los valores de respuesta con una flecha punteada. Observa que cada objeto incluye un rectángulo sobre la línea punteada indicando el momento de su creación, operación y eliminación.
Un diagrama de secuencias se inicia de izquierda a derecha, y de arriba hacia abajo. Sommerville incluye un flujo alternativo entre los objetos con un recuadro con la palabra “ALT”.
Explicación del diagrama:
Como puedes observar el diagrama es bastante sencillo de interpretar. No todos los casos de uso requieren de este tipo de diagramas, solo aquellos en los que la interacción interviene varios objetos.
El siguiente ejemplo incluye un segundo actor que es el sistema de registro de pacientes (PRS) y trata de explicar las interacciones que aparecen cuando la recepcionista médico desea actualizar un registro médico de un paciente.
Descripción del diagrama:
La primera es enviar la actualización de la información de un paciente. Si el usuario tiene permisos para actualizar ese registro en particular entonces el sistema de registros actualiza el registro en la base de datos y le confirma a la recepcionista el evento.
La segunda alternativa es crear un resumen que actualice la información del paciente utilizando una interfaz de usuario llamada Resumen.
Imagen obtenida de Sommerville, I. (2011). Ingeniería de Software (9ª ed.). México: Pearson. Figura 5.7. Sólo para fines educativos
Cierre
Los diagramas de estado y los diagramas de secuencia son herramientas que permiten modelar el comportamiento de un sistema, y así el ingeniero de requerimientos puede establecer un contexto del sistema por desarrollar en el que se tengan claros los eventos que suceden en un sistema.
El modelado de comportamiento no sustituye otras herramientas como el diagrama de flujo de datos, sino que complementa la documentación de las especificaciones. Es como tomar varias fotos de un edificio desde diversos ángulos. El edificio es el mismo y cada foto ofrece información desde perspectivas distintas.
Así que si deseas cocinar esas galletas de tu abuelita que tanto te gustan, puedes tratar de hacer un diagrama de estados y un diagrama de secuencias que complemente la receta que te dio para asegurar el resultado y puedas saborearlas todas las veces que quieras.
Checkpoint
Asegúrate de poder:
Referencias
Glosario