Prévia do material em texto
50 15.1 Explique quando pode ser rentável usar especificações formais e verificação no desenvolvimento de sistemas de software críticos para a segurança. Por que você acha que os engenheiros de sistemas críticos são contra o uso de métodos formais? Os métodos formais podem ser rentáveis no desenvolvimento de sistemas de software críticos para a segurança porque os custos de falha do sistema são muito elevados e, portanto, justifica- se o custo adicional no processo de desenvolvimento. A maioria dos sistemas críticos para a segurança têm de obter aprovação regulamentar antes de serem utilizados e é um processo muito dispendioso convencer um regulador de que um sistema é seguro. A utilização de uma especificação formal e do argumento de correcção associado pode ser inferior aos custos, por exemplo, de testes adicionais para convencer o regulador da segurança do sistema. Alguns desenvolvedores de sistemas são contra o uso de métodos formais porque não estão familiarizados com a tecnologia e não estão convencidos de que uma especificação formal possa ser uma representação completa do sistema. Além disso, o problema com as especificações formais é que elas não podem ser compreendidas pelos clientes do sistema, podendo ocultar erros e dar uma imagem falsa da correção do sistema. 15.3 Explique por que é praticamente impossível validar especificações de confiabilidade quando estas são expressas em termos de um número muito pequeno de falhas durante a vida útil total de um sistema. Para medir a confiabilidade, você precisa ter dados de falhas estatisticamente válidos para o sistema, portanto, é necessário induzir mais falhas do que as especificadas em um determinado período de tempo. No entanto, como o número de falhas é tão baixo, isso levará um tempo absurdamente grande.