SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

安全ソフトウェアの設計

【第4回】安全ソフトウェアの実現と維持に向けた取り組み


安全を実現、維持するためには熱意、情熱、こだわりが必要

 安全を実現するには3Eが必要という教訓があります。3Eとは、次の3つです。

  1. Experience(経験)
  2. Education(教育)
  3. Enthusiasm(熱中、熱意、情熱、こだわり)

 Experience(経験)やEducation(教育)は安全に限らず、すべての技術に共通ですが、3つめのEnthusiasm(熱中、熱意、情熱、こだわり)は安全ソフトウェアの実現には特に重要です。なぜなら変更容易性が特長でもあるソフトウェアで安全をつかさどる機能や性能を維持し続けるには、さまざまな誘惑や障壁があるからです。さまざまな誘惑や障壁とは例えば次のようなことです。

  1. 納期が間に合わないからリリースしてしまおう
  2. 予算が足らないからリリースしてしまおう
  3. ソフトウェアは見えにくいから問題が表面化してから考えよう
  4. 前回のテストでは問題なったから大丈夫
  5. 前の製品では問題なかったから大丈夫

 このような誘惑や障壁に対して、商品の安全、特にソフトウェアの安全は組織の品質保証など一部門だけが頑張っても達成するのは難しいでしょう。なぜならソフトウェアは外から見えにくいので、安全機能が他のモジュールから独立したままになっているか、悪い影響を受けていないかを監視し続けることが難しく、安全を維持し続けるためには多くの関係者の熱意やこだわりがなければ達成できないからです。

 しかし、安全に対する熱意、情熱、こだわりを維持し続けるのは非常に難しく、皮肉なことにユーザーに被害を与えるような事故が起こってしまったときに初めて安全に対する取り組みの重要性が再認識されるのです。さらに、ソフトウェアは見えにくく、不具合の原因は複雑に絡み合っていることが多いため、事故が起こっても原因は「ソフトウェアのバグ」「プログラマのケアレスミス」というひと言で片付けられてしまうことがあり、再発防止の取り組みがしにくいという側面を持っています。

 だからこそ、安全ソフトウェアは可視化して、インタフェースを明確化し、その独立性を維持し続ける努力を組織的に行う必要があるのです。組込みソフトウェアは今後ますますインテリジェンスを求められるようになるため、安全ソフトウェアも他の機能と連携して複雑な要求を実現しなければならなくなるでしょう。しかし、そうであったとしても安全ソフトウェアや安全機能はできるだけ他の機能からはアイソレートするようにし、シンプルデザインを目指すべきなのです。そしてそのソフトウェア構造を可視化し、アイソレーションとシンプルデザインが維持できていることを常に確認しておくことが重要です。

次のページ
安全文化・品質文化の確立

この記事は参考になりましたか?

安全ソフトウェアの設計連載記事一覧

もっと読む

この記事の著者

酒井 由夫(サカイ ヨシオ)

1987年よりクリティカルデバイスのソフトウェア開発に20年間従事する。おもに16bitのワンチップマイコンを使った信号処理、リアルタイム組込みシステムの開発を行い、製品の仕様立案からソフトウェア開発のプロセス管理、プロジェクトマネージメント、安全性・信頼性の検証、保守、ソフトウェア技術者教育など組...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3699 2009/03/16 18:43

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー