SlideShare a Scribd company logo
1 of 47
Requirements Engineering
D4 Manajemen Informatika 2023D
Kelompok 5
MK: Rekayasa Perangkat Lunak
NIM NAMA
23091397131 Ainul Yaqin Hidayatul Wachid
23091397135 Akbar Jarullah Fawwas
23091397136 Vicky Wijaya Nur waluddin
Objectives
• Memahami konsep kebutuhan pengguna dan sistem serta mengapa
kebutuhan ini harus ditulis dengan cara yang berbeda.
• Memahami perbedaan antara kebutuhan fungsional dan non-
fungsional perangkat lunak.
• Memahami aktivitas utama rekayasa kebutuhan seperti
pengumpulan, analisis, dan validasi, beserta hubungan antara
aktivitas-aktivitas tersebut.
• Memahami mengapa manajemen kebutuhan diperlukan dan
bagaimana hal ini mendukung aktivitas rekayasa kebutuhan lainnya.
Contents
1. Functional and non-functional requirements
2. Requirements engineering processes
3. Requirements elicitation
4. Requirements specification
5. Requirements validation
6. Requirements change
Kebutuhan untuk sebuah sistem adalah deskripsi dari layanan yang
seharusnya disediakan oleh sistem dan batasan-batasan atas operasinya.
Kebutuhan-kebutuhan ini mencerminkan kebutuhan pelanggan terhadap
sebuah sistem yang melayani tujuan tertentu seperti mengendalikan
perangkat, melakukan pemesanan, atau mencari informasi. Jenis kebutuhan
ini dibagi menjadi dua yaitu:
• Kebutuhan pengguna (User Requirment) adalah pernyataan, dalam
bahasa alami ditambah diagram, tentang layanan apa yang diharapkan
sistem sediakan kepada pengguna sistem dan batasan-batasan di bawah
mana itu harus beroperasi.
• Kebutuhan sistem (system requirment) adalah pernyataan, dalam bahasa
alami ditambah diagram, tentang layanan apa yang diharapkan sistem
sediakan kepada pengguna sistem dan batasan-batasan di bawah mana
itu harus beroperasi.
Functional And Non-Functional
Requirement
1.1 Functional Requirement
• Kebutuhan fungsional ini adalah pernyataan mengenai layanan
atau fungsi yang harus disediakan oleh sistem seperti,
bagaimana sistem harus bereaksi terhadap input tertentu, dan
bagaimana sistem harus berperilaku dalam situasi tertentu.
Dalam beberapa kasus, kebutuhan fungsional juga mungkin
secara eksplisit menyatakan apa yang tidak boleh dilakukan
oleh sistem.
• Kebutuhan fungsional suatu sistem mendeskripsikan apa yang
harus dilakukan sistem secara rinci. Hal Ini tergantung pada
jenis perangkat lunak yang dikembangkan.
Berikut adalah contoh kebutuhan fungsional untuk sistem Mentcare,
yang digunakan untuk menjaga informasi tentang pasien yang
menerima perawatan untuk masalah kesehatan mental:
1.Pengguna harus dapat mencari daftar janji temu untuk semua
klinik.
2.Sistem harus menghasilkan setiap hari, untuk setiap klinik, daftar
pasien yang diharapkan hadir untuk janji temu hari itu.
3.Setiap anggota staf yang menggunakan sistem harus diidentifikasi
secara unik oleh nomor pegawai delapan digitnya.
• Kebutuhan pengguna ini menentukan fungsionalitas spesifik yang
harus dimasukkan dalam sistem yang dapat ditulis dengan tingkat
kedetailan yang berbeda.
• Dalam kasus seperti itu, fokus harus pada developer kebutuhan
informasi yang menentukan berbagai informasi yang diperlukan,
bagaimana cara pengirimannya, dan diorganisasikan. Menyebabkan
ketidakpastian dalam spesifikasi kebutuhan.
• Ketidakpastian dalam spesifikasi kebutuhan dapat menyebabkan
perselisihan antara pelanggan dan developer perangkat lunak akibat
salah tafsirnya kebutuhan yang ambigu oleh developer.
• Idealnya, spesifikasi kebutuhan fungsional sistem harus lengkap dan
konsisten.
• Namun, konsistensi dan kelengkapan kebutuhan hanya dapat dicapai
untuk sistem perangkat lunak yang sangat kecil dalam praktiknya.
• Salah satu alasan adalah karena mudah terjadi kesalahan dan kelupaan
ketika menulis spesifikasi untuk sistem yang besar dan kompleks.
1.2 Kebutuhan Non-functional
• Seperti namanya, adalah kebutuhan yang tidak secara
langsung terkait dengan layanan khusus yang disediakan oleh
sistem kepada penggunanya.
• Kebutuhan non-fungsional ini biasanya menentukan atau
membatasi karakteristiksistem secara keseluruhan.
• Kebutuhan ini juga dapat berhubungan dengan properti sistem
yang muncul seperti keandalan, waktu respons, dan
penggunaan memori
Penerapan persyaratan ini mungkin tersebar ke seluruh wilayah
sistem, karena dua alasan:
• Kebutuhan non-fungsional dapat mempengaruhi arsitektur
sistem secara keseluruhan daripada komponen individualnya.
Misalnya untuk memastikan kinerja itu persyaratan terpenuhi
dalam sistem tertanam, mungkin harus mengatur sistem untuk
meminimalkan komunikasi antar komponen.
• Persyaratan non-fungsional individu, seperti persyaratan
keamanan, mungkinmenghasilkan beberapa persyaratan
fungsional terkait yang menentukan layanan sistem baru yang
diperlukan jika persyaratan non-fungsional ingin
diimplementasikan.
• Sebuah masalah umum dengan kebutuhan non-fungsional adalah
ketika pemangku kepentingan mengusulkan kebutuhan sebagai
tujuan umum, seperti kemudahan penggunaan, kemampuan sistem
untuk pulih dari kegagalan, atau respons pengguna yang cepat. Hal
ini menyebabkan masalah bagi pengembang sistem karena
meninggalkan ruang untuk interpretasi dan perselisihan di masa
depan setelah sistem disampaikan.
• Kebutuhan non-fungsional harus ditulis secara kuantitatif jika
memungkinkan agar dapat diuji secara obyektif. Penggunaan metrik
tertentu seperti kecepatan proses, keandalan, dan kerentanan dapat
membantu menentukan kebutuhan ini.
• Konflik antara kebutuhan fungsional dan non-fungsional sering terjadi.
Misalnya, kebutuhan identifikasi memerlukan pembaca kartu untuk
diinstal di setiap komputer yang terhubung ke sistem, tetapi
kebutuhan lain mungkin menginginkan akses mobile dari tablet atau
smartphone dokter atau perawat.
Requirment Engineering
Process
Rekayasa kebutuhan melibatkan tiga kegiatan kunci:
• Menemukan kebutuhan melalui interaksi dengan pemangku
kepentingan (pengumpulan dan analisis).
• Mengubah kebutuhan menjadi bentuk standar (spesifikasi).
• Memvalidasi kebutuhan untuk memastikan sesuai dengan
kebutuhan pelanggan.
Awalnya digambarkan sebagai proses berurutan namun
sebenarnya bersifat iteratif dan berselang-seling.
• Gambar 4.6 menunjukkan penyelarasan ini.
Kegiatan-kegiatan tersebut disusun sebagai
proses iteratif dalam bentuk spiral.
• Pada awal proses, sebagian besar usaha
akan dihabiskan untuk memahami
kebutuhan bisnis tingkat tinggi dan non-
fungsional, dan kebutuhan pengguna untuk
sistem.
• Kemudian dalam proses, di cincin-cincin luar
spiral, lebih banyak usaha akan
dipersembahkan untuk menggali dan
memahami kebutuhan non-fungsional dan
kebutuhan sistem yang lebih rinci.
• Model spiral tersebut dapat menampung pendekatan
pengembangan di mana kebutuhan dikembangkan dengan
tingkat detail yang berbeda.
• Jumlah iterasi di sekitar spiral dapat bervariasi sehingga spiral
dapat diakhiri setelah beberapa atau semua kebutuhan pengguna
telah dipanggil.
• Pengembangan agile dapat digunakan sebagai gantinya
prototyping sehingga kebutuhan dan implementasi sistem
dikembangkan bersama-sama.
4.3.3 Requirements Elicitation
• Requirements Elicitation adalah proses pertama dalam rekayasa
kebutuhan perangkat lunak yang bertujuan untuk mencari,
mengungkap, memperoleh, dan mengelaborasi kebutuhan untuk
sistem berbasis computer. Proses ini melibatkan komunikasi, prioritas,
negosiasi, dan kolaborasi dengan semua pemangku kepentingan
terkait, seperti pengguna dan sponsor proyek.
• Proses ini juga melibatkan serangkaian kegiatan seperti memahami
domain aplikasi, identifikasi sumber kebutuhan, analisis pemangku
kepentingan, dan memilih teknik, pendekatan, dan alat yang
digunakan. Requirements Elicitation juga dapat dilakukan dengan
menggunakan beberapa metode seperti brainstorming, interview,
observasi, dan analisa dokumen
Model proses dari proses elisitasi dan analisis ditunjukkan pada
Gambar 4.7. Setiap organisasi akan memiliki versi atau
penerapannya sendiri dari model umum ini, tergantung pada
faktor-faktor lokal seperti keahlian staf, jenis sistem yang
dikembangkan, dan standar yang digunakan.
Aktivitas prosesnya adalah:
Requirements discovery and understanding
Ini adalah proses berinteraksi dengan pemangku
kepentingan sistem untuk menemukan kebutuhan mereka.
Persyaratan domain dari para pemangku kepentingan dan
dokumentasi juga ditemukan selama kegiatan ini.
Requirements classification and organization
Aktivitas ini mengambil kumpulan persyaratan yang tidak
terstruktur, mengelompokkan persyaratan yang terkait, dan
mengaturnya ke dalam kelompok yang koheren
Requirements prioritization and negotiation
Ketika beberapa pemangku kepentingan terlibat, persyaratan akan
mengalami konflik. Aktivitas ini berkaitan dengan memprioritaskan
persyaratan dan menemukan serta menyelesaikan konflik persyaratan
melalui negosiasi. Biasanya, para pemangku kepentingan harus bertemu
untuk menyelesaikan perbedaan dan menyepakati persyaratan kompromi.
Requirements documentation
Persyaratan didokumentasikan dan dimasukkan ke dalam putaran
spiral berikutnya. Draf awal dari dokumen persyaratan perangkat lunak dapat
dihasilkan pada tahap ini, atau persyaratan dapat dikelola secara informal di
papan tulis, wiki, atau ruang bersama lainnya
Teknik elisitasi persyaratan
Wawancara
Wawancara formal atau informal dengan pemangku kepentingan
sistem adalah bagian dari sebagian besar proses rekayasa persyaratan.
Dalam wawancara ini, tim teknik persyaratan mengajukan pertanyaan
kepada pemangku kepentingan tentang sistem yang saat ini mereka gunakan
dan sistem yang akan dikembangkan. Persyaratan berasal dari jawaban atas
pertanyaan-pertanyaan ini. Wawancara dapat terdiri dari dua jenis:
• Wawancara tertutup, di mana pemangku kepentingan menjawab
serangkaian pertanyaan yang telah ditentukan.
• Wawancara terbuka, di mana tidak ada agenda yang telah ditentukan. Tim
teknik persyaratan mengeksplorasi berbagai masalah dengan pemangku
kepentingan sistem dan karenanya mengembangkan pemahaman yang
lebih baik tentang kebutuhan mereka.
Teknik elisitasi persyaratan
Ethnography
Etnografi sangat efektif untuk menemukan dua jenis persyaratan:
• Persyaratan berasal dari cara di mana orang benar-benar bekerja, daripada cara di
mana definisi proses bisnis mengatakan mereka harus bekerja. Dalam praktiknya,
orang tidak pernah mengikuti proses formal. Misalnya, pengendali lalu lintas udara
dapat mematikan sistem peringatan konflik yang mendeteksi pesawat dengan jalur
penerbangan yang berpotongan, meskipun prosedur kontrol normal menentukan
bahwa itu harus digunakan. Sistem peringatan konflik sensitif dan mengeluarkan
peringatan yang dapat didengar bahkan ketika pesawat berjauhan.
• Persyaratan berasal dari kerja sama dan kesadaran akan kegiatan orang lain.
Misalnya, pengendali lalu lintas udara (ATC) dapat menggunakan kesadaran akan
pekerjaan kontrol lain untuk memprediksi jumlah pesawat yang akan memasuki
sektor kontrol mereka. Mereka kemudian memodifikasi strategi kontrol mereka
tergantung pada beban kerja yang diprediksi.
Etnografi dapat dikombinasikan dengan
pengembangan prototipe sistem (Gambar 4.8).
Etnografi menginformasikan pengembangan
prototipe sehingga siklus penyempurnaan
prototipe lebih sedikit diperlukan. Selanjutnya,
prototyping memfokuskan etnografi dengan
mengidentifikasi masalah dan pertanyaan yang
kemudian dapat didiskusikan dengan etnografer.
Dia kemudian harus mencari jawaban atas
pertanyaan-pertanyaan ini selama fase berikutnya
dari studi sistem (Sommerville et al. 1993).
Cerita dan skenario
Skenario dimulai dengan garis besar interaksi. Selama proses elisitasi, detail
ditambahkan untuk membuat deskripsi lengkap tentang interaksi tersebut.
Pada yang paling umum, skenario dapat mencakup:
Deskripsi tentang apa yang diharapkan sistem dan pengguna saat skenario
dimulai.
Deskripsi aliran normal peristiwa dalam skenario.
Deskripsi tentang apa yang bisa salah dan bagaimana masalah yang
dihasilkan dapat ditangani.
Informasi tentang kegiatan lain yang mungkin terjadi pada saat yang sama.
Deskripsi status sistem saat skenario berakhir.
4.4 Spesifikasi persyaratan
Spesifikasi persyaratan adalah proses menuliskan persyaratan pengguna dan sistem
dalam dokumen persyaratan. Idealnya, persyaratan pengguna dan sistem harus jelas, tidak
ambigu, mudah dimengerti, lengkap, dan konsisten. Namun, pada tingkat detail yang
diperlukan untuk sepenuhnya menentukan sistem perangkat lunak yang kompleks, tidak
mungkin atau tidak diinginkan untuk mengecualikan semua informasi desain. Ada
beberapa alasan untuk ini:
Anda mungkin harus merancang arsitektur awal sistem untuk membantu menyusun
spesifikasi persyaratan. Persyaratan sistem diatur sesuai dengan subsistem yang berbeda
yang membentuk sistem.
Dalam kebanyakan kasus, sistem harus beroperasi dengan sistem yang ada, yang
membatasi desain dan memaksakan persyaratan pada sistem baru.
Penggunaan arsitektur khusus untuk memenuhi persyaratan non-fungsional, seperti
pemrograman versi-N untuk mencapai keandalan, yang dibahas dalam Bab 11, mungkin
diperlukan. Regulator eksternal yang perlu menyatakan bahwa sistem tersebut aman
dapat menentukan bahwa desain arsitektur yang telah disertifikasi harus digunakan.
4.4.1 Spesifikasi bahasa alami
Bahasa alami telah digunakan untuk menulis persyaratan untuk
perangkat lunak sejak tahun 1950-an. Ini ekspresif, intuitif, dan universal. Ini
juga berpotensi kabur dan ambigu, dan interpretasinya tergantung pada latar
belakang pembaca. Akibatnya, telah banyak proposal untuk cara-cara
alternatif untuk menulis persyaratan. Namun, tidak satu pun dari proposal ini
telah diadopsi secara luas, dan bahasa alami akan terus menjadi cara yang
paling banyak digunakan untuk menentukan persyaratan sistem dan
perangkat lunak.
Untuk meminimalkan kesalahpahaman saat menulis persyaratan bahasa
alami, saya sarankan Anda mengikuti panduan sederhana ini:
Ciptakan format standar dan pastikan bahwa semua definisi
persyaratan mematuhi format itu.
Gunakan bahasa secara konsisten untuk membedakan antara
persyaratan wajib dan yang diinginkan.
Gunakan penyorotan teks (tebal, miring, atau warna) untuk memilih
bagian penting dari persyaratan.
Jangan berasumsi bahwa pembaca memahami teknis, bahasa
rekayasa perangkat lunak. Sangat mudah untuk kata-kata seperti
"arsitektur" dan "modul" untuk disalahpahami. Jika memungkinkan,
Anda harus menghindari penggunaan jargon, singkatan, dan akronim.
Bila memungkinkan, Anda harus mencoba mengaitkan alasan dengan
setiap kebutuhan pengguna..
4.4.2 Spesifikasi terstruktur
Bahasa alami terstruktur adalah cara penulisan persyaratan sistem di mana
persyaratan ditulis dengan cara standar daripada sebagai teks bentuk bebas.
Pendekatan ini mempertahankan sebagian besar ekspresi dan pemahaman
bahasa alami tetapiBahasa alami terstruktur adalah cara penulisan persyaratan
sistem di mana persyaratan ditulis dengan cara standar daripada sebagai teks
bentuk bebas. Pendekatan ini mempertahankan sebagian besar ekspresi dan
pemahaman bahasa alami tetapi
Untuk menggunakan pendekatan terstruktur untuk menentukan persyaratan
sistem, Anda menentukan satu atau beberapa template standar untuk
persyaratan dan mewakili template ini sebagai formulir terstruktur. Spesifikasi
dapat disusun di sekitar objek yang dimanipulasi oleh sistem, fungsi yang
dilakukan oleh sistem, atau peristiwa yang diproses oleh sistem. Contoh
spesifikasi berbasis formulir, dalam hal ini, yang mendefinisikan cara menghitung
dosis insulin yang akan diberikan ketika gula darah berada dalam pita yang aman,
ditunjukkan pada Gambar 4.13.
Ketika format standar digunakan untuk menentukan persyaratan fungsional,
informasi berikut harus disertakan:
Deskripsi fungsi atau entitas yang ditentukan.
Deskripsi input dan asal input ini.
Deskripsi output dan tujuan output ini.
Informasi tentang informasi yang diperlukan untuk perhitungan atau
entitas lain dalam sistem yang diperlukan (bagian "membutuhkan").
Deskripsi tindakan yang akan diambil.
Jika pendekatan fungsional digunakan, prasyarat menetapkan apa yang
harus benar sebelum fungsi dipanggil, dan postcondition menentukan apa
yang benar setelah fungsi dipanggil.
Deskripsi efek samping (jika ada) dari operasi.
Tabel sangat berguna ketika ada sejumlah
kemungkinan situasi alternatif dan Anda perlu
menjelaskan tindakan yang harus diambil untuk
masing-masing. Pompa insulin mendasarkan
perhitungannya dari kebutuhan insulin pada tingkat
perubahan kadar gula darah. Tingkat perubahan
dihitung menggunakan pembacaan saat ini dan
sebelumnya. Gambar 4.14 adalah deskripsi tabular
tentang bagaimana laju perubahan gula darah
digunakan untuk menghitung jumlah insulin yang akan
dikirimkan.
4.4.3 Kasus penggunaan
Kasus penggunaan adalah cara untuk menggambarkan interaksi antara pengguna
dan sistem menggunakan model grafis dan teks terstruktur. Mereka pertama kali
diperkenalkan dalam metode Objectory (Jacobsen et al. 1993) dan sekarang telah
menjadi fitur mendasar dari Unified Modeling Language (UML). Dalam bentuknya
yang paling sederhana, kasus penggunaan mengidentifikasi aktor yang terlibat
dalam interaksi dan menyebutkan jenis interaksi. Anda kemudian menambahkan
informasi tambahan yang menjelaskan interaksi dengan sistem. Informasi
tambahan dapat berupa deskripsi tekstual atau satu atau lebih model grafis
seperti urutan UML atau bagan negara (lihat Bab 5).
Kasus penggunaan mengidentifikasi interaksi individu antara sistem dan
penggunanya atau sistem lain. Setiap kasus penggunaan harus didokumentasikan
dengan deskripsi tekstual. Ini kemudian dapat dihubungkan ke model lain di UML
yang akan mengembangkan skenario secara lebih rinci. Misalnya, deskripsi
singkat tentang kasus penggunaan Konsultasi Penyiapan dari Gambar 4.15
mungkin:
Konsultasi pengaturan memungkinkan dua atau lebih
dokter, yang bekerja di kantor yang berbeda, untuk
melihat catatan pasien yang sama pada saat yang
bersamaan. Seorang dokter memulai konsul dengan
memilih orang-orang yang terlibat dari menu dropdown
dokter yang sedang online. Catatan pasien kemudian
ditampilkan di layar mereka, tetapi hanya dokter yang
memulai yang dapat mengedit catatan. Selain itu,
jendela obrolan teks dibuat untuk membantu
mengoordinasikan tindakan. Diasumsikan bahwa
panggilan telepon untuk kation komunikasi suara dapat
diatur secara terpisah.
4.4.4 Dokumen persyaratan
perangkat lunak
Dokumen persyaratan perangkat lunak (kadang-kadang disebut spesifikasi
persyaratan perangkat lunak atau SRS) adalah pernyataan resmi tentang
apa yang harus diterapkan oleh pengembang sistem. Ini dapat mencakup
persyaratan pengguna untuk suatu sistem dan spesifikasi terperinci dari
persyaratan sistem. Terkadang persyaratan pengguna dan sistem
diintegrasikan ke dalam satu deskripsi. Dalam kasus lain, persyaratan
pengguna dijelaskan dalam bab pengantar dalam spesifikasi persyaratan
sistem.
Dokumen persyaratan memiliki beragam pengguna, mulai dari manajemen
senior organisasi yang membayar sistem hingga insinyur yang bertanggung
jawab untuk mengembangkan perangkat lunak. Gambar 4.16 menunjukkan
kemungkinan pengguna dokumen dan bagaimana mereka
menggunakannya.
Requirements validation
• Validasi kebutuhan adalah proses memastikan bahwa kebutuhan-
kebutuhan tersebut secara tepat mendefinisikan sistem yang
diinginkan oleh pelanggan. Proses ini sering kali berhubungan erat
dengan tahapan pengumpulan informasi dan analisis, karena
tujuannya adalah untuk menemukan masalah-masalah yang mungkin
ada dalam kebutuhan tersebut. Validasi kebutuhan sangat penting
karena kesalahan dalam dokumen kebutuhan dapat menyebabkan
biaya pengulangan yang besar saat masalah-masalah ini ditemukan
selama pengembangan atau setelah sistem beroperasi.
• Selama proses validasi kebutuhan, berbagai jenis pemeriksaan
harus dilakukan pada dokumen kebutuhan. Pemeriksaan ini
meliputi:
1. Validity checks: Memastikan bahwa kebutuhan mencerminkan kebutuhan
nyata pengguna sistem.
2. Consistency checks: Memastikan bahwa tidak ada konflik antara kebutuhan
yang terdapat dalam dokumen.
3. Completeness checks: Memastikan bahwa dokumen kebutuhan mencakup
semua fungsi dan batasan yang dimaksudkan oleh pengguna sistem.
4. Realism checks: Memastikan bahwa kebutuhan dapat diimplementasikan
dalam anggaran yang diajukan untuk sistem.
5. Verifiability: Memastikan bahwa kebutuhan sistem dapat diverifikasi dengan
menguji apakah sistem yang disampaikan memenuhi setiap kebutuhan yang
ditentukan.
• Beberapa teknik validasi kebutuhan yang dapat digunakan secara
individu atau bersama-sama antara lain:
1. Requirements reviews: Kebutuhan dianalisis secara sistematis oleh tim pemeriksa
untuk menemukan kesalahan dan inkonsistensi.
2. Prototyping: Pengembangan model eksekutif sistem yang digunakan bersama
pengguna akhir dan pelanggan untuk memastikan apakah memenuhi kebutuhan
dan harapan mereka. Para pemangku kepentingan mencoba sistem tersebut dan
memberikan umpan balik perubahan kebutuhan kepada tim pengembangan.
3. Test-case generation: Kebutuhan harus dapat diuji. Jika tes untuk kebutuhan
tersebut dirancang sebagai bagian dari proses validasi, ini sering mengungkap
masalah kebutuhan. Jika suatu tes sulit atau tidak mungkin dirancang, ini biasanya
berarti kebutuhan akan sulit diimplementasikan dan harus dipertimbangkan
kembali. Mengembangkan tes dari kebutuhan pengguna sebelum menulis kode
merupakan bagian integral dari pengembangan berbasis tes.
Requirements change
• Kebutuhan untuk sistem perangkat lunak besar selalu berubah. Salah
satu alasan perubahan yang sering terjadi adalah bahwa sistem-sistem
ini sering dikembangkan untuk menangani “masalah jahat” – masalah
yang tidak dapat sepenuhnya didefinisikan (Rittel dan Webber 1973).
Karena masalahnya tidak dapat sepenuhnya didefinisikan, kebutuhan
perangkat lunak kemungkinan besar akan berubah.
• Saat proses pengembangan
perangkat lunak
berlangsung, pemahaman
para pemangku kepentingan
tentang masalah terus
berubah. Oleh karena itu,
kebutuhan sistem harus
berkembang untuk
mencerminkan pemahaman
yang berubah tentang
masalah tersebut.
• Setelah sistem terpasang dan digunakan, kebutuhan baru tak
terhindarkan. Sebagian karena kesalahan dalam kebutuhan awal yang
harus diperbaiki. Namun, kebanyakan perubahan kebutuhan muncul
karena perubahan lingkungan bisnis:
1. Lingkungan bisnis dan teknis selalu berubah setelah instalasi. Perangkat
keras baru mungkin diperkenalkan, prioritas bisnis dapat berubah, dan
regulasi baru mungkin diberlakukan.
2. Pembayar sistem dan pengguna jarang sama. Pembayar sistem
menetapkan kebutuhan berdasarkan kendala organisasi dan anggaran,
mungkin bertentangan dengan kebutuhan pengguna.
3. Sistem besar memiliki beragam pemangku kepentingan dengan kebutuhan
yang berbeda. Kebutuhan akhir merupakan kompromi, dan kadang perlu
disesuaikan ulang sesuai pengalaman.
• Saat kebutuhan terus berkembang, Anda perlu melacak kebutuhan
individual dan menjaga hubungan antara kebutuhan yang saling
bergantung sehingga Anda dapat menilai dampak perubahan kebutuhan.
Oleh karena itu, Anda memerlukan proses formal untuk membuat
proposal perubahan dan menghubungkannya dengan kebutuhan sistem.
Proses ini dikenal sebagai “manajemen kebutuhan” dan sebaiknya
dimulai segera setelah versi draf dokumen kebutuhan tersedia.
• Proses pengembangan Agile telah dirancang untuk mengatasi kebutuhan
yang berubah selama proses pengembangan. Dalam proses ini, ketika
pengguna mengusulkan perubahan kebutuhan, perubahan tersebut tidak
melalui manajemen perubahan formal.
4.6.1 Requirements management planning
Requirements management planning berkaitan dengan menetapkan bagaimana satu set
kebutuhan yang berkembang akan dikelola. Selama tahap perencanaan, Anda harus
memutuskan beberapa isu:
1. Requirements identification setiap kebutuhan harus diidentifikasi secara unik sehingga
dapat dirujuk dengan kebutuhan lainnya dan digunakan dalam penilaian jejak.
2. A change management process ini adalah serangkaian aktivitas yang menilai dampak dan
biaya perubahan. Saya akan membahas proses ini lebih detail dalam bagian berikutnya.
3. Traceability policies Kebijakan ini menetapkan hubungan antara setiap kebutuhan dan
antara kebutuhan dan desain sistem yang harus dicatat. Kebijakan jejak juga harus
menetapkan bagaimana catatan-catatan ini harus dipelihara.
4. Tool support Manajemen kebutuhan melibatkan pemrosesan informasi besar tentang
kebutuhan. Alat yang dapat digunakan bervariasi mulai dari sistem manajemen kebutuhan
khusus hingga spreadsheet bersama dan sistem basis data sederhana.
• Requirements management memerlukan dukungan otomatis, dan
alat perangkat lunak untuk ini harus dipilih selama fase perencanaan.
Anda memerlukan dukungan alat untuk:
1. Requirements storage : Kebutuhan harus dipelihara dalam penyimpanan data
yang aman dan dikelola yang dapat diakses oleh semua pihak yang terlibat
dalam proses rekayasa kebutuhan.
2. Change management: Proses ini lebih mudah dengan dukungan alat yang dapat
melacak dan merespons perubahan yang disarankan.
3. Traceability: Alat ini memungkinkan penemuan kebutuhan terkait dan dapat
menggunakan teknik pemrosesan bahasa alami.
Untuk sistem kecil, dokumen web bersama, spreadsheet, dan basis data cukup untuk
mendukung manajemen kebutuhan. Namun, untuk sistem yang lebih besar, alat
khusus seperti DOORS (IBM 2013) sangat membantu dalam melacak banyaknya
kebutuhan yang berubah.
4.6.2 Requirements change management
Requirements change management harus diterapkan pada semua
perubahan yang diusulkan terhadap kebutuhan sistem setelah
dokumen kebutuhan disetujui. Manajemen perubahan penting karena
Anda perlu memutuskan apakah manfaat dari menerapkan kebutuhan
baru dibenarkan oleh biaya implementasi. Keuntungan menggunakan
proses formal untuk manajemen perubahan adalah bahwa semua
proposal perubahan diperlakukan secara konsisten dan perubahan
pada dokumen kebutuhan dibuat dengan terkendali.
1. Problem analysis and change specification: Proses dimulai dengan mengidentifikasi masalah
kebutuhan atau proposal perubahan. Masalah atau proposal tersebut dianalisis untuk
memastikan validitasnya, dan hasilnya disampaikan kembali kepada pengusul perubahan.
2. Change analysis and costing: Dampak perubahan dievaluasi menggunakan informasi jejak dan
pengetahuan sistem. Biaya perubahan diperkirakan termasuk modifikasi dokumen kebutuhan dan
desain sistem. Setelah analisis, keputusan diambil untuk melanjutkan atau tidak perubahan
kebutuhan.
3. Change implementation: Dokumen kebutuhan, dan jika perlu, desain dan implementasi sistem
dimodifikasi. Dokumen kebutuhan sebaiknya diatur agar perubahan dapat dilakukan tanpa
penulisan ulang atau reorganisasi yang luas. Seperti halnya dengan program, kemampuan untuk
diubah dalam dokumen dapat dicapai dengan meminimalkan referensi eksternal dan membuat
bagian-bagian dokumen semodular mungkin. Dengan demikian, bagian-bagian individu dapat
diubah dan diganti tanpa memengaruhi bagian lain dari dokumen.
References
• Ian Sommerville, 2016, Software Engineering, Tenth Edition, Pearson
Education Limited, Edinburgh Gate, Harlow, Essex CM20 2JE, England

