Dokumen tersebut membahas tentang metrik pengukuran proses dan produk pengembangan perangkat lunak. Beberapa metrik yang dijelaskan adalah metrik berorientasi ukuran seperti baris kode dan biaya per baris kode, metrik berorientasi fungsi seperti function point, serta perluasan metrik seperti 3D function point yang mempertimbangkan dimensi data, fungsional, dan kontrol.
1. 1
Software EngineeringSoftware Engineering
SOFTWARE PROCESS AND PROJECTSOFTWARE PROCESS AND PROJECT
METRICSMETRICS
Oleh :Oleh :
Ir. I Gede Made Karma, MTIr. I Gede Made Karma, MT
2
Pengukuran SoftwarePengukuran Software
Pengukuran langsungPengukuran langsung
Proses : biaya dan usaha yang dilakukan.Proses : biaya dan usaha yang dilakukan.
Produk : jumlah baris kode, kecepatan eksekusi, ukuranProduk : jumlah baris kode, kecepatan eksekusi, ukuran
memory dan jumlah cacat pada periode waktu tertentu.memory dan jumlah cacat pada periode waktu tertentu.
Relatif mudah untuk dikerjakan.Relatif mudah untuk dikerjakan.
Pengukuran tidak langsungPengukuran tidak langsung
Fungsionalitas, kualitas, kompleksitas, efisiensi,Fungsionalitas, kualitas, kompleksitas, efisiensi,
keandalan, maintainability.keandalan, maintainability.
Lebih sulit untuk menilai.Lebih sulit untuk menilai.
3
Normalisasi MetrikNormalisasi Metrik
normalisasi berorientasi ukuran — pendekatan baris code
normalisasi berorientasi fungsi — pendekatan poin fungsi
Metrik produk (private, individu)
Metrik proses (publik, organisasi)
Metrik proyek (public, tim softwaredikombinasi
dikonsolidasi
4
Metrik Berorientasi Ukuran (1)Metrik Berorientasi Ukuran (1)
Diperoleh dengan normalisasi ukuran kualitas dan/atauDiperoleh dengan normalisasi ukuran kualitas dan/atau
produktivitas dengan mempertimbangkan ukuran dari softwareproduktivitas dengan mempertimbangkan ukuran dari software
yang telah dihasilkan.yang telah dihasilkan.
66646425625610501050314314434320,20020,200GammaGamma
55646432132112241224440440626227,20027,200BetaBeta
332929134134365365168168242412,10012,100AlphaAlpha
OrangOrangCacatCacatKesalahanKesalahanHalamanHalamanDolar(000)Dolar(000)UsahaUsahaLOCLOCProyekProyek
5
Metrik Berorientasi Ukuran (2)Metrik Berorientasi Ukuran (2)
errorserrors per KLOC (ribuan barisper KLOC (ribuan baris codecode))
cacat per KLOCcacat per KLOC
$ per LOC$ per LOC
Halaman dokumentasi per KLOCHalaman dokumentasi per KLOC
errorserrors / orang/ orang--bulanbulan
LOC per orangLOC per orang--bulanbulan
$ / halaman dokumentasi$ / halaman dokumentasi
6
Metrik Berorientasi Ukuran (3)Metrik Berorientasi Ukuran (3)
Tidak secara universal diterima sebagai cara terbaikTidak secara universal diterima sebagai cara terbaik
untuk mengukur proses pengembangan software.untuk mengukur proses pengembangan software.
Kontroversi terjadi seputar pemakaian baris kodeKontroversi terjadi seputar pemakaian baris kode
sebagai kunci ukuran.sebagai kunci ukuran.
Pro : LOC mudah diukur dan banyak model estimasiPro : LOC mudah diukur dan banyak model estimasi
software mempergunakan LOC.software mempergunakan LOC.
Kontra : LOC tergantung pada bahasaKontra : LOC tergantung pada bahasa
pemrograman, tidak adil bagi rancangan yang baguspemrograman, tidak adil bagi rancangan yang bagus
dengan program yang lebih pendek, tidak mudahdengan program yang lebih pendek, tidak mudah
diakomadasi dengan bahasa nonprosedural.diakomadasi dengan bahasa nonprosedural.
Untuk pemakaian estimasi diperlukan tingkatUntuk pemakaian estimasi diperlukan tingkat
kedetilan yang sulit diperoleh.kedetilan yang sulit diperoleh.
2. 7
Metrik Berorientasi FungsiMetrik Berorientasi Fungsi
•• Mempergunakan ukuran fungsionalitas dariMempergunakan ukuran fungsionalitas dari
aplikasi yang diserahkan.aplikasi yang diserahkan.
•• Tidak dapat diukur secara langsung, makaTidak dapat diukur secara langsung, maka
diperoleh secara tidak langsung dengandiperoleh secara tidak langsung dengan
mempergunakan pengukuran langsung lain.mempergunakan pengukuran langsung lain.
•• Function PointFunction Point diperoleh dengan mempergunakandiperoleh dengan mempergunakan
hubungan empiris berdasarkan pengukuranhubungan empiris berdasarkan pengukuran
langsung dari domain informasi software danlangsung dari domain informasi software dan
penilaian kompleksitas software.penilaian kompleksitas software.
8
Perhitungan Function Point (1)Perhitungan Function Point (1)
Analyze information
domain of the
application
and develop counts
Weight each count by
assessing complexity
Assess influence of
global factors that affect
the application
Compute
function points
Establish count for input domain and
system interfaces
Assign level of complexity or weight
to each count
Grade significance of external factors, F
such as reuse, concurrency, OS, ...
degree of influence: N = F
i
complexity multiplier: C = (0.65 + 0.01 x N)
function points = (count x weight) x C
where:
i
9
Perhitungan Function Point (2)Perhitungan Function Point (2)
complexity multiplier
function points
number of user inputs
number of user outputs
number of user inquiries
number of files
number of ext.interfaces
measurement parameter
3
4
3
7
5
count
weighting factor
simple avg. complex
4
5
4
10
7
6
7
6
15
10
=
=
=
=
=
count-total
X
X
X
X
X
10
Perhitungan Function Point (3)Perhitungan Function Point (3)
Number of user inputs input pemakai yang menyediakan data
tertentu yang berorientasi pada aplikasi software, dihitung.
Number of user outputs output pemakai yang menyediakan
informasi yang berorientasi pada aplikasi kepada pemakai, dihitung.
Contoh : laporan, tampilan layar, pesan kesalahan, dll.
Number of user inquiries input on-line yg mengakibatkan
munculnya beberapa respon software yang cepat, berbentuk output
on-line, dihitung.
Number of user files file master logika, dihitung
Number of external interfaces interface yang dibaca oleh
mesin yang digunakan dalam memindahkan informasi ke sistem lain,
dihitung.
Nilai Domain Informasi :Nilai Domain Informasi :
11
Perhitungan Function Point (4)Perhitungan Function Point (4)
UntukUntuk menghitungmenghitung FPFP dipakaidipakai hubunganhubungan ::
FP =FP = Count TotalCount Total x [0,65 + 0,01 xx [0,65 + 0,01 x EEFFii]]
CountCount TotalTotal adalahadalah jumlahjumlah semuasemua entrientri padapada tabel.tabel.
FFii (i = 1(i = 1 sampaisampai 14)14) adalahadalah ““hargaharga penyesuaianpenyesuaian kompleksitaskompleksitas””
berdasarkanberdasarkan responrespon pertanyaanpertanyaan berikut.berikut.
SetiapSetiap faktorfaktor dinilai dengandinilai dengan skalaskala 00 sampaisampai 55
0 1 20 1 2 3 4 53 4 5
Tidak
berpengaruh
Insidental
Moderat
Rata-rata Signifikan Esensial
12
1.1. ApakahApakah sistemsistem membutuhkanmembutuhkan backupbackup dandan recoveryrecovery yangyang
andal?andal?
2.2. ApakahApakah komunikasikomunikasi datadata dibutuhkandibutuhkan??
3.3. ApakahApakah ada fungsiada fungsi pemrosesanpemrosesan terdistribusi?terdistribusi?
4.4. ApakahApakah kinerjakinerja merupakan sesuatu yang penting?merupakan sesuatu yang penting?
5.5. ApakahApakah sistemsistem akanakan berjalanberjalan padapada lingkunganlingkungan operasionaloperasional
yangyang ada,ada, palingpaling banyakbanyak digunakandigunakan??
6.6. ApakahApakah sistemsistem membutuhkanmembutuhkan entry data secara online?entry data secara online?
7.7. Apakah entry data online membutuhkan transaksi input melaluiApakah entry data online membutuhkan transaksi input melalui
banyak layar atau operasi?banyak layar atau operasi?
Perhitungan Function Point (5a)Perhitungan Function Point (5a)
Pertanyaan :Pertanyaan :
3. 13
Perhitungan Function Point (5b)Perhitungan Function Point (5b)
8.8. ApakahApakah file masterfile master diperbaruidiperbarui secarasecara online?online?
9.9. ApakahApakah input, output, fileinput, output, file atauatau inquiriinquiri komplekskompleks??
10.10. ApakahApakah pemrosesanpemrosesan internalinternal komplekskompleks??
11.11. ApakahApakah kodekode dirancangdirancang untukuntuk dapatdapat dipakai kembalidipakai kembali??
12.12. ApakahApakah konversikonversi dandan instalasi termasuk dalam rancangan?instalasi termasuk dalam rancangan?
13.13. ApakahApakah sistemsistem dirancangdirancang untukuntuk banyak instalasi untukbanyak instalasi untuk
organisasiorganisasi yang berbeda?yang berbeda?
14.14. ApakahApakah aplikasiaplikasi dirancangdirancang untukuntuk memfasilitasimemfasilitasi perubahanperubahan dandan
mudah dipergunakan olehmudah dipergunakan oleh pemakai?pemakai?
14
Metrik Berorientasi FungsiMetrik Berorientasi Fungsi
errorserrors per FP (Function Point : poin fungsi)per FP (Function Point : poin fungsi)
cacat per FPcacat per FP
$ per FP$ per FP
halaman dokumentasi per FPhalaman dokumentasi per FP
FP per orangFP per orang--bulanbulan
15
Metrik Function PointMetrik Function Point Diperluas (1)Diperluas (1)
Feature pointsFeature points supersetsuperset daridari pengukuranpengukuran functionfunction
pointpoint yangyang dapatdapat diterapkanditerapkan padapada aplikasiaplikasi softwaresoftware
rekayasarekayasa dandan sistem.sistem.
PengukurannyaPengukurannya mengakomodasimengakomodasi aplikasiaplikasi yangyang
kompleksitaskompleksitas algoritmanyaalgoritmanya tinggitinggi: real: real--time,time, kontrolkontrol
prosesproses,, aplikasiaplikasi embedded software.embedded software.
3D Function Point3D Function Point pendekatanpendekatan BoeingBoeing
mengintegrasikanmengintegrasikan dimensidimensi datadata perangkatperangkat lunaklunak
dengandengan dimensidimensi kontrolkontrol dandan fungsionalfungsional memberikanmemberikan
sebuahsebuah pengukuranpengukuran yangyang berorientasiberorientasi padapada fungsi.fungsi.
16
Metrik Function PointMetrik Function Point Diperluas (2)Diperluas (2)
DimensiDimensi DataData
PenghitunganPenghitungan datadata yangyang disimpandisimpan (file)(file) dandan data externaldata external
(input, output, query,(input, output, query, referensireferensi eksternaleksternal)) dipakaidipakai bersamabersama
dengandengan pengukuranpengukuran kompleksitaskompleksitas untukuntuk mendapatkanmendapatkan
dimensidimensi data.data.
DimensiDimensi FungsionalFungsional
DiukurDiukur dengandengan mempertimbangkanmempertimbangkan ““jumlahjumlah operasioperasi internalinternal
yangyang dibutuhkandibutuhkan untukuntuk mengubahmengubah inputinput keke data output”.data output”.
TransformasiTransformasi deretanderetan langkahlangkah pemrosesanpemrosesan yangyang dibatasidibatasi
oleholeh sejumlahsejumlah pernyataanpernyataan semantik.semantik.
TingkatTingkat kompleksitaskompleksitas daridari transformasitransformasi merupakanmerupakan fungsifungsi
daridari jumlahjumlah tahapantahapan prosesproses dandan jumlahjumlah pernyataanpernyataan
semantiksemantik yangyang mengendalikanmengendalikan tahapantahapan pemrosesan.pemrosesan.
17
MenetapkanMenetapkan KompleksitasKompleksitas TransformasiTransformasi
3D Function Point3D Function Point
TinggiTinggiTinggiTinggiRataRata--ratarata21+21+
TinggiTinggiRataRata--ratarataRendahRendah1111 –– 2020
RataRata--ratarataRendahRendahRendahRendah11 -- 1010
11+11+66 -- 101011 -- 55
Pernyataan
Semantik
Langkah2
Pemrosesan
18
Metrik Function Point Diperluas (3)Metrik Function Point Diperluas (3)
DimensiDimensi KontrolKontrol
DiukurDiukur dengandengan menghitungmenghitung jumlahjumlah transisitransisi antarantar kondisikondisi
((statestate).).
KondisiKondisi mewakilimewakili beberapabeberapa modemode tingkahtingkah lakulaku yangyang
dapatdapat diobersvasidiobersvasi secarasecara eksternal.eksternal.
TransisiTransisi terjaditerjadi sebagaisebagai hasilhasil daridari beberapa kejadianbeberapa kejadian
yangyang menyebabkanmenyebabkan softwaresoftware atauatau sistemsistem mengubahmengubah modemode
tingkahtingkah lakunya.lakunya.
Pada saat perhitungan 3D function point, transisi tidakPada saat perhitungan 3D function point, transisi tidak
menentukan nilai kompleksitas.menentukan nilai kompleksitas.
4. 19
Metrik Function Point Diperluas (4)Metrik Function Point Diperluas (4)
MenghitungMenghitung 3D Function Point :3D Function Point :
indeksindeks = I + O + Q + F + E + T + R= I + O + Q + F + E + T + R
II, O, Q, F, E, T dan R, O, Q, F, E, T dan R adalahadalah nilainilai bobotbobot kompleksitaskompleksitas daridari
input, output, inquiry,input, output, inquiry, strukturstruktur data internal, filedata internal, file eskternaleskternal,,
transformasi dan transisi.transformasi dan transisi.
NilaiNilai bobotbobot kompleksitaskompleksitas == NNililWWilil ++ NNiaiaWWiaia ++ NNihihWWihih
NNilil,, NNiaia dandan NNihih adalahadalah jumlahjumlah kemunculankemunculan elemenelemen ii
((contohnyacontohnya output)output) padapada setiapsetiap kompleksitaskompleksitas ((rendahrendah, rata, rata--
rata,rata, tinggitinggi),), dandan WWilil ,, WWiaia dandan WWihih merupakanmerupakan bobotnyabobotnya
masingmasing--masing.masing.
20
Penghitungan Indeks 3D Function PointPenghitungan Indeks 3D Function Point
KomplesitasKomplesitas PembobotanPembobotan
ElemenElemen pengukuranpengukuran rendahrendah sedangsedang tinggitinggi
StrukturStruktur data internaldata internal XX 77 ++ XX 1010 ++ XX 1515 ==
DataData eksternaleksternal XX 55 ++ XX 77 ++ XX 1010 ==
JumlahJumlah inputinput pemakaipemakai XX 33 ++ XX 44 ++ XX 66 ==
JumlahJumlah outputoutput pemakaipemakai XX 44 ++ XX 55 ++ XX 77 ==
JumlahJumlah penyelidikpenyelidik XX 33 ++ XX 44 ++ XX 66 ==
pemakaipemakai
TransformasiTransformasi XX 77 ++ XX 1010 ++ XX 1515 ==
TransisiTransisi XX nn/a/a ++ XX nn/a +/a + XX n/n/aa ==
Indeks functionpoint 3 D
21
Rekonsiliasi Perbedaan PenerapanRekonsiliasi Perbedaan Penerapan
MetrikMetrik
Relasi antara LOC dan Function Point sangatRelasi antara LOC dan Function Point sangat
tergantung pada bahasa pemrograman yangtergantung pada bahasa pemrograman yang
dipergunakan untuk mengimplementasikandipergunakan untuk mengimplementasikan
software dan kualitas dari rancangan.software dan kualitas dari rancangan.
22
FaktorFaktor ygyg mempengaruhimempengaruhi produktivitasproduktivitas PL:PL:
ManusiaManusia jumlahjumlah dandan keahliankeahlian organisasiorganisasi pengembang.pengembang.
MasalahMasalah kompkesitaskompkesitas masalahmasalah yangyang dipecahkandipecahkan dandan
jumlahjumlah perubahanperubahan dalamdalam batasanbatasan dandan persyaratanpersyaratan
rancangan.rancangan.
ProsesProses teknisteknis analisisanalisis dandan rancanganrancangan yangyang digunakandigunakan,,
bahasabahasa,, pirantipiranti CASECASE yangyang ada,ada, dandan teknikteknik kajian.kajian.
SumberSumber dayadaya ketersediaanketersediaan pirantipiranti CASECASE dandan sumbersumber
dayadaya perangkatperangkat keraskeras dandan perangkatperangkat lunak.lunak.
23
www.ifpug.orgwww.ifpug.org
http://ourworld.compuserve.com/homepages/softcomp/http://ourworld.compuserve.com/homepages/softcomp/
Informasi Metrik Function PointInformasi Metrik Function Point
24
MetrikMetrik untukuntuk KualitasKualitas SoftwareSoftware
KualitasKualitas sistemsistem,, aplikasiaplikasi atauatau produkproduk
persyaratanpersyaratan yangyang menjelaskanmenjelaskan masalahmasalah,,
rancanganrancangan modelmodel solusisolusi,, kodekode ygyg membuatmembuat
programprogram dapatdapat dieksekusidieksekusi,, dandan pengujianpengujian
softwaresoftware untukuntuk menemukanmenemukan kesalahan.kesalahan.
TujuanTujuan utamautama padapada tingkattingkat proyekproyek adalahadalah
untukuntuk mengukurmengukur kesalahankesalahan dandan cacatcacat
5. 25
FaktorFaktor yangyang MempengaruhiMempengaruhi KualitasKualitas
OperasiOperasi produkproduk ((pemanfaatannya)pemanfaatannya)
RevisiRevisi produkproduk (perubahannya(perubahannya))
TransisiTransisi produkproduk ((memodifikasimemodifikasi agaragar bekerjabekerja
dalamdalam lingkunganlingkungan yangyang berbedaberbeda))
26
Pengukuran Kualitas (1)Pengukuran Kualitas (1)
CorrectnessCorrectness derajat yang menunjukkan operasi programderajat yang menunjukkan operasi program
dikaitkan dengan spesifikasi.dikaitkan dengan spesifikasi.
Tingkat dimana software melakukan fungsi yang ditetapkan.Tingkat dimana software melakukan fungsi yang ditetapkan.
Ukuran:Ukuran: cacat per KLOCcacat per KLOC, dimana cacat didefinisikan sebagai kurangnya, dimana cacat didefinisikan sebagai kurangnya
kesesuaian dengan persyaratan.kesesuaian dengan persyaratan.
MaintainabilityMaintainability derajat yang menunjukkan responsif programderajat yang menunjukkan responsif program
pada perubahanpada perubahan
Kemudahan dimana program dapat dikoreksi jika ditemukan kesalahaKemudahan dimana program dapat dikoreksi jika ditemukan kesalahan,n,
diadaptasi jika lingkungannya berubah, atau ditingkatkan jika pediadaptasi jika lingkungannya berubah, atau ditingkatkan jika pelangganlanggan
menginginkan perubahan kebutuhan.menginginkan perubahan kebutuhan.
Pengukuran metrikPengukuran metrik timetime--orientedoriented sederhana adalah ratasederhana adalah rata--rata waktu yangrata waktu yang
dibuthkan untuk berubah (MTTC), waktu untuk menganalisa perubahadibuthkan untuk berubah (MTTC), waktu untuk menganalisa perubahan,n,
merancang modifikasi yang sesuai, implementasi perubahan, pengujmerancang modifikasi yang sesuai, implementasi perubahan, pengujianian
dan mendistribusikan perubahan pada semua pemakai.dan mendistribusikan perubahan pada semua pemakai.
27
Pengukuran Kualitas (2)Pengukuran Kualitas (2)
IntegrityIntegrity derajat yang menunjukkan ketahananderajat yang menunjukkan ketahanan
program dari serangan luarprogram dari serangan luar
Mengukur kemampuan sistem untuk menahan serangan atasMengukur kemampuan sistem untuk menahan serangan atas
keamanannyakeamanannya
Atribut tambahan untuk mengukur : ancaman dan keamananAtribut tambahan untuk mengukur : ancaman dan keamanan
Ancaman : probabilitas akan serangan tipe tertentu yang terjadiAncaman : probabilitas akan serangan tipe tertentu yang terjadi
dalam suatu periode waktu tertentu.dalam suatu periode waktu tertentu.
Keamanan : probabilitas akan serangan tipe tertentu yang dipukulKeamanan : probabilitas akan serangan tipe tertentu yang dipukul
mundurmundur
Integritas =Integritas = ΣΣ [1[1-- ancaman x ( 1ancaman x ( 1 –– keamanan)] , dimana ancamankeamanan)] , dimana ancaman
dan keamanan adalah jumlah dari setiap jenis serangan.dan keamanan adalah jumlah dari setiap jenis serangan.
28
Pengukuran Kualitas (3)Pengukuran Kualitas (3)
UsabilityUsability derajat yang menunjukkan kemudahanderajat yang menunjukkan kemudahan
dalam mempergunakan programdalam mempergunakan program
Upaya untuk mengukurUpaya untuk mengukur user friendlinessuser friendliness dan dapat diukur dalamdan dapat diukur dalam
empat karakteristik :empat karakteristik :
Ketrampilan fisik dan atau intelektual untuk mempelajari sistemKetrampilan fisik dan atau intelektual untuk mempelajari sistem
Waktu yang diperlukan untuk menjadi cukup efisien dalamWaktu yang diperlukan untuk menjadi cukup efisien dalam
menggunakan sistemmenggunakan sistem
Peningkatan produktivitas bersih yang diukur ketika sistemPeningkatan produktivitas bersih yang diukur ketika sistem
digunakan cukup efisien oleh seseorangdigunakan cukup efisien oleh seseorang
Penilaian subyektif atas sikap pemakai terhadap sistemPenilaian subyektif atas sikap pemakai terhadap sistem
29
Efisiensi Penghilangan Cacat (1)Efisiensi Penghilangan Cacat (1)
DRE = (errors) / (errors + defects)
dimana
errors = masalah yang ditemukan sebelum release
defects = masalah yang ditemukan sesudah release
Nilai ideal DRE = 1, dimana tidak ditemukanNilai ideal DRE = 1, dimana tidak ditemukan
adanya cacat pada software.adanya cacat pada software.
mengukur kemampuan penyaringan dari aktivitasmengukur kemampuan penyaringan dari aktivitas
pengendalian dan penjaminan kualitas sejakpengendalian dan penjaminan kualitas sejak
diterapkan pada semua aktivitas kerangka kerjaditerapkan pada semua aktivitas kerangka kerja
prosesproses
30
Efisiensi Penghilangan Cacat (2)Efisiensi Penghilangan Cacat (2)
DRE dapat digunakanDRE dapat digunakan dalamdalam proyekproyek untukuntuk
menilaimenilai kemampuankemampuan timtim dalamdalam menemukanmenemukan
kesalahankesalahan sebelumsebelum dilewatkandilewatkan keke aktivitasaktivitas
kerangkakerangka kerjakerja berikutnya.berikutnya.
DREDREii == EEii/(E/(Eii + E+ Eii+1+1)) dimanadimana
EEii:: jumlahjumlah kesalahankesalahan ygyg ditemukanditemukan selamaselama aktivitasaktivitas RPLRPL ii
EEii+1+1 :: jumlahjumlah kesalahankesalahan ygyg ditemukanditemukan selamaselama aktivitasaktivitas RPLRPL
i+1 yangi+1 yang dapatdapat dilacakdilacak padapada kesalahankesalahan yangyang tidaktidak
ditemukanditemukan dalamdalam aktivitasaktivitas RPLRPL ii
NilaiNilai ideal DRE = 1,ideal DRE = 1, dimanadimana kesalahankesalahan akanakan didi--
filterfilter sebelumsebelum dilewatkandilewatkan keke aktivitasaktivitas
berikutnyaberikutnya