Tugas utama dari seorang programmer adalah tentunya menyusun sebuah kode-kode bahasa pemrograman agar nantinya bisa disusun untuk menjadi sebuah program komputer yang handal.Namun sebelum menyusun kode-kode tersebut tentunya seorang programmer harus mengetahui kira-kira program seperti apa yang diinginkan oleh klien. Untuk itu seorang programmer handal hendaknya mengetahui konsep yang dinamakan dengan Rekayasa Perangkat Lunak. Karena dengan konsep rekayasa perangkat lunak ini merupakan dasar teori untuk bagaimana rnenyusun dan membuat sebuah software agar sesuai dengan spesifikasi kebutuhan sistem. Buku ini ditujukan bagi para mahasiswa strata-1 maupun strata-2 yang menekuni bidang rekayasa perangkat lunak, khususnya rekayasa kebutuhan perangkat lunak. Akan tetapi buku ini juga dapat menjadi bahan pengayaan bagi setiap perekayasa sistem yang hendak memahami dan menguasai metode, teknologi, kerangka kerja, ataupun aplikasi yang terkait dengan spesifikasi kebutuhan. Buku ini ditulis ke dalam sembilan bagian. Bagian pertama dari buku ini rnemberikan gambaran dasar mengenai rekayasa kebutuhan. Bagian kedua memberikan perspektif tentang pihak-pihak yang mungkin berkepentingan terhadap proses spesifikasi kebutuhan yang baik. Bagian ketiga menjelaskan tentang teknis skenario sebagai salah satu teknik yang banyak dipakai dalam proses pengumpulan kebutuhan. Bagian empat, lima, enam,dan delapan menjelaskan sub-sub proses di dalam rekayasa kebutuhan. Bagian ketujuh mengulas mengenai kebutuhan yang baik berdasarkan kepada acuan SMART Requirements. Bagian yang terakhir ditutup dengan penjelasan dan ulasan terkait dengan manajemen kebutuhan.