More Related Content

Similar to Tugas Kelompok 5 Rekayasa Perangkat Lunak

Tahapan Rekayasa Sistem Informasi.pptx
Tahapan Rekayasa Sistem Informasi.pptxTahapan Rekayasa Sistem Informasi.pptx
Tahapan Rekayasa Sistem Informasi.pptx
QwertyyyKyy
 
Analisis Perancangan Sistem.pptx
Analisis  Perancangan Sistem.pptxAnalisis  Perancangan Sistem.pptx
Analisis Perancangan Sistem.pptx
AronSilaban1
 

Similar to Tugas Kelompok 5 Rekayasa Perangkat Lunak (20)

LIMA DOMAIN KEBOLEHLAKSANAAN SISTEM
 LIMA DOMAIN KEBOLEHLAKSANAAN SISTEM LIMA DOMAIN KEBOLEHLAKSANAAN SISTEM
LIMA DOMAIN KEBOLEHLAKSANAAN SISTEM
 
Tahapan Rekayasa Sistem Informasi.pptx
Tahapan Rekayasa Sistem Informasi.pptxTahapan Rekayasa Sistem Informasi.pptx
Tahapan Rekayasa Sistem Informasi.pptx
 
03 Software Requirements
03 Software Requirements03 Software Requirements
03 Software Requirements
 
