SOFTWARE QUALITY
SOFTWARE QUALITY
DEFINISI KUALITAS PERANGKAT LUNAK
DEFINISI KUALITAS PERANGKAT LUNAK
3 poin penting
3 poin penting
–
Kebutuhan2 perangkat lunak merupakan
Kebutuhan2 perangkat lunak merupakan
fondasi darimana kualitas diukur
fondasi darimana kualitas diukur
–
Standar2 spesifik yg menentukan kriteria
Standar2 spesifik yg menentukan kriteria
pengembangan yg menuntun pembuatan
pengembangan yg menuntun pembuatan
suatu perangkat lunak
suatu perangkat lunak
–
Terdapat kebutuhan2 yg implisit yg sering tidak
Terdapat kebutuhan2 yg implisit yg sering tidak
diperhatikan (mis, keinginan untuk
diperhatikan (mis, keinginan untuk
pemeliharaan yg terbaik)
FAKTOR KUALITAS PERANGKAT LUNAK
FAKTOR KUALITAS PERANGKAT LUNAK
Yg dapat dihitung secara langsung
Yg dapat dihitung secara langsung
–
Error
Error
(Kesalahan)
(Kesalahan)
–
Kilobytes Lines of Code
Kilobytes Lines of Code
(KLOC)
(KLOC)
Dihitung secara tidak langsung
Dihitung secara tidak langsung
–
Usability
Usability
(Kegunaan)
(Kegunaan)
FAKTOR KUALITAS … (McCall)
FAKTOR KUALITAS … (McCall)
CorrectnessCorrectness : besarnya program dapat memuaskan : besarnya program dapat memuaskan spesifikasi & objektivitas dari misi pelanggan
spesifikasi & objektivitas dari misi pelanggan
ReliabilityReliability : besarnya program dapat diharapkan : besarnya program dapat diharapkan memenuhi fungsi2 yg dikehendaki
memenuhi fungsi2 yg dikehendaki
Efficiency : Efficiency : jumlah sumber2 & kode yg dibutuhkan jumlah sumber2 & kode yg dibutuhkan program utk menjalankan fungsi2
program utk menjalankan fungsi2
IntegrityIntegrity : besarnya pengontrolan pengaksesan : besarnya pengontrolan pengaksesan oleh seseorang yg tidak mempunyai otorisasi
oleh seseorang yg tidak mempunyai otorisasi
terhadap perangkat lunak atau data
terhadap perangkat lunak atau data
UsabilityUsability : effort (usaha) yg dibutuhkan utk : effort (usaha) yg dibutuhkan utk
mempelajari, mengoperasikan, menyiapkan input
mempelajari, mengoperasikan, menyiapkan input
& mengintepretasi kan output program
FAKTOR KUALITAS … (McCall) lanj.
FAKTOR KUALITAS … (McCall) lanj.
MaintainabilityMaintainability : usaha yg dibutuhkan utk : usaha yg dibutuhkan utk
menempatkan & menetapkan suatu kesalahan pada menempatkan & menetapkan suatu kesalahan pada
program program
Flexibility Flexibility : usaha yg dibutuhkan utk memodifikasi : usaha yg dibutuhkan utk memodifikasi
program yg dioperasikan program yg dioperasikan
Testability Testability : usaha yg dibutuhkan utk menguji program : usaha yg dibutuhkan utk menguji program
utk menjamin tlh dijalankannya program yg utk menjamin tlh dijalankannya program yg
diharapkan diharapkan
PortabilityPortability : usaha yg dibutuhkan utk mentransfer : usaha yg dibutuhkan utk mentransfer
program dari lingkungan sistem per.lunak &/ per.keras program dari lingkungan sistem per.lunak &/ per.keras
ke lingkungan lain ke lingkungan lain
ReusabilityReusability : besarnya program dpt digunakan oleh : besarnya program dpt digunakan oleh
aplikasi lain aplikasi lain
InteroperabilityInteroperability : usaha yg dibutuhkan utk memasang- : usaha yg dibutuhkan utk
PENGUKURAN KUALITAS PER. LUNAK
PENGUKURAN KUALITAS PER. LUNAK
AuditabilityAuditability : mudah utk dicek mengenai konfirmansi : mudah utk dicek mengenai konfirmansi
standar standar
Accuracy Accuracy : presisi komputasi & pengontrolan: presisi komputasi & pengontrolan
Communication commonalityCommunication commonality : derajat pengunaan : derajat pengunaan
interface, protokol & bandwidth yg standar interface, protokol & bandwidth yg standar
CompletenessCompleteness : derajat pencapaian implementasi full : derajat pencapaian implementasi full
dari fungsi2 yg dibutuhkan dari fungsi2 yg dibutuhkan
Conciseness Conciseness : kepadatan program dalam : kepadatan program dalam lines of codelines of code ConsistencyConsistency : penggunaan teknik dokumentasi & : penggunaan teknik dokumentasi &
perancangan yg seragam perancangan yg seragam
Data commonalityData commonality : penggunaan struktur & tipe data : penggunaan struktur & tipe data
standar standar
Error toleranceError tolerance : akibat yg timbul pada saat program : akibat yg timbul pada saat program
PENGUKURAN KUALITAS PER. LUNAK
PENGUKURAN KUALITAS PER. LUNAK
(lanj.)
(lanj.)
Execution efficiency Execution efficiency : kinerja waktu eksekusi pada program: kinerja waktu eksekusi pada program Expandability Expandability : derajat dimana perancangan terprosedur, : derajat dimana perancangan terprosedur,
data & arsitektur dapat diperluas data & arsitektur dapat diperluas
GeneralityGenerality : kelonggaran aplikasi dari komponen program : kelonggaran aplikasi dari komponen program Hardware independence Hardware independence : derajat dimana per. Lunak : derajat dimana per. Lunak
dipisahkan dari per. keras atau yg mengoperasikannya dipisahkan dari per. keras atau yg mengoperasikannya
InstrumentationInstrumentation : derajat dimana program memonitor : derajat dimana program memonitor
operasinya sendiri & mengindentifikasikan kesalahan2 yg operasinya sendiri & mengindentifikasikan kesalahan2 yg timbul
timbul
ModularityModularity : kemandirian fungsional dari komponen : kemandirian fungsional dari komponen
program program
OperabilityOperability : kemudahan pengoperasian program : kemudahan pengoperasian program
Security Security : ketersediaan mekanisme yg mengontrol atau : ketersediaan mekanisme yg mengontrol atau
PENGUKURAN KUALITAS PER. LUNAK
PENGUKURAN KUALITAS PER. LUNAK
(lanj.)
(lanj.)
Self-documentation : derajat dimana Self-documentation : derajat dimana source codesource code
menyediakan dokumentasi yg berarti menyediakan dokumentasi yg berarti
Simplicity : derajat dimana program dapat dimengerti Simplicity : derajat dimana program dapat dimengerti
dengan mudah dengan mudah
Software system independence Software system independence : derajat dimana : derajat dimana
program berdiri sendiri dari fitur bhs pemrograman, program berdiri sendiri dari fitur bhs pemrograman,
karakteristik sistem pengoperasian & batasan lainnya karakteristik sistem pengoperasian & batasan lainnya
yg tdk standar yg tdk standar
Traceability Traceability : kemampuan utk menelusuri representasi : kemampuan utk menelusuri representasi
perancangan atau komponen program aktual, kembali perancangan atau komponen program aktual, kembali
ke kebutuhan ke kebutuhan
TrainingTraining : derajat dimana per. lunak dapat membantu : derajat dimana per. lunak dapat membantu
BIAYA KUALITAS PERANGKAT LUNAK
BIAYA KUALITAS PERANGKAT LUNAK
Semua biaya utk mengejar kualitas atau utk
Semua biaya utk mengejar kualitas atau utk
menampil-kan kualitas yg berhubungan dgn
menampil-kan kualitas yg berhubungan dgn
aktifitas.
aktifitas.
–
Biaya pencegahan
Biaya pencegahan
Perencanaan kualitas
Perencanaan kualitas
Review teknis formal
Review teknis formal
BIAYA KUALITAS PERANGKAT LUNAK
BIAYA KUALITAS PERANGKAT LUNAK
(lanj.)
(lanj.)
–
Biaya penilaian meliputi aktifitas memperoleh
Biaya penilaian meliputi aktifitas memperoleh
wawasan mengenai kondisi produk pertama
wawasan mengenai kondisi produk pertama
kali pada masing2 proses, meliputi
kali pada masing2 proses, meliputi
Inspeksi in-proses & interproses
Inspeksi in-proses & interproses
Pemeliharaan & kalibrasi peralatan
Pemeliharaan & kalibrasi peralatan
Pengujian
Pengujian
–
Biaya kegagalan adalah biaya yg akan hilang
Biaya kegagalan adalah biaya yg akan hilang
bila tidak ada cacat yg muncul sebelum produk
bila tidak ada cacat yg muncul sebelum produk
disampaikan kepada pelanggan
BIAYA KUALITAS PERANGKAT LUNAK
BIAYA KUALITAS PERANGKAT LUNAK
(lanj.)
(lanj.)
Biaya kegagalan internal adl biaya yg Biaya kegagalan internal adl biaya yg
diadakan bila kita mendeteksi kesalahan dlm
diadakan bila kita mendeteksi kesalahan dlm
produk sebelum produk dipasarkan, meliputi
produk sebelum produk dipasarkan, meliputi
– Pengerjaan kembaliPengerjaan kembali – PerbaikanPerbaikan
– Analisis mode kegagalanAnalisis mode kegagalan
Biaya kegagalan eksternal adl biaya yg Biaya kegagalan eksternal adl biaya yg
berhubungan dg cacat yg ditemukan setelah
berhubungan dg cacat yg ditemukan setelah
produk disampaikan pada pelanggan, meliputi
produk disampaikan pada pelanggan, meliputi
– Resolusi keluhanResolusi keluhan
– Penggantian & pengembalian produkPenggantian & pengembalian produk – Dukungan Dukungan help linehelp line
SQA
SQA
Merupakan kegiatan yg terpola secara sistematis
Merupakan kegiatan yg terpola secara sistematis
dan terencana, yg dibutuhkan utk menjamin
dan terencana, yg dibutuhkan utk menjamin
kualitas suatu perangkat lunak.
kualitas suatu perangkat lunak.
Terdiri atas 7 aktifitas utama :
Terdiri atas 7 aktifitas utama :
– Aplikasi metode secara teknisAplikasi metode secara teknis – Review teknis formalReview teknis formal– Pengujian perangkat lunakPengujian perangkat lunak – Penekanan pada standarPenekanan pada standar
– Pengontrolan pada perubahanPengontrolan pada perubahan – PengukuranPengukuran
SQA (lanj.)
SQA (lanj.)
SQA dimulai dgn sekumpulan alat & metode teknis yg SQA dimulai dgn sekumpulan alat & metode teknis yg
membantu analis utk mendapatkan spesifikasi yg membantu analis utk mendapatkan spesifikasi yg
berkualitas tinggi & bagi perancang utk merancang dg berkualitas tinggi & bagi perancang utk merancang dg
kualitas tinggi kualitas tinggi
Setelah spesifikasi & desain dibuat, ditetapkan Setelah spesifikasi & desain dibuat, ditetapkan
kualitasnya dg melakukan review teknis formal. kualitasnya dg melakukan review teknis formal.
Pengujian per. Lunak mengkombinasikan langkah2 Pengujian per. Lunak mengkombinasikan langkah2
strategi dg metode rancangan test-case yg dpt strategi dg metode rancangan test-case yg dpt
menjamin pendeteksian kesalahan secara efektif. menjamin pendeteksian kesalahan secara efektif.
Jika terdapat standar yg formal, berarti harus dapat Jika terdapat standar yg formal, berarti harus dapat
SQA (lanj.)
SQA (lanj.)
Pengontrolan perubahan dilakukan selama pembuatan Pengontrolan perubahan dilakukan selama pembuatan
per. Lunak & pada tahap pemeliharaan. Setiap per. Lunak & pada tahap pemeliharaan. Setiap
perubahan dpt menyebabkan kesalahan & efek lain yg perubahan dpt menyebabkan kesalahan & efek lain yg
akan menyebabkan kesalahan jg. akan menyebabkan kesalahan jg.
Pengukuran terhadap per. Lunak mencakup Pengukuran terhadap per. Lunak mencakup
pengukuran secara manajemen & teknis pengukuran secara manajemen & teknis
Penyimpanan hasil dari review, audit, pengontrolan Penyimpanan hasil dari review, audit, pengontrolan
perubahan, pengujian dyl sebagai bagian dari record perubahan, pengujian dyl sebagai bagian dari record
historis utk suatu proyek dan didesiminasikan kpd historis utk suatu proyek dan didesiminasikan kpd
para staf pengembangan sbg ‘dasar utk mereka para staf pengembangan sbg ‘dasar utk mereka
REVIEW PERANGKAT LUNAK
REVIEW PERANGKAT LUNAK
Merupakan filter pada proses pembuatan
Merupakan filter pada proses pembuatan
perangkat lunak.
perangkat lunak.
Bentuknya : presentasi formal di depan
Bentuknya : presentasi formal di depan
pelanggan, manajemen, & staf teknisi.
pelanggan, manajemen, & staf teknisi.
Review – suatu cara penggunaan perbedaan2 dari
Review – suatu cara penggunaan perbedaan2 dari
sekompok orang untuk
sekompok orang untuk
– Menentukan peningkatan kebutuhan produk dari Menentukan peningkatan kebutuhan produk dari seseorang atau tim
seseorang atau tim
– Konfirmasi setiap bagian dari produk dimana Konfirmasi setiap bagian dari produk dimana
peningkatan tsb diinginkan atau tidak diinginkan peningkatan tsb diinginkan atau tidak diinginkan – Mencapai kerja teknis yg seragam, ataupun dapat Mencapai kerja teknis yg seragam, ataupun dapat
PERTEMUAN PADA REVIEW TEKNIS
PERTEMUAN PADA REVIEW TEKNIS
FORMAL
FORMAL
Batasannya
Batasannya
– Antara 3 & 5 orang yg terlibat : pemimpin review, Antara 3 & 5 orang yg terlibat : pemimpin review, pereview & produsen
pereview & produsen
– Persiapan sebelumnya tidak lebih 2 jam kerja per orangPersiapan sebelumnya tidak lebih 2 jam kerja per orang – Lama pertemuan review minimal 2 jamLama pertemuan review minimal 2 jam
Fokus : produk, komponen program (spesifikasi
Fokus : produk, komponen program (spesifikasi
kebutuhan, perancangan modul detail, listing
kebutuhan, perancangan modul detail, listing
koding utk setiap modul
koding utk setiap modul
Akhir review, harus diputuskan
Akhir review, harus diputuskan
– Menerima produk tanpa modifikasiMenerima produk tanpa modifikasi
– Menolak produk krn kesalahan yg fatalMenolak produk krn kesalahan yg fatal
– Menerima produk dg kesalahan yg kecil dan harus Menerima produk dg kesalahan yg kecil dan harus diperbaiki
PENDOKUMENTASIAN PADA REVIEW TEKNIS
PENDOKUMENTASIAN PADA REVIEW TEKNIS
FORMAL
FORMAL
Laporan review harus dapat menjawab
Laporan review harus dapat menjawab
– Apa yg direviewApa yg direview – Siapa yg mereviewSiapa yg mereview
– Apa yg ditemukan & disimpulkanApa yg ditemukan & disimpulkan
Daftar review mempunyai 2 tujuan :
Daftar review mempunyai 2 tujuan :
– Mengidentifikasi area permasalahan produkMengidentifikasi area permasalahan produk
– Menyediakan checklist setiap item kegiatan yg dapat Menyediakan checklist setiap item kegiatan yg dapat memandu produsen utk melakukan perbaikan
PEDOMAN REVIEW TEKNIS FORMAL
PEDOMAN REVIEW TEKNIS FORMAL
Mereview produk bukan produsenMereview produk bukan produsen Membuat agenda dan mengikutinyaMembuat agenda dan mengikutinya Membatasi debatMembatasi debat
Memberitahukan area masalah, tetapi bukan utk Memberitahukan area masalah, tetapi bukan utk
menyelesaikan semua masalah yg ada menyelesaikan semua masalah yg ada
Membuat catatan tertulis (di papan/bisa dilihat)Membuat catatan tertulis (di papan/bisa dilihat)
Membatasi jumlah partisipan & menekankan persiapan Membatasi jumlah partisipan & menekankan persiapan
awal awal
Membuat checklist utk setiap produk yg direviewMembuat checklist utk setiap produk yg direview
Mengalokasikan sumber daya & waktu yg terjadual utk Mengalokasikan sumber daya & waktu yg terjadual utk
review berikutnya review berikutnya
Mengadakan pelatihan utk semua pereviewMengadakan pelatihan utk semua pereview