Requirement Engineering
Requirement engineering merupakan dasar untuk pengembangan perangkat lunak. Definisi software requirement atau kebutuhan perangkat lunak berdasarkan standart IEEE 1220-1998 yang merupakan standart aplikasi dan manajemen dari proses engineering sistem adalah: ”Statement that identifies a product or process operational, functional, or design characteristic or constraint, which is unambiguous, teastable or measurable, and necessary for product or process acceptability (by consumers or internal quality assurance guidelines)”
Sedangkan menurut Pamela Zave dalam bukunya yang berjudul Classification of Research Efforts in Requirements Engineering, definisi Requiement 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).
Requirements engineering merupakan fase terdepan dari proses rekayasa perangkat lunak (software engineering), dimana software requirements (kebutuhan) dari user (pengguna) dan customer (pelanggan) dikumpulkan, dipahami dan ditetapkan. Fase ini sangat penting, sebagaimana disepakati oleh para pakar software engineering karena Fakta membuktikan bahwa kebanyakan kegagalan pengembangan software disebabkan karena adaya ketidakkonsistenan (inconsistent), ketidaklengkapan (incomplete), maupun ketidakbenaran (incorrect) dari requirements specification (spesifikasi kebutuhan).
Hasil dari fase requirements engineering didokumentasikan dalam dokumen requirements specification. Dokumen requirements specification ini berisi kesepakatan bersama tentang permasalahan yang ingin dipecahkan antara pengembang dan customer. Persetujuan dokumen requirements specification merupakan titik start menuju proses berikutnya yaitu software design. Prosedur proses negosiasi pengembang dan customer dalam requirements engineering dibagi dalam 3 proses besar yaitu: elicitation, specification, validation and verification. Formula ini kemudian juga dikenal dengan nama The Three Dimensions of Requirements Engineering. Proses requirements engineering ini dilakukan secara iterasi dengan mengakomodasi adanya feedback dari customer (user).
Requirement Elicitation adalah proses mengumpulkan dan memahami requirements dari user. Pada tahap ini, seringkali permasalahan yang muncul adalah perbedaan disiplin ilmu yang dimiliki oleh pengembang software dengan pihak customer. Customer biasanya lebih tahu tentang proses bisnis atau domein dari software yang ingin dikembangkan. Sedangkan pengembang yang mempunyai tugas salah satunya adalah requirement analyst terkadang buta sama sekali terhadap domain atau proses bisnis tersebut. Dalam requirement elicitation, permasalahan tersebut diharapkan dapat diatasi dengan interaksi yang intensif(terus menerus) dan berulang. Proses interaksi tersebut mempunyai beberapa jenis teknik dan metode diantaranya interviewing, brainstorming, prototyping, use case, dsb.
Requirements Specification adalah sebuah tahap pendokumentasian requieremnt elicitation. Dokumen ini berisi tentang fitur dan fungsi yang diinginkan oleh customer. IEEE mengeluarkan standard untuk dokumen spesifikasi requirements yang terkenal dengan nama IEEE Recommended Practice for Software Requirements Specifications [IEEE-830]. Dokumen spesifikasi requirements bisa berisi functional requirements, performance requirements, external interface requirements, design constraints, maupun quality requirements.
Tahap yang terakhir adalah Requirements Validation and Verification. Pada tahap ini dilakukan Validation (validasi), yaitu proses untuk memastikan bahwa requirements yang benar sudah ditulis. Verification (verifikasi), yaitu proses untuk memastikan bahwa requirements sudah ditulis dengan benar. Proses validasi dan verifikasi ini melibatkan customer (user) sebagai pihak yang menilai dan memberi feedback berhubungan dengan requirements.
Sumber :
RomiSatriaWahono.net
Requirement Engineering, Gerald Kotonya & Ian Sommerville.