Sim, nella dwi septiani, hapzi ali, sumber daya komputasi dan komunikasi , un...
Sim, nella dwi septiani, hapzi ali, sumber daya komputasi dan komunikasi , un...Sim, nella dwi septiani, hapzi ali, sumber daya komputasi dan komunikasi , un...
Sim, nella dwi septiani, hapzi ali, sumber daya komputasi dan komunikasi , un...
 
Tugas sim, rahayu, yananto mihadi putra, pengguna dan pengembang sistem
Tugas sim, rahayu, yananto mihadi putra, pengguna dan pengembang sistemTugas sim, rahayu, yananto mihadi putra, pengguna dan pengembang sistem
Tugas sim, rahayu, yananto mihadi putra, pengguna dan pengembang sistem
 
(05) sim, khansa ranindia, hapzi ali, sistem manajemen database, universitas ...
(05) sim, khansa ranindia, hapzi ali, sistem manajemen database, universitas ...(05) sim, khansa ranindia, hapzi ali, sistem manajemen database, universitas ...
(05) sim, khansa ranindia, hapzi ali, sistem manajemen database, universitas ...
 
Materi 4.pptx
Materi 4.pptxMateri 4.pptx
Materi 4.pptx
 
Resume buku rekayasa perangkat lunak (daniel siahaan)
Resume buku rekayasa perangkat lunak (daniel siahaan)Resume buku rekayasa perangkat lunak (daniel siahaan)
Resume buku rekayasa perangkat lunak (daniel siahaan)
 
