Modelação dinâmica
Análise do sistema do ponto de vista da sua evolução temporal,
descrevendo o fluxo de controlo, as interacções e a
sequenciação de operações num sistema de objectos activos
concorrentes.
 modelo dinâmico, por oposição ao modelo estático de objectos que mostra os respectivos
relacionamentos num dado instante
 controlo descreve as sequências de operações que ocorrem em resposta a estímulos
externos, sem atender ao que as operações fazem, sobre que operam ou como são
implementadas
 estado de um objecto: os valores dos atributos e as ligações em que participa
 evento é algo que acontece num instante
• [Voo 123 parte de Lisboa ou Jogador avança a pedra]
• os eventos não têm duração (no modelo; na realidade têm, só que são rápidos face à
granularidade da escala temporal base da abstracção
• eventos concorrentes - não há relação de causalidade entre eles; não se afectam
- contraexemplo: a partida tem que ser antes da chegada
Modelação OO
0
Eventos
 Evento - transmissão unidireccional de informação de um objecto a outro
•
uma chamada de subrotina pode devolver um valor; resposta a um evento é
um outro evento separado debaixo do controlo do 2º objecto
•
um evento tem ocorrência única  o tempo respectivo é um atributo implícito
 classe de eventos  agrupa eventos com a mesma estrutura e comportamento
[Voo 123 parte de Lisboa e voo 789 parte de Paris são instâncias da classe de
eventos Voo parte]
 atributos servem para passar valores como parâmetros do evento
[atributos de Voo parte : linha aérea, nr. voo, cidades]
•
sinais: eventos sem atributos
botão do rato carregado( botão, localização)
telefone levantado
algarismo discado(dígito)
time-out
papel mal alimentado
Modelação OO
1
Guiões
Guião - é uma sequência de eventos que ocorrem durante uma
execução do sistema.
 âmbito de um guião
•
registo histórico ou simulação
•
todos os eventos ou só os relevantes para uma dada classse.
Guião Linha Telefónica
chamador levanta telefone
telefone chamado toca
inicia sinal de marcar
sinal de tocar no chamador
chamador disca dígito (5)
parceiro responde
sinal de marcar termina
telefone chamado deixa de tocar
chamador disca dígito (5)
chamador disca dígito (5)
sinal de chamar desaparece do
telefone chamador
chamador disca dígito (1)
telefones ligados
chamador disca dígito (2)
parceiro chamado desliga
chamador disca dígito (3)
telefones desligados
chamador disca dígito (4)
chamador desliga
Modelação OO
2
Traço de eventos
Chamador
Linha telefónica
Chamado
levanta telefone
inicia sinal de marcar
disca dígito (5)
 cada evento transmite informação de
um objecto para outro
•
•
•
sinal de marcar termina
disca dígito (5)
traço de eventos - guião
enriquecido com os emissores
e receptores dos eventos
(indicados por setas)
disca dígito (5)
uma linha vertical por cada
objecto envolvido
disca dígito (4)
tempo evolui de cima para
baixo.
disca dígito (1)
disca dígito (2)
disca dígito (3)
sinal de tocar
toca
responde
sinal de chamar desaparece
deixa de tocar
telefones ligados
telefones ligados
desliga
telefones desligados
telefones desligados
desliga
Modelação OO
3
Estados
 estado - abstracção dos valores de atributo e ligações de um objecto
•
agrupam-se num mesmo estado conjuntos de valores que provoquem uma
resposta a um evento qualitativamente semelhante (quantitativamente pode ter
variações)
•
resposta a eventos: acções e mudanças de estado [no estado de ouvir o sinal de
marcar, discar um dígito provoca a interrupção do sinal e a passagem para um
estado de marcação em curso]
 eventos
 pontos no tempo (separam estados)
estados  intervalos (separam eventos)
•
o estado de um objecto depende da sequência de eventos recebidos
•
alguns eventos podem ser esquecidos por alguns estados [o telefone, ao chegar
ao estado de inactivo, esquece toda a sequência de eventos anteriores]
Modelação OO
4
Escolha dos estados
 estado
•
tem duração, associa-se a actividades contínuas ou que são
demoradas
•
pode ser definido por uma condição [água estar no estado
líquido é equivalente a temperatura entre 0ºC e 100ºC]
declarativa
•
ignorar os atributos irrelevantes para o comportamento do
objecto
•
agrupar num único estado todas as combinações de valores e
ligações que apresentam a mesma resposta a eventos
•
associa-se estado só a objectos e não a ligações (embora fosse
possível); os valores das ligações ficam nos objectos respectivos
Modelação OO
5
Caracterização de estados
Estado: Alarme a tocar
Descrição: alarme do relógio está a tocar para indicar o limite do tempo
Sequência de eventos que produz o estado:
activa alarme( hora limite)
qualquer sequência que não inclua apagar alarme
hora corrente = hora limite
Condição que caracteriza o estado:
alarme=activo, hora limite < hora corrente < hora limite + 20 seg, e nenhum botão accionado
depois da hora limite
Eventos aceites no estado:
evento
acção
estado seguinte
hora corrente= hora limite + 20 desactiva alarme
normal
botão accionado
normal
desactiva alarme
Modelação OO
6
Diagramas de estados
transição
estado seguinte = f( evento, estado corrente )
Diagrama de estados - grafo cujos nós são estados e cujos arcos
dirigidos são transições etiquetadas por nomes de eventos.
 todas as transições a sair de um estado devem corresponder a eventos diferentes
 o diagrama especifica uma sequência de estados (um caminho no grafo) causada por uma
sequência de eventos
 se ocorrer um evento que não corresponde a nenhum arco, nenhuma transição é disparada
e o evento é ignorado
 os estados não definem totalmente todos os valores do objecto [estado discando
corresponde a muitos números possíveis, todos com o mesmo comportamento]
 um diagrama descreve o comportamento de uma única classe de objectos; todas as suas
instâncias partilham esse diagrama; como cada uma tem o seu próprio estado, tem também
a sua evolução autónoma
Modelação OO
7
A linha telefónica
no descanso
no descanso
Inactivo
levantado
tempo máximo
Sinal de marcar
dígito(n)
Tempo máximo
tempo máximo
dígito(n)
Discando
Sinal de ocupado
número inválido Mensagem
número válido
número ocupado
gravada
Ligando
Sinal de interrompido
ramal ocupado
encaminhada
Tocando
resposta
Ligado
desliga
mensagem dada
Desligado
Modelação OO
8
Objectos finitos
xeque-mate
Vez das
brancas
Início
jogadas
negras
Pretas ganham
paralisado
jogadas
brancas
Empate
paralisado
Vez das
pretas
Brancas ganham
xeque-mate
 o diagrama da linha telefónica é um ciclo contínuo
 o do xadrez tem início e fim; a criação do objecto arranca no estado inicial; há vários
estados finais; chegar lá implica destruição do objecto
 modelo dinâmico - é uma colecção de diagramas de estado, um para cada classe, que
interagem através de eventos partilhados e representa a estrutura de controlo de um
sistema
 um guião está para o modelo dinâmico, como um diagrama de instâncias para o modelo
de objectos
Modelação OO
9
Condições
Condição - função Booleana de valores dos objectos, válida num intervalo de
tempo; corresponde a um estado.
 não é um evento, que não tem duração
 guarda - uma transição guardada dispara se, quando o seu evento ocorre, a condição
associada é verdadeira
[Quando se trava bruscamente (evento), se estiver a chover (condição), o carro entra em
derrapagem (estado seguinte)]
 notação: condição de guarda numa transição representada por uma condição Booleana
entre parênteses rectos, a seguir ao nome do evento
Semáforo
Norte/Sul pode
seguir em frente
time-out
Este/Oeste pode
virar à esquerda
time-out [carros na pista esquerda N/S]
time-out [sem carros
na pista esquerda N/S]
time-out [sem carros
na pista esquerda E/O]
time-out [carros na pista esquerda E/O]
Norte/Sul pode
virar à esquerda
time-out
Este/Oeste pode
seguir em frente
Modelação OO
10
Operações
Actividade - operação que demora algum tempo a
completar-se; associada a estado.
 operações executadas em resposta aos respectivos estados ou eventos
 actividades
contínuas [telefone a tocar]
sequenciais [controlo de um transporte robotizado, com fim]
 notação - do: A dentro de uma caixa de estado a actividade A começa na entrada para
o estado e termina na saída causada por
•
um evento, nas contínuas
•
completação (normal), nas sequenciais
•
um evento (interrupção prematura), nas sequenciais
Modelação OO
11
Operações (cont.)
Acção - operação instantânea; associada a evento.
 instantânea - duração insignificante comparada com a granuralidadedo tempo no
diagrama de estados  não interessa a estrutura interna, para efeitos de controlo
•
estrutura interna interessa  modelar a operação como actividade, com eventos
de início, fim ou intermédios
 acções servem também para representar operações internas de controlo da computação
[atribuição de valores; geração de outros eventos]
 notação - a seguir ao evento causador pôr "/" e o nome da acção
Inactivo
botão direito em baixo /mostra menu popup
botão direito em cima /apaga menu popup
Menu visível
cursor deslocado /
realça item do menu
Modelação OO
12
Linha telefónica
no descanso
no descanso
Inactivo
levantado
Sinal de marcar
tempo máximo
do: toca sinal
dígito(n)
dígito(n)
Discando
Sinal de ocupado
número ocupado
do: sinal ocupado lento
Sinal de interrompido
do: sinal ocupado rápido
Tempo máximo
do: toca apito
tempo máximo
Mensagem gravada
número inválido do: passa mensagem
número válido
Ligando
do: busca ligação
ramal ocupado
encaminhada
Tocando
do: toca campaínha
resposta/ liga linha
no descanso/ desliga linha
Ligado
mensagem dada
chamado desliga/desliga linha
Desligado
Modelação OO
13
Diagramas não estruturados
~A~B~C
C
~C
A
~A
~A~B C
~A
A~B C
A
A
B B ~B
~A
A
A~B~C
~B
A B~C
~B
C
~C
~B
~A B~C
~C
~C
B
B
B
C
~A
ABC
~B
~A
• três atributos Booleanos independentes
afectam o controlo
~B
C
~A B C
A
B
C
~C
C
~C
• isolando-se os três componentes
do estado em máquinas separadas
Modelação OO
14
Diagramas estruturados
 a ideia é permitir descrições do modelo a níveis de abstracção diferentes; o que num
nível é considerado atómico pode ser expandido para se analisar a sua estrutura interna,
num nível inferior, usando um subdiagrama encaixado com estado inicial e final
 mais notação: um evento dentro de um estado significa que a transição resulta no mesmo
estado; uma transição sem evento dispara logo que a actividade no estado se completa
Inactivo
moedas( montante ) / põe balanço
[item vazio]
Recolhe dinheiro
moedas (montante) /
adiciona ao balanço
escolhe(item)
[troco<0]
do: testa item e calcula
troco
[troco=0]
do: entrega item
[troco>0]
do: faz troco
Máquina de venda
Modelação OO
15
Diagramas encaixados
 Detalhe da actividade entrega (item)
do: move o braço para
a fila correcta
do: move o braço para
a coluna correcta
braço pronto
•
do: tira item da prateleira
braço pronto
tirado
estes estados e eventos são invisíveis no diagrama de alto nível inicial
 os eventos também podem ser expandidos em diagramas subordinados: escolhe(item)
corresponde a vários eventos de nível inferior
dígito(n)
dígito(n)
do: inicializa item
limpa
escolhe(item)
do: acrescenta dígito
aceita
Modelação OO
16
Generalização de estados
 Generalização de estados (associação ou) - um objecto num estado do diagrama de alto
nível tem que estar em exactamente um estado do diagrama encaixado (subestado).
 os subestados herdam as transições e acções dos seus superestados, a menos que as
revoguem [exemplo da linha telefónica, criar o superestado Activo contendo todos os
estados excepto Inactivo; definir em Activo a transição no-descanso para passar de qualquer
dos estados para Inactivo simplificação que evita a explosão combinatorial de transições]
Transmissão
carrega N
Ponto
morto
carrega F
Frente
paragem
Marcha
carrega R atrás
carrega N
redução
Primeira
redução
Segunda
subida
Terceira
subida
Modelação OO
17
Observações
 Transmissão automática
•
superestado indicado por um contorno contendo todos os seus subestados
•
dentro do estado Frente o estado inicial por omissão é o Primeira transição sem
evento da bolinha)
•
a transição no evento paragem do contorno Frente para o estado Primeira representa
uma transição herdada por todos os subestados: em qualquer velocidade para a
frente, uma paragem faz passar para Primeira
•
Frente é
um estado abstracto; o controlo tem que estar num estado real
 Hierarquia de eventos
