Sistem perangkat keras atau perangkat lunak yang besar, seperti pesawat ruang angkasa, memiliki persyaratan yang kompleks. Persyaratan adalah spesifikasi apa yang harus dibangun, bagaimana sistem harus berperilaku, atau kendala pada proses membangun sistem. Rekayasa persyaratan adalah penggunaan praktik rekayasa yang baik untuk memahami persyaratan sebelum sistem dibangun. Ini dianggap penting karena pemangku kepentingan dari sistem itu sendiri tidak jelas tentang kebutuhan mereka, dan memiliki kebutuhan yang berbeda.
Sebuah sistem yang kompleks dapat memiliki banyak pemangku kepentingan seperti orang-orang yang menugaskan sistem, pengguna yang menggunakan satu atau lebih aspek sistem, dan orang-orang yang mendapat manfaat dari sistem. Ada juga kemungkinan bahwa pemangku kepentingan termasuk anggota masyarakat yang dipengaruhi oleh kekhasan tertentu dari sistem. Pemangku kepentingan memiliki kebutuhan khusus mereka sendiri. Di sisi lain, orang yang mengembangkan sistem mungkin secara teknis mampu, tetapi mungkin tidak sepenuhnya memahami sudut pandang pemangku kepentingan. Rekayasa persyaratan adalah kemampuan penting yang menghubungkan sisi-sisi ini.
Secara formal, aktivitas rekayasa persyaratan dibagi menjadi pengembangan persyaratan dan manajemen persyaratan. Pengembangan kebutuhan terdiri dari elisitasi, analisis, spesifikasi, dan verifikasi. Manajemen persyaratan adalah kontrol dari seluruh proses persyaratan, terutama, menangani setiap perubahan persyaratan. Beberapa praktisi, sebaliknya, hanya menyebut seluruh aktivitas sebagai analisis kebutuhan.
Elitasi persyaratan dari pemangku kepentingan menjadi perlu karena pemangku kepentingan seringkali tidak sepenuhnya menentukan kebutuhan mereka, dan tidak memahami implikasi dari sistem baru. Pemangku kepentingan mungkin tidak terbuka, karena mereka takut akan dampaknya pada pekerjaan mereka saat ini. Dengan demikian, elisitasi adalah proses yang hati-hati dan, mungkin, panjang, di mana empati dan psikologi halus diperlukan. Kita harus berhati-hati agar perbedaan budaya antara pemangku kepentingan yang berbeda serta pengembang dijembatani.
Beberapa teknik digunakan untuk memperoleh persyaratan. Persyaratan dapat diperoleh melalui wawancara individu, pertemuan kelompok, dan mengamati orang pada tugas mereka. Teknik yang dapat memunculkan persyaratan termasuk kelompok fokus, membuat daftar prioritas, membuat prototipe dan membandingkan dengan sistem lain yang beroperasi. Persyaratan untuk memperoleh termasuk kebutuhan bisnis sistem, proses bisnis pengguna saat mereka menggunakan sistem, dan fitur fungsional sistem. Selain itu, persyaratan non-fungsional seperti waktu respons, ketersediaan sistem, dan kemudahan penggunaan perlu diperoleh.
Langkah analisis dalam rekayasa persyaratan membentuk persyaratan tingkat rendah yang akan memenuhi persyaratan tingkat tinggi asli. Ini termasuk membuat model konseptual dan prototipe untuk memastikan kelengkapan persyaratan. Konflik dalam kebutuhan pemangku kepentingan yang berbeda lebih sering ditemukan oleh model dan prototipe daripada dari daftar persyaratan belaka. Karakteristik sistem yang diinginkan seperti keamanan, fleksibilitas, dan pemeliharaan perlu ditambahkan ke persyaratan oleh analis.
Persyaratan ditetapkan dalam dokumen untuk memudahkan pemahaman semua pemangku kepentingan. Di bidang perangkat lunak, dokumen tersebut disebut SRS, yang merupakan singkatan dari Spesifikasi Persyaratan Perangkat Lunak. Persyaratan diverifikasi oleh pemangku kepentingan utama. Ini terutama melalui presentasi dan dokumen spesifikasi, tetapi juga terkadang dengan kasus uji yang sesuai dengan persyaratan.
Rekayasa persyaratan terutama merupakan komunikasi, aktivitas daripada teknis. Ini membutuhkan keterampilan multi-disiplin. Rekayasa persyaratan membantu pemangku kepentingan dan pengembang menyelesaikan konflik dan menyatukan mereka dalam tujuan mereka; Ini mengarah pada sistem yang kuat.