Métodos Formais em Engenharia de Software |
---|
Cálculo de Sistemas de Informação |
Programação Ciber-física |
Verificação Formal |
Calendário | Sumários |
Anos anteriores |
Alumni |
Em UCs passadas, nomeadamente em MFES, já foi abordada a verificação dedutiva de algoritmos imperativos sequenciais e de algoritmos funcionais. Nesta UC serão abordadas técnicas para especificação e verificação de algoritmos não sequenciais, nomeadamente algoritmos concorrentes, self-stabilizing e distribuídos.
Na primeira parte será abordada a especificação de algoritmos usando TLA+, uma linguagem introduzida por Leslie Lamport precisamente com o objectivo de simplificar a especificação de algoritmos não sequenciais. As especificações em TLA+ podem ser verificadas automaticamente com o model-checker TLC, e esta abordagem lightweight fez com que o TLA+/TLC tenha sido frequentement adoptado pela indústria (e.g. Amazon) para verificar algoritmos complexos.
Na segunda parte será abordada a verificação dedutiva destes mesmos algoritmos, técnica que permitirá verificar a sua correção para qualquer configuração possível, o que não é possível com o model-checking que apenas pode ser usado para verificar um conjunto de configurações limitado. Para tal será usado o Why3, já previamente introduzido em MFES, uma ferramenta que usa SMT solvers para efectuar a prova automática das condições de verificação inerentes à verificação dedutiva.
Tipo | Horário | Sala |
---|---|---|
Teórica | 4ªf. 9h-11h | CP2 2.11 |
Teórico-prática | 4ªf. 11h-12h | CP2 2.11 |
# | Data | Docentes | Sumário |
---|---|---|---|
1 | 5 Fev | MAC | Introdução ao TLA+. |
2 | 12 Fev | MAC | |
3 | 19 Fev | MAC | |
4 | 26 Fev | MAC | |
5 | 5 Mar | MAC | |
6 | 12 Mar | MAC | |
7 | 19 Mar | MAC | 1º Teste |
8 | 26 Mar | JSP | |
9 | 2 Abr | JSP | |
10 | 9 Abr | JSP | |
11 | 23 Abr | JSP | |
12 | 30 Abr | JSP | |
13 | 7 Mai | JSP | |
14 | 28 Mai | JSP | 2º Teste |
16 Jun | MAC+JSP | Exame |