Verificação de Software e Sistemas -...
-
Upload
hoangkhuong -
Category
Documents
-
view
215 -
download
0
Transcript of Verificação de Software e Sistemas -...
PAA-DCC-UFAM
Verificação de Software e Sistemas
Universidade Federal do AmazonasDepartamento de Eletrônica e Computação
Lucas [email protected]
PAA-DCC-UFAM
Notas de Aula
� Estes slides estão baseados nas � notas de aula do Prof. Edmund Clarke (Univ. de Carnegie
Mellon, USA)� notas de aula da Prof. Corina Cirstea (Univ. de Southampton,
UK)
� Os slides estão disponíveis em: http://home.ufam.edu.br/lucascordeiro/vss
PAA-DCC-UFAM
Erro no Intel Pentium FDIV
� Tente 4195835 – 4195835 / 3145727 * 3145727 = ? No ’94 Pentium, não retorna 0, mas 256
� Intel usa o algoritmo do SRT (Sweeney, Robertson, and Tocher) para divisão de ponto flutuante� Cinco entradas na lookup table estavam faltando
� Custo: $400 - $500 million
Divisão SRT usa uma lookup table com base no dividendo e no divisor para determinar cada dígito do quociente
PAA-DCC-UFAM
Verificação de Programas (Turing)
� “Como pode-se verificar uma rotina no sentido de certificar-se de que está certo?”
� “O programador deve fazer uma série de afirmações, que podem ser verificadosindividualmente, e da qual a correção de todo o programa segue com facilidade."
Quote by A. M. Turing on 24 June 1949 at the inaugural conference of the EDSAC computer at the Mathematical Laboratory, Cambridge.
Considera um modelo abstrato de um computador; aspectos lógicos(memória, estados e transições) e não a implementação física
PAA-DCC-UFAM
Verificação de Modelo de LógicaTemporal
� Verificação de modelo é uma técnica de verificação automática para sistemas concorrentes de estado finito
� Desenvolvido independentemente por Clarke andEmerson e por Queille and Sifakis no início da década de 80
� As assertivas são escritas como fórmulas em lógica temporal proposicional (Pnueli 77)
� Procedimento de verificação é de natureza algorítmica ao invés de dedutiva
PAA-DCC-UFAMVantagens da Verificação de Modelos
� Sem provas!!! (Algorítmico ao invés de dedutivo)
� P → Q, P ∴ Q
� Rápido (quando comparado com outros rigorososmétodos tais como prova de teoremas)
� Contraexamplo de diagnóstico
� State 87 file carter01_bad.c line 17 function t2 thread 2 / B=1
� Nenhum problema com especificação parcial
� Permite que um único sistema possa ser modelado parcialmente, abstraindo diferentes partes do mesmo
� Lógica pode facilmente expressar váriaspropriedades de concorrência
PAA-DCC-UFAM
Verificando Missões da NASA
� Gerard Holzmann (JPL -Jet Propulsion Laboratory*)
� O Verificador de ModeloSpin e a linguagemPromela
� Aplicado a maioria das missões espaciais lançadas na última década
* http://www.jpl.nasa.gov/
Mars Curiosity
PAA-DCC-UFAM
Verificação de Modelos na Indústria
� Várias empresas de hardware usam e desenvolvem verificadores de modelo: Intel, IBM, …
� Microsoft faz uso intensivo de verificadores de modelo de software
� NEC: Analisou um total de aproximadamente 40,5 M de linhas de código
� Encontrados mais de mil erros e padrões de codificação ruins
PAA-DCC-UFAM
1
2
3
a
b
c
|| n estados,
m processos
1,a
2,a 1,b
2,b3,a 1,c
3,b 2,c
3,c
nm estados
Principal Desvantagem
PAA-DCC-UFAM
Problema da dimensionalidade :O número de estados em um sistema cresceexponencialmente com sua dimensionalidade(i.e., o número de variáveis ou bits ou processos)Isso torna o sistema mais difícil de se verificar
Inevitável no pior caso, mas constante evolução ao longo dosúltimos 30 anos usando algoritmos mais otimizados, estruturas dedados e bastante engenharia
Principal Desvantagem (Cont.)
PAA-DCC-UFAM
Determina Padrões em Traces Infinitos
Proposições AtômicasOperações BoleanasOperadores Temporais
a “a is true now”X a “a is true in the neXt state”F a “a will be true in the Future”G a “a will be Globally true in the future”a U b “a will hold true Until b becomes true”
LTL – Lógica de Tempo Linear
a
PAA-DCC-UFAM
Determina Padrões em Traces Infinitos
Proposições AtômicasOperações BoleanasOperadores Temporais
a “a is true now”X a “a is true in the neXt state”F a “a will be true in the Future”G a “a will be Globally true in the future”a U b “a will hold true Until b becomes true”
a
LTL – Lógica de Tempo Linear
PAA-DCC-UFAM
Determina Padrões em Traces Infinitos
Proposições AtômicasOperações BoleanasOperadores Temporais
a “a is true now”X a “a is true in the neXt state”F a “a will be true in the Future”G a “a will be Globally true in the future”a U b “a will hold true Until b becomes true”
a
LTL – Lógica de Tempo Linear
PAA-DCC-UFAM
Determina Padrões em Traces Infinitos
Proposições AtômicasOperações BoleanasOperadores Temporais
a “a is true now”X a “a is true in the neXt state”F a “a will be true in the Future”G a “a will be Globally true in the future”a U b “a will hold true Until b becomes true”
a a a a a
LTL – Lógica de Tempo Linear
PAA-DCC-UFAM
Determina Padrões em Traces Infinitos
Proposições AtômicasOperações BoleanasOperadores Temporais
a “a is true now”X a “a is true in the neXt state”F a “a will be true in the Future”G a “a will be Globally true in the future”a U b “a will hold true Until b becomes true”
a a a a b
LTL – Lógica de Tempo Linear
PAA-DCC-UFAM
Problema da Verificação de Modelos
� Seja M um grafo de transição de estados
� Seja ƒ uma assertiva ou especificação em lógica temporal
� Encontre todos os estados s de M tal que s satisfaz ƒ em M
Complexidade da Verificação de Modelo LTL:
(Sistla, Clarke & Vardi, Wolper)
• isoladamente exponencial no tamanho da especificação
• linear no tamanho do grafo de transição de estados
PAA-DCC-UFAM
Exemplo Trivial
~ Start
~ Close
~ Heat
~ Error
Start
~ Close
~ Heat
Error
~ Start
Close
~ Heat
~ Error
~ Start
Close
Heat
~ Error
Start
Close
Heat
~ Error
Start
Close
~ Heat
~ Error
Start
Close
~ Heat
Error
Microondas
Grafo de transição de estados descreve o sistema em evolução ao longo do tempo
PAA-DCC-UFAM
Verificação de Modelo e LógicaTemporal
� O forno não aquece até que a porta estejafechada
� “Not heat_up holds until door_closed”
� (~ heat_up) U door_closed
PAA-DCC-UFAM
� Symbolic Model CheckingBurch, Clarke, McMillan, Dill, and Hwang 90;Ken McMillan’s thesis 92
.� The Partial Order Reduction
Valmari 90Godefroid 90 Peled 94Gerard Holzmann’s SPIN
Grandes Avanços na Verificação de Modelos
PAA-DCC-UFAM
� Symbolic Model CheckingBurch, Clarke, McMillan, Dill, and Hwang 90;Ken McMillan’s thesis 92
1020 states.� The Partial Order Reduction
Valmari 90Godefroid 90 Peled 94Gerard Holzmann’s SPIN
Grandes Avanços na Verificação de Modelos
PAA-DCC-UFAM
� Symbolic Model CheckingBurch, Clarke, McMillan, Dill, and Hwang 90;Ken McMillan’s thesis 92
10100 states . . .
� The Partial Order ReductionValmari 90Godefroid 90 Peled 94Gerard Holzmann’s SPIN
Grandes Avanços na Verificação de Modelos
PAA-DCC-UFAM
� Symbolic Model CheckingBurch, Clarke, McMillan, Dill, and Hwang 90;Ken McMillan’s thesis 92
10120 states . . .
� The Partial Order ReductionValmari 90Godefroid 90 Peled 94Gerard Holzmann’s SPIN
Grandes Avanços na Verificação de Modelos
PAA-DCC-UFAM
� Bounded Model Checking� Biere, Cimatti, Clarke, Zhu 99� Uso de solucionadores SAT
rápidos e eficientes� Trata milhares de elementos de
estado
A propriedade pode falhar em k-passos?
I(V0) Λ T(V0,V1) Λ … Λ T(Vk-1,Vk) Λ (¬ P(V0) V … V ¬ P(Vk))
k-passosPropriedade falha em algum
passoEstado inicial
BMC na prática: Circuito com 9510 latches, 9499 inputs
BMC fórmula tem 4 x 106 variáveis, 1.2 x 107 clásulas
Erro raso de comprimento 37 encontrado em 69 segundos
Grandes Avanços na Verificação de Modelos (Cont.)
PAA-DCC-UFAM
É possível verificar software?
De acordo com Wired News em 10 de novembro de 2005:
“When Bill Gates announced that the technology was under development at the 2002 Windows Engineering Conference, he called it the Holy Grail of computer science”
Desafios Futuros
Cálice Sagrado
PAA-DCC-UFAM
Objetivos, Ementas, Método de Avaliação e Referências
Bibliográficas
Verificação de Software e Sistemas
PAA-DCC-UFAM
Objetivos do Curso
� O aluno deverá ser capaz de aprender como
� especificar e verificar sistemas de hardware e software
� além de adquirir conhecimentos sobre
� automata
� lógica temporal
� teoria da satisfatibilidade
� algoritmos de verificação
� uso de verificadores de modelo
� Ao final do curso, o aluno irá implementar um algoritmo de verificação ou aplicá-lo a um problema de engenharia
PAA-DCC-UFAM
Ementa (1)
� Teoria de Automata
� Lógica Temporal
� Teoria da Satisfatibilidade
� Algoritmos de Verificação de Modelo
� Verificação de Modelo Limitada
� Indução Matemática
� Teoria de Automata Temporizado
� Especificação com Lógica Temporal
PAA-DCC-UFAM
Ementa (2)
� Propriedades de Alcançabilidade, Segurança, Vivacidade, Bloqueio Fatal e Fairness
� Métodos de Abstração
� Ferramentas de Verificação
� Exemplos de aplicação
PAA-DCC-UFAM
Conteúdo da Avaliação
� Lista de exercícios: A cada final do capítulo do livro texto
� Prova parcial: Teoria de Automata; Lógica Temporal; Teoria da Satisfatibilidade; Algoritmos de Verificação de Modelo; Verificação de Modelo Limitada; Indução Matemática
� Seminários: Apresentação de seminários de artigos recentes (últimos 3 anos) relacionados ao tópico da disciplina (CAV, ASE, ICSE, FSE)
� Projetos: Aplicação e/ou implementação de um algoritmo de verificação
PAA-DCC-UFAM
Método de Avaliação
� A prova parcial assim como a média parcial possuem peso 2
Projeto do Nota NP
Exercícios de Listas das Nota NL
Seminarios dos NotaNS
Parcial Prova da NotaNPP
3
2(MF) Final Média
3
NL (MP) Parcial Média
=
=
=
=
+×=
++=
NPMP
NSNPP
PAA-DCC-UFAM
Trabalhos Práticos
� Linguagem será ANSI-C/C++� Deverão ser enviados para
[email protected]� Se confirmado, o plágio será punido com rigor (ou
seja, com nota zero)!� Godlee F (2007). Plagiarism and punishment. BMJ, 335:
7627� Steneck, N; Anderson, MS (2011). The problem of
plagiarism. Urol Oncol Semin Ori, 29, 1: 90-94� Vasconcelos, SMR; Leta, J; Costa, LOO; Pinto AL;
Sorenson, MM (2009). Discussing plagiarism in LatinAmerican science. EMBO Rep, 10: 677-82.
� Aulas práticas
PAA-DCC-UFAM
Tópicos dos Projetos (1)
� SMT-Based Bounded Model Checking of Discrete-Time Systems � Digital Filters and Controllers
� SMT-Based Bounded Model Checking of Cyber-Physical Systems
� SMT-Based Bounded Model Checking of C++ Programs
� Verification of GPU Kernels Based on CUDA and OpenCL Programs
� Verifying Multi-threaded Software using SMT-based Context-Bounded Model Checking
PAA-DCC-UFAM
� BMCLua: Verification of Lua Programs in Digital TV Interactive Applications
� Applying SMT-based Verification to Hardware/Software Partitioning in Embedded Systems
� Handling Loops in Bounded Model Checking of C Programs via k-Induction
� Verifying AmI Appliations Using Java PathFinder
� A car racing based strategy for the Dynamic Voltage and Frequency Scaling technique
Tópicos dos Projetos (2)
PAA-DCC-UFAM
� Model checking LTL properties over ANSI-C programs with bounded traces
� Understanding Programming Bugs in ANSI-C Software Using Bounded Model Checking Counterexamples
� Verifying Embedded C Software with Timing Constraints Using an Untimed Bounded Model Checker
� Continuous Verification of Large Embedded Software using SMT-Based Bounded Model Checking
Tópicos dos Projetos (3)
PAA-DCC-UFAM
Estrutura do Projeto
� Mínimo de 6 e máximo de 9 páginas de texto fonte 10 e espaçamento simples
� Escrever texto no formato de artigo� Apresentação de 30 minutos� Equipes com duas pessoas� Os dois apresentam� Data limite para definição/apresentação dos temas:
31/03� Datas para apresentação serão marcadas
posteriormente
PAA-DCC-UFAM
Referências Bibliográficas (1)
� Edmund M. Clarke, Orna Grumberg, and Doron Peled. Model checking. MIT Publishers, 2000
� Christel Baier and Joost-Pieter Katoen. Principles of Model Checking. The MIT Press, 2008
� B. Berard, M. Bidoit, A. Finkel and F. Laroussinie Systems and Software Verification: Model-Checking Techniques and Tools. Springer, 2010
� A. Biere, M. Heule, H. Van Maaren and T. Walsh Handbook of Satisfiability: Volume 185 Frontiers in Artificial Intelligence and Applications, IOS Press, 2009