IFA-451 Jaminan Mutu Perangkat Lunak PERTEMUAN 2 : Faktor-faKtor kualitas perangkat lunak PRESENTED BY : Kurnia R. Putra Itenas 2018
Tujuan Pembelajaran Kebutuhan untuk mendefinisikan kebutuhan perangkat lunak (software requirement) secara komprehensif/menyeluruh Mampu mengklasifikasikan kebutuhan perangkat lunak ke dalam faktor-faktor kualitas perangkat
Kebutuhan mendefinisikan software requirement secara komprehensif Semua proyek perangkat lunak dituntut untuk melakukan perhitungan dengan benar (cost, time) Semua proyek perangkat lunak mengalami performansi yang buruk akibat kurangnya menerapkan faktor-faktor kualitas Kinerja buruk yang terjadi terhadap proyek perangkat lunak yang dikembangkan disebabkab oleh kurangnya mendefenisikan kebutuhan yang mencakup aspek-aspek penting dari PL secara fungsional. Mencakup semua aspek perangkat lunak seperti aspek usability, reusability, maintainability, dll untuk memastikan kepuasan dari user. Poin 1: Karena biaya dan dan waktu sangat berpengaruh terhadap kualitas perangkat lunak. Jika ingin kualitas baik maka waktu dan biaya yang dibutuhkan juga lebih besar Poin 4: Perbedaan Usability dengan Reusability * Usability dapat diukur dengan: - efektifitas (mengukur kebenaran misalnya 100% itu baik sekali, 78% itu dapat diterima) - efisiensi (dapat diukur dengan waktu penyelesaian tugas misalnya 1 detik itu cepat, 2-4 detik dapat diterima, 5 detik lambat) - kepuasan (dapat diukur dengan rating atau skala 1-5, 5 artinya sangat baik dan 1 buruk sekali)
Klasifikasi Faktor Kualitas Perangkat Lunak Beberapa model klasik dari faktor kualitas diperkenalkan oleh: Mc Call (1977) Boehm (1978) Evans dan Marciniak (1987) Deutsch dan Willis (1988) ISO 9126 (1991) FURPS (1992)
Mc Call’s Factor (1977) Mencakup 11 faktor kualitas yang dibagi ke dalam tiga kelompok: Product Operation : kemampuan produk untuk beroperasi dan memberikan hasil sesuai dengan kebutuhan user (Correctness, Reliability, Efficiency, Integrity, Usability) Product Revision : kemampuan produk perangkat lunak untuk beradaptasi terhadap perubahan (Maintainability, Flexibility, Testability) Product Transition: kemampuan produk untuk melakukan transisi sesuai lingkungannya karena perubahan hardware yang begitu cepat (Portability, Reusability, Interoperability)
Product Operation Correctness: berarti “bebas dari bug” tetapi secara spesifik diartikan “terbukti bebas dari bug”. Untuk meningkatkan correctness ada 2 hal yang dapat dilakukan yaitu menggunakan compiler dan testing. Contoh: Metod TotalGaji() harus dihitung menggunakan rumus jumlahHadir x upahPerSKS. Reliability: terkait dengan keandalan software untuk meberikan layanan dan tingkat kegagalan maksimum software yang diizinkan baik merujuk ke satu sistem maupun fungsi terpisah. Contoh: -Availability: Server website e-commerce harus selalu up 99,99 % setiap waktu. Efficiency: kebutuhan sumber daya hardware yang disepakati untuk menjalankan semua fungsi software secara optimal. Contoh: time-response: Waktu yang dibutuhkan oleh prosesor untuk mengeksekusi fungsi perhitungan transaksi penjualan bulanan tidak lebih dari 2 detik. Selain itu juga bisa ukuran data, kecepatan transfer, dll. Integrity: berhubungan dengan keamanan sistem perangkat lunak, untuk memberikan otorisasi ke pihak yang berwenang. Integrity digunakan untuk membedakan siapa yang berhak melihat data dan mengubah data. Contoh: Perangkat Lunak GIS mengizinkan warga untuk mengakses GIS hanya untuk melihat dan meng-copy data tetapi tidak untuk memasukkan data. Usability: seberapa mudah perangkat lunak digunakan oleh user. Contoh: 99.5% dari user mampu melakukan transfer ke bank internasional menggunakan aplikasi perbankan pertama kali tanpa bantuan asisten. Availability: Misal 1 bulan 30 hari = 720 jam. Up: 99,99 % x 720 = 719,928 jam Down: 720-719,928 = 0,072 jam x 60 = 4,32 menit
Product Revision Maintainability: pernyataan requirement untuk menentukan upaya yang dibutuhkan oleh user dan personil yang bertugas untuk melakukan pemeliharaan untuk mengidentifikasi kenapa perangkat lunak mengalami kegagalan. Contoh: Ukuran dari package suatu aplikasi tidak diizinkan melebihi dari 30 class. Flexibility: kemampuan dan upaya yang dibutuhkan untuk mendukung adaptive maintenance. Contoh: Perangkat lunak mampu beroperasi pada Android Nougat, Oreo, dan Pie. Testability: pernyataan requirement yang berkaitan dengan pengujian sistem informasi dan operasinya. Contoh: Id customer harus terdiri dari 8 digit angka, sehingga harus dilakukan pengujian terhadap id customer dengan huruf dan melebihi 8 digit. Aktivitas pemeliharaan PL: - Corrective maintenance: ketika ditemukan sebuah bug, harus dilakukan maintenance untuk melakukan perbaikan. - Adaptive maintenance: ketika sistem yang dibuat harus mengadaptasi perubahan environment/lingkungan operasinya. - Perfective maintenance: ketika pengguna sistem/stakeholder merubah requirement dari sistem yang dibangun.
Product Transition Portability: pernyataan requirement yang berkaitan dengan adaptasi perangkat lunak sesuai dengan lingkungannya, termasuk perangkat keras dan sistem operasi. Contoh: Aplikasi dapat dijalankan pada lingkungan sistem operasi Windows maupun Linux. Reusability: pernyataan requirement yang menyatakan bahwa bagian dari sistem informasi, dapat berupa komponen, kode, desain, module atau library yang dapat digunakan ulang pada aplikasi lain. Fungsi save_data() dapat digunakan untuk menyimpan data dosen, mahasiswa dan matakuliah. Interoperability: berfokus pada pembuatan interface untuk menghubungkan satu sistem dengan sistem lainnya. Contoh: Sub sistem penggajian mampu menarik data karyawan dari sub sistem kepegawaian.
Mengukur RELIABILITY (KEANDALAN) SISTEM SISTEM SERI Jika salah satu komponen mengalami kegagalan maka akan mengakibatkan kegagalan terhadap sistem secara keseluruhan. Keandalan sistem yang dirancang secara seri dapat diukur menggunakan formula: 𝑅𝑠= 𝑅 𝑖 𝑥 𝑅 𝑖+1 𝑥… 𝑅 𝑛−1 Keterangan: 𝑅𝑠=𝑅𝑒𝑙𝑖𝑎𝑏𝑖𝑙𝑖𝑡𝑦 𝑠𝑖𝑠𝑡𝑒𝑚 𝑘𝑒𝑠𝑒𝑙𝑢𝑟𝑢ℎ𝑎𝑛 𝑛=𝑏𝑎𝑛𝑦𝑎𝑘𝑛𝑦𝑎 𝑘𝑜𝑚𝑝𝑜𝑛𝑒𝑛 𝑅𝑖=𝑅𝑒𝑙𝑖𝑎𝑏𝑖𝑙𝑖𝑡𝑦 𝑘𝑜𝑚𝑝𝑜𝑛𝑒𝑛 𝑘𝑒−𝑖 Contoh: Sebuah sistem core-banking menggunakan 3 buah server yang dipasang secara seri. Masing-masing reliability dari server tersebut, Server 1 dengan reliability 99,5%, Server 2 dengan reliability 98,7%, dan Server 3 dengan reliability 97,3%. Berapa reliability sistem secara keseluruhan? Jawab: 𝑅𝑠= 𝑅 𝑠𝑒𝑟𝑣𝑒𝑟1 𝑥 𝑅 𝑠𝑒𝑟𝑣𝑒𝑟2 𝑥 𝑅 𝑠𝑒𝑟𝑣𝑒𝑟3 =0,9950 𝑥 0,9870 𝑥 0,9730=0,9955549245=0,9955=99,55%
Mengukur RELIABILITY (KEANDALAN) SISTEM - Lanjutan SISTEM PARALEL Setidaknya ada satu komponen yang beroperasi maka akan berhasil untuk sistem secara keseluruhan, dan jika salah satu komponen mengalami kegagalan maka dapat digantikan oleh komponen lainnya. Keandalan sistem yang dirancang secara seri dapat diukur menggunakan formula: 𝑅𝑠=1− 𝑄 𝑠 =1− 𝑄 𝑖 𝑥 𝑄 𝑖+1 𝑥… 𝑄 𝑛−1 =1−[ 1− 𝑅 𝑖 𝑥 1− 𝑅 𝑖+1 𝑥… 1− 𝑅 𝑛−1 ] Keterangan: 𝑅𝑠=𝑅𝑒𝑙𝑖𝑎𝑏𝑖𝑙𝑖𝑡𝑦 𝑠𝑖𝑠𝑡𝑒𝑚 𝑘𝑒𝑠𝑒𝑙𝑢𝑟𝑢ℎ𝑎𝑛 Q𝑠=𝑈𝑛𝑟𝑒𝑙𝑖𝑎𝑏𝑖𝑙𝑖𝑡𝑦 𝑠𝑦𝑠𝑡𝑒𝑚 𝑅𝑖=𝑅𝑒𝑙𝑖𝑎𝑏𝑖𝑙𝑖𝑡𝑦 𝑘𝑜𝑚𝑝𝑜𝑛𝑒𝑛 𝑘𝑒−𝑖 Contoh: Sebuah sistem core-banking menggunakan 3 buah server yang dipasang secara paralel. Masing-masing reliability dari server tersebut, Server 1 dengan reliability 99,5%, Server 2 dengan reliability 98,7%, dan Server 3 dengan reliability 97,3%. Berapa reliability sistem secara keseluruhan? Jawab: 𝑅𝑠=1−[ 1− 𝑅 𝑖 𝑥 1− 𝑅 𝑖+1 𝑥… 1− 𝑅 𝑛−1 ] =1−[(1−0,9950) 𝑥 (1−0,9870) 𝑥(1− 0,9730)=1−[(0,005𝑥0,013𝑥0,027)] =0,9999=99,99%
Mendeskripsikan kebutuhan Non-fungsional / Non-functional requirement Nomor Jenis Kebutuhan Deskripsi NFR-01 Correctness Metod TotalGaji() harus dihitung menggunakan rumus jumlahHadir x upahPerSKS NFR-02 Reliability Server harus selalu dalam kondisi up 99,99 % setiap waktu. NFR-03 Efficiency Waktu yang dibutuhkan oleh prosesor untuk mengeksekusi fungsi perhitungan transaksi penjualan bulanan tidak lebih dari 2 detik NFR-04 Integrity User hanya mampu melihat data dan mengcopy data tetapi tidak diijinkan untuk mengubah, menambah, dan menghapus data. NFR-05 Usability 99.5% dari user mampu melakukan pendaftaran akun baru pada aplikasi tanpa bantuan asisten atau melihat buku panduan. NFR-06 Maintainability Ukuran dari satu package pada aplikasi tidak diizinkan melebihi dari 30 class NFR-07 Flexibelity Perangkat lunak mampu beroperasi pada SO Windows 7 sampai Windows 10. NFR-08 Testability Id customer harus terdiri dari 8 digit angka NFR-09 Portability Video pembelajaran matakuliah IFA451 harus dapat diputar oleh mahasiswa pada berbagai sistem operasi, mencakup Microsoft Windows, macOS, and Android NFR-10 Reusability Fungsi save_data() dapat digunakan untuk menyimpan data dosen, mahasiswa dan matakuliah NFR-11 Interoperability Sub sistem penggajian mampu menarik data karyawan dari sub sistem kepegawaian
SOAL LATIHAN 1. Klasifikasikan pernyataan requirement berikut ini ke dalam faktor kualitas Mc Call FR-01 : Dalam satu buah kelas pada program aplikasi tidak diizinkan melebihi dari 20 fungsi atau prosedur. FR-02 : Nama user hanya diperbolehkan maksimal 50 huruf. FR-03 : Library java.util.Math harus dapat digunakan oleh semua kelas Java. FR-04 : User dengan role “Mahasiswa” hanya dapat melihat dan mengubah data personal dan tidak diizinkan melihat dan mengubah data mahasiswa lain. FR-05 : Sistem harus selalu dapat diakses 99,90 % dalam waktu 7x24 jam. FR-06 : Anak-anak umur 5 tahun dapat memainkan game aplikasi tanpa bantua orang tua. FR-07 : Server Backend aplikasi web Tokoku menyediakan API data produk yang dapat diakses oleh aplikasi web lain. FR-08 : Perangkat lunak dapat dijalankan pada mini komputer Rasspberry maupun Arduino. FR-09 : Ukuran bandwidth yang digunakan untuk menampilkan laporan penjualan tidak lebih dari 2MB. FR-10 : Pengolahan data perangkat lunak dapat menggunakan DBMS MySQL atau Oracle. 01 = (Maintainability) 06 = (Usability) 02 = (Testability) 07 = (Interoperability) 03 = (Reusability) 08 = (Flexibility) 04 = (Integrity) 09 = (Efficiency) 05 = (Reliability) 10 = (Portability)
SOAL LATIHAN (Lanjutan) 2. Sebuah sistem pada Universitas menggunakan 3 buah server yang dipasang secara seri untuk menangani data Mahasiswa, Dosen, dan Perkuliahan. Masing-masing reliability dari server tersebut, Reliability sistem keseluruhan adalah 96, 20%, server untuk menangani data mahasiwa dengan reliability 99,6%, server untuk menangani data dosen dengan reliability 99,55%. Berapa reliability server untuk menangani data perkuliahan? 3. Sebuah komputer Highend dengan merk X mampu beroperasi selama 1x24 jam. Pada komputer tersebut dipasang 2 buah memory secara paralel, dimana memory pertama memiliki reliability sebesar 99,89% sedangkan memory kedua memiliki reliability sebesar 99,35%. Dalam seminggu komputer tersebut pernah mengalami down. Berapa menit komputer X tersebut mengalami down selama seminggu?
JAWAB 2. 𝑅𝑠= 𝑅 𝑚ℎ𝑠 𝑥 𝑅 𝑑𝑠𝑛 𝑥 𝑅 𝑘𝑙ℎ 0,9620=0,9960 𝑥 0,9955 𝑥 𝑅 𝑘𝑙ℎ 𝑅 𝑘𝑙ℎ = 0,9620 (0,9960𝑥0,9955) = 0,9620 0,991518 =0,97022=97,02% 3. 𝑅𝑠=1− 1− 𝑅 𝑖 𝑥 1− 𝑅 𝑖+1 𝑥… 1− 𝑅 𝑛−1 1 𝑚𝑖𝑛𝑔𝑔𝑢=7𝑥24 𝑗𝑎𝑚=168 𝑗𝑎𝑚 𝑅𝑠=1−[ 1− 𝑅 𝑚𝑒𝑚1 𝑥 1− 𝑅 𝑚𝑒𝑚2 ] 𝐷𝑜𝑤𝑛=168𝑥0,0001=0,0168 jam =1−[ 1−0,9989 𝑥 1−0,9935 ] =0,0168𝑥60=±1,008 𝑚𝑒𝑛𝑖𝑡 =1− 0,0011 𝑥 0,0065 =1− 0,00000715 =0,9999=99,99% 𝐷𝑜𝑤𝑛=1−99,99%=0,0001%
Boehm’FACTOR (1978) Barry W. Boehm memodelkan karakteristik ke dalam tiga pilar utama yang berada pada high level: As-is_Utility: sejauh mana perangkat lunak itu dapat digunakan (ease to use, reliability, dan efficiency) Maintainability: kemudahan untuk mengidentifikasi apa yang perlu diubah serta kemudahan mofikasi dan pengujian ulang. Portability: kemudahan dalam mengubah perangkat lunak mengikuti lingkungannya yang baru. Ketiga faktor tersebut dijabarkan lagi secara hierarki pada middle level: Portability: sejauh mana perangkat lunak dapat bekerja pada konfigurasi komputer yang berbeda (Sistem operasi, database, dll) Reliability: sejauh mana perangkat lunak bekerja sesuai dengan yang seharusnya, bebas dr kecacatan (defect) Efficiency: sejauh mana sumber daya komputer dimanfaatkan secara optimal selama proses eksekusi program. Human Engineering: kemudahan dalam penggunaan Testability: kemudahan dalam validasi, dimana software yang dibangun harus memenuhi requirementnya. Understandability: sejauh mana perangkat lunak dapat dipahami berkaitan dengan tujuan dan strukturnya. Flexibility: kemudahan mengubah perangkat lunak sesuai dengan requirementnya.
ALTERNATIVE FACTOR MODEL EVANS & MARCINIAK (1987) Verifiability: menentukan fitur desain dan pemrograman yang memungkinkan untuk melakukan verifikasi desain dan pemrograman yang efisien. Expandability: merujuk pada suatu upaya yang akan dilakukan di masa mendatang untuk meningkatkan layanan, atau tambahkan aplikasi baru untuk meningkatkan kegunaan. (dicakup pada McCall’s flexibility) DEUTSCH & WILLIS (1988) Safety: dimaksudkan untuk menghilangkan kondisi berisiko sebagai akibat dari kesalahan dalam proses control perangkat lunak. Manageability:merujuk pada administrasi yang mendukung modifikasi perangkat lunak selama periode pengembangan dan pemeliharaan. Survivability: merujuk pada stabilitas layanan. (dicakup pada McCall’s reliability)
Perbandingan Mc Call, Evans & marciniak, dan DEUTSCH & WILLIS
ISO 9126 (1991) Functionality: karakteristik yang terkait dengan pencapaian tujuan Reliability: kemampuan perangkat lunak untuk menjaga kinerja dari perangkat lunak tersebut Usability: usaha yang dibutuhkan dalam menggunakan software (mudah/sulit) Efiiciency: hubungan antara tingkat kinerja dengan jumlah sumber daya. Maintainability: usaha yang diperlukan untuk melakukan modifikasi dan peningkatan. Portability: menjalankan software dari satu sistem ke sistem lainnya.
FURPS (1992) Functionality: dinilai sebagai evaluasi fitur dan kemampuan program secara keseluruhan Usability: dinilai dengan mempertimbangkan faktor manusia, keseluruhan estetika, tampilan dan kemudahan belajar. Reliability: dinilai sebagai pengukuran dari frekuensi kegagalan, keakuratan hasil, dan Mean-Time-To-Failure(MTTF)/ lamanya waktu suatu perangkat atau produk diharapkan bertahan dalam operasi, kemampuan untuk pulih dari kegagalan. Performance: dinilai sebagai kecepatan proses, response time, pemanfaatan sumber daya dan efesiensi. Supportability: dinilai sebagai kemampuan untuk memperluas program (extensibility), adaptability, serviceability and maintainability.
KESIMPULAN Mempelejari mendefinisikan requirement secara komprehensif. Mempelajari faktor-faktor kualitas perangkat lunak (Mc Call, Boehm, Evans & Marciniak, Deutsch & Willis, ISO 9126, dan FURPS) Mengklasifikasikan pernyataan requirement ke dalam model faktor kualitas perangkat lunak. Mempelajari perhitungan realibilitas perangkat lunak.The additional factors suggested by alternatives factor models.
SELESAI