Introduction à la complexité cyclomatique

La complexité cyclomatique est développée par Thomas J. McCabe en 1976. Il a recommandé aux programmeurs de compter la complexité des modules sur lesquels ils travaillent et de les diviser en modules plus petits de sorte que chaque fois que la complexité cyclomatique du module dépasse 10. 10 est le complexité cyclomatique maximale pour un programme. Il s'agit d'une mesure de la complexité du code source qui est liée à un certain nombre d'erreurs de codage. Il détermine les chemins indépendants, ce qui serait très utile pour les développeurs et les testeurs.

Cela aide à tester le logiciel et nous donne plus de confiance que chaque aspect de notre programme a été testé. Cela améliore la qualité du code et aide également à se concentrer davantage sur les chemins invisibles, le cas échéant. Il est généralement calculé en développant un graphique de flux de contrôle du code qui mesure le nombre de chemins linéairement indépendants à travers un programme pour mesurer avec précision la complexité d'un morceau de code. Cela contribue à améliorer la qualité des logiciels.

Définition

La complexité cyclomatique du code est le nombre de chemins linéairement indépendants qu'il contient.

Comment calculer la complexité cyclomatique?

Le calcul de la complexité cyclomatique du programme est très simple grâce à la formule suivante.

Complexité cyclomatique = E - N + 2P

  • E => Le non. des bords du graphique
  • N => Le nombre de nœuds du graphe
  • P => Le nombre de composants connectés

Il existe une autre formule si nous considérons le point de sortie qui revient à votre point d'entrée. Et vous le créerez comme un cycle.

Complexité cyclomatique = E - N + P

Complexité cyclomatique = E - N + 1

Nous avons une autre façon de calculer cela. C'est un moyen plus simple.

  1. Dessiner un graphique
  2. Connectez ensuite le point de sortie au point d'entrée
  3. Et puis comptez les trous dans le graphique

Regardez la figure suivante:

Voici quelques notations de graphique de flux:

Si-alors-sinon:

Tandis que:

Faire pendant:

Pour:

Si le programme n'a pas de boucle, sa complexité est plus faible. Lorsque le programme rencontre une boucle, la complexité augmente.

Supposons que nous en ayons une si la condition définie, alors nous avons la complexité comme 2. En raison de la condition, il y a deux conditions Vrai et Faux.

Cette technique est principalement utilisée dans les tests de base de la boîte blanche. La complexité cyclomatique représente un minimum. de tests requis pour exécuter chaque chemin dans le code.

Différentes langues ont différents outils pour mesurer la complexité cyclomatique du programme.

Les étapes pour calculer la complexité cyclomatique sont les suivantes

  1. Dessinez l'organigramme ou un diagramme graphique à partir du code.
  2. Maintenant, dans la deuxième étape, vérifiez et identifiez le nombre de chemins indépendants dont il dispose.
  3. Calculez ensuite la complexité cyclomatique par la formule mentionnée ci-dessous:

M = E –N + 2P

  1. Selon la conception de la mesure, les cas de test.

Maintenant, vous pouvez avoir une question sur la façon dont cela peut être réellement calculé. Allons de l'avant et comprenons comment nous allons réellement le calculer.

Prenons l'exemple de code Java suivant:

Ce programme calcule la série des fibonacii comme:

0 + 1 = 1

1 + 1 = 2

2 + 1 = 3

3 + 2 = 5

5 + 3 = 8

8 + 5 = 13

// Le programme suivant consiste simplement à imprimer la série fibonacii

class Printno (
Public static void main(String() args)(
int max = 20 ;
int pre = 0;
int next = 1;
System.out.println(“The Fibonacii series is : ” +prev);
While(next<= max)(
System.out.println(next);
Sum = prev + next;
Prev = next;
Next =sum;
)
)
)

> javac Printno.java

> java Printno

O / p:

La série fibonacii est: 0

1

1

2

3

5

8

13

Regardez de plus près le programme ci-dessus. Vous en trouverez une en boucle. Ce programme se compose d'une seule boucle while.

Il est maintenant temps de dessiner un graphique pour cela.

Graphique de flux de contrôle comme ci-dessous:

Organigramme

Maintenant, pour calculer la complexité du programme ci-dessus, nous devons d'abord calculer le nombre total. des bords:

Nbre total de bords: 6

Maintenant, calculez le nombre total de nœuds.

Nombre total de nœuds: 5

Formule: M = EN + 2p

M = 6-5 + 2

M = 1 + 2

M = 3

Ainsi, la complexité cyclomatique de ce programme est de 3.

Les codes complexes sont difficiles à maintenir et à mettre à jour ou à modifier. Comme nous le savons tous, la complexité cyclomatique ne doit pas dépasser 10.

Types de complexité

Il existe deux types de complexité:

Complexité essentielle :

Cette complexité est un type de code que nous ne pouvons ignorer.

Ex. Le système de gestion de vol est plus complexe.

Complexité accidentelle:

Comme son nom l'indique parce que quelque chose s'est produit comme la correction de bogues, les correctifs, les modifications, etc. dans le système. Surtout, nous ne travaillons que sur la complexité accidentelle.

Avantages de la complexité cyclomatique:

  • En tant que logique simple, si la complexité diminue, nous sommes plus faciles à comprendre.
  • Si le programme le plus complexe est là, alors le programmeur doit vérifier qu'aucune des possibilités n'est augmentée.
  • Les chemins comptés en complexité montrent qu'un programme écrit par un programme est complexe ou on peut aller de l'avant et réduire la complexité.
  • Il réduit le couplage de code.
  • Supposons qu'un programme ait une complexité cyclomatique de 5, ce qui signifie qu'il existe 5 chemins indépendants différents à travers la méthode.
  • Cela signifie que 5 cas de test doivent être créés pour implémenter ce code à des fins de test.
  • Par conséquent, il est toujours bon d'obtenir un nombre inférieur pour la complexité cyclomatique.
  • Ce processus est nécessaire car le code hautement couplé est très difficile à modifier.
  • Plus la complexité du code est élevée, plus le code est complexe.

Les outils utilisés pour calculer la complexité cyclomatique sont

  • Cyclo
  • CCCC
  • McCabe IQ
  • GCov
  • Couverture Bullseye
  • PMD
  • LC2
  • Findbugs
  • Jarchitect

Conclusion

La complexité cyclomatique est la mesure de la complexité du programme. Cette mesure nous aide à comprendre le travail à effectuer et la complexité du logiciel. La complexité cyclomatique fait partie des tests de boîte blanche.

Articles recommandés

Cela a été un guide de la complexité cyclomatique. Ici, nous discutons Comment calculer la complexité cyclomatique? ainsi que les avantages et les types de complexité. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Introduction à Linux
  2. Introduction au C ++
  3. Qu'est-ce que HTML5?
  4. Qu'est-ce que Hibernate?