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.
sumber
Jawaban:
Microsoft Research telah melakukan beberapa pekerjaan di bidang ini. Lihat halaman ini: http://research.microsoft.com/en-us/people/nachin/ . Meskipun tidak secara khusus didasarkan pada Halstead, Nachi dan timnya telah melakukan beberapa investigasi menggunakan Halstead, kompleksitas cyclomatic, code churn, dan langkah-langkah lain untuk menilai risiko dan kerapuhan relatif untuk membuat perubahan di bidang kode. Ada juga makalah yang menarik tentang bagaimana efektivitas organisasi juga memainkan peran besar tapi itu di luar topik. :)
sumber
Ada beberapa studi semacam itu. Google adalah TEMAN Anda.
Metrik Halstead tidak disukai ketika ditunjukkan bahwa semuanya berkorelasi kuat dengan SLOC mentah (baris kode sumber). Pada saat itu, menjadi lebih mudah untuk mengukur SLOC dan dilakukan dengan itu.
Ini hasil dari Google Books .
sumber
Volume Halstead berkorelasi dengan SLOC itu menarik tetapi terbatas. Statistik dasar: korelasi linier tidak transitif. X berkorelasi dengan Y, Y berkorelasi dengan Z TIDAK BERARTI bahwa X berkorelasi dengan Z.
sumber