Friday, 31 May 2013

Software Quality Metrics

Metrik kualitas harus dimasukkan dalam perangkat lunak untuk membantu manajemen dalam tiga bidang dasar:
  • Pengendalian proyek pengembangan perangkat lunak &pemeliharaan 
  • Dukungan pengambilan keputusan
  • Inisiasi tindakan korektif
Klasifikasi dari metrik kualitas ada 2 yaitu :
  1. Metrik proses  : Terkait dengan  proses pembangunan software, yang dimana didalamnya juga terdapat pembahasan mengenai metrik kualitas proses software, metrik proses Perangkat Lunak, metrik jadwal, kesalahan penghapusan, metrik efektivitas, proses Perangkat Lunak, dan metrik produktivitas. Pada metrik kualitas proses software dapat diketahui seberapa banyak kesalahan yang terjadi dan tingkat keparahan dari kesalahan yang terjadi.
  2. Metrik produk : Terkait dengan pemeliharan software.
Customer service, terdapat 2 tipe pada customer service yaitu :
  1. Help Desk Services (HD)    
  • Menginstruksikan metode aplikasi perangkat lunak kepada pelanggan
  • Memberikan solusi pelaksanaan pelanggan
    masalah
  • Layanan HD tergantung pada kualitas pengguna
    antarmuka, manual user.
     2. Jasa pemeliharaan korektif   :
  • Koreksi kegagalan perangkat lunak diidentifikasi oleh pelanggan / pengguna atau terdeteksi oleh layanan pelanggan
  • Jumlah kegagalan perangkat lunak dan kepadatan mereka langsung berkaitan dengan kualitas pengembangan perangkat lunak
  • Berdasarkan laporan kegagalan.
Kegiatan perawatan perangkat lunak meliputi:
  • Pemeliharaan korektif: koreksi software 
  • kegagalan terdeteksi selama operasi normal perangkat lunak
  • Pemeliharaan Adaptive : adaptasi yang ada perangkat lunak untuk pelanggan baru atau persyaratan baru.
  • Pemeliharaan perbaikan Fungsional: Selain fungsi baru untuk perangkat lunak yang ada,peningkatan kehandalan, dll
Sumber : Daniel Galin, “Software Quality Assurance : From Theory to Implementation.” 2004.

PROCEDURES AND WORK INSTRUCTIONS


Prosedur adalah suatu cara tertentu untuk dapat menyelesaikan sesuatu atau berupa tindakan (Webst’r's New College Dictionary). Dengan kata lain, prosedur merupakan detail aktifitas atau proses yang akan dilakukan sesuai dengan metode yang diberikan dengan tujuan agar dapat menyelesaikan sebuah tugas yang ditransmisikan ke dalam sebuah dokumen. Sebuah prosedur cenderung bersifat universal didalam sebuah organisasi, yang berarti bahwa prosedur harus diterapkan kapanpun tugas tersebut dilakukan, terlepas siapa yang melakukan tugas tersebut dan terlepas dari konteks organisasi.

Instruksi kerja digunakan terutama dalam kasus dimana keseragaman metode dalam melaksanakan seluruh tugas organisasi yang dibuat untuk kebutuhan  tiap tim, departemen, atau unit 

Tujuan prosedur dan instruksi kerja adalah : 

  1. Kinerja tugas, proses atau aktifitas yang paling efektif dan efisien tanpa menyimpang dari persyaratan kualitas
  2. Komunikasi yang efektif dan efisien untuk staf yang terpisah yang terlibat dalam pengembangan dan pemeliharaan sistem perangkat lunak. Keseragaman kinerja dapat dicapai sesuai dengan apa yang telah ada dalam prosedur dan instruksi kerja sehingga dapat mengurangi kesalahpahaman yang terjadi yang dapat juga mengakibatkan terjadinya error atau kesalahan sistem perangkat lunak
  3. Mengkoordinasikan antara tugas dan kegiatan yang dilakukan oleh tiap anggota yang berbeda di sebuah organisasi sehingga semakin baik sebuah koordinasi maka kesalahan yang akan terjadi juga akan semakin sedikit

Lima ‘W’ yang dapat diselesaikan dengan adanya prosedur antara lain :

1)      What activities have to be performed? ( kegiatan apa saja yang harus dilakukan?)
2)      hoW should each activity be performed? (bagaimana seharusnya setiap kegiatan dilakukan?)
3)      When should the activity be performed? (kapan kegiatan akan dilakukan?)
4)      Where should the activity be performed? (dimana seharusnya kegiatan dilakukan?)
5)      Who should perform the activity? (siapa yang seharusnya melakukan kegiatan?)

