Title: El modelo dinmico
1El modelo dinámico
IngenierÃa de la Programación CapÃtulo 5
2Contenidos
- 5.1. Introducción.
- 5.2. Diagramas de secuencia.
- 5.3. Diagramas de colaboración.
- 5.4. Diagramas de Estados.
- 5.4.1. Componentes de un estado y de una
transición. - 5.4.2. Condiciones de guarda y acciones en
transiciones. - 5.4.3. Operaciones en los diagramas.
- 5.4.4. Superestados.
- 5.4.5. Concurrencia.
3Introducción
5.1
- El modelo de comportamiento está formado por
- Diagramas de interacción Reflejan la
comunicación dentro del sistema. - Diagramas de estados (DTE) Describen los ciclos
de vida de los objetos.
4Interacción
5.1
- Los objetos interactúan para realizar
colectivamente los servicios ofrecidos por las
aplicaciones. Los diagramas de interacción
muestran cómo se comunican los objetos en una
interacción. - Hay dos tipos de diagramas de interacción
diagramas de secuencia y diagramas de
colaboración.
5Introducción diagramas de secuencia
5.1
- Objetivos Identificar la comunicación dentro del
sistema y las operaciones de las clases. - Punto de partida
- Casos de uso.
- Plantilla textual.
6Introducción diagramas de secuencia (2)
5.1
- Casos de uso
- Describen cómo los actores interactúan con el
sistema software. - El actor genera eventos hacia el sistema que
exigen la ejecución de operaciones. - A partir de los casos de uso se identifican los
eventos dirigidos hacia el sistema y desde el
sistema a los actores. - Debe detectarse la comunicación dentro del
sistema.
7Introduccióndiagramas de secuencia (3)
5.1
8Diagramas de transición
5.1
- El modelo dinámico para el sistema está formado
por múltiples diagramas de transición entre
estados, uno para cada clase del sistema. - El diagrama de estados es una técnica gráfica
usada para describir el comportamiento (i.e.
cambios de estado) de una clase de acuerdo a los
eventos que recibe y envÃa.
9Diagrama de estados
5.1
10Diagrama de estados
5.1
115.2 Diagrama de Secuencia
5.2
- Muestra la secuencia de mensajes entre objetos
durante un escenario concreto - Cada objeto viene dado por una barra vertical
- El tiempo transcurre de arriba hacia abajo
- El retorno de un mensaje es opcional, se puede
utilizar para mostrar la devolución de valores. - Caja de activación muestra la activación del
método en la pila de ejecución
12Diagramas de secuencia
5.2
- Comunicación entre instancias
Instancia2
Instancia1
Msg1()
Msg2()
Msg 3()
13Diagramas de secuencia
5.2
- Indicación del retorno en la invocación
Instancia2
Instancia1
Msg1()
Msg2()
Msg3()
Msg4()
14Diagramas de secuencia
5.2
Instancia1
New()
Instancia2
Mensaje
Mensaje(arg)
Destrucción instancia
15Condiciones e iteración
5.2
- Para mensajes simples
- Condición
- Iteración
color rojo msg()
msg()
i1..N msg()
16Iteración para grupos de mensajes
5.2
Instancia2
Instancia1
Instancia3
i1..N
17Diagramas UML 2.0
5.2
- Los diagramas de secuencia de UML 2.0 utilizan la
notación de los MSC (Message Sequence Charts). - Notación gráfica para
- Condiciones.
- Repeticiones.
- Alternativas.
- Partes opcionales.
- Inclusiones de diagramas.
18UML 2.0 Expresiones en lÃnea
5.2
- Alternativa (alt).
- Composición paralela (par).
- Iteración (loop).
- Composición opcional (opt).
- Composición excepcional (exc).
19UML 2.0 Referencias a diagramas
5.2
- Expresiones dentro de un MSC que permiten
referenciar a otro diagrama - Simples (referencias planas)
- Compuestas (referencias planas operadores alt,
par, loop, etc.)
20UML 2.0 ejemplo
5.2
21UML 2.0 ejemplo
5.2
New()
addLinea(cod,can)
22Diagramas de colaboración
5.3
- Representan la misma información que los
diagramas de secuencia - Son intercambiables.
- En los diagramas de colaboración se describe
peor el flujo de control.
23Diagramas de colaboraciónNotación
5.3
msg()
Instancia 2
Instancia 1
1 msg()
2 msg()
Enlace
Orden del mensaje
Dirección
24Diagramas de colaboración
5.3
- Los enlaces muestran el intercambio de mensajes
entre objetos - Los mensajes se pueden intercambiar en los dos
sentidos. - Varios mensajes se pueden intercambiar en la
misma dirección. - Notación para mensajes
- valor mensaje(parámetrotipo)tiporetorno
25Diagramas de colaboración
5.3
- La información de tipos puede ser excluida si es
obvia o no es importante. - Descripción GetDescrProducto(id)
- Descripción GetDescrProducto(idItemID)
- Descripción GetDescrProducto(idItemID)DescrPro
ducto
26Diagramas de colaboración
5.3
- La flecha indica la dirección del mensaje
- La secuencia de números describe el orden
- 1, 2.1, 3.4.1
- Los mensajes puede dirigirse también a la
instancia actual (self,this).
Instancia 1
1.2 limpiar()
27Diagramas de colaboraciónnumeración de mensajes
5.3
- El primer mensaje no se numera
- Representa una acción/evento que dispara la
colaboración - Si se recibe un mensaje m con número x.y.z,
entonces los mensajes que se envÃan durante el
procesado de m se numeran con x.y.z.1, x.y.z.2,
etc.
28Diagramas de colaboraciónnumeración de mensajes
5.3
Msg1()
1Msg2()
Instancia 1
Instancia 2
1.1Msg3()
2.1Msg5()
2Msg4()
Instancia 3
2.2Msg6()
Instancia 4
29Diagramas de colaboración
5.3
- La creación de instancias se indica mediante
create(). - Puede contener parámetros create(DNI)
- La notación para las condiciones en el envÃo de
mensajes y para las iteraciones es similar a la
utilizada en los diagramas de secuencia.
305.4 Diagramas de Estados
5.4
- Un diagrama de estados relaciona eventos y
estados. - Ayudan a identificar los cambios que sufren los
objetos en el tiempo y las secuencias de
operaciones que se producen en respuesta a uno o
más eventos. - Un cambio de estado producido por un evento se
llama transición.
31Diagramas de Estados
5.4
- Los diagramas de transición entre estados son
deterministas. - Un diagrama de estados, como una clase de objeto,
es un patrón este describe una secuencia,
posiblemente infinita, de eventos.
32Eventos y Estados
5.4
- Los estÃmulos desde un objeto a otro se llaman
eventos. Representan caminos de información entre
los objetos o entre los actores y el sistema. - Un evento es algo que ocurre en el entorno del
sistema y que no tiene duración, comparado con la
escala de tiempo del mismo.
33Eventos y Estados
5.4
- Algunos eventos son simples señales para indicar
que algo ha ocurrido, pero muchas clases de
eventos tienen atributos indicando la información
que transmiten. - pulsación del botón del ratón ( botón, posición )
- string de entrada introducido( texto )
- unidad de disco no preparada
- transacción abortada
- exceso en el tiempo de espera.
- After(20 segundos).
- Eventos y atributos de los mismos
34Eventos y Estados
5.4
- La respuesta a un evento depende del estado del
objeto que lo recibe, y puede incluir un cambio
de estado o implicar el envÃo de otro evento al
emisor o a otro tercer objeto. - Un estado es una abstracción de los valores de
los atributos y enlaces de un objeto. Los
conjuntos de valores se agrupan juntos en un
estado de acuerdo a las propiedades que afectan
al comportamiento del objeto.
35Eventos y Estados
5.4
- Tipo de objeto Puerta
- atributos AngulodeApertura, color, etc
- Estados
- cerrada 0 AngulodeApertura.
- abierta 45ltAngulodeAperturalt180.
- entornada 0ltAngulodeAperturalt45.
- Tipo de objeto Cuenta Bancaria
- atributos saldo, fecha de apertura, etc.
- Estados
- ok 0ltsaldo
- números rojos saldolt0
Estados relevantes
36Diagramas de Estados
5.4
37Diagramas de Estados
5.4
- Los diagramas con estados finales representan
objetos con vidas finitas. Al estado inicial se
entra cuando se crea el objeto entrar en el
estado final o en algunos de los estados finales
implica la destrucción del objeto.
Diagrama de estados para el juego de ajedrez
385.4.1 Componentes de un estado y de una transición
5.4.1
- Un estado puede tener las siguientes componentes
- Nombre Una cadena de texto que distingue el
estado de otros estados. El nombre es una
caracterÃstica opcional. - Acciones de Entrada/Salida Operaciones que se
ejecutan, respectivamente, al entrar o al salir
del estado. - Actividades Operaciones que se ejecutan en el
estado considerado.
39Componentes de un estado y de una transición
5.4.1
- Transiciones internas Transiciones que se
manejan sin causar un cambio de estado.
40Componentes de un estado y de una transición
5.4.1
- Una transición tiene los siguientes componentes
- Estado Origen Estado afectado por la transición.
- Evento de disparo El evento cuya recepción
provoca el cambio de estado. - Condición de guarda Expresión booleana que
habilita los cambios de estado. Si se recibe un
evento y la condición de guarda se evalúa a
cierto se produce la transición. - Acción Operación que puede actuar sobre el
objeto asociado al diagrama o sobre otros objetos
accesibles al mismo.
41Componentes de un estado y de una transición
5.4.1
- Estado destino Estado al que se llega al
completar la transición.
425.4.2 Condiciones de guarda y acciones en
transiciones
5.4.2
- Las condiciones de guarda son funciones booleanas
que se aplican sobre los objetos, permitiendo que
se produzcan las transiciones. - Las acciones en una transición son operaciones
que se ejecutan cuando se produce esta.
435.4.3 Operaciones en los diagramas
5.4.3
- Una operación puede estar asociada a un estado o
a transiciones y las operaciones se efectúan en
respuesta a los estados o a los eventos. - Una actividad es una operación no instantánea
que se asocia con un estado. Las actividades
incluyen operaciones continuas. - Un estado puede controlar una actividad continua
que persiste hasta que un evento la termina
causando una transición desde ese estado a otro
estado.
44Operaciones en los diagramas
5.4.3
- La notación "do A" o do/A dentro de una caja
de estado indica que la actividad A empieza al
entrar en el estado y termina al salir, también
puede indicar que la actividad A secuencial
empieza el entrar en el estado y termina cuando
se completa. - Las acciones se pueden también asociar a la
entrada y a la salida de estados.
45(No Transcript)
46Operaciones en los diagramas
5.4.3
- Cuando se entra en el estado vÃa una transición
que se dirige hacia el mismo (entrante), la
acción de entrada se realiza. Una acción de
entrada se lleva a cabo para todas las
transiciones que se dirigen hacia el estado. Si
una transición entrante tiene una acción, esta se
realiza primero. - Cuando se sale del estado se realiza la acción de
salida. - Las actividades pueden ser interrumpidas por
eventos que causan transiciones fuera del estado,
pero las acciones de entrada y las acciones de
salida tienen que ser completadas. Si se
interrumpe una actividad, la acción de salida se
realiza.
475.4.3
Diagrama de estados de un microondas simplificado
48Operaciones en los diagramas
5.4.3
- A las acciones asociadas a eventos que no
ocasionan un cambio de estado se las llama
acciones internas. - Un objeto puede realizar la acción de enviar un
evento a otro objeto. La acción "send
E(atributos)" envÃa el evento E con los
atributos dados al objeto u objetos que lo
reciben. Un evento puede ir dirigido a un
conjunto de objetos o a un único objeto. - Un arco sin un nombre de evento indica una
transición automática que se dispara cuando la
actividad asociada con el estado se completa.
49Operaciones en los diagramas
5.4.3
Diagrama de estados con transiciones automáticas
o vacÃas
505.4.4 Superestados
5.4.4
- Para reducir el número de transiciones dentro de
un DTE se utiliza la notación de los
superestados. - Un supertado contiene un diagrama de transición
entre estados u otro superestado.
51Superestados
5.4.4
52Superestados
5.4.4
- Un superestado se trata igual que cualquier otro
estado del diagrama acciones, actividades, etc. - Los subestados heredan las transiciones salientes
del superestado, aunque estas pueden redefinirse.
535.4.4
Transiciones redefinidas en los subestados
54Superestados
5.4.4
- Existe una correspondencia entre los
superestados y la visión de las clases en el
modelo de objetos.
Modelo de objetos y tipos estado
55Superestados
5.4.4
- Varios diagramas de transición se pueden agrupar
en uno solo con un único punto de entrada.
Varios diagramas con un solo punto de entrada
56Superestados
5.4.4
- En el punto de entrada existe un test y como
resultado del mismo se activa un diagrama
subordinado.
Notación para la I.U.
575.4.5 Concurrencia
5.4.5
- Los diagramas de estado concurrentes se emplean
cuando un objeto contiene conjuntos de
comportamientos independientes o regiones de
ejecución independientes.
58Concurrencia
5.4.5
Notación para la concurrencia dentro de un objeto
59Concurrencia
5.4.5
- A nivel de objeto, el diagrama inicial se divide
en subdiagramas independientes.
Concurrencia dentro del estado emisión