Project charter 5114100043
Project charter 5114100043Project charter 5114100043
Project charter 5114100043
 
Sim, rahadian khevrianur, hapzi ali, akuntansi, universitas mercubuana, 2017
Sim, rahadian khevrianur, hapzi ali, akuntansi, universitas mercubuana, 2017Sim, rahadian khevrianur, hapzi ali, akuntansi, universitas mercubuana, 2017
Sim, rahadian khevrianur, hapzi ali, akuntansi, universitas mercubuana, 2017
 
Project charter trackit
Project charter trackitProject charter trackit
Project charter trackit
 
SIM, Tri Yunny Kartika, 43216110077, Hapzi Ali, Sumber Daya Komputasi dan Kom...
SIM, Tri Yunny Kartika, 43216110077, Hapzi Ali, Sumber Daya Komputasi dan Kom...SIM, Tri Yunny Kartika, 43216110077, Hapzi Ali, Sumber Daya Komputasi dan Kom...
SIM, Tri Yunny Kartika, 43216110077, Hapzi Ali, Sumber Daya Komputasi dan Kom...
 
Project charter trackit rev 1
Project charter trackit rev 1Project charter trackit rev 1
Project charter trackit rev 1
 
Materi ke 2 Konsep eRKa.pdf
Materi ke 2 Konsep eRKa.pdfMateri ke 2 Konsep eRKa.pdf
Materi ke 2 Konsep eRKa.pdf
 
