Yang sering diabaikan, Non-functional Requirement

Ketika terlibat dalam sebuah team project pengembangan perangkat lunak, kita sebagai developer seringkali terlalu focus pada low level detail  sehingga lupa melihat big-picture berupa non-functional requirement seperti performance, scalability, availability dan security.

Performance

Performance bicara tentang seberapa cepat aplikasi tersebut, biasanya kita menggunakan term response time atau latency.Response time adalah waktu yang dibutuhkan antara sebuah request dikirim dan response diterima secara penuh. Seperti ketika kita menekan tombol hyperlink pada sebuah halaman web dan menunggu halaman page tersebut di load secara keseluruhan. Sedangkan latency adalah waktu yang diperlukan sebuah pesan untuk berpindah dalam sebuah system, dari suatu titik ke titik yang lain. Latency mengukur berapa besar waktu ketika response baru saja diterima. Sehingga Response Time akan selalu lebih besar daripada Latency.

Scalability

Scalability pada dasarnya kemampuan software untuk menangani lebih banyak pengguna, request, data dan sebagainya dalam periode waktu yang sama, misalanya berapa request per second.

Availability

Availability adalah tentang bagaimana tingkat ketersediaan (available) software untuk menangani request.  Biasanya diukur menggunakan terminasi “nines”. Seperti 99,99% (four nine) atau 99,999% (five nine).Angka-angka tersebut adalah angka uptime yang menunjukan berapa besar jumlah downtime yang bisa ditoleransi. Contoh, 99.9% (three nines) artinya downtime berkisar hanya 1 menit per harinya yang digunakan untuk jadwal maintenance berkala, upgrade atau memang terjadi kesalahan yang tidak diharapkan.

Security

Security berkaitan dengan segala sesuatu dari authentikasi dan authorisasi sampai pada bagaimana data tersebut disimpan. Authentikasi adalam proses memverifikasi user lewat credential yang dikirim. Sedangkan authorisasi terjadi setelah authentikasi, untuk membatasi resource mana yang boleh diakses oleh user  (file, url dan sebagainya).

Audit

Seringkali kita butuh untuk menyimpan log sebuah event yang bisa membantu kita untuk melakukan pelacakan perubahan sebuah data dari software system, terutama yang menyangkut transaksi yang melibatkan “uang”.  Bisanya sih disebut Audit Trail, dimana kita menyimpan data siapa yang melakukan perubahan, kapan perubahan itu terjadi dan apa saja yang berubah record yang berubah.

 

Flexibility

Flexibility adalah mengenai bagaimana software yang kita bangun memudahkan non-techincal user untuk memodifikasi business rules yang ada pada software. Sebagai contoh, kita bisa memasukkan value-value yang gampang dikonfigurasi di database ataupun diset lewat file configurasi seperti connection string, base url address, smpt server dan sebagainya.

Dan masih ada beberapa hal yang lain lagi seperti Maintability, Legal dan Localization..

 

 

 

 

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google

You are commenting using your Google account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s