![Page 1: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/1.jpg)
TECMF
1
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Validação Formal de Sistemas de Software
Prof. Edward Hermann Haeusler
Depto de Informática PUC-RIO
![Page 2: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/2.jpg)
TECMF
2
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
- Aplicação da Ciência e Matemática através da qual as
propriedades da matéria e as fontes de energia são tornadas
úteis às pessoas (Dic. Merriam-Webster, 2001)
===> Projeto e Manufatura de Sistemas Complexos
- Desenvolvimento e Aplicação Sistemática de Modelos de Comprovada Eficácia gerando Soluções Tecnológicas para Problemas da Humanidade
- Engenharia é a prática da aplicação segura e econômica das leis científicas que
governam as forças e materiais da Natureza, através da organização, design e
construção, para o benefício da humanidade. S. E. Lindsay (1920)
- Engineering is the application of math and science to create something of
value from our natural resources. (IEEE- 2002)
Engenharia
![Page 3: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/3.jpg)
TECMF
3
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Construção de um artefato para uso pela Sociedade
Levantamentodas
CaracterísticasDesejadas
Artefato
Validação
==> Métodos e Processos de Fabricação de Artefatos
- É mais econômico validar um processo de fabricação de um artefato que um artefato individualmente.
==> Engenharia !!!
Matemática e Teorias Científicas
FABRICAÇÃO
![Page 4: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/4.jpg)
TECMF
4
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Construindo uma Ponte
Cálculos p/
Ponte
Espec.
-Projeto(template)
-Material
-Profund.
-Ventos
-Correnteza.
Implementação
-Fluxoda Obra
- $$$
- Carga
-Recursoshumanos
-ProjetoFísico
Física
MatemáticaQuímica
Engenharia
![Page 5: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/5.jpg)
TECMF
5
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Engenharia de Software X Engenharias tradicionais
Aspecto Eng. Software Eng. Tradic.
Evolução doartefato
Extremamentedinâmica
Lenta eGradual
Forma deprodução
Cópia doexecutável
Fabricaçãodas unid.
Garantia doFabricante
??????? Alguma
Elic. de requis. Complexa Simples
Adaptabilidade Flexível Rígido
==> As engenharias tradicionais baseiam-se fortemente em “Frameworks” para construção de tipos bem específicos e determinados de artefatos (aviões, carros, pontes, edifícios, navios, etc).
![Page 6: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/6.jpg)
TECMF
6
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Casos famosos de softwares complexos que não funcionaram a contento
- Explosão do foguete Ariadne (projeto europeu) poucos segundos após seu lançamento devido a falha de programação.
- Sistema de triagem/controle de bagagem do aeroporto internacional de Denver (EUA) atrasou a inauguração do aeroporto. Custo do sistema (193 milhões $$ ) :
- Inauguração estava prevista para Out/1993. - Em Junho/1994 o sistema ainda não estava funcionando, mas custava $$ !! - No começo de 1995 um controle MANUAL de bagagem foi instalado para que o aeroporto pudesse ser inaugurado (com atraso de mais de um ano)
- O Therac-25, um equipamento de radioterapia controlado por computador, aplicou doses fatais de radiação em alguns pacientes de câncer.
- Quando decidiram testar o subsistema de desligamento de emergência da Sizewell-B, uma usina nuclear na Inglaterra, este falhou em mais de 50% das vezes. Não conseguiram en- contrar a razão da falha nas 100.000 linhas de código.
![Page 7: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/7.jpg)
TECMF
7
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
O Conhecimento básico em Engenharia de Software compreende :
==> Lógica Matemática:
Trata das leis da argumentação (provas) formal.
==> Álgebra
Descreve leis de construção de “objetos” e determina a identidade entres estes.
==> Complexidade de Algoritmos e Computabilidade
Escopo e Limitações da noção de “computável”.
==> Experiência prévia com modelos de desenvolvimento de Software.
Apresenta métodos e técnicas de desenvolvimento em base empírica.
![Page 8: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/8.jpg)
TECMF
8
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Métodos Formais e Arquitetura de Software
Porque Arquitetura de Software é essencial para a validação de sistemas ??
![Page 9: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/9.jpg)
TECMF
9
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Validação Formal e Arquitetura de Software
- Validação Formal de Software x Testes
- Sistemas Reativos e Transformacionais
- Como o projeto se reflete na etapa de validação
- Arquitetura de Software
- Adicionalmente o tempo aos requisitos funcionais
![Page 10: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/10.jpg)
TECMF
10
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Requisitos
Especificação
Implementação
Testes
Testes
Verificação
Verificação Formal
- Um passo de verificação pode cobrir todo possível comporta- mento do sistema
- Verificação antes da implementa- ção diminui o custo $$ !!
- É especialmente importante quando o comportamento é complexo.
![Page 11: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/11.jpg)
TECMF
11
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Validação x Prova de Correção
Mundo Real
Espec. Formal
cenários resultado
Espec. Formal A
Espec. Formal B
Prova que B tem as propriedadesque A também tem.
Verifica a adequação daEspecificação Formala Situações Reais
![Page 12: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/12.jpg)
TECMF
12
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Métodos Formais- Métodos Formais apresentam “frameworks” mentais, notações, e, métodos sistemáticos para o projeto, documentação, e análise de sistemas computação.
- Os principais benefícios da aplicação de métodos formais é permitir que algumas questões sobre o projeto possam ser respondidas por avaliação simbólica(e.g. prova de teorema ou verificação de modelo)
- A avaliação simbólica pode ser usada para “debugging” e inspeção do projeto, bem como para verificação a posteriori.
- Pode ser comparado à forma com que cálculo estrutural é usado no projeto de construções, mecânica computacional de fluídos é usada no projeto de aeronaves, etc
- Bons para certificação e garantia de qualidade.
![Page 13: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/13.jpg)
TECMF
13
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Técnicas Formais para a Validação de Sistemas
- Model Cheking (verificação de modelos)
- Theorem Proving (prova de teoremas)
Verificar se certas propriedades valem em um certo modelo
Provar propriedades em uma teoria sobre o sistema
Podem ser usados como métodos complementares
![Page 14: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/14.jpg)
TECMF
14
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Model Checking: O que é ?
- Especificar - O sistema como um sistema de transição (finito em geral). - Uma propriedade como uma sentença em uma linguagem de consulta. - Estabelecer que o sistema é um modelo da sentença
sistema |= sentença
Obs: Tarefa realizada por varredura no espaço de busca
- Usualmente não há necessidade de teorias auxiliares
- Normalmente, as únicas suposições dizem respeito às propriedades dinâmicas do sistema (branching vs. linear time, fairness, liveness)
- Funciona melhor com sistemas voltados ao controle e com um pequeno espaço de estados
![Page 15: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/15.jpg)
TECMF
15
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Sistema Transformacional
Sistema Reativo
tempo
entradas saídas
tempo
entradase saídas
![Page 16: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/16.jpg)
TECMF
16
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
- Sistemas Reativos podem ser entendidos como um conjunto de threads concorrentes recebendo sinais de sensores no ambiente, e, atuando sobre mecanismos que produzem a mudança desejada no ambiente.
- Sistemas embutidos (dvd, injetor de combustível, celular) são normalmente reativos
sensores
atuadores
condic. daentrada
condic. saída
interface entrada
interfacesaída
Processador
![Page 17: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/17.jpg)
TECMF
17
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Propriedades que são verificadas em S. Reativos (CMP1995)
Segurança (Safety) : “algo ruim nunca acontece”
se uma resposta é dada então a mesma está correta
Toda vez que a porta do avião abre, há uma escada.
Não há ``deadlocks''
Progresso (Liveness) : “algo bom acontece”
Garantia : “algo pode acontecer”. Ex: O vídeo pode ser repetido
Obrigação : “algo sempre acontece”. Ex: O motor sempre funciona.
Atividade : “sempre a postos”. Ex: Toda requisição é atendida.
Persistência : Uma vez a porta fechada, sempre é possível abrí-la
Reatividade = Atividade & PersistênciaOportunidade (Fairness) :
“se algo pode acontecer então ocorre infinitas vezes”
“se algo pode acontecer infinitas vezes então acontece infinitas vezes
![Page 18: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/18.jpg)
TECMF
18
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Especificação (modelo) de sistemas reativo
Threads/Processos + Composição
- Abordagens : - Algébra + Lógica (CCS/Pi-calculus + -calculus) - Modelo + Lógica (Mundos Possíveis + Lógica Temporal)
![Page 19: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/19.jpg)
TECMF
19
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Mundos Possíveis (Kripke)
- A verdade de uma proposição é verificada em relação à um mundo.- Os mundos estão relacionados ao tempo (lógica temporal)- Mundos podem ser vistos como estados locais/globais.- Estrutura ramificada, ou, linear de tempo. (obs: ¬ P P P )
P�P�
P,Q Q ,P�P�
P,Q
P,Q
P,Q Q ,P�
P�
P,Q Q ,P�P�
P,Q
P,Q
P,Q Q ,P�
P,Q� ,P�P�
P,Q
P,Q
PP,Q ,P�
P,Q
P,Q
P,Q ,P�
P � Sempre P AP
![Page 20: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/20.jpg)
TECMF
20
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
PUQ
P,Q Q ,P�P�
P,Q
P,Q
P,Q Q ,P�
Outras modalidades temporais
PUQ P until Q
P,Q Q ,P�P�
P,QQ
P,Q
P,Q Q ,P�
PP,Q ,P�P�
P,Q
P,Q
P,Q Q ,P�
NP
P,Q Q ,P�P�
P,Q
P,Q
PP,Q Q ,P�
NP Next P
EP
PP,Q Q ,P�P�
P,Q
PP,Q
PP,Q Q ,EP
PP,Q Q ,P�P�
PP,Q
PP,Q
PP,Q Q ,P�P�
EP Eventualmente P P
![Page 21: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/21.jpg)
TECMF
21
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
O Until e o Next são suficientes
- true U P EP
- AP ¬ E ¬ P
![Page 22: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/22.jpg)
TECMF
22
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Threads e Máquinas de Estado Finitas - Cada Thread pode ser modelada por uma MEF
MEF
3
Est.2
Est.1
cond/act1
act2ev1
ev2
3
2c 2ccact2 act2
1
ev2 act1 ev2
ev1
3
2c 2ccact2 act2
3 1
ev2 act1
3
ev2
3
ev13
2c 2ccact2 act2
3 1
ev2 act1
3
ev2
3
ev1
3
2c 2ccact2 act2
3 1
ev2 act1
3
ev2
3
ev1
Comportamento da MEF
![Page 23: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/23.jpg)
TECMF
23
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
entercode
checkcode
unlockdoordelay
countattempts
sound alarm
valid code/count = 0
invalid code/
code entered
timeout
count = = 3/count = 0
Alarme de Cofre
count ++
![Page 24: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/24.jpg)
TECMF
24
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Model Checking
- Usualmente se usa estrutura de tempo ramificado (branching time) e CTL como linguagem lógica de consulta (CTL = Computational Tree Logic)
- CTL : CTL apresenta quantificação sobre caminhos e sobre estados
- AG(p) : p é verdade em todo estado ao longo de cada caminho. - AF(p) : p é verdade em algum estado ao longo de cada caminho. - EG(p) : p é verdade em todo estado ao longo de algum caminho. - EF(p) : p é verdade em algum estado ao longo de algum caminho.
Inclui “next” e “until” e invariantes “fair”(O modelo só é verificado para os caminhos onde a condição de Fairness vale em uma quantidade infinita de estados)
![Page 25: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/25.jpg)
TECMF
25
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Threads and Finite State Machines
- Each thread can be modeled by a finite state machine
entercode
checkcode
unlockdoordelay
countattempts
sound alarm
valid code/count = 0
code entered
timeout
count = = 3/count = 0
invalid code/count ++
![Page 26: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/26.jpg)
TECMF
26
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
- Checking
AG(enter_code & valid_code ===> AF(unlock_door))
results in “true” - Checking
AG(enter_code ===> AF(unlock_door))
results in the following computation path as a counter-example
entercode
checkcode
countattempts
3 times
sound alarm
entercode
checkcode
countattempts
3 times
![Page 27: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/27.jpg)
TECMF
27
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
The whole system as an async. product of state machines
3
1
2
1
2
X =
11
22
13
23
21
12
State Explosion !!!!!!
![Page 28: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/28.jpg)
TECMF
28
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Semáforo
1
0
fora da região crítica
entrando
na região crítica
saindo
fora da região crítica
entrando
na região crítica
saindo
!semaforo
entrandosaindo
processo1 processo2
!semaforo
![Page 29: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/29.jpg)
TECMF
29
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
- Considere uma pizzaria com 3 fornos. Por razões de segurança,
somente dois fornos podem ser abertos por vez. Mesmo assim,
toda vez que dois fornos são abertos, para evitar sobrecarga, o
terceiro forno deve estar em pré-aquecimento.
- Uma pizza leva 30 min para estar pronta, após 5 minutos de
pré-aquecimento, e, se o tempo passar de 30 min a pizza ficará
queimada.
Problema
=> Projetar o sistema de controle de abertura de portas de forno e gerenciamento da fabricação de pizzas
![Page 30: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/30.jpg)
TECMF
30
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
fechado aberto pre_aquec
vai_assar
assando
vai_abrirxaberto&yaberto
!xaberto& yaberto
passou30 &!sem_vai_abrir
!passou30
!passou5 v(passou5 &!sem_vai_assar)
passou5 &!sem_vai_assar
xaberto& yaberto
!(xaberto& yaberto)
!(aberto(1)&aberto(2)&aberto(3)) // só 2 fornos abertos por vez
!(assando&passou30) // não pode queimar pizza
!(aberto(1)&aberto(2)&assando(3)) // não pode
!(aberto(1)&assando(2)&aberto(3)) // ter
!(assando(1)&aberto(2)&aberto(3)) // sobrecarga
Região
Estado
Crítica
passou30 &sem_vai_abrir
!sem_vai_abrir
sem_vai_abrir
![Page 31: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/31.jpg)
TECMF
31
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
MODULE mainVAR sem_vai_assar : boolean ; sem_vai_abrir : boolean ; forno1 : process forno(sem_vai_assar,sem_vai_abrir,forno2.state,forno3.state) ; forno2 : process forno(sem_vai_assar,sem_vai_abrir,forno1.state,forno3.state) ; forno3 : process forno(sem_vai_assar,sem_vai_abrir,forno1.state,forno2.state) ;
ASSIGN init(sem_vai_assar) := 0 ; init(sem_vai_abrir) := 0 ;
SPEC!EF(forno1.state = aberto & forno2.state = aberto & forno3.state = aberto) &!EF(forno1.state = aberto & forno2.state = aberto & forno3.state = assando) &!EF(forno1.state = aberto & forno2.state = assando & forno3.state = aberto) &!EF(forno1.state = assando & forno2.state = aberto & forno3.state = aberto) &!EF(forno1.state = assando & forno1.passou30 = 1 & forno1.running=1 & EX(forno1.state = assando)) & !EF(forno2.state = assando & forno2.passou30 = 1 & forno2.running=1 & EX(forno2.state = assando)) &!EF(forno3.state = assando & forno3.passou30 = 1 & forno3.running=1 & EX(forno3.state = assando))
Em SMV
![Page 32: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/32.jpg)
TECMF
32
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
MODULE forno(sem_vai_assar,sem_vai_abrir,xstate,ystate)VAR state : { fechado, aberto, pre_aquec, assando, vai_abrir, vai_assar } ; passou5 : boolean; passou30 : boolean;
ASSIGN init(state) := fechado ; next(state) := case state = fechado & ! sem_vai_abrir : vai_abrir; state = aberto : { aberto, pre_aquec } ; state = pre_aquec & passou5 & ! sem_vai_assar : vai_assar ; state = assando & passou30 & ! sem_vai_abrir : vai_abrir ; state = assando & passou30 : fechado ; state = vai_assar & (xstate = aberto) & (ystate = aberto) : pre_aquec ; state = vai_assar : assando ; state = vai_abrir & ((xstate = aberto) & (ystate = aberto) | ((xstate = aberto & ystate = assando) | (ystate = aberto & xstate = assando))): fechado ; state = vai_abrir : aberto ;
1 : state ; esac ; next(sem_vai_assar) := case state = vai_assar : 1 ; state = pre_aquec | assando : 0 ; 1 : sem_vai_assar ; esac ;
next(sem_vai_abrir) := case state = vai_abrir : 1 ; state = fechado | aberto : 0 ; 1 : sem_vai_abrir ; esac ; next(passou30) := case 1: { 0, 1 } ; esac ;
next(passou5) := case 1: { 0, 1 } ; esac ;
FAIRNESS running
![Page 33: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/33.jpg)
TECMF
33
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Types of Real-Time embedded systems
Hard - where not meeting a deadline is a failure
Soft- where deadline can be missed and the system may still work if it is possible to recover
Slow - the system will have to respond within seconds
Fast - the system has to respond within a second (typically within mili- or microseconds
![Page 34: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/34.jpg)
TECMF
34
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Characteristics of RT-Reactive Systems
response time deadline - The system must respond to the environment within a specified time after the input has been recognized
validity of the data - The inputs may become obsolete with time. The interval for which input data is valid must be take into account for proc. requirements.
periodic execution - Reactive systems tend to collect data at predetermined time intervals.
![Page 35: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/35.jpg)
TECMF
35
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Timed Automata as a model for RT-Reactiveness
3
Est.2
Est.1
C >= 2,4
startreset
- Clock-variables and time/delay conditions for enabling transitions
- Can be enriched with other data-type variables (global vars)- Communication by means of channels (CSP-style)
req?
v[i]:= CC := 0i++
i := 0
req!
T <= r
![Page 36: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/36.jpg)
TECMF
36
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
![Page 37: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/37.jpg)
TECMF
37
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Theorem Proving: O que é ?
- Especificar - O sistema (em algum nível adequado de abstração) - Propriedades requeridas do sistema. - Suposições (restrições de ambiente, usuário, etc) - Teorias sobre os tipos de dados envolvidos
- E provar que:
Teorias+Suposições+Sistema |-- requisitos
- Variação: - Provar que a implementação é um refinamento da especificação
- Funciona melhor em sistemas com intenso tratamento de dados
![Page 38: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/38.jpg)
TECMF
38
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Teoria sobre os Números Naturais
x(s(x) 0)
xy( s(x) = s(y) x = y)
y(y 0x( s(x) = y) )
(P(0) & x(P(x) P(s(x)))) xP(x)
Especificação Lógica de um Tipo de dado
Teoria |-- Prop
![Page 39: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/39.jpg)
TECMF
39
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Semântica Axiomática de uma LP
![Page 40: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/40.jpg)
TECMF
40
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Prova de correção de código
Teoria
TeoriaTeoria
![Page 41: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/41.jpg)
TECMF
41
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Architectural connectors
- Sequential Composition
- Parallel synchronous composition
- Parallel asynchronous composition *
- Behavior inheritance
- Factorization of common Behaviors
Software Architecture = components + structure
![Page 42: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/42.jpg)
TECMF
42
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
An Example: Harel Statecharts
- Conditions and Actions
- Design Hierarchy
- On-entry, on-exit during actions
- Independent Threads of Control
- Visual synchronization/complex Transition (as in Petri-nets)
?condition!action
![Page 43: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/43.jpg)
TECMF
43
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Pattern used in ARTS (Haeusler & Fontoura 99) - Horizontal Composition
M
S
b_off
b_on
Brake
Car
Off
On
t_off
t_on
Lunlink
link
Motor
sync(b_off,link)
sync(b_on,unlink)
![Page 44: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/44.jpg)
TECMF
44
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
In categorial terms the horizontal composition is a Colimit
CatL
Th(Brake) Th(Motor)
x={,} Th(x)
Th(Car)
b_onb_off
linkunlink
![Page 45: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/45.jpg)
TECMF
45
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
OO ProjectsTTS
RETOOLTheories
Mathematicaly
![Page 46: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/46.jpg)
TECMF
46
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
CORBA
OOProjects
Gen. of RETOOL Theories
Gen. of C++Code
ProjectsBase
RETOOLTheorem
Prover
Model-Chec.Spec.
Generation.
Model-Checker
FormalValidationLayer
![Page 47: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/47.jpg)
TECMF
47
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Mathematical and Engineering Foundations forInteroperability via Architecture
- Formally based Software Architectures
- Tools and Techniques for the Software Development Process
- Compositionality
Projeto MEFIA - CNPq/NSF
partners: PUC-Rio, UFRGS, Stanford Univ, SRI, Univ. of Illinois
![Page 48: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/48.jpg)
TECMF
48
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
- Cada Model-Checker trata com técnicas e abordagens diferentes o problema de especificações com grande número de estados
SMV - BDD’s
SPIN - Supertrace
UppAll - Prog. Lógica
Hytech - Diferenças finitas + varredura simples
![Page 49: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/49.jpg)
TECMF
49
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Alguns “detalhes” importantes :
1- A menos que P=NP não existe um sistema de prova eficiente (polinomial) para a lógica proposicional.
2- A lógica de primeira ordem é indecidível.
3- Composicionalidade é uma propriedade que não coexiste muito bem com concorrência.
==> Lógicas modais (doxástica, deôntica, epistêmica e suas versões multi-agentes (multi-modais) também têm modelos de Kripke como semântica).
![Page 50: 1 Métodos Formais no Desenvolvimento de Sist. Prof. E.H.Haeusler TECMF Validação Formal de Sistemas de Software Prof. Edward Hermann Haeusler Depto de](https://reader035.vdocuments.site/reader035/viewer/2022070311/552fc104497959413d8bf394/html5/thumbnails/50.jpg)
TECMF
50
Métodos Formais no Desenvolvimento de Sist.
Prof. E.H.Haeusler
Métodos e Modelos importantes :
CCS - Álgebra de processos com teoria de equivalência e lógica associada (-calculus).
Pi-Calculus - Álgebra de processos que inclui abstração sobre canal de comunicação e conseguente habilidade de especificar mobilidade.
Redes de Petri - Modelo não composicional de concorrência real (true concurrency)
Autômatos Híbridos - Levam a variação em conta (derivada em relação ao tempo)
Model-checkers - CWB, MWB e simulação em redes de petri