Apakah ada metrik analog dengan ukuran Kompleksitas McCabe untuk mengukur seberapa kohesifnya suatu rutin dan juga seberapa longgar (atau eratnya) penggabungan rutin tersebut dengan kode lain dalam basis kode yang sama?
Apakah ada metrik analog dengan ukuran Kompleksitas McCabe untuk mengukur seberapa kohesifnya suatu rutin dan juga seberapa longgar (atau eratnya) penggabungan rutin tersebut dengan kode lain dalam basis kode yang sama?
Jawaban:
Saya pikir metrik yang Anda cari adalah LCOM4, meskipun berlaku lebih untuk kelas.
Sonar menjelaskannya dengan baik di sini :
... metrik: LCOM4 (Kurangnya Metode Kohesi) untuk mengukur seberapa kelas kohesif. Menafsirkan metrik ini cukup sederhana karena nilai 1 berarti bahwa kelas hanya memiliki satu tanggung jawab (baik) dan nilai X berarti bahwa sebuah kelas mungkin memiliki tanggung jawab X (buruk) dan harus di refactored / dibagi.
Tidak ada keajaiban di sini, hanya akal sehat. Mari kita ambil contoh sederhana dengan Driver kelas. Kelas ini memiliki dua bidang: Mobil dan Otak, dan lima metode: drive (), goTo (), stop (), getAngry () dan drinkCoffee (). Berikut ini adalah grafik ketergantungan antara komponen-komponen tersebut. Ada tiga blok komponen terkait, jadi LCOM4 = 3, sehingga kelas tampaknya memiliki tiga tanggung jawab yang berbeda dan melanggar Prinsip Tanggung Jawab Tunggal.
...
Ini alat yang hebat, jika Anda bisa menggunakannya. :)
brain.setAngry(driver)
? car.applyBreaks(driver)
?
Ketidakstabilan didukung dalam berbagai alat metrik kode.