Programa

Especificação de Software

Mestrado Bolonha em Engenharia Informática e de Computadores - Taguspark

Mestrado Bolonha em Engenharia Informática e de Computadores - Alameda

Programa

Introdução - Motivação para a utilização de especificações e métodos formais; Verificação de modelos vs procura de modelos vs prova de teoremas; Motivação para o uso de ferramentas de métodos formais; Linguagens declarativas vs operacionais. O Analisador Alloy - Introdução: Vantagens das abstrações; Sintaxe. Lógica no Alloy: Combinação de quantificadores de FOL com operadores de cálculo relacional; Átomos e relações. Linguagem: factos, asserções, predicados, funções. Verificação de modelos e as suas propriedades. Modelação estática e dinâmica. A linguagem Dafny - Introdução: Anotações e construção de programas verificados. Linguagem: Classes genéricas, afetação dinâmica, tipos de dados indutivos; Construções da especificação: pré- e pós-condições, invariantes de ciclo, asserções, especificações de enquadramento. Construções fantasma. Tipos coleção. Verificação de anotações e desenvolvimento de provas. Desenvolvimento incremental de programas imperativos verificados.