La qualité
Qu'est ce que c'est ?
En informatique, la qualité logicielle est une appréciation globale d'un logiciel, basée sur de nombreux indicateurs. En Java en particulier, la qualité d'une application va être directement liée à la qualité du code.
Un programme bien écrit est un programme où le coût d'implémentation d'une fonctionnalité est constant tout au long de la vie d'un programme. Itay Maman
L'un des intérêts de la surveillance de la qualité est la détection précoce des éventuels problèmes. Or lorsque l'on sait que le coût de la correction d'une erreur augmente considérablement avec le temps, on comprend très vite l'importance de la détection rapide des erreurs.
Les métriques
Une métrique est une caractéristique ou une propriété d’un logiciel. La mesure correspond à la valeur d’une métrique à un moment T.
Il faut savoir qu'il n'existe pas de métrique « ultime », mais un ensemble de métrique permet d’avoir une idée globale de la qualité du code source.
Et sonar ?
Sonar s'appuie sur 7 types de métriques différentes qui sont présentées grâce à l'image suivante :
Les 7 types de métrique de Sonar
- Architecure & design : ce critère désigne tout ce qui est en rapport avec l'architecture telle que les différentes dépendances entre les classes
- Duplications : ce critère désigne tout ce qui se rapporte à la duplication de code au sein du même fichier ou dans plusieurs fichiers
- Unit tests : ce critère se rapporte aux tests unitaires comme le nombre de tests réussis ou échoués mais il prend également en compte les différentes parties du code couvertes ou non par les tests
- Complexity : ce critère désigne la complexité cyclomatique moyenne par classe, fichier et méthode
- Potential bugs : ce critère désigne les différentes failles de sécurité ou bogues qui pourraient être présent dans les sources
- Coding rules : ce critère désigne les règles de codage comme le nom des attributs ou des classes
- Comments : ce critère désigne tout ce qui concerne les commentaires, du commentaire vide jusqu'au commentaire de documentation en passant par les lignes de codes commentées