34
Modelação OO 1 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 tem que ser antes da

Modelação OO0 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

Embed Size (px)

Citation preview

Page 1: Modelação OO0 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

Modelação OO1

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

Page 2: Modelação OO0 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

Modelação OO2

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

Page 3: Modelação OO0 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

Modelação OO3

GuiõesGuiã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ónicachamador levanta telefoneinicia sinal de marcarchamador disca dígito (5)sinal de marcar terminachamador disca dígito (5)chamador disca dígito (5)chamador disca dígito (1)chamador disca dígito (2)chamador disca dígito (3)chamador disca dígito (4)

telefone chamado tocasinal de tocar no chamadorparceiro respondetelefone chamado deixa de tocarsinal de chamar desaparece do

telefone chamadortelefones ligadosparceiro chamado desligatelefones desligadoschamador desliga

Page 4: Modelação OO0 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

Modelação OO4

Traço de eventos

cada evento transmite informação de um objecto para outro

• traço de eventos - guião enriquecido com os emissores e receptores dos eventos (indicados por setas)

• uma linha vertical por cada objecto envolvido

• tempo evolui de cima para baixo.

levanta telefoneinicia sinal de marcar

disca dígito (5)sinal de marcar termina

disca dígito (5)disca dígito (5)

disca dígito (1)disca dígito (2)

disca dígito (3)disca dígito (4)

sinal de tocar tocaresponde

sinal de chamar desaparece deixa de tocartelefones ligados telefones ligados

desliga

telefones desligados telefones desligadosdesliga

Chamador Linha telefónica Chamado

Page 5: Modelação OO0 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

Modelação OO5

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]

Page 6: Modelação OO0 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

Modelação OO6

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

Page 7: Modelação OO0 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

Modelação OO7

Caracterização de estados

Estado: Alarme a tocarDescrição: alarme do relógio está a tocar para indicar o limite do tempoSequência de eventos que produz o estado:

activa alarme( hora limite)

qualquer sequência que não inclua apagar alarmehora 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 seguintehora corrente= hora limite + 20 desactiva alarme normalbotão accionado desactiva alarme normal

Page 8: Modelação OO0 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

Modelação OO8

Diagramas de estados

Diagrama de estados - grafo cujos nós são estados e cujos arcos dirigidos são transições etiquetadas por nomes de eventos.

transição estado seguinte = f( evento, estado corrente )

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

Page 9: Modelação OO0 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

Modelação OO9

A linha telefónicaInactivo

Desligado

Sinal de ocupado

Sinal de interrompido

Tempo máximo

Mensagem gravada

no descanso

levantado

dígito(n) tempo máximo

número válidonúmero inválido

número ocupado

ramal ocupado

resposta

desligamensagem dada

Ligado

Tocando

Ligando

Discando

Sinal de marcar

dígito(n)

tempo máximo

encaminhada

no descanso

Page 10: Modelação OO0 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

Modelação OO10

Objectos finitos

Início Vez dasbrancas

Vez daspretas

Pretas ganham

Empate

Brancas ganham

xeque-mate

jogadasnegras

jogadasbrancas

paralisado

xeque-mate

paralisado

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

Page 11: Modelação OO0 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

Modelação OO11

CondiçõesCondiçã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

Norte/Sul podeseguir em frente

time-out [carros na pista esquerda N/S] Norte/Sul podevirar à esquerda

Este/Oeste podevirar à esquerda

Este/Oeste podeseguir em frentetime-out [carros na pista esquerda E/O]

time-out [sem carrosna pista esquerda N/S]

time-out [sem carrosna pista esquerda E/O]

time-outtime-out

Semáforo

Page 12: Modelação OO0 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

Modelação OO12

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

Page 13: Modelação OO0 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

Modelação OO13

Operações (cont.)

Inactivobotão direito em baixo /mostra menu popup

Menu visívelbotão direito em cima /apaga menu popup

cursor deslocado /realça item do menu

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

Page 14: Modelação OO0 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

Modelação OO14

Linha telefónicaInactivo

Desligado

Sinal de ocupado

Sinal de interrompido

Tempo máximo

Mensagem gravada

no descanso

levantado

dígito(n) tempo máximo

número válidonúmero inválido

número ocupado

ramal ocupado

resposta/ liga linha

chamado desliga/desliga linhamensagem dadaLigado

Tocando

Ligando

Discando

Sinal de marcar

dígito(n)

tempo máximo

encaminhada

no descanso

do: toca sinal do: toca apito

do: passa mensagem

do: busca ligação

do: toca campaínha

do: sinal ocupado lento

do: sinal ocupado rápido

no descanso/ desliga linha

Page 15: Modelação OO0 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

Modelação OO15

Diagramas não estruturados

~A~B~C

~A AB

~B

C~C ~A~B C A~B C

A~B~C

~A B C

~A B~C

A B~C A B C

A~A

B~B

C

~C

B

~B~A

A

~C C

C~C

~BB

A~A

A~A

BB

~B~B

C ~C~C

C

• três atributos Booleanos independentesafectam o controlo

• isolando-se os três componentes do estado em máquinas separadas

Page 16: Modelação OO0 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

Modelação OO16

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

Inactivomoedas( montante ) / põe balanço Recolhe dinheiro

moedas (montante) /adiciona ao balanço

do: testa item e calculatroco

[troco<0]escolhe(item)[item vazio]

[troco=0] [troco>0]

do: faz trocodo: entrega item

Máquina de venda

Page 17: Modelação OO0 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

Modelação OO17

Diagramas encaixados

Detalhe da actividade entrega (item)

do: move o braço para a fila correcta

do: move o braço paraa coluna correcta

do: tira item da prateleira

braço pronto 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

