๐ฏ 1. Pengertian Rekayasa Kebutuhan
7
Rekayasa Kebutuhan (Requirement Engineering) adalah proses sistematis dalam Rekayasa Perangkat Lunak untuk mengidentifikasi, menganalisis, mendokumentasikan, dan mengelola kebutuhan sistem perangkat lunak.
Menurut Ian Sommerville, requirement engineering adalah aktivitas yang memastikan sistem memenuhi kebutuhan pengguna dan stakeholder.
๐ก Narasi:
Tahap ini merupakan fondasi utama dalam pengembangan perangkat lunak. Kesalahan dalam memahami kebutuhan pengguna akan menyebabkan kegagalan sistem, meskipun implementasi teknisnya sempurna.
๐ฏ 2. Tujuan Rekayasa Kebutuhan
| Tujuan | Penjelasan |
|---|---|
| Memahami kebutuhan user | Menangkap kebutuhan nyata pengguna |
| Mendefinisikan sistem | Menentukan batasan sistem |
| Menghindari kesalahan | Mengurangi revisi di tahap akhir |
| Dokumentasi | Sebagai acuan pengembangan |
| Komunikasi | Menjembatani user dan developer |
๐ก Narasi:
Tujuan utama adalah memastikan โapa yang dibangunโ sesuai dengan โapa yang dibutuhkanโ.
๐ 3. Proses Rekayasa Kebutuhan
8
๐ Tahapan Utama:
- Elicitation (Pengumpulan Kebutuhan)
- Analysis (Analisis Kebutuhan)
- Specification (Spesifikasi Kebutuhan)
- Validation (Validasi Kebutuhan)
- Management (Manajemen Kebutuhan)
๐ก Narasi:
Proses ini bersifat iteratifโkebutuhan dapat berubah dan perlu diperbarui sepanjang proyek.
๐ 4. Tahap 1: Elicitation (Pengumpulan Kebutuhan)
7
๐ Teknik:
- Wawancara
- Kuesioner
- Observasi
- Workshop / Focus Group
- Studi dokumen
๐ก Narasi:
Pengumpulan kebutuhan harus melibatkan stakeholder agar sistem benar-benar relevan dengan kebutuhan nyata.
๐ 5. Tahap 2: Analysis (Analisis Kebutuhan)
7
๐ Aktivitas:
- Mengelompokkan kebutuhan
- Mengidentifikasi konflik
- Prioritas kebutuhan
- Membuat model (Use Case, DFD)
๐ก Narasi:
Pada tahap ini, kebutuhan yang kompleks disederhanakan agar mudah dipahami dan diimplementasikan.
๐งพ 6. Tahap 3: Specification (Spesifikasi Kebutuhan)
7
๐ Output:
- Dokumen SRS (Software Requirement Specification)
๐ Isi SRS:
- Deskripsi sistem
- Functional Requirements
- Non-Functional Requirements
- Use Case
- Diagram sistem
๐ก Narasi:
Dokumen SRS menjadi โkontrakโ antara developer dan stakeholder.
โ 7. Tahap 4: Validation (Validasi Kebutuhan)
8
๐ Tujuan:
- Memastikan kebutuhan benar
- Tidak ambigu
- Konsisten
- Dapat diimplementasikan
๐ก Narasi:
Validasi memastikan bahwa sistem yang dibangun tidak melenceng dari kebutuhan awal.
๐ง 8. Tahap 5: Requirement Management
7
๐ Aktivitas:
- Mengelola perubahan kebutuhan
- Versioning
- Tracking requirement
๐ก Narasi:
Perubahan kebutuhan adalah hal yang normalโyang penting adalah bagaimana mengelolanya.
๐ 9. Jenis-Jenis Kebutuhan
๐น Functional Requirement
- Menjelaskan fungsi sistem
- Contoh: Login, Input data
๐น Non-Functional Requirement
- Menjelaskan kualitas sistem
- Contoh: Keamanan, performa
๐ 10. Perbandingan Functional vs Non-Functional
| Aspek | Functional | Non-Functional |
|---|---|---|
| Fokus | Fungsi sistem | Kualitas sistem |
| Contoh | Login user | Kecepatan sistem |
| Output | Use case | Performance metrics |
๐ง 11. Teknik Pemodelan Kebutuhan
๐ Tools:
- Use Case Diagram
- Data Flow Diagram (DFD)
- Activity Diagram
๐ก Narasi:
Pemodelan membantu memvisualisasikan kebutuhan agar lebih mudah dipahami.
โ ๏ธ 12. Tantangan dalam Requirement Engineering
| Tantangan | Penjelasan |
|---|---|
| Requirement tidak jelas | User tidak tahu kebutuhannya |
| Perubahan kebutuhan | Sering terjadi |
| Komunikasi buruk | Salah interpretasi |
| Kompleksitas sistem | Sulit dianalisis |
๐งช 13. Studi Kasus Sederhana
๐ Sistem Perpustakaan:
Functional:
- Login user
- Pinjam buku
Non-Functional:
- Sistem cepat
- Data aman
๐ 14. Ringkasan Proses Requirement Engineering
| Tahap | Output |
|---|---|
| Elicitation | Data kebutuhan |
| Analysis | Model sistem |
| Specification | SRS |
| Validation | Kebutuhan valid |
| Management | Update kebutuhan |
๐ 15. Best Practice
- Libatkan stakeholder
- Gunakan dokumentasi jelas
- Lakukan validasi berkala
- Gunakan tools modern
- Komunikasi aktif
๐ฏ 16. Kesimpulan
- Requirement engineering adalah tahap paling krusial dalam RPL
- Menentukan keberhasilan proyek
- Bersifat iteratif
- Membutuhkan komunikasi yang baik
๐ก Narasi Penutup:
Mahasiswa harus memahami bahwa software yang baik bukan hanya soal coding, tetapi tentang memahami kebutuhan pengguna dengan tepat.
๐ 17. Latihan / Diskusi
- Apa itu requirement engineering?
- Jelaskan tahapan requirement engineering!
- Apa perbedaan functional dan non-functional requirement?
- Mengapa validasi penting?
- Berikan contoh kebutuhan sistem sederhana!
๐ 18. Tugas Praktik
- Buat dokumen SRS sederhana
- Analisis kebutuhan sistem kampus
- Buat Use Case Diagram