Verificação de Software e Sistemas -...

40
PAA-DCC-UFAM Verificação de Software e Sistemas Universidade Federal do Amazonas Departamento de Eletrônica e Computação Lucas Cordeiro [email protected]

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-UFAMNós Podemos Depurar esteCircuito?

Kurt W. Kohn, Molecular Biology of the Cell 1999

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

PAA-DCC-UFAM

Referências Bibliográficas (2)

PAA-DCC-UFAM

Referências Bibliográficas (3)

PAA-DCC-UFAM

Entregar o resumo do seguinte artigo:

Ranjit Jhala, Rupak Majumdar: Software model

checking. ACM Comput. Surv. 41(4) (2009)

http://www.mpi-sws.org/~rupak/Papers/SoftwareModelChecking.pdf

Primeira Lista de Exercícios