Mesure de la qualité du code : vers une méthode standard

Les outils d'analyse et de mesure de code actuels ne répondent pas complètement aux attentes d’une information objective et synthétique. Une nouvelle méthode remédie à leurs lacunes en revenant rigoureusement aux fondamentaux de la mesure.

Lorsqu'un constructeur annonce la consommation d'un véhicule, il s'agit d'un chiffre mesuré en respectant des méthodes et des critères communs à toute l'industrie automobile. Dans chaque secteur, il existe ainsi des systèmes de mesure, souvent doublés de normes, qui permettent aux consommateurs de comparer objectivement les produits. Dans le domaine du logiciel, il n'existe rien de tel. Rien ne permet de comparer a priori la qualité de deux applications. Or, les managers apprécient de disposer d'éléments explicites capables d'entraîner une décision rapide et argumentée.


A la recherche de l'objectivité

On a cherché depuis de nombreuses années à satisfaire cette demande d'une information synthétique et objective. Des réflexions sur l'analyse du code et son évaluation ont bien été lancées, mais ces tentatives se sont révélées, à postériori trop ambitieuses, inadaptées, voire incorrectes. Les standards ISO 9126 ou ISO/IEC 15939 n'ont apporté que des pistes. Quelques solutions ont été avancées, notamment poussées par des outils calculant les index de maintenabilité MI3 et MI4, mais l'utilisation de ces derniers est délicate et ne tient pas toujours ses promesses.


Retour aux fondamentaux de la mesure de qualité du code

Définie par DNV ITGS, la méthode Sqale a pour ambition de mettre fin à ce décalage entre les attentes en matière de mesure du code et les limites des outils disponibles. Et c'est en remettant les choses à plat, en repartant de principes simples, que Sqale entend y parvenir. Par exemple, avant d'évaluer la qualité, il est nécessaire de la spécifier. Préalablement à l'analyse du code, il s'agit donc d'avoir une vision précise des attentes par rapport à l'application. Aura-t-on besoin de la faire maintenir par des tiers, de la porter sur une autre plate-forme matérielle ? Faut-il atteindre des performances particulières en matière de consommation d'espace disque ? C'est en regard de tels besoins que l'on pourra sélectionner les points de contrôle et ensuite évaluer le code selon les critères appropriés.

Sqale s'attache à respecter les fondamentaux de la théorie de la mesure. Une mesure doit notamment être objective, précise et ne pas violer la clause de représentativité. Celle-ci stipule que si A apparaît strictement plus grand que B dans la réalité, alors la mesure de A doit être strictement supérieure à celle de B. Autrement dit, la mesure quantifie la perception tout en la respectant. Ce qui pourrait sembler une évidence constitue pourtant la faille de tous les systèmes de qualimétrie du code jusqu'à aujourd'hui.


Les pièges des systèmes actuels

Les écueils ne manquent pas. L'utilisation de principes d'agrégation à base de moyennes entraîne des effets de compensation - par exemple sur le taux de commentaires, qui perd son sens s'il est appliqué à une portion trop vaste du code. Il faut bannir également des opérations interdites en fonction du type précis d'échelle utilisée (par exemple, agréger par des moyennes des mesures de type ordinale). Enfin, on doit éviter les notations sur des échelles bornées : elles entraînent des effets de seuil qui se traduisent par un nivellement des valeurs. On en vient alors à ne plus pouvoir distinguer un mauvais programme d'un très mauvais, ou un bon d'un très bon.

Ces violations de la clause de représentativité conduisent par conséquent à de "faux positifs", qui décrédibilisent l'ensemble des mesures produites et imposent d'effectuer ensuite manuellement "l'analyse de l'analyse du code", avec la perte de temps que l'on imagine...


Une méthode de qualimétrie logicielle vraiment exploitable

Plus rigoureuse, la méthode Sqale évite ces écueils et fournit des résultats précis, comparables et exploitables, sur lesquels on peut véritablement fonder des décisions : évaluation de charge, de coût de possession, comparaison de prestataires, programmes d'amélioration de la qualité. C'est pourquoi depuis sa publication cet été, trois éditeurs d'outils ont décidé de l'implémenter.

La méthode Sqale - Software Quality Assessment on Life Cycle Expectations - et ses principes fondamentaux sont définis dans un document en libre chargement publié sur le site www.sqale.org. Ce site tient aussi à jour la liste des éditeurs d'outils qui ont décidé d'implémenter cette méthode.