2. Referensi
IEEE Std 830-1993, IEEE Recommended Practice for Software Requirement Specifications.
IEEE Std 610.12-1990 IEEE Standard Glossary of Software Engineering Terminology (ANSI).
3. Definisi
Definisi dari istilah yang akan digunakan pada dokumen ini dibuat berdasarkan hasil terjemahan
dari IEEE Std 610.12-1990.
3.1 Kontrak
Adalah suatu dokumen legal yang disetujui oleh pelanggan dan pengembang. Dalam kontrak
akan disertai dengan kebutuhan teknis, organisasi, biaya dan jadwal pengerjaan produk. Kontrak
dapat berisi informasi yang berguna, misalnya komitmen dan harapan dari organisasi yang
terlibat.
3.2 Pelanggan
Adalah orang atau organisasi yang membayar produk, dan biasanya (tidak harus) ia yang akan
memutuskan kebutuhannya.
3.3 Pengembang
Adalah orang yang menghasilkan produk untuk pelanggan.
3.4 Pengguna
Adalah orang yang akan langsung menjalankan atau menggunakan produk. Pengguna dan
pelanggan umumnya adalah orang yang sama.
Penulis SKPL harus menghindari kebutuhan perancangan atau kebutuhan proyek dalam SKPL.
4.3.1 Benar
SKPL dianggap benar jika dan hanya jika setiap kebutuhan yang telah ditetapkan telah
tercantum dalam dokumen. Tidak ada alat (tool) atau prosedur yang dapat digunakan untuk
menjamin kebenaran.
4.3.3 Lengkap
SKPL adalah lengkap jika dan hanya jika sudah melibatkan elemen-elemen berikut:
1. Semua kebutuhan-kebutuhan penting sudah tercakup (fungsionalitas, performansi, batasan
perancangan, atribut atau antar muka eksternal).
1. Semua definisi masukan pada berbagai kondisi sudah terpenuhi
1. Referensi yang lengkap dari setiap gambar, tabel dan diagram pada SKPL, dan disertai
dengan semua istilah yang digunakan dan unit yang digunakan sebagai pengukuran (bila ada).
Penggunaan istilah ‘TBD’ atau ‘To Be Defined’ atau ‘Sedang dalam pengembangan’
menunjukkan SKPL yang tidak lengkap. Tetapi bagaimana pun istilah tersebut sering harus
digunakan. Pada kasus tersebut harus disertai dengan penjelasan yang menyertai pernyataan
tersebut (misalnya kenapa suatu jawaban belum ditemukan), sehingga situasi tersebut akan dapat
diselesaikan. Selain itu perlu didefinisikan cara menghilangkan pernyataan tersebut, dengan
memberikan juga siapa yang bertanggung jawab, dan kapan harus sudah dihilangkan.
4.3.4 Konsisten
Dalam hal ini konsisten berhubungan dengan konsistensi internal. Jika suatu SKPL tidak
mengacu ke dokumen lain yang sifatnya memiliki tingkat lebih tinggi, maka SKPL tersebut tidak
benar.
5. Bagian-bagian SKPL
Bagian-bagian penting dari SKPL adalah sebagai berikut:
Daftar Isi
1. Pendahuluan
1.1 Tujuan
1.2 Lingkup Masalah
1.3 Definisi, Akronim dan Singkatan
1.4 Referensi
1.5 Deskripsi umum (Overview)
2. Deskripsi Keseluruhan
2.1 Perspektif produk
2.2 Fungsi Produk
2.3 Karakteristik Pengguna
2.4 Batasan-batasan
Panduan Penulisan SKPL/RPL-Terapan/Bayu Hendradjaya 8
2.5 Asumsi dan Ketergantungan
Lampiran
Indeks
5.1 Pendahuluan
Pendahuluan dari SKPL harus memberikan gambaran umum dari seluruh SKPL. Dan harus berisi
bagian-bagian berikut:
1.1 Tujuan
1.2 Lingkup Masalah
1.3 Definisi, Akronim dan Singkatan
1.4 Referensi
1.5 Deskripsi umum (Overview)
5.1.1 Tujuan
Bagian ini harus menunjukkan tujuan SKPL, dan juga menentukan siapa yang akan
menggunakan SKPL ini.
5.1.4 Referensi
Bagian ini harus memberikan:
1. Daftar lengkap dari dokumen yang direferensikan
1. Identifikasi dari setiap dokumen berdasarkan judul, nomor laporan, tanggal dan penerbit
1. sumber-sumber referensi yang didapat
5.2.1.7 Operasi
Bagian ini menentukan operasi normal dan operasi khusus yang dibutuhkan oleh
pengguna seperti misalnya:
1. Berbagai variasi mode operasi dalam organisasi pengguna, misalnya operasi yang bersifat
user-initiated (inisiatif dari pengguna)
1. Periode operasi interaktif dan periode operasi yang tidak diinginkan
Panduan Penulisan SKPL/RPL-Terapan/Bayu Hendradjaya 11
1. Fungsi pendukung pemrosesan data
1. Operasi backup dan recovery
5.2.4 Batasan-batasan
Bagian SPKL ini berisi deskripsi umum dari item lain yang akan membatasi pilihan
pengembangan. Hal-hal tersebut antara lain:
1. Kebijaksanaan umum
1. Keterbatasan perangkat keras
1. Antar muka ke aplikasi lain
1. Operasi paralel
1. Fungsi audit
1. Fungsi kendali
1. Kebutuhan bahasa tingkat tinggi
1. Protokol sinyal komunikasi (misalnya XON-XOFF, ACK, NACK).
1. Kebutuhan keandalan
1. Tingkat kritis dari aplikasi
Panduan Penulisan SKPL/RPL-Terapan/Bayu Hendradjaya 12
1. Masalah keamanan dan keselamatan
5.3.2 Fungsi-fungsi
Kebutuhan fungsional harus mendefinisikan aksi dasar yang harus diambil oleh perangkat
lunak untuk menerima dan memproses masukan dan menghasilkan keluaran. Hal ini umumnya
dinyatakan dengan kata ‘akan’. Misalnya, sistem akan...
Bagian yang terlibat
1. Validasir masukan
1. Urutan operasi yang pasti
1. Respon terhadap situasi abnormal termasuk kejadian overflow, fasilitas komunikasi atau
penanganan kesalahan dan recovery.
1. Efek pada parameter
1. Keterhubungan dari keluaran ke masukan, termasuk urutan masukan/keluaran, atau formula
untuk konversi masukan ke keluaran.
Dapat dilakukan juga pembagian kebutuhan fungsional menjadi sub fungsional aau sub proses.
Hal ini tidak berarti bahwa perancangan perangkat lunak akan dibagi dengan cara seperti itu.
5.3.6.1 Keandalan
Bagian ini akan menspesifikasi faktor yang dibutuhkan untuk membentuk keandalan
sistem pada saat diterimakan.
5.3.6.2 Ketersediaan.
Bagian ini akan berisi faktor untuk menjamin tingkat ketersediaan seluruh sistem seperti
checkpoint, recovery dan restart.
5.3.6.5 Portabilitas
Atribut dari perangkat lunak yang berhubungan dengan kemudahan porting perangkat
lunak ke mesin lain/perangkat operasi lain. Hal-hal yang harus diperhatikan:
1. Persentase komponen yang berisi kode yang independent
1. Persentase komponen yang tergantung pada host
1. Penggunaan bahasa yang portabilitasnya terbukti
1. Penggunaan suatu kompilator/bahasa
1. Penggunan suatu sistem operasi
5.3.7.4 Feature
Suatu feature adalah pelayanan yang dinginkan secara eksternal oleh sistem yang
membutuhkan serangkaian masukan yang memberi efek terhadap hasil. Sebagai contoh pada
sistem telpon, feature-nya adalah hubungan lokal, call forwarding dan conference call. Setiap
feature umumnya dijelaskan dalam pasangan stimulus-response. Jika digunakan bagian ini,
gunakan outline di bagian 5 dari lampiran A.
5.3.7.5 Stimulus
Beberapa sistem akan lebih baik diorganisasikan berdasarkan stimulus. Misalnya
fungsi0fungsi sistem pendaratan pesawat udar mungkin diorganisasikan menjadi bagian loss of
power, wind shear, sudden change in roll, vertical velocity excessive, dll. Jika diorganisasikan
sebagai stimulus, gunakan outline di lampiran A bagian 6.
5.3.7.6 Respons
Beberapa sistem dapat diorganisasikan dengan menejlaskan semua fungsi dalam
mendukung pembangkitan respons. Misalnya fungsi sistem personil dapat diorganisasikan
menjadi bagian-bagian yang berhubungan dengan semua fungsi yang diasosiasikan dengan
pembangkitan cek pembayaran, fungsi-fungsi yang berhubungan daftar pegawai, dll. Gunakan
A.6 di lampiran.
5.4.2 Lampiran-lampiran
Lampiran tidak selalu menjadi bagian dari spesifikasi kebutuhan aktual dan tidak harus perlu.
Lampiran dapat berisi:
1. contoh format masukan/keluaran, deskripsi analisa biaya, hasil survey
1. dukungan informasi yang membantu SKPL.
1. Deskripsi dari masalah yang dipecahkanoleh perangkat lunak.
1. Instruksi khusus, dan media yang cocok untuk pengamatan, dan kebutuhan lain.
Jika disertakan lampiran, SKPL harus secara eksplisit menegaskan apakah lampiran ini adalah
bagian dari kebutuhan.
3. Kebutuhan Khusus
3.1. Kebutuhan antarmuka eksternal
3.1.1. Antarmuka pemakai
3.1.2. Antarmuka perangkat keras
3.1.3. Antarmuka perangkat lunak
3.1.4. Antarmuka komunikasi
3.2. Kebutuhan fungsional
3.2.1. User class 1
3.2.1.1. Kebutuhan fungsionlitas 11.1
3.2.1.2. ...
3.2.1.3. ...
3.2.1.4. kebutuhan fungsionlitas 1.n
3.2.2. User class 2
3.2.2.1. Kebutuhan fungsionlitas 11.1
3.2.2.2. ...
3.2.2.3. ...
3.2.2.4. kebutuhan fungsionlitas 1.n
3.2.3. User class....
3.2.4. User class n
3.3. Kebutuhan performansi
3.4. Batasan perancangan
3.5. Atribut sistem perangkat lunak
3.6. Kebutuhan lain
3. Kebutuhan Khusus
3.1. Kebutuhan antarmuka eksternal
3.1.1. Antarmuka pemakai
3.1.2. Antarmuka perangkat keras
3.1.3. Antarmuka perangkat lunak
3.1.4. Antarmuka komunikasi
3.2. Kelas/objek
3.2.1. kelas/objek 1
3.2.1.1. atribut (langsung/tidak langsung)
3.2.1.1.1. atribut 1
3.2.1.1.2. atribut 2
3.2.1.1.3. ....
3.2.1.1.4. ...
3.2.1.1.5. atribut n
3.2.1.2. fungsi-fungsi (service, metode, langsung /tidak
langsung)
3.2.1.2.1. kebutuhan fungsional 1.1
3.2.1.2.2. kebutuhan fungsional 1.2
3.2.1.2.3. ...
3.2.1.2.4. kebutuhan fungsional 1.m
3.2.1.3. Pesan (komunikasi yang diterima/dikirim)
3.2.2. class objek 2
3.2.3. .....
3.2.4. class objek p
3.3. Kebutuhan performansi
3.4. Batasan perancangan
3.5. Atribut sistem perangkat lunak
3.6. Kebutuhan lain