(Translated by https://www.hiragana.jp/)
セラック25 - Wikipedia コンテンツにスキップ

セラック25

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』

セラック25Therac-25)とは、カナダ原子力げんしりょく公社こうしゃ (AECL) とフランスCGR-MeVしゃによって開発かいはつ製造せいぞうされたコンピュータ制御せいぎょ放射線ほうしゃせん療法りょうほう機器ききである[1]:425。この機械きかいは、1985ねんから1987ねんにかけてられるかぎり6つの過度かど被曝ひばく事故じここし、すくなくとも5にん患者かんじゃ死亡しぼうさせた。装置そうち制御せいぎょするオペレーティングシステム (OS) に存在そんざいする、並行へいこうプログラミングにおけるあやまり(競合きょうごう状態じょうたいともばれる)が原因げんいんで、患者かんじゃ通常つうじょうすうひゃくばいもの放射線ほうしゃせんりょうびせ、死亡しぼう重傷じゅうしょうわせることもあった[2]。これらの事故じこは、生命せいめいかかわるようなシステムにおけるソフトウェア制御せいぎょ危険きけんせいりにし、医療いりょう情報じょうほうがくソフトウェア工学こうがくにおける標準ひょうじゅんてき事例じれい研究けんきゅうのひとつとなった。さらに、技術ぎじゅつしゃ自信じしん過剰かじょう[1]:428報告ほうこくされたソフトウェアのバグ解決かいけつするための適切てきせつデューディリジェンス欠如けつじょは、技術ぎじゅつしゃ初期しょき作業さぎょうたいする過信かしんとエンドユーザーの主張しゅちょうしんじられなかったことがおおきな影響えいきょうあたえた極端きょくたんなケースとして強調きょうちょうされている。

背景はいけい[編集へんしゅう]

セラック25はAECLしゃとCGRしゃによって、医療いりょうよう線形せんけい加速器かそくきセラック6 (Therac-6) とセラック20 (Therac-20) の後継こうけいとして開発かいはつされた。前者ぜんしゃは6MeVまでのXせんを、後者こうしゃは20MeVのXせん電子でんしせん生成せいせいすることができた。セラック25はAECLによってあらたに開発かいはつされたダブルパス技術ぎじゅつもちいた電子でんし加速器かそくきであり、従来じゅうらいくらべてよりちいさなスペースで、より効率こうりつてきに25MeVまでのXせん電子でんしせん生成せいせいすることができた。

これらの機器ききはいずれもPDP-11によってコンピュータ制御せいぎょできるが、セラック25は従来じゅうらいちがって、最初さいしょからコンピュータ制御せいぎょ念頭ねんとうにおいてデザインされていた。また、従来じゅうらいではハードウェアの監視かんし装置そうち機器ききとは独立どくりつした電子でんし回路かいろ実装じっそうしていたが、セラック25ではメンテナンスせいのためにこれをソフトウェアでえた。ソフトウェアにはCGRしゃ開発かいはつしたセラック6ようのコードがおお流用りゅうようされた。またセラック20ようのコードもいくつか混入こんにゅうしていたが、このコードにはバグがあり、事故じここすいち要因よういんとなった。セラック20にはハードウェアによる安全あんぜん装置そうちがあったため事故じここらず、このバグはセラック25の事故じこ調査ちょうさ判明はんめいすることとなる。

1976ねんにはプロトタイプ製造せいぞうされ、1982ねん商業しょうぎょうてき販売はんばいされた。1983ねん危険きけんせい分析ぶんせきおこなわれたが、これはソフトウェアのバグの存在そんざい仮定かていしない、不十分ふじゅうぶんなものであった。

設計せっけい[編集へんしゅう]

この装置そうちには、2つの放射線ほうしゃせん治療ちりょうモードがある[3]

また「フィールドライト」モードもふくまれており、これにより、治療ちりょう領域りょういき可視かしこうらすことにより患者かんじゃ正確せいかく位置決いちぎめすることができるようになっていた。

問題もんだい説明せつめい[編集へんしゅう]

シミュレートされたTherac-25のユーザーインターフェース

記録きろくされた6けん事故じこは、Xせんモードで発生はっせいさせただい電流でんりゅう電子でんしせん患者かんじゃ直接ちょくせつ照射しょうしゃしたさい発生はっせいした。原因げんいんとなったのは2つのソフトウェアの不具合ふぐあいであった[3]。1つは、オペレータがXせんモードをあやまって選択せんたくしてからすぐに電子でんしモードにえた場合ばあいで、Xせんターゲットが配置はいちされていない状態じょうたい電子でんしせんがXせんモードに設定せっていされてしまったことである。もう1つは、ビームスキャナが作動さどうしていないフィールドライトモードちゅう電子でんしせん作動さどうしてしまい、ターゲットが配置はいちされていない状態じょうたい電子でんしせん作動さどうしてしまったことである。