•
suporta a herança de atributos dos eventos [tempo é atributo de todos os eventos]
•
um evento dispara transições em todos os seus ascendentes
•
a hierarquia permite trabalhar com diferentes níveis de abstracção em diferentes
pontos do modelo
Modelação OO
18
Generalização de eventos
evento
tempo
entrada do
utilizador
dispositivo
botão
do rato
localização
botão do
rato em
baixo
botão do
rato em
cima
teclado
caracter
controlo
espaço
gráfico
alfanumérico
pontuação
Modelação OO
19
Concorrência na agregação
 modelo dinâmico - descreve um conjunto de objectos concorrentes, cada um com seu estado
e seu diagrama de estados, a evoluir independentemente
 diagrama de estados de uma montagem - colecção dos diagramas de estados dos
componentes
 agregação  concorrência
•
associação e: estado da agregação composto de um estado do primeiro diagrama e um
do segundo e um de cada um dos outros
 os componentes interagem através das guardas, com preservação da modularidade
Ignição
Carro
[Transmissão em Neutro]
Transmissão
Ignição
Transmissão
Travão
Acelerador
Acelerador
Travão
Modelação OO
20
Concorrência num objecto
 partição em subconjuntos de atributos e ligações, cada qual com o seu subdiagrama
(estado do objecto tem um estado de cada subdiagrama) delimitado por linha a
tracejado; nome geral separado do diagrama por uma linha
Preparação do despertador
Selecção do programa
comuta(banda)
sintoniza(frequência)
Banda
banda escolhida
Activa alarme
Programa
pronto
Alarme
ligado
marca(hora)
pronto
Hora
Modelação OO
21
Acções de entrada e saída
 acções - em vez de as associar só às transições, associar com a entrada ou a saída num
