🎃 Grandes descuentos en libros en línea, eformaciones y vídeos*. Código CALABAZA30. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. UML 2.5
  3. Modelado del ciclo de vida de los objetos
Extrait - UML 2.5 Iniciación, ejemplos y ejercicios corregidos (5ª edición)
Extractos del libro
UML 2.5 Iniciación, ejemplos y ejercicios corregidos (5ª edición) Volver a la página de compra del libro

Modelado del ciclo de vida de los objetos

Introducción

Una vez estudiadas las interacciones y los aspectos estáticos de los objetos del sistema, procederemos a abordar su ciclo de vida. El ciclo de vida de un objeto representa las diferentes etapas o estados por los que pasa para llegar, dentro del sistema, a realizar un objetivo. Un estado corresponde a un momento de actividad o de inactividad del objeto. La inactividad se produce cuando el objeto espera a que otros objetos concluyan una actividad.

Estudiaremos la noción de evento, que hace que el objeto cambie de estado. El cambio de estado consiste en traspasar una transición.

El diagrama de estados-transiciones ilustra el conjunto de estados del ciclo de vida de un objeto separados por transiciones. Cada transición se asocia a un evento.

Examinaremos detalladamente la noción de señal. Veremos también que es posible asociar condiciones para traspasar transiciones y administrar así las alternativas. Estudiaremos cómo la unión y la alternativa facilitan la elaboración de diagramas de estados-transiciones.

Analizaremos la noción de estado compuesto con el fin de simplificar la escritura del diagrama de estados-transiciones. Veremos que es posible disponer de subestados que evolucionen en paralelo.

Por último, presentaremos el diagrama de timing, diagrama que describe los cambios de estado de un objeto cuando éstos se producen exclusivamente en función...

La noción de estado

El estado de un objeto corresponde a un momento de su ciclo de vida. Mientras se encuentran en un estado, los objetos se limitan a esperar una señal procedente de otros objetos. Cuando ocurre esto decimos que están inactivos. Sin embargo, también pueden estar activos y realizar actividades. Una actividad es la ejecución de una serie de métodos y de interacciones con otros objetos. Está vinculada a un objetivo. En el capítulo Modelado de las actividades, estudiaremos detalladamente su descripción con ayuda de los diagramas de actividades.

Ejemplo

En un concurso de salto de obstáculos, los caballos se encuentran en estado de reposo antes de empezar la competición. Se trata de un estado inactivo y a la espera de la orden de salida.

Cuando saltan un obstáculo, los caballos están en un estado activo que concluye al acabar de saltar el obstáculo.

Los estados del ciclo de vida de un objeto contienen un estado inicial -que corresponde al estado del objeto justo después de su creación- y uno o varios estados finales o de terminación. Los estados de terminación corresponden a la fase de destrucción del objeto. También puede ocurrir que no exista estado final o de terminación dado que el ciclo de vida de un objeto puede estar formado por un bucle infinito.

El cambio de estado

1. Noción de evento y de señal

Un evento es un hecho que activa el cambio de estado. UML define cinco tipos de eventos:

  • AnyReceivedEvent: corresponde a un evento cualquiera. Sin embargo, solo provoca un cambio de estado si ningún otro evento con un tipo diferente a AnyReceivedEvent provoca al mismo tiempo un cambio de estado. La sintaxis de este evento es la palabra clave all.

  • CallEvent: un evento CallEvent se produce cuando se invoca al método correspondiente. 

  • ChangeEvent: un evento ChangeEvent se produce cuando se produce un cambio en el sistema. Este cambio se describe mediante una expresión lógica que es verdadera en el momento en que se produce el evento.

  • TimeEvent: un evento TimeEvent se especifica mediante una instrucción que indica un tiempo absoluto o relativo. Si el tiempo es relativo, la instrucción adopta la sintaxis after expresión. Si el tiempo es absoluto, la instrucción adopta la sintaxis at expresión. En ambos casos, cuando se alcanza el momento indicado, se produce el evento.

  • SignalEvent: un evento SignalEvent se produce cuando se recibe una señal.

