Anda di halaman 1dari 3

Therac-25 adalah mesin terapi radiasi yang dikendalikan komputer yang diproduksi

oleh Atomic Energy of Canada Limited(AECL) pada tahun 1982 setelah unit Therac-6 dan
Therac-20 (unit sebelumnya telah diproduksi dalam kemitraan dengan CGRPerancis ).
Itu terlibat dalam setidaknya enam kecelakaan antara 1985 dan 1987, di mana pasien
diberi radiasi overdosis besar-besaran. [1]: 425 Karena kesalahan pemrograman bersamaan ,
kadang-kadang memberi pasiennya dosis radiasi yang ratusan kali lebih besar dari normal,
mengakibatkan kematian atau cedera serius. [2] Kecelakaan ini menyoroti
bahaya pengendalian perangkat lunakterhadap sistem yang kritis terhadap keselamatan, dan
mereka telah menjadi studi kasus standar dalam informatika kesehatandan rekayasa perangkat
lunak . Selain itu, terlalu percaya diri para insinyur [1] : 428 dan kurangnya uji tuntas
yang tepat untuk menyelesaikan bug perangkat lunak yang dilaporkan disoroti sebagai kasus
ekstrem di mana terlalu percaya diri para insinyur dalam pekerjaan awal mereka dan
kegagalan untuk mempercayai klaim pengguna akhir yang menyebabkan dampak drastis.

Mesin ini menawarkan dua mode terapi radiasi : [3]


 Terapi sinar-elektron langsung, di mana berkas elektron berenergi tinggi dengan energi
rendah (5 MeV hingga 25 MeV) yang sempit dipindai di atas wilayah perlakuan dengan
magnet;
 Terapi sinar-X (atau foton) Megavolt , yang menghasilkan sinar dengan lebar tetap,
dihasilkan dengan menabrakkan berkas arus pendek 100 kali lebih tinggi dari 25 elektron
MeV dengan target, kemudian melewati sinar-X yang dipancarkan melalui kedua perataan
filter dan kolimator .

Ini juga termasuk mode "Field light", yang memungkinkan pasien diposisikan dengan benar
dengan menerangi area perawatan dengan cahaya tampak.

Keenam kecelakaan yang didokumentasikan terjadi ketika berkas elektron arus tinggi yang
dihasilkan dalam mode sinar-X dikirim langsung ke pasien. Dua kesalahan perangkat lunak
yang harus disalahkan. [3] Satu, ketika operator salah memilih mode sinar-X sebelum berubah
dengan cepat ke mode elektron, yang memungkinkan berkas elektron diatur ke mode sinar-X
tanpa ada target sinar-X yang terpasang. Kesalahan kedua memungkinkan berkas elektron
untuk mengaktifkan selama mode cahaya lapangan, di mana tidak ada pemindai sinar aktif
atau target berada di tempat.
Model sebelumnya memiliki kunci perangkat keras untuk mencegah kesalahan seperti itu,
tetapi Therac-25 telah menghapusnya, sebagai gantinya tergantung pada pemeriksaan
perangkat lunak untuk keamanan.
Sinar elektron arus tinggi menghantam pasien dengan sekitar 100 kali dosis radiasi yang
dimaksudkan, dan di daerah yang lebih sempit, memberikan dosis radiasi beta
yang berpotensi mematikan. Perasaan itu dijelaskan oleh pasien Ray Cox sebagai "sengatan
listrik yang intens", menyebabkan dia menjerit dan berlari keluar dari ruang
perawatan. [4] Beberapa hari kemudian, luka bakar radiasi muncul, dan pasien menunjukkan
gejala keracunan radiasi ; dalam tiga kasus, pasien yang terluka kemudian meninggal akibat
overdosis. [5]
Sebuah komisi mengaitkan penyebab utama praktik desain dan pengembangan perangkat
lunak yang buruk secara umum dan bukan kesalahan pengkodean spesifik tunggal. Secara
khusus, perangkat lunak dirancang sedemikian rupa sehingga secara realistis tidak mungkin
untuk mengujinya dengan cara otomatis yang bersih. [3]
Peneliti yang menyelidiki kecelakaan menemukan beberapa penyebab yang berkontribusi. Ini
termasuk penyebab kelembagaan berikut:
 AECL tidak memiliki kode perangkat lunak yang ditinjau secara independen.
 AECL tidak mempertimbangkan desain perangkat lunak selama penilaiannya tentang
