Le logiciel “mesure” la fiabilité du code

Le 16/04/2007 à 0:00

L'éditeur d'outils de tests pour les logiciels embarqués PolySpace Technologies introduit deux nouveaux modules dotés de fonctionnalités inédites. Parmi elles, la possibilité de “mesurer” la fiabilité du code et de suivre son évolution dans le temps.
Pour déterminer les erreurs d'exécution dans les logiciels embarqués, PolySpace Technologies a une approche originale. Contrairement aux démarches “classiques” qui consistent à rechercher les bugs (sans être vraiment sûr de les avoir tous détectés), l'éditeur identifie au contraire les lignes de code dont il est sûr qu'elles ne contiennent pas d'erreur. « En démontrant l'absence d'erreurs, nous sommes sûrs d'avoir un outil fiable et représentatif de la qualité intrinsèque du code », indique Eric Pierrel, responsable marketing de PolySpace Technologies.
Jusqu'à présent, le logiciel proposé par l'éditeur “coloriait” le code en différentes couleurs : vert (pour les lignes ne contenant pas d'erreurs), orange (pour les erreurs probables), rouge (pour un bug identifié) et gris (pour le code mort). Avec le module PolySpace Scream, introduit lors du dernier salon RTS Embedded Systems, PolySpace Technologies va plus loin. « L'idée, c'est de s'appuyer sur le pourcentage du code “sans erreur” pour en extraire un outil de mesure objectif de la fiabilité du logiciel », explique M. Pierrel. Du coup, la solution n'intéresse plus seulement les développeurs ou les chefs de projet, mais également les responsables des services qualité.
Concrètement, PolySpace Scream analyse chaque fichier de résultat obtenu après la vérification statique du code. Il s'appuie bien sûr sur le pourcentage de code colorié en vert, mais aussi sur des annotations ajoutées par les développeurs en marge du code orange. Ceux-ci peuvent en effet utiliser un certain nombre de “codes” pour ajouter leurs commentaires sur les éventuels bugs identifiés. Ils peuvent par exemple les classer suivant leur niveau de gravité, définir des priorités sur les actions à mener ou encore indiquer si cette partie du code nécessite une analyse plus approfondie.
A partir de cet ensemble de résultats, PolySpace Scream donne une note à la fiabilité du code. Celle-ci peut ensuite évoluer au fur et à mesure que les éventuels bugs de la zone orange sont revus ou corrigés, ou lorsqu'une nouvelle version du logiciel est développée. On peut alors visualiser, sous forme de graphiques ou de tableaux de statistiques, l'évolution de la fiabilité du code…
Pour faciliter la tâche des développeurs, l'éditeur a également introduit, en complément de PolySpace Scream, un autre module de vérification de code. Mais contrairement à l'outil de vérification statique (qui permet d'obtenir les différentes couleurs), il s'agit ici d'un outil de vérification dynamique doté d'une particularité : au lieu de s'intéresser à tout le code, il ne réalise des tests que sur la partie “utile” contenant les lignes suspectes (coloriées en orange).
« Une fois que l'outil de vérification statique a identifié du code orange, il y a donc désormais deux solutions : revoir tout le code “à la main”, en corrigeant chacun des bugs, ou utiliser l'outil de test dynamique, qui trouvera automatiquement les éventuelles erreurs. S'il n'en trouve pas, le niveau de fiabilité augmente », explique M. Pierrel.
Enfin, PolySpace Technologies a aussi relooké l'interface présentant les résultats de l'analyse statique. Parmi les nouveautés de cette version (4.1), un assistant qui aide l'utilisateur à déterminer les opérations à risque, la possibilité de comparer simplement plusieurs analyses d'un même code, ou encore le support en natif des langages spécifiques des compilateurs Keil et IAR.
Comme toutes les solutions de PolySpace Technologies, ces nouveaux outils sont destinés aux entreprises développant des logiciels embarqués (notamment dans l'aéronautique, le spatial, la Défense ou l'automobile). Ils sont limités à la détection d'erreurs d'exécution (telles que les divisions par zéro ou les overflow) dans les codes écrits en langages C, C++ et Ada.

Copy link
Powered by Social Snap