Setiap kali saya mendengar upaya untuk mengaitkan beberapa jenis metrik berbasis kode dengan cacat perangkat lunak, hal pertama yang saya pikirkan adalah kompleksitas siklomatik McCabe . Berbagai penelitian telah menemukan bahwa ada korelasi antara kompleksitas siklomatik yang tinggi dan jumlah cacat. Namun, penelitian lain yang melihat modul dengan ukuran yang sama (dalam hal garis kode) menemukan bahwa mungkin tidak ada korelasi.
Bagi saya, baik jumlah baris dalam modul dan kompleksitas siklomatik dapat berfungsi sebagai indikator yang baik dari kemungkinan cacat, atau mungkin lebih besar kemungkinan cacat akan disuntikkan jika modifikasi dilakukan pada modul. Modul (terutama di tingkat kelas atau metode) dengan kompleksitas siklomatik yang tinggi lebih sulit untuk dipahami karena ada banyak jalur independen melalui kode. Modul (sekali lagi, terutama di tingkat kelas atau metode) dengan sejumlah besar garis juga sulit dipahami karena peningkatan garis berarti lebih banyak hal terjadi. Ada banyak alat analisis statis yang mendukung komputasi kedua baris kode sumber terhadap aturan yang ditentukan dan kompleksitas siklomatik, sepertinya menangkap mereka akan meraih buah yang menggantung rendah.
Langkah- langkah kompleksitas Halstead mungkin juga menarik. Sayangnya, validitas mereka tampaknya agak diperdebatkan, jadi saya tidak perlu bergantung pada mereka. Salah satu tindakan Halstead adalah perkiraan cacat berdasarkan pada usaha atau volume (hubungan antara panjang program dalam hal total operator dan operan dan kosakata program dalam hal operator dan operator yang berbeda).
Ada juga sekelompok metrik yang dikenal sebagai Metrik CK. Definisi pertama dari rangkaian metrik ini tampaknya ada dalam makalah berjudul Suite Metrik untuk Desain Berorientasi Objek oleh Chidamber dan Kemerer. Mereka mendefinisikan Metode Tertimbang Per Kelas, Kedalaman Pohon Warisan, Jumlah Anak, Kopling Antar Kelas Objek, Respon untuk Kelas, dan Kurangnya Kohesi dalam Metode. Makalah mereka menyediakan metode komputasi serta deskripsi tentang bagaimana menganalisis masing-masing.
Dalam hal literatur akademik yang menganalisis metrik ini, Anda mungkin tertarik dengan Analisis Empiris Metrik CK untuk Kompleksitas Desain Berorientasi Objek: Implikasi untuk Cacat Perangkat Lunak, yang ditulis oleh Ramanath Subramanyam dan MS Krishna. Mereka menganalisis tiga dari enam metrik CK (metode tertimbang per kelas, kopling antara objek kelas, dan kedalaman pohon warisan). Melirik kertas, tampak bahwa mereka menemukan ini berpotensi metrik valid, tetapi harus ditafsirkan dengan hati-hati karena "meningkatkan" seseorang dapat menyebabkan perubahan lain yang juga mengarah pada kemungkinan cacat yang lebih besar.
Analisis empiris Metrik Desain Berorientasi Objek untuk Memprediksi Kesalahan Tinggi dan Rendahnya Keparahan, yang ditulis oleh Yuming Zhou dan Hareton Leung, juga memeriksa metrik CK. Pendekatan mereka adalah untuk menentukan apakah mereka dapat memprediksi cacat berdasarkan metrik ini. Mereka menemukan bahwa banyak metrik CK, kecuali untuk kedalaman pohon warisan dan jumlah anak) memiliki beberapa tingkat signifikansi statistik dalam memprediksi area di mana cacat dapat ditemukan.
Jika Anda memiliki keanggotaan IEEE, saya akan merekomendasikan mencari di Transaksi IEEE pada Rekayasa Perangkat Lunak untuk publikasi akademis lebih banyak dan Perangkat Lunak IEEE untuk beberapa laporan yang lebih nyata dan diterapkan. ACM mungkin juga memiliki publikasi yang relevan di perpustakaan digital mereka .