Inicio > Departamentos > Informática > Análisis de Sistemas II
Inicio
Presentación
Programa
Bibliografía
Docentes
Horarios
Exámenes
Apuntes

MODELO DINAMICO.

 INTRODUCCION.

 Modelo Dinámico: aspectos del sistema que tienen que ver con el tiempo y los cambios.

 Control: aspecto del sistema que describe la secuencia de operaciones que ocurren como respuesta a unos estímulos.

 Conceptos principales del Modelo Dinámico:

 Sucesos o Eventos: representan los estímulos externos.

 Estados: representan valores de los objetos.

 Diagramas de Estado: Notación de Harel.

 

 SUCESOS Y ESTADOS.

 Suceso: estímulo individual de un objeto a otro. Ocurre en un determinado instante y no tiene duración.

 Estado: valores de los atributos y enlaces de un objeto en un instante dado.

 Diagrama de Estado: patrón de sucesos, estados y transiciones entre estados para una clase determinada.

 El Modelo Dinámico consiste en múltiples diagramas de estado, uno por cada clase con comportamiento dinámico significativo.

 La definición de sucesos y estados depende del nivel de abstracción que se utilice.

 

 SUCESOS.

 Dos sucesos pueden darse consecutivamente de forma lógica (causa- efecto) o no (concurrentes).

 Son un medio de transmisión de información de un objeto a otro, unidireccional.

 Clase de sucesos: indica estructura y comportamiento comunes. Pueden contener atributos para expresar la información que manejan.

Ejemplos:

Pulsación de un botón del ratón(botón, posición).

Salida de un vuelo(avión, número vuelo, ciudad).

 

 ESCENARIOS Y TRAZAS.

 Escenario: secuencia de sucesos que tienen lugar durante una ejecución particular del sistema.

Ejemplo:

1. el llamador descuelga el teléfono

2. comienza el tono de marcado

3. el llamador pulsa dígito(1)

4. finaliza el tono de marcado

5. el llamador pulsa dígito(1)

6. el llamador pulsa dígito(2)

7. el teléfono destino comienza a sonar

8. el tono de llamada aparece en el teléfono llamador

9. el destinatario descuelga

10. el teléfono receptor deja de sonar

11. el tono de llamada desaparece en el teléfono llamador.

12. los teléfonos se conectan.

13. el destinatario cuelga

14. los teléfonos se desconectan

15. el llamador cuelga

 

 ESCENARIOS Y TRAZAS DE SUCESOS.

 Pueden enviarse sucesos concurrentes.

 La descripción de escenarios es el primer paso del modelo dinámico, al que debe seguir la identificación de los objetos emisores y receptores de sucesos.

 Diagrama de traza de sucesos (DTS): especifican la secuencia de sucesos en el tiempo.

 En la etapa de diseño hay que refinar los DTSs.

 

 ESTADOS.

 Abstracción de los valores de los atributos y enlaces de un objeto.

 Especifica la respuesta de un objeto a los sucesos que llegan (acción/cambio de estado).

 Representan intervalos de tiempo.

 En su definición, se ignoran los atributos que no intervienen en el comportamiento del objeto.

 

  DIAGRAMAS DE ESTADO.

 Relaciona Sucesos y Estados.

  El siguiente Estado depende del Suceso recibido y del Estado actual.

 Las transiciones para abandonar un Estado deben corresponder a sucesos diferentes.

 Si un Suceso no genera una transición que abandone el Estado, se ignora.

 Los Estados no definen por completo todos los valores del objeto.

 Pueden representar bucles continuos o ejecuciones no repetitivas.

 Los diagramas que representan ejecuciones no repetitivas:

 Tienen estados iniciales y finales

 Se utilizan como subrutinas referenciadas desde diversos diagramas de más alto nivel.

 

 SIMBOLOS.

 

 

 CONDICIONES.

 Funciones lógicas sobre los valores de los objetos.

 Se indican entre corchetes.

 Válidas durante un intervalo de tiempo.

 Se pueden utilizar como guardas sobre las transiciones:

se disparan sólo si se cumple la condición.

 

 OPERACIONES.

 Están asociadas a las transiciones entre Estados.

 Tipos:

 Acciones: operación instantánea asociada a un suceso. También pueden representar operaciones de control interno.

 Actividades: operación con duración en el tiempo, asociada a un Estado.

 Notación:

 

 

 DIAGRAMAS DE ESTADO ANIDADOS.

