Toute fonction non mentionnée dans la liste a une complexité cyclomatique de 1, et donc ne nécessite pas un diagramme.
-------------------
Dans un second temps, on va amélorier la complexité cyclomatique des fonctions les plus lourdes si possible. On va commencer par get_ping_from_temp_log.
La méthode la plus efficace pour réduire la compléxité cyclomatique d'un programme, outre
changer la nature du code, est de factoriser la fonction, c'est à dire d'écrire un segment
du code coûteux dans une fonction à part puis de l'appeler.
On a décidé de faire cela pour la boucle while de la fonction. Cela nous donne le code suivant :
Vous pouvez retrouver le diagramme dans le répertoire ping-report/diagrammes/better_get_ping_from_temp_log.mdj. La complexité cyclomatique de l'algorithme sous cette forme est de 7.
On peut appliquer le même principe à set_stats_ping en factorisant le segment suivant de la fonction :
/* Number of ping readed (for mean calculation) */
*nb_ping++;
/* Max ping */
if(*ping > *max){
*max = *ping;
}
/* Min ping */
if(*ping < *min){
*min = *ping;
}
/* Number of ping above 100 ms */
if(*ping > 100.0){
*nb_high++;
}
/* Sum (for mean calculation) */
sum += *ping;
}
}
}
```
Vous pouvez retrouver le diagramme dans le répertoire ping-report/diagrammes/better_set_stats_ping. La complexité cyclomatique de l'algorithme sous cette forme est de 4.