Qualité logicielle : ISO/IEC 25010, métriques et dette technique

Informatique de gestion · Bachelor 3

Caractéristiques de qualité ISO/IEC 25010, métriques de code et gestion de la dette technique.

Introduction

Dire qu'un logiciel est « de qualité » ne veut rien dire tant qu'on n'a pas précisé ce qu'on mesure. La famille de normes ISO/IEC 25000 (SQuaRE) propose un vocabulaire commun, et la norme ISO/IEC 25010 décompose la qualité du produit en caractéristiques comme l'adéquation fonctionnelle, la performance, la compatibilité, l'utilisabilité, la fiabilité, la sécurité, la maintenabilité et la portabilité.

Pour objectiver ces caractéristiques, on recourt à des métriques : complexité cyclomatique, taux de duplication, couplage, taille des modules, couverture de tests. Aucune métrique ne mesure à elle seule la qualité, mais leur évolution signale les zones à risque.

La dette technique désigne le coût futur induit par des raccourcis pris aujourd'hui. Comme une dette financière, elle porte des intérêts : chaque modification dans un code mal structuré coûte plus cher. La gérer, c'est décider quand rembourser.

Objectifs d'apprentissage

  • Citer les caractéristiques principales de la norme ISO/IEC 25010
  • Interpréter quelques métriques de code (complexité, duplication, couplage)
  • Définir la dette technique et ses intérêts
  • Prioriser des remboursements de dette selon le risque et la valeur

Concepts clés

Un modèle de qualité normalisé
ISO/IEC 25010 distingue la qualité du produit (huit caractéristiques) et la qualité en utilisation. Elle sert de grille pour spécifier des exigences non fonctionnelles mesurables.
Les métriques de code
La complexité cyclomatique compte les chemins indépendants d'une fonction; la duplication et le couplage signalent un code difficile à modifier. Les seuils sont des repères à adapter au contexte.
La dette technique
Raccourcis de conception ou de code qui accélèrent aujourd'hui mais ralentissent demain. Elle peut être délibérée (livrer vite) ou involontaire (manque de compétence, évolution du contexte).
Remboursement et priorisation
On rembourse la dette qui ralentit le plus souvent modifiées ou qui présente un risque (sécurité, panne). Une portion fixe du temps de chaque itération y est souvent consacrée.

Conclusion

La norme ISO/IEC 25010 fournit un langage pour dire ce que l'on attend d'un logiciel; les métriques fournissent des signaux; la dette technique donne un cadre économique pour arbitrer.

La qualité interne n'est pas un luxe : elle détermine la vitesse à laquelle l'organisation pourra faire évoluer ses systèmes d'information.

Cartes

Citez trois caractéristiques de qualité du produit selon ISO/IEC 25010.
Par exemple : fiabilité, sécurité, maintenabilité (aussi performance, utilisabilité, portabilité, compatibilité, adéquation fonctionnelle).
Que mesure la complexité cyclomatique ?
Le nombre de chemins d'exécution indépendants d'une fonction, lié au nombre de conditions et de boucles.
Pourquoi une forte duplication de code est-elle un risque ?
Une correction doit être répétée partout, et l'oubli d'une copie crée des incohérences.
Que désigne la maintenabilité ?
La facilité avec laquelle le logiciel peut être analysé, modifié, testé et corrigé.
Qu'est-ce que la dette technique ?
Le surcoût futur de modification créé par des choix de conception ou de code non optimaux faits pour gagner du temps.
Que sont les « intérêts » de la dette technique ?
Le temps supplémentaire payé à chaque modification dans la zone mal structurée.
Une dette technique est-elle toujours mauvaise ?
Non : elle peut être un choix délibéré et maîtrisé (preuve de concept, échéance), à condition d'être tracée et remboursée.
Pourquoi ne pas fixer un seul indicateur de qualité global ?
Parce que la qualité est multidimensionnelle et qu'un indicateur unique peut être manipulé (loi de Goodhart).
Quelle différence entre qualité du produit et qualité en utilisation ?
La première concerne les propriétés du logiciel; la seconde l'efficacité et la satisfaction des utilisateurs dans un contexte réel.

Glossaire

ISO/IEC 25010
Norme décrivant un modèle de qualité du produit logiciel et de la qualité en utilisation.
Maintenabilité
Aptitude d'un logiciel à être modifié, corrigé ou adapté à moindre effort.
Complexité cyclomatique
Métrique comptant les chemins indépendants dans le flux de contrôle d'une fonction.
Couplage
Degré de dépendance entre modules; un fort couplage rend les changements risqués.
Dette technique
Coût futur des raccourcis de conception ou de code pris pour livrer plus vite.
Exigence non fonctionnelle
Exigence portant sur la qualité du fonctionnement plutôt que sur une fonction métier.