REKAYASA KEBUTUHAN
REKAYASA KEBUTUHAN
- user requirement
Sebelum memulai penjelasan mengenai materi rekayasa kebutuhan, mari kita pahami dahulu, apa yang dimaksud dengan rekayasa dan kebutuhan dalam rekayasa kebutuhan.
Menurut KBBI, rekayasa adalah penerapan kaidah-kaidah ilmu dalam pelaksanaan (seperti perancangan, pembuatan konstruksi, serta pengoperasian kerangka, peralatan, dan sistem yang ekonomis dan efisien).
Menurut IEEE(the institute of electrical and electronics engineers) Kebutuhan / Requirement adalah kondisi atau kemampuan yang diperlukan pemakai untuk menyelesaikan persoalan untuk mencapai suatu tujuan.
Sedangkan menurut kamus yang dikutip oleh davis [DAV93], pengertian kebutuhan adalah sesuatu yang diisyaratkan, diinginkan, atau diperlukan.
Oleh karena itu dapat kita simpulkan bahwa rekayasa kebutuhan (Requirements Engineering) adalah serangkaian kegiatan yang berkaitan dengan persetujuan dan pengembangan himpunan akhir dari spesifikasi kebutuhan.
Rekayasa kebutuhan ini, terkait dengan proses mencari tahu, menganalisis, mendokumentasikan, serta memeriksa layanan dan kendala. Kegiatan rekayasa kebutuhan yang dilakukan, haruslah disesuaikan dengan kebutuhan proses, proyek, produk dan orang - orang yang melakukan pekerjaan.
Rekayasa kebutuhan ini dilakukan karena sering terjadinya masalah dalam komunikasi antar departemen, konsumer, dan berbagai anggota pembangunan software ini. Rekayasa kebutuhan ini, berperan sebagai sebuah jembatan, yang menjebatani antara dunia nyata dengan software, agar software yang dihasilkan, sesuai dengan keinginan nyata.
Kebutuhan Perangkat Lunak
Dalam kegiatan membuat sebuah perangkat lunak, untuk membuat perangkat lunak yang sesuai dengan keinginan pelanggan, perangkat lunak itu sendiri membutuhkan beberapa hal di dalamnya. Inilah yang dimaksud kebutuhan perangkat lunak.
Kebutuhan perangkat lunak atau software requirement adalah pernyataan yang mendeskripsikan apa yang akan sistem software lakukan, tetapi bukan bagaimana hal itu dikonstruksikan.
Kebutuhan perangkat lunak ini berhubungan dengan kriteria, syarat, kondisi atau kemampuan yang harus dimiliki oleh perangkat lunak untuk memenuhi apa yang disyaratkan atau diinginkan pemakai.
Kebutuhan yang dimaksud bagi sistem software yakni suatu hal yang mengatur apa yang sistem akan lakukan beserta memberikan batas - batas pada implementasi dan operasinya.
Dalam kebutuhan software, hal yang harus ditelusuri adalah WHAT, yakni mengenai apa yang sistem akan lakukan, hal ini dilakukan dengan menggunakan kata. gambar, dll. Kemudian, data mengenai kebutuhan software ini dimasukkan ke dalam suatu dokumen yang namanya SRS (Software Requirement Spesification)
Selain itu, juga dikenal istilah software design, yakni mengenai bagaimana software akan dibangun, hal ini bersangkutan dengan rancagannya, yang tercantum di dalam GUI, UML, diagram ER, CAD, atau di tempat lain dimana rancangan software dibentuk. Data mengenai design software ini kemudian disimpan dalam suatu dokumen bernama SDD (Software design document)
Banyak praktisi yang menggabungkan SRS dan SDD ke dalam suatu dokumen bernama SRD ( Requirement and Design Document). Dalam prakteknya, requirement dan design adalah satu kesatuan yang tidak dapat dipisahkan.
Proses Rekayasa Kebutuhan
Dalam pembuatan perangakat lunak, ada 6 kebutuhan yang harus dipenuhi oleh perangkat lunak tersebut
1. Kebutuhan Individu
Kebutuhan individu adalah dasar pertama pembangunan software. Hal ini dapat diketahui dengan bertanya kepada pengguna dan pelanggan apa masalah yang mereka alami, yang berhubungan dengan fungsi apa yang harus diimplementasikan ke dalam produk.
Misalnya untuk menarik pelanggan lebih banyak, dibutuhkan sebuah sistem baru di dalam sebuah bioskop. Dengan membuat sistem baru, sistem ini harus membantu pelanggan dalam membeli tiket, booking kursi, dan melakukan pembayaran. Sistem ini juga harus menyediakan tempat bagi pemiliki bioskop untuk mempromosikan hal - hal dalam bentuk iklan.
2. Aliran Bisnis (Business Process)
Aliran bisnis ini merupakan gambaran dari tahapan kegiatan yang dilakukan
Pembuatan gambaran tahapan ini dapat menggunakan tampilan dalam bentuk BPMN (Business Process Model and Notation) yang berupa diagram proses bisnis.
3. Data, Format dan Kebutuhan Informasi
Segala data yang diinput dan kebutuhan informasi adalah database dari dari movienya, termasuk judul film, sinopsis, lama film, kapan film ditayangkan, subtitle, dan lain - lain.
Pembuatan aliran data ini dapat menggunakan tampilan dalam bentuk DFD (Data Flow Diagram)
4. Kinerja, Reliabilitas, Keamanan, dll
Kebutuhan ini yakni menyangkut kemudahan, kenyamanan, dan keamanan dari software. Software harus mudah digunakan pengguna dan diorganisasikan sehingga error user dapat diminimalkan. Selain itu juga, sistem seharusnya dapat digunakan selama 24 jam penuh, dengan waktu kegagalan maksimum 2 jam per minggu. Sistem juga tidak boleh dapat diretas atau terjadi kebocoran data.
5. Antarmuka pengguna
Antarmuka pengguna adalah tampilan dan fungsi yang terdapat di dalam software, yang dilihat oleh pengguna. Contohnya, dalam Software bioskop. sistem yang dibangun merupakan sistem yang ramah pengguna dan dapat bekerja di semua operating system. Fiturnya yakni
- fitur memesan tiket untuk film yang ingin ditonton pengguna
- fitur memesan kursi yang diinginkan pengguna
- fitur bagi pengguna untuk melihat lama tayang film, kapan saja film itu ditayangkan, kapan film itu dapat dipesan kursinya, dan menonton trailer film nya
- fitur bagi pengguna untuk membayar tiket yang mereka pesan
- menyediakan tempat bagi
- pengguna untuk memasang iklan dan mempromosikannya.
6. Sistem Dengan Antarmuka lainnya
Siapa pengguna dari dokumen kebutuhan software?
Customer sistem : untuk menetapkan kebutuhan dan memabacanya, apakah sudah sesuai harapan? customer menentukan perubahan kebutuhan
Manajer : untuk merencanakan tawaran bagi sistem & proses pengembangan sistem tersebut
insinyur sistem : untuk memahami sistem seperti apa yang akan dikembangakan
Insinyur test sistem : untuk mengembangkan pengujian validasi terhadap sistem
insinyur Perawatan sistem : untuk memahami sistem dan relasi antar bagian - bagiannya
Analisis Kebutuhan (Requirement Analysis)
Analisis kebutuhan ini merupakan langkah awal untuk menentukan gambaran dari perangkat yang akan dihasilkan ketika developer melaksanakan sebuah kegiatan membuat perangakat lunak.
Keberhasilan dalam membangun perangkat lunak yang baik dan yang sesuai dengan kebutuhan pengguna sangat bergantung dari keberhasilan melakukan analisis kebutuhan
Untuk proyek pembangunan perangkat lunak yang besar, analisis kebutuhan yang dilakukan itu dilaksanakan setelah aktivitas sistem information engineering dan software project planning.
Analisa kebutuhan yang baik, tidak memastikan proyek sukses dan akan menghasilkan hasil yang baik, tetapi apabila analisa kebutuhan yang dilakukan tidak tepat, maka akan menghasilkan perangkat lunak yang tidak berguna.
Tujuan Analisis Kebutuhan
Tujuan dari analisis kebutuhan adalah :
- Memahami masalah yang akan dibuat solusinya dengan perangkat lunak secara menyeluruh (komprehensif)
- Memberikan definisi apa yang harus dikerjakan oleh software, agar memenuhi keinginan pemakai
- Membangun pemahaman tentang karakteristik dari ranah permasalahan dan sekumpulan kebutuhan yang diperlukan perlu dibangun solusinya
- Mengembangkan persyaratan kualitas yang memadai dan rinci, dimana para manajer dapat membuat pekerjaan proyek yang realistis dan staf teknis dapat melanjutkan dengan perancangan, implementasi dan pengujian
- Mengelola hasil elistasi kebutuhan untuk menghasilkan dokumen spesifikasi kebutuhan yang isi keseluruhannya sesuai dengan yang diinginkan oleh pengguna
Persyaratan / kebutuhan level tinggi meliputi :
- WHAT Apa yang akan dikerjakan oleh sistem?
- WHO Oleh siapa sistem akan dipergunakan?
- WHAT Apa tujuan dari sistem?
- Kinerja seperti apa yang diharapkan?
- Komponen apa saja yang harus terdapat di dalam sistem?
- Untuk platform apa software yang akan dibangun?
- dst
- Platform apa yang akan digunakan (Windows, IOS, ...) dengan detail
- Bahasa dan perangkat (tool)
- Software architecture
- Frameworks (.NET,ASP.NET,...)
- Sketsa rancangan GUI terperinci
- UML diagram
- ER diagram (database)
- Gambar CAD
- dst
Kategori software requirement
software requirement dapat dibagi menjadi dua jenis berdasarkan entitasnya :
- Kebutuhan pengguna
- Kebutuhan sistem
- Kebutuhan Fungsional
- Kebutuhan Non - fungsional
Kebutuhan pengguna & Kebutuhan sistem
Kebutuhan fungsional & kebutuhan non - fungsional
Kebutuhan Fungsional yakni mendeskripsikan servis - sevis (layanan) dan aktivitas yang harus dihasilkan oleh sistem. Contoh : input, output, proses, data store.
Selain itu juga, kebutuhan fungsional menjelaskan bagaimana reaksi sistem terhadap input tertentu, prilaku sistem dalam situasi tertentu, dan mungkin menyatakan apa yang tidak dilakukan oleh sistem
karakteristik kebutuhan fungsional yakni :
- Menggambarkan fungsionalitas atau layanan sistem
- Bergantung atas harapan user, tipe sistem, tipe software, dan dimana software akan digunakan
- Kebutuhan fungsional pengguna, adalah pernyataan level tinggi dari apa yang seharusnya dilakukan oleh sistem
- Menggambarkan layanan sistem dengan mendetail
- Sistem yang menyediakan tampilan tepat bagi pembaca dokumen dalam penyimpanan dokumen
- Setiap pesanan dapat dialokasikan sebagai identifier yang unik (ORDER_ID) dimana pengguna dapat meng - copy daerah penyimpanan akun permanen
- Pengguna dapat melakukan pencari kumpulan database inisial atau memilih subset dari database tersebut
Kebutuhan Non - fungsional mendeskripsikan fitur lain, karakteristik lain, dan kendala - kendala dalam memenuhi kebutuhan sistem. Contoh : Performance, Budget, Biaya, Waktu, Dokumentasi, Kualitas Manajemen, keamanan, dll.
Kendala yang ada contohnya kendala waktu, proses pembangunan, standard sistem, dll. Biasanya kebutuhan non - fungsional ini berlaku pada sistem secara keseluruhan.
Karakteristik non - functional requirement :
- menguraikan kinerja karakteristik sistem
- mungkin lebih penting dari functional requirement, jika tidak terpenuhi, sistem mungkin tidak berguna.
- biasanya berada pada daerah seputar aksesibilitas, kapasitas, kepatuhan, dokumentasi, pemulihan bencana, efisiensi, saat ini dan perkiraan, toleransi kesalahan, efektivitas, maintenance, privacy, interoperabilitas, ketahanan, keandalan, dll.
- Mendefinisikan properti beserta batasan dari sistem. Seperti kehandalan, kebutuhan penyimpanan, waktu respon. Batasan misalnya kapabilitas perangkat I/O, representasi sistem, dll.
- Kebutuhan proses juga menetapkan penggunaan sistem CASE khusus, penggunaan IDE/ bahasa pemrogramman, atau metode pengembangan.
- Kebutuhan Eksternal
- kebutuhan yang muncul dari faktor diluar dari sistem dan proses pengembangan, misalnya kebutuhan legislatif, kebutuhan antar operasi dll.
- contoh : sistem harus menerapkan ketentuan privasi pasien sebagaimana ditetapkan di dalam HStan-03-2006-priv
- Kebutuhan Organisasi
- kebutuhan yang datang dari kebijakan organisasi dan prosedur. Contohnya standar proses yang digunakan, kebutuhan implementasi, dan lain - lain.
- contoh : Otentikasi sendiri oleh pengguna sistem dengan menggunakan otoritas kartu identitas kesehatan mereka.
- Kebutuhan Produk
- Merupakan kebutuhan yang memberi penetapan akan bagaimana produk yang dikirim harus berjalan dengan cara tertentu. Contohnya kehandalan, kecepatan eksekusi, dan lain - lain.
- contoh : Sistem seharusnya bisa melayani kegiatan transaksi ruang rawat selama 24 jam 7 hari, dengan total waktu kegagalan rata - rata 1 jam.
Kesimpulan :
- rekayasa kebutuhan (Requirements Engineering) adalah serangkaian kegiatan yang berkaitan dengan persetujuan dan pengembangan himpunan akhir dari spesifikasi kebutuhan.
- Rekayasa kebutuhan terkait dengan proses mencari tahu, menganalisis, mendokumentasikan, serta memeriksa layanan dan kendala. Kegiatan rekayasa kebutuhan yang dilakukan, haruslah disesuaikan dengan kebutuhan proses, proyek, produk dan orang - orang yang melakukan pekerjaan.
- Kebutuhan perangkat lunak atau software requirement adalah pernyataan yang mendeskripsikan apa yang akan sistem software lakukan, tetapi bukan bagaimana hal itu dikonstruksikan.
- Kebutuhan perangkat lunak berhubungan dengan kriteria, syarat, kondisi atau kemampuan yang harus dimiliki oleh perangkat lunak untuk memenuhi apa yang disyaratkan atau diinginkan pemakai.
- Dimensi kebutuhan terdiri dari kebutuhan individu, aliran bisnis, data format dan kebutuhan infomrasi, Kinerja reliabilitas dan keamanan, antarmuka pengguna
- Membangun pemahaman tentang karakteristik dari ranah permasalahan dan sekumpulan kebutuhan yang diperlukan perlu dibangun solusinya
- Mengembangkan persyaratan kualitas yang memadai dan rinci, dimana para manajer dapat membuat pekerjaan proyek yang realistis dan staf teknis dapat melanjutkan dengan perancangan, implementasi dan pengujian
- Mengelola hasil elistasi kebutuhan untuk menghasilkan dokumen spesifikasi kebutuhan yang isi keseluruhannya sesuai dengan yang diinginkan oleh pengguna
- software requirement dapat dibagi menjadi dua jenis berdasarkan entitasnya, yakni kebutuhan pengguna, dan kebutuhan sistem
- Berdasarkan kebutuhan, software requirement dibagi lagi menjadi 2, yakni kebutuhan fungsional, dan kebutuhan non - fungsional
- Kebutuhan pengguna adalah suatu pernyataan, yang dibentuk dengan bahasa alami disertai dengan diagram, dari layanan apa yang diharapkan disediakan oleh sistem. Menggambarkan fitur, dan fungsi dari sistem dari sudut pandang pengguna agar sistem yang dihasilkan sesuai dengen keinginan dari pengguna.
- Kebutuhan sistem merupakan sebuah deskripsi yang lebih merinci mengenai layanan, fungsi, dan kendala operasional dari sistem perangkat lunaknya. Dokumen kebutuhan sistem (atau terkadang disebut spesifikasi fungsional) harus memberikan definisi yang tepat atas apa yang akan diimplementasikan. Ini mungkin menjadi bagian dari kontrak antara pembeli sistem dan software developer.
- Perbedaan dari user requirement dan system requirement adalah, user requirement, dibuat dengan menggunakan bahasa alami disertai dengan diagram akan layanan yang disediakan oleh sistem beserta batasan - batasan operasionalnya. Sedangkan persayaratan sistem, adalah berupa sebuah dokumen yang sistematis terstruktur, yang memberikan definisi secara terperinci akan fungsi sistem, kendala operasional, dan layanan. Yang didefinisikan di dalam dokumen adalah mengenai apa yang harus diimplementasikan sehingga sesuai dapat menjadi bagian kontrak antara kontraktor dan klien.
- Kebutuhan Fungsional yakni mendeskripsikan servis - sevis (layanan) dan aktivitas yang harus dihasilkan oleh sistem.
- Kebutuhan Non - fungsional mendeskripsikan fitur lain, karakteristik lain, dan kendala - kendala dalam memenuhi kebutuhan sistem.
Comments
Post a Comment