Metrik Pengukur Kualitas Perangkat Lunak - AGUSPALBENO.COM web page hit counter

Metrik Pengukur Kualitas Perangkat Lunak

Aguspalbeno.com-Pengukuran perangkat lunak merupakan hal yang terpenting dari praktek rekayasa perangkat lunak yang baik. Serta pengukuran aktivitas manusia menambah nilai dan terlibat aktif dalam proses informasi. Pengukuran inimembantu untuk membuat karakteristik khusus dari proses dan produk informasi. Pengukuran meliputi evaluasi kuantitatif yang biasanya menggunakan metrik serta ukuran dapat menggunakan secara langsung menentukan pencapaian tujuan kualitas numerik.

Pengukuran selalu menjadi fundamental bagi kemajuan untuk setiap disiplin rekayasa dan pengujian perangkat lunak. pengukuran perangkat lunak dan metrik menjadi peran mendasar dalam siklus hidup pengembangan perangkat lunak, dan Metrik perangkat lunak telah digunakan dalam membuat keputusan kuantitatif/kualitatif maupun dalam penilaian risiko dan pengurangan dalam proyek perangkat lunak.

agus palbeno

agus palbeno

DOMAIN METRIK

 

Metrik digunakan oleh industri perangkat lunak untuk mengukur proses pembuatan, operasi, dan perawatan perangkat lunak. Melalui metrik, dapat diperoleh informasi-informasi berharga dan parameter-parameter sebagai bahan evaluasi yang obyektif mengenai atribut-atribut dan status dari suatu pengembangan perangkat lunak. Implementasi metrik perangkat lunak pada suatu proses pengembangan perangkat lunak dan pada suatu produk perangkat lunak melibatkan tahapan-tahapan kompleks yang memerlukan pembelajaran yang berkelanjutan, yang pada akhirnya dapat memberikan pengetahuan mengenai status dari suatu proses pembuatan perangkat lunak dan atau suatu produk dari perangkat lunak

Metrik perangkat lunak memiliki batasan-batasan yang luas. Metrik perangkat lunak tergantung pada atribut-atribut perangkat lunak yang ingin dinilai kuantitas dan kualitasnya.

Secara umum, metrik perangkat lunak dibagi dalam dua kelas yang berbeda, yaitu metrik yang digunakan pada proyek pengembangan perangkat lunak dan metrik yang digunakan pada produk perangkat lunak. Metrik pada proyek pengembangan perangkat lunak berhubungan dengan tenaga dan pikiran yang diperlukan untuk menyelesaikan proyek, sumber daya yang digunakan untuk menyelesaikannya, dan metodologi yang diterapkan, misalnya: waktu yang diperlukan untuk menyelesaikan, tenaga ahli yang diperlukan, biaya-biaya yang dikeluarkan, dan metodologi yang digunakan dalam pembuatan perangkat lunak.

 

Tujuan Umum Pengukuran

Pengukuran adalah pemetaan dari dunia empiris ke dunia, formal relasional. Akibatnya, ukuran adalah jumlah atau simbol ditugaskan untuk suatu entitas dengan pemetaan ini untuk mengkarakterisasi atribut  (Sheikh Umar Farooq 2011), Karakteristik pengukuran yang baik adalah

  1.  Hasil dari proses pengukuran adalah direproduksi. (Hasil yang sama didapatkan dari waktu ke waktu dan di seluruh situasi.)
  2. Validitas – Proses pengukuran benar-benar mengukur apa yang dimaksudkan untuk mengukur.
  3. Sensitivitas – Proses pengukuran menunjukkan variabilitas dalam tanggapan ketika ada dalam stimulus atau situasi.

Sehubungan dengan perangkat lunak, Pengukuran adalah proses yang berkesinambungan dalam menetapkan, mengumpulkan, dan menganalisis data pada proses pengembangan perangkat lunak dan produk-produknya dalam rangka untuk memahami dan mengontrol proses dan produk, dan memberikan informasi yang berarti untuk meningkatkan proses dan produk.

