Les métriques de code
Les mesures statiques d'un code et leurs seuils usuels : lignes de code, complexité cyclomatique, complexité cognitive, couplage, cohésion, duplication, dette technique, et ce qu'une métrique ne dit pas.
- 28 cartes
- 6 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Les chiffres
- Mises en situation
- Comprendre
Quelques cartes du deck
Complexité cyclomatique : de quoi s'agit-il ?
Voir la réponse
Nombre de chemins indépendants dans le graphe de flot de contrôle d'une fonction : le nombre de points de décision, plus un.
Elle donne le nombre minimal de tests pour parcourir chaque chemin indépendant. McCabe recommande de ne pas dépasser 10 : au-delà, la fonction devient difficile à tester.
Quelle est la complexité cyclomatique de cette fonction ? Compte
if,elif,for,while,and,or, puis ajoute 1.
```python
def classer(notes, seuil):
total = 0
for n in notes:
if n < 0 or n > 20:
continue
if n >= seuil:
total += 1
elif n >= seuil - 2 and n > 5:
total += 0.5
return total`7569
Voir la réponse
7Six points de décision :
for,if,or,if,elif,and. Plus 1, cela fait 7. Oublier les opérateursoretand, qui créent chacun une branche, donne 5 ; oublier le +1 donne 6.Sur un graphe de flot de contrôle à E arcs et N nœuds, la complexité cyclomatique vaut ….
Voir la réponse
Sur un graphe de flot de contrôle à E arcs et N nœuds, la complexité cyclomatique vaut E − N + 2.
Pour une fonction sans aucune décision, il y a N − 1 arcs et la formule donne 1 : un seul chemin. Chaque décision ajoute un arc de plus que de nœuds, donc 1 à la complexité.
Complexité cognitive : de quoi s'agit-il ?
Voir la réponse
Mesure de l'effort nécessaire pour comprendre une fonction, qui pénalise les ruptures de flot et surtout leur imbrication.
Dix
ifà la suite sont faciles à lire ; dixifemboîtés ne le sont pas, et pourtant la complexité cyclomatique est la même. La cognitive les distingue.