Teknik Informatika S1 Software Requirement Engineering Requirement Prioritization Disusun Oleh: Defri Kurniawan, M.Kom Teknik Informatika UDINUS SILABUS MATA KULIAH 1. Requirement Engineering 2. Requirement Elicitation 3. Specification of Requirement Models 4. Requirement Prioritization UTS 5. Requirement Interdependencies: State of the Art and Future 6. Impact Analysis 7. Requirement Negotiation 8. Quality Assurance in Requirement Engineering Requirements Prioritization 1. Pendahuluan Requirements Prioritization 2. Pengertian Requirements Prioritization 3. Aspek dalam menentukan Prioritas 4. Teknik Prioritas 5. Stakeholders yang terlibat dalam proses menentukan prioritas Pendahuluan Requirements Prioritization Dalam bab ini memberikan gambaran tentang teknik untuk menentukan prioritas kebutuhan untuk produk perangkat lunak. Prioritas merupakan langkah penting menuju pembuatan keputusan yang baik mengenai perencanaan produk untuk rilis tunggal dan multiple. Pendahuluan Requirements Prioritization Contoh: When buying a new car, it is relatively easy to make choice based on speed alone. When considering multiple aspects, such as price, safety, comfort, luggage load, the choice becomes much harder. Pengertian Requirements Prioritization Kebanyakan proyek perangkat lunak memiliki calon kebutuhan lebih dari yang dapat direalisasikan. Prioritas membantu untuk mengidentifikasi kebutuhan yang paling berharga dengan membedakan hal yang kritis daripada yang sepele/biasa. Tujuan Requirements Prioritization (1) Proses memprioritaskan kebutuhan dimaksudkan untuk mendukung kegiatan-kegiatan berikut: Para pemangku kepentingan dapat menentukan kebutuhan inti untuk sistem Untuk merencanakan dan memilih sekumpulan kebutuhan optimal perangkat lunak untuk implementasi dalam rilis yang berturutturut Untuk lingkup proyek yang diinginkan kadang-kadang bertentangan dengan kendala seperti jadwal, anggaran, sumber daya, waktu rilis ke pasar, dan kualitas. Tujuan Requirements Prioritization (2) Untuk menyeimbangkan manfaat bisnis terhadap biaya Untuk menyeimbangkan akibat dari kebutuhan pada arsitektur perangkat lunak dan evolusi masa depan produk dan biaya yang terkait Untuk memilih hanya sebagian dari kebutuhan dan masih menghasilkan sebuah sistem yang akan memuaskan pelanggan Untuk memperkirakan kepuasan pelanggan yang diharapkan Tujuan Requirements Prioritization (3) Untuk mendapatkan keunggulan teknis dan mengoptimalkan peluang pasar Untuk meminimalkan kerja ulang dan jadwal (stabilitas rencana) Untuk menangani kebutuhan yang bertentangan, fokus pada proses negosiasi, dan menyelesaikan perbedaan pendapat antara para pemangku kepentingan Untuk menentukan kepentingan relatif dari setiap kebutuhan untuk memberikan nilai terbesar pada biaya terendah Kategori Requirements Prioritization Prioritization Techniques kurang lebih dapat dibagi menjadi dua kategori: Methods dan Negotiation Approaches Metode didasarkan pada jumlah menempatkan nilai ke aspek yang berbeda dari kebutuhan, sementara pendekatan negosiasi fokus pada memberikan prioritas untuk kebutuhan dengan mencapai kesepakatan antara para pemangku kepentingan yang berbeda. Pendekatan negosiasi didasarkan pada ukuran subjektif dan biasanya digunakan ketika analisis kontekstual dan ketika variabel keputusan yang saling terkait. Aspek Prioritas Kebutuhan dapat diprioritaskan kepada berbagai aspek. Sebuah aspek adalah properti atau atribut dari sebuah proyek dan dapat digunakan untuk memprioritaskan kebutuhan. Aspek umum adalah importance, penalty, cost, time, dan risk. Aspek Prioritas 1. Importance (Kepentingan) Ketika memprioritaskan kepentingan harus kepentingan, memprioritaskan para pemangku kebutuhan-kebutuhan mana yang lebih penting untuk sistem. Meskipun, kepentingan bisa menjadi konsep yang sangat beragam karena tergantung pada perspektif yang dimiliki pemangku kepentingan. Aspek Prioritas 2. Penalty (Hukuman) Hal ini dimungkinkan untuk mengevaluasi hukuman yang diperkenalkan jika persyaratan tidak terpenuhi. Misalnya, gagal untuk menyesuaikan diri dengan standar akan dikenakan penalti tinggi bahkan jika itu sangat rendah bagi pelanggan (yaitu pelanggan kebutuhannya tidak terpenuhi). tidak merasa senang jika Aspek Prioritas 3. Cost (Biaya) Biaya pelaksanaan biasanya diperkirakan oleh organisasi pengembang. Tindakan yang mempengaruhi biaya meliputi: kompleksitas kebutuhan, kemampuan untuk menggunakan kembali kode yang ada, jumlah pengujian dan dokumentasi yang diperlukan, dll Biaya sering dinyatakan dalam jam staf (usaha) karena biaya utama dalam pengembangan perangkat lunak terutama sering terkait dengan jumlah jam yang dihabiskan. Aspek Prioritas 4. Time (Waktu) Biaya dalam pengembangan perangkat lunak sering berhubungan dengan jumlah jam staf. Namun, dipengaruhi oleh banyak faktor lain seperti tingkat paralelisme dalam pembangunan, kebutuhan pelatihan, perlu mengembangkan infrastruktur pendukung, standar industri yang lengkap, dll Aspek Prioritas 5. Resiko (Risk) Setiap proyek membawa beberapa jumlah risiko. Dalam manajemen proyek, manajemen risiko digunakan untuk mengatasi baik internal (teknis dan risiko pasar) dan risiko eksternal (misalnya peraturan, pemasok). Manajemen risiko juga dapat digunakan ketika merencanakan persyaratan menjadi produk dan rilis dengan mengidentifikasi risiko yang cenderung menyebabkan kesulitan selama pengembangan. Risiko tersebut bisa mencakup misalnya risiko kinerja, risiko proses, risiko jadwal dll Aspek Prioritas 6. Volatility Volatility of requirements is considered a risk factor and is sometimes handled as part of the risk aspect. Others think that volatility should be analyzed separately and that volatility of requirements should be taken into account separately in the prioritization process. The reasons for requirements volatility vary, for example: the market changes, business requirements change, legislative changes occur, users change, or requirements become clearer during the software life cycle. Aspek Prioritas 6. Volatilitas (Hal yang berubah-ubah) Volatilitas persyaratan dianggap sebagai faktor risiko dan kadangkadang ditangani sebagai bagian dari aspek risiko. Orang lain berpikir bahwa volatilitas harus dianalisis secara terpisah dan volatilitas persyaratan harus diperhitungkan secara terpisah dalam proses prioritas. Misalnya: perubahan pasar, kebutuhan bisnis berubah, perubahan legislatif yang terjadi, pengguna berubah. Aspek Prioritas 7. Other Aspects (Aspek Lain) Dari daftar aspek di atas telah dianggap penting dalam literatur tetapi tidak berarti lengkap. Contoh aspek lain adalah: keuntungan finansial, manfaat strategis, pesaing, kompetensi/ sumber daya, rilis tema, kemampuan untuk menjual, dll Bagi perusahaan, disarankan agar para pemangku kepentingan mengembangkan daftar aspek penting untuk digunakan dalam pengambilan keputusan. Adalah penting bahwa para pemangku kepentingan memiliki penafsiran yang sama dari aspek serta persyaratan. Aspek Prioritas 8. Menggabungkan Aspek yang berbeda-beda Dalam prakteknya, penting untuk mempertimbangkan beberapa aspek sebelum memutuskan apakah persyaratan harus dilaksanakan secara langsung, kemudian, atau tidak sama sekali. Sebagai contoh, dalam pendekatan Cost-Value, baik value (improtance) dan biaya (cost) diprioritaskan untuk melaksanakan persyaratan yang memberikan nilai untuk uang Prioritization Techniques 1. Analytical Hierarchy Process (AHP) 2. Cumulative Voting, the 100-Dollar Test 3. Numerical Assignment (Grouping) 4. Ranking 5. Top-Ten Requirements Prioritization Techniques 1. Analytical Hierarchy Process (AHP) The Analytic Hierarchy Process (AHP) adalah metode pengambilan keputusan yang sistematis yang telah disesuaikan untuk prioritas persyaratan perangkat lunak. Hal ini dilakukan dengan membandingkan semua kemungkinan pasangan kebutuhan hirarkis yang diklasifikasikan, dalam rangka untuk menentukan yang memiliki prioritas lebih tinggi, dan sejauh mana (biasanya pada skala 1-9 dimana satu merupakan sama pentingnya dan sembilan mewakili yang benar-benar lebih penting). Prioritization Techniques 1. Analytical Hierarchy Process (AHP) Penelitian telah menunjukkan bahwa AHP tidak cocok untuk sejumlah besar kebutuhan. Para peneliti telah mencoba untuk menemukan cara untuk mengurangi jumlah perbandingan dan varian teknik telah ditemukan untuk mengurangi jumlah perbandingan sebanyak 75 persen. Prioritization Techniques – Contoh AHP Prioritization Techniques 2. Cumulative Voting, the 100-Dollar Test Tes 100-dolar adalah teknik prioritas yang sangat mudah di mana para pemangku kepentingan diberikan 100 unit imajiner (uang, jam, dll) untuk mendistribusikan antara kebutuhan. Hasil prioritas disajikan pada skala rasio. Masalah dengan teknik ini muncul ketika ada terlalu banyak kebutuhan untuk diprioritaskan. Sebagai contoh, jika Anda memiliki 25 persyaratan, ada rata-rata empat poin untuk mendistribusikan untuk kebutuhan masing-masing. Prioritization Techniques 3. Numerical Assignment (Grouping) Numerical assignment adalah teknik prioritas yang paling umum dan disarankan baik di RFC 2119 dan IEEE Std. 8301998. Pendekatan ini didasarkan pada pengelompokan kebutuhan ke dalam kelompok prioritas yang berbeda. Jumlah kelompok dapat bervariasi, tetapi dalam prakteknya, tiga kelompok yang sangat umum. Prioritization Techniques 3. Numerical Assignment (Grouping) Bila menggunakan tugas numerik, adalah penting bahwa masing-masing kelompok mewakili sesuatu yang para pemangku kepentingan dapat berhubungan dengan (misalnya kritis, standar, opsional), untuk klasifikasi handal. Prioritization Techniques 4. Ranking Seperti dalam tugas numerik, peringkat didasarkan pada skala ordinal tetapi peringkat kebutuhan tanpa ikatan. Ini berarti bahwa kebutuhan yang paling penting adalah peringkat 1 dan yang paling penting adalah peringkat n (n untuk kebutuhan). Setiap kebutuhan memiliki peringkat yang unik (dibandingkan dengan tugas numerik) tetapi tidak mungkin untuk melihat perbedaan relatif antara item peringkat (seperti dalam AHP atau tes 100 dolar). Prioritization Techniques 5. Top-Ten Requirements Dalam pendekatan kebutuhan top-sepuluh, para pemangku kepentingan memilih kebutuhan mereka sepuluh paling atas (dari satu set yang lebih besar) tanpa menetapkan perintah internal antara kebutuhan. Prioritization Techniques 5. Top-Ten Requirements Hal ini membuat pendekatan sangat cocok untuk berbagai pemangku kepentingan sama pentingnya. Alasan untuk tidak memprioritaskan menciptakan lanjut konflik adalah yang tidak bahwa perlu hal itu mungkin ketika beberapa stakeholder mendapatkan dukungan untuk prioritas utama mereka dan yang lain hanya untuk prioritas ketiga mereka. Which Prioritization Technique to Choose Technique Scale Granularity/ Rincian Sophistication/ Kecanggihan AHP Rasio Fine/ halus Very Complex Hundred-dollar test Rasio Fine Complex Ranking Urutan Medium Easy Numerical Assignment Urutan Coarse/ Kasar Very Easy Top-ten - Extremely Coarse Extremely Easy Stakeholders yang terlibat dalam proses prioritas Facet/ Aspek Bespoke Development/ Pengembangan pesanan Market-driven Development/ Pengembangan yang didorong pasar Main Stakeholder Customer organization Developing Organization Users Known or identifiable Unknown Distance to users Usually small Usually Large Requirements Conception Elicited, analyzed, validated Diciptakan (by market pull or technology push) Lifecycle One release, then maintenance Beberapa dirilis selama ada permintaan pasar Specific RE issues Elicitation, modeling, validation, conflict resolution Aliran persyaratan, prioritas, estimasi biaya, rilis perencanaan Primary Goal Patuh terhadap spesifikasi Time-to-market Measure of success Satisfaction, acceptance Sales, market share Stakeholders yang terlibat dalam proses prioritas The discussion here focuses on three different “general” scenarios: 1. One customer 2. A Number of “known” customers 3. A Mass Market Stakeholders yang terlibat dalam proses prioritas 1. One customer Dalam situasi satu pelanggan, hanya ada satu prioritas pelanggan yang perlu dipertimbangkan (dari perspektif pelanggan/ pengguna). Banyak dari proses pengembangan perangkat lunak ini didasarkan pada satu pelanggan dan menganggap bahwa pelanggan ini tersedia di seluruh proyek. Stakeholders yang terlibat dalam proses prioritas 1. One customer Sebagai contoh, eXtreme Programming memiliki “on-site customer” sebagai salah satu praktik inti (fokusnya adalah pada memiliki satu pelanggan meskipun pelanggan ini bisa mewakili pasar). Stakeholders yang terlibat dalam proses prioritas 2. Several known customers Ketika memiliki beberapa pelanggan, isu prioritas menjadi lebih sulit karena pelanggan mungkin memiliki sudut pandang yang saling bertentangan dan preferensi berbeda. Ini memperkenalkan tantangan dalam pandangan ini pelanggan yang berbeda bersama-sama. Tujuan utama dalam situasi ini adalah untuk menciptakan kondisi win-win dan membuat setiap pemangku kepentingan sebagai "pemenang". Stakeholders yang terlibat dalam proses prioritas 3. A Mass Market Ketika mengembangkan untuk pasar massal, tidak mungkin untuk mendapatkan semua pelanggan untuk memprioritaskan. Ketika memunculkan informasi untuk prioritas dalam situasi pasar massal, ada sumber yang berbeda: Catatan Internal (e.g. pengiriman, catatan penjualan), Marketing intelligence (e.g. informasi dari tenaga penjualan, ilmuwan), Competitor intelligence (e.g. informasi tentang strategi pesaing, perbandingan produk pesaing) and Marketing research (e.g. surveys, focus groups). TERIMA KASIH