Domanda

Come trovare la complessità ciclomatica di una funzione con più punti di uscita? La pagina wiki dice  p-s + 2 dove p è il numero di punti di decisione e s è il numero di punti di uscita.

Ma non dovrebbero più punti di uscita aumentare la complessità ciclomatica in quanto può portare a percorsi più indipendenti?

Saluti,

Aman

È stato utile?

Soluzione

Perché non provare un processo di NDepend ? Si calcola ciclomatica complessità e molte altre metriche del codice.

Altri suggerimenti

misure CC linearmente percorsi indipendenti. punti di uscita non aggiungere percorsi al codice, terminano i percorsi, riducendo in tal modo CC (o per lo meno, certamente non aumentare CC).

Per dirla in altro modo, l'unico modo per aggiungere punti di uscita è quella di aggiungere più percorsi (condizioni come IF). In caso contrario, il codice dopo il punto di uscita 'nudo' non è raggiungibile, quindi è il condizionali che aggiungono complessità, non punti di uscita.

Grazie Michael. Avevo capito il mio errore dopo che ho postato la domanda. Il mio errore derivava dalla constatazione che JavaNcss (che utilizza il file di origine) e Xdepend (Che utilizza il file jar) entrambi sembravano a sovrastimare il CC per un pezzo di codice che aveva più punti di uscita. Ho inviato il codice qui . Ma utilizzando la formula p-s + 2 la risposta sembra essere 4. C'è una semplice spiegazione che mi manca?

@pluto: ho provato Xdepend (La versione non NET di NDepend). Sembra un ottimo strumento. Ma quando si utilizza file jar, sopravvaluta la CC (che hanno accettato nella loro documentazione). In questa fase sto esplorando diversi strumenti. Siete a conoscenza di qualsiasi uno migliore?

Saluti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top