Dans ma boite, nous utilisons B dans certains logiciel mettant en jeu la sécurité CAD la vie humaine.
Le B nous permet en effet de limiter la phase de test unitaire, et de sécuriser les phases de relectures/codage.
Par contre elle ne nous permet pas d'aller beaucoup plus loin en elle meme, car la sécurité repose sur le fait que le problème soit bien posé: Rien empèche le spécificateur d'oublier, de mal décrire, .... la description matématique du problème qui si elle est fausse donnera un comportement faux de manière prouvée. Ce que permet B c'est de ne pas se contredire....C'est bien mais inssufisant.
La stratégie complète pour un code de qualité suffisante pour laisser à la machine le soin de nos vies passe donc par:
1- Des relectures croisées, réalisées par des personnes "indépendantes", des différentes productions: la specification, la conception, les tests en passant par le code B ou autre language. Tout le cycle en V est inspecté.
2- Un jeux de test unitaire pour les parties non écrite en B, et fait par une autre personne que le développeur.
3- Un jeu de test de validation permettant de vérifier la "conformité" aux spécifications.
J'ajouterais que la description formel du problème est limité à des choses "relativement" simples, où il est raisonable d'envisager "toutes les situations" possible de fonctionnement.
# RE: Pas si simple
Posté par soral78 . En réponse au journal couverture de code. Évalué à 1.
Le B nous permet en effet de limiter la phase de test unitaire, et de sécuriser les phases de relectures/codage.
Par contre elle ne nous permet pas d'aller beaucoup plus loin en elle meme, car la sécurité repose sur le fait que le problème soit bien posé: Rien empèche le spécificateur d'oublier, de mal décrire, .... la description matématique du problème qui si elle est fausse donnera un comportement faux de manière prouvée. Ce que permet B c'est de ne pas se contredire....C'est bien mais inssufisant.
La stratégie complète pour un code de qualité suffisante pour laisser à la machine le soin de nos vies passe donc par:
1- Des relectures croisées, réalisées par des personnes "indépendantes", des différentes productions: la specification, la conception, les tests en passant par le code B ou autre language. Tout le cycle en V est inspecté.
2- Un jeux de test unitaire pour les parties non écrite en B, et fait par une autre personne que le développeur.
3- Un jeu de test de validation permettant de vérifier la "conformité" aux spécifications.
J'ajouterais que la description formel du problème est limité à des choses "relativement" simples, où il est raisonable d'envisager "toutes les situations" possible de fonctionnement.