Doutor
São modelos baseados em técnicas matemáticas para especificar, desenvolver e verificar o software. São usados em sistemas críticos, onde uma falha pode colocar pessoas em risco. Softwares de avião, de hospitais, usinas nucleares e etc.
O software é especificado usando técnicas formais (matemáticas). Existem várias especificações que são realizadas em sequência e após todas elas, uma prova matemática é gerada. O código só é implementado quando as especificações passam no teste matemático. (Sommerville classifica esses métodos como uma evolução do cascata, porque as fazes são sequênciais.)
- O processo de desenvolvimento garante que o programa faz o que foi especificado.
- É possível gerar programas corretos e completos por construção.
A especificação do software é feita através de matemática e existe uma linguagem de programação específica para implementação. Não existe a análise subjetiva de especialistas que utilizam a experiência para especificar os requisitos. O código é matematicamente correto.
Desvantagens:
O processo é MUITO CARO, demanda mão de obra extremamente especializada e muito bem treinada, com forte base matemática.
É praticamente impossível mostrar a especificação do sistema para um cliente normal e receber um OK da especificação.
Métodos Formais
São modelos baseados em técnicas matemáticas para especificar, desenvolver e verificar o software. São usados em sistemas críticos, onde uma falha pode colocar pessoas em risco. Softwares de avião, de hospitais, usinas nucleares e etc.
O software é especificado usando técnicas formais (matemáticas). Existem várias especificações que são realizadas em sequência e após todas elas, uma prova matemática é gerada. O código só é implementado quando as especificações passam no teste matemático. (Sommerville classifica esses métodos como uma evolução do cascata, porque as fazes são sequênciais.)
- O processo de desenvolvimento garante que o programa faz o que foi