Transcript Activities?

Daniel Siahaan
Isi
 Apa dan untuk apa Spesifikasi Kebutuhan
 Metode Spesifikasi Kebutuhan
 Standard terkait Spesifikasi Kebutuhan
 Kakas Bantu
Apakah Spesifikasi Kebutuhan
 Spesifikasi kebutuhan salah satu aktivitas yang
dilakukan ketika merekayasa kebutuhan.
 Spesifikasi kebutuhan merupakan suatu proses
memformalisasikan sekumpulan kebutuhan,
baik fungsional maupun non-fungsional, dari suatu
sistem yang hendak dibangun ke dalam suatu
dokumen.
Fungsi Dokumen Spesifikasi
Kebutuhan

Feedback

Decomposition



merupakan masukan untuk tahap spesifikasi rancangan,
Validation and Verification


memecah permasalahan dalam komponen yang lebih mudah dipecahkan,
Input


menyediakan umpan balik kepada konsumen,
melakukan pengecekan validasi produk.
Contract

digunakan sebagai dasar persetujuan antara konsumen dan supplier tentang hal-hal apa saja
yang dapat ditangani oleh perangkat lunak yang akan dibangun.

Budgeting and Scheduling

Knowledge Transfer



digunakan sebagai dasar untuk perkiraan biaya dan jadwal.
memfasilitasi pergantian/peralihan. Dokumen spesifikasi memudahkan peralihan ke
pengguna baru atau ke perangkat keras yang baru.
Identify and Reduce Error/Mistake/Failure/Bug



mengurangi usaha yang harus dikeluarkan dalam pembangunan perangkat lunak.
mengharuskan konsumen untuk menyatakan semua kebutuhan dengan spesifik dan teliti
sebelum tahapan perancangan mulai dilakukan.
menemukan secara dini kesalahan, kesalahpahaman, dan ketidakkonsistenan sehingga lebih
mudah untuk diperbaiki.
Fungsi Dokumen Spesifikasi
Kebutuhan










Feedback

menyediakan umpan balik kepada konsumen,
Decomposition

memecah permasalahn dalam komponen yang lebih mudah dipecahkan,
Input

merupakan masukan untuk tahap spesifikasi rancangan,
Validation

melakukan pengecekan validasi produk.
Dokumen spesifikasi dapat digunakan sebagai dasar persetujuan antara konsumen dan supplier tentang hal-hal apa saja yang
dapat ditangani oleh perangkat lunak yang akan dibangun. Dokumen spesifikasi harus berisi deskripsi lengkap fungsi-fungsi dari
perangkat lunak yang kemudian dapat membantu konsumen untuk menentukan apakah perangkat lunak telah sesuai dengan
keinginannya.
2.
Dokumen spesifikasi dapat mengurangi usaha yang harus dikeluarkan dalam pembangunan perangkat lunak.
Pembuatan dokumen spesifikasi mengharuskan konsumen untuk menyatakan semua kebutuhan dengan spesifik dan teliti
sebelum tahapan perancangan mulai dilakukan. Hal ini dilakukan untuk mencegah atau mengurangi kemungkinan pengulangan
dalam tahapan perancangan, pengkodean, dan uji coba. Selain itu, dapat juga menemukan secara dini kesalahan,
kesalahpahaman, dan ketidakkonsistenan sehingga lebih mudah untuk diperbaiki.
3.
Dokumen spesifikasi dapat digunakan sebagai dasar untuk perkiraan biaya dan jadwal.
4.
Dokumen spesifikasi dapat digunakan sebagai panduan untuk proses validasi dan verifikasi. Organisasi dapat
membuat rencana validasi dan verifikasi yang lebih produktif jika mengacu pada dokumen spesifikasi yang baik.
5.
Dokumen spesifikasi dapat memfasilitasi pergantian/peralihan. Dokumen spesifikasi memudahkan peralihan ke
pengguna baru atau ke perangkat keras yang baru.
6.
Dokumen spesifikasi dapat digunakan sebagai dasar untuk pengembangan lebih lanjut.
Langkah-langkah membuat dokumen
spesifikasi :
Menggunakan template SKPL, berikut hal-hal yang
perlu dipertimbangkan:
1.






