Reading Time: 6 mins

Complexité cyclomatique | Pourquoi devrait-il être mesuré

Complexité cyclomatique | Pourquoi devrait-il être mesuré

La complexité cyclomatique donne une valeur à votre logiciel – Savoir-faire.

Développé par Thomas J. McCabe, Sr. en 1976, la complexité cyclomatique est une métrique logicielle (mesure), utilisée pour indiquer la complexité d’un programme. Il s’agit d’une mesure quantitative du nombre de chemins linéairement indépendants à travers le code source d’un programme.

Plus la complexité cyclomatique est grande, plus les lignes de code que vous avez écrites sont complexes.

La complexité cyclomatique est directement liée à la santé du code !

La complexité cyclomatique est mesurée sur la base des nombres donnés par méthode dans le code source. C’est une fonction directe du nombre de branches dans votre programme. Avec chaque si, pour ou cas, vous ajoutez à la complexité cyclomatique du programme. En supprimant les branchements d’une fonction, vous pouvez la rendre moins complexe.

Les lignes de code dans une classe ou une méthode affectent également la complexité cyclomatique, un plus grand nombre de lignes signifie, une combinaison de plusieurs logiques au total, ce qui viole clairement le SRP (principe de responsabilité unique).

Une “complexité” élevée se traduit directement par une faible lisibilité et des coûts de maintenance élevés.

Il n’y a probablement pas de mesure simple unique qui puisse exprimer un concept abstrait tel que la complexité en un seul nombre. Mais cela ne signifie pas que nous ne pouvons pas mesurer et contrôler la complexité. Il suffit de le faire avec plusieurs métriques et contrôles qui couvrent les différents aspects de la complexité.

Horus, une plateforme de gestion d’ingénierie , avec un ensemble de métriques permet de mesurer ces facteurs et de suivre le score de santé de l’application. Partez à la découverte d’Horus

En savoir plus sur Horus dans l’ article précédent

Keerthi Veerappan

An INFJ personality wielding brevity in speech and writing. Marketer @ Zucisystems.