Pengembangan perangkat lunak adalah suatu proses yang bertujuan untuk menghasilkan sistem atau produk perangkat lunak yang sesuai dengan kebutuhan dan harapan pelanggan atau pengguna. Proses ini melibatkan berbagai tahapan, mulai dari analisis dan definisi kebutuhan, perancangan sistem dan perangkat lunak, implementasi dan pengujian unit, integrasi dan pengujian sistem, hingga operasi dan pemeliharaan.
Salah satu aspek penting dalam proses pengembangan perangkat lunak adalah kualitas perangkat lunak. Kualitas perangkat lunak adalah derajat di mana sistem, komponen, atau proses memenuhi kebutuhan atau harapan pelanggan atau pengguna. Kualitas perangkat lunak dapat dibagi menjadi dua jenis, yaitu kualitas internal dan kualitas eksternal.
Kualitas internal adalah atribut dari perangkat lunak yang tidak secara langsung berhubungan dengan pengguna, tetapi berpengaruh pada kemudahan pengembangan, pemeliharaan, dan kinerja perangkat lunak. Contoh kualitas internal adalah modularitas, kohesi, kopling, kompleksitas, kejelasan, kelengkapan, konsistensi, dan lain-lain.
Kualitas eksternal adalah atribut dari perangkat lunak yang berhubungan dengan pengguna, baik secara langsung maupun tidak langsung. Contoh kualitas eksternal adalah fungsionalitas, keandalan, kegunaan, efisiensi, portabilitas, dan lain-lain.
Untuk menjamin kualitas perangkat lunak yang dihasilkan, diperlukan suatu spesifikasi kebutuhan perangkat lunak (SRS) yang jelas dan lengkap. SRS adalah dokumen yang berisi persyaratan fungsional dan non-fungsional dari sistem atau produk perangkat lunak yang akan dikembangkan.
Persyaratan fungsional adalah persyaratan yang menggambarkan fungsi atau layanan yang harus disediakan oleh sistem atau produk perangkat lunak. Contoh persyaratan fungsional adalah sistem harus dapat melakukan pendaftaran akun baru, sistem harus dapat menampilkan daftar buku yang tersedia, sistem harus dapat mengirim email konfirmasi pemesanan buku, dan lain-lain.
Persyaratan non-fungsional adalah persyaratan yang menggambarkan properti atau karakteristik kualitas dari sistem atau produk perangkat lunak. Contoh persyaratan non-fungsional adalah sistem harus dapat menangani 1000 pengguna secara bersamaan, sistem harus memiliki waktu respon kurang dari 5 detik, sistem harus memiliki tingkat keamanan tinggi terhadap serangan hacker, dan lain-lain.
Properti persyaratan kualitas dalam pendekatan pengembangan perangkat lunak adalah suatu ukuran atau standar yang digunakan untuk mengevaluasi seberapa baik sistem atau produk perangkat lunak memenuhi persyaratan non-fungsional yang telah ditetapkan. Properti persyaratan kualitas dapat bervariasi tergantung pada jenis dan konteks dari sistem atau produk perangkat lunak yang dikembangkan.
Beberapa contoh properti persyaratan kualitas dalam pendekatan pengembangan perangkat lunak adalah sebagai berikut:
- Kegunaan (usability) adalah kemudahan pengguna dalam menggunakan sistem atau produk perangkat lunak untuk tujuan tertentu. Properti kegunaan dapat diukur dengan menggunakan metode seperti tes kegunaan (usability testing), survei kepuasan pengguna (user satisfaction survey), analisis heuristik (heuristic analysis), dan lain-lain.
- Keandalan (reliability) adalah kemampuan sistem atau produk perangkat lunak untuk berfungsi dengan benar dan konsisten dalam kondisi normal maupun abnormal. Properti keandalan dapat diukur dengan menggunakan metode seperti pengujian kesalahan (fault testing), analisis kegagalan (failure analysis), pengukuran waktu henti (downtime measurement), dan lain-lain.
- Efisiensi (efficiency) adalah kemampuan sistem atau produk perangkat lunak untuk menggunakan sumber daya secara optimal, seperti memori, prosesor, bandwidth, dan lain-lain. Properti efisiensi dapat diukur dengan menggunakan metode seperti pengujian kinerja (performance testing), analisis beban (load analysis), pengukuran waktu eksekusi (execution time measurement), dan lain-lain.
- Portabilitas (portability) adalah kemampuan sistem atau produk perangkat lunak untuk beradaptasi dengan lingkungan yang berbeda, seperti sistem operasi, platform, perangkat keras, dan lain-lain. Properti portabilitas dapat diukur dengan menggunakan metode seperti pengujian kompatibilitas (compatibility testing), analisis migrasi (migration analysis), pengukuran ketergantungan (dependency measurement), dan lain-lain.