Software Requirement Specifications (SRS)

Software Requirements Specification (SRS), sebuah spesifikasi kebutuhan untuk sebuah sistem perangkat lunak, adalah dokumen yang dibuat ketika sebuah perangkat lunak akan dikembangkan. Di dalamnya terdapat detil penjelasan dari keseluruhan aspek dari sebuah perangkat lunak. Ketika sebuah perangkat lunak akan dikembangkan dan memiliki spesifikasi yang sedikit atau ketika sebuah sistem terlalu kompleks, dokumen SRS sangatlah dibutuhkan. Ketika dokumen SRS telah siap, maka dokumen tersebut diserahkan pada pengguna untuk direview.

IEEE membuat standar SRS agar dokumen penting itu tidak ambigu dan tentu saja komplit. Lengkap. Dengan standar itu, si penggguna dapat mencurahkan semua keinginannya terkait software tersebut dengan jelas dan akurat sehingga sang developer pun dapat memahami apa yang diinginkan pengguna dengan tepat. Bahkan, bagi perorangan, standar ini dapat membantunya dalam mengembangkan outline SRS yang baku khusus untuk perusahaannya, membantunya membuat dokumen SRS dengan format dan isi yang standar (minimal), serta membantunya mengembangkan rincian-rincian pendukung lainnya.

Isi standar dari sebuah dokumen SRS yang memiliki format IEEE adalah :

A.  Introduction
Pada bagian ini, diberikan pengantar mengenai spesifikasi, baik itu mengenai definisi, tujuan, serta pembaca yang ditargetkan untuk membaca SRS ini, serta pengenalan secara umum mengenai spesifikasi.

B. General Description
Pada bagian ini dijelaskan mengenai perspektif produk, fungsi-fungsi produk, karakteristik user, dan batasan umum dari sistem.

 C. Specific Description
 Pada bagian ini dijelaskan mengenai :
1.     Kebutuhan fungsional
Bagian ini membahas mengenai kebutuhan-kebutuhan fungsional dari sistem, digambarkan melalui use cases. Use cases ini menggambarkan seluruh kerja fungsional dari perangkat lunak secara keseluruhan, melalui semua pengguna yang menggunakan perangkat lunak tersebut (aktor). Use cases yang digambarkan menunjukkan seluruh kerja fungsional dari perangkat lunak.
2.    Kebutuhan data
Bagian ini membahas mengenai data-data yang dibutuhkan dalam pengembangan perangkat lunak. Data-data ini mencakup semua data yang diperlukan oleh perangkat lunak dalam prosesnya. Data-data ini bisa berupa masukan, serta keluaran yang akan dihasilkan oleh sistem / perangkat lunak.
 3.    Kebutuhan kualitas system
Bagian ini menjelaskan secara spesifik faktor-faktor dari kualitas sistem yang tidak berhubungan dengan kebutuhan fungsional yang didokumentasikan melalui use case.
 4.    Batasan sistem
Bagian ini menjelaskan mengenai batasan-batasan yang ada pada sistem / perangkat lunak secara keseluruhan. Batasan yang ada berupa batasan dalam arsitektur, desain dan implementasi dari sistem.
    
D.    Appendixes dan Index
Pada bagian appendix dan index ini hanya ditambahkan lampiran-lampiran yang diperlukan dalamspesifikasi dari software ini.
Manfaat dari SRS yaitu untuk menunjukkan kepada pembaca mengenai spesifikasi dari suatu perangkat lunak / sistem dengan jelas serta kebutuhan-kebutuhan baik fungsional maupun non-fungsional serta batasan-batasan sehingga dapat memberikan gambaran yang jelas mengenai sistem.

SRS bisa terdiri dari banyak dokumentasi yang saling melengkapi.
Suatu SRS harus dapat :
1.    Menguraikan definisi masalah
2.    Menguraikan masalah dengan tepat dengan cara yang tepat
     
 Objektif SRS
1.     Persetujuan kerja dengan pelanggan 
2.     Daftar kebutuhan teknis yang harus dipenuhi oleh perangkat lunak

Syarat Pembentukan SRS
1.     Mudah diidentifikasi
2.    Diuraikan dengan jelas, simple, sederhana dan concise (Jelas, tidak ambiguous)
3.    Bisa divalidasi dan bisa dites (test reliable, test accessable).
4.    Mampu untuk ditelusuri kembali (tracebility) 

Hindari hal-hal berikut saat pembentukan SRS
1.     Over specification (penjelasan berlebih dan berulang-ulang sehingga menjadi tidak   jelas)
2.    Tindakan unconcistency
3.    Ambiguity dalam kata atau kalimat
       Menuliskan “mimpi-mimpi” , yaitu hal-hal yang tidak bisa dilakukan.
   
