Sesion 9 2 uml transicion estados
Upcoming SlideShare
Loading in...5
×
 

Sesion 9 2 uml transicion estados

on

  • 1,933 views

 

Statistics

Views

Total Views
1,933
Views on SlideShare
1,933
Embed Views
0

Actions

Likes
1
Downloads
41
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Sesion 9 2 uml transicion estados Sesion 9 2 uml transicion estados Presentation Transcript

  • UML Transición de Estados Lic. César Alcántara Loayza
  • 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.CAL/Fundamentos 2
  • 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ó.CAL/Fundamentos 3
  • 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.CAL/Fundamentos 4
  • 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.CAL/Fundamentos 5
  • 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).CAL/Fundamentos 6
  • 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.CAL/Fundamentos 7
  • Evento  Es un estímulo del sistema, a menudo en la forma de un mensaje de un objeto a otro.CAL/Fundamentos 8
  • 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.CAL/Fundamentos 9
  • 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.CAL/Fundamentos 10
  • 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.CAL/Fundamentos 11
  • D. Actividad – D. Estado  La base para el diagrama de estados es la relación entre los estados y los eventos.CAL/Fundamentos 12
  • 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. CompletoCAL/Fundamentos 13
  • 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. Colocado Productos disponibles CompletoCAL/Fundamentos 14
  • 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.CAL/Fundamentos 15
  • Notación de la Acción  FillOrder() es la acción para el evento “productos disponibles”. Colocado Productos disponibles / FillOrder() CompletoCAL/Fundamentos 16
  • 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. ColocadoCAL/Fundamentos 17
  • 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.CAL/Fundamentos 18
  • Estado Final Completa Cancelada ArchivadaCAL/Fundamentos 19
  • 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).CAL/Fundamentos 20
  • Solución Ejercicio Prospecto OrdenColocada / AdOrden(Orden) Activo Pago pasado / SetPrueba(true) En Prueba Ordenes de 6 meses > 10,000 / SetPreferido(true) Pagos pasados > 1 / SetPreferido(false) PreferenteCAL/Fundamentos 21
  • 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.CAL/Fundamentos 22
  • Estados extendidos  Estado completo – representa el estado de la ordenCAL/Fundamentos 23
  • 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:CAL/Fundamentos 24
  • 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()CAL/Fundamentos 25
  • 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.CAL/Fundamentos 26
  • 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.CAL/Fundamentos 27
  • 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.CAL/Fundamentos 28
  • 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:CAL/Fundamentos 29
  • Condiciones entry redundantes  El ejemplo tiene identicas acciones sobre las dos transiciones entrantes al estado bound (limitado)CAL/Fundamentos 30
  • 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”CAL/Fundamentos 31
  • Acciones exit redundantes  Un problema similar se da con eventos que provocan a un objeto dejar un estadoCAL/Fundamentos 32
  • 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.CAL/Fundamentos 33
  • 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)”CAL/Fundamentos 34
  • Ejercicio - instrucciones  Lea la declaración del problema siguiente y construya un diagrama de estados para el objeto Producto.CAL/Fundamentos 35
  • 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."CAL/Fundamentos 36
  • 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.CAL/Fundamentos 37
  • 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 clases de estados Evento (todos los tipos) Una operación, eventos signal tambien pueden ser objetos Acción Una operación Actividad Una operación Guard Condition Una lógica condicional dentro de un método Send event Una llamada, dentro de un método, a una operación en otro objeto Estado Un valor de atributo que representa la condición del objeto Parametros operaciones o atributos que derivan el valorCAL/Fundamentos 38
  • 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.CAL/Fundamentos 39
  • 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).CAL/Fundamentos 40