La señal puede ser emitida por cualquier objeto, incluso por el propio objeto que está a la espera de la señal para cambiar de estado.

UML propone describir las señales mediante clases. Las señales emitidas y recibidas son entonces instancias de una clase de señales....

Elaboración del diagrama de estados-transiciones

El diagrama de estados-transiciones representa el ciclo de vida de las instancias de una clase (o una parte de este ciclo).

Describe los estados, las transiciones que los vinculan y los eventos que provocan el traspaso de las transiciones.

Este tipo de diagramas sólo resulta útil para los objetos que tienen un ciclo de vida. Otros objetos, simplemente portadores de información, no cambian de estado a lo largo de su vida y, por tanto, resulta inútil crear un diagrama de estados-transiciones para ellos.

1. Representación gráfica de los elementos básicos

Los estados se representan mediante un rectángulo de esquinas redondeadas con su nombre en el interior. La figura 8.2 muestra la representación gráfica de un estado.

images/figur82.png

Figura 8.2 - Representación gráfica de un estado

En un diagrama de estados-transiciones, el primer estado corresponde al estado inicial del objeto a la salida de su fase de creación. Este estado es único en un diagrama de estados-transiciones.

El estado inicial se representa mediante un punto negro (ver figura 8.3).

images/figur83.png

Figura 8.3 - Representación gráfica del estado inicial

Un estado final corresponde al final del ciclo de vida descrito por el diagrama de estados-transiciones.

Un estado final se representa con un punto negro rodeado de un círculo (ver figura 8.4).

images/figur84.png

Figura 8.4 - Representación gráfica de un estado final

Un estado de terminación se representa mediante una cruz como muestra la figura 8.5. Cuando se alcanza este estado, significa que termina el ciclo de vida del objeto y este se destruye.

images/08RI05V4.png

Figura 8.5 - Representación gráfica del estado de terminación

Una transición entre dos estados se representa mediante una línea negra con una flecha en un extremo que une ambos estados (ver figura 8.6). El evento que determina el traspaso de la transición se indica al lado de la transición. Si la transición es automática no se indica ningún evento.

images/figur85.png

Figura 8.6 - Representación gráfica de una transición

Una transición reflexiva posee el mismo estado inicial y final (ver figura 8.7).

images/figur86.png

Figura 8.7 - Representación gráfica de una transición reflexiva

Ejemplo

En un concurso de obstáculos...

El diagrama de timing

El diagrama de timing se introdujo para mostrar los cambios de estado de un objeto cuando éstos dependen exclusivamente del tiempo. El diagrama indica entonces la duración mínima y máxima de cada estado con ayuda de especificaciones temporales.

La figura 8.25 muestra la representación gráfica del diagrama de timing.

images/figur817.png

Figura 8.25 - Diagrama de timing

Ejemplo

En un concurso de obstáculos, el jinete debe realizar la prueba por debajo de un tiempo máximo, de lo contrario quedará eliminado. Él mismo descompone el tiempo de cada parte de la prueba para estar seguro de superarla con éxito. La figura 8.26 muestra el correspondiente diagrama de timing.

images/figur818.png

Figura 8.26 - Ejemplo de diagrama de timing

Conclusión

El diagrama de estados-transiciones describe el ciclo de vida de los objetos encargados de asegurar la dinámica del sistema. La descripción del ciclo de vida se realiza de forma separada para cada uno de los objetos.

Este modelado es muy importante para asegurar que los objetos respondan a las interacciones descritas en los diagramas de secuencia y comunicación estudiados en el capítulo Modelado de la dinámica.

Ejercicios

1. El ticket de apuesta trifecta

¿Por qué estados puede pasar un ticket de apuesta trifecta?

Construya el diagrama de estados-transiciones de una instancia de la clase Ticket

2. La carrera de caballos

¿Por qué estados puede pasar una carrera de caballos?

Construya el diagrama de estados-transiciones de una instancia de la clase Carrera.

3. El tiovivo de madera

Describa los diferentes estados posibles de un tiovivo de caballos de madera y construya su correspondiente diagrama de estados-transiciones.