Ada berbagai jenis kualitas yang dapat diukur dalam produk perangkat lunak, misalnya kesesuaian untuk tujuan (misalnya penggunaan akhir), rawatan, efisiensi. Beberapa di antaranya agak subyektif atau spesifik domain (misalnya prinsip-prinsip desain GUI yang baik mungkin berbeda lintas budaya atau tergantung pada konteks penggunaan, pikirkan penggunaan militer versus penggunaan konsumen).
Yang saya minati adalah bentuk kualitas yang lebih dalam terkait dengan jaringan (atau grafik) jenis dan keterkaitannya, yaitu jenis apa yang dirujuk oleh masing-masing jenis, apakah ada kelompok interkonektivitas yang teridentifikasi dengan jelas yang berkaitan dengan arsitektur berjenjang, atau sebaliknya apakah ada 'bola' besar referensi tipe (kode 'monolitik'). Juga ukuran masing-masing jenis dan / atau metode (misalnya diukur dalam jumlah kode byte Java atau .Net IL) harus memberikan beberapa indikasi di mana algoritma kompleks besar telah diterapkan sebagai blok kode monolitik alih-alih didekomposisi menjadi lebih mudah dikelola / dikelola. potongan.
Analisis yang didasarkan pada ide-ide semacam itu mungkin dapat menghitung metrik yang setidaknya merupakan proksi kualitas. Ambang batas / titik keputusan yang tepat antara kualitas tinggi dan rendah akan saya curigai bersifat subyektif, misalnya karena dengan pemeliharaan berarti pemeliharaan oleh programmer manusia dan karenanya dekomposisi fungsional harus kompatibel dengan cara kerja pikiran manusia. Karena itu saya bertanya-tanya apakah akan pernah ada definisi kualitas perangkat lunak yang secara matematis murni yang melampaui semua perangkat lunak yang mungkin dalam semua skenario yang mungkin.
Saya juga bertanya-tanya apakah ini ide yang berbahaya, bahwa jika proksi obyektif untuk kualitas menjadi populer maka tekanan bisnis akan menyebabkan pengembang mengejar metrik ini dengan mengorbankan kualitas keseluruhan (aspek kualitas yang tidak diukur oleh proksi).
Cara berpikir lain tentang kualitas adalah dari sudut pandang entropi. Entropi adalah kecenderungan sistem untuk kembali dari keadaan tertata menjadi tidak teratur. Siapa pun yang pernah bekerja di dunia nyata, proyek perangkat lunak skala menengah hingga besar akan menghargai sejauh mana kualitas basis kode cenderung menurun seiring waktu. Tekanan bisnis umumnya menghasilkan perubahan yang berfokus pada fungsionalitas baru (kecuali jika kualitas itu sendiri adalah titik penjualan utama, misalnya dalam perangkat lunak avionik), dan pengikisan kualitas melalui masalah regresi dan fungsi 'kemunculan sepatu' yang tidak cocok dengan perspektif kualitas dan pemeliharaan. Jadi, dapatkah kita mengukur entropi perangkat lunak? Dan jika demikian, bagaimana caranya?