Los objetos en los sistemas modifican sus estados como respuestas a suceso y al tiempo. El diagrama de estados de UML captura estos cambios de estados. Un diagrama de estados se enfoca en los cambios de estado en un solo objeto. Un rectángulo de vértices redondondeados representa a un estado, y una línea continua con una punta de flecha representa una transición de un estado a otro.
El símbolo del estado contiene el nombre del mismo y puede tener variables y actividades del estado. Una transición puede suceder como respuesta a un suceso desencadenado, e implicar una respuesta o acción. Una transición trambién puede ocurrir por la actividad en un estado: una transición que ocurre de esta forma se conoce como transición no desencadenada. Finalmente, una transición puede ocurrir cuando se cumple una condicion particular, o condición de seguridad.
En ocasiones, un estado consta de subestados. Los subestados pueden ser secuenciales (ocurrir uno después del otro) o concurrentes (ocurrir al mismo tiempo). Un estado que consta de subestados se conoce como estado compuesto. Un estado histórico indica que un estado compuesto recordará su subestado cuando el objeto trascienda de este estado compuesto. Un estado histórico puede ser superficial o profundo. Tales términos son propios de los subestados anidados. Un estado histórico superficial recuerda sólo el subestado principal. Un estado histórico profundo recuerda todos los niveles de los subestados.
Cuando un objeto envía un mensaje que desencadena una transición en el diagrama de estados de otros objeto, tal mensaje es una señal. Una señal es, por sí misma, un objeto, y podrá crear una jerarquía de herencia de las señales.
Es necesario contar con los diagramas de estados porque facilitan la comprensión de los objetos de un sistema a los analistas, diseñadores y desarrolladores. Los desarrolladores, en particular, deben saber cómo se supone que se comportarán los objetos, dado que serán quienes tengan que establecer estos comportamientos en el software. No es suficiente implementar un objeto: los desarrolladores tienen que hacer que tal objeto haga algo.
Taller
Cuestionarios
1. ¿De qué forma difiere un diagrama de estados de uno de clases, de objetos o de casos de uso?.
2. Defina los siguientes términos: transición, suceso y acción.
3. ¿Qué es una transición no desencadenada?
4. ¿Cuál es la diferencia entre los subestados secuenciales y los concurrentes?
Ejercicios
1. Suponga que diseñará una tostadora. Cree el diagrama de estados que controle los estados del pan en la tostadora. Incluya los sucesos desencadenados, acciones y condiciones de seguridad necesarios.
2. Cada vez que un objeto envíe una señal, se creará un objeto Señal y será transmitido. En Windows, hay varias señales posibles a partir de la GUI. Suponga que la señal (el tipo de señal que envíe a Windows) sea una clase. (¿Qué tipo de clase es?). Cree un diagrama de clases de las posibles señales y muestre toda la herencia inherente.
3. La figura 8.7 le muestra los subestados concurrentes dentro del estado Operación de la GUI. Dibuje un diagrama del estado del Protector de pantalla que incluya los subestados concurrentes.
Fecha de Entrega 13 de octubre de 2011.
Producto:
Cuestionarios y Formato digital enviado por correo electrónico por grupo a oscar.orrego09@gmail.com con el asunto Metodología - TP8 y en el cuerpo del mensaje los integrantes del grupo