Materi :
Pengembangan perangkat lunak (Software development) merupakan salah satu dari tahap
rancangan system rinci/detail dari Siklus Hidup Pengembangan Sistem (Software
Development Life Cycle atau SDLC).
Tim proyek system mungkin mulai mencari paket perangkat lunak komersial yang sesuai atau
mendukung spesifikasi rancangan system dan berjalan pada rancangan arsitektur
komputernya. Paket perangkat lunak komersial secara luas tersedia untuk aplikasi fungsi
spesifik dan aplikasi bisnis yang telah ditetapkan secara baku.
Tetapi untuk rancangan sistem yang terkait dengan kebutuhan khusus atau unik (memenuhi
keperluan pemakai dan spesifikasi rancangan sistem) maka paket perangkat lunak komersial
mungkin tidak sesuai atau mendukung kebutuhan pemakai secara langsung. Perangkat lunak
yang diharapkan untuk mendukung rancangan sistem tersebut harus dibuat sendiri dari awal
(scratch)
Paket (off-the-self) yang tersedia bisa diterapkan dalam berbagai kebutuhan bisnis.
Beberapa paket bersifat generik dan multifungsional yang memungkinkan para
pemakai memprogram sofware tersebut untuk kebutuhannya sendiri. Paket-paket
tersebut mengotomisasi fungsi-fungsi bisnis dasar yang umumnya tidak terlalu
bervariasi dari satu organisasi dengan organisasi lain. Contoh jenis paket adalah
spreadsheet dan DBMS.
Software tersebut bersifat siap, teruji, dan terdokumentasi. Paket yang dibeli biasanya
pengimplementasiannya jauh lebih cepat dari pada mengembangkan program yang
sama secara in-house atau menyuruh kontraktor independen untuk
mengembangkannya sehingga secara potensial membantu memecahkan backlog
(penimbunan pekerjaan yang belum selesai).
2. Penghematan Biaya
Satu paket perangkat lunak komersial bisa dijual kepada banyak organisasi sehingga
biaya pengembangan ditanggung oleh banyak pemakai, dan biaya total suatu paket
akan lebih murah dari pada program pesanan yang sama.
Biaya atau harga paket komersial telah diketahui, dan tanggal pengimplementasian-
nya mudah diestimasi. Sebaliknya program pesanan biasanya cenderung melampaui
estimasi waktu dan biaya.
4. Reliabilitas
Sebelum diterbitkan di pasaran umum, paket perangkat lunak komersial pasti telah
diuji secara teliti. Melalui penggunaan yang ekstensif oleh sejumlah organisasi, segala
kesalahan yang dijumpai telah dideteksi dan dikoreksi sehingga peluang kesalahannya
lebih sedikit.
Kerugian/kelemahan :
Paket software komersial dibuat untuk berbagai organisasi, dan tidak untuk organisasi
tertentu maka paket ini mungkin mempunyai beberapa fungsi yang tidak diperlukan
atau mungkin tidak mempunyai fungsi yang diperlukan sehingga paket tersebut harus
dimodifikasi. Jika vendor tidak membuat kode sumber (source code) yang bisa
digunakan untuk penyesuaian dan tidak menyediakan layanan penyesuaian maka
rancangan sistem mungkin harus diubah agar sesuai dengan paket tersebut. Jika hal
ini terjadi sebaiknya mengembangkan program secara in-house agar programnya bisa
memenuhi spesifikasi rancangan sistem yang tepat.
2. Ketergantungan Vendor
Seringkali apa yang ingin dicapai, manajemen tidak melaksanakan SDLC menyeluruh
atau mungkin melewati tahap SDLC, dan secara langsung menuju ke paket perangkat
lunak komersial Strategi ini seringkali mengakibatkan paket perangkat lunak
komersial tidak berjalan sesuai yang diharapkan dan masalah sistem serta
organisasional yang terjadi sebelum implementasi paket tersebut tetap muncul
sehingga menimbulkan kesulitan atau harus dibayar kemudian yaitu adanya
peningkatan biaya implementasi, operasi, dan pemeliharaan.
Terkait dengan pemrolehan (akuisisi) perangkat lunak komersial maka perlu membuat
atau menyiapkan Permohonan Proposal (Request For Proposal atau RFP)
berorientasi kinerja untuk menyeleksi vendor dan paket perangkat lunak komersial
yang tepat. Faktor-faktor evaluasi mencakup pemenuhan spesifikasi rancangan
detail untuk output, input, proses, dan database serta cocok dengan batasan waktu
dan biayanya, juga penggunaan benchmark yang mensimulasi kebutuhan sistem baru
(bentuk prototyping) harus diterapkan pada setiap paket dari vendor.
Penilaian paket
Penilaian dari benchmark yang digunakan untuk mengukur hal-hal seperti transaksi
perdetik (transaction per second) dan waktu respon (response time).
c. Dokumentasi
Penilaian ini mencerminkan kuantitas dan kualitas prosedur tertulis, prosedur online,
pedoman quick start, online tutorial, dan fasilitas help.
d. Mudah dipelajari
Penilain ini tergantung pada interface pemakai dan rancangan intuitif dari paket
tersebut. Paket harus bisa dipelajari oleh rata-rata pemakai.
e. Mudah digunakan
Menu yang mudah diikuti dan perintah yang jelas membantu kemudahan penggunaan.
Black-box testing adalah metode pengujian perangkat lunak yang tes fungsionalitas dari
aplikasi yang bertentangan dengan struktur internal atau kerja (lihat pengujian white-box).
pengetahuan khusus dari kode aplikasi / struktur internal dan pengetahuan pemrograman pada
umumnya tidak diperlukan. Uji kasus dibangun di sekitar spesifikasi dan persyaratan, yakni,
aplikasi apa yang seharusnya dilakukan. Menggunakan deskripsi eksternal perangkat lunak,
termasuk spesifikasi, persyaratan, dan desain untuk menurunkan uji kasus. Tes ini dapat
menjadi fungsional atau non-fungsional, meskipun biasanya fungsional. Perancang uji
memilih input yang valid dan tidak valid dan menentukan output yang benar.
Ujicoba blackbox bukan merupakan alternatif dari ujicoba whitebox, tetapi merupakan
pendekatan yang melengkapi untuk menemukan kesalahan lainnya, selain menggunakan
metode whitebox. Ujicoba blackbox berusaha untuk menemukan kesalahan dalam beberapa
kategori, diantaranya :
Pengujian White Box adalah metode desain test case yang menggunakan struktur control
desain procedural untuk memperoleh test case.
Disebut juga pengujian glassbox.
Dengan pengujian whitebox, perekayasa dapat :
1. Memberikan jaminan bahwa semua jalur independen pada suatu modul telah
digunakan paling tidak satu kali.
2. Menggunakan semua keputusan logis pada sisi true and false.
3. Mengeksekusi semua loop pada nya
4. Menggunakan struktur data internal untuk menjamin validitasnya.
Condition Testing
Pengujian yang menjalankan kondisi logis yang terdapat pada modul program.
Pengujian dengan metode yang menyeleksi jalur uji program menurut lokasi
pendefinisian dan menggunakan variable-variabel program
Loop Testing.
simple loop
concatenated loop
nested loop
nstructured loop
Pengujian basis path memungkinkan desain test case mengukur kompleksitas logis dari
desain procedural dan menggunakannya sebagai pedoman untuk menetapkan basis set
dari jalur eksekusi.
Test case yang dilakukan untuk menggunakan basis set tersebut dijamin untuk
menggunakan setiap statemen di dalam program paling tidak sekali selama pengujian.
Pada pengujian perangkat lunak, pelaku RPL menciptakan sekumpulan kasus uji untuk
diujikan kepada perangkat lunak. Proses ini lebih terkesan berusaha untuk “membongkar”
perangkat lunak yang sudah dibangun.
Pengujian adalah proses mengeksekusi program dengan tujuan khusus untuk menemukan
kerusakan. Kasus uji yang baik adalah yang memiliki tingkat kemungkinan tinggi untuk
menemukan kerusakan yang belum ditemukan. Pengujian dikatakan berhasil jika berhasil
menemukan kerusakan yang belum ditemukan
Karakteristik yang Membawa Perangkat Lunak Dapat Diuji. Operabilitas, yaitu : Semakin
baik Dia bekerja, semakin efisien Dia dapat diuji.
a) Obsaikervabilitas, yaitu : “Apa yang Anda lihat adalah apa yang Anda uji”.
b) Kontralabilitas, yaitu : “Semakin baik kita dapat mengontrol perangkat lunak, semakin
banyak pengujian yang dapat diotomasisasi dan dioptimalkan”.
c) Dekomposabilitas, yaitu : “Dengan mengontrol ruang lingkup pengujian, kita dapat
dengan lebih cepat mengisolasi masalah dan melakukan pengujian kembali secara
lebih halus”.
d) Kesederhanaan, yaitu : “Semakin sedikit yang kita uji, semakin cepat kita dapat
mengujinya’.
e) Stabilitas, yaitu : “Semakin sedikit perubahan, semakin sedikit pula gangguan dalam
pengujian’.
f) Kemampuan untuk dapat dipahami, yaitu : “Semakin banyak informasi yang kita
miliki, semakin halus pengujian yang akan dilakukan’.
Tujuan Pengujian :
Menjalankan program untuk menemukan error yang tersembunyi atau yang sebelumnya
tidak terduga.
Pendekatan rekayasa perangkat lunak yang digambarkan dalam buku ini bekerja kearah tujuan
tunggal, yaitu, “menghasilkan perangkat lunak berkualitas tinggi”. Masalah manajemen
kualitas bukanlah suatu hal yang tidak diketahui. Masalahnya adalah apa yang mereka pikir
mereka tahu.
Banyak pengembang perangkat lunak terus percaya bahwa kualitas perangkat lunak
merupakan sesuatu yang mulai anda khawatirkan setelah kode-kode dilahirkan. Jaminan
kualitas perangkat lunak atau Software Qualitiy Assurance (SQA) adalah aktivitas pelindung
yang diaplikasikan pada seluruh proses perangkat lunak. SQA meliputi :
3. kajian teknik formal yang diaplikasikan pada keseluruhan proses perangkat lunak.
7. KONSEP KUALITAS
Telah dikatakan bahwa tidak ada dua butir salju yang sama. Bila kita melihat salju jauh itu sangat
sulit untuk bisa mengatakan bahwa butiran-butiran salju itu berbeda bentuk satu sama lain. Belum
lagi bahwa setiap butir salju memiliki bentuk dan ukuran yang unik. Untuk bisa mengamati
perbedaan diantara dua butir salju, kita harus melakukan pendekatan objek. Dengan menggunakan
alat bantu microscop semakin dekat kita melihat dan semakin besar pula perbedaan yang dapat
kita amati.
Fenomena tersebut adalah sebagian contoh kecil antar-sample, semua bagian yang direkayasa dan
dihasilkan menunjukan keragaman. Keragaman antar-sample tidak akan nyata tanpa bantuan
peralatan yang teliti untuk mengukurnya secara geometri, karakter listrik, atau atribut bagian.
Pemrograman yang menciptakan rutin sorting (atau memilihnya dari sebuah pustaka komponen
reusable) memilih menggunakan quicksort untuk memecahkan masalah yang ada. Dapatkah
seorang pengamat produk akhir membedakan perangkat lunak dari sebuah produk yang sangat
identik yang menggunakan bubble sort ? Mungkin dapat, tetapi kita membutuhkan lebih banyak
informasi dan peralatan yang sangat sensitive untuk dapat membedakan perbedaan antara kedua
sistem tersebut.
Kontrol variasi merupakan inti dari kontrol kualitas. Pemanufaktur ingin meminimalkan variasi
antara produk yang mereka buat, bahkan dalam hal yang kecil sekali pun, seperti ,menduplikasi
disket. Tentu saja ini bukan masalah menduplikasi disket merupakan operasi produksi yang sangat
mudah, dan kita dapat menjamin bahwa duplikat perangkat linak yang tepat selalu dapat dibuat.
Bagai mana organisasi pengembang perfangkat lunak melakukan control variasi? Dari satu proyek
ke proyek lain kita perlumeminimalkan perbedaan di antara sumber-sumber daya yang diharapkan
menyelesaikan proyek dansumber daya actual yang digunakan. Secara umum kita perlu
memastikan bahwa program pengujian kita sudah mencangkup presentase perangkat lunak yang
diketahui dari satu peluncuran ke peluncuran lain. Kita tidak hanya perlu meminimalkan jumlah
cacat yang dilepas ke medan, tetapi kita juga harus memastikan bahwa varian dalam jumlah bug
juga telah diminimalkan dari satu pelapasan ke pelepasan lain.
8. KUALITAS
Kualitas sebagai sebuah karakteriktis atau atribut dari sesuatu. Sebagai atribut dari sesuatu,
kualitas mengacu pada karakteristik yang dapat diukur.
Dalam pengembangan perangkat lunak, kualitas design syarat, spesifikasi, dan desain sistem.
Kualitas konformasi adalah suatu masalah yang difokuskan pada implementasi. Bila
implimentasi mengikuti desain dan sistem yang dihasilkan memenuhi persyaratan serta tujuan
kinerja, maka kualitas konformasi menjadi tinggi.
Aktivitas kualitas kontrol dapat menjadi otomatis sepenuhnya atau manual secara
keseluruhan, atau bisa dikombinasi antar keduanya. Konsep kunci kualitas kontrol adalah
bahwa semua produk kerja memiliki spesifikasi yang telah ditentukan dan dapat diukur
dimana kita dapat membandingkan output dari setiap proses. Kadang menjadi penting
untuk meminimalkan cacat yang dihasilkan.
Jaminan kualitas terdiri atas fungsi auditing dan pelaporan manajemen. Tujuan jaminan
kualitas adalah untuk memberikan data yang diperlukan manajemen dalam
menginformasikan masalah kualitas produk.
Biaya kualitas menyangkut semua biaya yang diadakan untuk mengejar kualitas atau untuk
menampilkan kualitas yang berhubungan dengan aktivitas. Biaya kualitas dapat dibagi
kedalam biaya-biaya yang dihubungkan dengan pencegahan, penilaian, dan kegagalan.
1. perencanaan kualitas
Menyiapkan rencana suatu SQA untuk suatu proyek, rencana itu dikembangkan selama
perancangan proyek dan dikaji oleh semua kelompok yang tertarik. Aktivitas yang
dilakukan oleh tim rekayasa perangkat lunak dan kelompok SQA diatur oleh rencana.
Rencana tersebut mengidentifikasi hal hal berikut :
1. evaluasi yang dilakukan
6. jumlah umpan balik yang diberikan pada tim proyek perangkat lunak.