martes, 16 de febrero de 2016

Diagrama de Estados

DIAGRAMAS DE ESTADO


1.      DEFINICIÓN

Los diagramas de estado son una técnica conocida para describir el comportamiento de un sistema. Describen todos los estados posibles en los que puede entrar un objeto particular y la manera en que cambia el estado del objeto, como resultado de los eventos que llegan a el. En la mayor parte de las técnicas Orientadas a Objetos, los diagramas de estado se dibujan para una sola clase, mostrando el comportamiento de un solo objeto durante todo su ciclo de vida.

Existen muchas formas de diagramas de estado, cada una con semántica ligeramente diferente. La mas popular que se emplea en las técnicas de OO se basa en la tabla de estados de David Harel (Vol. 8). OMT fue quien la uso por primera vez para los métodos de OO y fue adoptada por Grady Booch en su segunda edición (1994).


El estado en el que se encuentra un objeto determina su comportamiento. Cada objeto sigue el comportamiento descrito en el Diagrama de Estados asociado a su clase. Los Diagramas de Estados y escenarios son complementarios, los Diagramas de Estados son autómatas jerárquicos que permiten expresar concurrencia, sincronización y jerarquías de objetos, son grafos dirigidos y deterministas. La transición entre estados es instantánea y se debe a la ocurrencia de un evento.


2.      DEPENDENCIAS

Un objeto permanece en un estado por un tiempo finito, hasta que se cumpla la condición de cambio. Se construyen a partir del Diagrama de Estructura Estática (Diagramas de clases), identificando cuáles objetos cambian de estado, cual es le estado inicial y el final, definiendo a qué eventos puede responder el objeto, y qué transacciones ejecutará
Este diagrama muestra la secuencia de los estados de un objeto durante su ciclo de vida, en respuesta a un estímulo recibido. Los estados de los objetos están dados por el valor de sus atributos (estados) lo cual cambia sus comportamientos (métodos).
Los estados hacen referencia a una condición durante la vida de un objeto o a una interacción durante la cual se satisface alguna condición (ejecutar alguna acción, esperar algún evento, etc.), por ejemplo una validación de una captura.

3.      NOTACIÓN

Dentro de la notación se utilizan los siguientes símbolos:



De los cuales los mas utilizados son:

3.1  Estado    

Identifica un periodo de tiempo del objeto (no instantáneo) en el cual el objeto está esperando alguna operación, tiene cierto estado característico o puede recibir cierto tipo de estímulos. Se representa mediante un rectángulo con los bordes redondeados, que puede tener tres compartimientos: uno para el nombre, otro para el valor característico de los atributos del objeto en ese estado y otro para las acciones que se realizan al entrar, salir o estar en un estado (entry, exit o do, respectivamente).
Tipos de Estado
 Inicio: Es el estado inicial en el que se inicia el objeto en su ciclo de vida, ningún evento puede retornar un objeto a este estado. Gráficamente está representado con un circulo negro.
Fin: Es el estado final en el que queda un objeto al final de su ciclo de vida, ningún evento puede sacar a un objeto de este estado. Gráficamente está representado con un círculo negro rodeado de otro círculo.
 Estado: Son los diferentes estados por lo que puede pasar un objeto a lo largo de su ciclo de vida, de ellos se puede salir, quedarse en el y retornar. Gráficamente está representado por un rectángulo.

3.2  Eventos

Es una ocurrencia que puede causar la transición de un estado a otro de un objeto. Esta ocurrencia puede ser una de varias cosas:
·         Condición que toma el valor de verdadero o falso
·         Recepción de una señal de otro objeto en el modelo
·         Recepción de un mensaje
·         Paso de cierto período de tiempo, después de entrar al estado o de cierta hora y fecha particular
El nombre de un evento tiene alcance dentro del paquete en el cual está definido, no es local a la clase que lo nombre.

3.3  Envío de mensajes

Además de mostrar la transición de estados por medio de eventos, puede representarse el momento en el cual se envían mensajes a otros objetos. Esto se realiza mediante una línea punteada dirigida al diagrama de estados del objeto receptor del mensaje.



3.4  Transición simple

Una transición simple es una relación entre dos estados que indica que un objeto en el primer estado puede entrar al segundo estado y ejecutar ciertas operaciones, cuando un evento ocurre y si ciertas condiciones son satisfechas.

