sesion 9 2 uml transicion estados

40
UML Transición de Estados Lic. César Alcántara Loayza

Upload: julio-pari

Post on 29-Jun-2015

2.051 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Sesion 9 2 uml transicion estados

UML Transición de Estados

Lic. César Alcántara Loayza

Page 2: Sesion 9 2 uml transicion estados

2CAL/Fundamentos

Objetivo

El diagrama de estados describe la vida de un objeto en término de los eventos que activan los cambios en el estado del objeto. Identifica todos los eventos externos e internos que pueden cambiar el estado del objeto.

Page 3: Sesion 9 2 uml transicion estados

3CAL/Fundamentos

Estado Un estado describe la condición

actual de un objeto, por ejemplo, cuenta sobregirada o la cuenta abierta. Cuando la condición actual de la cuenta se sobregira, la cuenta responderá diferentemente de cuando la cuenta está en la condición normal--se rechazarán los cheques en lugar de pagó.

Page 4: Sesion 9 2 uml transicion estados

4CAL/Fundamentos

Secuencias y Estados Contraste el alcance del diagrama de

estados con el del diagrama de secuencia. El alcance del diagrama de estados es todo el tramo de vida de un objeto. El alcance del diagrama de secuencia es un solo escenario. Por consiguiente, es posible derivar un diagrama de estados del juego de diagramas de secuencia que describen los casos del uso que usan el objeto.

Page 5: Sesion 9 2 uml transicion estados

5CAL/Fundamentos

Contexto del comportamiento El diagrama de estados modela los

eventos que activan las transiciones de un estado a otro estado. Cada evento puede tener una acción correspondiente que hace un cambio en el objeto. Mientras un objeto está en un estado, puede realizar trabajo asociado con ese estado. Tal trabajo se llama una actividad.

Page 6: Sesion 9 2 uml transicion estados

6CAL/Fundamentos

Acción Es una contestación a un evento

en un diagrama de estados, típicamente la parte de la transición de un estado a otro y típicamente atómico (no puede dividirse en el subtareas).

Page 7: Sesion 9 2 uml transicion estados

7CAL/Fundamentos

Actividad Procesamiento que un objeto

realiza en particular a un estado específico. Una actividad es típicamente no atómica, es decir, puede componerse de cualquier número de subtareas.

Page 8: Sesion 9 2 uml transicion estados

8CAL/Fundamentos

Evento Es un estímulo del sistema, a

menudo en la forma de un mensaje de un objeto a otro.

Page 9: Sesion 9 2 uml transicion estados

9CAL/Fundamentos

Diagrama de Estado Se recomienda que observe cómo

parte de la declaración del problema reflejan los elementos del modelo. Los estados describen un objeto, de modo que ellos aparecen típicamente como adjetivos en la descripción del problema, por ejemplo, cuenta abierta, cuenta cerrada, factura retrasada.

Page 10: Sesion 9 2 uml transicion estados

10CAL/Fundamentos

D. Actividad – D. Estado El diagrama de actividad

muestra el flujo de control que pasa de una actividad a otra, mientras que el diagrama de estado muestra el flujo de control de un estado a otro.

Page 11: Sesion 9 2 uml transicion estados

11CAL/Fundamentos

D. Actividad – D. Estado Use el diagrama de actividad cuando

todos los estados de un objeto mapean a actividades. El movimiento de un estado a otro se activa por la realización de cada actividad. Use el diagrama de estados cuando el objeto tiene tanto estados activos y de espera y los cambios son activados por eventos externos y/o internos.

Page 12: Sesion 9 2 uml transicion estados

12CAL/Fundamentos

D. Actividad – D. Estado La base para el diagrama de

estados es la relación entre los estados y los eventos.

Page 13: Sesion 9 2 uml transicion estados

13CAL/Fundamentos

Estado Básico Un estado se modela como un

rectángulo con bordes redondeados con el nombre del estado dentro, al igual que la forma corta del icono de clase dónde sólo el compartimiento del nombre es visible. Completo

Page 14: Sesion 9 2 uml transicion estados

14CAL/Fundamentos

Notación del Evento La notación de evento del diagrama de

estados es una flecha que conecta un estado a otro estado. La flecha realmente es la transición asociada con el evento. La dirección de la flecha muestra la dirección de la transición de un estado a otro.

CompletoColocado Productos disponibles

Page 15: Sesion 9 2 uml transicion estados

15CAL/Fundamentos

