Kriteria Penjaminan Kualitas Perangkat Lunak

Richardus Eko Indrajit
Renaissance Research Center
eko@indrajit.org

ABSTRAK

Software Quality Assurance (Penjaminan Kualitas Software) merupakan suatu istilah dalam dunia teknologi informasi yang ditujukan pada suatu usaha untuk menjamin terciptanya perangkat lunak (software) yang berkualitas. Kualitas yang dimaksud di sini secara prinsip dapat dilihat dari dua kacamata, yaitu dari perspektif perancang dan pembuat software dan dari perspektif pemakai atau pengguna software yang bersangkutan (users). Dewasa ini terdapat berbagai macam institusi, asosiasi, maupun organisasi baik formal atau informal yang secara tegas dan rinci memperkenalkan berbagai macam kriteria atau standar kualitas yang harus dipenuhi oleh sebuah software agar mencapai kualitas yang diharapkan. Lepas dari beragam kriteria yang diperkenalkan, setidak-tidaknya terdapat sejumlah kriteria standar yang untuk pertama kalinya diperkenalkan oleh McCall, seorang praktisi teknologi informasi dari Eropa yang hingga saat ini masih secara luas dipergunakan oleh para vendor pengembang software.

Pendahuluan
Dalam salah satu referensi disebutkan bahwa yang dimaksud dengan software quality adalah pemenuhan terhadap kebutuhan fungsional dan kinerja yang didokumentasikan secara eksplisit, pengembangan standar yang didokumentasikan secara eksplisit, dan sifat-sifat implisit yang diharapkan dari sebuah software yang dibangun secara profesional (Dunn, 1990). Berdasarkan definisi di atas terlihat bahwa sebuah software dikatakan berkualitas apabila memenuhi tiga ketentuan pokok:
•	Memenuhi kebutuhan pemakai – yang berarti bahwa jika software tidak dapat memenuhi kebutuhan pengguna software tersebut, maka yang bersangkutan dikatakan tidak atau kurang memiliki kualitas;
•	Memenuhi standar pengembangan software – yang berarti bahwa jika cara pengembangan software tidak mengikuti metodologi standar, maka hampir dapat dipastikan bahwa kualitas yang baik akan sulit atau tidak tercapai; dan
•	Memenuhi sejumlah kriteria implisit – yang berarti bahwa jika salah satu kriteria implisit tersebut tidak dapat dipenuhi, maka software yang bersangkutan tidak dapat dikatakan memiliki kualitas yang baik.

McCall dan kawan-kawan pada tahun 1977 telah mengusulkan suatu penggolongan faktor-faktor atau kriteria yang mempengaruhi kualitas software. Pada dasarnya, McCall menitikberatkan faktor-faktor tersebut menjadi tiga aspek penting, yaitu yang berhubungan dengan:
•	Sifat-sifat operasional dari software (Product Operations);
•	Kemampuan software dalam menjalani perubahan (Product Revision); dan
•	Daya adaptasi atau penyesuaian software terhadap lingkungan baru (Product Transition).

Product Operations
Sifat-sifat operasional suatu software berkaitan dengan hal-hal yang harus diperhatikan oleh para perancang dan pengembang yang secara teknis melakukan penciptaan sebuah aplikasi. Hal-hal yang diukur di sini adalah yang berhubungan dengan teknis analisa, perancangan, dan konstruksi sebuah software. Faktor-faktor McCall yang berkaitan dengan sifat-sifat operasional software adalah:
•	Correctness – sejauh mana suatu software memenuhi spesifikasi dan mission objective dari users;
•	Reliability – sejauh mana suatu software dapat diharapkan untuk melaksanakan fungsinya dengan ketelitian yang diperlukan;
•	Efficiency – banyaknya sumber daya komputasi dan kode program yang dibutuhkan suatu software untuk melakukan fungsinya;
•	Integrity – sejauh mana akses ke software dan data oleh pihak yang tidak berhak dapat dikendalikan; dan
•	Usability – usaha yang diperlukan untuk mempelajari, mengoperasikan, menyiapkan input, dan mengartikan output dari software.

Product Revision
Setelah sebuah software berhasil dikembangkan dan diimplementasikan, akan terdapat berbagai hal yang perlu diperbaiki berdasarkan hasil uji coba maupun evaluasi. Sebuah software yang dirancang dan dikembangkan dengan baik, akan dengan mudah dapat direvisi jika diperlukan. Seberapa jauh software tersebut dapat diperbaiki merupakan faktor lain yang harus diperhatikan. Faktor-faktor McCall yang berkaitan dengan kemampuan software untuk menjalani perubahan adalah:
•	Maintainability – usaha yang diperlukan untuk menemukan dan memperbaiki kesalahan (error) dalam software;
•	Flexibility – u saha yang diperlukan untuk melakukan modifikasi terhadap software yang operasional
•	Testability – usaha yang diperlukan untuk menguji suatu software untuk memastikan apakah melakukan fungsi yang dikehendaki atau tidak

