Anda di halaman 1dari 18

19.

Keandalan (Reliability)

K203320 Rekayasa Perangkat Lunak


Gasal 2022/2023

Yunarso Anang
Lya Hulliyyatus Suadaa
Lutfi Rahmatuti Maghfiroh
Novianto Budi Kurniawan (dosen tidak tetap)
Yeni Rimawati (dosen tidak tetap)

Courtesy of Prof. Emeritus William Y. Arms


Terminologi

• Penghindaran kesalahan (Fault avoidance)


• Bangun sistem dengan tujuan menciptakan perangkat lunak bebas kesalahan (bebas
bug/error).
• Deteksi kesalahan (pengujian dan verifikasi) (Fault detection)
• Mendeteksi kesalahan (bug) sebelum sistem dioperasikan atau ketika ditemukan
setelah rilis.
• Toleransi kesalahan (Fault tolerance)
• Bangun sistem yang terus beroperasi ketika masalah (bug, kelebihan beban, data , dll.)
terjadi.

K203320 Rekayasa Perangkat Lunak 2


Software reliability

“Software Reliability is the probability of failure-free software operation for a


specified period of time in a specified environment” *

R(t) adalah peluang suatu sistem akan berhasil


dalam selang waktu 0 sampai waktu t
T adalah variabel acak yang menunjukkan
waktu kegagalan (time-to-failure)
F(t) adalah tingkat kegagalan, didefinisikan
sebagai probabilitas bahwa sistem akan gagal
pada waktu t

*[ANSI91] ANSI/IEEE, "Standard Glossary of Software Engineering Terminology", STD-729-1991, ANSI/IEEE, 1991

K203320 Rekayasa Perangkat Lunak 3


Kasus Nyata Kegagalan (Failure)

• Sebuah kapal penumpang dengan 1.509 orang di dalamnya mendarat di sebuah


kawasan dekat Pulau Nantucket, Massachusetts. Saat itu kapal berada sekitar 17
mil dari tempat yang diperkirakan petugas. Kapal itu sedang dalam perjalanan
dari Bermuda ke Boston.

K203320 Rekayasa Perangkat Lunak 4


Analisis Kasus Kegagalan

Dari laporan Dewan Keselamatan Transportasi Nasional (National Transportation


Safety Board):
• Kapal dikemudikan oleh autopilot yang mengandalkan informasi posisi dari Global
Positioning System (GPS).
• Jika GPS tidak dapat memperoleh posisi dari satelit, GPS memberikan perkiraan
posisi berdasarkan Dead Reckoning (jarak dan arah yang ditempuh dari titik yang
diketahui).
• GPS gagal satu jam setelah meninggalkan Bermuda.
• Para kru gagal melihat pesan peringatan di layar (atau untuk memeriksa
instrumen).
• 34 jam dan 600 mil kemudian, kesalahan Dead Reckoning adalah 17 mil.

K203320 Rekayasa Perangkat Lunak 5


Analisis Perangkat Lunak (Software Lessons)

Semua perangkat lunak berfungsi seperti yang ditentukan (tidak ada bug), tetapi ...
• Setelah perangkat lunak GPS ditentukan, requirements berubah (sistem yang
berdiri sendiri sekarang bagian dari sistem terintegrasi).
• Produsen autopilot dan GPS mengadopsi filosofi desain yang berbeda tentang
komunikasi perubahan mode.
• Autopilot tidak diprogram untuk mengenali bit status yang valid/tidak valid dalam
pesan dari GPS.
• Peringatan yang diberikan oleh antarmuka pengguna tidak cukup mencolok untuk
mengingatkan kru.
• Petugas belum terlatih dengan baik tentang peralatan ini.
Perangkat lunak yang andal membutuhkan semua bagian dari proses
pengembangan perangkat lunak untuk dilakukan dengan baik.

K203320 Rekayasa Perangkat Lunak 6


Faktor Kunci untuk Perangkat Lunak yang Andal

• Budaya organisasi yang mengharapkan kualitas. Ini berasal dari manajemen dan
staf teknis senior.
• Kesepakatan yang tepat dan tidak ambigu tentang kebutuhan (requirements).
• Desain dan implementasi yang menyembunyikan kompleksitas (misalnya, desain
terstruktur, pemrograman berorientasi objek).
• Gaya pemrograman yang menekankan kesederhanaan, keterbacaan, dan
penghindaran konstruksi berbahaya.
• Perangkat lunak yang membatasi atau mendeteksi kesalahan (misalnya,
penegasan/, sistem kontrol sumber, debugger).
• Verifikasi sistematis pada semua tahap pengembangan, termasuk kebutuhan,
arsitektur sistem, desain program, implementasi, dan pengujian pengguna.
• Perhatian khusus pada perubahan dan pemeliharaan.

K203320 Rekayasa Perangkat Lunak 7


Membangun Perangkat Lunak yang Andal: Proses Manajemen
Kualitas

Ketika waktunya singkat...


• Berikan perhatian ekstra pada tahap awal proses: kelayakan, persyaratan, desain.
• Jika kesalahan dibuat dalam proses identifkasi dan analisis kebutuhan, akan ada
sedikit waktu untuk memperbaikinya nanti.
• Pengalaman menunjukkan bahwa mengambil waktu ekstra pada tahap awal
biasanya akan mengurangi total waktu untuk rilis.

K203320 Rekayasa Perangkat Lunak 8


Membangun Perangkat Lunak yang Andal: Komunikasi dengan
Klien

