Pada tahun 1977, Maurice Howard Halstead memperkenalkan ukuran kerumitannya untuk sistem perangkat lunak , yang meliputi pengukuran kosakata program, panjang program, volume, kesulitan, usaha, dan perkiraan jumlah bug dalam sebuah modul. Menurut Wikipedia, kesulitan berkaitan dengan kesulitan memahami program ketika membaca atau menulisnya dan upaya dapat diterjemahkan ke dalam waktu yang diperlukan untuk kode aplikasi di mana Time = (Usaha / 18) detik.
Pengukuran tidak berguna kecuali data dan perhitungan terkait dengan beberapa aspek pengembangan perangkat lunak. Namun, saya belum menemukan pekerjaan yang menyatakan bahwa kesulitan dari nilai tertentu atau lebih tinggi cenderung peningkatan signifikan secara statistik dalam cacat atau hubungan antara kesulitan dan waktu untuk membaca kode (kesulitan N menghasilkan rata-rata M jam yang dihabiskan memahami basis kode) atau analisis apa pun untuk dapat menghitung Waktu setelah fakta berguna dalam menentukan kualitas (terutama karena waktu untuk menulis seharusnya sudah dicatat sebagai ukuran sudah). Saya terutama tertarik pada estimasi bug Halstead (yang tidak disebutkan di Wikipedia) - jumlah bug dalam aplikasi dapat diperkirakan dengan Volume / 3000 atau Usaha ^ (2/3) / 3000.
Saya mencari dua hal:
- Adakah yang menggunakan ukuran kompleksitas perangkat lunak Halstead dalam aplikasi dunia nyata untuk menilai kualitas perangkat lunak? Jika demikian, bagaimana Anda menerapkannya dan ternyata hasilnya bermanfaat, valid, dan / atau dapat diandalkan?
- Adakah penelitian akademis dalam bentuk survei, analisis, atau studi kasus yang membahas validitas (atau ketidakabsahan) tindakan kompleksitas Halstead ketika diterapkan pada kualitas perangkat lunak?
- Apakah ada penelitian akademis dalam bentuk survei, analisis, atau studi kasus yang menunjukkan penggunaan Source Lines of Code (SLOC) untuk menghitung sesuatu yang mirip dengan metrik Volume, Kesulitan, Upaya, Waktu, dan Bug Halstead? Saya menduga Volume mungkin hanya sesuai dengan penghitungan SLOC dan Kesulitan mungkin sesuai dengan kompleksitas siklomatik (dan mungkin tindakan lain). Saya juga sangat menyadari bahwa upaya pengukuran, produktivitas, atau waktu dalam SLOC berpotensi menyesatkan.