5 Kebutuhan Non-Fungsional dalam Sistem Perangkat Lunak

Pendahuluan

Dalam dunia pengembangan perangkat lunak, kebutuhan non-fungsional sering kali tidak terlihat secara langsung tetapi memiliki dampak besar pada kualitas aplikasi. Ketika membangun perangkat lunak, kebutuhan non-fungsional sering kali luput dari perhatian. Padahal, aspek ini menjadi elemen kunci yang menentukan apakah sistem dapat bekerja sesuai ekspektasi pengguna. Pada tulisan ini, kita akan membahas secara mendalam tentang apa saja kebutuhan non-fungsional? Yuk, kita bahas! 

Apa itu kebutuhan Non-Fungsional?

Kebutuhan non-fungsional adalah elemen penting dalam pengembangan perangkat lunak yang menentukan karakteristik sistem seperti keandalan, keamanan, dan kinerja.

1. Maintainability

Maintainability terkait dengan pelacakan dan perbaikan kesalahan dalam perangkat lunak operasional.

  • Modularity

Komponen diskrit yang tidak berdampak pada komponen lain selama perubahan.

  • Analysability

Menganalisis dampak perubahan yang diinginkan atau mengidentifikasi kekurangan atau alasan kegagalan.

  • Modifialibility

Kapasitas untuk memodifikasi produk atau sistem secara efektif dan efisien tanpa menurunkan kualitas atau menimbulkan cacat baru.

  • Extensibility

Upaya yang diperlukan untuk mengimplementasikan ekstensi.

  • Reusability

Kapasitas modul atau komponen yang dapat digunakan kembali dalam sistem perangkat lunak lain.

  • Testability

Kapasitas untuk membangun kriteria pengujian dengan efektif dan melakukan pengujian untuk memenuhi kriteria tersebut.

2. Portability (Portabilitas)

Portabilitas adalah kemampuan sistem untuk berjalan dilingkungan komputasi yang berbeda.

  • Adaptability / Kemampuan untuk beradptasi

Kapasitas produk atau sistem untuk diadopsi dalam perangkat keras, perangkat lunak, atau lingkungan operasional lainnya yang berbeda.

  • Installability / Kemampuan untuk dipasang

Kapasitas suatu produk untuk berhasil dipasang atau dihapus instalasinya di lingkungan apa pun.

  • Replaceability / Kemampuan untuk diganti

Kapasitas untuk mengganti suatu produk dengan produk perangkat lunak lain di lingkungan yang sama.

3. Usabillity (Kegunaan)

Kegunaan adalah fitur yang membuat sistem menjadi ramah pengguna dan mencapai tujuan yang ditentukan dengan efisiensi, kepuasan, dan efektivitas.

  • Learnability / Kemampuan untuk dipelajari

Kapasitas untuk mempelajari penggunaan suatu sistem dengan cara yang efisien dengan kepuasan pengguna sepenuhnya.

  • Understandbility / Kemampuan untuk dipahami

Kemampuan untuk mengenali apakah perangkat lunak tersebut sesuai dengan kebutuhan pengguna.

  • Operability / Kemudahan untuk dioperasikan

Kapasitas suatu produk yang membuatnya mudah dioperasikan dan dikendalikan.

  • Attractiveness / Ketertarikan

Antarmuka pengguna membantu interaksi yang memuaskan dan menyenangkan untuk digunakan.

4. Efficiency (Efisiensi)

Jumlah sumber daya komputasi dan kode yang diperlukan untuk menjalankan suatu fungsi.

  • Time Behavior / Perilaku waktu

Kapasitas suatu produk saat menjalankan fungsinya untuk memenuhi persyaratan mengenai waktu respons, throughput, dan waktu pemrosesan.

  • Resource Utilization / Pemanfaatan sumber daya

Saat menjalankan fungsinya, jumlah dan jenis sumber daya yang digunakan oleh suatu produk atau sistem untuk memenuhi persyaratan.

5. Reliability (Keandalan)

Kapasitas suatu produk untuk menjalankan fungsi tertentu selama jangka waktu tertentu, dalam kondisi tertentu.

  • Availability / Ketersediaan

Kapasitas suatu produk atau komponen untuk dapat diakses dan beroperasi pada saat digunakan.

  • Fault Tolerance / Toleransi kesalahan

Kapasitas suatu produk untuk dioperasikan sebagaimana mestinya meskipun terdapat kesalahan perangkat keras atau perangkat lunak.

  • Recoverability / Kemampuan pemulihan

Kapasitas suatu produk untuk memulihkan data dan memulihkan status sistem selama terjadi gangguan atau kegagalan.

Reference:

Najia Saher, Fauziah Baharom, dan Rohaida Romli, "Identifikasi Karakteristik dan Sub-Karakteristik Keberlanjutan sebagai Persyaratan Non-Fungsional untuk Manajemen Perubahan Persyaratan dalam Agile", Jurnal Internasional Penelitian Ilmiah & Teknologi Volume 9, Edisi 03, Maret 2020









Komentar

Postingan populer dari blog ini

Mengenal Metodologi Pengembangan Perangkat Lunak Model Proses Agile: Extreme Programming, Scrum, Kanban, Lean, Addaptive Innovation

Mengembangkan Perangkat Lunak dengan Metode DSDM: Analisis Dua Artikel

Metode Pengumpulan Data: Dari Survei hingga Storyboards