Spécifications formelles : au-delà des instructions, définir les comportements logiciels
Cet article explore la distinction entre les spécifications formelles et les programmes traditionnels. Alors que les programmes sont des listes d’instructions, les spécifications formelles sont des ensembles de comportements. À l’aide d’un exemple de compteur, l’auteur illustre comment les spécifications définissent tous les comportements corrects et utilisent la théorie des ensembles, en employant des générateurs (Init et Next) pour décrire des ensembles infinis de comportements. Cela contraste avec le concept de non-déterminisme en programmation ; dans les spécifications formelles, le non-déterminisme fait référence aux multiples façons dont un comportement peut être étendu, tandis que dans les programmes, il fait référence aux chemins de code incertains. L’article souligne l’importance de comprendre les spécifications formelles comme des ensembles de comportements, ce qui est crucial pour le débogage et l’interprétation des erreurs du vérificateur de modèles.