Chapter 3 Software Quality Factors 3.1 Pentingnya Definisi Komprehensif dari Persyaratan Ada suatu kebutuhan untuk definisi yang komprehensif dari persyaratan yang akan mencakup semua atribut dari perangkat lunak dan aspek dari penggunaan perangkat lunak, termasuk aspek kegunaan, aspek usabilitas, aspek pemeliharaan, dan sebagainya untuk menjamin kepuasan penuh dari pengguna. Berbagai besar masalah yang berkaitan dengan berbagai atribut dari perangkat lunak dan penggunaan dan pemeliharaan, sebagaimana didefinisikan dalam dokumen persyaratan perangkat lunak, dapat diklasifikasikan ke dalam kelompok konten yang disebut faktor kualitas. Kami mengharapkan tim bertanggung jawab untuk menentukan persyaratan perangkat lunak dari sistem perangkat lunak untuk memeriksa kebutuhan untuk menentukan persyaratan yang dimiliki masing-masing faktor. Dokumentasi dari persyaratan perangkat lunak diharapkan berbeda dari setiap faktor, merupakan cerminan dari perbedaan-perbedaan yang akan ditemukan dalam proyek-proyek perangkat lunak. Dengan demikian, kita dapat berharap bahwa tidak semua faktor bersifat universal "diwakili" dalam semua dokumen persyaratan. 3.2 Klasifikasi persyaratan perangkat lunak ke dalam faktor kualitas perangkat lunak Menurut McCall terdapat 3 aspek penting dari suatu produk software, yaitu : karakteristik operasional, kemampuan perubahan ketika software sudah berjalan, dan kemampuan beradaptasi terhadap lingkungan baru.
Ketiga aspek tersebut dapat dilihat pada gambar berikut :
Mc.CALL’S SOFTWARE QUALITY FACTORS
Berdasarkan gambar diatas, McCall menyediakan beberapa dekripsi yaitu : Product Operation: 1. Correctness (kebenaran), tingkat pemenuhan program terhadap kebutuhan yang dispesifikasikan dan memenuhi tujuan/ misi konsumer 2. Reliability (Keandalan), tingkat kemampuan program yang diharapkan dapat menampilkan fungsi yang dimaksud dengan presisi yang ditetapkan. 3. Efficiency (efisiensi), jumlah sumberdaya yang diproses dan kode yang diperlukan oleh program untuk melaksanakan fungsi tersebut 4. Integrity (Integritas), tingkat kemampuan pengawasan akses terhadap data atau software oleh orangorang tertentu. 5. Usability, usaha yang diperlukan untuk mempelajari, mengoperasikan, menyiapkan masukan dan mengartikan keluaran oleh program Product Revision: 1. Maintainability, usaha yang diperlukan untuk menetapkan dan memperbaiki kesalahan dalam program. 2. Flexibility, usaha yang diperlukan untuk memodifikasi program operasional 3. Testability, usaha yang diperlukan untuk menguji program untuk memastikan bahwa program melaksanakan fungsi yang ditetapkan Product Transition: 1. Portability, usaha yang diperlukan untuk memindahkan program dari hardware/ lingkungan sistem software tertentu ke yang lainnya. 2. Reusability, tingkat kemampuan program/ bagian dari program yang dapat dipakai ulang dalam aplikasi lainnya, berkaitan dengan paket dan lingkup dari fungsi yang dilakukan oleh program 3. Interoperability, usaha yang diperlukan untuk menggabungkan satu sistem dengan yang lainnya. Untuk membentuk pengukuran langsung mengenai faktor-faktor kualitas tidaklah mudah. Terdapat beberapa ukuran (metric) yang didefinisikan dan penilaiannya diukur secara objektif. Pengukuran biasanya dalam bentuk checklist dengan menggunakan skala 0-10. McCall menetapkan beberapa pengukuran yang dapat digunakan, diantaranya : 1. Auditability, kemudahan yaitu penyesuaian terhadap standar yang dapat diperiksa. 2. Accuracy, ketepatan perhitungan dan kontrol 3. Communication commonality, tingkatan dimana interface standar, protokol dan bandwidth digunakan 4. Completenesss, tingkatan dimana implementasi lengkap dari fungsi yang dibutuhkan telah tercapai 5. Conciseness, kepadatan program dalam jumlah baris kode 6. Consistency, penggunaan rancangan dan teknik dokumentasi dalam satu bentuk diseluruh proyek pengembangan software
7. Data commonality, penggunaan struktur dan tipe data standar diseluruh program 8. Error tolerance, kerusakan yang muncul ketika program menemukan kesalahan/kegagalan 9. Execution efficiency, performa run-time suatu program 10. Expandability, tingkatan dimana rancangan arsitektural, data atau prosedur dapat dikembangkan 11. Generality, lingkup aplikasi potensial dari suatu komponen program 12. Hardware
independece,
tingkatan
dimana
software
dipisahkan
dari
hardware
yang
mengoperasikannya 13. Instrumentation,
tingkatan
dimana
pengawasan
program
memiliki
operasi
tersendiri
dan
mengidentifikasikesalahan yang terjadi 14. Modularity, kemandirian fungsional dari suatu komponen program 15. Operability, kemudahan pengoperasian program 16. Security, ketersediaan mekanisme yang mengontrol atau menproteksi program dan data 17. Self-documentation, tingkatan dimana kode sumber menyediakan dokumentasi yang berarti 18. Simplicity, tingkatan dimana program dapat dimengerti tanpa kesulitan 19. Software system independence, tingkatan dimana program mandiri terhadap feature bahasa pemrograman nonstandar, karakteristik sistem operasi, dan batasan-batasan lingkungan lainnya 20. Traceability, kemampuan penelusuran ulang kepada kebutuhan mengenai representasi rancangan atau komponen program yang sesungguhnya 21. Training, tingkatan dimana software membantu menerapkan sistem oleh user yang baru.
Keterhubungan antara faktor-faktor kualitas software dengan ukuran-ukuran (metrics) yang digambarkan dalam tabel :
Faktor-faktor kualitas yang dideskripsikan oleh McCall dan kawan-kawan merepresentasikan sejumlah ”checklist” yang disarankan. Hewlett-Packard telah membuat sejumlah faktor-faktor kualitas yang disingkat ”FURPS”, yaitu Functionality, Usability, Reliability, Performance, Supportability. Dimana atributatribut untuk setiap faktor seperti tersebut dibawah ini : 1. Functionality, diperkirakan dengan mengevaluasi sejumlah feature dan kemampuan program, fungsifungsi umum yang disediakan, dan keamanan terhadap keseluruhan system 2. Usability, diperkirakan dengan mempertimbangkan faktor manusia, keseluruhan estetika, konsistensi, dan dokumentasi 3. Reliability, dievaluasi dengan mengukur frekuensi dan penanganan kesalahan, keakuratan hasil output, jangka waktu antar kesalahan (Mean Time Between Failure), kemampuan untuk recover dari kesalahan dan kemampuan prediksi program 4. Performance, diukur dengan mengevaluasi kecepatan pemrosesan, waktu respon, konsumsi sumberdaya, keluaran dan efisiensi 5. Supportablity, kombinasi kemampuan untuk memperpanjang program, kemampuan adaptasi dan kemampuan layanan sebagai tambahan untuk kemampuan ujicoba, kesesuaian, kemampuan penyusunan (kemampuan untuk mengorganisir dan mengatur elemen-elemen penyusunan software),
kemudahan dengan apa sistem dapat diinstalasi dan kemudahan dengan apa masalah-masalah dapat dilokasikan
Sumber: Software Quality Assurance From Theory To Implementation By Daniel Galin Terjemahan: Dadang Latif, M.Kom