1 REQUIREMENTS E NGINEERING
Merancang dan membangun perangkat lunak komputer itu menantang, kreatif, dan adil
menyenangkan. Bahkan, membangun perangkat lunak begitu menarik sehingga banyak
pengembang perangkat lunak ingin melompat tepat sebelum mereka memiliki pemahaman
yang jelas tentang apa yang dibutuhkan.
Mereka berpendapat bahwa hal-hal akan menjadi jelas ketika mereka membangun, bahwa
para pemangku kepentingan proyek akan dapat memahami kebutuhan hanya setelah
memeriksa iterasi awal perangkat lunak, bahwa hal-hal berubah begitu cepat sehingga setiap
upaya untuk memahami persyaratan secara rinci adalah buang-buang waktu, bahwa intinya
adalah memproduksi program kerja, dan bahwa semua yang lainnya adalah sekunder. Yang
membuat argumen ini menggoda adalah mereka mengandung unsur kebenaran. 1
Tetapi setiap argumen gagal dan dapat menyebabkan kegagalan proyek perangkat lunak.
Spektrum yang luas dari tugas dan teknik yang mengarah pada pemahaman persyaratan
disebut persyaratan rekayasa. Dari perspektif proses perangkat lunak, rekayasa kebutuhan
adalah tindakan rekayasa perangkat lunak utama itu dimulai selama aktivitas komunikasi dan
berlanjut ke aktivitas pemodelan. Itu harus disesuaikan dengan kebutuhan proses, proyek,
produk, dan orang-orang yang melakukan pekerjaan.
Rekayasa persyaratan membangun jembatan untuk desain dan konstruksi. Tapi darimana
jembatan itu berasal? Orang bisa berpendapat bahwa itu dimulai di kaki pemangku
kepentingan proyek (mis., manajer, pelanggan, dan pengguna akhir), di mana kebutuhan
bisnis ditentukan, skenario pengguna dijelaskan, fungsi dan fitur digambarkan, dan kendala
proyek diidentifikasi. Orang lain mungkin menyarankan bahwa itu dimulai dengan definisi
sistem yang lebih luas, di mana perangkat lunak hanyalah satu komponen dari domain sistem
yang lebih besar. Namun terlepas dari titik awalnya, perjalanan melintasi jembatan membawa
Anda jauh di atas proyek, memungkinkan Anda untuk memeriksa konteks pekerjaan
perangkat lunak yang akan dilakukan; kebutuhan spesifik yang mendesain dan konstruksi
harus mengatasi; prioritas yang memandu urutan pekerjaan untuk diselesaikan; dan
informasi, fungsi, dan perilaku yang akan a dampak mendalam pada desain yang dihasilkan.
Selama dekade terakhir, ada banyak perubahan teknologi yang berdampak proses rekayasa
persyaratan [Wev11]. Komputasi di mana-mana memungkinkan teknologi komputer
diintegrasikan ke dalam banyak objek sehari-hari. Kapan ini objek terhubung dalam jaringan
mereka dapat memungkinkan pembuatan profil pengguna yang lebih lengkap, dengan
perhatian yang menyertainya untuk privasi dan keamanan. Ketersediaan aplikasi yang luas di
pasar elektronik akan mengarah untuk persyaratan pemangku kepentingan yang lebih
beragam. Stakeholder dapat menyesuaikan produk untuk memenuhi spesifikasi, persyaratan
yang ditargetkan yang hanya berlaku untuk yang kecil himpunan bagian dari semua pengguna
akhir. Seiring siklus pengembangan produk yang lebih pendek, ada tekanan untuk
merampingkan rekayasa persyaratan sehingga produk datang ke pasar lebih cepat. Tapi
masalah mendasar tetap sama, semakin tepat waktu, input pemangku kepentingan yang
akurat dan stabil. Rekayasa persyaratan mencakup tujuh tugas berbeda: permulaan, elisitasi,
elaborasi, negosiasi, spesifikasi, validasi, dan manajemen. ini
Penting untuk dicatat bahwa beberapa tugas ini terjadi secara paralel dan semuanya
disesuaikan untuk kebutuhan proyek.
Awal (Inception )
Bagaimana proyek perangkat lunak dimulai? Apakah ada satu kejadian saja
menjadi katalis untuk sistem atau produk berbasis komputer baru, atau melakukan
perlu berevolusi dari waktu ke waktu? Tidak ada jawaban pasti untuk pertanyaan-pertanyaan
ini. Di dalam beberapa kasus, hanya percakapan biasa yang diperlukan untuk mengendapkan
jurusan upaya rekayasa perangkat lunak. Tetapi secara umum, sebagian besar proyek dimulai
ketika sebuah bisnis kebutuhan diidentifikasi atau pasar atau layanan baru yang potensial
ditemukan. Stakeholder dari komunitas bisnis (mis., Manajer bisnis, orang pemasaran,
manajer produk) mendefinisikan kasus bisnis untuk ide tersebut, cobalah untuk
mengidentifikasi luasnya dan kedalaman pasar, melakukan analisis kelayakan kasar, dan
mengidentifikasi suatu pekerjaan deskripsi ruang lingkup proyek. Semua informasi ini dapat
berubah, tetapi cukup untuk mempercepat diskusi dengan organisasi rekayasa perangkat
lunak. 2
Pada awal proyek, 3
Anda membangun pemahaman dasar tentang masalah, orang-orang yang menginginkan
solusi, sifat dari solusi yang diinginkan, dan
efektivitas komunikasi awal dan kolaborasi antara
pemangku kepentingan lain dan tim perangkat lunak.
Perundingan.( Negotiation)Bukan hal yang aneh bagi pelanggan dan pengguna untuk
meminta lebih dari yang bisa dicapai, mengingat sumber daya bisnis yang terbatas. Itu juga
relatif umum untuk pelanggan atau pengguna yang berbeda untuk mengusulkan persyaratan
yang bertentangan, dengan alasan itu versi mereka "penting untuk kebutuhan khusus kita."
Anda harus merekonsiliasi konflik ini melalui proses negosiasi. Pelanggan, pengguna,
dan pemangku kepentingan lainnya diminta untuk menentukan peringkat persyaratan dan
kemudian mendiskusikan konflik dalam prioritas. Menggunakan pendekatan berulang yang
memprioritaskan persyaratan, menilai biaya dan risikonya, dan menangani konflik internal,
persyaratan dihilangkan, digabungkan, dan / atau dimodifikasi sehingga masing-masing pihak
mencapai beberapa ukuran kepuasan.
Persyaratan pertama terlalu samar bagi pengembang untuk menguji atau menilai. Apa
sebenarnya yang dimaksud dengan "ramah pengguna"? Untuk memvalidasinya, harus
dikuantifikasi atau dikualifikasikan dalam beberapa cara.
Persyaratan kedua memiliki elemen kuantitatif ("kurang dari 0,0001"), tetapi
pengujian intrusi akan sulit dan memakan waktu. Apakah tingkat keamanan ini bahkan
dijamin untuk aplikasi? Dapatkah persyaratan pelengkap lainnya yang terkait dengan
keamanan (mis., Perlindungan kata sandi, jabat tangan khusus) diganti persyaratan kuantitatif
dicatat?
Glinz [Gli09] menulis bahwa persyaratan kualitas perlu diwakili dalam a
cara yang memberikan nilai optimal. Ini berarti menilai risiko (Bab 35) dari memberikan
sistem yang gagal memenuhi persyaratan kualitas pemangku kepentingan dan berusaha
mengurangi risiko ini dengan biaya minimum. Semakin kritis kualitasnya persyaratannya
adalah, semakin besar kebutuhan untuk menyatakannya secara kuantitatif. Kurang kritis
persyaratan kualitas dapat dinyatakan secara umum. Dalam beberapa kasus, seorang jenderal
persyaratan kualitas dapat diverifikasi menggunakan teknik kualitatif (mis., survei pengguna
atau daftar periksa). Dalam situasi lain, persyaratan kualitas dapat diverifikasi menggunakan
kombinasi penilaian kualitatif dan kuantitatif.
Pada kenyataannya, orang lain akan berkontribusi pada narasi ini selama pertemuan
pengumpulan-persyaratan dan informasi yang jauh lebih banyak tersedia. Tetapi bahkan
dengan informasi tambahan, ambiguitas hadir, kelalaian kemungkinan ada, dan kesalahan
mungkin terjadi. Untuk saat ini, "fungsional" sebelumnya deskripsi ”akan mencukupi.
Saat meninjau permintaan produk pada hari-hari sebelum pertemuan, setiap peserta
diminta untuk membuat daftar objek yang merupakan bagian dari lingkungan yang
mengelilingi sistem, objek lain yang akan diproduksi oleh sistem, dan objek yang digunakan
oleh sistem untuk melakukan fungsinya. Selain itu, masing-masing peserta diminta untuk
membuat daftar layanan lain (proses atau fungsi) itu memanipulasi atau berinteraksi dengan
objek. Akhirnya, daftar kendala (mis., Biaya, ukuran, aturan bisnis) dan kriteria kinerja (mis.,
kecepatan, akurasi) juga dikembangkan. Para peserta diberitahu bahwa daftar ini tidak
diharapkan lengkap tetapi diharapkan untuk mencerminkan persepsi setiap orang tentang
sistem.
Objek yang dijelaskan untuk SafeHome mungkin termasuk panel kontrol, detektor
asap, sensor jendela dan pintu, detektor gerakan, alarm, peristiwa (sensor telah diaktifkan),
layar, PC, nomor telepon, panggilan telepon, dan seterusnya. Daftar layanan mungkin
termasuk mengkonfigurasi sistem, mengatur alarm, pemantauan sensor, panggilan telepon,
pemrograman kontrol panel, dan membaca tampilan (perhatikan bahwa layanan bekerja pada
objek). Dalam yang serupa fashion, setiap peserta akan mengembangkan daftar kendala (mis.,
sistem harus mengenali ketika sensor tidak beroperasi, harus ramah pengguna, harus
antarmuka langsung ke saluran telepon standar) dan kriteria kinerja (mis., acara sensor
harus diakui dalam satu detik, dan skema prioritas acara harus diimplementasikan).