You are on page 1of 29

Requirement Engineering

Motivation

“The hardest single part of building a system

is deciding what to build”

Brooks – 1987

2
Apa Itu Requirement Engineering?


Requirement Engineering (RE) adalah istilah lain dari
Requirement Analysis

Setiap proses pembangunan software akan melalui fase RE


Proses mendefinisikan layanan yang dibutuhkan
pelanggan dari suatu sistem dan batasan di mana ia
beroperasi dan dikembangkan
-- Ian Sommerville

The broad spectrum of tasks and techniques that lead
to an understanding of requirements
-- Roger S. Pressman
3
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 . . . . .”

4
What is a Requirement?
• IEEE-STD-1220-1998:
a statement that identifies a product or process, operational,
functional, or design characteristic or constraint, which is
unambiguous, testable, or measurable, and necessary for
product or process acceptability (by consumers or internal
quality assurance guidelines).
• CMMI (Capability Maturity Model Integration) version 1.3:
i. a condition or capability needed by a user to solve a problem
or achieve an objective,
ii.a condition or capability that must be met/possessed by a
product, service, product component or service component to
satisfy a supplier agreement, standard, specification or other
formally imposed documents,
iii.a documented representation of a condition or a capability as
in (i) or (ii) above.
Kategori kebutuhan
• Functional: what a system does
• Terdapat deskripsi proses, masukan dan keluaran
• Non-functional: constraint or quality of a
system, but still measurable
• Performance, availability, security, reliability,
implementation & design constraints, storage size
• Usability: constraint to use, but still also
measurable or evaluatable
• 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
" 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 Perangkat Lunak
Proses-proses
Requirement
Engineering
Proses
1. Penggalian dan analisis kebutuhan
(software requirement elicitation and analysis)
2. Spesifikasi kebutuhan
(software requirement specification)
3. Validasi & verifikasi kebutuhan
(software requirement validation and
verification)
4. Manajemen kebutuhan
(software requirement management)
Proses

Inception Elicitation Elaboration

Verification
Negotiation Specification
& Validation

Requirement 1. Penggalian dan analisis kebutuhan


Managemen 2. Spesifikasi kebutuhan
t 3. Verifikasi dan validasi kebutuhan
4. Manajemen kebutuhan
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 APA (WHAT) dan BUKAN bagaimana
(HOW)
• Komunikasi yang baik dengan stakeholder adalah
faktor penting dalam RE
Inception
• Dalam tahapan ini pengembang menanyakan
pertanyaan yang berkaitan dengan …
• Pemahaman dasar tentang domain masalah
• Pengguna yang menginginkan 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 (1)
• 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
Elaboration (2)
• Scenario-based elements
• Use case dan Activity diagram
• Class-based elements
• Class Diagram
• Behavioral elements
• State Transition Diagram
• Flow-oriented elements
• Data Flow Diagram
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
Teknik-teknik elisitasi
• Interview: meeting, banyak digunakan
• Task analysis: dekomposisi setiap pekerjaan
• Scenario-based analysis: urutan pekerjaan
• Ethnography: analisis pekerjaan riil dari user
• Form analysis
• Natural language description: narasi tertulis
• Derivation from the existing system: studi banding dari
beberapa sistem
• Prototyping: mulai dari kebutuhan awal untuk lebih
memahami kebutuhan yang utuh
Contoh hasil elisitasi
dan analisis
• Perangkat lunak harus mampu menyediakan sarana untuk
menampilkan dan mengakses file-file yang dibuat oleh tool
yang lain.
• Pengguna harus dapat mencari buku/dokumen/literatur di
perpustakaan dgn memasukkan sebuah kata kunci.
• Sistem tidak boleh dioperasikan oleh pengguna yang tidak
memiliki otoritas.
• Sistem harus menyediakan GUI sehingga dapat digunakan
secara mudah oleh pengguna yang belum berpengalaman.
• Sistem harus bisa memanfaatkan database yang sudah ada.
• Sistem harus diimplementasikan dengan bahasa Java.
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)
Validation dan
Verification
• Proses pengecekan untuk menjamin bahwa
pernyataan kebutuhan yang telah didefinisikan
dan dispesifikasikan adalah benar, akurat dan
lengkap
• Sangat penting dilakukan karena kesalahan di
dalam menentukan kebutuhan akan berdampak
pada keseluruhan proses yang mengikutinya
• Teknik:
• Review: Software Specification Review (SSR)
• Prototyping: executable model of the
system/software
Validation
Do we make the right product?
Apakah kita membuat produk yang benar?

Verification
Do we make the product right?
Apakah kita membuat produk dengan
benar?
Validation dan
Verification
• Proses validasi terhadap produk dari spesifikasi
kebutuhan (SRS) dimana seluruh daftar kebutuhan
diperiksa untuk dapat diyakinkan (valid dan verified)
• 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

• Pada umumnya dilakukan oleh stakeholder, bagaimana


jika dilakukan oleh mesin (komputer)? Mungkinkah?
Requirement
Management
Aktivitas untuk melakukan pengendalian terhadap
kebutuhan yang sedang maupun telah didefinisikan
dan dispesifikasikan, meliputi:
• Identifikasi: bagaimana setiap kebutuhan dapat
diidentifikasi dengan mudah (contoh: kodifikasi)
• Manajemen perubahan: bagaimana mekanisme
untuk menangani perubahan kebutuhan yang terjadi
• Dokumentasi: SRS, IRS, ECP, PCR
• Tracking: penelusuran informasi yang berhubungan
dengan sebuah kebutuhan (sumber/asal, alokasi ke
perancangan)
SRS: Software Requirement Specification, IRS: Interface Requirement Specification,
ECP: Engineering Change Proposal, PCR: Program Change Request
Problems in
Requirement
Engineering
Problem

Customer explanation Project Leader Designed by Analyst Coded by Described by


understanding Programmer Bus. Consultant

Project Operation installation Customer really


Customer cost Supports
documentation needs
Problem (2)
• 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
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

You might also like