estado: indicar dentro do estado, com a palavra reservada entry/ ou exit/
Porta
porta aberta /
• põe em evidência as partes comuns a
A abrir
acciona /
motor desligado
todas as transições de entrada ou saída
motor para cima
•
Fechado
porta fechada /
motor desligado
Aberto
acciona /
motor para cima
A fechar
acciona /
motor para baixo
 sequência:
1 acções na transição de chegada
2 acções na entrada (entry)
3 actividade (do)
4 acções na saída (exit)
5
especialmente útil em estados com
subdiagramas
acções na transição de partida
 só a actividade é interrompível; as
acções são sempre executadas
A abrir
entry / motor para cima
porta aberta
acciona
Fechado
entry / motor desligado
acciona
porta fechada
Aberto
entry / motor desligado
acciona
A fechar
entry / motor para baixo
Modelação OO
22
Mais extensões
 acção interna - causada por um evento que não provoque mudança de estado
•
notação: indicar <evento>/<acção>, dentro do estado
•
diferente de auto-transição porque não executa as acções de entrada e saída
 transição automática - transição sem evento
•
dispara mal a actividade interna (do) termine
•
se não houver actividade, dispara imediatamente após a entrada (as acções de entrada
e saída são executadas)
•
pode ter guarda [máquina de venda]; se a guarda for falsa, o estado permanece activo
até ocorrer a mudança da condição (evento implícito)
Modelação OO
23
Resumo da notação
Estado 1
do: actividade1
entry / acção2
Estado 2
evento1 (atributos1) [condição1] / acção1
•••
exit / acção3
evento3 / acção4
evento2 (atributos2)
Classe de objectos
Modelação OO
24
Interacção
Um sistema de objectos interage por troca de eventos.
 uma acção send E(atributos) envia o evento E ao objecto ou objectos que o recebem
 um evento pode ser dirigido a um conjunto de objectos ou a um objecto simples; todos os
