Requirement Engineering
Apa itu Requirement Engineering ?
banyak dari kita yang mungkin belum mengetahui apa itu Requirement Engineering dan bertanya-tanya apa itu ?, mungkin sebagian akan mengira itu merupakan suatu jurusan di fakultas teknik. Maka untuk menghindari salah persepsi ini kita akan mulai mengenal Requirements engineering. Requirements engineering adalah fase terdepan dari proses rekayasa perangkat lunak (software engineering), dimana software requirements (kebutuhan) dari user (pengguna) dan customer (pelanggan) dikumpulkan, dipahami dan ditetapkan. Para pakar software engineering sepakat bahwa requirements engineering adalah suatu pekerjaan yang sangat penting. Fakta membuktikan bahwa kebanyakan kegagalan pengembangan software disebabkan karena adanya ketidakkonsistenan (inconsistent), ketidaklengkapan (incomplete), maupun ketidakbenaran (incorrect) dari requirements specification (spesifikasi kebutuhan). Sebenarnya masih banyak lagi definisinya yang diungkapkan oleh para peneliti tentang requirements engineering. Satu definisi yang cukup jelas dan diterima secara umum adalah yang diuraikan oleh Pamela Zave, yang menyatakan bahwa Requirements engineering adalah cabang dari software engineering yang mengurusi masalah yang berhubungan dengan: tujuan (dunia nyata), fungsi, dan batasan-batasan pada sistem software. Termasuk hubungan faktor-faktor tersebut dalam menetapkan spesifikasi yang tepat dari suatu software, proses evolusinya baik berhubungan dengan masalah waktu maupun dengan software lain (dalam satu famili).
Tipe Requirements Engineering
Requirements Engineering ini umumnya akan dibedakan menjadi dua, yaitu :
User requirements
Pernyataan dalam bahasa natural dengan diagram dari layanan system yang diberikan dan kendala operasional. Dibuat untuk pelanggan
System requirements
Sebuah dokumen terstruktur yang menetapkan deskripsi rinci dari fungsi sistem, layanan dan kendala operasional. Mendefinisikan apa yang harus dilaksanakan sehingga dapat menjadi bagian dari kontrak antara klien dan kontraktor.
Pada kedua tipe Requirements Engineering ini memiliki beberapa perbedaan seperti pada kedetailan Informasi, Target pengguna, dan Bentuk informasi yang dapat dilihat pada tabel dibawah ini :
|
User Requirement |
System Requirement |
Kedetailan Informasi |
Tidak terlalu detail |
Lebih detail |
Target Pengguna |
Pengguna sistem yang tidak mempunyai pengetahuan teknik yang detail |
Developer atau enthusias |
Bentuk Informasi |
Bahasa natural dan diagram sederhana yang menjelaskan sistem |
Model sistem |
Apa itu User Requirement ?
User Requirement seringkali didefinisikan dengan penggunaan bahasa natural, table, dan diagram sehingga dapat mencakup berbagai kalangan (tidak dibutuhkan kemampuan teknis untuk dapat mengerti). User Requirement ini harus menggambarkan kebutuhan fungsional dan non-fungsional sebaik mungkin sehingga dapat dimengerti oleh pengguna yang tidak memiliki kemampuan teknis. User Requirement ini memiliki beberapa permasalahan yang timbul dari penggunaan bahasa natural, Seperti :
Seringkali ditemukan masalah saat digunakan untuk menyampaikan suatu informasi yang berjumlah banyak dan dituntut untuk memiliki presisi yang tinggi malah berakibat dokumen sulit dibaca.
Sering adanya bias antara Kebutuhan fungsional dan non-fungsional yang seringkali campur aduk.
Pada penggunaan bahasa natural ini sering adanya kebutuhan yang berbeda dinyatakan bersama-sama.
Fungsi Requirement Engineering
Setelah berbagai penjelasan yang sudah kita bahas mungkin anda akan bertanya-tanya, jadi apa sih sebenarnya fungsi Requirement Engineering, baik kita akan bahas sekarang fungsinya. Terdapat beberapa fungsi dari Requirement Engineering, yaitu :
● Sebagai kesepakatan antara developer, customer dan pengguna akhir akan kebutuhan yang harus dipenuhi
● Untuk menyediakan dasar yang akurat bagi perancangan perangkat lunak
● Untuk menyediakan referensi bagi dilakukannya validasi Perangkat Lunak
Tahapan Proses dalam Requirement Engineering
Requirement Engineering terdiri dari beberapa tahapan proses, yakni :
1. Penggalian dan analisis kebutuhan (software requirement elicitation and analysis)
2. Spesifikasi kebutuhan (software requirement specification)
3. Validasi & verifikasi kebutuhan (software requirement validation and verification)
4. Manajemen kebutuhan (software requirement management)
Inception
Tahapan pertama Inception dimana dalam tahapan ini pengembang menanyakan pertanyaan yang berkaitan dengan :
Pemahaman dasar tentang domain masalah
Pengguna yang menginginkan solusi
Sifat solusi yang diinginkan
Tata cara komunikasi dan kolaborasi antara pengembang dan calon pengguna
Pada tahapan ini memiliki beberapa tujuan seperti :
Mengidentifikasi stakeholder (persona)
Mengenali berbagai macam sudut pandang
Mengawali kolaborasi antara pengembang dan pengguna
Mengawali proses komunikasi
Elicitation
Kemudian pada tahap kedua ini berupa proses elisitasi (elicitation) sangat sulit karena beberapa alasan, seperti :
● Permasalahan terhadap cakupan system
● Pemahaman masalah, apa yang diinginkan, domain permasalahan, bagaimana system digunakan, lingkungan system
● Ketidakpastian, karena kebutuhan selalu berubah
❖ Elisitasi terdiri dari 2 (dua) kegiatan
⮚ Collaborative requirements gathering
● Meeting, brainstorming dll
⮚ Quality function deployment
● Translasi dari kebutuhan pengguna ke kebutuhan sistem (lebih teknis)
● Mengidentifikasi level-level kebutuhan (Normal, Expected, dan Exciting Requirement
Tugas
Membuat diagram use case untuk [1] sistem pada web site toko online
Sumber :
https://repository.dinus.ac.id/docs/ajar/Rpl_5_Requirements_Engineering.pdf