Materi Seminar
Materi Seminar
Kom
Kualitas Software
The software engineering approach described in this book works toward a single goal: to produce high-quality software. (Pressman, 2001) Pendekatan software engineering yang dijelaskan pada buku Software Engineering, Practictional Approach Pressaman 2001 dilaksanakan untuk satu tujuan: untuk menghasilkan software dengan kualitas tinggi.
Berdasarkan pernyataan di atas, pertanyaan yang timbul adalah, apakah yang dimaksud dengan software dengan kualitas tinggi? Menurut Robert L Glass (Facts and Fallacies of Software Engineering, Addison Wesley, 2002), kualitas software adalah mengenai sekumpulan
atribut yang seharusnya dimiliki oleh suatu produk software. Atributatribut 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. Portability tidak hanya mengacu pada keseluruhan software, namun mengacu juga pada bagian dari komponen yang membangun software. Sebagai contoh, library yang digunakan untuk mengakses database. Dengan adanya library abstraksi pengaksesan database pada berbagai teknologi (contohnya ADO .NET pada .NET technology), maka portability dari sebuah software berkaitan dengan pengaksesan data menjadi lebih baik. 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
Pada tahap analisis, disimpulkan kebutuhan pengguna akan software. Pada tahap testing, tester melakukan pengujian apakah software yang sudah ada berjalan sesuai dengan kebutuhan dari pengguna. Kedua tahapan ini memastikan reliability dari sebuah software. Sebagian besar atribut yang ada pada kualitas software dicapai dengan melaksanakan proses disain yang baik. Portability, testability, understandability, modifiability, efficiency, dan human engineering adalah atribut-atribut yang menjadi acuan kualitas proses disain. Dengan memahami atribut kualitas dari sebuah software dan bagaimana tahapan pada software engineering tersebut berkaitan dengan atribut yang ada maka akan lebih mudah bagi engineer untuk memahami perannya dalam membangun sebuah software dengan kualitas tinggi.