Jenis Requirement dan Pembacanya

Posted By frf on Rabu, 26 Oktober 2016 | 15.38.00

2.3 Jenis Requirement dan Pembacanya
Requirement dapat dibedakan menjadi tiga jenis, yaitu : 
User requirement (kebutuhan pengguna) Pernyataan tentang layanan yang disediakan sistem dan tentang batasanbatasan operasionalnya. Pernyataan ini dapat dilengkapi dengan gambar/diagram yang dapat dimengerti dengan mudah.

System requirement (kebutuhan sistem
Sekumpulan layanan/kemampuan sistem dan batasan-batasannya yang ditulis secara detil. System requirement document sering disebut functional specification (spesifikasi fungsional), harus menjelaskan dengan tepat dan detil. Ini bisa berlaku sebagai kontrak antara klien dan pembangun.

Software design specification (spesifikasi rancangan PL) 
Gambaran abstrak dari rancangan software yang menjadi dasar bagi perancangan dan implementasi yang lebih detil. Ketiga jenis requirement tersebut diperlukan dalam pembangunan software karena masing-masing memberi pengertian ke pihak yang berbeda kepentingan. Pembaca dari ketiga requirement tersebut bisa dijelaskan dengan gambar 1.

2.4 Kategori Requirement
Software system requirement sering dibedakan dalam 3 kategori yaitu
Functional requirement, Non Functional requirement dan Domain requirement dengan masing-masing penjelasannya sebagai berikut:

Functional Requirement : 
Merupakan penjelasan tentang layanan yang perlu disediakan oleh sistem, bagaimana sistem menerima dan mengolah masukan, dan bagaimana sistem mengatasi situasi-situasi tertentu. Selain itu kadang-kadang juga secara jelas menentukan apa yang tidak dikerjakan oleh sistem.

Functional requirement menggambarkan system requirement secara detil seperti input, output dan pengecualian yang berlaku. Contoh dalam kasus peminjaman buku di perpustakaan: 
Pengguna bisa mencari semua informasi tentang buku atau bisa memilih salah satu dari informasi tentang buku. 
  • Semua peminjam memiliki pengenal yang unik. 
  • Sistem mampu catat transaksi peminjaman, pengembalian dan denda secara lengkap. 
  • Hari libur bisa di-set sejak awal, dan bisa menerima perubahan dengan otoritas khusus. 
  • Harus komplit ( kebutuhan layanan jelas dan lengkap) dan konsisten (tidak kontradiksi dengan yang didefinisikan). 
Masalah yang mungkin terjadi dalam menyusun functional requirement adalah: 
  • Diintepretasikan/diartikan berbeda oleh user atau developer. 
  • Hasil intepretasi sering tidak menjawab kebutuhan klien. 
  • Untuk sistem yang besar, kelengkapan kebutuhan dan konsisten sulit dicapai 
  • karena kerumitan sistem. 
  • Perlu analisis yang dalam dan menyeluruh untuk mengurangi kesalahan. 
Non-functional Requirement : 
Secara umum berisi batasan-batasan pada pelayanan atau fungsi yang disediakan oleh sistem. Termasuk di dalamnya adalah batasan waktu, batasan proses pembangunan, standar-standar tertentu. Karena berkaitan dengan kebutuhan sistem secara keseluruhan,maka kegagalan memenuhi kebutuhan jenis ini berakibat pada sistem secara keseluruhan. Contoh kebutuhan jenis ini adalah kecepatan akses, keamanan data, besarnya kapasitas penyimpanan yang diperlukan, privasi masing-masing profil /account, bahasa pemrograman yang digunakan, sistem operasi yang digunakan.
Non functional requirement dibagi menjadi 3 tipe yaitu: 
Product requirement 
Berkaitan dengan kehandalan, kecepatan, kemudahan digunakan, kapasitas memori yang dibutuhkan dan efisiensi sistem. 
Organisational requirement 
Berkaitan dengan standar, bahasa pemrograman dan metode rancangan yang digunakan. 
External requirement 
Berkaitan dengan masalah etika penggunaan, interoperabilitas dengan sistem lain, legalitas, dan privasi.
Domain requirement : 
Berasal dari domain aplikasi sistem. Misalnya karena masalah hak cipta maka beberapa dokumen dalam perpustakaan tidak boleh diakses oleh orang lain yang tidak berhak. 

2.5 Key activity
Elicitation 
Pada tahap ini dikumpulkan berbagai requirement dari para stakeholder [Pres01]. Seorang pelanggan mempunyai masalah yang dapat ditangani oleh solusi berbasis komputer. Tantangan ini ditanggapi oleh seorang pengembang. Di sinilah komunikasi dimulai antara pelanggan, pengembang, dan calon pengguna dari sistem yang akan dibuat. Namun istilah elicitation agak diperdebatkan. Ada yang menganalogikannya dengan seperti yang dilakukan oleh para arkeolog ketika mengumpulkan runtuhan-runtuhan di situs purbakala [Leff00]. Ada yang memberikan istilah requirements capture karena dilakukan terutama dengan mengumpulkan fakta-fakta [Benn00]. Bahkan [Gudg00] menyatakan bahwa requirement sebenarnya dibuat ketimbang didapatkan (elicitated). Walau yang terakhir ini nampaknya “lain sendiri”, argumen ini dapat diterima untuk pengembangan software yang sama sekali baru maupun untuk software-software permainan (games) yang terkadang permasalahan yang akan dipecahkan oleh game tersebut cenderung tidak berhubungan dengan solusinya ataupun sebenarnya masalah yang ada berasal dari bagian marketing2. Sejalan dengan proses RE secara keseluruhan, tujuan dari requirements elicitation adalah [Gudg00] :
  1. Untuk mengetahui masalah apa saja yang perlu dipecahkan dan mengenali perbatasan-perbatasan sistem (system boundaries).· Untuk mengenali siapa saja para stakeholder.
  2. Untuk mengenali tujuan dari sistem; yaitu sasaran-sararan yang harus dicapainya.
2.5.1 Teknik pengumpulan Requirement
  • Dalam [Nuse00] disebutkan beberapa jenis teknik pengumpulan requirement:Traditional techniques merupakan berbagai cara pengumpulan data. Cara-cara ini termasuk kuesioner, survey, wawancara, serta analisis dari berbagai dokumentasi yang ada seperti struktur organisasi, petunjuk pelaksanaan (juklak) serta manual-manual dari sistem yang sudah ada.
  • Group elicitation techniques bertujuan untuk mengembangkan dan mendapatkan persetujuan stakeholder, sementara memanfaatkan dinamika kelompok untuk memperoleh pengertian yang lebih mendalam. Cara-cara ini termasuk brainstorming dan focus group, juga berbagai workshop RAD/JAD (workshop untuk membangun sebuah konsensus dengan menggunakan seorang fasilitator yang netral).
  • Prototyping techniques membuat suatu implementasi parsial dari software yang akan dibangun untuk membantu para pengembang, pengguna, serta pelanggan untuk lebih mengerti berbagai requirement sistem [Leff00]. Digunakan untuk mendapatkan umpan-balik yang cepat dari para stakeholder [Davi92], teknik ini juga dapat digabungkan dengan berbagai teknik yang lain, seperti misalnya digunakan di dalam sebuah acara group elicitation ataupun sebagai basis dari sebuah kuesioner.
  • Model-driven techniques menempatkan suatu model khusus dari jenis informasi yang akan dikumpulkan untuk digunakan sebagai pedoman proses elicitation. Termasuk di antaranya adalah goal based methods seperti KAOS [Lams98] dan [Chun00] dan juga cara-cara berbasis skenario seperti CREWS [Maid96].
  • Cognitive techniques termasuk serangkaian cara yang semulanya dikembangkan untuk knowledge acquisistion untuk digunakan di knowledge-based systems [Shaw96]. Teknik-teknik ini termasuk protocol analysis (di mana seorang ahli melakukan sebuah tugas sembari mengutarakan pikiran-pikirannya), laddering (menggunakan berbagai pemeriksaan untuk mendapatkan struktur dan isi dari pengetahuan stakeholder), card sorting (meminta para stakeholder untuk menysun kartu-kartu secara berkelompok, di mana setiap kartu tertera nama sebuah domain entity), dan repertory grids (membuat sebuah attribute matrix for entities di mana para stakeholder diminta untuk mengisi matriks tersebut).
  • Contextual techniques muncul pada tahun 1990-an sebagai sebuah pilihan di luar traditional maupun cognitive techniques [Gogu94]. Termasuk di antaranya penggunaan teknik etnografis seperti pengamatan terhadap para peserta. Juga termasuk ethnomethodogy dan analisis percakapan, yang keduanya menggunakan analisis terinci untuk mengenali pola-pola dalam percakapan dan interaksi [Vill99]. 
  • Dalam aktivitas requirements elicitation, ada baiknya untuk mengkategorikan berbagai requirement yang ditemukan. Suatu requirement dapat diklasifikasi sebagai functional requirement, non-functional requirement, maupun constraints [Grad92]. Sedangkan [Koto98] mengatakan bahwa suatu requirement dapat diklasifikasikan menjadi very general requirements, functional requirements, implementation requirements, performance requirements, dan usability requirements. 
  • Namun nyatanya klasifikasi (atau cara-cara pengkategorian lainnya) requirement ini tidak mutlak diperlukan; klasifikasi requirement ditujukan terutama untuk menuntun proses elicitation. Hal ini perlu diwaspadai karena gara-gara para anggota tim tidak dapat setuju akan klasifikasi dari sekumpulan requirement, maka development effort dari sebuah perusahaan Fortune 500 mengalami stagnasi [Leff00]. Terjebaknya mereka di dalam masalah semantik ini merupakan salah satu contoh dari analysis paralysis [Whit99]. 
Analyze
Sebuah model adalah perwakilan dari benda lain yang mempunyai rincian yang cukup untuk membantu penyelesaian tugas-tugas tertentu [Benn00]. Data modeling bertujuan untuk mendapatkan pengertian dari pemrosesan serta pengaturan informasi. Behavioral modeling memodelkan berbagai perilaku dari para stakeholder serta berbagai sistem lain yang berhubungan dengannya. Domain modeling menyediakan suatu bentuk abstrak dari dunia tempat beroperasinya sistem yang akan dibuat. Model-model yang dihasilkan dalam tahap ini ditujukan untuk analisa terhadap berbagai requirement yang ada. Para stakeholder berunding untuk mendapatkan suatu himpunan requirement akhir yang akan digunakan untuk tahap pengembangan selanjutnya. 

Menurut [Koto98] setelah selesainya tahap idealnya ini akan berlaku
  1. Berbagai requirement dari masing-masing stakeholder tidak bertentangan.
  2. Informasi di dalam semua requirement harus lengkap.
  3. Berbagai requirement yang ada harus selaras dengan anggaran yang dimiliki. 
Walaupun dengan adanya batasan-batasan tersebut, seluruh requirement sebaiknya mudah diubah ataupun disesuaikan. 

Spesification 
Tahap ini adalah penulisan dari requirements document, yang terkadang disebut dokumen Software Requirements Specification (SRS). Menurut [Hen80], dokumen ini sebaiknya:
  1. Hanya menetapkan perilaku sistem sebagaimana terlihat dari luar
  2. Menetapkan batasan-batasan (constraints) yang diberikan kepada implementasinya.
  3. Mudah diubah.
  4. Berguna sebagai alat referensi untuk pemeliharaan sistem.· Memuat gambaran akan siklus kehidupan sistem di masa yang akan datang.
Untuk meningkatkan readability, beberapa standar dokumentasi SRS telah dikembangkan. Namun menurut [Kov99], serangkaian standar dan template apabila berdiri sendiri tidak dapat digunakan sebagai cara yang mandraguna untuk memberi struktur bagi sekumpulan requirement; tetapi struktur yang digunakan haruslah dikembangkan sendiri-sendiri tergantung dari masalah yang sedang ditangani. Masalah standarisasi notasi dan pendokumentasian requirement membuat pendekatan sistematis terhadap RE menjadi sulit. [McDe94] memberikan sebuah daftar praktis ciri-ciri yang dinginkan pada sebuah requirements document:
  • Unambigous. Idealnya, hanya ada satu interpretasi terhadap sebuah requirements document.
  • Complete. Semua aspek yang bersangkutan haruslah dijelaskan secara lengkap di dalam requirements document.
  • Consistent. Tidak ada pernyataan yang bertentangan dalam requirements document.
  • Verifiable. Setelah sebuah sistem diimplementasikan, sebaiknya dapat dipastikan bahwa sistem tersebut memenuhi requirement awal.
  • Validatable. Suatu requirement sebaiknya dapat diperiksa oleh pelanggan untuk memastikan bahwa requirement tersebut memang memenuhi kebutuhannya.
  • Modifiable. Perubahan sebaiknya mudah dilakukan dan efek dari perubahan ini terhadap bagian-bagian lain sebaiknya minimal.
  • Understandable. Semua stakeholder sebaiknya dapat mengerti requirement seperti ditetapkan di dalam dokumen.
  • Testable. Semua requirement sebaiknya cukup kuantitatif untuk digunakan sebagai titik tolak pengujian sistem.
  • Traceable. Harus dimungkinkan adanya pengacuan (reference) antar berbagai bagian di dokumen requirement ataupun ke bagian-bagian lain dari proses pembuatan perangkat lunak. 
Validation & Verification 
Dalam tahap ini, dokumen dari tahap sebelumnya diperiksa agar memenuhi kriteriakriteria sebagai berikut [Koto98]:
  1. Lengkap.
  2. Konsisten.
  3. Tunduk pada keputusan-keputusan yang diambil pada tahap requirements analysis.
Apabila ada requirement yang tidak memenuhi kriteria-kriteria tersebut, mungkin ada baiknya bagi proses RE untuk kembali ke tahap-tahap sebelumnya. Beberapa contoh masalah requirement yang terungkap pada tahap validasi antara lain [Koto98]:
  • Kurang/tidak cocok dengan bakuan-bakuan kualitas.
  • Kata-kata yang digunakan kurang baik sehingga requirement menjadi ambigu.
  • Berbagai kesalahan yang terdapat pada model-model baik – model system ataupun model permasalahan yang hendak dipecahkan.· Pertentangan antar requirement yang tidak ditemukan pada tahap analisis.
SUMBER;
Blog, Updated at: 15.38.00

1 komentar: