La mia domanda riguarda più la trasformazione dal codice di programmazione al controllo del flusso grafico.
Dì, ho un pezzo di codice:
public class Contractor
{
// other member fields...
private bool isVerified;
private int noOfA;
private int noOfB;
// other member methods...
public int GetNumberOfDependents()
{
this.noOfB = this.noOfA;
if (this.isVerified)
{
this.noOfB++;
}
if (this.noOfB > 4)
{
this.noOfB = 4;
}
return this.noOfB;
}
}
Ho disegnato un diagramma di flusso come di seguito:
Etienipresentechenonhodisegnatounnodoperl'espressionecondizionaledell'istruzioneIF,perchénonpensochesiaun'comando'.
Secondo
the nodes of the graph correspond to indivisible groups of commands of a program
E la formula è:
M = E − N + 2P
Quindi ho ottenuto il valore CC come 4.
Tuttavia, secondo la descrizione di questo link , ho ottenuto il suo valore CC come 3 .
C'è una discrepanza qui.
Inoltre, secondo la risposta di David Tonhofer alla domanda "Comprendere la complessità ciclopica" su Programmers.SE, il la formula in dovrebbe essere:
v(G) = e - v + p
Questa risposta non è riconosciuta da nessuno, la mia domanda è: il mio diagramma è corretto?