objectos com transições no evento podem aceitá-lo concorrentemente
 a notação com seta a ponteado, de uma transição para um objecto, significa que o evento é
enviado ao objecto quando a transição dispara
 competição - situação em que um estado pode aceitar eventos de mais do que um objecto
•
o resultado pode depender da ordem de forma pouco clara
[ exemplo da porta : accionar o botão único de comando no momento em que a
porta está a atingir a abertura máxima dá indefinição sobre se a porta fica
aberta ou vai fechar]
a situação de competição não é sempre um erro de projecto, mas há muitos casos
em que é um problema
•
exigir simultaneidade no recebimento de eventos não tem significado no mundo real
Modelação OO
25
Sincronização
 separação - quando um objecto passa a fazer várias actividades concorrentemente
(ordem irrelevante)
•
transição para estado com subdiagramas concorrentes activa cada um dos
subdiagramas
 fusão - quando as actividades concorrentes têm que terminar antes de passar ao estado
seguinte
•
outros subdiagramas que não estejam na fusão são automaticamente terminados
Emissão (Multibanco)
do: liberta cartão
recolhe cartão
pronto
Preparação
Concluído
do: liberta dinheiro
recolhe dinheiro
Modelação OO
26
Relação com o modelo de objectos
 modelo dinâmico - especifica a sequência de alterações aos objectos do modelo objecto
 estrutura do modelo dinâmico condicionada pela do modelo de objectos
