Berkat pertanyaan di Code Review, saya sedikit berselisih (yang pada dasarnya adalah kesempatan untuk mempelajari sesuatu) tentang apa sebenarnya Kompleksitas Siklomatik untuk kode di bawah ini.
public static void main(String[] args) {
try {
thro();
thro();
thro();
thro();
thro();
thro();
thro();
}
catch (NullPointerException e) {
}
}
private static Random random = new Random();
public static void thro() throws NullPointerException {
if (random.nextBoolean())
throw new NullPointerException();
System.out.println("No crash this time");
}
Saat menulis kode ini di Eclipse dan menggunakan plugin Eclipse metrics , ia memberi tahu saya bahwa Kompleksitas McCabe Cyclomatic untuk metode utama adalah 2, dan untuk thro
metode itu tertulis 2.
Namun, orang lain memberi tahu saya bahwa kompleksitas panggilan thro
beberapa kali adalah number of calls * method complexity
, dan karenanya mengklaim bahwa kompleksitas metode utama adalah 7 * 2 = 14.
Apakah kita mengukur hal yang berbeda? Bisakah kita berdua benar? Atau apakah sebenarnya kompleksitas siklomatik di sini?