Prinsipnya
sebuah software dikatakan baik jika memenuhi kriteria spesifik dari
organisasi atau perusahaan yang membutuhkannya dan dapat secara utuh
sempurna saat digunakan. Hal ini sering diistilahkan sebagai
pemenuhan terhadap “user
requirements”
(kebutuhan pengguna software yang telah terlebih dahulu didefinisikan
secara jelas dan detail). disamping itu, terlepas dari apakah
software tersebut dibeli jadi (off-the-shelf
shelf software)
atau dikembangkan secara khusus (tailor-made
software),
sebuah software yang baik tentunya mempunyai kualitas. Dalam kebutuhan sebuah software harus memuat tiga ketentuan pokok dalam penggunaanya apabila software itu dikatakan berkualitas adalah sebaagai berikut :
sebuah software yang baik tentunya mempunyai kualitas. Dalam kebutuhan sebuah software harus memuat tiga ketentuan pokok dalam penggunaanya apabila software itu dikatakan berkualitas adalah sebaagai berikut :
- 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
bersama temannya pada tahun 1977 telah
mengusulkan suatu penggolongan faktor-faktor atau kriteria yang
mempengaruhi kualitas software. Pada dasarnya, McCall menitik
beratkan faktor-faktor tersebut menjadi tiga aspek penting, yaitu
yang berhubungan dengan:
- Sifat operasional dari software (Product Operations) dan banyak hal yang bisa diukur berhubungan dengan teknis analisa, perancangan, dan konstruksi sebuah software sehubungan dengan hal yang harus diperhatikan oleh para perancang dan pengembang yang secara teknis melakukan penciptaan sebuah aplikasi. Faktor yang berkaitan dengan sifat-sifat operasional software adalah:
- Correctness –software haarus memenuhi spesifikasi dan mission objective users
- Reliability –software diharapkan melaksanakan fungsinya secara teliti yang diperlukan
- Efficiency –sumber daya komputasi dan kode program yang dibutuhkan suatu software untuk melakukan fungsinya tentunya
- Integrity – akses ke software dan data oleh pihak yang tidak berhak dapat dikendalikan
- Usability – pembelajaran yang diperlukan untuk mempelajari, mengoperasikan, menyiapkan input, dan mengartikan output dari software
- Kemampuan software dalam menjalani perubahan (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 yang berkaitan dengan kemampuan software untuk menjalani perubahan adalah:
- Maintainability – usaha yang diperlukan untuk menemukan dan memperbaiki kesalahan (error) dalam software;
- Flexibility – usaha 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
- Daya adaptasi atau penyesuaian software (Product Transition). Setelah integritas software secara teknis 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 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 digunakan ulang pada aplikasi lainnya
- Interoperability – usaha yang diperlukan untuk menghubungkan satu software dengan lainnya
Dalam
pengembangannya lebih lanjut, ketiga aspek tersebut kerap dihubungkan
dengan sejumlah metric yang sering digunakan sebagai alat ukur dalam
membandingkan kualitas software satu dengan lainnya.
Adapun
metric yang dimaksud dalam skema pengukuran di atas adalah sebagai
berikut:
- Auditability – kemudahan untuk memeriksa apakah software memenuhi standar 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.
Melihat
penjelasan tersebut, maka terlihat bahwa faktor harga dan tipe vendor
tidak secara langsung berpengaruh terhadap baik atau berkualitas
tidaknya sebuah produk software. Namun, adalah merupakan suatu
kenyataan bahwa kebanyakan vendor ternama telah memiliki pengalaman
selama berpuluh-puluh tahun dalam menerapkan metodologi pengembangan
software yang berpegang teguh pada pencapaian aspek-aspek kualitas
standar yang ada. Jika metodologi yang digunakan perlu menerapkan
langkah-langkah yang menyerap cukup banyak sumber daya perusahaan,
maka dengan sendirinya software yang dijual atau dikembangkan pun
pada akhirnya menjadi mahal.
Khusus
untuk perusahaan yang ingin bekerjasama dengan pihak ketiga atau
vendor dalam mengembangkan perangkat lunak yang spesifik, maka ada
baiknya dicek apakah vendor yang bersangkutan telah memiliki
sertifikat CMM (Capability Maturity Model) dan berada pada level
berapa perusahaan tersebut. Paling tidak, yang bersangkutan harus
memiliki sertifikat dengan minimum level 3 (dari skala 5) sebagai
jaminan bahwa software yang dihasilkan benar-benar berkualitas. CMM
adalah sebuah standar pengembangan software berkualtias yang
diperkenalkan oleh Software Engineering Institute (SEI) dan diakui
kehandalannya di seluruh dunia.
Mengenai
cara meyakinkan pimpinan mengenai pengadaan software yang mahal,
memang perlu dilakukan proses analisa biaya dan manfaat (cost-benefit
analysis). Tentu saja hal ini harus dilakukan secara “case-by-case”,
karena setiap perusahaan memiliki kebutuhan yang berbeda dan
beranekaragamnya karakteristik dari software. Namun, di era
globalisasi dan informasi ini perlu direnungkan oleh para pimpinan
akan pendapat berikut ini:
“… bukan
jamannya lagi memikirkan manfaat apa yang akan diperoleh perusahaan
dengan menerapkan teknologi informasi, namun perlu direnungkan
apakah perusahaan akan tetap dapat bertahan dan memenangkan
persaingan usaha tanpa menggunakan teknologi informasi ”
Tidak ada komentar:
Posting Komentar