根本原因
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/02 23:31 UTC 版)
委員会では、主な原因を、特定のコーディングエラー一つに絞るのではなく、一般的なソフトウェアの設計と開発の仕方の悪さにあるとしている。特に、このソフトウェアは、クリーンな自動化された方法でテストすることが現実的に不可能なように設計されていた。 事故を調査した研究者は、いくつかの原因を発見した。その中には、以下のような制度的な原因が含まれていた。 AECLは、ソフトウェアコードを独立してレビューしておらず、オペレーティングシステムを含む社内のコードに依存することを選択した。 AECLは、機械がどのようにして望ましい結果を出すのか、どのような故障モードが存在するのかを評価する際に、ソフトウェアの設計を考慮せず、純粋にハードウェアに焦点を当て、ソフトウェアにはバグがないと主張していた。 機械オペレータは、過剰照射は不可能であるとAECLの担当者により安心させられ、多くの事故の潜在的な原因としてセラック25に対する考慮を止めさせた:428。 AECLは、セラック25が病院で組み立てられるまで、ソフトウェアとハードウェアを組み合わせたテストを行ったことがなかった。 研究者はまた、いくつかの工学的な問題を発見した。 いくつかのエラーメッセージは、単に "MALFUNCTION"という用語の後に1から64までの数字が表示されただけである。ユーザーマニュアルには、エラーコードについての説明やエラーの対処方法はなく、これらのエラーが患者の安全を脅かす可能性があることを示すものすらなかった。 システムは、マシンを停止させて再起動を必要とするエラーと、単にマシンを一時停止させただけのエラー(オペレータがキーを押して同じ設定を続行できる)を区別していた。しかし、患者を危険にさらすようなエラーの中には、単に機械を一時停止させただけのものもあり、軽微なエラーが頻発したため、オペレータは機械の一時停止を解除することに慣れてしまっていた。問題の一つは、PDP-11コンピューターを制御するVT-100端末で特定のキーストロークシーケンスを入力した際に発生したものである。オペレータが「X」を押して(誤って)25 MeV光子モードを選択し、次に「カーソルアップ」で入力を編集して「E」を押して(正しく)25 MeV電子モードを選択し、「Enter」を押す。最初のキー操作から8秒以内にすべてのキーが入力される。これはマシンの経験豊富なユーザの能力の範囲内である。 この設計には、ターゲットが設置されていない状態で電子線が高エネルギーモードで動作するのを防ぐためのハードウェア・インターロックがなかった。 ソフトウェアの欠陥を隠すためにハードウェア・インターロックを使用していたセラック6とセラック20のソフトウェアを、技術者は再利用していた。これらのハードウェア安全装置にはトリガーされたことを報告する手段がないため、既存のエラーは見落とされていた。 ハードウェアは、ソフトウェアがセンサーが正しく動作しているかどうかを確認する方法を提供しなかった。テーブルポジションシステムは、セラック25の故障の最初の原因となったもので、メーカーは、それらの動作を相互にチェックするために、冗長スイッチで修正した。 ソフトウェアは、フラグ変数を非ゼロの固定値に設定するのではなく、インクリメントすることで設定していた。時折、算術オーバーフローが発生し、フラグがゼロに戻り、ソフトウェアが安全チェックをバイパスする原因となっていた。 Leveson氏は、この事件から得られる教訓は、再利用されたソフトウェアが安全だと思い込まないことだと指摘している。「ソフトウェアを再利用したり、市販のソフトウェアを使用することで安全性が向上するという素朴な思い込みがよくある。ソフトウェアモジュールを再利用したからといって、それが移行先の新しいシステムでの安全性を保証するわけではない...」。このように、ソフトウェアにコード化された思考体系を不十分な理解のまま盲信することは、カーゴ・カルト・プログラミングとして知られている。セラック25に関連したような事件に対応して、IEC 62304規格が作成された。この規格は、医療機器ソフトウェアの開発ライフサイクル標準と、経歴未確認ソフトウェア(英語版)の使用に関する具体的なガイダンスを導入している。
※この「根本原因」の解説は、「セラック25」の解説の一部です。
「根本原因」を含む「セラック25」の記事については、「セラック25」の概要を参照ください。
「根本原因」の例文・使い方・用例・文例
- 根本原因のページへのリンク