bagaimana mesin dapat menghasilkan hasil yang diinginkan dan mode kegagalan apa yang
ada. Ini merupakan bagian dari teknik umum yang dikenal sebagaipemodelan
reliabilitas dan manajemen risiko .
 Sistem memperhatikan bahwa ada sesuatu yang salah dan menghentikan sinar-X, tetapi hanya
menampilkan kata "MALFUNCTION" diikuti dengan angka dari 1 hingga 64. Manual
pengguna tidak menjelaskan atau bahkan menangani kode kesalahan, sehingga operator
menekan tombol Kunci P untuk mengabaikan peringatan dan tetap melanjutkan.
 Personil AECL, serta operator mesin, pada awalnya tidak percaya keluhan. Ini mungkin
karena terlalu percaya diri. [1] : 428
 AECL belum pernah menguji Therac-25 dengan kombinasi perangkat lunak dan perangkat
keras hingga dirakit di rumah sakit.

Para peneliti juga menemukan beberapa masalah teknik :


 Kegagalan terjadi hanya ketika urutan penekanan tombol tertentu dimasukkan pada
terminal VT-100 yang mengendalikan komputer PDP-11 : "X" untuk (secara keliru) memilih
25 mode foton MeV diikuti oleh "kursor ke atas", "E" untuk (dengan benar) memilih mode
Electron 25 MeV, lalu "Enter", semua dalam delapan detik. [3]
 Desain tidak memiliki kunci perangkat keras apa pun untuk mencegah berkas elektron
beroperasi dalam mode berenergi tinggi tanpa target di tempat.
 Insinyur itu menggunakan kembali perangkat lunak dari model lama. Metode-metode seperti
itu bermanifestasi dalam pemrograman pemujaan kargo di mana ada ketergantungan buta
pada kode yang dibuat sebelumnya yang kurang dipahami dan mungkin atau mungkin tidak
dapat diterapkan. Model-model ini memiliki kunci perangkat keras yang menutupi cacat
perangkat lunak mereka. Keamanan perangkat keras itu tidak memiliki cara untuk
melaporkan bahwa mereka telah dipicu, sehingga tidak ada indikasi adanya perintah
perangkat lunak yang salah.
 Perangkat keras tidak memberikan jalan bagi perangkat lunak untuk memverifikasi bahwa
sensor bekerja dengan benar (lihat pengontrol loop terbuka ). Sistem tabel-posisi adalah yang
pertama terlibat dalam kegagalan Therac-25; pabrikan merevisinya dengan sakelar redundan
untuk memeriksa ulang operasi mereka.
 Tugas kontrol peralatan tidak disinkronkan dengan baik dengan tugas antarmuka operator,
sehingga kondisi balapan terjadi jika operator mengubah pengaturan terlalu cepat. Ini
terlewatkan selama pengujian, karena perlu beberapa latihan sebelum operator dapat bekerja
cukup cepat untuk memicu mode kegagalan ini.
 Perangkat lunak mengatur variabel flag dengan menambahkannya, bukan dengan
mengaturnya ke nilai tetap nol. Kadang-kadang terjadi overflow aritmatika , menyebabkan
bendera kembali ke nol dan perangkat lunak memintas pemeriksaan keamanan.

Perangkat lunak ini ditulis dalam bahasa assembly yang mungkin memerlukan lebih banyak
perhatian untuk pengujian dan desain yang baik. Namun pilihan bahasa dengan sendirinya
tidak terdaftar sebagai penyebab utama dalam laporan. Mesin juga menggunakan sistem
operasinya sendiri.
Leveson mencatat bahwa pelajaran yang bisa diambil dari kejadian itu adalah untuk tidak
berasumsi bahwa perangkat lunak yang digunakan kembali aman: "Asumsi naif sering dibuat
bahwa menggunakan kembali perangkat lunak atau menggunakan perangkat lunak komersial
akan meningkatkan keamanan karena perangkat lunak tersebut akan dilaksanakan
Menggunakan kembali modul perangkat lunak tidak menjamin keamanan dalam sistem baru
yang ditransfer ... " [3] Keyakinan buta terhadap paradigma kode perangkat lunak yang kurang
dipahami ini dikenal sebagai pemrograman pemujaan kargo. Menanggapi insiden seperti
yang terkait dengan Therac-25, standar IEC 62304 telah dibuat, yang memperkenalkan
standar siklus hidup pengembangan untuk perangkat lunak perangkat medis dan panduan
khusus tentang penggunaan perangkat lunak dari silsilah yang tidak diketahui . [6]

Anda mungkin juga menyukai