Metrik ini dapat digunakan oleh Software Pengelola yang mengambil Software outsourcing untuk pemeliharaan dalam menentukan pembacaan representatif Perangkat Lunak selama mengambil kesepakatan dengan klien mereka. Metrik yang dapat berfungsi sebagai atribut atau subcharacteristic kualitas tingkat lain yang lebih tinggi karakteristik seperti analyzability dalam hirarki SQMs, (Bajeh, A. O.2011)

Dalam pengukuran sangat penting untuk mencapai tujuan manajemen dasar perbaikan prediksi, kemajuan, dan proses. Kemudian software sendiri biasanya diukur untuk melayani tujuannya seperti yang dijelaskan oleh (Sheikh Umar Farooq 2011) diantaranya.

  • Karakterisasi, yaitu, pengumpulan informasi tentang beberapa karakteristik dari proses perangkat lunak dan produk, dengan tujuan mendapatkan ide yang lebih baik dari “apa yang terjadi. “
  • Evaluasi, yaitu, menilai beberapa karakteristik dari proses perangkat lunak atau produk, misalnya berdasarkan sejarah data dalam lingkungan pengembangan yang sama atau data yang tersedia dari sumber eksternal.
  • Perbaikan, yaitu, dengan menggunakan hubungan sebab-akibat untuk mengidentifikasi bagian dari proses atau produk yang dapat berubah untuk mendapatkan efek positif pada beberapa karakteristik yang menarik, dan mengumpulkan data setelah perubahan memiliki telah dilakukan untuk mengkonfirmasi atau disconfirm apakah efeknya positif dan menilai luasnya.
  • Prediksi, yaitu, mengidentifikasi hubungan sebab-akibat antara karakteristik produk dan proses.
  • Pelacakan, yaitu akuisisi (mungkin konstan dan teratur) informasi tentang beberapa karakteristik perangkat lunak proses dan produk dari waktu ke waktu, untuk un derstand jika karakteristik tersebut berada di bawah pengendalian di on-akan proyek.
  • Validasi, yaitu memvalidasi praktik terbaik diidentifikasi eksperimen.

1.2 Determinan Kualitas dan Efektivitas Perangkat Lunak

sebuah perangkat lunak sangat perlu dilakukan untuk menilai kualitas sebuah perangkat lunak. Kualitas perangkat lunak adalah gabungan yang kompleks dari berbagai faktor yang akan bervariasi dan pelanggan yang berbeda kebutuhannya. Gabungan antara kebutuhan pengguna perangkat lunak dan faktor-faktor lain akan menghasilkan kualitas sebuah perangkat lunak

Grady. 1992 mendefinisikan ukuran kualitas perangkat lunak dilihat dari beberapa aspek, yaitu :

  1. Catat per KLOC; dimana cacat diartikan kurangnya kesesuaian dengan persyaratan
  2. Maintanabilitas; kemudahan dimana program dapat dikoreksi jika ditemukan kesalahan, dapat beradaptasi jika lingkungan berubah. Mudah dikembangkan bila pelanggan menginginkan perubahan.
  3. Integritas; kemampuan sistem untuk menahan serangan terhadap sekuritasnya. Serangan dapat berupa virus maupun hacker yang mengganggu program data maupun dokumen.
  1. Pengukuran Perangkat Lunak

Pengukuran dapat dipisahkan dalam dua kategori, yaitu  pengukuran langsung dan pengukuran tidak langsung. Pengukuran langsung dalam proses rekayasa perangkat lunak berhubungan dengan biaya dan sumber daya yang diperlukan, misalnya: pengukuran jumlah baris kode, kecepatan eksekusi, ukuran memori, dan kesalahan yang ditemui dalam suatu periode waktu.

Pengukuran tidak langsung dari suatu produk berhubungan dengan fungsionalitas, kualitas, kompleksitas, efisiensi, reliabilitas, dan lain sebagainya. Pengukuran secara langsung lebih mudah dilakukan, karena hasil dapat diperoleh secara langsung, sedangkan pengukuran tidak langsung lebih sulit dilakukan, karena harus melalu proses yang lebih kompleks.

Metrik dipisahkan menjadi metrik proses, proyek, dan produk.