Dalam Suatu SRS ada 2 aspek yang harus bisa di lihat : 
1.     Fungsi 
Menjelaskan fungsi dari perangkat lunak (digunakan untuk apa keperluan apa), sifat  lunak dan datanya.
 2.    Non-Fungsi 
a. Dependability 
         •  reliability 
         •  maintainbility 
         •  security 
         •  integrity 
b. Ergonomic 
 c. Performance 
d. Contraint

  
Atribut Suatu SRS :

1.     Benar (correct) 
     Jika salah (incorrect), artinya spesifikasi yang ditulisadalah bukan yang diinginkan.

 2.    Tepat (precise) 
     Berpengaruh pada hasil perancangan dan pembuatan software requirements design    (SRD).

3.    Unambiguouity
     Setiap permintaan harus punya satu interpretasi, atau hanya ada satu arti dalam   satu kalimat.

4.    Lengkap (complete) 
   Lengkap jika dilihat dari dua sudut pandang : 
   •  Dokumen membuat tabel isi, nomor halaman, nomor gambar, nomor tabel.
   •  Tidak ada bagian yang hilang (to be define) yaitu tulisan yang akan didefinisikan.

5.    Bisa diverifikasi (verifiable) 
     Bisa diperiksa dan dicek kebenarannya. Setiap kebutuhan selalu dimulai dengan  dokumen yang bisa diperiksa.

6.    Konsisten 
   Nilai-nilai kebutuhan harus tetap sama baik dalam karakteristik maupun spesifik misalnya diminta A tetap ditulis A.

7.    Understandable
   Dapat dimengerti oleh pemrograman, analisis sistem atau sistem engineer

8.    Bisa dimodifikasi (modifiedable) 
   Bisa diubah-ubah dan pengubahannya sangat sederhana tetapi tetap konsisten dan lengkap.

9.    Dapat ditelusuri (traceable) 
    Jika ditelusuri, harus tahumana bagian yang diubah

10. Harus dapat dibedakan bagian what (bagian spesifikasi) dan  how (bagian yang menjelaskan bagaimana menjelaskan what tadi)

11. Dapat mencakup dan melingkupi seluruh sistem

12. Dapat melingkupi semua lingkungan operasional, misalnya interaksi fisik dan 
operasional.

13. Bisa menggambarkan sistem seperti yang dilihat oleh pemakai.

14. Harus toleran (bisa menerima) terhadap ketidaklengkapan, ketidakpastian (ambiguous) dan ketidak konsistenan.

15. Harus bisa dilokalisasi dengan sebuah coupling, yaitu hubungan ketergantungan antara dua model yang tidak terlalu erat. 

Ada 9 macam orang yang terlibat dalam pembuatan SRS :
1. Pemakai (user), Yang mengoperasikan / menggunakan produk final dari perangkat  lunak yang dibuat.   

2. Client, Orang atau perusahaan yang mau membuat sistem (yang menentukan).

3. Sistem analyst (sistem engineer), Yang biasa melakukan kontak teknik pertama dengan client. Bertugas menganalisis persoalan, menerima requirementdan menulis requirement.

4. Software engineer,Yang bekerja setelah kebutuhan perangkat lunak dibuat (bekerja sama dengan sistem engineer berdasarkan SRS)

5. Programmer, Menerima spesifikasi perancangan perangkat lunak, membuat kode dalam bentuk modul, menguji dan memeriksa (tes) modul.

6. Test integration, group Kumpulan orang yang melakukan tes dan mengintegrasi modul.

7. Maintenance group, Memantau dan merawat performansi sistem perangkat lunak yang dibuat selama pelaksanaan dan pada saat modifikasi muncul (80% dari pekerjaan).

8. Technical Support, Orang-orang yang mengelola (manage) pengembang perangkat lunak, termasuk konsultan atau orang yang mempunyai kepandaian lebih tinggi.

9. Staff dan Clerical Work, Bertugas mengetik, memasukkan data dan membuat dokumen.

 Keberhasilan pengembangan perangkat lunak bisa dilihat dari 10 aspek atau titik pandang, yaitu :
  1.    Ketelitian dari pembuatnya
  2.    Kualitas dari spesifikasi perangkat lunaik yang dihasilkan (Baik, jika ada sedikit kesalahan).
  3.    Integritas
  4.    Ketelitian
  5.    Proses Pembuatan yang mantap
  6.    Mudah dikembangkan
  7.    Jumlah versi yang tidak banyak
  8.    Ketelitian dari model pengembangan yang digunakan untuk meramal atribut perangkat lunak
  9.    Efektivitas rencana tes dan integrasi
  10. Tingkat persiapan untuk sistem perawatan (mempersiapkan pencarian bugs)

8 komentar:

Jangan Lupa Kasih Comment Ya !!!