3.5  Transición interna

Es una transición que permanece en el mismo estado, en vez de involucrar dos estados distintos. Representa un evento que no causa cambio de estado. Se denota como una cadena adicional en el compartimiento de acciones del estado.

3.6  Acciones:

Podemos especificar la solicitud de un servicio a otro objeto como consecuencia de la transición. Se puede especificar el ejecutar una acción como consecuencia de entrar, salir, estar en un estado, o por la ocurrencia de un evento.



3.7  Generalización de Estados:

·         Podemos reducir la complejidad de estos diagramas usando la generalización de estados.
·         Distinguimos así entre superestado y subestados.
·         Un estado puede contener varios subestados disjuntos.
·         Los subestados heredan las variables de estado y las transiciones externas.
·         La agregación de estados es la composición de un estado a partir de varios estados independientes. 



3.8  Subestados

Un estado puede descomponerse en subestados, con transiciones entre ellos y conexiones al nivel superior. Las conexiones se ven al nivel inferior como estados de inicio o fin, los cuales se suponen conectados a las entradas y salidas del nivel inmediatamente superior.

3.9  Transacción Compleja

Una transición compleja relaciona tres o más estados en una transición de múltiples fuentes y/o múltiples destinos. Representa la subdivisión en threads del control del objeto o una sincronización. Se representa como una línea vertical de la cual salen o entran varias líneas de transición de estado.


3.10  Transición a estados anidados

Una transición de hacia un estado complejo (descrito mediante estados anidados) significa la entrada al estado inicial del subdiagrama. Las transiciones que salen del estado complejo se entienden como transiciones desde cada uno de los subestados hacia afuera (a cualquier nivel de profundidad).




3.11  Transiciones temporizadas

·         Las esperas son actividades que tienen asociada cierta duración.
·         La actividad de espera se interrumpe cuando el evento esperado tiene lugar.

Este evento desencadena una transición que permite salir del estado que alberga la actividad de espera. El flujo de control se transmite entonces a otro estado.



4.1 Diagramas de estados concurrentes


Un modelo dinámico describe un conjunto de objetos concurrentes, cada cual con su propio estado y con su propio diagrama de estados. Los objetos de todo sistema pueden cambiar de estado independientemente. El estado de todo el sistema no se puede representar mediante un solo estado de un único objeto; es el producto de los estados de todos los objetos que lo componen. En muchos sistemas, además, el número de objetos puede cambiar dinámicamente.
Ventajas

-          El Diagrama de Estados tiene éxito en sistemas interactivos, ya que expresa la intención que tiene el actor (su usuario) al hacer uso del sistema.

-          Como técnica de extracción de requerimiento permite que el analista se centre en las necesidades del usuario, qué espera éste lograr al utilizar el sistema, evitando que la gente especializada en informática dirija la funcionalidad del nuevo sistema basándose solamente en criterios tecnológicos.

-          A su vez, durante la extracción (elicitation en inglés), el analista se concentra en las tareas centrales del usuario describiendo por lo tanto los casos de uso que mayor valor aportan al negocio. Esto facilita luego la priorización del requerimiento.

Desventajas

-          La inclusión de estas relaciones hace que los diagramas sean más difíciles de leer, sobre todo para los clientes.


EJEMPLO DE DIAGRAMA DE ESTADOS



RESUMEN

DIAGRAMAS DE ESTADO

DEFINICIÓN
 Los diagramas de estado son una técnica conocida para describir el comportamiento de un sistema.

DEPENDENCIAS
 Un objeto permanece en un estado por un tiempo finito, hasta que se cumpla la condición de cambio.

ELEMENTOS
Identifica un periodo de tiempo del objeto (no instantáneo) en el cual el objeto está esperando alguna operación, tiene cierto estado característico o puede recibir cierto tipo de estímulos.

Ø  Eventos
Es una ocurrencia que puede causar la transición de un estado a otro de un objeto. Esta ocurrencia puede ser una de varias cosas.

Ø  Envío de mensajes
Además de mostrar la transición de estados por medio de eventos, puede representarse el momento en el cual se envían mensajes a otros objetos.

