Rekayasa Persyaratan
Rekayasa persyaratan adalah disiplin ilmu untuk menemukan, menganalisis, mendokumentasikan, memvalidasi, dan mengelola apa yang harus dilakukan oleh sistem perangkat lunak serta batasan-batasan di mana sistem tersebut harus beroperasi.
Definition
Rekayasa persyaratan adalah proses sistematis untuk mengumpulkan, menganalisis, menspesifikasikan, memvalidasi, dan mengelola layanan yang harus disediakan oleh sistem perangkat lunak serta batasan-batasan pada operasi dan pengembangannya.
Scope
Area ini mencakup elisitasi kebutuhan pemangku kepentingan; analisis dan negosiasi tujuan yang bertentangan; perbedaan antara persyaratan fungsional dan non-fungsional (kualitas); teknik spesifikasi mulai dari pernyataan bahasa alami hingga model formal; validasi melalui tinjauan dan pembuatan prototipe; serta pengelolaan perubahan persyaratan dan ketertelusuran di seluruh siklus hidup.
Sub-topics
Core questions
- Bagaimana kebutuhan nyata pemangku kepentingan ditemukan dan dihilangkan ambiguitasnya?
- Bagaimana persyaratan fungsional dan non-fungsional harus dispesifikasikan secara tepat namun mudah dipahami?
- Bagaimana persyaratan yang bertentangan dideteksi, dinegosiasikan, dan diselesaikan?
- Bagaimana persyaratan divalidasi dan dijaga konsistensinya saat berubah?
Key theories
- Persyaratan fungsional versus non-fungsional
- Persyaratan dibagi menjadi pernyataan fungsional tentang apa yang harus dilakukan sistem dan batasan non-fungsional (kualitas) seperti kinerja, keamanan, dan kegunaan yang seringkali melintasi seluruh sistem dan mendorong arsitektur.
- Rekayasa persyaratan berorientasi tujuan
- Sistem dianalisis dalam hal tujuan pemangku kepentingan yang disempurnakan menjadi sub-tujuan dan dioperasionalkan menjadi persyaratan, memberikan alasan, deteksi konflik, dan ketertelusuran dari maksud tingkat tinggi ke fungsi sistem.
Clinical relevance
Kesalahan persyaratan termasuk di antara cacat yang paling mahal karena menyebar ke desain dan kode; rekayasa persyaratan yang ketat mengurangi pengerjaan ulang, menyelaraskan perangkat lunak yang dikirimkan dengan kebutuhan pemangku kepentingan, dan menyediakan dasar untuk pengujian penerimaan dan perjanjian kontraktual.
Evidence & guidelines
ISO/IEC/IEEE 29148 menspesifikasikan proses rekayasa persyaratan dan isi spesifikasi persyaratan, dan area pengetahuan Persyaratan Perangkat Lunak SWEBOK menyediakan referensi konsensus.
History
Rekayasa persyaratan berkembang dari metode analisis terstruktur tahun 1970-an menjadi sub-disiplin yang diakui pada tahun 1990-an, ditandai dengan konferensi (RE) dan jurnal khusus, munculnya pemodelan berbasis tujuan dan skenario, serta peningkatan perhatian terhadap persyaratan non-fungsional dan negosiasi pemangku kepentingan.
Debates
- Persyaratan awal versus persyaratan yang muncul
- Praktik berbasis rencana cenderung menspesifikasikan persyaratan secara menyeluruh sebelum konstruksi, sementara praktik tangkas memperlakukan persyaratan sebagai sesuatu yang muncul dan disempurnakan melalui iterasi; pertukaran ini bergantung pada volatilitas, batasan kontraktual, dan biaya perubahan yang terlambat.
Key figures
- Axel van Lamsweerde
- Bashar Nuseibeh
- Steve Easterbrook
- Michael Jackson
Related topics
Seminal works
- vanlamsweerde2009
- nuseibeh2000
- sommerville2015
Frequently asked questions
- Mengapa kesalahan persyaratan sangat mahal?
- Persyaratan yang salah dipahami atau hilang seringkali baru ditemukan terlambat, setelah desain dan kode dibangun di atasnya, sehingga memperbaikinya memerlukan pembongkaran pekerjaan hilir; studi empiris secara konsisten menunjukkan bahwa biaya perbaikan cacat meningkat tajam semakin lambat ditemukan.
- Apakah proyek tangkas melakukan rekayasa persyaratan?
- Ya, tetapi dengan cara yang berbeda. Proyek tangkas mengumpulkan, menganalisis, dan memvalidasi persyaratan secara berkelanjutan melalui cerita pengguna, penyempurnaan backlog, dan umpan balik yang sering daripada menghasilkan dokumen spesifikasi besar di awal.