•
um subestado refina os valores e as ligações que um objecto pode ter
•
um subestado pode ser visto como uma generalização de restrição (sítio melhor para
representar isto é o modelo dinâmico, quando as linguagens não suportam
directamente o conceito)
•
um objecto pode estar em estados diferentes ao longo do tempo, mas não pode
mudar de classe: diferenças inerentes entre objectos  classes diferentes; diferenças
temporárias  estados diferentes
 modelo dinâmico de uma classe herdado pelas subclasses; estas podem estender o
diagrama com um subdiagrama que envolva os atributos específicos da subclasse
(extensão), mas não altere o diagrama da superclasse
Modelação OO
27
Rádio-despertador
minutos
horas
desligar
alarme
tempo
off radio alarme
dormir
sintonia
vol
18:35
89.5
FM
 obter o diagrama dinâmico
•
o botão dormir faz tocar durante uma hora (desligar cala-o logo)
•
ao chegar ao instante do alarme, começa a tocar durante 1 hora (desligar só
desliga durante 10 minutos)
Modelação OO
28
Modelação do rádio-despertador
radio
Rádio-despertador
Interruptor
Desligado
Funcionar
do: radio activo
off
Botão de sintonia
sintoniza(freq)
Ruído
Estação
dessintoniza
Display
Hora actual
do: mostra
hora actual
botão alarme
carregado
botão alarme
livre
Hora despertar
do: altera hora
despertar
alarme
Despertador
radio
Botão de volume
ajusta(nível)/alterar nível
Activo
Cortado
ajusta(nível)/
[nível=0]
alterar nível
Altifalante
[em Estação e Activo e
(Funcionar ou Despertar
ou Adormecer)]
Desligado
Tocar
[em (Ruído ou Cortado)
ou (Desligado ou Armado
ou Latente)]
Modelação OO
29
Subdiagrama Hora despertar
Hora despertar
Põe minutos
do: incrementa
botão minutos
minutos despertar
livre
mod 60
botão horas
livre
Mostra
do: mostra
hora despertar
botão horas
carregado
botão minutos
carregado
Põe horas
do: incrementa
horas despertar
mod 24
Modelação OO
30
Subdiagrama Hora actual
Hora actual
Mostra
do: mostra
hora actual
botão tempo
botão tempo
carregado
livre
Acerta horas
do: incrementa
horas mod 24
botão horas
livre
botão horas
carregado
Altera hora
do: mostra
hora actual
botão minutos
Acerta minutos
carregado
do: incrementa
botão minutos minutos mod 60
livre
Modelação OO
31
Subdiagrama Despertador
Despertador
Armado
desligar
/desliga
minuto [hora_actual =
hora_despertar]
Despertar
do: rádio activo
desligar/desliga
10 minutos
Latente
do: incrementa
minutos mod 60
minuto [hora actual
- hora despertar>60]
60 minutos / desliga
Adormecer
dormir do: radio activo
Modelação OO
32
Encontro de ténis
Modelar um encontro de ténis do ponto de vista
de evolução da pontuação ao longo do tempo.
N 1,2
Encontro
Atleta
S 1,2
Sg[pS<30]/inc pS
Bola de
jogo N
Ng
Partida
Vence N
Ng[pN=30]/inc pN
Sg[pS=30]/inc pS
Ng[pN<30]/inc pN
Sg[pS>30]
Ng[pN>30]
Início
Vantagem
nula
Sg[pS>30]
Ng[Np>30]
Ng[pN=30]/inc pN
Sg[pS<30]/inc pS
Sg[pS=30]/inc pS
Bola de
Sg
jogo S
Ng[pN<30]/inc pN
Vence S
Jogo
pN
pS
pN - pontos do N
pS - pontos do S
Ng - N ganha
Sg - S ganha
inc - incrementa
Modelação OO
33
Download

modelo OMT dinâmico