Ø  Transición simple
Una transición simple es una relación entre dos estados que indica que un objeto en el primer estado puede entrar al segundo estado y ejecutar ciertas operaciones, cuando un evento ocurre y si ciertas condiciones son satisfechas.

Ø  Transición interna
Es una transición que permanece en el mismo estado, en vez de involucrar dos estados distintos.

Ø  Acciones:
Podemos especificar la solicitud de un servicio a otro objeto como consecuencia de la transición.

Ø  Generalización de Estados
La agregación de estados es la composición de un estado a partir de varios estados independientes.

Ø  Subestados
Un estado puede descomponerse en subestados, con transiciones entre ellos y conexiones al nivel superior.

Ø  Transacción Compleja
Una transición compleja relaciona tres o más estados en una transición de múltiples fuentes y/o múltiples destinos.

Ø  Transición a estados anidados
Una transición de hacia un estado complejo (descrito mediante estados anidados) significa la entrada al estado inicial del subdiagrama.


Ø  Transiciones temporizadas
Este evento desencadena una transición que permite salir del estado que alberga la actividad de espera.

Ø  Diagramas de estados concurrentes
Un modelo dinámico describe un conjunto de objetos concurrentes, cada cual con su propio estado y con su propio diagrama de estados.

SUMARY

State diagrams

DEFINITION
 State diagrams are a technique known to describe the behavior of a system.

UNITS
 An object remains in a state for a finite time until the change condition is met.

ELEMENTS
It identifies a period of time the object (not instant) in which the object is waiting for an operation, has a certain characteristic state or you may receive certain types of stimuli.

Events
It is an occurrence that can cause the transition from one state to another of an object. This occurrence may be one of several things.

 Messaging
In addition to showing the state transition through events, it may represent the point at which messages are sent to other objects.

simple transition
A simple transition is a relationship between two states indicating that an object in the first state to the second state can enter and perform certain operations when an event occurs and if certain conditions are met.

internal transition
It is a transition that remains in the same state, instead of involving two different states.

Actions:
You can specify a service request to another object as a result of the transition.

Generalization United
Aggregation of states is the composition of a state from several independent states.


 substates
A state can be decomposed into sub-states, with transitions between them and the top level connections.

 Complex transaction
A complex transition connects three or more states in a transition from multiple sources and / or multiple destinations.

 Nested transition states
A transition to a complex state (described by nested states) means the input to the initial state of the subdiagram.


timed transitions
This event triggers a transition that exits the state that is home activity expected.

 Diagrams concurrent states
A dynamic model describes a set of concurrent objects, each with its own status and its own state diagram.

RECOMENDACIONES

Las interfaces gráficas de usuario no son la única manera de trabajar en un sistema informático. Para usuarios avanzados podría no ser un problema trabajar en un ambiente bajo una consola utilizando comandos o instrucciones que desencadenen procesos o acciones determinadas.

CONCLUSIÓN

Es necesario contar en el diseño del software con diagramas de estado dado que permiten a los analistas, diseñadores  y desarrolladores comprender el  comportamiento de los objetos de un sistema.

APRECIACIÓN DEL EQUIPO

Los diagramas de estado en el caso de los automatas finitos, además de mejorar su legibilidad, comprensión, e incluso visualizar una especie de primera aproximación material a su implementación física o computacional; también ayudan a visibilizar las propiedades del AF más intuitivamente que en la notaciones de la 5-tupla o la de la tabla de transiciones.

GLOSARIO DE TÉRMINOS

Es un procedimiento algoritmico o computacional.
Acoplamiento
Es la cantidad de relaciones que se establecen entre los módulos de un programa.
Activación
Es la ejecución de una acción.

Actor
Es un tipo con un estereotipo predefinido, que denota una entidad externa al sistema que interactúa con casos de uso

Es el grado en que se ha conseguido la total implementación de las funciones requeridas.


Es un módulo de software ejecutable que tiene identidad y una interface bien definida. 

BIBLIOGRAFÍA

http://markblogs-markmendoza.blogspot.pe/2010/12/diagramas-de-estado.html
http://www.ecured.cu/Diagrama_de_estado
http://jms32.eresmas.net/tacticos/UML/UML08/UML0801.html


Video de Referencia


Link de la Diapositiva

No hay comentarios:

Publicar un comentario