Rekayasa Kebutuhan (Requirements Engineering)
Di zaman sekarang penggunaan software sangatlah umum. Tidak dapat dipungkiri lagi, hal tersebut sudah menjadi kebutuhan dizaman sekarang. Kali ini saya akan menjelaskan tentang rekayasa kebutuhan, lebih tepatnya kebutuhan software.
I. Penjelasan dan Contoh Requirement Engineering
Requirement Engineering adalah sekumpulan informasi yang menjelaskan persyaratan yang harus dipenuhi oleh perangkat lunak atau sistem komputer. Dalam pengembangan perangkat lunak, software requirement diperlukan untuk memandu pengembangan perangkat lunak berdasarkan kebutuhan pengguna dan sistem.
Berikut ini adalah penjelasan dan contoh beberapa jenis software requirement:
1. User Requirement (Kebutuhan Pengguna)
User Requirement adalah kebutuhan fungsional dan nonfungsional yang harus dipenuhi oleh perangkat lunak untuk memenuhi kebutuhan pengguna. Persyaratan pengguna didasarkan pada kebutuhan bisnis dan kebutuhan pengguna akhir. Contoh user requirement:
a.Perangkat lunak harus mudah digunakan dan intuitif bagi pengguna akhir.
b. Perangkat lunak harus mampu mengolah data dengan cepat dan akurat.
c. Perangkat lunak harus dapat berjalan di berbagai sistem operasi, seperti Windows, MacOS, dan Linux.
2. System Requirement (Kebutuhan Sistem)
System requirement adalah kebutuhan software yang terkait dengan infrastruktur teknologi dan lingkungan operasi di mana perangkat lunak akan dijalankan. Berikut adalah contoh System Requirement:
a. Perangkat lunak harus dapat beroperasi di lingkungan jaringan yang aman.
b. Perangkat lunak harus dapat diinstal dan dijalankan di server dengan spesifikasi minimum tertentu, seperti RAM, prosesor, dan penyimpanan yang memadai.
c. Perangkat lunak harus dapat memenuhi persyaratan privasi dan keamanan data, seperti enkripsi dan autentikasi pengguna.
3. Functional Requirement (Kebutuhan Fungsi)
Persyaratan fungsional adalah kebutuhan yang terkait dengan fitur perangkat lunak dan fungsionalitas yang harus dipenuhi. Berikut adalah contoh dari persyaratan fungsional:
a. Perangkat lunak harus dapat menyimpan data pengguna dan mengambilnya saat dibutuhkan.
b. Perangkat lunak harus dapat melakukan perhitungan dan analisis data sesuai dengan kebutuhan bisnis.
c. Perangkat lunak harus dapat menghasilkan laporan dan grafik yang memudahkan pengambilan keputusan.
4. Non-functional Requirement (Persyaratan nonfungsional)
Persyaratan nonfungsional adalah kebutuhan yang tidak terkait dengan fitur dan fungsionalitas perangkat lunak, tetapi dengan kinerja, keamanan, dan kualitas perangkat lunak. Berikut adalah contoh dari persyaratan nonfungsional:
a. Perangkat lunak harus mampu memberikan waktu respons yang cepat dan kinerja yang konsisten.
b. Pengguna dengan disabilitas, seperti pengguna tunanetra atau tunanetra, harus mengakses dan menggunakan perangkat lunak ini.
c. Perangkat lunak harus mematuhi standar keamanan dan privasi data yang berlaku, seperti GDPR atau HIPAA.
II. Analisis Kebutuhan
Analis sistem (System Analyst) dalam organisasi TI adalah orang yang bertugas dalam menganalisis persyaratan sistem yang diusulkan dan memastikan bahwa persyaratan disusun dan didokumentasikan dengan baik & benar. Peran analis dimulai selama Fase Analisis Perangkat Lunak SDLC. Merupakan tanggung jawab analis untuk memastikan bahwa perangkat lunak yang dikembangkan memenuhi persyaratan klien.
Analis Sistem memiliki tanggung jawab sebagai berikut:
a. Menganalisis dan memahami persyaratan perangkat lunak yang dimaksud
b. Memahami bagaimana proyek akan berkontribusi dalam tujuan organisasi
c. Mengidentifikasi sumber kebutuhan
d. Validasi persyaratan
e. Mengembangkan dan menerapkan rencana manajemen kebutuhan
f. Dokumentasi persyaratan bisnis, teknis, proses dan produk
g. Koordinasi dengan klien untuk memprioritaskan persyaratan dan menghapus dan ambiguitas
h. Menyelesaikan kriteria penerimaan dengan klien dan pemangku kepentingan lainnya
III. Hal Lainnya Tentang Rekayasa Kebutuhan Perangkat Lunak (Software Requirement)
1. Karakteristik Kebutuhan Perangkat Lunak
Mengumpulkan persyaratan perangkat lunak merupakan dasar dari keseluruhan proyek pengembangan perangkat lunak. Oleh karena itu mereka harus jelas, benar dan terdefinisi dengan baik.
Karakteristik software requirement yang baik harus:
a. Bersih (Clear)
b. Benar (Correct)
c. Konsisten (Consistent)
d. Koheren (Coherent)
e. Dapat dipahami (Comprehensible)
f. Dapat dimodifikasi (Modifiable)
g. Dapat diverifikasi (Verifiable)
h. Diprioritaskan (Prioritized)
i. Jelas /tidak ambiguis (Unambiguous)
j. Dapat dilacak (Traceable)
k. Sumber yang dapat dipercaya (Credible source)
2. UI Requirement
UI adalah bagian penting dari perangkat lunak atau perangkat keras atau sistem hybrid apa pun. Perangkat lunak diterima secara luas apabila:
a. mudah dioperasikan
b. cepat dalam menanggapi
c. efektif menangani kesalahan operasional
d. menyediakan antarmuka pengguna yang sederhana namun konsisten
3. Requirement Elicitation Process (Proses Elisitasi Kebutuhan)
Proses elisitasi kebutuhan dapat digambarkan dengan menggunakan diagram berikut:
Urutan proses elisitasi adalah sebagai berikut:
a. Requirement Gathering
Developer berdiskusi dengan klien dan pengguna akhir dan mengetahui harapan mereka dari perangkat lunak.
b. Organizing Requirements
Pengembang memprioritaskan dan mengatur persyaratan dalam urutan kepentingan, urgensi, dan kenyamanan.
c. Negotiation & discussion (Negosiasi & diskusi )
Jika persyaratan ambigu atau ada beberapa konflik dalam persyaratan dari berbagai pemangku kepentingan, jika ya, maka akan dinegosiasikan dan didiskusikan dengan pemangku kepentingan. Persyaratan kemudian dapat diprioritaskan dan dikompromikan secara wajar.
Persyaratan tersebut berasal dari berbagai pemangku kepentingan. Untuk menghilangkan ambiguitas dan konflik, mereka didiskusikan untuk kejelasan dan kebenaran. Persyaratan yang tidak realistis dikompromikan secara wajar.
d. Documentation (Dokumentasi)
Semua persyaratan formal & informal, fungsional dan non-fungsional didokumentasikan dan tersedia untuk pemrosesan tahap berikutnya.
IV. Kesimpulan
Requirements engineering adalah proses mendefinisikan, menganalisis, dan mengelola kebutuhan-kebutuhan software atau sistem. Proses ini sangat penting dalam pengembangan software karena keberhasilan suatu proyek software sangat bergantung pada kemampuan tim pengembang untuk memahami dan memenuhi kebutuhan pengguna dan sistem.
Kesimpulannya, requirements engineering sangatlah penting dalam proses pengembangan software karena:
1. Membantu memahami dan memenuhi kebutuhan pengguna dan sistem
2. Meningkatkan kualitas dan keberhasilan software
3. Mengurangi biaya dan waktu pengembangan dengan mencegah kesalahan dan perubahan kebutuhan yang tidak perlu
4. Memungkinkan tim pengembang untuk bekerja lebih efisien dan efektif dengan panduan yang jelas dan terorganisir.
Dengan demikian, penggunaan requirements engineering secara efektif dapat membantu dalam mencapai tujuan pengembangan software yang sukses.
Penulis: Muhammad Fathur Rizqi (D1041221020) - Mahasiswa Semester 2 Fakultas Teknik Prodi Informatika Untan
Disunting pada: Jumat, 3 Maret 2023, 21:05
Sumber dan Referensi:
Wikipedia - Software Requirements: https://en.wikipedia.org/wiki/Software_requirements (diakses 3 Maret 2023)
Tutorials Point - Software Requirements: https://www.tutorialspoint.com/software_engineering/software_requirements.htm (diakses 3 Maret 2023)
Geeksforgeeks - Software Engineering | Classification of Software Requirements: https://www.geeksforgeeks.org/software-engineering-classification-of-software-requirements/ (diakses 3 Maret 2023)
Badr - Panduan Menyusun Dokumen Software Requirement Specification (SRS): https://badr.co.id/id/panduan-menyusun-dokumen-software-requirement-specification-srs/ (diakses 3 Maret 2023)
Studocu - Software Requirements: https://www.studocu.com/id/document/universitas-lambung-mangkurat/rekayasa-perangkat-lunak/software-requirements/44263896 (diakses 3 Maret 2023)
Tags: Software, engineering, elisitasi, elicitation, analisis kebutuhan, requirement engineering, srs, sw requirement
wah keren
ReplyDeletekeren masbro
ReplyDelete