Kebutuhan perangkat lunak

14,178 views

Published on

Published in: Technology, Business
3 Comments
4 Likes
Statistics
Notes
No Downloads
Views
Total views
14,178
On SlideShare
0
From Embeds
0
Number of Embeds
982
Actions
Shares
0
Downloads
463
Comments
3
Likes
4
Embeds 0
No embeds

No notes for slide

Kebutuhan perangkat lunak

  1. 1. Kebutuhan Perangkat Lunak By M. Ainul Yaqin, S.Si, M.Kom
  2. 2. Area Pengetahuan Kebutuhan Perangkat Lunak <ul><li>Area pengetahuan kebutuhan perangkat lunak berhubungan dengan elisitasi, analisis, spesifikasi, dan validasi kebutuhan perangkat lunak. </li></ul><ul><li>Kebutuhan perangkat lunak menggambarkan kebutuhan dan batasan-batasan yang ada pada produk perangkat lunak yang berkontribusi terhadap solusi dari beberapa masalah dunia nyata. </li></ul>
  3. 3. Area Pengetahuan Kebutuhan Perangkat Lunak
  4. 4. Definisi Kebutuhan Perangkat Lunak <ul><li>Properti yang harus ditunjukkan untuk memecahkan beberapa masalah di dunia nyata. </li></ul><ul><li>Properti penting dari semua kebutuhan harus dapat diverifikasi </li></ul>
  5. 5. Kebutuhan Proses dan Produk <ul><li>Parameter produk adalah kebutuhan pada perangkat lunak yang dikembangkan </li></ul><ul><li>Parameter proses adalah batasan-batasan mendasar pengembangan perangkat lunak </li></ul>
  6. 6. Kebutuhan Fungsional dan Non Fungsional <ul><li>Kebutuhan fungsional menggambarkan fungsi yang dijalankan oleh perangkat lunak. Misal format teks, modulasi sinyal. </li></ul><ul><li>Kebutuhan non fungisonal adalah sesuatu yang bertindak membatasi solusi. Kebutuhan non fungsional terkadang disenut sebagai batasan atau kebutuhan kualitas. </li></ul><ul><li>Kebutuhan non fungsional lebih lanjut dapat diklasifikasikan ke dalam kebutuhan kinerja, kebutuhan pemeliharaan, kebutuhan keselamatan, kebutuhan keandalan, atau salah satu dari banyak jenis kebutuhan perangkat lunak. </li></ul>
  7. 7. Emergent Properties <ul><li>Emergent properties dapat muncul ketika sejumlah entitas sederhana beroperasi di sebuah lingkungan, membentuk perilaku yang lebih kompleks sebagai sebuah kolektifitas. </li></ul><ul><li>Emergent properties mungkin adalah sesuatu yang sangat dapat diprediksi, atau tidak dapat diprediksi, bahkan belum pernah terjadi sebelumnya. </li></ul><ul><li>Beberapa kebutuhan merupakan emergent properties bagi perangkat lunak, yaitu kebutuhan yang tidak dapat diatas oleh komponen tunggal. </li></ul><ul><li>Contoh Emergent Properties : kebutuhan throughput untuk call center akan bergantung pada bagaimana sistem telepon, sistem informasi, dan operator dimana semua berinteraksi dalam kondisi operasi aktual </li></ul>
  8. 8. Kebutuhan Terukur <ul><li>Kebutuhan perangkat lunak harus dinyatakan sejelas mungkin, dan bila perlu secara kuantitatif. </li></ul><ul><li>Contoh kebutuhan terukur : software call center harus meningkatkan throughput pusat sebesar 20% </li></ul>
  9. 9. Kebutuhan Sistem dan Kebutuhan Perangkat Lunak <ul><li>Kebutuhan sistem adalah kebutuhan untuk sistem secara keseluruhan. Dalam sistem yang mengandung komponen perangkat lunak, kebutuhan perangkat lunak yang berasal dari kebutuhan sistem. </li></ul><ul><li>Literatur tentang kebutuhan kadang menyebut kebutuhan sistem sebagai kebutuhan pengguna. Petunjuk mendefinisikan kebutuhan pengguna dengan cara sebagai kebutuhan pelanggan atau pengguna akhir. </li></ul><ul><li>Kebutuhan sistem meliputi kebutuhan pengguna, kebutuhan dari pihak lain, dan kebutuhan tanpa sumber manusia yang teridentifikasi. </li></ul>
  10. 10. Model Proses <ul><li>Suatu proses yang dimulai dari awal proyek dan terus disempurnakan di seluruh siklus hidup. </li></ul><ul><li>Mengidentifikasi kebutuhan perangkat lunak sebagai item konfigurasi, dan mengelolanya dengan menggunakan praktek manajemen konfigurasi perangkat lunak yang sama dengan produk lain dari proses siklus hidup perangkat lunak. </li></ul><ul><li>Perlu disesuaikan dengan konteks organisasi dan proyek </li></ul><ul><li>Secara khusus berkaitan dengan bagaimana aktifitas elisitasi, analisis, spesifikasi, dan validasi yang dikonfigurasi untuk berbagai jenis proyek dan batasan. </li></ul>
  11. 11. Aktor Proses <ul><li>Pada bagian ini membahas orang-orang yang berpartisipasi dalam proses kebutuhan. </li></ul><ul><li>Biasanya stakeholder perangkat lunak terdiri dari : </li></ul><ul><ul><li>Pengguna. Kelompok ini terdiri dari orang-orang yang akan mengoperasikan perangkat lunak </li></ul></ul><ul><ul><li>Pelanggan. Kelompok ini meliputi mereka yang telah menugaskan atau yang mewakili target pasar </li></ul></ul><ul><ul><li>Analis pasar. Dibutuhkan untuk menetapkan kebutuhan pasar dan untuk bertindak sebagai penghubung dengan pelanggan </li></ul></ul><ul><ul><li>Regulator. Orang yang menetapkan aturan-aturan yang harus dipenuhi oleh perangkat lunak </li></ul></ul><ul><ul><li>Perekayasa perangkat lunak. Orang yang mengembangkan perangkat lunak </li></ul></ul>
  12. 12. Manajemen dan Dukungan Proses <ul><li>Memungkinkan hubungan antara kegiatan proses yang teridentifikasi dalam model proses dengan masalah biaya, sumber daya manusia, pelatihan, dan peralatan. </li></ul>
  13. 13. Peningkatan dan Kualitas Proses <ul><li>Topik ini berkaitan dengan penilaian kualitas dan peningkatan proses kebutuhan </li></ul><ul><li>Tujuannya adalah menekankan peran penting kebutuhan proses yang berjalan dari segi biaya dan ketepatan waktu, dan kepuasan pelanggan terhadapnya. </li></ul><ul><li>Topik ini meliputi : </li></ul><ul><ul><li>Pengkaveran proses kebutuhan oleh model dan standar peningkatan proses </li></ul></ul><ul><ul><li>Pengukuran dan benchmarking proses kebutuhan </li></ul></ul><ul><ul><li>Perencanaan dan implementasi peningkatan </li></ul></ul>
  14. 14. Elisitasi Kebutuhan <ul><li>Berkaitan dengan dari mana kebutuhan perangkat lunak berasal dan bagaimana mengumpulkannya </li></ul><ul><li>Salah satu prinsip dasar rekayasa perangkat lunak adalah komunikasi yang baik antara pengguna perangkat lunak dan pengembangnya. </li></ul>
  15. 15. Sumber Kebutuhan <ul><li>Hal utama yang akan dibahas adalah : </li></ul><ul><ul><li>Tujuan </li></ul></ul><ul><ul><li>Tujuan tingkat tinggi secara keseluruhan. Tujuan menyediakan motivasi perangkat lunak, tetapi sering kali diformulasikan secara tersamar. Perekayasa perangkat lunak perlu memberikan perhatian lebih untuk menilai nilai dan biaya tujuan (melakukan studi kelayakan) </li></ul></ul><ul><ul><li>Domain pengetahuan </li></ul></ul><ul><ul><li>Stakeholder </li></ul></ul><ul><ul><li>Lingkungan operasional. Kendala waktu dalam batasan perngkat lunak real-time, interoperabilitas di lingkungan kantor </li></ul></ul><ul><ul><li>Lingkungan organisasi. Struktur, budaya, dan politik internal organisasi </li></ul></ul>
  16. 16. Teknik Elisitasi <ul><li>Teknik yang biasa digunakan : </li></ul><ul><ul><li>Wawancara </li></ul></ul><ul><ul><li>Skenario </li></ul></ul><ul><ul><li>Prototip </li></ul></ul><ul><ul><li>Pertemuan terfasilitasi </li></ul></ul><ul><ul><li>Observasi </li></ul></ul>
  17. 17. Analisis Kebutuhan <ul><li>Tujuan analisis kebutuhan adalah : </li></ul><ul><ul><li>Mendeteksi dan menyelesaikan konflik diantara kebutuhan-kebutuhan </li></ul></ul><ul><ul><li>Menemukan batasan perangkat lunak dan bagaimana harus berinteraksi dengan lingkungan </li></ul></ul><ul><ul><li>Mengelaborasikan kebutuhan sistem untuk mendapatkan kebutuhan perangkat lunak </li></ul></ul>
  18. 18. Klasifikasi Kebutuhan <ul><li>Kebutuhan dapat diklasifikasikan menjadi : </li></ul><ul><ul><li>Kebutuhan fungsional dan non-fungsional </li></ul></ul><ul><ul><li>Kebutuhan yang didapatkan dari satu atau lebih kebutuhan tingkat tinggi atau emergent properties </li></ul></ul><ul><ul><li>Kebutuhan pada produk atau proses </li></ul></ul><ul><ul><li>Prioritas kebutuhan </li></ul></ul><ul><ul><li>Lingkup kebutuhan </li></ul></ul><ul><ul><li>Volatilitas / stabilitas </li></ul></ul>
  19. 19. Pemodelan Konseptual <ul><li>Tujuan pemodelan konseptual adalah untuk membantu memahami masalah, bukan untuk memulai desain dari solusi </li></ul><ul><li>Model konseptual terdiri dari model entitas dari domain masalah terkonfigurasi untuk mencerminkan hubungan dan dependensi dunia nyata mereka </li></ul><ul><li>Jenis model yang dapat dikembangkan adalah aliran data dan kendali, state model, jejak peristiwa, interaksi pengguna, model objek, model data, dll. </li></ul><ul><li>Faktor-faktor yang mempengaruhi pilihan model diantaranya : </li></ul><ul><ul><li>Sifat dari masalah </li></ul></ul><ul><ul><li>Keahlian insinyur perangkat lunak </li></ul></ul><ul><ul><li>Kebutuhan proses dari pelanggan </li></ul></ul><ul><ul><li>Ketersediaan metode dan peralatan </li></ul></ul>
  20. 20. Desain Arsitektur dan Alokasi Kebutuhan <ul><li>Desain arsitektur adalah titik di mana kebutuhan proses tumpang tindih dengan desain sistem atau perangkat lunak dan menggambarkan bagaimana mungkin memisahkan dua tugas secara rapi. </li></ul><ul><li>Dalam banyak kasus insinyur perangkat lunak bertindak sebagai arsitek perangkat lunak karena proses menganalisis dan menguraikan kebutuhan akan teridentifikasi melalui komponen yang sesuai. </li></ul><ul><li>Desain arsitektur teridentifikasi melalui pemodelan konseptual. </li></ul><ul><li>Begitu satu set kebutuhan telah dialokasikan untuk komponen, kebutuhan individu dapat dianalisa lebih lanjut untuk mengetahui lebih lanjut tentang bagaimana kebutuhan komponen yang akan berinteraksi dengan komponen lain untuk memenuhi kebutuhan yang dialokasikan. </li></ul>
  21. 21. Negosiasi Kebutuhan <ul><li>Menyelesaikan masalah yang sehubungan dengan kebutuhan yang menjadi konflik antara dua pihak yang membutuhkan fitur yang saling bertentangan, antara kebutuhan dan sumber daya, atau antara kebutuhan fungsional dan non fungsional </li></ul>
  22. 22. Dokumen Definisi Sistem <ul><li>Dokumen berisi kebutuhan sistem dengan latar belakang informasi tentang tujuan keseluruhan sistem, lingkungan targetnya dan pernyataan constrain, asumsi, dan kebutuhan non fungsional </li></ul><ul><li>Termasuk juga model konseptual yang dirancang untuk menggambarkan konteks sistem, skenario penggunaan dan entitas domain utama, data, informasi, dan workflow. </li></ul>
  23. 23. Spesifikasi Kebutuhan Sistem <ul><li>Kebutuhan sistem yang ditentukan adalah kebutuhan perangkat lunak yang berasal dari kebutuhan sistem, kemudian menentukan kebutuhan untuk komponen perangkat lunak </li></ul>
  24. 24. Spesifikasi Kebutuhan Perangkat Lunak <ul><li>Spesifikasi kebutuhan perangkat lunak menetapkan persetujuan antara pelanggan dan kontraktor atau pemasok tentang apa yang akan dilakukan dan tidak dilakukan oleh produk perangkat lunak </li></ul><ul><li>Spesifikasi kebutuhan perangkat lunak memungkinkan penentuan kebutuhan secara ketat sebelum memulai desain dan kemudian mengurangi redesain. Hal ini juga harus memberikan dasar yang realistis untuk memperkirakan biaya produk, risiko, dan jadwal </li></ul>
  25. 25. Review Kebutuhan <ul><li>Kebutuhan mungkin akan divalidasi untuk memastikan bahwa insinyur perangkat lunak telah memahami kebutuhan, dan juga penting untuk memverifikasi bahwa dokumen kebutuhan sesuai dengan standar perusahaan, dapat dipahami, konsisten, dan lengkap. </li></ul><ul><li>Cara yang paling umum adalah dengan pemeriksaan validasi atau review dari dokumen kebutuhan </li></ul><ul><li>Sekelompok pe-review ditugaskan untuk mencari kesalahan dengan jelas, asumsi keliru, kurangnya kejelasan, dan penyimpangan dari praktek standar. </li></ul><ul><li>Review harus dibentuk pada saat penyelesaian dokumen definisi sistem, dokumen spesifikasi sistem, dokumen spesifikasi kebutuhan perangkat lunak, spesifikasi dasar untuk rilis baru, atau pada setiap langkah lain dalam proses. </li></ul>
  26. 26. Prototyping <ul><li>Prototyping umumnya sarana untuk memvalidasi interpretasi insinyur perangkat lunak dari kebutuhan perangkat lunak serta untuk memunculkan kebutuhan baru </li></ul><ul><li>Keuntungan prototipe adalah interpretasi terhadap asumsi insinyur perangkat lunak menjadi lebih mudah, dan bila diperlukan dapat diberikan umpan balik yang berguna </li></ul><ul><li>Kelemahan prototipe adalah dapat mengganggu perhatian pelanggan terhadap fungsionalitas inti dan kualitas </li></ul>
  27. 27. Validasi Model <ul><li>Diperlukan untuk memvalidasi kualitas model yang dikembangkan selama analisis </li></ul>
  28. 28. Penerimaan Pengujian <ul><li>Properti penting dari suatu kebutuhan perangkat lunak adalah bahwa hal itu harus mungkin untuk produk yang diselesaikan telah memenuhi kebutuhan tersebut </li></ul><ul><li>Mengidentifikasi dan merancang pengujian penerimaan untuk kebutuhan non-fungsional mungkin sulit dilakukan, oleh karena itu harus dianalisa ke titik dimana mereka dapat dinyatakan secara kuantitatif terlebih dahulu </li></ul>
  29. 29. Sifat Iteratif Proses Kebutuhan <ul><li>Ada tekanan umum dalam industri perangkat lunak untuk siklus pengembangan yang lebih pendek. </li></ul><ul><li>Kebutuhan biasanya beriterasi menuju tingkat kualitas dan detail yang cukup untuk memungkinkan desaindan pengadaan keputusan yang harus dibuat </li></ul><ul><li>Pada hampir semua kasus, pemahaman kebutuhan terus berkembang sebagai hasil desain dan pengembangan </li></ul>
  30. 30. Manajemen Perubahan <ul><li>Manajemen perubahan adalah pusat pada manajemen kebutuhan </li></ul><ul><li>Topik ini menggambarkan peranan manajemen perubahan, prosedur yang perlu diletakkan, dan analisis yang harus diterapkan pada perubahan yang diajukan </li></ul>
  31. 31. Atribut Kebutuhan <ul><li>Kebutuhan harus terdiri dari spesifikasi dari apa yang dibutuhkan, informasi tambahan yang membantu mengelola dan menginterpretasikan kebutuhan. </li></ul><ul><li>Ini harus mencakup dimensi klasifikasi berbagai kebutuhan dan metode verifikasi atau rencana penerimaan tes. </li></ul><ul><li>Ini juga mungkin menyertakan informasi tambahan seperti alasan ringkasan untuk setiap kebutuhan, sumber kebutuhan masing-masing, dan sejarah perubahan. </li></ul><ul><li>Kebutuhan yang paling penting atribut, bagaimanapun, adalah sebuah identifier yang memungkinkan kebutuhan untuk secara unik dan jelas diidentifikasi. </li></ul>
  32. 32. Pelacakan Kebutuhan <ul><li>Menelusuri kebutuhan berkaitan dengan memulihkan sumber kebutuhan dan memprediksi dampak dari kebutuhan </li></ul><ul><li>Sebuah kebutuhan harus dapat dilacak ke belakang dan stakeholder yang memotivasinya </li></ul><ul><li>Kebutuhan harus dapat dilacak ke depan ke dalam kebutuhan dan entitas desain yang memuaskannya </li></ul>
  33. 33. Mengukur Kebutuhan <ul><li>Sebagai masalah praktis, itu biasanya berguna untuk memiliki beberapa konsep &quot;volume&quot; dari persyaratan untuk produk perangkat lunak tertentu. </li></ul><ul><li>Nomor ini berguna dalam mengevaluasi &quot;ukuran“ (size) dari perubahan dalam kebutuhan, dalam mengestimasi biaya tugas pengembangan atau pemeliharaan, atau hanya untuk digunakan sebagai penyebut dalam pengukuran lainnya. </li></ul><ul><li>Pengukuran Ukuran Fungsional (Functional Size Measurement) adalah teknik untuk mengevaluasi ukuran tubuh kebutuhan fungsional. IEEE Std 14.143,1 mendefinisikan konsep FSM. Standar dari ISO / IEC dan sumber lainnya menjelaskan metode FSM </li></ul>

×