Couverture de code Caml pour la réalisation d'outils de développement certifiés
Résumé
Cet article est un retour d’expérience d’une étude menée sur l’utilisation du langage Objective Caml pour la réalisation d’outils de développement de logiciel critique. Dans le cas d’espèce, il s’agit d’un générateur de code embarqué pour le langage Scade T M . Même si les contraintes pour la réalisation d’outils sont moins fortes que celles qui pèsent sur le code embarqué, elles demeurent néanmoins assez lourdes et liées à la nature des langages impératifs ordinairement utilisés pour ce type de développement. L’usage d’Objective Caml sort du cadre ordinaire autant par ses traits de haut niveau (langage fonctionnel d’ordre supérieur, polymorphisme paramétrique, filtrage par motif) que par les mécanismes de bas niveau mis en œuvre par la bibliothèque d’exécution (GC, exceptions). Dès lors, il est nécessaire de réinterpréter pour ce langage les normes de développement que la certification pour le logiciel critique exige, de développer les outils capables de mesurer le respect à ces normes et d’adapter OCaml pour que lui même les satisfasse. Nous proposons une limitation du langage et la simplification de sa bibliothèque d’exécution qui permettent de définir et de mesurer la couverture d’un programme écrit en OCaml selon les critères MC/DC. Cela ouvre des perspectives d’une diffusion plus large de ce type de langage en milieu industriel en élevant le niveau d’abstraction dans la conception des outils développés pour la production de programmes certifiés.