Saturday, April 19, 2008

Kualitas Software

Menurut Robert L Glass (Facts and Fallacies od Software Engineering, Addison Wesley, 2002), kualitas software adalah mengenai sekumpulan atribut yang seharusnya dimiliki oleh suatu produk software. Atribut-atribut tersebut adalah:
1. Portability. Kemudahan pemindahan software ke platform lain.
2. Reliability. Software dapat diandalkan untuk melakukan apa yang seharusnya dilakukan.
3. Efficiency. Software dapat melakukan pekerjaan dengan waktu kerja dan penggunaan resource yang ekonomis.
4. Human Engineering. Software dapat digunakan dengan mudah dan nyaman.
5. Testability. Software mudah untuk diuji.
6. Understandability. Software mudah dipahami sehingga memudahkan proses pemeliharaan.
7. Modifiability. Software mudah dipelihara (maintain) dan diubah.

Portability pada software, sangat tergantung kepada teknologi yang digunakan. Pemilihan teknologi didasari oleh pertimbangan yang matang berdasarkan hasil analisis terhadap calon pengguna. Jika calon pengguna menggunakan platform yang heterogen, maka portability adalah hal yang sangat penting. Namun portability akan berkurang prioritasnya ketika calon pengguna menggunakan spesifikasi teknologi yang seragam.

Reliability adalah atribut yang tidak dapat ditawar. Hal ini dapat dicapai dengan melakukan proses analisis kebutuhan calon pengguna dengan baik. Proses analisis kebutuhan seringkali dipandang sebagai proses menyimpulkan kebutuhan calon pengguna terhadap software. Seharusnya, proses analisis dipandang sebagai proses yang dilakukan untuk menyimpulkan solusi untuk masalah pengguna. Perbedaan pandangan ini sangat penting, karena sering kali calon pengguna menjelaskan kebutuhan modul yang dibutuhkanya, namun modul tersebut bukanlah solusi yang terbaik dari masalah yang dihadapinya. Dengan menganalisa masalah calon pengguna, lalu menyimpulkan solusi dari sisi kita maka engineer dapat lebih menjamin reliability dari suatu software.

Efficiency seringkali tidak diperhatikan. Umumnya hal tersebut terjadi, karena tim fokus kepada spesifikasi fungsional sistem. Ketika spesifikasi fungsional sudah terpenuhi, maka modul software dianggap telah mencapai kualitas yang baik. Efficiency seringkali tidak terasa dibutuhkan pada aplikasi sistem informasi yang tidak melakukan proses yang rumit. Namun untuk proses yang rumit, efficiency menjadi hal yang sangat penting untuk diperhatikan. Efficiency dapat dicapai dengan disain yang baik dan code review terhadap hasil implementasi disain yang dilakukan. Selain itu, pada saat pengujian (testing), perlu dilakukan stress testing, suatu proses pengujian yang menekankan pada kemampuan software pada saat melakukan proses pada keadaan yang tersulit (e.g. data yang sangat banyak).

Human engineering dapat dicapai dengan melakukan perancangan antar muka software dengan baik. Hal ini juga berkaitan dengan efficiency jika software melakukan proses yang rumit, karena pengguna akan merasa tidak nyaman jika proses yang dilakukan terlalu lama.

Testability akan berpengaruh terhadap reliability. Engineer dapat menyimpulkan bahwa suatu software sudah cukup reliable untuk direlease adalah berdasarkan hasil pengujian. Karena itu, testability adalah atribut yang sangat penting dalam pengembagan software.

Understandability dan modifiability. Kedua atribut tersebut bisa diacapai dengan melakukan proses disain yang baik dan kontrol terhadap kode yang dihasilkan oleh programmer. Pada pengembangan software, terdapat suatu framework yang digunakan oleh seluruh engineer dalam mengembangkan modul. Kode program yang dihasilkan perlu direview agar dapat dipastikan bahwa programmer telah menulis kode sesuai dengan standar yang sudah ditetepakan di framework. Dengan perancangan dan penulisan kode yang sesuai dengan standar yang ada, maka disain dan kode yang dihasilkan oleh engineer akan mudah untuk dipahami oleh engineer lain. Hal ini menjadi atribut yang sangat penting untuk diperhatikan, terutama jika engineer yang mengerjakan sering berganti.

5 comments:

Anonymous said...

security nya ko ga dimasukin?
Ada hal baru lho dalam developing software, yaitu memasukkan security sejak awal.
Ko itu ga dimasukin?

Isaam Khalid said...

IMHO, security masuk ke reliability.

"
Reliability. Software dapat diandalkan untuk melakukan apa yang seharusnya dilakukan.
"

Biasanya hole security yang ada di suatu software, karena software tersebut berprilaku tidak seharusnya terhadap aksi yang dilakukan oleh user.

Tapi mungkin bisa dikasih tau ke pak Robert :) supaya merevisi atributnya :)

Anonymous said...

seneng deh baca blognya isaam, apalagi kalo pas nulis beginian..
sip daahh..!!
kirim2 nasi kebuli dong :D

Isaam Khalid said...

Set dah Vi. Ujung2nya makanan mulu :p Maen aja ke Bogor sini bareng swami dan anakmu. Nanti kutraktir makanan2 enak di sini.

Unknown said...

blh tau ga link bwt ambil jurnal mengenai atribut kualitas software by robert L glass????