Suatu sistem tidak ada gunanya jika tidak memenuhi kebutuhan klien
• Klien harus memahami dan meninjau kebutuhan yang disepakati secara rinci.
• Tidaklah cukup untuk memberikan dokumen spesifikasi kepada klien dan
memintanya untuk menandatangani.
• Anggota staf klien yang tepat harus meninjau area desain yang relevan (termasuk
operasi, materi pelatihan, dan administrasi sistem).
• Tes penerimaan harus menjadi milik klien.

K203320 Rekayasa Perangkat Lunak 9


Membangun Perangkat Lunak yang Andal: Kompleksitas

Pikiran manusia hanya dapat mencakup kompleksitas yang terbatas:


• Kesederhanaan Dapat Dipahami (Comprehensibility Simplicity)
• Pemisahan kompleksitas (Partioning of complexity)
• Lebih mudah memahami dan menyelesaikan komponen sederhana secara benar
daripada bekerja dengan sesuatu yang kompleks.

K203320 Rekayasa Perangkat Lunak 10


Membangun Perangkat Lunak yang Andal: Perubahan
Perubahan dapat dengan mudah menimbulkan masalah
Manajemen perubahan
• Manajemen source code dan kontrol versi
• Pelacakan permintaan perubahan dan laporan bug
• Prosedur untuk mengubah spesifikasi kebutuhan, desain dan dokumentasi lainnya
• Pengujian Regresi
• Kontrol rilis
Saat menambahkan fungsi baru atau memperbaiki bug, mudah untuk menulis
tambalan (patches) yang melanggar arsitektur sistem atau desain program secara
keseluruhan. Hal ini harus dihindari sebisa mungkin.
Bersiaplah untuk memodifikasi arsitektur untuk menjaga sistem yang berkualitas
tinggi.
K203320 Rekayasa Perangkat Lunak 11
Membangun Perangkat Lunak yang Andal: Fault Tolerance

Tujuan:
• Sebuah sistem yang terus beroperasi ketika masalah terjadi.
Contoh:
• Data masukan tidak valid (misalnya, dalam aplikasi pemrosesan data)
• Kelebihan beban (misalnya, dalam sistem jaringan)
• Kegagalan perangkat keras (misalnya, dalam sistem kontrol)
Pendekatan umum:
• Deteksi kegagalan
• Penilaian kerusakan
• Pemulihan kesalahan
• Perbaikan kesalahan

K203320 Rekayasa Perangkat Lunak 12


Metrik Keandalan: Pengukuran keandalan
Keandalan
• Probabilitas kegagalan yang terjadi dalam penggunaan operasional.
Metrik pengukuran tradisional untuk sistem
• Rata-rata waktu antara kegagalan (Mean time between failures)
• Ketersediaan (waktu aktif) (availability)
• Berarti waktu untuk memperbaiki (mean time to repair)
Pendekatan pengguna
• Keluhan
• Retensi pelanggan
Ketika ada banyak komponen sistem (multi-component system), administrator
sistem mengandalkan sistem pelaporan otomatis untuk mengidentifikasi area
masalah
K203320 Rekayasa Perangkat Lunak 13
Metrik Keandalan: Persepsi pengguna terhadap keandalan

Keandalan yang dirasakan tergantung pada:


• perilaku pengguna
• set masukan (inputs)
• “kesal” karena sistem gagal
Persepsi pengguna dipengaruhi oleh distribusi kegagalan
• Komputer pribadi yang sering “crash”, atau sistem yang tidak dapat digunakan
selama beberapa hari dan kejadian ini rutin dalam suatu periode waktu
• Sistem basis data yang sering “crash” atau “down” atau sistem yang gagal sekali
dalam periode waktu tertentu sehingga data harus dipulihkan dari cadangan.
• Sebuah sistem yang tidak gagal tetapi berjalan sangat lambat.

K203320 Rekayasa Perangkat Lunak 14


Metrik Keandalan: Kebutuhan (Requirements)

K203320 Rekayasa Perangkat Lunak 15


Contoh kasus keandalan: Data Center

Pusat data (data center) sangat penting untuk


seluruh organisasi.

Kegagalan apa pun adalah


serius.

K203320 Rekayasa Perangkat Lunak 16


Contoh kasus keandalan: Data Center

Langkah 1: kumpulkan data Langkah 3: Investasikan sumber


Langkah 2: analisis data
pada setiap kegagalan daya
1.Buat database yang mencatat 1.Statistik mingguan, bulanan, • Investasikan sumber daya di
setiap kegagalan dan tahunan: mana manfaatnya akan
2.Analisis setiap kegagalan: • Jumlah kegagalan dan maksimal
• Perangkat keras gangguan • Urutan prioritas untuk
• Perangkat lunak (bawaan) • Mean time to repair peningkatan perangkat lunak
• Lingkungan (misalnya, listrik, 2.Grafik tren menurut • Prosedur yang diubah untuk
AC) komponen: operator
• Manusia (misalnya, • Tingkat kegagalan drive disk • Penggantian perangkat keras
kesalahan operator) • Kegagalan perangkat keras • Restart teratur setelah listrik
setelah kegagalan daya mati
• Kerusakan yang disebabkan
oleh bug perangkat lunak di
setiap komponen
• Kategori kesalahan manusia

K203320 Rekayasa Perangkat Lunak 17


o

K203320 Rekayasa Perangkat Lunak 18

Anda mungkin juga menyukai