Table mengenai prosedur berisi :

1)      Pendahuluan
2)      Tujuan
3)      Istilah dan singkatan
4)      Dokumen yang berlaku
5)      Metodologi
6)      Rekaman kualitas dan dokumentasi
7)      Pelaporan dan tindak lanjut
8)      Tanggung jawab pelaksanaan
9)      Daftar lampiran 

Isi sebuah prosedur manual dalam suatu organisasi bervariasi sesuai dengan : 

  1. Jenis – jenis kegiatan pengembangan dan pemeliharaan perangkat lunak yang dilakukan oleh organisasi 
  2.  Kisaran pelanggan dan pemasok
  3. Konsep yang mengatur pilihan metode yang diterapkan oleh organisasi untuk mencapai tujuan SQA yang diinginkan

Contoh instruksi kerja :

Ø  Instruksi Kerja Departemen
1)      Proses audit untuk subkontraktor
2)      Pengembangan perangkat lunak baru
3)      Prioritas penanganan tugas perbaikan pemeliharaan
4)      Evaluasi tahunan subkontraktor pengembangan perangkat lunak
5)      Instruksi on-the-job dan tindak lanjut untuk anggota tim baru
6)      Desain template dokumentasi dan aplikasi
7)      Instruksi pemrograman

Ø  Instruksi Kerja Manajemen Proyek
1)      Koordinasi dan kerja sama dengan pelanggan
2)      Pelaporan oleh pemimpin tim setiap minggunya
3)      Desain template laporan khusus dan aplikasi dalam proyek
4)      Tindak lanjut situs pelaporan
5)      Perkembangan laporan kepada pelanggan setiap bulan
6)      Koordinasi instalasi dan instruksi tim pelanggan

Motivasi untuk melakukan update terhadap prosedur dilakukan berdasarkan : 

1)  Perubahan teknologi yang digunakan dalam pengembangan alat, perangkat keras, komunikasi, peralatan, dan lain – lain
2)      Perubahan di wilayah organisasi kegiatan
3)      Pengguna proposal untuk perbaikan
4)      Analisis kegagalan maupun analisis keberhasilan
5)      Proposal untuk perbaikan yang dilakukan berdasarkan laporan audit internal
6)      Pembelajaran dari pengalaman organisasi lain
7)      Pengalaman yang dirasakan oleh tim SQA


Sumber : Daniel Galin, “Software Quality Assurance : From Theory to Implementation.” 2004.

Assuring the quality of external participants’ contributions

Types of External Participants

Semakin besar dan lebih kompleks proyek, semakin besar kemungkinanbahwa peserta eksternal akan dibutuhkan, dan semakin besar proporsipekerjaan yang harus ditransmisikan.
External participants dapat diklasifikasikan menjadi tiga kelompok utama :
  1. Subkontraktor yang melakukan untuk melaksanakan bagian dari proyek, kecil atau besar, menurut CIR-cumstances. Subkontraktor biasanya menawarkan kepada kontraktor beberapa keunggulan sebagai  berikut: ketersediaan staf, keahlian khusus atau harga rendah. 
  2. Pemasok software COTS . keuntungan mengintegrasikan elemen-elemen, mulai dari jadwal dan biaya pengurangan kualitas. Harapan dari integrasi ini adalah untuk mencapai penghematan dalam pembangunan sumber daya, jadwal yang lebih pendek dan perangkat lunak yang lebih berkualitas.
  3. Pihak dari dalam pelanggan sebagai peserta dalam melakukan proyek. Sekarang sangat umum bagi pelanggan untuk melakukan bagian dari proyek: untuk menerapkan keahlian khusus pelanggan, menanggapi keamanan komersial atau lainnya kebutuhan, menjaga staf pengembangan internal diduduki, dan sebagainya.
Risks and Benefits of Introducing External Participants