Metrik produk bersifat privat untuk individu dan sering dikombinasikan untuk membuat metrik proyek yang bersifat publik bagi tim pengembang. Metrik proyek kemudian dikonsolidasikan untuk membuat metrik proses yang publik untuk seluruh organisasi atau perusahaan. Kesulitan yang biasanya dihadapi adalah pada saat melakukan kombinasi pada metrik-metrik yang diukur disebabkan karena sering terjadi perbedaan metrik antara idividu satu dengan individu lainnya. Masalah tersebut biasa diatasi apabila dilakukan normalisasi pada proses pengukuran. Dengan adanya normalisasi maka dapat dilakukan perbandingan metrik pada cakupan yang lebih luas.

Sehubungan dengan perangkat lunak, (Sheikh Umar Farooq 2011) menjelaskan bahwa Pengukuranmerupakan proses yang berkesinambungan dalam menetapkan, mengumpulkan, dan menganalisis data pada proses pengembangan perangkat lunak dan produk-produknya dalam rangka untuk memahami dan mengontrol proses dan produk, dan memberikan informasi yang berarti untuk meningkatkan proses dan produk. (Sheikh Umar Farooq 2011) juga megelompokkan Karakteristik pengukuran yang baik yaitu

  1. Keandalan – Hasil dari proses pengukuran adalah direproduksi. (Hasil yang sama didapatkan dari waktu ke waktu dan di seluruh situasi.)
  2. Validitas – Proses pengukuran benar-benar mengukur apa yang dimaksudkan untuk mengukur.
  3. Sensitivitas – Proses pengukuran menunjukkan variabilitas dalam tanggapan ketika ada dalam stimulus atau situasi.

2.1 Size-Oriented Metrics

Metrik beorientasi ukuran diperoleh dengan cara melakukan normalisasi ukuran kualitas dan produktivitas dengan menghitung ukuran dari perangkat lunak yang dibuat. Ukuran yang biasanya dijadikan sebagai acuan normalisasi adalah LOC (lines of code). Dari pengukuran jumlah LOC pada suatu perangkat lunak, dapat diperoleh:

  1. Kesalahan per KLOC (ribuan LOC)
  2. Kekurangan atau cacat pada spesifikasi per KLOC
  3. Harga per LOC
  4. Jumlah halaman dokumentasi per LOC

Selain itu, beberapa metrik yang bisa dihitung adalah:

  1. Kesalahan per orang-bulan
  2. LOC per orang-bulan
  3. Harga per halaman dokumentasi

Menurut Jones 1986, metrik berorientasi ukuran tidak dapat diterima secara universal sebagai cara terbaik untuk mengukur proses rekayasa perangkat lunak. Alasan yang dikemukakan adalah kadang-kadang fungsionalitas program dapat dicapai dengan baris program yang lebih sedikit. Selain itu, untuk melakukan estimasi LOC harus digunakan analisis desain tingkat tinggi.

 

2.2 Function-Oriented Metrics

Metrik berorientasi fungsi menggunakan ukuran fungsionalitas yang dihasilkan oleh aplikasi sebagai nilai normalisasi. Fungsionalitas tidak dapat diukur secara langsung, sehingga untuk memperolehnya digunakan pengukuran langsung terlebih dahulu, lalu hasil pengukuran langsung tersebut digunakan sebagai masukan. Metrik berorientasi fungsi pertama kali diusulkan oleh Albrecth [1979], yang menyarankan pengukuran yang disebut function point (FP). FP diperoleh dengan menggunakan hubungan empiris berdasarkan pengukuran langsung dan estimasi terhadap kompleksitas perangkat lunak. Terdapat lima karakteristik yang digunakan sebagai acuan, yaitu:

  1.  Jumlah masukan (user inputs)
  2.  Jumlah keluaran (user outputs)
  3.  Jumlah permintaan (inquiry)
  4.  Jumlah berkas
  5. Jumlah antarmuka eksternal

2.2.1 Function Points