SIM, Novia Rosiana, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Universi...
SIM, Novia Rosiana, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Universi...SIM, Novia Rosiana, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Universi...
SIM, Novia Rosiana, Hapzi Ali, Sumber Daya Komputasi dan Komunikasi, Universi...
 
Project charter
Project charterProject charter
Project charter
 
SIM, Ratna Priatiningsih, Hapzi Ali, Sumber daya komputasi dan komunikasi, Un...
SIM, Ratna Priatiningsih, Hapzi Ali, Sumber daya komputasi dan komunikasi, Un...SIM, Ratna Priatiningsih, Hapzi Ali, Sumber daya komputasi dan komunikasi, Un...
SIM, Ratna Priatiningsih, Hapzi Ali, Sumber daya komputasi dan komunikasi, Un...
 
4, sim, dwi larasati, hapzi ali, sumber daya komputasi dan komunikasi, univer...
4, sim, dwi larasati, hapzi ali, sumber daya komputasi dan komunikasi, univer...4, sim, dwi larasati, hapzi ali, sumber daya komputasi dan komunikasi, univer...
4, sim, dwi larasati, hapzi ali, sumber daya komputasi dan komunikasi, univer...
 
Sim, muhiyyatul millah, hapzi ali, sumber daya komputasi dan komunikasi, univ...
Sim, muhiyyatul millah, hapzi ali, sumber daya komputasi dan komunikasi, univ...Sim, muhiyyatul millah, hapzi ali, sumber daya komputasi dan komunikasi, univ...
Sim, muhiyyatul millah, hapzi ali, sumber daya komputasi dan komunikasi, univ...
 
Analisis Perancangan Sistem.pptx
Analisis  Perancangan Sistem.pptxAnalisis  Perancangan Sistem.pptx
Analisis Perancangan Sistem.pptx
 

