Análisis del Comportamiento de Objetos.
En el análisis del comportamiento de objetos (ACO) realizamos esquemas
de eventos que muestran eventos, la secuencia en que ocurren y cómo
los eventos cambian el estado de los objetos.
Estados de un Objeto.
Un objeto puede existir en varios estados. Por ejemplo, un objeto reservación
aérea puede ser una instancia de alguno de los siguientes tipos
de objeto:
-
Reservación solicitada,
-
Reservación en lista de espera,
-
Reservación confirmada,
-
Reservación cancelada,
-
Reservación satisfecha,
-
Reservación archivada.
Tales tipos de objetos suelen percibirse como estados posibles del ciclo
vital de un objeto. Sin embargo, un objeto puede tener una gran variedad
de perspectivas de ciclos vitales. Por ejemplo, el mismo objeto reservación
aérea también puede tener los siguientes estados relacionados
con el pago:
-
Reservación no liquidada,
-
Reservación con un pago de depósito,
-
Reservación totalmente pagada,
-
Reservación reembolsada.
Así, el estado de un objeto es la colección de asociaciones
que tiene un objeto.
Eventos.
El mundo está lleno de eventos: una coneja tiene conejitos, llega
el pesado del vecino en forma inesperada, un cliente solicita un préstamo,
el servidor se cae, se termina la tarea, etc.
En el análisis orientado a objetos el mundo se describe en términos
de los objetos y sus estados, así como los eventos que modifican
esos estados.
Un evento produce un cambio en el estado de un objeto. Los eventos sirven
como indicadores de los instantes en que ocurren los cambios de estado.
Para saber de los cambios y reaccionar adecuadamente ante ellos, debemos
entender y modelar los eventos.
Tipos de Eventos
El analista no necesita conocer cada evento que ocurra en una organización:
sólo los tipos de eventos.
Por ejemplo, el tipo de evento reservación en lista de espera
confirmada es la colección de eventos donde un objeto cambia de
una reservación en lista de espera a una reservación confirmada.
Los tipos de eventos indican los cambios sencillos en el estado de un
objeto; por ejemplo, cuando se deposita dinero en una cuenta bancaria o
se actualiza el sueldo de un trabajador. Básicamente, los tipos
de eventos describen las siguientes formas de cambios de estado:
-
Un objeto se crea.
-
Un objeto se termina.
-
Un objeto se clasifica como una instancia de un tipo de objeto.
-
Un objeto se desclasifica como una instancia de un tipo de objeto.
-
Un objeto cambia de clasificación.
-
Un atributo de un objeto se cambia.
Los objetos pueden asociar un objeto con otro. Por ejemplo, en la mayoría
de las organizaciones, cuando un objeto se clasifica como empleado, debe
estar asociado con un departamento. Un evento clasificará al objeto
como empleado. Otro evento creará una asociación entre el
objeto empleado y un objeto Departamento (las asociaciones son objetos
como los demás).
Algunos eventos requieren que antes ocurran otros. Por ejemplo, antes
de cerrar un departamento, todos los empleados deben ser asignados a otra
parte, las oficinas que ocupaban deben tener otro uso, etc.
Algunas veces, un evento puede provocar la reacción encadena
de otros eventos. Por ejemplo, el cambio de circuito a las conexiones de
un avión, puede exigir cambios a varios otros objetos.
Una operación hace que los eventos ocurran. Dibujamos la operación
como un cuadro con esquinas redondeadas, puesto que los eventos indican
los puntos en el tiempo en que se da el cambio de estado de un objeto.
Los tipos de eventos se representan como triángulos negros llenos,
generalmente unidos a la caja de operación.
Según el área que se modele, puede ocurrir más
de un evento al terminar una operación, y cada uno de estos puede
activar operaciones independientes.
El Ciclo Vital de un Objeto
La mayoría de los objetos tienen un ciclo vital en el que una sucesión
de eventos pueden ocurrirle y cada uno de éstos modifica su estado.
En este análisis, se dibuja un diagrama que muestre el ciclo
vital de un objeto, incluyendo los estados posibles de los objetos, además
de los cambios de estado permisibles. Este se denomina diagrama de reja.
Diagrama de reja que muestra los estados posibles de un objeto reservación
aérea. Las líneas horizontales representan estados y las
verticales muestran las transiciones entre estados.
Interacciones entre tipos de objetos
La mayoría de los procesos requieren la interacción de varios
objetos.
En esta otra figura, se desarrolla el diagrama anterior para mostrar las
operaciones necesarias.
Operaciones.
En el análisis OO, una operación se refiere a una unidad
de procesamiento que puede ser solicitada. El procedimiento se implanta
mediante un método. El método es la especificación
de cómo llevar a cabo la operación. A nivel de programa,
el método es el código que implanta la operación.
Las operaciones se invocan. Una operación invocada es una instancia
de una operación. Una operación puede o no cambiar el estado
de un objeto, si lo cambiara ocurriría un evento.
Fuentes externas de eventos
Los eventos son cambios de estado que un sistema debe conocer y reaccionar
ante ellos de algún modo. Muchas de las operaciones que producen
estos eventos son externas al sistema.
Reglas de activación
Cuando ocurre un evento, lo normal es que el cambio de estado active el
llamado a una o más operaciones. Por ejemplo, si se retiran bienes
de un almacén y la cantidad baja de cierto nivel, ello puede activar
una operación para volver a realizar un pedido.
Las reglas de activación definen la relación entre la
causa y el efecto. Siempre que ocurra un evento de cierto tipo, la regla
de activación invoca a una operación ya definida.
Un tipo de evento puede tener varias reglas de activación, cada
una de las cuales invoca a su operación en paralelo. Las operaciones
paralelas pueden producir diferentes cambios de estado en forma simultánea.
Condiciones de Control
Una operación puede ser invocada por una o varias reglas de activación.
Sin embargo, antes de invocar de hecho a la operación se puede verificar
una condición de control. Si el re4sultado de evaluación
de la condición es verdadera se invoca su operación, en otro
caso no.
Las condiciones de control también pueden actuar como puntos de
sincronización para el procesamiento en paralelo, pues garantizan
que un conjunto de eventos esté completo antes de proceder con una
operación.
Subtipos y Supertipos de Eventos.
Los eventos pueden dividirse en subtipos mediante diagramas independientes;
o bien, es posible expresar la misma información en un diagrama
ampliado.
La operación revisar tarea produce dos eventos: tarea aceptada o
tarea rechazada. Sólo se puede dar uno de estos tipos de evento
al revisar una tarea.
Aquí tarea revisada es un supertipo de tarea aceptada y tarea
rechazada, que son los subtipos. Siempre se entiende que existe una relación
de exclusividad entre los subtipos.
Las particiones de eventos no son operaciones independientes que coordinan
las condiciones de bifurcación para las formas de activación
ajenas, sino que indican los objetivos y distintos subobjetivos de las
operaciones a las que están asociadas.