Notación de la Acción Una acción es asociada con un evento y se

modela usando una barra oblícua seguida al evento, seguida a su vez por la descripción de la acción. Una acción cambia el objeto de un estado a otro estado. Una acción es una tarea atómica, de modo que no se puede partir en sub tareas componente, ni puede interrumpirse. No hay punto de quiebre dentro de él, y detenerlo a la mitad del camino dejarían el estado del objeto indefinido.

Page 16: Sesion 9 2 uml transicion estados

16CAL/Fundamentos

Notación de la Acción FillOrder() es la acción para el

evento “productos disponibles”.

CompletoColocado Productos disponibles / FillOrder()

Page 17: Sesion 9 2 uml transicion estados

17CAL/Fundamentos

Estado Inicial El estado inicial de un objeto tiene

su propia única notación, un punto sólido con una flecha que apunta al primer estado asociado. El estado inicial indica el estado en el que un objeto se crea o se construye. Colocado

Page 18: Sesion 9 2 uml transicion estados

18CAL/Fundamentos

Estado Final Un objeto puede alcanzar un

estado final en que ninguna otra actividad puede ocurrir y desde la que no se puede regresar a un estado activo. Debido a estas restricciones, el estado final no se usa necesariamente en todos los objetos.

Page 19: Sesion 9 2 uml transicion estados

19CAL/Fundamentos

Estado Final

Completa

Archivada

Cancelada

Page 20: Sesion 9 2 uml transicion estados

20CAL/Fundamentos

Ejercicio Rastreamos el estado del cliente actual para evitar

problemas de pago e identificar a clientes dignos de tratamiento preferente. Todos los clientes son inicialmente establecidos como prospecto, pero cuando ellos hacen su primer pedido, se cambian al estado activo.

Si un cliente no paga una factura a tiempo, se pone en estado de prueba. Si ellos pagan a tiempo y han pedido más de $10,000 en los 6 meses anteriores ello garantiza un estado preferente. Sólo pueden cambiarse el estado preferente si el cliente llega tarde en dos o más pagos. Entonces vuelven al estado activo en lugar de prueba (dándoles el beneficio de la duda).

Page 21: Sesion 9 2 uml transicion estados

21CAL/Fundamentos

Solución Ejercicio

Prospecto

Activo

Preferente

En Prueba

OrdenColocada / AdOrden(Orden)

Ordenes de 6 meses > 10,000 / SetPreferido(true)

Pago pasado / SetPrueba(true)

Pagos pasados > 1 / SetPreferido(false)

Page 22: Sesion 9 2 uml transicion estados

22CAL/Fundamentos

Estados extendidos En la forma extendida el diagrama

de estados muestra actividades, eventos interiores, y los eventos diferidos. No muchas herramientas soportan actualmente eventos interiores y los eventos diferidos.

Page 23: Sesion 9 2 uml transicion estados

23CAL/Fundamentos

Estados extendidos Estado completo – representa el

estado de la orden

Page 24: Sesion 9 2 uml transicion estados

24CAL/Fundamentos

Actividades Las actividades son procesos realizados

dentro de un estado. Una actividad tiende a no ser atómica, es decir, una actividad puede ser un grupo o serie de tareas. Pueden interrumpirse las actividades. En este sentido, las actividades son diferentes de las acciones que son tareas atómicas, que no pueden interrumpirse. Para modelar actividades dentro de un estado use la palabra clave Do: seguido por uno o más actividades:

Page 25: Sesion 9 2 uml transicion estados

25CAL/Fundamentos

Actividades Estas actividades se realizarán desde el momento en que el objeto entra en el estado hasta que el objeto deja el estado. Do : countUnits() Do : generateStatement() Do : displayHeartRate()

Page 26: Sesion 9 2 uml transicion estados

26CAL/Fundamentos

Eventos Internos y diferidos Los eventos internos son eventos que

no causan un cambio en el estado. A veces ésta es una pista de que su modelo no muestra suficiente detalle. Pueden haber cambios en el subestados dentro del estado actual. Revisaremos subestados, superestados, y eventos internos mas adelante.

Page 27: Sesion 9 2 uml transicion estados

27CAL/Fundamentos

Eventos Internos y diferidos Los eventos diferidos son

eventos que se anuncian mientras el objeto se encuentra en el estado actual pero el objeto no responde a el hasta que el objeto deja el estado.

Page 28: Sesion 9 2 uml transicion estados