Risiko utama untuk kualitas proyek yang terkait dengan menggunakan external participants adalah sebagai berikut :
  1. Keterlambatan penyelesaian proyek. dengan menggunakan external participants terdapat resiko keterlambat dalam penyediaan suku cadang untuk sistem perangkat lunak yang mengakibatkan  proyek secara keseluruhan akan tertunda.
  2. Rendahnya kualitas bagian proyek disediakan oleh external participants. kualitas
    masalah dapat diklasifikasikan sebagai  cacat: lebih tinggi dari yang diharapkan jumlah
    cacat, sering lebih parah dari yang diharapkan, koding yang tidak standar
    dan dokumentasiRendahnya kualitas dan perangkat lunak non-standar yang dapat menyebabkan kesulitan dalam pengujian dan pada tahap pemeliharaan.
    ketika peserta eksternal menyelesaikan tugas mereka tepat waktu.
  3. Kesulitan pemeliharaan Salah satu organisasi kemungkinan besar menyerahkan kepada kontraktor yang bertanggung jawab untuk pemeliharaan seluruh proyek, pengaturan umum
    ditetapkan dalam tender itu sendiri. Kontraktor kemudian dapat dihadapkan dengan
    ketidaklengkapan atau koding yang tidak standar yang  menyebabkan layanan pemeliharaan  berkualitas rendah  dan memiliki biaya yang besar.
    Pemeliharaan layanan yang disediakan oleh lebih dari satu organisasi,mungkin subkontraktor, pemasok perangkat lunak atau departemen pengembangan perangkat lunak pelanggan. masing-masing badan-badan ini bertanggung jawab tidak pada seluruh bagian proyek atau terbatas yang sering kali menyebabkan kegagalan. 
Tipe dari External Participants

 
 Jaminan Mutu External Participants 

Tujuan penerapan alat SQA adalah sebagai berikut :
  • Untuk mencegah keterlambatan dalam penyelesaian proyek   
  • Untuk menjamin tingkat kualitas yang dapat diterima dari bagian-bagian yang dikembangkan 
  • Untuk menjamin dokumentasi yang memadai untuk melayani tim pemeliharaan.
  • Untuk menjamin kontrol terus menerus yang komprehensif dan dapat diandalkan selama menggunakan external participants.
Alat SQA diterapkan untuk peserta eksternal dalam pengembangan proyek perangkat lunak
Persyaratan review dokumen
Evaluasi kriteria pilihan tentang peserta eksternal
Pembentukan koordinasi proyek dan komite pengendalian bersama
Partisipasi dalam tinjauan desain
Partisipasi dalam pengujian perangkat lunak
Penyusunan prosedur khusus
Sertifikasi pemimpin tim pemasok dan anggota
Penyusunan laporan kemajuan kegiatan pembangunan
Ulasan kiriman (dokumen) dan tes penerimaan
 

Sumber : Daniel Galin, “Software Quality Assurance : From Theory to Implementation.” 2004. 





ASSURING THE QUALITY OF SOFTWARE MAINTENANCE COMPONENTS


Tiga komponen penting agar sukses dalam melakukan maintenance (pemeliharaan) adalah :
·         Pemeliharaan Korektif yaitu maintenance berupa layanan dukungan kepada user dan melakukan koreksi terhadap perangkat lunak
·         Pemeliharaan Adaptif yaitu menyesuaikan perbedaan paket perangkat lunak ke dalam kebutuhan pelanggan yang baru, perubahan kondisi lingkungan dan sejenisnya
·         Pemeliharaan Perbaikan Fungsi yaitu menggabungkan pemeliharaan perfektif fungsi baru yang ditambahkan ke perangkat lunak sehingga dapat meningkatkan kinerja dengan kegiatan pemeliharaan preventif yang meningkatkan reliability dan infrastruktur sistem agar lebih mudah dan lebih efisien dalam melakukan perawatan di masa yang akan datang

Kegiatan pemeliharaan penjaminan kualitas perangkat lunak bertujuan untuk : 

·         Memastikan tingkat kepercayaan yang diterima bahwa kegiatan pemeliharaan perangkat lunak sesuai dengan kebutuhan teknis fungsional
·         Memastikan tingkat kepercayaan yang diterima bahwa kegiatan pemeliharaan perangkat lunak sesuai dengan penjadwalan manajerial dan anggaran yang ditetapkan
·         Memulai dan mengelola kegiatan untuk memperbaiki dan meningkatkan efisiensi pemeliharaan perangkat lunak dan kegiatan SQA.

Dua factor yang merupakan operasi produk adalah :

(1)    KETEPATAN (CORRECTNESS), meliputi :

·        Ketepatan Hasil : kelengkapan output yang telah ditentukan dengan tidak menghilangkan output yang telah ditetapkan sebelumnya, akurasi dari output (semua sistem telah diproses dengan benar), update output, dan ketersediaan output
·        Ketepatan Dokumentasi : yaitu kualitas dari dokumentasi yang meliputi kelengkapan, akurasi, struktur dan format dokumenasi.
·        Kualifikasi Koding

(2)    RELIABILITY , yaitu frekuensi kegagalan sistem beserta waktu pemulihannya

Tiga factor yang merupakan revisi produk adalah :
(1)    Pemeliharaan (Maintainability)
(2)    Flexybility
(3)    Testability