Function Point mengukur dari perspektif Functional dari software yang akan dibangun, terlepas dari bahasa programaan, metode development atau platform perangkat keras yang digunakan, Function Point harus dilakukan oleh orang terlatih dan berpengalaman dalam development software, karena dalam memberikan nilai-nilai dari setiap komponen Function point bersifat subyektif, dan akan wajar apabila hasil perhitungan function point seseorang akan berbeda dengan yang lain. Pengerjaan Function poin harus dimasukkan sebagai bagian dari rencana proyek secara keseluruhan. Artinya harus dijadwalkan dan direncanakan pengerjaannya.

Hasil dari pengukuran menggunakan Function Point dapat digunakan untuk mengestimasi biaya dan effort yang diperlukan dalam development perangkat lunak.

2.2.2 Penghitungan Metrik Function Points

Pengukuran yang berhubungan dengan fungsi (Metric Function Oriented) adalah pengukuran fungsionalitas yang disampaikan oleh aplikasi sebagai suatu nilai normalisasi. Perhitungan dengan metode Function Point menuntut untuk dilakukan oleh seorang profesional yang berpengalaman karena memiliki tingkat subyektifitas yang cukup tinggi. Metrik berorientasi fungsi diusulkan oleh (Albrecth 1979), yang menyarankan pengukuran yang disebut Function PointFunction Point tidak bergantung pada bahasa sehingga produktivitas pada bahasa pemrograman yang berbeda dapat dibandingkan. Produktivitas dinyatakan sebagai poin fungsi yang dihasilkan per orang-bulan. Function Point di-bias menuju system pemrosesan data yang didominasi oleh operasi input dan output. Metode ini sendiri terdiri dari banyak varia. Variasi yang adalah pada langkah/tahapan yang ada maupun pada isi dari tiap tahapan. Varian-varian ini timbul karena metode ini dapat diubah sesuai dengan kebijakan perusahaan pengembang software. Namun apapun varian yang digunakan oleh pengembang, hendaknya digunakan dengan konsisten agar tercipta komparasi yang benar antara software-software yang dinilai.

Langkah 1 : Menghitung crude function points (CFP)

Jumlah dari komponen fungsional sistem pertama kali diidentifikasi dan dilanjutkan dengan mengevaluasi kuantitasi bobot kerumitan dari tiap komponen tersebut. Pembobotan tersebut kemudian dijumlahkan dan menjadi angka CFP. Perhitungan CFP melibatkan 5 tipe komponen sistem software berikut :

  1. Jumlah macam aplikasi input (user inputs)
  2. Jumlah macam aplikasi output (user outputs)
  3. Jumlah macam aplikasi query online – aplikasi ini berhubungan dengan query terhadap data yang tersimpan (Inquiry)
  4. Jumlah macam file/tabellogicyang terlibat
  5. Jumlah macam interface eksternal – output atau input yang dapat berhubungan dengan komputer lewat komunikasi data, CD, disket, dan lain-la

Kemudian diberikan faktor bobot pada tiap komponen di atas berdasarkan kompleksitasnya. Tabel 1 di bawah ini merupakan contoh blanko pembobotan tersebut.

 

Tabel 1 Blanko penghitungan CFP

 


Komponen system sofware



Level kompleksitas



Total


CFP



Sederhana



Sederhana



Sederhana





Count



Factor


Bobot



Point



Count



Factor


Bobot



Point



Count



Factor


Bobot



Point







A



B



C=A x B



D



E



F=DxE



G



H



I=G x H



J=C+F+I



Input





3







4







6







Output





4







5







7







Query online





3







4







6







File logic





7







10







15







Interface ekternal





5







7







10







Total CFP





 RCAF berfungsi untuk menghitung kesimpulan kompleksitas dari sistem software daribeberapa subyek karakteristik. Penilaian berskala 0 sampai 5 diberikan pada tiap subyek yang paling berpengaruh terhadap usaha pengembangan yang dibutuhkan. Blanko penilaian yang diusulkan penulis diberikan seperti Tabel 2
Tabel 2 Blanko penghitungan RCAF

No



Subyek



Nilai



1



Tingkat kompleksitas kehandalan backup/recovery



0 1 2 3 4 5



2



Tingkat kompleksitas komunikasi data



0 1 2 3 4 5



3



Tingkat kompleksitas pemrosesan terdistribusi



0 1 2 3 4 5



4



Tingkat kompleksitas kebutuhan akan kinerja