以前いぜんのモデルでは、このような欠陥けっかんふせぐためにハードウェア・インターロックがあったが、セラック25ではそれをのぞき、ソフトウェアによる安全あんぜんせいのチェックにたよっていた。

だい電流でんりゅう電子でんしせんは、意図いとした線量せんりょうやく100ばい放射線ほうしゃせんりょうで、よりせま範囲はんい患者かんじゃたり、致死ちしりょう可能かのうせいのあるタ線たせん照射しょうしゃした。患者かんじゃのレイ・コックスは、この感覚かんかくを「強烈きょうれつ電気でんきショック」と表現ひょうげんし、悲鳴ひめいげて治療ちりょうしつからした[4]数日すうじつ放射線ほうしゃせん熱傷ねっしょうあらわれ、患者かんじゃ放射線ほうしゃせん中毒ちゅうどく症状しょうじょうしめした。3つのケースでは、負傷ふしょうした患者かんじゃのち過剰かじょう照射しょうしゃ結果けっかとして死亡しぼうした[5]

根本ねもと原因げんいん[編集へんしゅう]

委員いいんかいでは、おも原因げんいんを、特定とくていのコーディングエラー1つにしぼるのではなく、一般いっぱんてきなソフトウェアの設計せっけい開発かいはつ仕方しかたわるさにあるとしている。とくに、このソフトウェアは、クリーンな自動じどうされた方法ほうほうでテストすることが現実げんじつてき不可能ふかのうなように設計せっけいされていた[3]

事故じこ調査ちょうさした研究けんきゅうしゃは、いくつかの原因げんいん発見はっけんした。そのなかには、以下いかのような制度せいどてき原因げんいんふくまれていた。

  • AECLは、ソフトウェアコードを独立どくりつしてレビューしておらず、オペレーティングシステムをふく社内しゃないのコードに依存いぞんすることを選択せんたくした。
  • AECLは、機械きかいがどのようにしてのぞましい結果けっかすのか、どのような故障こしょうモードが存在そんざいするのかを評価ひょうかするさいに、ソフトウェアの設計せっけい考慮こうりょせず、純粋じゅんすいにハードウェアに焦点しょうてんて、ソフトウェアにはバグがないと主張しゅちょうしていた。
  • 機械きかいオペレータは、過剰かじょう照射しょうしゃ不可能ふかのうであるとAECLの担当たんとうしゃにより安心あんしんさせられた。その結果けっかとして、セラック25がおおくの事故じこ潜在せんざいてき原因げんいんであるとはかんがえないようになった[1]:428
  • AECLは、セラック25が病院びょういんてられるまで、ソフトウェアとハードウェアをわせたテストを実施じっししたことがなかった。