Seperti yang dilakukan sebelum Proyek dalam komponen SQA, terdapat juga aktifitas yang harus dilakukan sebelum melakukan maintenance dalam SQA yaitu :

(1)    Maintenance review kontrak
(2)    Maintenance perencanaan konstruksi 

Tujuan utama dari adanya maintenance pada review kontrak antara lain :
(1)    Melakukan klarifikasi kembali mengenai kebutuhan pelanggan
(2)    Mereview pendekatan alternative untuk penyediaan maintenance
(3)    Mereview estimasi sumber daya yang digunakan untuk maintenance
(4)    Mereview layanan maintenance yang akan disediakan oleh subkontraktor dan atau pelanggan
(5)    Mereview estimasi biaya maintenance

Kegiatan perencanaan pemeliharaan harus dipersiapkan oleh pelanggan, eksternal, dan internal. Di dalam perencanaan tersebut harus terdapat kerangka kerja dimana prosedur pada saat melakukan maintenance (pemeliharaan) telah terorganisir dengan baik. Kegiatan tersebut meliputi :

Ø  Daftar layanan maintenance kontrak

(1)    Pelanggan internal dan eksternal, jumlah pengguna, lokasi untuk setiap pelanggan
(2)    Karakteristik dari layanan perbaikan maintenance
(3)    Kewajiban yang adaptive dan fungsional untuk meningkatkan layanan maintenance untuk setiap pelanggan

Ø  Deskripsi atau gambaran mengenai organisasi tim yang melakukan maintenance, yang meliputi :

(1)    Jumlah anggota tim maintenance
(2)    Kualifikasi yang dibutuhkan anggota tim yang sesuai dengan tugas utama yang akan dilakukan pada saat maintenance
(3)    Struktur organisasi dari tim maintenance, termasuk nama dari ketua tim
(4)    Pendefinisian tugas (yang meliputi tanggung jawab terhadap customer, tipe dari aplikasi) untuk setiap anggota tim
(5)    Kebutuhan pelatihan

Ø  Daftar fasilitas maintenance
Ø  Daftar identifikasi dari resiko layanan
Ø  Daftar prosedur dan kontrol yang dibutuhkan untuk maintenance perangkat lunak

(1)    Penanganan aplikasi pelanggan
(2)    Penanganan laporan kegagalan perangkat lunak
(3)    Pelaporan secara berkala dan tindak lanjut mengenai dukungan layanan pelanggan
(4)    Pelaporan berkala dan tindak lanjut mengenai layanan perbaikan maintenance
(5)    Pelatihan dan sertifikasi dari anggota tim maintenance

Ø  Biaya yang digunakan untuk melakukan maintenance perangkat lunak

SQA tools for corrective maintenance, berfokus pada :
(1)    Prosedur untuk penanganan panggilan maintenance
(2)    Dokumentasi penuh dari prosedur layanan
(3)    Ketersediaan dari catatan pendokumentasian
(4)    Otorisasi kontraktor untuk melaksanakan review layanan maintenance secara berkala untuk kepuasan pelanggan
(5)    Kondisi kualitas yang terkait

SQA infrastructure tool for software maintenance, antara lain : 

(1)    Prosedur pemeliharaan dan instruksi kerja
(2)    Perangkat yang mendukung kualitas
(3)    Pelatihan dan sertifikasi tim maintenance
(4)    Pencegahan dan perbaikan
(5)    Konfigurasi manajemen
(6)    Dokumentasi dan rekaman kontrol kualitas

SQA tools for managerial control of software maintenance, meliputi : 

(1)    Kontrol kinerja untuk perbaikan layanan maintenance, meliputi :
Ø  Koreksi perangkat lunak
Ø  Dukungan pengguna
(2)    Metric kualitas untuk perbaikan maintenance, meliputi : 

Ø  Estimasi sumber daya yang dibutuhkan ketika mempersiapkan perencanaan pemeliharaan untuk periode yang akan datang
Ø  Perbandingan metode pengoperasian
Ø  Inisiasi dari pencegahan dan perbaikan
Ø  Estimasi sumber daya yang dibutuhkan sebagai dasar untuk proposal baru

(3)    Biaya untuk pemeliharaan kualitas perangkat lunak, meliputi :

Ø  Biaya pencegahan
Ø  Biaya penilaian
Ø  Biaya persiapan manajerial dan kontrol
Ø  Biaya kegagalan internal
Ø  Biaya kegagalan eksternal
Ø  Biaya kegagalan manajerial

Sumber : Daniel Galin, “Software Quality Assurance : From Theory to Implementation.” 2004.