do: inicializa item do: acrescenta dígito

limpa

dígito(n)

aceita

escolhe(item)

dígito(n)

Page 18: Modelação OO0 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

Modelação OO18

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 Inactivosimplificação que evita a explosão combinatorial de transições]

Segunda TerceiraPrimeiraredução

subida

paragemFrente

redução

subida

Pontomorto

Marchaatrás

carrega N

carrega R

carrega F carrega N

Transmissão

Page 19: Modelação OO0 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

Modelação OO19

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

Page 20: Modelação OO0 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

Modelação OO20

Generalização de eventos

espaço alfanumérico pontuação

botão do rato embaixo

botão dorato emcima

controlo gráfico

botãodo ratolocalização

tecladocaracter

entrada doutilizadordispositivo

eventotempo

Page 21: Modelação OO0 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

Modelação OO21

Concorrência na agregação

Travã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

Carro

Ignição Transmissão Travão Acelerador

Ignição

Transmissão

Acelerador

[Transmissão em Neutro]

Page 22: Modelação OO0 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

Modelação OO22

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

Banda

Selecção do programa

Activa alarme

Programabanda escolhida

Alarmeligado

comuta(banda) sintoniza(frequência)

Horapronto

marca(hora)

pronto

Page 23: Modelação OO0 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

Modelação OO23

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/

AbertoFechado

A abrir

A fechar

acciona /motor para cima

acciona /motor para baixo

porta fechada /motor desligado

porta aberta /motor desligado

acciona /motor para cima

Abertoentry / motor desligado

Fechadoentry / motor desligado

A abrirentry / motor para cima

A fecharentry / motor para baixo

acciona

acciona

porta aberta

acciona

sequência:1 acções na transição de chegada2 acções na entrada (entry)3 actividade (do)4 acções na saída (exit)5 acções na transição de partida

só a actividade é interrompível; as acções são sempre executadas

• põe em evidência as partes comuns a todas as transições de entrada ou saída

• especialmente útil em estados com subdiagramas

Porta

porta fechada

Page 24: Modelação OO0 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

Modelação OO24

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)

Page 25: Modelação OO0 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

Modelação OO25

Resumo da notação

Estado 1do: actividade1

entry / acção2

exit / acção3

evento3 / acção4

Estado 2

• • •evento1 (atributos1) [condição1] / acção1

Classe de objectos

evento2 (atributos2)

Page 26: Modelação OO0 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

Modelação OO26

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

Page 27: Modelação OO0 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

Modelação OO27

Sincronização

Emissão (Multibanco)

Preparação

do: liberta cartãopronto

Concluído

do: liberta dinheiro recolhe dinheiro

recolhe cartã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

Page 28: Modelação OO0 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

Modelação OO28

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

Page 29: Modelação OO0 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

Modelação OO29

Rádio-despertador

18:35 89.5 FM

minutos

horasalarme

tempo

dormirdesligaroff radio alarme

vol

sintonia

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)

Page 30: Modelação OO0 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

Modelação OO30

Modelação do rádio-despertador

Desligado Funcionardo: radio activo

Despertadorradio

off

alarme

radio

Ruído Estaçãosintoniza(freq)

dessintoniza

Botão de sintonia

Cortado Activoajusta(nível)/alterar nível

ajusta(nível)/alterar nível

[nível=0]

Botão de volume

Hora actualdo: mostrahora actual

Hora despertardo: altera hora

despertar

botão alarmecarregado

botão alarmelivre

Display

Desligado Tocar

[em Estação e Activo e(Funcionar ou Despertar

ou Adormecer)]

[em (Ruído ou Cortado)ou (Desligado ou Armado

ou Latente)]

Altifalante

InterruptorRádio-despertador

Page 31: Modelação OO0 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

Modelação OO31

Subdiagrama Hora despertar

Mostrado: mostra

hora despertar

Põe minutosdo: incrementa

minutos despertarmod 60

botão minutoscarregado

botão minutoslivre

Hora despertar

Põe horasdo: incrementahoras despertar

mod 24

botão horascarregado

botão horaslivre

Page 32: Modelação OO0 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

Modelação OO32

Subdiagrama Hora actual

Mostrado: mostrahora actual

Acerta minutosdo: incrementa

minutos mod 60

botão minutoscarregado

botão minutoslivre

Hora actual

Acerta horasdo: incrementahoras mod 24 botão horas

carregado

botão horaslivre

Altera horado: mostrahora actual

botão tempocarregado

botão tempolivre

Page 33: Modelação OO0 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

Modelação OO33

Subdiagrama Despertador

Adormecerdo: radio activo

Latentedo: incrementa

minutos mod 60

desligar/desliga

10 minutos

Despertador

Armado

minuto [hora actual- hora despertar>60]

/ desliga

minuto [hora_actual =hora_despertar] Despertar

do: rádio activo

desligar/desliga

dormir

60 minutos

Page 34: Modelação OO0 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

Modelação OO34

Encontro de ténisModelar um encontro de ténis do ponto de vista de evolução da pontuação ao longo do tempo. AtletaEncontro

Partida

JogopNpS

N

S

1,2

1,2

Início Vantagemnula

Bola dejogo N

Bola dejogo S

Vence N

Vence S

pN - pontos do N

pS - pontos do S

Ng - N ganha

Sg - S ganha

inc - incrementa

Ng[pN<30]/inc pN

Sg[pS<30]/inc pS

Ng[pN=30]/inc pN

Sg[pS=30]/inc pS

Sg[pS<30]/inc pS

Ng[pN<30]/inc pN

Sg[pS=30]/inc pS

Ng[pN=30]/inc pN

Ng[pN>30]

Ng

Sg[pS>30]

Sg

Sg[pS>30]Ng[Np>30]