Vérification formelle d'algorithmes distribués en +CAL
Résumé
La sûreté des systèmes répartis et distribués nécessite la vérification et la validation de certaines propriétés. Ces propriétés habituellement exprimées en logique temporelle sont vérifiées par rapport à un modèle formel du système. La technique de model-checking confirme si le modèle d'un algorithme valide ces propriétés ou non. Cependant, la spécification des algorithmes distribués est généralement manuelle ce qui réduit la garantie de sa conformité à l'algorithme de départ et remet en cause la validité de la vérification. L'automatisation de la construction du modèle est donc nécessaire à la garantie de la correction. L'outil +CAL permet d'écrire des algorithmes parallèles et distribués en une syntaxe fortement expressive traduite automatiquement en une spécification TLA+ vérifiable par le model-checker TLC. Du fait que +CAL est orienté vers l'algorithmique parallèle à mémoire partagée, il reste peu utilisé pour la description et la vérification des algorithmes distribués basés sur l'interaction entre processus par échange de messages. L'amélioration de l'outil +CAL et la mise en pratique de ce langage pour vérifier les algorithmes multi-processus dans le contexte distribué font l'objet de notre travail.