Tugas Kelompok 5 Rekayasa Perangkat Lunak

  • 1. Requirements Engineering D4 Manajemen Informatika 2023D Kelompok 5 MK: Rekayasa Perangkat Lunak NIM NAMA 23091397131 Ainul Yaqin Hidayatul Wachid 23091397135 Akbar Jarullah Fawwas 23091397136 Vicky Wijaya Nur waluddin
  • 2. Objectives • Memahami konsep kebutuhan pengguna dan sistem serta mengapa kebutuhan ini harus ditulis dengan cara yang berbeda. • Memahami perbedaan antara kebutuhan fungsional dan non- fungsional perangkat lunak. • Memahami aktivitas utama rekayasa kebutuhan seperti pengumpulan, analisis, dan validasi, beserta hubungan antara aktivitas-aktivitas tersebut. • Memahami mengapa manajemen kebutuhan diperlukan dan bagaimana hal ini mendukung aktivitas rekayasa kebutuhan lainnya.
  • 3. Contents 1. Functional and non-functional requirements 2. Requirements engineering processes 3. Requirements elicitation 4. Requirements specification 5. Requirements validation 6. Requirements change
  • 4. Kebutuhan untuk sebuah sistem adalah deskripsi dari layanan yang seharusnya disediakan oleh sistem dan batasan-batasan atas operasinya. Kebutuhan-kebutuhan ini mencerminkan kebutuhan pelanggan terhadap sebuah sistem yang melayani tujuan tertentu seperti mengendalikan perangkat, melakukan pemesanan, atau mencari informasi. Jenis kebutuhan ini dibagi menjadi dua yaitu: • Kebutuhan pengguna (User Requirment) adalah pernyataan, dalam bahasa alami ditambah diagram, tentang layanan apa yang diharapkan sistem sediakan kepada pengguna sistem dan batasan-batasan di bawah mana itu harus beroperasi. • Kebutuhan sistem (system requirment) adalah pernyataan, dalam bahasa alami ditambah diagram, tentang layanan apa yang diharapkan sistem sediakan kepada pengguna sistem dan batasan-batasan di bawah mana itu harus beroperasi.
  • 5.
  • 6. Functional And Non-Functional Requirement 1.1 Functional Requirement • Kebutuhan fungsional ini adalah pernyataan mengenai layanan atau fungsi yang harus disediakan oleh sistem seperti, bagaimana sistem harus bereaksi terhadap input tertentu, dan bagaimana sistem harus berperilaku dalam situasi tertentu. Dalam beberapa kasus, kebutuhan fungsional juga mungkin secara eksplisit menyatakan apa yang tidak boleh dilakukan oleh sistem. • Kebutuhan fungsional suatu sistem mendeskripsikan apa yang harus dilakukan sistem secara rinci. Hal Ini tergantung pada jenis perangkat lunak yang dikembangkan.
  • 7. Berikut adalah contoh kebutuhan fungsional untuk sistem Mentcare, yang digunakan untuk menjaga informasi tentang pasien yang menerima perawatan untuk masalah kesehatan mental: 1.Pengguna harus dapat mencari daftar janji temu untuk semua klinik. 2.Sistem harus menghasilkan setiap hari, untuk setiap klinik, daftar pasien yang diharapkan hadir untuk janji temu hari itu. 3.Setiap anggota staf yang menggunakan sistem harus diidentifikasi secara unik oleh nomor pegawai delapan digitnya. • Kebutuhan pengguna ini menentukan fungsionalitas spesifik yang harus dimasukkan dalam sistem yang dapat ditulis dengan tingkat kedetailan yang berbeda.
  • 8. • Dalam kasus seperti itu, fokus harus pada developer kebutuhan informasi yang menentukan berbagai informasi yang diperlukan, bagaimana cara pengirimannya, dan diorganisasikan. Menyebabkan ketidakpastian dalam spesifikasi kebutuhan. • Ketidakpastian dalam spesifikasi kebutuhan dapat menyebabkan perselisihan antara pelanggan dan developer perangkat lunak akibat salah tafsirnya kebutuhan yang ambigu oleh developer. • Idealnya, spesifikasi kebutuhan fungsional sistem harus lengkap dan konsisten. • Namun, konsistensi dan kelengkapan kebutuhan hanya dapat dicapai untuk sistem perangkat lunak yang sangat kecil dalam praktiknya. • Salah satu alasan adalah karena mudah terjadi kesalahan dan kelupaan ketika menulis spesifikasi untuk sistem yang besar dan kompleks.
  • 9. 1.2 Kebutuhan Non-functional • Seperti namanya, adalah kebutuhan yang tidak secara langsung terkait dengan layanan khusus yang disediakan oleh sistem kepada penggunanya. • Kebutuhan non-fungsional ini biasanya menentukan atau membatasi karakteristiksistem secara keseluruhan. • Kebutuhan ini juga dapat berhubungan dengan properti sistem yang muncul seperti keandalan, waktu respons, dan penggunaan memori
  • 10. Penerapan persyaratan ini mungkin tersebar ke seluruh wilayah sistem, karena dua alasan: • Kebutuhan non-fungsional dapat mempengaruhi arsitektur sistem secara keseluruhan daripada komponen individualnya. Misalnya untuk memastikan kinerja itu persyaratan terpenuhi dalam sistem tertanam, mungkin harus mengatur sistem untuk meminimalkan komunikasi antar komponen. • Persyaratan non-fungsional individu, seperti persyaratan keamanan, mungkinmenghasilkan beberapa persyaratan fungsional terkait yang menentukan layanan sistem baru yang diperlukan jika persyaratan non-fungsional ingin diimplementasikan.
  • 11.
  • 12.
  • 13. • Sebuah masalah umum dengan kebutuhan non-fungsional adalah ketika pemangku kepentingan mengusulkan kebutuhan sebagai tujuan umum, seperti kemudahan penggunaan, kemampuan sistem untuk pulih dari kegagalan, atau respons pengguna yang cepat. Hal ini menyebabkan masalah bagi pengembang sistem karena meninggalkan ruang untuk interpretasi dan perselisihan di masa depan setelah sistem disampaikan. • Kebutuhan non-fungsional harus ditulis secara kuantitatif jika memungkinkan agar dapat diuji secara obyektif. Penggunaan metrik tertentu seperti kecepatan proses, keandalan, dan kerentanan dapat membantu menentukan kebutuhan ini. • Konflik antara kebutuhan fungsional dan non-fungsional sering terjadi. Misalnya, kebutuhan identifikasi memerlukan pembaca kartu untuk diinstal di setiap komputer yang terhubung ke sistem, tetapi kebutuhan lain mungkin menginginkan akses mobile dari tablet atau smartphone dokter atau perawat.
  • 14. Requirment Engineering Process Rekayasa kebutuhan melibatkan tiga kegiatan kunci: • Menemukan kebutuhan melalui interaksi dengan pemangku kepentingan (pengumpulan dan analisis). • Mengubah kebutuhan menjadi bentuk standar (spesifikasi). • Memvalidasi kebutuhan untuk memastikan sesuai dengan kebutuhan pelanggan. Awalnya digambarkan sebagai proses berurutan namun sebenarnya bersifat iteratif dan berselang-seling.
  • 15. • Gambar 4.6 menunjukkan penyelarasan ini. Kegiatan-kegiatan tersebut disusun sebagai proses iteratif dalam bentuk spiral. • Pada awal proses, sebagian besar usaha akan dihabiskan untuk memahami kebutuhan bisnis tingkat tinggi dan non- fungsional, dan kebutuhan pengguna untuk sistem. • Kemudian dalam proses, di cincin-cincin luar spiral, lebih banyak usaha akan dipersembahkan untuk menggali dan memahami kebutuhan non-fungsional dan kebutuhan sistem yang lebih rinci.
  • 16. • Model spiral tersebut dapat menampung pendekatan pengembangan di mana kebutuhan dikembangkan dengan tingkat detail yang berbeda. • Jumlah iterasi di sekitar spiral dapat bervariasi sehingga spiral dapat diakhiri setelah beberapa atau semua kebutuhan pengguna telah dipanggil. • Pengembangan agile dapat digunakan sebagai gantinya prototyping sehingga kebutuhan dan implementasi sistem dikembangkan bersama-sama.
  • 17. 4.3.3 Requirements Elicitation • Requirements Elicitation adalah proses pertama dalam rekayasa kebutuhan perangkat lunak yang bertujuan untuk mencari, mengungkap, memperoleh, dan mengelaborasi kebutuhan untuk sistem berbasis computer. Proses ini melibatkan komunikasi, prioritas, negosiasi, dan kolaborasi dengan semua pemangku kepentingan terkait, seperti pengguna dan sponsor proyek. • Proses ini juga melibatkan serangkaian kegiatan seperti memahami domain aplikasi, identifikasi sumber kebutuhan, analisis pemangku kepentingan, dan memilih teknik, pendekatan, dan alat yang digunakan. Requirements Elicitation juga dapat dilakukan dengan menggunakan beberapa metode seperti brainstorming, interview, observasi, dan analisa dokumen
  • 18. Model proses dari proses elisitasi dan analisis ditunjukkan pada Gambar 4.7. Setiap organisasi akan memiliki versi atau penerapannya sendiri dari model umum ini, tergantung pada faktor-faktor lokal seperti keahlian staf, jenis sistem yang dikembangkan, dan standar yang digunakan. Aktivitas prosesnya adalah: Requirements discovery and understanding Ini adalah proses berinteraksi dengan pemangku kepentingan sistem untuk menemukan kebutuhan mereka. Persyaratan domain dari para pemangku kepentingan dan dokumentasi juga ditemukan selama kegiatan ini. Requirements classification and organization Aktivitas ini mengambil kumpulan persyaratan yang tidak terstruktur, mengelompokkan persyaratan yang terkait, dan mengaturnya ke dalam kelompok yang koheren
  • 19. Requirements prioritization and negotiation Ketika beberapa pemangku kepentingan terlibat, persyaratan akan mengalami konflik. Aktivitas ini berkaitan dengan memprioritaskan persyaratan dan menemukan serta menyelesaikan konflik persyaratan melalui negosiasi. Biasanya, para pemangku kepentingan harus bertemu untuk menyelesaikan perbedaan dan menyepakati persyaratan kompromi. Requirements documentation Persyaratan didokumentasikan dan dimasukkan ke dalam putaran spiral berikutnya. Draf awal dari dokumen persyaratan perangkat lunak dapat dihasilkan pada tahap ini, atau persyaratan dapat dikelola secara informal di papan tulis, wiki, atau ruang bersama lainnya
  • 20. Teknik elisitasi persyaratan Wawancara Wawancara formal atau informal dengan pemangku kepentingan sistem adalah bagian dari sebagian besar proses rekayasa persyaratan. Dalam wawancara ini, tim teknik persyaratan mengajukan pertanyaan kepada pemangku kepentingan tentang sistem yang saat ini mereka gunakan dan sistem yang akan dikembangkan. Persyaratan berasal dari jawaban atas pertanyaan-pertanyaan ini. Wawancara dapat terdiri dari dua jenis: • Wawancara tertutup, di mana pemangku kepentingan menjawab serangkaian pertanyaan yang telah ditentukan. • Wawancara terbuka, di mana tidak ada agenda yang telah ditentukan. Tim teknik persyaratan mengeksplorasi berbagai masalah dengan pemangku kepentingan sistem dan karenanya mengembangkan pemahaman yang lebih baik tentang kebutuhan mereka.
  • 21. Teknik elisitasi persyaratan Ethnography Etnografi sangat efektif untuk menemukan dua jenis persyaratan: • Persyaratan berasal dari cara di mana orang benar-benar bekerja, daripada cara di mana definisi proses bisnis mengatakan mereka harus bekerja. Dalam praktiknya, orang tidak pernah mengikuti proses formal. Misalnya, pengendali lalu lintas udara dapat mematikan sistem peringatan konflik yang mendeteksi pesawat dengan jalur penerbangan yang berpotongan, meskipun prosedur kontrol normal menentukan bahwa itu harus digunakan. Sistem peringatan konflik sensitif dan mengeluarkan peringatan yang dapat didengar bahkan ketika pesawat berjauhan. • Persyaratan berasal dari kerja sama dan kesadaran akan kegiatan orang lain. Misalnya, pengendali lalu lintas udara (ATC) dapat menggunakan kesadaran akan pekerjaan kontrol lain untuk memprediksi jumlah pesawat yang akan memasuki sektor kontrol mereka. Mereka kemudian memodifikasi strategi kontrol mereka tergantung pada beban kerja yang diprediksi.
  • 22. Etnografi dapat dikombinasikan dengan pengembangan prototipe sistem (Gambar 4.8). Etnografi menginformasikan pengembangan prototipe sehingga siklus penyempurnaan prototipe lebih sedikit diperlukan. Selanjutnya, prototyping memfokuskan etnografi dengan mengidentifikasi masalah dan pertanyaan yang kemudian dapat didiskusikan dengan etnografer. Dia kemudian harus mencari jawaban atas pertanyaan-pertanyaan ini selama fase berikutnya dari studi sistem (Sommerville et al. 1993).
  • 23. Cerita dan skenario Skenario dimulai dengan garis besar interaksi. Selama proses elisitasi, detail ditambahkan untuk membuat deskripsi lengkap tentang interaksi tersebut. Pada yang paling umum, skenario dapat mencakup: Deskripsi tentang apa yang diharapkan sistem dan pengguna saat skenario dimulai. Deskripsi aliran normal peristiwa dalam skenario. Deskripsi tentang apa yang bisa salah dan bagaimana masalah yang dihasilkan dapat ditangani. Informasi tentang kegiatan lain yang mungkin terjadi pada saat yang sama. Deskripsi status sistem saat skenario berakhir.
  • 24. 4.4 Spesifikasi persyaratan Spesifikasi persyaratan adalah proses menuliskan persyaratan pengguna dan sistem dalam dokumen persyaratan. Idealnya, persyaratan pengguna dan sistem harus jelas, tidak ambigu, mudah dimengerti, lengkap, dan konsisten. Namun, pada tingkat detail yang diperlukan untuk sepenuhnya menentukan sistem perangkat lunak yang kompleks, tidak mungkin atau tidak diinginkan untuk mengecualikan semua informasi desain. Ada beberapa alasan untuk ini: Anda mungkin harus merancang arsitektur awal sistem untuk membantu menyusun spesifikasi persyaratan. Persyaratan sistem diatur sesuai dengan subsistem yang berbeda yang membentuk sistem. Dalam kebanyakan kasus, sistem harus beroperasi dengan sistem yang ada, yang membatasi desain dan memaksakan persyaratan pada sistem baru. Penggunaan arsitektur khusus untuk memenuhi persyaratan non-fungsional, seperti pemrograman versi-N untuk mencapai keandalan, yang dibahas dalam Bab 11, mungkin diperlukan. Regulator eksternal yang perlu menyatakan bahwa sistem tersebut aman dapat menentukan bahwa desain arsitektur yang telah disertifikasi harus digunakan.
  • 25. 4.4.1 Spesifikasi bahasa alami Bahasa alami telah digunakan untuk menulis persyaratan untuk perangkat lunak sejak tahun 1950-an. Ini ekspresif, intuitif, dan universal. Ini juga berpotensi kabur dan ambigu, dan interpretasinya tergantung pada latar belakang pembaca. Akibatnya, telah banyak proposal untuk cara-cara alternatif untuk menulis persyaratan. Namun, tidak satu pun dari proposal ini telah diadopsi secara luas, dan bahasa alami akan terus menjadi cara yang paling banyak digunakan untuk menentukan persyaratan sistem dan perangkat lunak. Untuk meminimalkan kesalahpahaman saat menulis persyaratan bahasa alami, saya sarankan Anda mengikuti panduan sederhana ini:
  • 26. Ciptakan format standar dan pastikan bahwa semua definisi persyaratan mematuhi format itu. Gunakan bahasa secara konsisten untuk membedakan antara persyaratan wajib dan yang diinginkan. Gunakan penyorotan teks (tebal, miring, atau warna) untuk memilih bagian penting dari persyaratan. Jangan berasumsi bahwa pembaca memahami teknis, bahasa rekayasa perangkat lunak. Sangat mudah untuk kata-kata seperti "arsitektur" dan "modul" untuk disalahpahami. Jika memungkinkan, Anda harus menghindari penggunaan jargon, singkatan, dan akronim. Bila memungkinkan, Anda harus mencoba mengaitkan alasan dengan setiap kebutuhan pengguna..
  • 27. 4.4.2 Spesifikasi terstruktur Bahasa alami terstruktur adalah cara penulisan persyaratan sistem di mana persyaratan ditulis dengan cara standar daripada sebagai teks bentuk bebas. Pendekatan ini mempertahankan sebagian besar ekspresi dan pemahaman bahasa alami tetapiBahasa alami terstruktur adalah cara penulisan persyaratan sistem di mana persyaratan ditulis dengan cara standar daripada sebagai teks bentuk bebas. Pendekatan ini mempertahankan sebagian besar ekspresi dan pemahaman bahasa alami tetapi Untuk menggunakan pendekatan terstruktur untuk menentukan persyaratan sistem, Anda menentukan satu atau beberapa template standar untuk persyaratan dan mewakili template ini sebagai formulir terstruktur. Spesifikasi dapat disusun di sekitar objek yang dimanipulasi oleh sistem, fungsi yang dilakukan oleh sistem, atau peristiwa yang diproses oleh sistem. Contoh spesifikasi berbasis formulir, dalam hal ini, yang mendefinisikan cara menghitung dosis insulin yang akan diberikan ketika gula darah berada dalam pita yang aman, ditunjukkan pada Gambar 4.13.
  • 28.
  • 29. Ketika format standar digunakan untuk menentukan persyaratan fungsional, informasi berikut harus disertakan: Deskripsi fungsi atau entitas yang ditentukan. Deskripsi input dan asal input ini. Deskripsi output dan tujuan output ini. Informasi tentang informasi yang diperlukan untuk perhitungan atau entitas lain dalam sistem yang diperlukan (bagian "membutuhkan"). Deskripsi tindakan yang akan diambil. Jika pendekatan fungsional digunakan, prasyarat menetapkan apa yang harus benar sebelum fungsi dipanggil, dan postcondition menentukan apa yang benar setelah fungsi dipanggil. Deskripsi efek samping (jika ada) dari operasi.
  • 30. Tabel sangat berguna ketika ada sejumlah kemungkinan situasi alternatif dan Anda perlu menjelaskan tindakan yang harus diambil untuk masing-masing. Pompa insulin mendasarkan perhitungannya dari kebutuhan insulin pada tingkat perubahan kadar gula darah. Tingkat perubahan dihitung menggunakan pembacaan saat ini dan sebelumnya. Gambar 4.14 adalah deskripsi tabular tentang bagaimana laju perubahan gula darah digunakan untuk menghitung jumlah insulin yang akan dikirimkan.
  • 31. 4.4.3 Kasus penggunaan Kasus penggunaan adalah cara untuk menggambarkan interaksi antara pengguna dan sistem menggunakan model grafis dan teks terstruktur. Mereka pertama kali diperkenalkan dalam metode Objectory (Jacobsen et al. 1993) dan sekarang telah menjadi fitur mendasar dari Unified Modeling Language (UML). Dalam bentuknya yang paling sederhana, kasus penggunaan mengidentifikasi aktor yang terlibat dalam interaksi dan menyebutkan jenis interaksi. Anda kemudian menambahkan informasi tambahan yang menjelaskan interaksi dengan sistem. Informasi tambahan dapat berupa deskripsi tekstual atau satu atau lebih model grafis seperti urutan UML atau bagan negara (lihat Bab 5). Kasus penggunaan mengidentifikasi interaksi individu antara sistem dan penggunanya atau sistem lain. Setiap kasus penggunaan harus didokumentasikan dengan deskripsi tekstual. Ini kemudian dapat dihubungkan ke model lain di UML yang akan mengembangkan skenario secara lebih rinci. Misalnya, deskripsi singkat tentang kasus penggunaan Konsultasi Penyiapan dari Gambar 4.15 mungkin:
  • 32. Konsultasi pengaturan memungkinkan dua atau lebih dokter, yang bekerja di kantor yang berbeda, untuk melihat catatan pasien yang sama pada saat yang bersamaan. Seorang dokter memulai konsul dengan memilih orang-orang yang terlibat dari menu dropdown dokter yang sedang online. Catatan pasien kemudian ditampilkan di layar mereka, tetapi hanya dokter yang memulai yang dapat mengedit catatan. Selain itu, jendela obrolan teks dibuat untuk membantu mengoordinasikan tindakan. Diasumsikan bahwa panggilan telepon untuk kation komunikasi suara dapat diatur secara terpisah.
  • 33. 4.4.4 Dokumen persyaratan perangkat lunak Dokumen persyaratan perangkat lunak (kadang-kadang disebut spesifikasi persyaratan perangkat lunak atau SRS) adalah pernyataan resmi tentang apa yang harus diterapkan oleh pengembang sistem. Ini dapat mencakup persyaratan pengguna untuk suatu sistem dan spesifikasi terperinci dari persyaratan sistem. Terkadang persyaratan pengguna dan sistem diintegrasikan ke dalam satu deskripsi. Dalam kasus lain, persyaratan pengguna dijelaskan dalam bab pengantar dalam spesifikasi persyaratan sistem. Dokumen persyaratan memiliki beragam pengguna, mulai dari manajemen senior organisasi yang membayar sistem hingga insinyur yang bertanggung jawab untuk mengembangkan perangkat lunak. Gambar 4.16 menunjukkan kemungkinan pengguna dokumen dan bagaimana mereka menggunakannya.
  • 34.
  • 35. Requirements validation • Validasi kebutuhan adalah proses memastikan bahwa kebutuhan- kebutuhan tersebut secara tepat mendefinisikan sistem yang diinginkan oleh pelanggan. Proses ini sering kali berhubungan erat dengan tahapan pengumpulan informasi dan analisis, karena tujuannya adalah untuk menemukan masalah-masalah yang mungkin ada dalam kebutuhan tersebut. Validasi kebutuhan sangat penting karena kesalahan dalam dokumen kebutuhan dapat menyebabkan biaya pengulangan yang besar saat masalah-masalah ini ditemukan selama pengembangan atau setelah sistem beroperasi.
  • 36. • Selama proses validasi kebutuhan, berbagai jenis pemeriksaan harus dilakukan pada dokumen kebutuhan. Pemeriksaan ini meliputi: 1. Validity checks: Memastikan bahwa kebutuhan mencerminkan kebutuhan nyata pengguna sistem. 2. Consistency checks: Memastikan bahwa tidak ada konflik antara kebutuhan yang terdapat dalam dokumen. 3. Completeness checks: Memastikan bahwa dokumen kebutuhan mencakup semua fungsi dan batasan yang dimaksudkan oleh pengguna sistem. 4. Realism checks: Memastikan bahwa kebutuhan dapat diimplementasikan dalam anggaran yang diajukan untuk sistem. 5. Verifiability: Memastikan bahwa kebutuhan sistem dapat diverifikasi dengan menguji apakah sistem yang disampaikan memenuhi setiap kebutuhan yang ditentukan.
  • 37. • Beberapa teknik validasi kebutuhan yang dapat digunakan secara individu atau bersama-sama antara lain: 1. Requirements reviews: Kebutuhan dianalisis secara sistematis oleh tim pemeriksa untuk menemukan kesalahan dan inkonsistensi. 2. Prototyping: Pengembangan model eksekutif sistem yang digunakan bersama pengguna akhir dan pelanggan untuk memastikan apakah memenuhi kebutuhan dan harapan mereka. Para pemangku kepentingan mencoba sistem tersebut dan memberikan umpan balik perubahan kebutuhan kepada tim pengembangan. 3. Test-case generation: Kebutuhan harus dapat diuji. Jika tes untuk kebutuhan tersebut dirancang sebagai bagian dari proses validasi, ini sering mengungkap masalah kebutuhan. Jika suatu tes sulit atau tidak mungkin dirancang, ini biasanya berarti kebutuhan akan sulit diimplementasikan dan harus dipertimbangkan kembali. Mengembangkan tes dari kebutuhan pengguna sebelum menulis kode merupakan bagian integral dari pengembangan berbasis tes.
  • 38. Requirements change • Kebutuhan untuk sistem perangkat lunak besar selalu berubah. Salah satu alasan perubahan yang sering terjadi adalah bahwa sistem-sistem ini sering dikembangkan untuk menangani “masalah jahat” – masalah yang tidak dapat sepenuhnya didefinisikan (Rittel dan Webber 1973). Karena masalahnya tidak dapat sepenuhnya didefinisikan, kebutuhan perangkat lunak kemungkinan besar akan berubah.
  • 39. • Saat proses pengembangan perangkat lunak berlangsung, pemahaman para pemangku kepentingan tentang masalah terus berubah. Oleh karena itu, kebutuhan sistem harus berkembang untuk mencerminkan pemahaman yang berubah tentang masalah tersebut.
  • 40. • Setelah sistem terpasang dan digunakan, kebutuhan baru tak terhindarkan. Sebagian karena kesalahan dalam kebutuhan awal yang harus diperbaiki. Namun, kebanyakan perubahan kebutuhan muncul karena perubahan lingkungan bisnis: 1. Lingkungan bisnis dan teknis selalu berubah setelah instalasi. Perangkat keras baru mungkin diperkenalkan, prioritas bisnis dapat berubah, dan regulasi baru mungkin diberlakukan. 2. Pembayar sistem dan pengguna jarang sama. Pembayar sistem menetapkan kebutuhan berdasarkan kendala organisasi dan anggaran, mungkin bertentangan dengan kebutuhan pengguna. 3. Sistem besar memiliki beragam pemangku kepentingan dengan kebutuhan yang berbeda. Kebutuhan akhir merupakan kompromi, dan kadang perlu disesuaikan ulang sesuai pengalaman.
  • 41. • Saat kebutuhan terus berkembang, Anda perlu melacak kebutuhan individual dan menjaga hubungan antara kebutuhan yang saling bergantung sehingga Anda dapat menilai dampak perubahan kebutuhan. Oleh karena itu, Anda memerlukan proses formal untuk membuat proposal perubahan dan menghubungkannya dengan kebutuhan sistem. Proses ini dikenal sebagai “manajemen kebutuhan” dan sebaiknya dimulai segera setelah versi draf dokumen kebutuhan tersedia. • Proses pengembangan Agile telah dirancang untuk mengatasi kebutuhan yang berubah selama proses pengembangan. Dalam proses ini, ketika pengguna mengusulkan perubahan kebutuhan, perubahan tersebut tidak melalui manajemen perubahan formal.
  • 42. 4.6.1 Requirements management planning Requirements management planning berkaitan dengan menetapkan bagaimana satu set kebutuhan yang berkembang akan dikelola. Selama tahap perencanaan, Anda harus memutuskan beberapa isu: 1. Requirements identification setiap kebutuhan harus diidentifikasi secara unik sehingga dapat dirujuk dengan kebutuhan lainnya dan digunakan dalam penilaian jejak. 2. A change management process ini adalah serangkaian aktivitas yang menilai dampak dan biaya perubahan. Saya akan membahas proses ini lebih detail dalam bagian berikutnya. 3. Traceability policies Kebijakan ini menetapkan hubungan antara setiap kebutuhan dan antara kebutuhan dan desain sistem yang harus dicatat. Kebijakan jejak juga harus menetapkan bagaimana catatan-catatan ini harus dipelihara. 4. Tool support Manajemen kebutuhan melibatkan pemrosesan informasi besar tentang kebutuhan. Alat yang dapat digunakan bervariasi mulai dari sistem manajemen kebutuhan khusus hingga spreadsheet bersama dan sistem basis data sederhana.
  • 43. • Requirements management memerlukan dukungan otomatis, dan alat perangkat lunak untuk ini harus dipilih selama fase perencanaan. Anda memerlukan dukungan alat untuk: 1. Requirements storage : Kebutuhan harus dipelihara dalam penyimpanan data yang aman dan dikelola yang dapat diakses oleh semua pihak yang terlibat dalam proses rekayasa kebutuhan.
  • 44. 2. Change management: Proses ini lebih mudah dengan dukungan alat yang dapat melacak dan merespons perubahan yang disarankan. 3. Traceability: Alat ini memungkinkan penemuan kebutuhan terkait dan dapat menggunakan teknik pemrosesan bahasa alami. Untuk sistem kecil, dokumen web bersama, spreadsheet, dan basis data cukup untuk mendukung manajemen kebutuhan. Namun, untuk sistem yang lebih besar, alat khusus seperti DOORS (IBM 2013) sangat membantu dalam melacak banyaknya kebutuhan yang berubah.
  • 45. 4.6.2 Requirements change management Requirements change management harus diterapkan pada semua perubahan yang diusulkan terhadap kebutuhan sistem setelah dokumen kebutuhan disetujui. Manajemen perubahan penting karena Anda perlu memutuskan apakah manfaat dari menerapkan kebutuhan baru dibenarkan oleh biaya implementasi. Keuntungan menggunakan proses formal untuk manajemen perubahan adalah bahwa semua proposal perubahan diperlakukan secara konsisten dan perubahan pada dokumen kebutuhan dibuat dengan terkendali.
  • 46. 1. Problem analysis and change specification: Proses dimulai dengan mengidentifikasi masalah kebutuhan atau proposal perubahan. Masalah atau proposal tersebut dianalisis untuk memastikan validitasnya, dan hasilnya disampaikan kembali kepada pengusul perubahan. 2. Change analysis and costing: Dampak perubahan dievaluasi menggunakan informasi jejak dan pengetahuan sistem. Biaya perubahan diperkirakan termasuk modifikasi dokumen kebutuhan dan desain sistem. Setelah analisis, keputusan diambil untuk melanjutkan atau tidak perubahan kebutuhan. 3. Change implementation: Dokumen kebutuhan, dan jika perlu, desain dan implementasi sistem dimodifikasi. Dokumen kebutuhan sebaiknya diatur agar perubahan dapat dilakukan tanpa penulisan ulang atau reorganisasi yang luas. Seperti halnya dengan program, kemampuan untuk diubah dalam dokumen dapat dicapai dengan meminimalkan referensi eksternal dan membuat bagian-bagian dokumen semodular mungkin. Dengan demikian, bagian-bagian individu dapat diubah dan diganti tanpa memengaruhi bagian lain dari dokumen.
  • 47. References • Ian Sommerville, 2016, Software Engineering, Tenth Edition, Pearson Education Limited, Edinburgh Gate, Harlow, Essex CM20 2JE, England