0 1 2 3 4 5



5



Tingkat kebutuhan lingkungan operasional



0 1 2 3 4 5



6



Tingkat kebutuhan knowledge pengembang



0 1 2 3 4 5



7



Tingkat kompleksitas updating file master



0 1 2 3 4 5



8



Tingkat kompleksitas instalasi



0 1 2 3 4 5



9



Tingkat kompleksitas aplikasi input, output, query online dan file



0 1 2 3 4 5



10



Tingkat kompleksitas pemrosesan data



0 1 2 3 4 5



11



Tingkat ketidakmungkinan penggunaan kembali dari kode (reuse)



0 1 2 3 4 5



12



Tingkat variasi organisasi pelanggan



0 1 2 3 4 5



13



Tingkat kemungkinan perubahan/fleksibilitas



0 1 2 3 4 5



14



Tingkat kebutuhan kemudahan penggunaan



0 1 2 3 4 5





Total = RCAF




Langkah 3 : Menghitung Function Point (FP)
Nilai function point
untuk sistem software tersebut kemudian dihitung berdasarkanhasil dari tahap 1
dan 2 yang dimasukkan ke dalam formula
FP = CFP x (0.65 + 0.01 x RCAF)
2.2.3 Penentuan Kompleksitas Transformasi Function Points
Matrik perangkat lunak function oriented
(beroperasi pada fungsi) mengunakan sebuah pengukuran fungsionalyang
disampaikan oleh aplikasi sebagai suatu nilai normalisasi. Metrik beroreintasi
fungsi pertama kali diusulkan oleh albercht uang mengusulkan sebuah pengukuran
yang disebut function ditarik dengan mengunakan sebua hubungan empiris
berdasarkan pengukuran (langsung) domain informasi perangkat lunak yang dapat
dihitung serta perkiraan kompleksitas perangkat lunak
Function point dihitung dengan melengkapi table
3 berikut:
 

Parameter Pengukuran



jmlah



sederhana



Rata-rata



kompleks



Factor pembobot



Jumlah input pemakai



X



3



4



6



= ……….



Jumlah output pemakai



x



4



5



7



= ……….



Jumlah penyelidikan pemakai



X



3



4



6



= ……….



Jumlah file



X



7



10



15



= ……….



Jumlah interface internal



X



6



7



10



= ……….



Total











…………


Gambar perhitungan metric function point

 Jumlah
input pemakai ; setiap input yang memberikan data yang berorientasi pada
aplikasi yang jelas pada perangkat lunak dihitung

 Jumlah
output pemakai ; setiap output pemakai yang memberikan informasi yang
berorientasi pada aplikasi kepada pemakai dihitung. Pada konteks lain output
mengacu pada laporan, layar, tampilan kesalahan dsb.

 Jumlah penyelidikan
pemakai ; sebuah penyelidikan didefinisikan sebaai input online yang
mengakibatkan munculnya beberapa respon perangkat lunak yang cepat dalam bentuk
sebuah out put online.

 Jumlah
file ; setiap file master dihitung

 Jumlah
