ソフトウェアFMEAの事例発表(来週)
ハードウェアの設計において、FMEA(Failure Mode Effect Analysis: 故障モード影響解析)はかなり浸透しているそうだ。FMEAは誤解を恐れず簡素化すると優先順位つき、部位別のチェックリストの作成と、そのチェックリストに基づく設計レビューだ。
製品の設計段階において、機能別、サブシステム別等の分割単位において、摩耗、劣化、オペレーションミスによる故障(故障モード)を列挙し、その故障により引き起こされる影響を想定する。想定された影響は起こりそうな頻度と起きた場合の致命度を推定し、その積をリスク値として評価する(影響解析)。リスク値の高い故障モードからレビューを実施する。
ハードウェアの故障モードの例として、鉄製の接合部分が錆びることが挙げられる。影響の例としては接合部分がはずれ特定部位が落下する。影響解析の例としては特定部位がはずれることにより人命に影響を与える可能性が稀にある、という感じだ。
ソフトウェアでも原理的にはハードウェアと同様に故障モード影響解析が可能である。ベテランの勘により指摘されるよくある間違いというのは、その人が持っている故障モードと位置づけることができる。ここで書いた大食いレビューアというのも自身がもっている故障モードを大規模なソフトウェアにあてはめて不具合を抽出しているといえるだろう。セキュリティ専門、パフォーマンス専門のレビューアがいるような組織では、それらの方が故障モードを維持管理しつつ、それに基づいた指摘をしているといえるだろう。
しかしながら公開されているソフトウェアFMEAの事例は数少なく、海外での原子力発電所のソフトウェアや宇宙航空関連システムでの適用報告など、報告されているシステムはコスト吸収力が高い傾向にある(SFMEAで検索するといくつか出てくる)。また、ソフトウェアの場合ハードウェアの摩耗や劣化という概念に直接対応する項目がなく、故障モードの列挙が難しい。そこで、保守開発や派生開発を対象(故障モードの再利用ができる)とし、コスト吸収力をあげることとし、ソフトウェアに固有の故障モードを対象として、私たちの研究グループでもソフトウェアFMEAを実施し、効果を確認することができた。
その結果を、9/4 東京白山で開催予定のソフトウェア品質シンポジウムで、山科、森崎、飯田、松本「保守開発型ソフトウェアを対象としたソフトウェアFMEAの実証的評価」で山科氏が発表する(8/23現在 共著の論文だが共著者は省略されているようだ。。)。