28CAL/Fundamentos

Notación ... El objetivo de la presente lección

es definir la notación de los diagramas de estados para acciones entry y exit y eventos send.

Page 29: Sesion 9 2 uml transicion estados

29CAL/Fundamentos

Notación Modelar las transiciones de estado

a veces resulta en más de un evento que transita al mismo estado. Adicionalmente, cada evento tiene una acción correspondiente. Por ejemplo:

Page 30: Sesion 9 2 uml transicion estados

30CAL/Fundamentos

Condiciones entry redundantes

El ejemplo tiene identicas acciones sobre las dos transiciones entrantes al estado bound (limitado)

Page 31: Sesion 9 2 uml transicion estados

31CAL/Fundamentos

Remueve redundancia Si la acción debe ser ejecutada sin

considerar cómo el objeto ingresa al estado, use el concepto UML de entry action. El formato es “entry:accion”

Page 32: Sesion 9 2 uml transicion estados

32CAL/Fundamentos

Acciones exit redundantes Un problema similar se da con eventos

que provocan a un objeto dejar un estado

Page 33: Sesion 9 2 uml transicion estados

33CAL/Fundamentos

Remoción de redundancia Cuando la misma accion debe ocurrir siempre que un

objeto deja un estado, use una acción exit. El formato es “exit:accion” , estos ejemplos para acciones entry y exit muestran solo una acción, pero podrían haber mas.

Page 34: Sesion 9 2 uml transicion estados

34CAL/Fundamentos

Evento send Cuando un ocurre un evento, un objeto algunas veces

responde llamando o señalando otro objeto. Esto es llamado un “send event”. Adicione el evento send a la especificación del evento usando la notación “ target-object-name.event-name(parametros)”

Page 35: Sesion 9 2 uml transicion estados

35CAL/Fundamentos

Ejercicio - instrucciones Lea la declaración del problema

siguiente y construya un diagrama de estados para el objeto Producto.

Page 36: Sesion 9 2 uml transicion estados

36CAL/Fundamentos

Control de inventario Declaración del problema

Primero se ingresan los productos en nuestro sistema cuando son ordenados mediante una orden de compra (el P.O.). Cada producto guarda un registro de P.O. Original. Cuando el producto se recibe, se pone en el inventario registrando la ubicación dónde se coloca. Cuando el producto se recibe, nosotros tenemos que actualizar la P.O. para indicar que hemos recibido el producto."

Page 37: Sesion 9 2 uml transicion estados

37CAL/Fundamentos

Control de inventario Cuando un producto se vende, el

producto rastrea la orden a la que pertenece. Una vez el producto se vende, se empaca para envio y el embarque asociado se registra. Una vez el producto se envía, necesitamos registrar el despachador y la fecha que fue recogido. De vez en cuando un producto es devuelto. En este caso, devolvemos el producto al inventario y registramos su ubicación.

Page 38: Sesion 9 2 uml transicion estados

38CAL/Fundamentos

Estado – Diagrama de Clase

Elementos del diagrama de estados vienen a formar parte del diagrama de clase

Elemento del diagrama Viene a ser en un diagrama de clasesde estados

Evento (todos los tipos) Una operación, eventos signal tambien pueden ser objetosAcción Una operación Actividad Una operaciónGuard Condition Una lógica condicional dentro de un métodoSend event Una llamada, dentro de un método, a una operación en otro

objetoEstado Un valor de atributo que representa la condición del objetoParametros operaciones o atributos que derivan el valor

Page 39: Sesion 9 2 uml transicion estados

39CAL/Fundamentos

Notación El gráfico anterior introdujo el “send event."

Un send event se usa para indicar la comunicación de un objeto a otro. En un diagrama de estados la fuente de los eventos que llegan no se muestra porque el mismo evento puede venir de cualquier número de otros objetos y la contestación debe ser la mismo. Sin embargo, un evento saliente debe definir un conjunto de objetos receptores asi sea sólo un objeto o una transmisión a todos los objetos.

Page 40: Sesion 9 2 uml transicion estados

40CAL/Fundamentos

Orden de los eventos El orden de los eventos es importante al

traducir el modelo al código. Cuando un evento ocurre: 1. Si una actividad está en marcha en el

estado actual, interrúmpalo. 2. Ejecute la salida: action/s. 3. Ejecute el event/action/s y cualquier send

event. 4. Ejecute entry: action/s del nuevo estado. 5. Ejecute la(s) activity(ies).