Verificação Formal de Software
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Ciência de Computadores |
Ocorrência: 2012/2013 - 2S
Ciclos de Estudo/Cursos
Língua de trabalho
Português
Objetivos
Estudo e utilização de técnicas formais baseadas em modelos e em demonstração aplicadas à verificação de sistemas e programas.
Pretende-se que o aluno:
- em ambas as vertentes, perceba a importância da utilização da lógica e dos sistemas formais no desenvolvimento de sistemas informáticos complexos;
- seja capaz de modelar sistemas simples e de especificar propriedades utilizando lógicas temporais;
- seja capaz de anotar programas simples duma linguagem imperativa ou orientada a objetos de modo a garantir propriedades de segurança e propriedades funcionais; e de especificar teorias que permitam a modelação de estruturas mais complexas, cuja corre ̧çao será́ demonstrada por um demonstrador automático ou interativo;
Programa
Verificação por model checking de sistemas reactivos
Sistemas reactivos
Lógica temporais: linear (LTL), ramificada, (CTL e CTL*) e dinâmica.
(model checkeres):NUSMV
Model checking simbólico: BDDs e OBDDs
Algoritmos de decisão baseados em autómatos finitos
Verificação de Programas
Cálculos de correção (Lógica de Hoare)
Geração de obrigações de prova
Ferramentas para a especificação, verificação e certificação de programas imperativos: geradores de condições de verificação.
Demonstração automática
Demonstradores automáticos de teoremas baseados em SAT-DPLL e teorias decidíveis: inteiros, reais, ``arrays'', etc.
SMTs e algoritmos decisão.
Introdução à demonstração assistida. Assistente de demonstração COQ
Bibliografia Obrigatória
Michael Huth and Mark Ryan; Logic in Computer Science: Modelling and reasoning about systems. , 2004
Bibliografia Complementar
Christel Baier, Joost-Pieter Katoen, and Kim Guldstrand Larsen; Principles of Model Checking, MIT Press, 2008
José Bacelar Almeida,Jorge Sousa Pinto,Maria João Frade,Simão Melo de Sousa ; Rigorous Software Development: An Introduction to Program Verification, Springer-Verlag, 2011. ISBN: 978-0-85729-017-5
Métodos de ensino e atividades de aprendizagem
Aulas teóricas e aulas práticas com resoliução de trabalhos práticos.
Software
http://nusmv.fbk.eu/
http://why.lri.fr/
Palavras Chave
Ciências Físicas > Ciência de computadores
Tipo de avaliação
Avaliação distribuída sem exame final
Fórmula de cálculo da classificação final
Avaliação distribuída sem exame final. A avaliação é composta por:
1. realização e apresentação de trabalhos práticos (individuais) (TP) (5)
2. resumo escrito e apresentação de um tema/artigo científico (R)
A classificação final é obtida por:
F=(T*5+R*5)/20
Para aprovação é necessário que F>9.5