Penjelasan untuk fungsi dari entitas yang dispesifikasikan.
Penjelasan masukan dan darimana masukan berasal
Penjelasan luaran dan kemana luaran pergi
Indikasi entiti luar yang mungkin digunakan
Jika pendekatan fungsional digunakan, informasi tentang
pre-condition harus didefinisikan dengan benar. Dan post
kondisi juga harus dispesifikasikan setelah fungsi dipanggil..
Penjelasan tentang efek samping dari operasi (jika ada).
Mengidentifikasi sumber dari kebutuhan perangkat
lunak.
3. Memberikan label yang unik untuk setiap kebutuhan.
4. Merekam alur bisnis.
5. Menspesifikasikan kualitas dari tiap atribut.
2.
Metode Spesifikasi Kebutuhan




Natural language,
Structured natural language,
Semi-formal language,
Formal language.
Bahasa Alamiah (Natural Language)
 Bahasa lisan/tulisan
 Permasalahan



Ambiguitas
Over-flexibility
Lack of modularization
Bahasa Alamiah Terstruktur (Structured
Natural Language)
 Bahasa alamiah dengan struktur tertentu
 Digunakan dengan tujuan untuk
mendeskripsikan masukan, luaran, dan
kebutuhan fungsional sistem yang akan
dibangun.
Karakter bahasa yang baik untuk
spesifikasi (Vie, 2010)
Karakteristik Keterangan
Complete
Spesifikasi kebutuhan harus dengan jelas mendefinisikan semua situasi yang mungkin
dihadapi oleh sistem.
Consistent
Semua fungsi yang didefinisikan dalam spesifikasi kebutuhan harus cocok dan konsisten
pada setiap tingkatan. Tidak diijinkan adanya fungsi yang didefinisikan spesifikasinya
dengan informasi yang saling bertolak belakang.
Accurate
Spesifikasi kebutuhan harus dengan tepat didefinisikan untuk dapat menyelesaikan
semua masalah yang mungkin dihadapi dalam lingkungan nyata. Termasuk bagaimana
membuat sebuah tampilan dan alur interaksi yang tepat antara penguna dan sistem.
Modifiable
Struktur dan hirarki logic dari spesifikasi kebutuhan harus dapat memfasilitasi
kemungkinan adanya modifikasi. Hal ini penting untuk mengantisipasi adanya
modifikasi ketika pembuatan spesifikasi kebutuhan berjalan.
Ranked
Masing-masing kebutuhan dalam dokumen spesifikasi kebutuhan harus diurutkan
berdasarkan hal-hal berikut: stabilitas, keamanan, tingkat kesulitan dalam implementasi
dan parameter lain. Hal ini dibutuhkan untuk memudahkan urutan pembuatan fungsi
pada fase perancangan.
Karakter bahasa yang baik untuk
spesifikasi (Vie, 2010)
Karakteristik Keterangan
Testable
Sebuah spesifikasi kebutuhan harus bisa diuji dengan pengukuran kuantitatif untuk
memastikan tidak ada ambiguitas di dalamnya.
Traceable
Masing-masing fungsi dalam spesifikasi kebutuhan harus diberi identitas secara unik
sehingga dapat dilacak alurnya.
Unambiguous Spesifikasi kebutuhan harus menggunakan kalimat serta istilah yang memiliki arti sama.
Tidak diijinkan adanya ambiguitas. Hal ini menjadi masalah utama dalam pembuatan
dokumen spesifikasi kebutuhan yang menggunakan natural language.
Valid
Spesifikasi kebutuhan yang valid adalah sebuah dokumen dimana semua pihak yang
berkepentingan dapat memahami, menganalisis, dan menerimanya. Inilah yang menjadi
dasar mengapa banyak jenis dokumen spesifikasi kebutuhan perangkat lunak ditulis
menggunakan natural language.
Verifiable
Spesifikasi kebutuhan yang terverifikasi adalah yang memiliki konsistensi pada setiap
level abstraksinya.
Bahasa Semi Formal (Semi-Formal
Language)
 Pendekatan yang menggunakan diagram