Los Diagramas de Estado se pueden estructurar de forma similar a la de los objetos:

 Generalización: actividades de anidamiento que permiten organizar los Estados y Sucesos de forma jerárquica.

 Agregación: permite la descomposición de un Estado en componentes ortogonales, siendo equivalente a la concurrencia de los Estados.

 

 ANIDAMIENTO DE ESTADOS.

 Una actividad en un Estado puede expandirse como un Diagrama de Estado de nivel inferior, en el que cada Estado representa una etapa de la actividad.

 Los Sucesos también pueden expandirse en Diagramas de Estados subordinados.

 

 GENERALIZACIÓN.

 En general, los Estados en un Diagrama anidado pueden interactuar con otros Estados.

 Los Estados pueden tener subestados que heredan sus transiciones, a menos que las ‘reemplacen’ por otras equivalentes.

 CONCURRENCIA.

 Un Diagrama de Estados para un sistema compuesto es una colección de diagramas, uno por cada componente.

 La agregación implica Concurrencia.

 Los Diagramas de Estado de los componentes suelen ser independientes, pero pueden interactuar (las guardas de las transiciones para un objeto en un determinado estado pueden depender de otro objeto).

 Concurrencia dentro de un objeto:

Podemos dividir un objeto en subconjuntos de atributos y enlaces, cada uno con su propio diagrama.

 

 

 

 

 ACCIONES DE ENTRADA Y SALIDA.

 Acciones que se ejecutan cuando se entra o se sale de un Estado por cualquier suceso.

 Estas acciones se simplifican cuando todas las transiciones impliquen esas mismas acciones para la entrada o la salida.

 Orden de ejecución de las acciones:

Acciones en la transición que llega.

Acciones de Entrada.

Actividades.

Acciones de Salida.

Acciones en la transición de Salida.

 

 

 

 

 ACCIONES INTERNAS.

 Un Suceso puede provocar que se ejecute una acción sin cambiar de Estado.

 En la notación se refleja como suceso / acción

 

 TRANSICIONES AUTOMATICAS Y ENVIOS DE SUCESOS.

 Transiciones automáticas:

Se disparan siempre que la actividad asociada con el Estado fuente ha terminado, y se cumplen las condiciones de las guardas (transiciones lambda).

 Envío de Sucesos:

Los sucesos pueden dirigirse a un solo objeto o a un conjunto de ellos.

 La recepción concurrente de Sucesos de denomina condición de carrera (race condition). No es un error de diseño pero en general no deseadas:

 

 

 SINCRONIZACION DE ACTIVIDADES CONCURRENTES.

 A veces, un objeto puede realizar actividades de forma concurrente.

Los pasos internos de las actividades no han de estar sincronizados, pero todas ellas han de completarse para poder pasar al siguiente Estado:

División del Control (split).

Fusión del Control (merge).

 

 

 RELACION ENTRE MODELO DE OBJETOS Y MODELO DINAMICO.

 El Diagrama de Estados describe toda o una parte del comportamiento de un objeto de una clase.

 Los Estados son los equivalentes a los valores de los atributos y enlaces de las clases.

 Los Sucesos se pueden representar como operaciones en el Modelo de Objetos.

 La estructura del Modelo Dinámico está relacionada y restringida por la del Modelo de Objetos (generalización por restricción).

 Un Estado Compuesto es el agregado de más de un subestado concurrente. En el Modelo de Objetos hay tres fuentes de concurrencia:

 Concurrencia entre componentes: cada componente tiene su propio Estado independiente.

 Concurrencia entre partes de un componente: agregación dentro de un objeto.

 Concurrencia del objeto: comportamiento concurrente de un objeto.

 El Modelo Dinámico de una clase lo heredan sus subclases.

 La jerarquía de Sucesos es independiente de la jerarquía de clases (pueden definirse a través de diferentes clases de objetos, y son más expresivos que las operaciones).

 

 CONSEJOS PRACTICOS.

 Construir Diagramas de Estado sólo para las clases con comportamiento dinámico significativo.

 Utilizar escenarios.

 Considerar sólo los atributos relevantes.

 Verificar la consistencia de los diferentes Diagramas de Estado.

 Considerar las necesidades de la aplicación a la hora de decidir el grado de granularidad de los Sucesos y Estados.

 Distinguir entre actividades y acciones.

 Poner acciones de entrada cuando todas las transiciones entrantes generen la misma acción. Idem para las de Salida.

 Utilizar Estados anidados cuando las mismas transiciones se apliquen a varios Estados.

 Intentar mantener los Diagramas de estados de las subclases independientes de los de las superclases.

 Tener cuidado con las posibles condiciones de carrera en los Diagramas de Estado.