modelagem de sistemas de tempo- real - ic.uff.brjulius/stre/modrtsis.pdf · permitem a descrição...
TRANSCRIPT
![Page 1: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/1.jpg)
Modelagem de Sistemas de Tempo-
Real
![Page 2: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/2.jpg)
2
Requisitos de Sistemas de Software Confiabilidade Disponibilidade Segurança Manutenibilidade Portabilidade Reuso
![Page 3: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/3.jpg)
3
Requisitos não Funcionais Requisitos tecnológicos Tolerância a Falhas Redundâncias Funcionamento Degragadado Manutenção Consumo de Energia Tamanho, Peso Ergonomia ………..
![Page 4: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/4.jpg)
4
Sistemas de Tempo-Real controle de processos, aviônica, sistemas militares de defesa,
telecomunicações e controle de plantas nucleares diferenciam-se dos demais sistemas de computação pela
necessidade do atendimento das restrições temporais (prazos ou deadlines) Perder o prazo equivale a não cumprir sua funcionalidade
podem ser classificados em sistemas "soft“ quando as condições impostas admitem a perda ocasional de prazos
ou "hard” quando a perda de prazos é inaceitável por causar graves
conseqüências Se essas conseqüências forem tão graves ao ponto de
resultarem em danos catastróficos (perda de vidas ou grandes prejuízos), será considerado um Sistema de Segurança Crítica.
![Page 5: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/5.jpg)
5
Modelagem de Sistemas de Tempo-real Técnicas Informais ( ou semi-formais)
Abordagem Orientada a Objetos Enfatizam a compreensão, simplificando a comunicação entre o
desenvolvedor e o usuário Apresentam redundâncias, inconsistências, lacunas,…
Técnicas de Especificação Formais Z, SCR, SDL, etc. Satecharts FSP Caracterizam-se pelo formalismo, em detrimento da
compreensão do modelo ou da sua facilidade de uso Permitem validação do modelo
![Page 6: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/6.jpg)
6
Especificação de Requisitos Formal
Tem uma base rigorosa matemática Informal
Não pode ser completamente traduzida para uma notação matemática rigorosa
Uma especificação textual Não são suficientes para sistemas de tempo-
real Semi-formal
Entre formal e informal UML? UML 2.0?
![Page 7: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/7.jpg)
Métodos Formais na Especificação de
Sistemas
![Page 8: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/8.jpg)
8
Visão Geral São usadas na:
Verificação de Consistência onde o comportamento dos requisitos do sistema são
descritos usando uma notação de base matemática Model checking
Utiliza máquinas de estado para verificar onde uma determinada propriedade é satisfeita sob todas as condições
Prova de Teoremas Axiomas do comportamento do sistema são empregados
para derivar uma prova de que o sistema vai se comportar sob uma determinada forma
![Page 9: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/9.jpg)
9
Exemplo• Considere um sistema de monitoramento com as seguintes
características: Possui as tarefas A e B
Se a interrupção A ocorre, a tarefa B deve parar sua execução.
Tarefa A inicia execução após a ocorrência da interrupção A.
Ou a Tarefa A está executando e a Tarefa B não está ou B está executando e A não está, ou ambas não estão
Estes requisitos podem ser formalizados da seguinte forma:
p: A ocorre q: Tarefa B está executando r: Tarefa A está executando
![Page 10: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/10.jpg)
10
Exemplo
Vamos reescrever empregando estas proposições e conectivos lógicos
1.1
1.2
1.3
p q� �
p r
( ) ( ) ( )r q q r q r�� � �� �� ��
![Page 11: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/11.jpg)
11
Exemplo
1 2 3 4 5 6 7 8 p q r q¬ r¬ p q⇒ p r⇒ ( ) ( ) ( )r q q r q r∧ ¬ ∨ ∧ ¬ ∨ ¬ ∧ ¬
1 T T T F F T T F 2 T T F F T T T T 3 T F T T F T T T 4 T F F T T T T T 5 F T T F F F F F 6 F T F F T F T T 7 F F T T F T F T 8 F F F T T T T T
Tabela verdade empregada para validar a consistência deste conjunto de requisitos.
![Page 12: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/12.jpg)
12
Máquinas de Estados Finitas FSA– Autômato Finito FSM – Máquina de Estados Finitos Diagrama de Transições de Estados
É um modelo formal, matemático usado na especificação e projeto de sistemas
Muitos sistemas podem ser representados por um número finito de estados
Os sistemas transitam de estado pela ocorrência de eventos
A decorrência de um período de tempo é um evento Estas máquinas podem ser especificadas sob a forma de
diagramas.
![Page 13: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/13.jpg)
13
Máquinas de Estados Finitas
S={calibration, diagnostic, operational}, i=calibration, T=S and = {op_op, op_cal, error}. A função transição pode ser descrita pelo conjunto de tuplas da seguinte forma (state, signal, next_state).
¥
![Page 14: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/14.jpg)
14
Máquinas de Estados Finitas
evento
Estado corrente op_op op_cal error
calibration operational calibration diagnostic
diagnostic operational calibration diagnostic
operational operational calibration diagnostic
![Page 15: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/15.jpg)
15
Máquinas de Estados Finitos Pode ser descritamatematicamente pela tupla
S é um conjunto finito não vazio de estados i é o estado inicial (i S), T é um conjunto de estados terminais, é um alfabeto de símbolos ou eventos usados
para marcar transições, é a função de transição que descreve o póximo
estado da máquina dado o estado atuale um evento.
{ }, , , ,M S i T δ= Σ
Σ
δ
![Page 16: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/16.jpg)
16
Statecharts Máquinas de estado finitos Hierarquia Comunicação em Broadcast Statecharts Empregado em diagramas de estado da
UML.
![Page 17: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/17.jpg)
17
Petri nets Usado para especificar as operações a executar em
um ambiente de multiprocessamento ou multitarefas
Grafo de lugares e transições A topologia do grafo não altera com o tempo
Apenas os tokens mudam de lugar quendo uma transição dispara
Devido a sua natureza matemática, técnicas de otimização e programação formal podem ser empregadas
Modelam em detalhe e são difícies de analisar para sistemas reais.
![Page 18: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/18.jpg)
18
T1P1 P2
Before firing
T1P1 P2
after firing
Petri nets
![Page 19: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/19.jpg)
19
m0
m1
P1
P2
P3P4
T1
T2
T3
Petri nets
![Page 20: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/20.jpg)
20
m2
m3
Petri nets
![Page 21: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/21.jpg)
21
m4
Petri nets
![Page 22: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/22.jpg)
22
F1
F2
F1
F2
P2
P1
T2
T1
Petri nets
![Page 23: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/23.jpg)
23
?
F1 F2
T1
True
T2
True
F1 F2
Petri nets
![Page 24: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/24.jpg)
24
Keep looping?
True
F1
F1T1 T3
T3 (stop looping)
Petri nets
![Page 25: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/25.jpg)
25
Limitações de Métodos Formais Formalismo é usado para garantir correção
e segurança Temos limitações para assegurar esta garantia
Técnicas formais nem sempre são boas alternativas para projetos e arquiteturas
Especificações formais de software tem que ser convertidas em design e implementação Isto pode introduzir erros se feita
manualmente
![Page 26: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/26.jpg)
Uso de Métodos Formais
![Page 27: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/27.jpg)
27
Quando empregar Empregar uma abordagem formal no
desenvolvimento é justificado por: Concorrência
Estes sistemas tem um padrão complexo Sistemas de controle em tempo-real, sistemas
distribuídos, projeto de hardware e processamento paralelo
Qualidade crítica Sistemas cuja confiabilidade e disponibilidade são
importantes Aplicações financeiras, telecomunicações e Sistemas
Operacionais
![Page 28: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/28.jpg)
28
Quando empregar Empregar uma abordagem formal no
desenvolvimento é justificado por: Segurança crítica
Controle de sistemas vitais – defesa, medicina, trens, entre outros
Prevenção de acesso não autorizados – sistemas bancários, segurança nacional, etc.
Padronizações Para definição de padrões, em especial padrões internacionais Especificação de Protocolos Existem Formal Description Techniques – FDTs
Lotos Estelle SDL
![Page 29: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/29.jpg)
29
Propósito O propósito das FDTs é obter especificações:
não ambígua; completa; consistente; tratável; conformidade da implementação com a especificação
O uso de um FDT requer cuidados em especificar exatamente o que está sendo requisitado.
![Page 30: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/30.jpg)
30
O que se ganha? Descobrir antecipadamente
Erros Ambigüidades Inconsistências
Escrever uma descrição formal também impõe uma boa estrutura ao domínio do problema
![Page 31: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/31.jpg)
FSP
![Page 32: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/32.jpg)
32
Modelando Processos Um processo é a execução de um programa
seqüencial O seu estado consiste nos valores de suas
variáveis Conforme executa, transforma seu estado através
da execução de comandos Cada comando consiste de uma seq. De uma ou mais
ações não atomicas que faz com que um estado mude Um modelo mais abstrato apenas considera um
processo tendo um estado modificado por ações atômicas indivisíveis
Cada ação causa uma transição de estados A ordem possível das ações é determinada pelo grafo de
transições Uma representação abstrata do programa
![Page 33: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/33.jpg)
33
O que é programação concorrente Múltiplas linhas de execução Processamentos em paralelo Controle de Atividades externas
Vantagens Aumento de desempenho e throughput Estrutura apropriada para sistemas de tempo-real
Atendimento às restrições temporais
Desvantagens Aumento da Complexidade Sincronização
![Page 34: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/34.jpg)
34
Modelando Processos Utilizaremos um LTS
(Labeled Transition State) Transições são rotuladas
com nomes de ações P= (x->P).
P está inicialmente engajado na ação x
Após esta ação ele volta a P
SWITCH = OFF, OFF = (on -> ON), ON = (off-> OFF).
SWITCH on
off
0 1
![Page 35: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/35.jpg)
35
Histórico Robin Milner, o qual em 1973, desenvolveu a
teoria chamada por ele CCS ( Calculus of Communicating Systems - Cálculo de Sistemas Comunicantes)
CSP de Tony Hoare, que se baseia nos principios de Milner, que tem sua base fixada nas teorias de concorrência, paralelismo e distribuição de sistemas computáveis
De maneira simples, podemos dizer que Álgebras de Processos são linguagens algébricas que permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas propriedades
![Page 36: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/36.jpg)
36
Histórico Robin Milner, o qual em 1973, desenvolveu a
teoria chamada por ele CCS (Calculus of Communicating Systems - Cálculo de Sistemas Comunicantes)
CSP de Tony Hoare, que se baseia nos principios de Milner, que tem sua base fixada nas teorias de concorrência, paralelismo e distribuição de sistemas computáveis
De maneira simples, podemos dizer que Álgebras de Processos são linguagens algébricas que permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas propriedades
![Page 37: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/37.jpg)
37
Modelando processos Se x e y são ações
(x->P | y->Q) Se x ocorrer o comportamento
susequente é descrito por P senão (y ocorrendo) é descrito por Q
DRINKS = (red ->coffee->DRINKS |blue->tea ->DRINKS ).
DRINKS
redblue
teacoffee
0 1 2
![Page 38: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/38.jpg)
38
Processos Concorrentes Se P e Q são
processos (P||Q) representa a
execução de P e Q
ITCH = (scratch->STOP).
CONVERSE = (think->talk->STOP).
||CONVERSE_ITCH = (ITCH || CONVERSE).
CONVERSE think talk
0 1 2
ITCH scratch
0 1
CONVERSE_ITCH
scratch
think
scratch
talk scratch
talk think
0 1 2 3 4 5
![Page 39: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/39.jpg)
39
Sincronizando
MAKER = (make->ready->MAKER).
USER = (ready->use->USER).
||MAKER_USER = (MAKER || USER).
MAKER make
ready
0 1
USER ready
use
0 1
MAKER_USER make ready make
use use
0 1 2 3
![Page 40: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/40.jpg)
40
Exemplo
AOFF=(intA->AON),AON = (bon->AOFF).
BON =(intA->BOFF),BOFF = (bon->BON).
||AB = (AOFF||BON).AB intA
bon
0 1
AOFF intA
bon
0 1
BON intA
bon
0 1
p q� �p r
( ) ( ) ( )r q q r q r�� � �� �� ��
![Page 41: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/41.jpg)
41
Verificação de Propriedades Uma propriedade é um atributo de um
sistema que é verdadeiro para todas as suas possíveis execuções
As propriedades de interesse de sistemas concorrentes podem ser divididas em duas categorias: Safety liveness
![Page 42: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/42.jpg)
42
Verificação de propriedades Uma propriedade safety garante que nada
de errado ira ocorrer durante uma execução
Nenhum estado não desejado ira ocorrer
![Page 43: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/43.jpg)
43
Verificação de propriedades Uma propriedade liveness garante que o
sistema, eventualmente, realize algo bom Algum estado desejado deve,
eventualmente, ser atingido
![Page 44: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/44.jpg)
44
Verificação de propriedades Em programas seqüenciais a propriedade
safety mais importante é que o estado final esteja correto
Em programas concorrentes as propriedade safety mais importantes são: exclusão mutua e ausência de deadlock
![Page 45: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/45.jpg)
45
Verificação de propriedades Em sistemas seqüenciais a propriedade
liveness mais importante é a que o programa, eventualmente, termine
Em sistemas concorrente, modelamos sistemas que, na maioria das vezes, não termina
![Page 46: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/46.jpg)
46
O Paradigma de Objetos É mais do que um estilo de Programação
abrange as fases de Análise e Projeto lidam com sistemas de software grandes, complexos e
sujeitos a mudanças Análise
enunciado do problema Projeto
planta para a solução
![Page 47: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/47.jpg)
47
Desenvolvimento de Sistemas Programar os componentes individuais não
é o desafio O desafio está em
identificar a decomposição do problema em componentes
integração dos componentes garantindo-se: fácil manutenção,
entendimento , modificação e adaptação
![Page 48: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/48.jpg)
48
Metodologia OO Um mesmo conjunto de conceitos e
notação é usado em todas as fases do processo de desenvolvimento
Idéia principal: o estado de um programa é encapsulado em
objetos objetos só são acessados através de suas
operações públicas definidas por ele
![Page 49: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/49.jpg)
UML – Unified Modeling Language
Abordagem de Casos de Uso
![Page 50: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/50.jpg)
50
UML O que significa ter um sistema OO bem
projetado? Possuir um martelo não torna alguém um
arquiteto UML – uma linguagem, primordialmente
gráfica, para modelar sistemas usando os conceitos de Orientação a Objetos
![Page 51: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/51.jpg)
51
Análise Orientada a Objetos Casos de Uso
Caso de Usop para um sistema de posição inercial.
![Page 52: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/52.jpg)
Um exemplo
![Page 53: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/53.jpg)
53
Um exemplo Antes de nos perdermos em uma floresta de
detalhes Vamos apresentar uma visão geral de alguns passos e
diagramas Jogo de dados
Um jogador joga dois dados Se o total é sete os dados vencem Caso contrário o jogador ganha
Obs: serão mostrados os passos essenciais e diagramas mais usuais
Maiores detalhes no decorrer do curso
![Page 54: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/54.jpg)
54
Passos
Casos de uso Artefato da análise Descrevem processos Passo preliminar na descrição de requisitos
Casos de Uso
Modelo Conceitual
Diagramas de Colaboração
Diagramas de Classes
![Page 55: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/55.jpg)
55
Casos de Uso Jogar um jogo
Atores: jogador Descrição: Começa quando o jogador lança os
dados. Se o total dos dados é sete os dados vencem, caso contrário o jogador vence.
Jogar um jogo
jogador
![Page 56: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/56.jpg)
56
Definindo um modelo conceitual Conceitos?
Jogador, JogoDeDados, Dado Identifica-se atributos para explicitar a
relevância do conceito Identifica-se como os conceitos estão
associados
![Page 57: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/57.jpg)
57
Definindo um modelo conceitual
Jogadornome
DadovalorFace
JogoDeDadosvencedor
1 lança 2
1
joga
1
1
2
inclui
representa conceitos do domínio do problema no mundo real
![Page 58: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/58.jpg)
58
Definindo Diagramas de Colaboração Temos que definir especificações lógicas
de software que atendem os requisitos funcionais Decomposição por classes de objetos Alocação de responsabilidades aos objetos Como os objetos interagem
Diagramas de colaboração mostram o fluxo de mensagens entre instâncias de objetos e a invocação de métodos
![Page 59: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/59.jpg)
59
Diagrama de Colaboração
:Jogadorjogar()
d1:Dado
d2:Dado
1:r1:=lança()
2:r2:=lança()
![Page 60: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/60.jpg)
60
O Diagrama de Classe Para definir uma classe
Como os objetos se conectam a outros objetos?
Quais os métodos de uma classe? Os Diagramas de colaboração sugerem as
conexões entre objetos e seus métodos O Diagrama de classes expressa esses
detalhes
![Page 61: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/61.jpg)
61
O Diagrama de Classes
Jogador
nome
Dado
valorFace
JogoDeDados
vencedor
1 lança 2
1
joga
1
1
2
inclui
jogar() lançar()
iniciar()
![Page 62: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/62.jpg)
62
O Diagrama de Classes Em comparação com o modelo conceitual
este diagrama não ilustra conceitos do mundo real Ele descreve componentes de software A linha com uma flecha na extremidade sugere um
atributo JogoDeDado possui um atributo que é uma instância de
Jogador Este é apenas um diagrama inicial Ele é estendido no projeto do software
![Page 63: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/63.jpg)
63
Análise x Projeto A divisão entre as fases análise e projeto é
vaga Não é de grande valia ser rígido Análise não deve considerar tecnologia de
implementação Análise: investigação Projeto: solução
![Page 64: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/64.jpg)
64
UML UML é uma linguagem que ajuda a especificar,
visualizar e documentar modelos de sistemas de software
UML disponibiliza 12 tipos de diagramas UML é aceita pela OMG (Object Management Group)
é a forma de modelar não apenas a estrutura da aplicação, seu comportamento e arquitetura
mas também o processo de negócio e a estrutura de dados.
![Page 65: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/65.jpg)
65
UML A modelagem permite a compreensão do
sistema Nenhum modelo é inteiramente suficiente
serão necessários vários modelos, conectados entre si
várias visões, consistentes do mesmo problema
![Page 66: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/66.jpg)
66
UML Modelos explícitos facilitam a
comunicação linguagem gráfica linguagem textual todos os sistemas contêm estruturas que
transcendem o que uma linguagem de programação é capaz de representar
![Page 67: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/67.jpg)
67
UML Abrange todas as visões necessárias ao
desenvolvimento e implantação de sistemas de software
Aprender UML equivale ao entendimento de três principais elementos blocos básicos da construção da UML regras que determinam como esses blocos de
construção deverão ser combinados mecanismos básicos que se aplicam a toda a linguagem
![Page 68: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/68.jpg)
68
UML É apenas uma linguagem É somente uma parte de um método de
desenvolvimento de software Utilizada em um processo de
desenvolvimento, orientado a Casos de Uso, centrado na arquitetura, iterativo e incremental UP – Unified Process
![Page 69: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/69.jpg)
69
O Problema dos Filósofos Este é um problema clássico de
programação concorrente Vamos desenvolver o modelo UML O correspondente em FSP
Vamos verificar propriedades
![Page 70: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/70.jpg)
70
O Problema dos Filósofos 5 filósofos compartilham uma mesa circular Cada filósofo gasta seu tempo de um das duas
formas Pensando Comendo
No centro da mesa está uma travessa de macarrão Para comer o filósofo precisa de dois garfos Na mesa temos 5 garfos Cada garfo está entre dois filósofos Eles só podem usar os garfos que estão a sua direita e
a sua esquerda
![Page 71: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/71.jpg)
71
![Page 72: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/72.jpg)
72
Casos de Uso Filósofos são nossos atores O Filósofo:
Eventualmente tem fome Caso de Uso – Comer Neste momento requisita ao sistema os garfos a sua
esquerda e direita para comer Quando estiver satisfeito
Caso de Uso – Parar de Comer Devolve os garfos ao sistema
![Page 73: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/73.jpg)
73
Casos de Uso No entanto, estaremos fazendo uma
simulação para testar as propriedades do nosso modelo Vamos ter que simular os filósofos
![Page 74: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/74.jpg)
74
Casos de Uso
Pensar
Comer
Filosofo
![Page 75: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/75.jpg)
75
Comer O Filósofo deseja comer. Cada filósofo tem uma posição na mesa. Ele pega então os garfos a sua direita e a sua
esquerda Dispondo dos dois garfos ele come. Fluxos Alternativos:
Estando um dos garfos ocupados o filósofo fica esperando segurando o garfo livre
![Page 76: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/76.jpg)
76
Comer Uma implementação
1. Estando o garfo da direita ocupado ele espera. Só quando este estiver disponível ele pega o da esquerda2. Estando o garfo da esquerda ocupado ele espera segurando o garfo da direita.
![Page 77: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/77.jpg)
77
Pensar Estando o filósofo satisfeito, ele libera os
garfos e volta a pensar
![Page 78: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/78.jpg)
78
Diagrama de Classes
Garfo
livreposicao
pega()solta()Garfo()
<<ativa>>
Mesa
<<[5]>> assento : Integer<<[5]>> garfos : int
qualGarfoD()qualGarfoE()
<<ativa>>
1
5
1
5
Filósofo
assentoestadogarfoEgarfoD
comer()pensar()Filosofo()
<<ativa>>
2
1
2
1
1
5
1
5
esta sentado
SimulaFilosofo
geraVontade()SimulaFilosofo()
1
1
1
1
![Page 79: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/79.jpg)
79
Diagramas de Colaboração
: Filósofo
: Mesa
Para todos os filosofos
: SimulaFilosofo
Ins tanciacao do problema
: Garfopara todos os garfos
3: qualGarfoD( )4: qualGarfoE( )
2: f:Filosofo( assento)
5: SimulaFilosofo( f )1: pos=1..5 g: Garfo( pos)
![Page 80: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/80.jpg)
80
Diagramas de Colaboração
: Filósofo
garfoD : Garfo
: SimulaFilosofo
1: [Decorrido DeltaT] acao:geraVontade( )
2: [acao=fome] comer()
3: pega( )
garfoE : Garfo
4: pega( )
O filosofo tinha que estar pensando
![Page 81: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/81.jpg)
81
Diagramas de Colaboração
: Filósofo
garfoD : Garfo
: SimulaFilosofo
garfoE : GarfoO filosofo tinha que estar
comendo
3: solta( )
1: [Decorrido DeltaT] acao:geraVontade( )
2: [acao=pensar] pensar()
4: solta( )
![Page 82: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/82.jpg)
82
Diagrama de EstadosFilósofo
pensando
^qualGarfoD && mesa.qualGarfoE
com fome
pegando garfoD
pegando garfoE
comendo
comer
pegando garfoD
garfoD.pega()
pegando garfoE
de posse do garfoD garfoE.pega
de posse do garfoE
pensar garfoD.solta && garfoE.solta
![Page 83: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/83.jpg)
83
Diagrama de EstadosGarfo
livre
apenas para ressaltar que caso um filosofo peca um garfo ocupado, o filosofo fica em espera.
ocupado
entry: posse= filosofo com a posse
ocupado com espera
entry: espera = filosofo em espera
pega
solta
pega
solta / posse = espera && espera = null
![Page 84: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/84.jpg)
84
Jantar dos filosofos
![Page 85: Modelagem de Sistemas de Tempo- Real - ic.uff.brjulius/stre/ModRtSis.pdf · permitem a descrição de sistemas distribuí-dos e concorrentes e a verificação formal de suas ... Casos](https://reader030.vdocuments.pub/reader030/viewer/2022032713/5be4ff0409d3f2857c8b95b2/html5/thumbnails/85.jpg)
85
Um Filosofo
phil.0:PHIL phil[0].sitdown phil[0].right.get phil[0].left.get phil[0].eat phil[0].left.put phil[0].right.put
phil[0].arise
0 1 2 3 4 5 6