Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
TRABALHO DE GRADUAO
ROTEIRO
Contexto
Introduo Objetivos
Model Checking
Ferramentas para a linguagem C Anlise das Ferramentas Estudo de Caso Concluso Trabalhos Futuros
Contexto
Introduo
Objetivos
Procurar Ferramentas Model Checkers para a linguagem de Programao C Anlise das ferramentas mais utilizadas em relao as caractersticas, as abordagens que utilizam, as vantagens e desvantagens Apontar a ferramenta que apresentou os melhores resultados para o contexto do trabalho
Model Checking
Nos ltimos anos as indstrias reconheceram os verificadores de modelos como uma ferramenta promissora para o desenvolvimento de sistemas
verificar exigncias
Tcnica totalmente automtica que analisa o espao de estados finito de sistemas crticos
Model Checking
Modelagem
Especificao Verificao
Model Checking
Tipos de Propriedades Segurana Atingibilidade (Reachability) Razoabilidade (Fairness) Ausncia de Deadlock Vivacidade (Liveness)
Model Checking
Ferramentas
SLAM
Impulsionou o uso de verificao de modelos Usado com sucesso em Device Drivers do Windows O SLAM tem trs componentes principais:
c2bp - avalia um abstrao booleana do programa bebop - executa a anlise da atingibilidade de
programas booleanos
newton - verifica a praticidade dos caminhos de erros
Ferramentas
BLAST
A abordagem a mesma seguida no SLAM Usa conceitos de abstrao preguiosa Composto pelo spec.opt e pblast.opt
Ferramentas
MOPS
Ferramenta de anlise esttica Abordagem baseada em CFG (grfico do fluxo de controle) Consiste em um parser e um verificador de modelos
Parser - constri um CFG do programa
Ferramentas
CBMC
Bounded Model Checker (verificador de modelos limitado) Usa um resolvente SAT Procura por um contra-exemplo, limitado por algum inteiro N.
provar a exatido
Ferramentas
SATABS
MAGIC / ComFoRT Resumo das ferramentas
Anlise de Ferramentas
SLAM
Potencialidades
Sucesso com Device Drivers Suporta procedimentos recursivos
Limitaes
Tratamento dos ponteiros
Abstrair de uma linguagem com ponteiros (C) a uma sem ponteiros (programas booleanos) difcil
Foco no domnio da aplicao de Device Drivers Parte de um produto comercial (SDV) da Microsoft Atualmente, no suporta programas muito grandes
Anlise de Ferramentas
BLAST
Potencialidades
Usa a abstrao sob demanda para reduzir o refinamento
Limitaes
A verso atual no suporta ponteiros para funo
Anlise de Ferramentas
MOPS
Potencialidades
Escalabilidade e eficincia por considerar somente o fluxo
fluxo de dados
Anlise de Ferramentas
CBMC
Potencialidades
A principal o suporte a maioria das estruturas de C
Limitaes
No poder provar a ausncia de erros na maioria dos casos
reais
Por priorizar a escalabilidade, a preciso comprometida
Anlise de Ferramentas
Trs propriedades so consideradas:
Soundness Completeness
Termination
Anlise de Ferramentas
Difcil apontar uma ferramenta que seja a melhor Para cada situao uma ferramenta pode se encaixar melhor
Depende das caractersticas do cdigo C do programa que se quer
analisar
Estudo de Caso
Anlise das estruturas de C utilizadas no componente Ferramenta utilizada : CBMC Utilizao da funo assert Verificao do estado que se encontra o programa e suas variveis de controle depois da execuo de uma funo do componente
Problemas como comportamento indesejado
Determinar a alcanabilidade dos estados implementados no
componente
Estudo de Caso
Foram verificados diversos fluxos do sistema, sendo que dois deles foram selecionados e relatados: Um fluxo de uma operao de abrir e fechar portas com velocidade menor que 3Km/h A verificao da alcanabilidade dos estados aps a execuo da funo n vezes atravs do comando while (n limitado pela ferramenta)
Estudo de Caso
Estudo de Caso
Problema com relao a atingibilidade do estado 6 Apesar de haver a possibilidade da varivel ser alterada em outro componente do sistema Anlise foi feita somente em relao ao componente, considerando apenas as atribuies feitas pela funo
Estudo de Caso
A estratgia adotada foi a colocao do assert(CGP_informarProximoEstadoDireita_MEMORIA<=5). Mostrando que o assert sempre verdade, mostro que a varivel de estado nunca assume valores maiores que 5, ou seja, no assume o
Concluso
Difcil apontar uma ferramenta que seja a melhor Para cada situao uma ferramenta pode se encaixar melhor Depende das caractersticas do cdigo C do programa
Contribuies
Descrio do funcionamento das principais ferramentas. Anlise das principais caractersticas das ferramentas mais utilizadas.
Aplicao prtica de um Model Checker em um componente do metr, relatando os resultados obtidos, as verificaes realizadas e os problemas encontrados.
Trabalhos Futuros