Selasa, 12 Juni 2012

Konten Software Quality Assurance
Software Quality Assurance (SQA) diaplikasikan secara menyeluruh pada proses pengembangan software. SQA meliputi : 
  1. Analisis, perancangan, pengkodean, dan metode serta peralatan ujicoba.
  2. Tinjauan ulang teknikal secara formal yang diaplikasikan pada setiap tahapan pengembangan software.
  3. Strategi ujicoba dengan banyak tahapan (multitiered).
  4. Pengawasan terhadap dokumentasi software dan perubahan yang dialaminya. 
  5. Suatu prosedur untuk menjamin pemenuhan standar pengembangan software (jika ada).
  6. Mekanisme pengukuran dan laporan . 
Setiap pengembang software pasti setuju jika dikatakan bahwa kualitas software merupakan salah satu tujuan yang penting. Banyak definisi mengenai kualitas software, tetapi disini kualitas software didefinisikan sebagai :

“penyesuaian kebutuhan fungsional dan performa yang ditetapkan secara eksplisit, standar pengembangan yang terdokumentasi secara eksplisit, dan karakteristik implisit yang diharapkan dari seluruh software yang dikembangkan secara professional.” 

Definisi diatas menjelaskan 3 hal penting, yaitu :
  1. Kebutuhan software merupakan pondasi/dasar dari kualitas yang akan diukur. Sedikitnya penyesuaian terhadap kebutuhan, maka semakin tidak berkualitas.
  2. Standar yang dispesifikasikan mendefinisikan sekumpulan kriteria pengembangan yang memandu pengembangan software. Jika kriteria tidak disertakan, maka dapat dipastikan hasil akhir akan berkualitas rendah. 
  3. Terdapat kebutuhan implisit (implicit requirements) yang terkadang tidak disebutkan (misalkan, keinginan untuk kemampuan pemeliharaan yang mudah). Jika software menyesuaikan kepada kebutuhan eksplisit, tetapi tidak kepada kebutuhan implisit, maka kualitas software akan dipertanyakan. 
Menurut McCall terdapat 3 aspek penting dari suatu produk software, yaitu : karakteristik operasional, kemampuan perubahan ketika software sudah berjalan, dan kemampuan beradaptasi terhadap lingkungan baru, seperti terlihat pada gambar diatas. Berdasarkan gambar diatas, McCall menyediakan beberapa dekripsi yaitu :

  1. Correctness (kebenaran), tingkat pemenuhan program terhadap kebutuhan yang dispesifikasikan dan memenuhi tujuan/misi pengguna. 
  2. Reliability (Keandalan), tingkat kemampuan program yang diharapkan dapat menampilkan fungsi yang dimaksud dengan presisi yang ditetapkan. 
  3. Efficiency (efisiensi), jumlah sumberdaya yang diproses dan kode yang diperlukan oleh program untuk melaksanakan fungsinya. 
  4. Integrity (Integritas), tingkat kemampuan pengawasan akses terhadap data atau software oleh orang-orang tertentu. 
  5. Usability, usaha yang diperlukan untuk mempelajari, mengoperasikan, menyiapkan masukan dan mengartikan keluaran program. 
  6. Maintainability, usaha yang diperlukan untuk menetapkan dan memperbaiki kesalahan dalam program. 
  7. Flexibility, usaha yang diperlukan untuk memodifikasi program operasional. 
  8. Testability, usaha yang diperlukan untuk menguji program untuk memastikan bahwa program melaksanakan fungsi yang telah ditetapkan. 
  9. Portability, usaha yang diperlukan untuk memindahkan program dari hardware/lingkungan sistem software tertentu ke yang lainnya.
  10. Reusability, tingkat kemampuan program/bagian dari program yang dapat dipakai ulang dalam aplikasi lainnya, berkaitan dengan paket dan lingkup dari fungsi yang dilakukan oleh program.
  11. Interoperability, usaha yang diperlukan untuk menggabungkan satu sistem dengan sistem lainnya. 
Aktivitas-aktivitas SQA (SQA Activities) SQA terdiri dari berbagai jenis aktivitas yang terhubung dengan 7 aktivitas utama, yaitu :
  1. Aplikasi metode-metode teknikal (Application of technical methods) Kualitas software didesain kedalam sebuah produk atau sistem. Pada kenyataannya SQA dimulai dengan sekumpulan metode teknikal dan tool yang membantu analis untuk mencapai spesifikasi dengan kualitas yang tinggi dan para perancang membangun desain yang berkualitas tinggi. 
  2. Mengadakan review teknikal formal (conduct of formal technical reviews) Ketika spesifikasi (atau prototype) dan desain telah dibuat, maka masing-masing harus di perkirakan untuk kualitas. Aktivitas utama yang memenuhi penaksiran kualitas adalah formal technical review (FTR). FTR merupakan pertemuan khusus yang diadakan oleh staff teknikal dengan tujuan untuk menemukan masalah. Dalam berbagai situasi, review merupakan hal yang efektif seperti ujicoba dalam mengungkap kerusakan dalam software. 
  3. Ujicoba perangkat lunak (software testing) Ujicoba software mengkombinasikan strategi beberapa tahapan/langkah dengan sejumlah desain metode uji kasus yang membantu memastikan pendeteksian kesalahan yang efektif. Banyak pengembang software menggunakan ujicoba software sebagai jaminan kualitas. 
  4. Pelaksanaan standar (enforcement of standards) Tingkatan dimana prosedur dan standar formal diaplikasikan dalam proses pengembangan software, sangat bervariasi antara satu perusahaan dengan yang lainnya. Dalam banyak kasus, standar ditentukan oleh konsumen atau pembuat kebijakan. Jika standar disediakan(secara formal tertulis) maka aktivitas SQA harus dilaksanakan untuk memastikan standar-standar tersebut dilakukan. 
  5. Pengawasan terhadap perubahan (control of change) Ancaman utama dalam kualitas software adalah perubahan yang dilakukan terhadap sumber. Setiap perubahan yang dilakukan pada software sangat potensial untuk menghasilkan kesalahan atau membuat efek sampingan yang mengakibatkan kesalahan. Proses pengawasan perubahan memberikan kontribusi secara langsung terhadap kualitas software dengan permintaan perubahan yang diformalkan. Pengawasan perubahan diaplikasikan selama pengembangan software dan setelahnya, atau selama tahapan pemeliharaan software.
  6. Pengukuran (measurement) Pengukuran (measurement) merupakan aktivitas yang melengkapi setiap bidang pengembangan. Tujuan utama dari SQA adalah untuk menelusuri kualitas software dan memperkirakn pengaruh dari perubahansecara metodologi maupun prosedur pada peningkatan kualitas software. Untuk itu, ukuran-ukuran software (software metrics) harus dikumpulkan. 
  7. Penyimpanan catatan dan laporan (record keeping and reporting) Penyimpanan catatan dan perekaman (record keeping and recording) pada SQA menyediakan prosedur untuk mengumpulkan dan penyebaran informasi SQA. Hasil dari review, audit, pengawasan perubahan, ujicoba, dan aktivitas SQA lainnyaharus menjadi bagian dari record history untuk proyek dan harus disebarkan untuk staff pengembangan untuk pengetahuan.

Tidak ada komentar:

Posting Komentar