interface eksternal ; semua interface yang dapat di baca oleh mesin yang
digunakan untuk memindahkan informasi ke system yang lain dihitung.
Untuk menghitung titik-titik
(FP) dipakai hubungan seagai berikut :
FP=jumlah total x [0.65 +
0,01 x Fi]
3.  Kualitas Perangkat Lunak
Menunurut Heri
Abi Burachman Hakim 2008
yang
dikutip dari McCall menjelaskan bahwa kualitas perangkat lunak diukur dari
sebelas aspek. Sebelas aspek tersebut merupakan gabungan antara kebutuhan
pengguna dan faktor-faktor lainnya yang mempengaruhi kualitas sebuah perangkat
lunak. Aspek-aspek yang digunakan untuk mengukur kualitas sebuah perangkat
lunak adalah:
1.       Kebenaran yaitu kemampuan perangkat lunak mampu
memenuhi spesifikasi dan misi kebutuhan pengguna
2.       Reliabilitas yaitu kemampuan sebuah perangkat
lunak dapat melaksanakan fungsinya dengan tingkat ketelitian yang diperlukan.
3.       Efisiensi yaitu sumber daya komputasi yang
dibutuhkan oleh perangkat lunak untuk melakukan fungsinya.
4.       Integritas yaitu tingkat kemampuan kontrol akses
ke perangkat lunak atau data oleh orang yang tidak berhak.
5.       Usabilitas yaitu usaha yang dibutuhkan untuk
mempelajari, mengoperasikan, menyiapkan input, dan menginterpretasikan output
suatu perangkat lunak.
6.       Maintanabilitas yaitu kemampuan perangkat lunak
untuk mencari dan membetulkan kesalahan pada sebuah perangkat lunak.
7.       Fleksibilitas yaitu kemampuan perangkat lunak
untuk memodifikasi perangkat lunak operasional.
8.       Testabilitas yaitu kemampuan yang diperlukan
untuk menguji perangkat lunak dan untuk memastikan apakah perangkat lunak telah
melakukan fungsi-fungsi yang dimaksudkan.
3.1 Faktor yang Mempengaruhi Kualitas
Ada bebeapa factor yang menilai perangkat lunak dari
tiga sudut pandang bebeda yaitu :
a.
operasi produk (menggunakannya)
b.
revisi produk (mengubanya)
c.
transisi produk (memodifikasi untuk bekerja
dalam lingkungan yang berbeda
hubungan antara kualitas (yang mereka sebut kerangka
kerja)
  dan aspek-aspek lain dari proses
rekayasa perangkat lunak :
1.
kerangka kerja memerikan suatu mekanisme untuk
manejer untuk mengenali kualitas-kualitas apa yang penting
2.
kerangka kerja membeerikan alat untuk menilai
secara kualitas kuantitatas sebeberapa baik kemajuan pengembangan
3.
kerangka kerja memberikan interaksi yang lebih
baik dalam pada QA sepanjang usaha pengembangan
4.
personil jaminan kualitas dapat menggunakan
indikasi buruknya kualitas untuk membantu mengindentfikasi standar-standar
untuk usaha di masa mendatang
4.  Penyatuan Metrik-metrik dalam Proses Perangkat
Lunak
Proses pengukuran perangkat lunak harus menjadi
metode, tujuan teratur untuk mengukur, menilai, menyesuaikan, dan akhirnya
meningkatkan proses pembangunan. Data dikumpulkan berdasarkan dikenal, atau
diantisipasi, pembangunan, keprihatinan, dan pertanyaan. Mereka kemudian
dianalisis sehubungan dengan pengembangan perangkat lunak proses dan produk.
Proses pengukuran digunakan untuk menilai kualitas, kemajuan, dan kinerja
seluruh tahapan siklus hidup semua.
(Sheikh Umar Farooq 2011) menjelaskan tentang Komponen utama dari proses pengukuran yang
efektif adalah:
·
Secara
jelas mendefinisikan pengembangan perangkat lunak dan masalah ukuran (elemen
data) yang diperlukan untuk memberikan pemahaman isu-isu;
·
Pengolahan
data yang dikumpulkan ke dalam laporan grafis atau tabel (indikator) untuk
membantu dalam analisis masalah;
·
Analisis
indikator untuk memberikan pemahaman tentang isu-isu pembangunan, dan,
·
Gunakan
hasil analisis untuk melaksanakan perbaikan proses dan mengidentifikasi isu-isu
baru dan masalah.
Gambar 1 – Gambar Proses Pengukuran Software
Pada gambar diatas menunjukkan proses pengukuran perangkat lunak.
Kegiatan yang diperlukan untuk merancang suatu proses pengukuran menggunakan
arsitektur ini adalah:
·
Mengembangkan
proses pengukuran harus dibuat tersedia sebagai bagian dari perangkat lunak
standar organisasi proses;
·
Perencanaan
proses pada proyek dan mendokumentasikan prosedur dengan menyesuaikan dan
mengadaptasi aset proses;
·
Menerapkan
proses pada proyek-proyek dengan menjalankan rencana dan prosedur, dan
Meningkatkan proses dengan berkembang rencana dan
prosedur sebagai proyek matang dan pengukuran mereka perlu berubah.