Product Transition
Setelah integritas software secara teknis telah diukur dengan menggunakan faktor product operational dan secara implementasi telah disesuaikan dengan faktor product revision, faktor terakhir yang harus diperhatikan adalah faktor transisi – yaitu bagaimana software tersebut dapat dijalankan pada beberapa platform atau kerangka sistem yang beragam. Faktor-faktor McCall yang berkaitan dengan tingkat adaptibilitas software terhadap lingkungan baru:
•	Portability – usaha yang diperlukan untuk mentransfer software dari suatu hardware dan/atau sistem software tertentu agar dapat berfungsi pada hardware dan/atau sistem software lainnya
•	Reusability – sejauh mana suatu software (atau bagian software) dapat dipergunakan ulang pada aplikasi lainnya
•	Interoperability – usaha yang diperlukan untuk menghubungkan satu software dengan lainnya

Teknik Pengukuran
Menimbang tingkat kesulitan yang dihadapi para programmer dalam mengukur secara langsung dan kuantitatif kualitas software yang dikembangkan berdasarkan pembagian yang diajukan McCall di atas, sebuah formula diajukan untuk mengukur faktor-faktor software quality secara tidak langsung menurut hubungan:

	Fq = c1 * m1 + c2* m2+ c3* m3+ . . . +  cn* mn

dimana :
•	Fq	= Faktor software quality
•	c1	= Bobot yang bergantung pada produk dan kepentingan
•	m1	= Metric yang mempengaruhi faktor software quality
Adapun metric yang dipakai dalam skema pengukuran di atas adalah sebagai berikut:
•	Auditability – kemudahan untuk memeriksa apakah software memenuhi standard atau tidak;
•	Accuracy – ketelitian dari komputasi dan kontrol;
•	Communication Commonality – sejauh mana interface, protokol, dan bandwidth digunakan;
•	Completeness – sejauh mana implementasi penuh dari fungsi-fungsi yang diperlukan telah tercapai;
•	Conciseness – keringkasan program dalam ukuran LOC (line of commands);
•	Consistency – derajat penggunaan teknik-teknik desain dan dokumentasi yang seragam pada seluruh proyek pengembangan software;
•	Data Commonality – derajat penggunaan tipe dan struktur data baku pada seluruh program;
•	Error Tolerance – kerusakan yang terjadi apabila program mengalami error;
•	Execution Efficiency – kinerja run-time dari program;
•	Expandability – sejauh mana desain prosedur, data, atau arsitektur dapat diperluas;
•	Generality – luasnya kemungkinan aplikasi dari komponen-komponen program;
•	Hardware Independence – sejauh mana software tidak bergantung pada kekhususan dari hardware tempat software itu beroperasi;
•	Instrumentation – sejauh mana program memonitor operasi dirinya sendiri dan mengidentifikasi error yang terjadi;
•	Modularity – functional independence dari komponen-komponen program;
•	Operability – kemudahan mengoperasikan program;
•	Security – ketersediaan mekanisme untuk mengontrol dan melindungi program dan data terhadap akses dari pihak yang tidak berhak;
•	Self-Dokumentation – sejauh mana source-code memberikan dokumentasi yang berarti;
•	Simplicity – Kemudahan suatu program untuk dimengerti;
•	Traceability – kemudahan merujuk balik implementasi atau komponen program ke kebutuhan pengguna software; dan
•	Training – sejauh mana software membantu pemakaian baru untuk menggunakan sistem.

Hubungan antara faktor-faktor software quality dan metric-metric tersebut ditunjukkan dalam gambar di bawah ini.

Dengan memanfaatkan formula ini, paling tidak seorang perancang, programmer, evaluator, dan pengguna perangkat lunak dapat mendeskripsikan secara kuantitatif tingkat kualitas sebuah software. Semakin tinggi nilai Fq yang dihasilkan, semakin baik kualitas software tersebut. Hal yang perlu diperhatikan sebelum melakukan evaluasi terhadap nilai kuantitatif sebuah software adalah:
•	Tentukan terlebih dahulu faktor-faktor apa yang ingin diukur berdasarkan metric kualitas yang ada; dan
•	Untuk masing-masing metric, tentukan bobot yang sesuai, sejalan dengan kebutuhan dari kualitas yang diharapkan terhadap software yang ingin dievaluasi.

Referensi

Dunn, R.H. Software Quality, New Jersey: Prentice Hall, 1990.
Pressman, R.S. Software Engineering: A Practitioner’s Approach, England: McGraw-Hill, 1994.

	RICHARDUS EKO INDRAJIT adalah Kepala Program Studi Sistem Informasi STIMIK Perbanas dan Dosen Inti di Program Pasca Sarjana Universitas Bina Nusantara. Menyelesaikan pendidikan Sarjana Teknik Komputer di ITS Surabaya, Master of Applied Computer Science di Harvard University, Master of Business Administration di Leicester University, dan Doctor of Business Administration di University of the City of Manila. Selain mengajar di Program Pasca Sarjana Universitas Indonesia, Universitas Atmajaya, dan Institut Pengembangan Manajemen Indonesia, serta aktif sebagai konsultan dan peneliti di Lembaga Ketahanan Nasional (Lemhannas), bekerja pula sebagai Direktur Sistem Informasi di perusahaan konsultan Renaissance Advisors. Pengetahuan di bidang teknologi informasi dan manajemen sistem informasi diperoleh dari pengalaman praktis di industri keuangan, perbankan, manufaktur, penerbangan, pertambangan, telekomunikasi, pendidikan dan kesehatan.	

Softcopy dari makalah dan dokumen ini tersedia melalui website personal Richardus Eko Indrajit di alamat: http://www.indrajit.org.

Jakarta, 10 November 1999.