Functional dan Non Functional Requirements
Functional dan non functional requirements engineering merupakan salah satu tahap paling penting dalam kegiatan proyek perangkat lunak. SR dibuat oleh klien yang memesan software. Secara umum prosesnya adalah diawali dengan client menuliskan requirement sesuai kebutuhannya, lalu tim pengembang menganalisa requirement tersebut, setelah adanya persetujuan dari dua belah pihak, pengembangan terharap project nya pun dimulai, dengan kata lain requirement adalah Gambaran dari layanan dan Batasan bagi sistem yang akan dibangun. Dengan kata lain requirement ini adalah sebuah Gambaran dari apa yang akan disediakan di suatu sistem dan apa batasannya atau bisa berupa definisi matematis fungsi dari sistem. Dan requirement engineering yaitu menemukan, menganalisa, mendokumentasikan layanan dan Batasan dari sistem.
Hasil Requirement akan Digunakan untuk :
- Dasar penawaran dari suatu kontrak, dalam hal ini segala item yang akan digunakan nanti harus terbuka agar mudah untuk memasukkan ke dalam Pembangunan perangkat lunaknya nanti.
- Dasar kontrak, harus didefinisikan secara detail, sehingga apa yang akan dilakukan oleh pengembang menjadi jelas. Requirement engineering ini suatu tahap yang sangat penting, dimana tahap ini informasi serta Batasan perangkat lunak yang akan di bangun akan digali. Sehingga dapat menjadi dasar tim untuk membangun perangkat lunak.
Cara Mendapatkan Requirement
- Interviews
- Questionnaires
- Observation
- Searching
Macam – Macam Requirement
- User Requirement : berisi tentang layanan yang disediakan sistem serta Batasan, dan diupayakan disajikan secara jelas agar mudah dipahami
- System Requirement : Kumpulan layanan/kemampuan sistem dan Batasan yang ditulis secara detail, sering dikenal dengan spesifikasi fungsional.
- A software design Specification : Gambaran abstrak dari rancangan software yang menjadi dasar bagi perancangan dan implementasi yang lebih detail.
Masalah – Masalah yang mungkin terjadi dalam Requirement :
- Efek dari sistem baru terhadap organisasi sulit diantisipasi.
- Seringnya ada perbedaan pandangan user menjadi beda pada requirement nya dan prioritasnya.
- Adanya berebeda pandangan antara end – user dan organisasi yang membayar sistem tersebut.
- Untuk menjelaskan requirement membutuhkan prototype.
- Adanya perbedaan Bahasa alami.
Kategori Software System Requirement
- Functional Requirement : merupakan penjelasan tentang layanan yang perlu disediakan oleh sistem, bagaimana sistem menerima dan mengolah masukan, dan bagaimana sistem mengatasi situasi tertentu. Selain itu kadang pula secara jelas menentukan yang tidak dikerjakan oleh sistem, functional requirement menggambarkan system Requirement secara detail seperti input, ouput, dan pengecualian yang berlaku.
Masalah yang kemungkinan muncul dalam penyusunan Functional Requirement :
- Diinterpretasikan atau diartikan berbeda oleh user dan developer
- Hasil interpretasi sering tidak menjawab kebutuhan dari klien
- Sulitnya untuk konsisten dalam sistem yang besar karena kerumitan di dalam sistemynya.
- Sangat diperlukan mengenai analisis yang menyeluruh agar mengurangi kesalahan dari sistem.
- Non Functional Requirement : secara umum ini adalah Batasan pada pelayanan atau fungsi yang disediakan oleh sistem, termasuk di dalamnya ada Batasan waktu, batasan waktu pembangunan, standar tertentu. Karena ini berkaitan dengan kebutuhan sistem secara menyeluruh. Contoh kebutuhan jenis ini adalah kecepatan akses, keamanan pemrograman yang digunakan, OS yang digunakan.
Product Requirement ini bisa mencakup banyak aspek seperti keandalan sistem, kecepatan dan kemudahan untuk digunakan. Sementara itu, Organisational Requirement mencakup standar, bahasa pemrograman, dan metode perancangan yang akan digunakan. Sedangkan External Requirement mencakup masalah etika penggunaan, interoperabilitas dengan sistem lain, legalitas, dan privasi.Domain Requirement : Berasa dari domain aplikasi sistem, misalnya karena sebuah masalah hak cipta maka segala hal dalam sistem tidak bisa digunakan secara bebas oleh orang yang tidak berhak atas sistem tersebut.
- User Requirement : menggambarkan functional dan non functional requirement yang dapat dipahami oleh pengguna yang tidak memiliki latar belakang teknis yang cukup. Ini akan menjelaskan perilaku luar dari sistem, tidak secara teknis, karena itu perlu menggunakan bahasa almi atau bahasa yang sederhana.
- System Requirement : merupakan deskripsi sistem yang lebih detail dari user requirement. Requirement ini bisa berlaku sebagai kontrak Pembangunan sistem dan bisa terdiri dari macam – macam model seperti model object atau model data flow.