Teknik Informatika S1

advertisement
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
Download