jueves, 1 de agosto de 2013

Análisis orientado a objetos (AOO) V

El modelo Objeto-Comportamiento

Consiste en evaluar el funcionamiento dinámico del sistema obedeciendo a estímulos externos. El modelo se crea siguiendo los siguientes pasos:

-       Evaluación de todos los casos de uso
-       Crear una traza de sucesos para cada caso de uso
-       Identificación de sucesos y comprender como se relacionan con los objetos
-       Construir un diagrama de transición de estados

Evaluación de los casos de uso


Se considera que ocurre un suceso, cada vez que un actor (puede ser humano o no) intercambia información con el sistema. Es importante recordar que un suceso es booleano (o sucede o no sucede) no caben más posibilidades, es decir un suceso no es la información que se intercambia si no solamente la contabilización de dicho suceso.

Por ejemplo una persona se acerca a un cajero automático y realiza las siguientes operaciones:

1-     Introduce la tarjeta en la ranura y teclea su número de 4 cifras. La contraseña se compara con la almacenada en el sistema. Si dicha contraseña es incorrecta un mensaje por pantalla avisará y restaurará el sistema a las condiciones iniciales, si es correcta  muestra un menú y espera la siguiente acción.

2-     El usuario elije sacar dinero y el sistema comprueba si el saldo tecleado es igual a superior al máximo diario  o al saldo disponible en la cuenta. Si es así entrega el dinero y muestra de nuevo el menú, en caso contrario muestra un mensaje indicando la situación entrega la diferencia y muestra el menú con la opción sacar dinero deshabilitada.

3-     El usuario coge el dinero y la tarjeta, si no se detecta la retirada del dinero o de la tarjeta envía un mensaje en pantalla y otro sonoro indicando el olvido. Si la retirada es completa vuelve al estado inicial. Si no persiste la señal unos segundos y vuelve al estado inicial.

La partes subrayadas indican sucesos. Debe buscarse un actor para cada suceso y anotar la información que se intercambia en cada suceso junto con posibles restricciones o condiciones.
Por ejemplo, en el caso en el que el usuario teclea su contraseña de 4 cifras desde el punto de vista del Análisis OO el actor transmite un suceso al teclado, dicho suceso se puede llamar clave_introducida pero la clave concreta en sí, no es una parte esencial del modelo. En este caso, el hecho de introducir la clave no cambia el flujo de control del caso de uso pero la tarea comparar_contraseña si lo cambia pues a partir de aquí el flujo discurrirá por dos caminos diferentes si la contraseña es correcta o incorrecta.
Cuando se han identificado todos los sucesos, se asocian a los objetos que pueden generar sucesos, incluidos los actores

Construcción del diagrama de transición de estados


Para construir este diagrama hay que tener en cuenta dos caracterizaciones diferentes de estados, una que muestra el estado de cada objeto y otra que muestra el estado del sistema en su conjunto.
También hay que distinguir entre características pasivas (estado actual de todos los atributos de un objeto) y características activas que indica el estado actual del objeto en el momento de producirse el cambio de estado.
Un ejemplo de características pasivas de una cuenta corriente en un cajero sería el titular, el Nº de cuenta etc. Las características activas sería el saldo, si la cuenta está anulada o no, etc. Para pasar una transición de estado activo a otro debe ocurrir un suceso (p.ej. sacar dinero y el saldo de la cuenta cambia).  Cada componente de un modelo objeto-comportamiento es una representación de los estados activos de cada objeto y de los sucesos que producen dichos cambios en estos estados activos.
Diagrama de transición de estados
El esquema mostrado arriba se llama de transición de estados, en él cada flecha es una transición de un estado activo de un objeto a otro. Las etiquetas al lado de cada flecha son los sucesos que disparan la transición. Existe el concepto de guarda, que es una condición booleana que posibilita la ocurrencia de una transición.  La guarda de una transición depende de los valores tomados por uno o varios atributos de un objeto. La guarda depende de un estado pasivo del objeto.
Una acción ocurre como consecuencia de una transición, e implica una o más responsabilidades del objeto. Por ejemplo introduce contraseña en el esquema de arriba es una acción.

Hay otro tipo de esquema para representar los estados del sistema, se trata de modelo  de traza de sucesos. En este modelo se indica como un suceso causa una transición del sistema de un estado a otro. Lo sucesos son booleanos. El sistema del cajero automático representado con este tipo de esquema quedaría del siguiente modo:

modelo  de traza de sucesos

En este esquema, el  usuario introduce la contraseña  a través del teclado, el sistema la compara, si es incorrecta avisa de que la contraseña se debe introducir de nuevo, si es correcta muestra el menú de las  operaciones a realizar.


No hay comentarios:

Publicar un comentario