Requirements Engineering -...
Transcript of Requirements Engineering -...
![Page 1: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/1.jpg)
Requirements
EngineeringMateri 5
![Page 2: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/2.jpg)
Requirements Engineering
• Problems with requirements practices
• Requirements engineering tasks (Inception, Elicitation,
Elaboration, Negotiation, Specification, Validation, Requirements
management)
• Initiating the Requirements Engineering Process
• Collaborative Requirement Gathering
• Developing Use Case
(Source: Pressman, R. Software Engineering: A Practitioner’s Approach. McGraw-Hill, 2005)
![Page 3: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/3.jpg)
3
The Problems with our
Requirements Practices
• Kesulitan memahami kebutuhan dari pelanggan
• Persyaratan sering direkam dengan tidak teratur
• Menghabiskan terlalu banyak waktu memverifikasi data
• Membolehkan perubahan untuk pengendalian, dari padamembangun mekanisme untuk mengontrol perubahan
• Yang paling penting, gagal untuk membangun dasar yangkuat untuk sistem atau membangun perangkat lunak yangdiinginkan pengguna
(more on next slide)
![Page 4: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/4.jpg)
4
The Problems with our
Requirements Practices (continued)
• Banyak pengembang software berpendapat bahwa– Membangun perangkat lunak begitu menarik bahwa sehingga ingin
langsung memulai (sebelum memiliki pemahaman yang jelas tentang apayang dibutuhkan)
– Hal akan menjadi jelas saat kita membangun perangkat lunak
– Stakeholder proyek akan dapat lebih memahami apa yang merekabutuhkan hanya setelah memeriksa iterasi awal dari perangkat lunak
– Banyak hal yang berubah begitu cepatnya bahwa kebutuhan rekayasaadalah buang-buang waktu
– Intinya adalah memproduksi program kerja dan bahwa semua yang lainadalah sekunder
• Semua argumen ini mengandung beberapa kebenaran,terutama untuk proyek-proyek kecil yang memakan waktukurang dari satu bulan untuk menyelesaikan
• Namun, sebagai perangkat lunak tumbuh dalam ukurandan kompleksitas, argumen ini mulai rusak dan dapatmenyebabkan proyek software gagal
![Page 5: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/5.jpg)
5
A Solution: Requirements
Engineering
• Dimulai selama kegiatan komunikasi dan berlanjut sampai
kegiatan modeling.
• Membangun jembatan dari sistem Requirements ke dalam
desain software dan konstruksi
• Memungkinkan kebutuhan engineering untuk memeriksa
– Konteks kerja perangkat lunak yang akan dilakukan
– Kebutuhan spesifik bahwa desain dan konstruksi harus mengatasi
– Prioritas yang memandu urutan pekerjaan yang harus diselesaikan
– Informasi, fungsi, dan perilaku yang akan memiliki dampak yang
mendalam pada desain yang dihasilkan
![Page 6: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/6.jpg)
Why is Getting Good
Requirements Hard? Stakeholder tidak tahu apa yang mereka inginkan.
Stakeholder mengungkapkan persyaratan dalam istilah merekasendiri.
Stakeholder yang berbeda mungkin memiliki persyaratan yangsaling bertentangan.
Faktor Organisasi dan politik dapat mempengaruhi persyaratansistem.
Persyaratan berubah selama proses RE. Stakeholder barumungkin muncul dan perubahan lingkungan bisnis.
![Page 7: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/7.jpg)
Requirements Engineering Tasks
Requirements Engineering menyediakan
mekanisme untuk memahami keinginan client,
menganalisa kebutuhan, menilai fisibilitas solusi,
melakukan negosiasi pemilihan solusi yang tepat,
menghilangkan ambigu, memvalidasi solusi,
“mengelola” kebutuhan agar dapat diubah ke
bentuk sistem operasional.
![Page 8: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/8.jpg)
Requirements Engineering Tasks(cont.)
Rekayasa kebutuhan membangun jembatan
menuju desain dan pembangunan perangkat lunak
dengan menyediakan mekanisme yang tepat untuk
memahami apa yang diinginkan klien,
menganalisis kebutuhan, menguji kelayakan,
bernegosiasi untuk solusi yang masuk akal,
menetapkan solusi yang dapat dipahami dua belah
pihak, uji spesifikasi dan mengelola kebutuhan
yang akan diwujudkan ke sistem operasional.
![Page 9: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/9.jpg)
9
Requirements Engineering Tasks(cont.)
Seven distinct tasks
1. Inception (Permulaan)
2. Elicitation
3. Elaboration (Perluasan)
4. Negotiation
5. Specification
6. Validation
7. Management
Beberapa tugas ini dapat terjadi secara paralel dan semua disesuaikan dengan kebutuhan proyek
Semua berusaha untuk menentukan apa yang pelanggan inginkan
Semua berfungsi untuk membangun dasar yang kuat untuk desain dan konstruksi dari perangkat lunak
![Page 10: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/10.jpg)
Inception
Inception atau permulaan, merupakan awal dari terjadinya
pembicaraan tentang kebutuhan akan software. Permulaan ini
dapat terjadi karena dari pembicaraan biasa,kebutuhan bisnis
yang dirasakan, adanya pasar potensial, atau munculnya
layanan potensial yang dapat dilakukan oleh software.
Mengidentifikasi stakeholder
Siapa yg menginginkan sistem/program?
Siapa yg menggunakan solusi?
Apa keuntungan ekonomis dari suatu solusi yang sukses ?
Apakah dibutuhkan sumber yang lain?
![Page 11: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/11.jpg)
Inception
Memahami masalah
Bagaimana karakteristik solusi yg baik ?
Masalah apa yang dipecahkan oleh solusi tsb?
Bagaimana kondisi business environment dimana solusi
tersebut diimplementasikan?
Apakah ada masalah dan batasan tertentu yag
mempengaruhi pendekatan solusi ?
![Page 12: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/12.jpg)
Elicitation
Klien mengungkapkan kebutuhan. Proses ini tidak
mudah karena: batasan sistem sering tidak jelas,
klien tidak cukup paham apa yang dibutuhkan dan
kebutuhan sering berubah. Problems of scope
Problems of understanding
Problems of volatility
![Page 13: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/13.jpg)
Elicitation
Product Request
1. Membuat daftar semua objek yang merupakan bagian dari
sistem.
2. Membuat daftar semua obyek yg dihasilkan oleh sistem
3. Membuat daftar semua obyek yg digunakan oleh sistem.
4. Membuat daftar fungsi/piranti/proses yg berinteraksi dg
obyek2 tersebut.
5. Membuat batasan dan kriteria performa.
![Page 14: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/14.jpg)
Elaboration
Penjelasan. Apa yang diungkapkan pada proses
permulaan dan pengungkapan kebutuhan,
dijelaskan panjang lebar.
Fokus pada pemodelan fungsi, fitur dan batasan
dari perangkat lunak.
Dalam kasus OOP, maka class, atribute dan
hubungan antar class diidentifikasi pada aktifitas
ini.
![Page 15: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/15.jpg)
Negotiation
Negosiasi bukanlah suatu kompetisi
Buat suatu strategi (Apa yg kita inginkan? Apa yg
client inginkan ?)
Mendengarkan secara aktif.
Fokus pada apa yg menjadi keinginan client.
Jangan anggap ‘personal’
Jadilah kreatif
Komitmen terhadap keputusan yg diambil.
Gunakan priority points !!!
![Page 16: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/16.jpg)
Negotiation
Examines the specification to ensure that all software requirements have
been stated unambiguosly; that inconsistencies, omissions and errors have
been detected and corrected
“Memeriksa spesifikasi untuk memastikan bahwa semua persyaratan
perangkat lunak telah dinyatakan jelas bahwa inkonsistensi, kelalaian dan
kesalahan telah dideteksi dan dikoreksi ”
![Page 17: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/17.jpg)
Specification
Spesifikasi dapat berupa dokumen, model grafik,
model matematika, skenario atau prototype yang
merupakan produk akhir dari rekayasa kebutuhan.
Apa yang disajikan sebagai spesifikasi merupakan
hasil identifikasi kebutuhan melalui aktifitas-
aktifitas sebelumnya.
Spesifikasi menggambarkan fungsi dan kenerja
dari perangkat lunak dan batasan-batasan yang
ditentukan.
![Page 18: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/18.jpg)
Validation
Menguji kualitas dari spesifikasi untuk
memastikan kebutuhan yang dinyatakan dapat
diterima/sepaham, konsisten, lengkap dan bebas
kesalahan.
Mekanisme yang dapat dilakukan adalah formal
technical review atau pertemuan evaluasi teknis.
![Page 19: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/19.jpg)
Management
mengelola kebutuhan dengan identifikasi, kontrol
dan mengikuti perkembangan kebutuhan software
yang dikerjakan selama proyek dan perubahan-
perubahan yang terjadi.
![Page 20: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/20.jpg)
Initiating The Requirements
Engineering Process• Identifikasi stakeholders (pemangku kepentingan)
• Mengakui keberadaan beberapa sudut pandang stakeholder
• Bekerja kolaborasi antara stakeholder
• Pertanyaan bebas konteks ini fokus pada pelanggan,
stakeholder, tujuan keseluruhan, dan manfaat dari sistem
– Siapa yang meminta untuk bekerja?
– Siapa yang akan menggunakan solusi?
– Apa yang akan menjadi keuntungan ekonomi dari solusi yang
sukses?
– Apakah ada sumber lain untuk solusi yang dibutuhkan?
![Page 21: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/21.jpg)
Initiating The Requirements
Engineering Process• Set pertanyaan berikutnya memungkinkan pengembang untuk lebih
memahami masalah dan persepsi pelanggan berdasarkan solusi
– Bagaimana ciri output yang bagus untuk solusi yang sukses?
– Apa masalah dari solusi ini?
– Dapatkah Anda menggambarkan lingkungan bisnis dimana solusi
digunakan?
– Adakah kendala yang mempengaruhi dalam pendekatan solusi?
• Set pertanyaan terakhir berfokus pada efektivitas komunikasi
– Apakah Anda orang terbaik untuk memberikan jawaban “resmi” atas
pertanyaan ini?
– Apakah pertanyaan saya relevan dengan masalah Anda?
– Apakah saya terlalu banyak bertanya?
– Dapatkah orang lain memberikan informasi tambahan?
– Haruskah saya meminta Anda menjawab apapun?
![Page 22: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/22.jpg)
How would you resolve
this?
22
![Page 23: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/23.jpg)
Collaborative Requirement
Gathering• Rapat yang dihadiri oleh seluruh pemangku kepentingan.
• Aturan ditetapkan untuk persiapan dan partisipasi.
• Agenda harus cukup untuk menutup semua poin pentingformal, tapi cukup informal untuk mendorong aliran ide.
• Seorang fasilitator mengendalikan pertemuan.
• Mekanisme definisi (papan tulis, sandal grafik, dll) yangdigunakan..
• Dalam pertemuan tersebut:– Masalahnya diidentifikasi.– Elemen dari solusi yang diusulkan.– Pendekatan yang berbeda dinegosiasikan.– Seragkaian dari persyaratan solusi diperoleh.– Atmosfer kolaboratif dan non-membahayakan..
![Page 24: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/24.jpg)
Collaborative requirement
gathering• Dalam pertemuan awal, mendistribusikan "permintaan produk"
(didefinisikan oleh stakeholder) untuk semua peserta.
• Berdasarkan permintaan produk, masing-masing peserta diminta untukmembuat
– Daftar objek (internal atau benda sistem eksternal)
– Daftar (Proses atau fungsi)
– Daftar kendala (biaya, ukuran, aturan bisnis) dan
– kriteria kinerja (kecepatan, ketepatan) yang dikembangkan.
• Mengumpulkan daftar dari semua orang dan digabungkan.
• Daftar gabungan meniadakan entri berlebihan, menambahkan ide-ide baru, tetapi tidak menghapus.
• Tujuannya adalah untuk mengembangkan daftar konsensus di setiaparea topik (objects, services, constraints and performance).
![Page 25: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/25.jpg)
• Berdasarkan daftar, tim dibagi menjadi lebih kecil sub-tim: setiap bekerja untuk mengembangkan mini-spesifikasiuntuk satu atau lebih masukan pada setiap daftar.
• Setiap sub-tim hadiah yang mini-spesifikasi untuk semuapeserta diskusi. Selain itu, penghapusan dan elaborasilebih lanjut dibuat.
• Sekarang masing-masing tim membuat daftar kriteriavalidasi untuk produk dan hadir untuk tim.
• Akhirnya, satu atau lebih peserta ditugaskan tugas menulisdraft spesifikasi lengkap.
Collaborative Requirement
Gathering
![Page 26: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/26.jpg)
Use Cases
26
![Page 27: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/27.jpg)
Developing Use Case
• Use Case menggambarkan interaksi antara pengguna dan
sistem.
• Berfokus pada apa sistem dilakukan untuk pengguna.
• Menggambarkan totalitas sistem dan perilaku sistem.
• Includes:
– Actors List
– Use Case Packages
– Use Case Diagrams
– Use Case Text
– Use Case Views :
27
![Page 28: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/28.jpg)
Activities Involved in Use Cases
• Find Actors
– Project Manager
– Architect
– End-Users
– Customers
– Development Team
• Find Use Cases
• Describe the use case
28
![Page 29: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/29.jpg)
Steps for Developing Use case
Diagram1. Use Abstract Idea
2. Define use case actors
3. Define use case actors goals
4. Identify reuse opportunity for use case
5. Create use case inedx
6. Identify the key components
7. Name and briefly describe the use case
8. Create use case basic view
9. Create use case alternate flows
10. Produre the use case decument
11. Generate a use case model diagram
29
![Page 30: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/30.jpg)
Sample Use Case Diagram
30
![Page 31: Requirements Engineering - dinus.ac.iddinus.ac.id/repository/docs/ajar/Rpl_5_Requirements_Engineering.pdf–Prioritas yang memandu urutan pekerjaan yang harus diselesaikan –Informasi,](https://reader030.fdocuments.net/reader030/viewer/2022021723/5ca546b888c9930a6e8bfc7e/html5/thumbnails/31.jpg)
Terima Kasih
31