研究けんきゅうしゃはまた、いくつかの工学こうがくてき問題もんだい発見はっけんした。

  • いくつかのエラーメッセージは、たんに "MALFUNCTION"という用語ようごのちに1から64までの数字すうじ表示ひょうじされただけである。ユーザーマニュアルには、エラーコードについての説明せつめいやエラーの対処たいしょ方法ほうほうはなく、これらのエラーが患者かんじゃ安全あんぜんおびやかす可能かのうせいがあることをしめすものすらなかった。
  • システムは、マシンを停止ていしさせてさい起動きどう必要ひつようとするエラーと、たんにマシンを一時いちじ停止ていしさせただけのエラー(オペレータがキーをしておな設定せってい続行ぞっこうできる)を区別くべつしていた。しかし、患者かんじゃ危険きけんにさらすようなエラーのなかには、たん機械きかい一時いちじ停止ていしさせただけのものもあり、軽微けいびなエラーが頻発ひんぱつしたため、オペレータは機械きかい一時いちじ停止ていし解除かいじょすることにれてしまっていた。
    • 問題もんだいの1つは、PDP-11コンピュータを制御せいぎょするVT-100端末たんまつ特定とくていのキーストロークシーケンスを入力にゅうりょくしたさい発生はっせいしたものである。オペレータが「X」をして(あやまって)25 MeV光子こうしモードを選択せんたくし、つぎに「カーソルアップ」で入力にゅうりょく編集へんしゅうして「E」をして(まさしく)25 MeV電子でんしモードを選択せんたくし、「Enter」をす。最初さいしょのキー操作そうさから8びょう以内いないにすべてのキーが入力にゅうりょくされる。これはマシンの経験けいけん豊富ほうふなユーザーの能力のうりょく範囲はんいないである[3]
  • この設計せっけいには、ターゲットが設置せっちされていない状態じょうたい電子でんしせんこうエネルギーモードで動作どうさするのをふせぐためのハードウェア・インターロックがなかった。
  • ソフトウェアの欠陥けっかんかくすためにハードウェア・インターロックを使用しようしていたセラック6とセラック20のソフトウェアを、技術ぎじゅつしゃさい利用りようしていた。これらのハードウェア安全あんぜん装置そうちにはトリガーされたことを報告ほうこくする手段しゅだんがないため、既存きそんのエラーは見落みおとされていた。
  • ハードウェアは、ソフトウェアがセンサーがただしく動作どうさしているかどうかを確認かくにんする方法ほうほう提供ていきょうしなかった。テーブルポジションシステムは、セラック25の故障こしょう最初さいしょ原因げんいんとなったもので、メーカーは、それらの動作どうさ相互そうごにチェックするために、冗長じょうちょうスイッチで修正しゅうせいした。
  • ソフトウェアは、フラグ変数へんすうゼロの固定こてい設定せっていするのではなく、インクリメントすることで設定せっていしていた。時折ときおり算術さんじゅつオーバーフロー発生はっせいし、フラグがゼロにもどり、ソフトウェアが安全あんぜんチェックをバイパスする原因げんいんとなっていた。

ナンシー・レブソンは、この事件じけんからられる教訓きょうくんは、さい利用りようされたソフトウェアが安全あんぜんだとおもまないことだと指摘してきしている[6]。「ソフトウェアをさい利用りようしたり、市販しはんのソフトウェアを使用しようしたりすることで安全あんぜんせい向上こうじょうするだろう、なぜならばひろ利用りようされているのだから、という素朴そぼくおもみがよくある。ソフトウェアモジュールをさい利用りようしたからといって、それが移行いこうさきあたらしいシステムでの安全あんぜんせい保証ほしょうするわけではない...」[3]。このように、ソフトウェアにコードされた思考しこう体系たいけい不十分ふじゅうぶん理解りかいのまま盲信もうしんすることは、カーゴ・カルト・プログラミングとしてられている。セラック25に関連かんれんしたような事件じけん対応たいおうして、IEC 62304規格きかく作成さくせいされた。この規格きかくは、医療いりょう機器ききソフトウェアの開発かいはつライフサイクル標準ひょうじゅんと、経歴けいれき確認かくにんソフトウェア英語えいごばん使用しようかんする具体ぐたいてきなガイダンスを導入どうにゅうしている[7]

参照さんしょう項目こうもく[編集へんしゅう]

脚注きゃくちゅう[編集へんしゅう]

  1. ^ a b c Baase, Sara (2008). A Gift of Fire. Pearson Prentice Hall 
  2. ^ Leveson, Nancy G.; Turner, Clark S. (July 1993). “An Investigation of the Therac-25 Accidents”. IEEE Computer 26 (7): 18–41. doi:10.1109/MC.1993.274940. オリジナルの2004-11-28時点じてんにおけるアーカイブ。. https://web.archive.org/web/20041128024227/http://www.cs.umd.edu/class/spring2003/cmsc838p/Misc/therac.pdf. 
  3. ^ a b c d e Safeware: System Safety and Computers. Appendix A: Medical Devices: The Therac-25”. Addison-Wesley (1995ねん). 2021ねん3がつ3にち閲覧えつらん
  4. ^ Casey, Steven. Set Phasers On Stun - Design and Human Error. Aegean Publishing Company. pp. 11–16 
  5. ^ Fatal Dose - Radiation Deaths linked to AECL Computer Errors”. www.ccnr.org. 2016ねん6がつ14にち閲覧えつらん
  6. ^ Leveson, N. G. (November 2017). “The Therac-25: 30 Years Later”. Computer 50 (11): 8–11. doi:10.1109/MC.2017.4041349. ISSN 1558-0814. https://ieeexplore.ieee.org/document/8102762. 
  7. ^ Hall, Ken (June 1, 2010). “Developing Medical Device Software to IEC 62304”. MDDI - Medical Device and Diagnostic Industry. http://www.mddionline.com/article/developing-medical-device-software-iec-62304 2016ねん12月12にち閲覧えつらん. 

推薦すいせん文献ぶんけん[編集へんしゅう]