Konsep Rekayasa Kebutuhan Analisis dan Desain SI Fajar Pradana S.ST., M.Eng
Tujuan Perkuliahan Memahami pengertian dan urgensi rekayasa kebutuhan Memahami proses rekayasa kebutuhan Memahami problem-problem dalam rekayasa kebutuhan
Agenda Pengertian kebutuhan dan rekayasa kebutuhan Urgensi dan fungsi Proses Problem-problem
Motivation "The hardest single part of building a system is deciding what to build" [Brooks - 1987]
Anonymous Customer "I know you believe you understood what you think I said, but I am not sure you realize that what you heard is not what I meant . . . . ."
Catastrophe
Apa itu RE? RE - requirements engineering istilah lain dari requirements analysis Each software development process goes through the phase of RE The process of establishing the services that the customer requires from a system and the constraints under which it operates and is developed [Ian Sommerville] The broad spectrum of tasks and techniques that lead to an understanding of requirements [Roger S. Pressman]
Requirement? Suatu kondisi atau kemampuan yang dibutuhkan oleh pengguna untuk menyelesaikan permasalahan atau untuk mencapai sebuah tujuan [IEEE] Sebuah kondisi atau kemampuan yang harus dipenuhi atau dimiliki oleh sebuah sistem...untuk memenuhi sebuah kontrak, standard, spesifikasi, atau dokumen2 formal lainnya [IEEE] Setiap fungsi, batasan, atau properti lainnya yang harus disediakan, dimiliki atau dipenuhi untuk mencapai kebutuhan dari sistem yang dimaksudkan oleh pengguna [R. J. Abbott]
Kategori Kebutuhan Functional what a system does Deskripsi proses, masukan dan keluaran Non-functional constraint or quality of a system Performance, availability, security, reliability, implementation & design constraints, storage size Usability constraint to use Acceptance criteria, end-user characteristics, system environments
Level Kebutuhan Normal requirement kebutuhan yang harus dipenuhi dan dinyatakan secara eksplisit Fungsionalitas sistem, unjuk kerja Expected requirement kebutuhan yang tidak dinyatakan secara eksplisit tetapi menentukan kepuasan customer Kemudahan interaksi dengan sistem, correctness Exciting requirement kebutuhan yang melebihi dari kebutuhan normal untuk lebih memuaskan customer Fungsionalitas tambahan sistem
Urgensi dan fungsi If you don't analyze, it's highly likely that you'll build a very elegant software solution that solves the wrong problem. The result is wasted time and money, personal frustration, and unhappy customers [Roger S. Pressman] Fungsi RE: Sebagai kesepakatan antara developer, customer dan pengguna akhir akan kebutuhan yang harus dipenuhi Untuk menyediakan dasar yang akurat bagi perancangan perangkat lunak Untuk menyediakan referensi bagi dilakukannya validasi PL
Proses Penggalian dan analisis kebutuhan (s/w req. elicitation and analysis) Spesifikasi kebutuhan (s/w req. specification) Validasi & verifikasi kebutuhan (s/w req. validation and verification) Manajemen kebutuhan (s/w req. management)
Proses Inception
Negotiation Requirement Management Elicitation
Specification Elaboration
Validation
Elisitasi dan analisis Developer harus memahami domain permasalahan Developer dan stakeholder menggali domain aplikasi, layanan- layanan sistem yang harus disediakan, unjuk kerja sistem yang diperlukan, batasan-batasan perangkat keras dan sejenisnya Fokus pada A P A (WHAT) dan B U K A N bagaimana (HOW) Komunikasi adalah faktor penting
Inception Dalam tahapan ini pengembang menanyakan pertanyaan yang berkaitan dengan ... Pemahaman dasar tentang domain masalah Pengguna yang amenginginkan solusi Sifat solusi yang diinginkan Tata cara komunikasi dan kolaborasi antara pengembang dan calon pengguna Tujuan dalam tahapan ini adalah ... Mengidentifikasi stakeholder (persona) Mengenali berbagai macam sudut pandang Mengawali kolaborasi antara pengembang dan pengguna Mengawali proses komunikasi
Elicitation Proses elisitasi (elicitation) sangat susah, karena... Permasalahan terhadap cakupan system Pemahaman masalah, apa yang diinginkan, domain permasalahan, bagaimana system digunakan, lingkungan system Ketidakpastian, karena kebutuhan selalu berubah Elisitasi terdiri dari 2 (dua) kegiatan Collaborative requirements gathering Meeting, brainstorming dll... Quality function deployment Translasi dari kebutuhan pengguna ke kebutuhan system (lebih teknis) • Mengidentifikasi level-level kebutuhan (Normal, Expected, dan Exciting Requirement)
Elaboration Informasi dari proses Inception dan Elicitation dianalisa (diperluas dan diperbaiki) Elaborasi fokus pada pembuatan model teknis tentang fungsi, fitur dan batasan-batasan system Analisis model meliputi : Use case Class dasar Daur hidup object Pada akhirnya akan terbentuk gambaran tentang fungsi, informasi dan perilaku dari system
Negotiation Proses negosiasi dalam rangka meredam konflik antara pengguna dan pengembang dalam hal apa yang diinginkan oleh pengguna dan apa yang bisa dicapai oleh pengembang (dengan keterbatasan sumber daya) Perankingan daftar kebutuhan (prioritization) oleh stakeholder Resiko yang ada pada setiap kebutuhan diidentifikasi dan dianalisis Dengan proses iteratif, kebutuhan dihilangkan, digabung atau dimodifikasi sehingga stakeholder dapat mencapai kesepakatan bersama
Specification Proses untuk menjelaskan kebutuhan PL yang telah didefinisikan sebelumnya secara lebih detil, tepat, dan terukur yang akan menjadi dasar bagi perancangan dan implementasi Spesifikasi adalah proses final dalam RE yang menghasilkan dokumen SRS (Software Requirement Specification)
Validasi dan verifikasi Proses pengecekan untuk menjamin bahwa pernyataan kebutuhan yang telah didefinisikan dan dispesifikasikan adalah benar, akurat dan lengkap Dilakukan bersama-sama antara kustomer dan developer Sangat penting dilakukan karena kesalahan di dalam menentukan kebutuhan akan berdampak pada keseluruhan proses yang mengikutinya Validasi : do we make the right product ..... ? Verifikasi : do we make the product right ..... ? Teknik : Review : Software Specification Review (SSR) Prototyping : executable model of the system/software
Parameter Parameter validasi : Validity -> does the system provide the functions which best support the customer's needs ? Consistency -> are there any requirements conflicts ? Comprehensibility -> are all functions required by the customer included ? Parameter verifikasi : Readability Testability Completeness Identifiability Ambiguity
Manajemen kebutuhan Aktifitas untuk melakukan kontrol terhadap kebutuhan yang sedang maupun telah didefinisikan dan dispesifikasikan : Identifikasi -> bagaimana setiap kebutuhan dapat diidentifikasi dengan mudah (Cont. : SRS_PRJ_XXX, IRS_PRJ_XXX) Manajemen perubahan -> bagaimana mekanisme untuk menangani perubahan kebutuhan yang terjadi Dokumentasi -> SRS dan IRS sebagai deliverable, ECP, PCR Tracking -> penelusuran informasi yang berhubungan dengan sebuah kebutuhan (sumber/asal, alokasi ke perancangan)
Problem Stakeholder (end-user, manajer, maintenance engineer, policy maker) tidak tahu persis apa yang sesungguhnya mereka butuhkan Stakeholder menyatakan kebutuhannya dalam bahasa yang dipahami oleh mereka sendiri Stakeholder yang berbeda mungkin memiliki kebutuhan yang saling bertentangan Kebutuhan mungkin berubah pada saat dilakukan analisis. Stakeholder baru yang bergabung mungkin merubah dan lingkungan bisnis mengalami perubahan Pertentangan antara unjuk kerja (performance) dan kemudahan (simplicity) dalam mencapai tujuan
Problem
Summary RE memberikan landasan yang kuat bagi perancangan dan implementasi, yang tanpa itu maka produk PL yang dihasilkan berpotensi tinggi untuk tidak sesuai dengan kebutuhan customer Proses di dalam RE mencakup elisitasi dan analisis, spesifikasi, validasi dan verifikasi, manajemen kebutuhan Sebuah kebutuhan harus divalidasi dan diverifikasi sebelum digunakan sebagai dasar dalam perancangan
Terima Kasih Ada Pertanyaan
Case Study User Story Setiap awal semester, mahasiswa FILKOM diwajibkan untuk memrogram mata kuliah yang akan diambilnya dalam sebuah Kartu Rencana Studi (KRS) secara online. Matakuliah yang dapat diambil oleh mahasiswa ditentukan berdasarkan IP mahasiswa dan nilai matakuliah prasyaratnya yang telah diambil pada semester sebelumnya. Mahasiswa dapat memilih kelas matakuliah yang ditawarkan, namun tidak dapat memilih kelas yang sudah diisi lebih dari 40 orang mahasiswa. KRS yang telah selesai diprogram dapat dilihat oleh mahasiswa tersebut dan staf akademik.
Actors?
User Requirements? Use in the following format: (Actor) uses system to (perform required system functionality)
Software Requirement Specification? Use in the following format: System able to (perform detailed functionality)
Assignment: Persona Buat sebuah Persona untuk masing-masing aktor yang telah diidentifikasi dalam User Story. Cari referensi/contoh terkait Persona yang terkait dengan User Experience, dan implementasikan hal-hal yang menggambarkan kepribadian aktor ketika menggunakan sistem dalam hal: Goals Keinginan Batasan/kebencian Help to guide developers decisions about a service, product or interaction space such as features, interactions, and visual design