Como ya he mencionado en ediciones anteriores y se lo repetimos a nuestros alumnos constantemente en nuestros cursos para evitarles la burocracia en su trabajo, no todos los proyectos requieren utilizar todos los artefactos de UML. Uno de estos artefactos que no veremos en cualquier proyecto es el diagrama de estados. Aunque, en ciertos proyectos no es opcional, sino indispensable utilizarlos.
Proyectos en los que hay que monitorear la situación en que se encuentra un documento, producto o persona son buenos candidatos para explotar este artefacto. Un ejemplo sería el caso del seguimiento a un pedido. Necesitamos saber si el pedido ya fue autorizado, si está en producción, si fue cancelado o en qué estado se encuentra dentro del proceso.

Estados de un semáforo
Una solicitud de préstamo también sigue un flujo donde diferentes entidades realizan acciones relacionadas con el préstamo. Alguien tiene que validarlo, otro tiene que autorizarlo, otro más lo deposita, también podrían rechazarlo. Este tipo de flujos que giran alrededor de un producto en particular también es muy útil elaborarlos con los diagramas de estados. Incluso hay ambientes de desarrollo donde el diseño de los sistemas se centra mucho en elaborar flujos de trabajo que giran alrededor de algún producto o documento. Para estas herramientas resulta muy útil aprovechar los diagramas de estados.
Comportamiento de Aparatos y Dispositivos
Los dispositivos mecánicos y electrónicos son objetos cuyo comportamiento también es conveniente modelar con este artefacto. Un ejemplo sería una máquina dispensadora de golosinas. La máquina espera que alguien deposite una moneda para comenzar a funcionar. Cuando depositan una moneda la máquina cambia su comportamiento y entra a un estado donde espera que seleccione el usuario algún producto o que siga agregando monedas según sea el caso. Al seleccionar el producto lo entrega si lo depositado es suficiente para cubrir el precio, y regresa cambio si excede el precio, si no es suficiente sigue esperando más monedas.
Elementos Básicos
Como podemos darnos cuenta, este tipo de diagrama permite visualizar los estados de un objeto, los eventos ante los cuales reacciona y los efectos o acciones que realiza al cambiar de estado o mientras está en un estado.
Centrado en los Objetos
Lo que convierte a estos diagramas en algo especial y que lo liga con el paradigma de orientación a objetos, es que en lugar de centrarse en un proceso completo, mostrando los diversos objetos que colaboran, este diagrama se centra únicamente en lo que afecta a un objeto específico; por ejemplo el paquete, el adeudo, el semáforo o el préstamo.
Es decir, se desarrolla un diagrama de estados por objeto a analizar. Claro que no todos los ojetos que identificamos merecen ser analizados tan a fondo como para crearles uno de estos diagramas. Recuerda que no queremos tener proyectos de software burocráticos llenos de artefactos que no aportan valor, es por eso que hay que ser muy selectivos.
Entonces ¿Qué es un Estado?
|
Cambios de Estados: Las Transiciones
No porque el objeto pueda tener ocho posibles estados significa que puede pasar a cualquiera de ellos en cualquier momento. Uno de los valores que ofrece este diagrama consiste precisamente en que establece las reglas para que el objeto, estando en un estado determinado, pueda pasar a otro de los estados. Aclarando las razones por las cuales podría pasar a algún otro estado. Si el semáforo está en verde no debe de poder pasar a rojo, sino únicamente a amarillo. Estos cambios y restricciones se muestran con una flecha, que es el símbolo para las transiciones entre estados.
¿Por Qué Cambia un Objeto?
Si queremos indicar la causa por la cual se puede dar una transición de un estado a otro lo podemos indicar con un evento, con una condición o con ambos.
Un evento es algo que ocurre en el ambiente que afecta el comportamiento del objeto analizado ocasionando que cambie a un nuevo estado. Si una computadora está apagada y se oprime el botón de “Encendido” la computadora pasa a un estado de “Arrancando”. El pulsar el botón de encendido es el evento que ocasionó este cambio. La mayoría de las veces vamos a encontrar a estos elementos como verbos, pues es algo que ocurre y que afecta el comportamiento del objeto.
Conoce el Ambiente de aprendizaje en Análisis y Diseño Orientado a Objetos con UML.
Un evento es una posible causa de que un objeto pase de un estado a otro, pero otra posible causa se debe al cumplimiento de una condición que afecta al objeto analizado. Puede ser el hecho de que los atributos del objeto analizado tomen un cierto valor, o que haya pasado un lapso de tiempo. Ejemplo, si el monto acumulado en la máquina dispensadora es igual al precio del producto deseado entonces pasa a un nuevo estado donde permite seleccionar el producto a despachar. La comparación del monto acumulado en un momento en la máquina, contra el precio del producto deseado puede considerarse como una condición de guardia. Estas condiciones se muestran entre corchetes como expresiones buleanas junto a las transiciones.
Hay Causas, pero También Consecuencias de los Cambios
Así como hay situaciones que son las que provocan el cambio de estado de un objeto, como son los eventos y las condiciones de guardia, también hay efectos ocasionados ya sea por un cambio de estado, durante una transición o debido a que el objeto está en un estado determinado. A estos efectos generados como consecuencia de un cambio se les llama acciones. Aunque tanto las acciones como los eventos se muestran como verbos, las acciones son consecuencia del cambio y los eventos son causas del cambio.

D. de Estados con un estado inicial, con condiciones de guardia
y acciones asociadas a las transiciones
Todo tiene un Principio y un Final
Todo objeto tiene un principio, pues debe de nacer necesariamente en algún estado. Aunque por otra parte puede o no tener un final, por lo menos al modelarlo con un diagrama de estados. Un punto grande en el diagrama apuntando con una transición a un estado lo que indica es el estado en el que nace el objeto, es decir, el estado inicial. Y al modelar los estados de un objeto nos podemos encontrar con que puede tener desde cero hasta N estados finales diferentes.
El estado final es el último estado en el que queda un objeto antes de desaparecer, o cuando deja de tener más comportamiento. Los objetos que se mantienen siempre activos regresan una y otra vez a estados anteriores, por eso no tienen un estado final. En cambio hay objetos que pueden terminar su vida de diferentes maneras; en diferentes estados. El símbolo de estado final se muestra con un círulo relleno con un aro a su alrededor.

Procesar, aceptar, rechazar, depositar son eventos que ocasionan cambios de estado.
[monto = adeudo] es una condición de guardia.
Los primeros son verbos y el segundo es una expresión buleana.
Y como todo tiene un final, este artículo también llegó hoy a su fin. No sin antes volver a aclarar que este artefacto tiene muchos más elementos, pero utilizando el 20-80, el 20% de los elementos de este diagrama son los que te van a ayudar a resolver el 80% de tus sistemas. Es ese 20% el que en este artículo se menciona.
Conoce nuestras promociones permanentes
Disfruta de la capacitación avanzada para ingenieros de software o directores de proyectos, con importantes descuentos. (*aplican restricciones)Contáctanos
Teléfono en la Ciudad de México:
+52 (55) 5594 6411
E-mail: cursos@abiztar.com.mxO si lo prefieres llena el formulario de contacto
Sigue a Abiztar en redes sociales
Entérate de promociones, descuentos, artículos, videos y más.