Kualitas Produk Perangkat Lunak
Dalam pembangunan perangkat lunak diperlukan adanya penjaminan kualitas dalam setiap tahap daur hidup perangkat lunak. Ada beberapa karakteristik yang umum tentang kebutuhan penilaian kualitas perangkat lunak, di antaranya adalah semua proyek perangkat lunak yang baik harus memenuhi perhitungan yang tepat untuk kebutuhan dasar, semua proyek perangkat lunak menderita perfomansi yang buruk terutama di dalam area-area yang penting yaitu perawatan, kehandalan, software reuse, dan pelatihan, dan penyebab dari perfomansi yang buruk tersebut adalah kurangnya definisi kebutuhan yang menunjang terbentuknya fungsional pada perangkat lunak tersebut. Dilihat dari beberapa karakteristik tersebut, diperlukan penilaian penjaminan kualitas perangkat lunak secara baik dan benar. Masingmasing faktor kualitas akan dinilai secara detil dan lengkap.
Model Faktor Kualitas Perangkat Lunak
Model Faktor McCall
Model faktor McCall mengklasifikasikan semua kebutuhan perangkat lunak ke dalam 11 faktor kualitas. Kesebelas faktor tersebut dibagi menjadi tiga kategori sebagai berikut:
Faktor operasi produk
Faktor revisi produk
Faktor transisi produk.
Model Faktor Alternatif
Selain model faktor McCall terdapat beberapa model alternatif yang merupakan perkembangan dari model McCall. Ada dua model alternatif yang dipergunakan, yaitu:
Model Kualitas McCall
Model kualitas McCall terbagi menjadi 11 faktor kualitas. Penjelasan dari masing-masing faktor kualitas tersebut adalah sebagai berikut:
Correctness
Sebuah perangkat lunak dapat dikatakan benar jika memenuhi persyaratan sebagai berikut :
Menghasilkan keluaran yang benar untuk setiap kemungkinan masukan oleh pengguna.
Melakukan proses yang seharusnya (tidak kurang dan tidak berlebihan).
Secara formal harus bisa dibuktikan secara sistematis.
Reliability
Sudut pandang reliabilitas pada poin ini lebih menekankan pada kemungkinan dari failure-free suatu operasi perangkat lunak terhadap periode waktu tertentu di dalam lingkungan tertentu. Software reliability bukan fungsi langsung terhadap waktu.
Efficiency
Ada dua pengertian tentang efisiensi sebuah perangkat lunak, yaitu :
Penggunaan sumber daya seperti waktu pemrosesan processor (eksekusi), pemakaian media penyimpanan (memori, space, bandwidth).
Berkaitan dengan hubungan antara kinerja perangkat lunak dan jumlah sumber daya yang digunakan.
Integrity
Integritas perangkat lunak pada model McCall lebih menekankan kepada keamanan sebuah perangkat lunak. Pihak developer harus mampu melihat kebutuhan akan hak akses perangkat lunak tersebut pada setiap penggunaannya.
Usability
Faktor ini melihat dari keudahan perangkat lunak untuk digunakan dan dipelajari. Usability mempunyai unsur akademis seperti psikologis, ergonomic, dan human factors (Nielsen, 1993).
Maintainability
Maintainability adalah kemudahan dari perangkat lunak untuk dipelihara, seperti :
Flexibility
Ada dua pengertian tentang faktor fleksibilitas perangkat lunak, yaitu :
Kemudahan yang didalam membuat perubahan yang dibuutuhkan akibat perubahan lingkungan.
Kemampuan melakukan modifikasi kode untuk memfasilitasi yang telah ditentukan.
Testability
Testability adalah kemampuan perangkat lunak untuk diuji. Selain itu testability adalah derajat yang dimiliki sebuah system untuk memfasilitasi kriteria pengujian dan performansi dari pengujian tersebut untuk megukur sejauh mana kriteria tersebut dipenuhi (IEEE, 1990).
Portability
Perangkat lunak dikatakan portable jika biaya untuk memindahkannya (transport dan adaptasi) ke lingkungan yang baru lebih kecil jika dibandingkan dengan biaya untuk membangun perangkat lunak tersebut dari awal.
Reusability
Reusability adalah property dari perangkat lunak yang memungkinkan perangkat lunak atau modul-modulnya digunakan kembali untuk system lain. Suatu perangkat lunak dikatakan reusable yang baik jika modul-modulnya dapat digunakan kembali untuk aplikasi lainnya.
Interoperability
Interoperability adalah kemampuan suatu prangkat lunak untuk bekerja dengan perangkat lunak lainnya tanpa mengalami kesulitan.
Model Kualitas Alternatif
Ada beberapa faktor kualitas yang akan dibahas di sini, antara lain :
Verifiability
Verifialbility menggambarkan semudah apa memverifikasi performa dari suatu program. Beberapa sub faktor pada verifiability adalah sebagai berikut :
Coding and documentation guidelines
Berfokus untuk memberikan panduan dalam menuliskan kode dalam berbagai Bahasa pemograman dan petunjuk mendokumentasikan suatu pernagkat lunak dengan baik.
Compliance (Complexity)
Berfokus unutk menjaga kompleksitas kode program yang dibangun sehingga tingkat verifikasinya tetap terjaga.
Document Accessibility
Berfokus terhadap kemudahan untuk mengakses dokumentasi yang sudah disebutkan pada sub bab sebelumnya.
Traceability
Berfokus terhadap kemudahan developer untuk melakukan penelusuran suatu dokumentasi yang dimiliki oleh perangkat lunak tersebut.
Modularity
Berfokus kepada kefleksibelan suatu system. Mempunyai 5 kriteria, yaitu :
Decomposability
Composability
Understandability
Continuity
Protection
Expandability
Expandibility adalah kemampuan sebuah perangkat lunak untuk dikembangkan. Beberapa sub faktor dalam expandability antara lain :
Extensibility
Extenbility adalah kemampuan system untuk dapat ditambahkan suatu modul tanpa harus menimbulkan efek samping yang tidak diinginkan. Beberapa kriteria yang bisa digunakan untuk menilai tingkat.
Modularity
Kemandirian suatu fungsional dari suatu komponen program.
Generality
Seberapa bisa perangkat lunak tersebut bisa menyelesaikan masalah pada domainnya.
Simplicity
Tingkat dimana perangkat lunak dapat dimengerti tanpa kesulitan.
Safety
Safety dapat didefinisikan sebagai kemampuan untuk memperkecil resiko yang dapat membahayakan ke tingkat/ level yang dapat diterima. Safety dapat didefinisikan sebagai kemampuan untuk melakukan :
Identifikasi
Analisi
Memperlajari
Mengontrol
Terhadap software hazard atau fungsi bebahaya (data & command) untuk memastikan melakukan operasi yang aman [NASA Software Assurance]. Safety dapat dipecah menjadi bagian :
Identifikasi, mencari dan menentukan hazard yang mungkin terjadi.
Analisis, menganalisa hazard yang ditemukan untuk mengetahui resiko ditemukan untuk mengetahui resiko yang dapat terjadi.
Memepelajari, memepelajari hasil analisa untuk mencari solusi yang dapat digunakan
Mengontrol, nengintrol hazar yang telah ditemukan unutk meminimalisasi resiko yang mungkin terjadi.
Manageability
Manageability dapat didefinisikan sebagai kemampuan untuk melakukan tindakan administrasim melakukan pengawasan serta memperoleh informasi yang relevan dengan tindakan yang terkait. Beberapa kaitan manageability antara lain :
Monitoring
Berkaitan dengan aktifitas pemantauan (temasuk pencatatan)
Tracking
Berkaitan dengan aktifitas penelusuran
Control
Berkaitan dengan aktifitas pengendalian/pengubahan
Terdapat dua pengertian untuk survivability, yaitu:
Beberapa langkah yang bisa dilakukan untuk pengendalian bencana, yaitu:
Identify the Business Continuity Componenst That You Will Focus On (people, property, system, data).
Define What You’re Protecting
Prioritize Business Functions
Classify Outage Types, Frequencies, and Duration.
Calculate The Cost of Downtime
Kualitas
Perangkat Lunak Berdasarkan Pengukuran Kompleksitas Menggunakan Metrik Function Oriented
Pengukuran yang berhubungan dengan fungsi (Metric Function
Oriented) adalah pengukuran fungsionalitas yang disampaikan oleh aplikasi
sebagai suatu nilai normalisasi. Normalisasi dilakukan pada fungsionalitas pada
aplikasi, tetapi untuk melakukan hal ini, fungsionalitas harus diukur dengan
pengukuran langsung yang lain karena fungsionalitas tidak dapat diukur secara
langsung. Maka pengukuran dapat dilakukan dengan pengukuran function point.
Adapun parameter yang digunakan untuk pengukuran Function Point
adalah:
1. External Input (EI). Setiap masukan eksternal berasal
dari pengguna atau dikirim dari aplikasi lain dan menyediakan data berorientasi
aplikasi yang berbeda atau informasi pengendalian. Masukan sering digunakan
untuk memperbarui internal logic file (ILF).
2. External Output (EO). Setiap keluaran eksternal
diturunkan dari data aplikasi yang memberikan informasi kepada pengguna. External
Output (EI) mengacu pada laporan, layar, pesan kesalahan, dan sebagainya.
3. External Inquiry (EQ). Kombinasi input/output yang
dihasilkan oleh input dalam bentuk output sederhana dan singkat.
Hasil inquiry misalnya berupa hasil pencarian data.
4. Internal Logical File (ILF). Merupakan data user atau
kontrol informasi yang dikendalikan total oleh aplikasi. File logical dapat
berupa file flat atau tabel tunggal dalam database relasional.
5. External Interface Files (EIF). File yang dikendalikan
oleh aplikasi lain tetapi diperlukan oleh aplikasi. External interface file dapat
berupa sekelompok data logical atau kontrol informasi yang keluar dan
masuk ke aplikasi.
Alur perancangan sistem estimasi kualitas perangkat lunak yaitu
dengan mengukur kompleksitas perangkat lunak menggunakan metode function
point kemudian mengestimasi kualitas software dengan membandingkan error
(kesalahan) dengan ukuran software yang ditunjukkan pada Gambar 1.
Perhitungan metode function point yaitu dengan menghitung Crude
Function Points (CFP), kemudian menghitung Relative Complexity
Adjustment Factor (RCAF), dan selanjutnya adalah mengitung Funtion
Point, dimana perhitungan metode function point ditunjukkan pada
Gambar 2.
Langkah pertama dalam menghitung CFP (Crude Function Points)
adalah dengan mencari 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. Alur perhitungan CFP ditunjukkan pada Gambar 3.
Sebelum dilakukan perhitungan CFP dilakukan penentuan bobot
kompleksitas untuk mengetahui level kompleksitas pada masing-masing fungsi
pengguna sehingga dapat digunakan untuk memberikan nilai bobot pada
masing-masing komponen sistem, dimana alur penetuan bobot kompleksitas ditunjuukan
pada Gambar 4. Penentuan bobot kompleksitas yang terdiri atas 3 input, yaitu :
1. Data Element Type (DET) yaitu field yang tidak
berulang dan didefinisikan sebagai
field unik dalam sebuah internal logical file.
2. Record Element Type (RET) yaitu sub kelompok data di
dalam sebuah logical file.
3. File Type Reference (FTR) yaitu tipe file yang berupa Internal
Logical File (ILF) atau External Interface File (EIF). Cara mudah
untuk mengidentifikasi FTR dengan mengidentifikasi ILF dan EIF Karena jumlah
keduanya sesalu sama
Langka kedua untuk menghitung function point adalah dengan
menghitung RCAF (Relative Complexity Adjustment Factor), yang dihitung
berdasarkan pada keseluruhan kompleksitas sistem. Cara menghitung RCAF (Relative
Complexity Adjustment Factor) adalah dengan menggunakan 14 (empat belas)
GSC (General System Characteristic), dimana masing-masing GSC berskala 0
(nol) sampai 5 (lima) . Skala 0 (nol) menunjukkan tidak adanya pengaruh dan
skala 5 (lima) menunjukkan adanya pengaruh yang luas terhadap keseluruhan
proyek.
Pada Gambar 5 merupakan perhitungan RCAF yang berfungsi untuk
menghitung kesimpulan kompleksitas yang didalamnya terdapat 14 point
karakteristik dari sistem
software. Penilaian berskala 0 sampai 5 diberikan pada tiap karakteristik
yang paling berpengaruh terhadap usaha pengembangan yang dibutuhkan.
Menghitung Function
Point (FP)
Setelah setiap karakteristik diberi bobot masing-masing dan
dijumlahkan, maka langkah selanjutnya adalah proses melakukan perhitungan untuk
mendapat nilai Function point (FP) dari software yang dibangun.
Untuk menghitung Function Point menggunakan rumus pada persamaan sebagai
berikut :
FP = CFP x (0.65 + 0.01 x RCAF)
Misalkan diketahui nilai CFP = 74 dan RCAF = 60. Maka nilai FP
dapat dicari sebagai berikut :
FP = 74 x (0.65 + 0.01 x
60) = 74 x 1.25 = 92.5
Setelah mendapatkan nilai FP, maka dapat digunakan sebagai acuan
untuk mengestimasi kualitas perangkat lunak dengan cara membandingkan nilai FP
dengan banyak error (kesalahan) yang terdapat pada perangkat lunak yang
dibangun. Jika dalam pembangunan perangkat lunak tersebut ditemukan kesalahan
sebanyak 35 kesalahan, maka dapat dihitung kesalahan per FP-nya adalah sebagai
berikut :
Kesalahan / FP =
35 / 92.5
= 0.3783
Kualitas = 100% - (0.3783 x 100%)
= 62.17%
Berdasarkan nilai prosentase kualitas perangkat lunak adalah
62.17% maka perangkat lunak tersebut memiliki tingkatan cukup baik.
KESIMPULAN
Dari hasil pengamatan mulai tahap analisis, perancangan,
implementasi dan uji coba, maka kesimpulan yang dapat diambil sebagai berikut :
1. Metrik function oriented dapat dijadikan salah satu
alternatif untuk mengestimasi kualitas perangkat lunak dengan mengukur
kompleksitasnya.
2.
Hasil pengujian yang dilakukan oleh sistem menggunakan metrik function
oriented dengan untuk estimasi kualitas perangkat lunak menunjukkan tingkat
keakurasian sebesar 75 %.