"Cyclomatic Complexity corresponds to the number of decisions a block of code contains plus 1. This number (also called McCabe number) is equal to the number of linearly independent paths through the code. This number can be used as a guide when testing conditional logic in blocks."
La complessità ciclomatica corrisponde al numero di decisioni che un blocco di codice contiene, più 1 (vedi schema in fondo alla pagina). Questo numero (chiamato anche numero McCabe) è uguale al numero di percorsi linearmente indipendenti attraverso il codice. Questo numero può essere utilizzato come guida durante il test della logica condizionale nei blocchi.
È possibile calcolare la Complessità Ciclomatica Massima senza caricare il programma su Q2A (risparmiando così del tempo).
Per farlo bisognerà installare attraverso Anaconda Prompt il pacchetto "Radon" (soltanto la prima volta):
conda install -c conda-forge radon
Dopodichè ogni volta che si vorrà testare il programma basterà lanciare il comando sempre su Anaconda Prompt:
radon cc -a -s --show-closures program01.py
(Assicurarsi di aver salvato prima di eseguirlo)
Il comando ritornerà una schermata simile a questa:
Per capire cosa significa:
- La lettera viola indica se si tratta di una Funzione, una Classe o un Metodo:
- Il numero indica il valore della CC mentre la lettera in verde il punteggio della funzione in termini di qualità del codice:
(Per gli Homework non bisogna considerare la Complessità Ciclomatica Media (in questo caso 4) ma la Complessità Ciclomatica Massima, rappresentata dalla funzione con la CC massima (nell'esempio la prima e la seconda funzione a parità di valore, 5)
- Di seguito invece una tabella per comprendere meglio come e da cosa viene influenzata la Complessità Ciclomatica:
Link alla documentazione: https://radon.readthedocs.io/en/latest/index.html