O que é verificação formal?
Freqüentemente usada no teste de circuitos de computadores e software, a verificação formal ocorre quando a função desses sistemas é analisada usando fórmulas matemáticas. No caso de desenvolvimento de software, o processo geralmente é usado para mostrar se o programa está funcionando corretamente, com base em um modelo pré-determinado. Às vezes, o modelo teórico é provado insatisfatório. Além do código fonte do software, a verificação formal pode ser usada no desenvolvimento de circuitos combinacionais, que são usados para realizar cálculos em computadores, bem como na memória do computador. As diferentes abordagens incluem verificação posterior, verificação paralela e verificação integrada, além de vários métodos.
Procedimentos matemáticos para cálculos, chamados algoritmos, são usados na verificação formal para testar as funções dos produtos em cada estágio do desenvolvimento. Os desenvolvedores de software podem encontrar erros ou bugs no código-fonte e no modelo usado para construí-lo em primeiro lugar. Às vezes, mudanças fundamentais na forma como o código está sendo gravado podem ser feitas antes que um erro de design afete o resultado final. A etapa de verificação geralmente ajuda a determinar se o produto está fazendo o que foi planejado e atende às especificações do aplicativo a que se destina.
A verificação formal pode ocorrer quando um produto é concluído, chamado de verificação após o fato. Um método padrão, usado durante todo o processo de design e desenvolvimento, não é analisado até que o sistema seja concluído. A localização de erros graves nesse estágio geralmente leva a revisões caras e demoradas. O desenvolvimento e a verificação também podem ser realizados por duas equipes separadas para verificação em paralelo. Por meio da intercomunicação, os desenvolvedores podem se concentrar em tarefas independentes durante todo o processo de design.
A verificação integrada é quando uma equipe realiza o desenvolvimento e a avaliação necessária. Conceitos matemáticos complexos são frequentemente usados para verificar as capacidades do produto ao longo do caminho. Os métodos de verificação formal variam entre os projetos, mas um frequentemente usado é a verificação do modelo. Um modelo de hardware ou software consiste em várias propriedades que os designers desejam no produto final. O modelo e o sistema podem ser verificados periodicamente para ver se as propriedades correspondem.
Outra técnica na verificação formal envolve o uso de fórmulas matemáticas e lógica para representar um sistema e suas propriedades. Regras definidas em um sistema formal são geralmente encontradas na lógica. Ambas as técnicas utilizam vários meios para determinar se uma especificação específica de um produto é atendida. Os desenvolvedores podem usar diferentes tipos de software no processo formal de verificação, cada um adaptado a um sistema ou linguagem de programação específica.