untuk mendeskripsikan spesifikasi kebutuhan
 Notasi ini merupakan sebuah bahasa grafikal
yang dilengkapi dengan penjelasan teks.
 Contoh:

UML, SDL (Specificatio & Description Language),
SCR (Software Cost Reduction), Petri-Net
 Permasalahan


Harus memiliki pengetahuan tentang notasi yang
digunakan
Kurang fleksibel (sulit untuk non-fungsional)
Bahasa Formal (Formal Language)
 Pendekatan ini berdasarkan pada konsep
matematika seperti finite-state machines.
 Contoh:

Z, Larch, First-Order Language, VDM
 Permasalahan


Spesifikasi ini bersifat tidak ambigu, namun
sebagian besar konsumen tidak dapat mengerti
Tidak fleksibel (tidak ditujukan untuk kebutuhan
non-fungsional
4 Alasan Bahasa Formal Tidak Populer

Kesuksesan rekayasa perangkat lunak


Perubahan pasar



Pada tahun 1980, kualitas PL dianggap sebagai masalah kunci dalam
RPL.
Isu kritis untuk beberapa kelas PL bukanlah kualitas perangkat lunak
,tetapi time to market.
Keterbatasan jangkauan dari metode formal


Penggunaan metode yang lain dalam RPL seperti metode terstruktur
(structured method), manajemen konfigurasi (configuration
management), dan information hiding dalam proses perancangan dan
pembuatan PL telah menghasilkan pengembangan kualitas PL yang
lebih baik.
Metode formal tidak sesuai untuk menspesifikasikan antar muka
pengguna dan interaksi pengguna.
Keterbatasan pengukuran dari metode formal



Metode formal tidak bisa mengukur dengan baik.
Cocok untuk proyek berkaitan dengan sistem yang relatif kecil dan
critical kernel.
Untuk sistem skala besar dibutuhkan waktu dan usaha yang meningkat
secara tidak proporsional
Spesifikasi dan Perancangan
Keterlibatan pelanggan semakin berkurang
Keterlibatan pengembang semakin bertambah
Definisi Kebutuhan
Pengguna
Spesifikasi Kebutuhan
Sistem
Rancangan
Arsitektur
Spesifikasi
Formal
Rancangan
Level-Atas
Spesifikasi
Perancangan
Perbandingan Penggunaan Bahasa
Formal (Hall, 1990).
Tanpa FL
Dengan FL
Pendekatan Bahasa Formal
Algebraic
Berbasis Model

Konkuren
Larch
(Guttag
et.al.,
1993)
OBJ (Futatsugi et.al.,
1985)
Z (Spivey, 1992)
VDM (Jones, 1980)
B (Wordsworth, 1996)
Lotos (Bolognesi
Brinksma, 1987)
and
CSP (Hoare, 1985)
Petri Nets (Peterson,
1981)
Pendekatan aljabar


Sekuensial
Sistem dispesifikasikan dalam bentuk operasi-operasi dan hubungan-hubungannya
Spesifikasi Berbasis Model

Sistem dispesifikasikan dalam bentuk state model yang dibangun menggunakan konstruksi matematika
seperti himpunan dan urutan-urutan. Operasi didefinisikan dengan modifikasi terhadap state dari
sistem.
Meyer’s Seven Sin (Meyer, 1985).
Dosa
Noise
Deskripsi
Keberadaan suatu elemen dalam spesifikasi yang mengandung informasi
yang tidak relevan dari permasalahan.
Silence
Keberadaan suatu fitur dari permasalahan yang tidak dijelaskan oleh
elemen apapun dalam dokumen spesifikasi.
Keberadaan suatu elemen dalam spesifikasi yang tidak berkorespondensi
dengan fitur apapun dalam permasalahan tetapi kepada fitur dari solusi
yang mungkin.
Overspecification
Contradiction
Keberadaan dua atau lebih elemen dalam spesifikasi yang mendefinisikan
suatu fitur dalam sistem yang bertentangan satu dengan yang lain.
Ambiguity
Keberadaan suatu elemen dalam spesifikasi yang memungkinkan lebih
dari satu interpretasi.
Keberadaan suatu elemen dalam spesifikasi yang merujuk kepada fitur
dari permasalahan yang didefinisikan kemudian dalam spesifikasi.
Forward Reference
Wishful thinking
Keberadaaan suatu elemen dalam spesifikasi yang mendefinisikan fitur
dari permasalahan yang tidak realisits untuk diimplementasikan.
Model Kualitas (Ambiguitas) Kebutuhan
(Husain et al, 2007)
Standard Terkait Spesifikasi
Kebutuhan



IEEE Standard 830 (IEEE, 1998)
ISO 9126 (ISO, 2008), dan
Software Standards PSS-05-0 (ESA, 1991).
Membedakan

Spesifikasi Kebutuhan Pengguna (User Requirement
Specification, URS)


menjelaskan sekumpulan layanan yang dibutuhkan
pengguna
Spesifiksi Kebutuhan Perangkat Lunak (Software
Requirement Specification, SRS)

menjelaskan sekumpulan kebutuhan teknis yang diperlukan
untuk menyediakan layanan-layanan yang dibutuhkan
pengguna tersebut dan digunakan oleh pihak pengembang.
Aspek-Aspek Kualitas Kebutuhan
 Kemudahan pemeliharaan (maintainability),
 Kemudahan verifikasi (verifiability),
 Kelengkapan (completeness),
 Kebenaran (correctness),
 Konsistensi (consistency),
 Kejelasan (clarity),
 Kemudahan pelacakan (traceability),
 Kemudahan perubahan (modifiability),
 Kemudahan membaca (readability), dan
 Kemudahan penggunaan (ease of use).
Aspek-Aspek Kualitas Kebutuhan
Permasalahan:
1. Walaupun sudah banyak standar yang menyediakan
definisi formal dari setiap karakteristik, akan tetapi jarang
yang memberikan contoh atau panduan yang memadai
untuk mengilustrasikan mana praktek penspesifikasian
kebutuhan yang baik maupun yang kurang baik.
2. Banyaknya aspek kualitas spesifikasi kebutuhan yang harus
diingat oleh pengembang, terlebih lagi kelihatannya
masing-masing memiliki tingkat kepentingan dan
keperluan yang sepadan, menyebabkan sering kali terjadi
ketimpangan. Ada aspek yang mendapat perhatian
yang intensif, dan sebaliknya ada aspek yang
terlupakan atau kurang mendapat perhatian.
IEEE 830-1998 Standard

Hal-hal mendasar yang harus dimuat dalam SKPL:






Fungsionalitas.
Antar muka eksternal.
Unjuk kerja
Atribut.
Batasan rancangan pada implementasi.
SKPL



Harus mendefinisikan semua kebutuhan perangkat lunak
dengan benar.
Tidak perlu mendeskripsikan rincian rancangan atau
implementasi karena hal ini akan dideskripsikan pada
tahapan perancangan.
Tidak perlu menuliskan batasan tambahan perangkat lunak
karena akan dispesifikasikan pada dokumen lain, misalnya
rencana jaminan kualitas perangkat lunak.
IEEE 830-1998 Standard

Karakteristik SKPL yang baik:








Correct
Unambiguous
Complete
Consistent
Ranked for importance and/or
stability
Verifiable
Modifiable
Traceable
Rational Unified Process (RUP)
Rational Unified Process (RUP)
Kakas Bantu: QuaRS
(Giuseppe 2005).
Kakas Bantu: ReqSAC
(Husain et al, 2007)