(57)【要約】【課題】解析対象物を構成する複数の機能ブロック及び複数の機能ブロック間の複数の信号線に基づいて解析対象物のフォールトツリーを生成する際にフォールトツリーの肥大化を抑制する。【解決手段】安全分析支援装置１０において、除外依存関係特定部２５が、複数の信号線のうちの除外対象の信号線を特定し、除外機能ブロック特定部２６が、複数の機能ブロックのうちの除外対象の機能ブロックを特定し、探索範囲検出部３１が、機能ブロック図に対し、除外対象の信号線と除外対象の機能ブロックとを含む除外対象部分を除外して得られる解析対象部分を探索範囲として表示し、循環依存検出部３３が、複数の機能ブロック間の信号の循環の発生を検出し、フォールトツリー生成部３２が、解析対象部分に関するフォールトツリーを生成し、その際、信号の循環が発生している旨をフォールトツリー上に明示する。【選択図】図２
2015049775.tif 000002
【特許請求の範囲】
【請求項１】
解析対象物の構成を示す構成情報に基づいて、当該解析対象物のフォールトツリーを生成する装置であって、
前記解析対象物を構成する複数の機能ブロック及び当該複数の機能ブロック間の複数の信号線を示す前記構成情報を記憶する記憶部と、
前記複数の機能ブロックのうちの除外対象の機能ブロック及び前記複数の信号線のうちの除外対象の信号線の少なくとも一方を含む除外対象部分を示す除外対象情報を取得する取得部と、
前記構成情報と前記除外対象情報とに基づいて、前記複数の機能ブロック及び前記複数の信号線から前記除外対象部分を除外して得られる解析対象部分に関する前記フォールトツリーを生成するフォールトツリー生成部と
を含む、装置。
【請求項２】
前記フォールトツリーのトップ事象を受け付ける受付部を更に含み、
前記取得部は、前記複数の機能ブロックのうちの前記トップ事象に影響しない動作を行う機能ブロック、及び、前記複数の信号線のうちの前記トップ事象に影響しない信号を伝搬させる信号線の少なくとも一方を含む前記除外対象部分を示す前記除外対象情報を取得する、請求項１の装置。
【請求項３】
前記取得部は、前記複数の機能ブロックのうちの安全のために設けられた機能ブロックを含む前記除外対象部分を示す前記除外対象情報を取得する、請求項１の装置。
【請求項４】
前記取得部は、前記複数の機能ブロックに含まれる第１の機能ブロック、第２の機能ブロック及び第３の機能ブロックであって、当該第１の機能ブロックに当該第３の機能ブロックへの信号を伝搬させる信号線が接続され、当該第２の機能ブロックに当該第３の機能ブロックからの信号を伝搬させる信号線が接続された第１の機能ブロック、第２の機能ブロック及び第３の機能ブロックが存在する場合に、当該第３の機能ブロックを含む前記除外対象部分を示す前記除外対象情報を取得する、請求項１の装置。
【請求項５】
前記構成情報に基づいて、前記複数の機能ブロック及び前記複数の信号線を図形で表す機能ブロック図を生成する機能ブロック図生成部と、
前記除外対象情報に基づいて、前記機能ブロック図に対し、前記解析対象部分と前記除外対象部分とを区別するための指標を付加する付加部と
を含む、請求項１乃至請求項４の何れかに記載の装置。
【請求項６】
解析対象物の構成を示す構成情報に基づいて、当該解析対象物のフォールトツリーを生成する装置であって、
前記解析対象物を構成する複数の機能ブロック及び当該複数の機能ブロック間の複数の信号線を示す前記構成情報を記憶する記憶部と、
前記複数の機能ブロックに含まれる第１の機能ブロック、第２の機能ブロック及び第３の機能ブロックであって、当該第１の機能ブロックに当該第３の機能ブロックへの信号を伝搬させる信号線が接続され、当該第２の機能ブロックに当該第３の機能ブロックからの信号を伝搬させる信号線が接続された第１の機能ブロック、第２の機能ブロック及び第３の機能ブロックが存在するかどうかを判定する判定部と、
前記第１の機能ブロック、前記第２の機能ブロック及び前記第３の機能ブロックが存在すると前記判定部により判定された場合に、当該第１の機能ブロックと当該第２の機能ブロックとの間で信号の循環が発生しているために除外対象となる当該第３の機能ブロックを含む除外対象部分を示す除外対象情報を取得する取得部と、
前記第１の機能ブロック、前記第２の機能ブロック及び前記第３の機能ブロックが存在すると前記判定部により判定された場合に、前記構成情報と前記除外対象情報とに基づいて、前記複数の機能ブロック及び前記複数の信号線に関する、前記信号の循環が発生している旨を明示した前記フォールトツリーを生成した後、当該信号の循環を除外する旨がユーザから指示されると、前記構成情報と前記除外対象情報とに基づいて、前記複数の機能ブロック及び前記複数の信号線から前記除外対象部分を除外して得られる解析対象部分に関する前記フォールトツリーを生成するフォールトツリー生成部と
を含む、装置。
【請求項７】
解析対象物の構成を示す構成情報に基づいて、当該解析対象物のフォールトツリーを生成する方法であって、
前記解析対象物を構成する複数の機能ブロック及び当該複数の機能ブロック間の複数の信号線を示す前記構成情報を記憶するステップと、
前記複数の機能ブロックのうちの除外対象の機能ブロック及び前記複数の信号線のうちの除外対象の信号線の少なくとも一方を含む除外対象部分を示す除外対象情報を取得するステップと、
前記構成情報と前記除外対象情報とに基づいて、前記複数の機能ブロック及び前記複数の信号線から前記除外対象部分を除外して得られる解析対象部分に関する前記フォールトツリーを生成するステップと
を含む、方法。
【請求項８】
解析対象物の構成を示す構成情報に基づいて、当該解析対象物のフォールトツリーを生成する装置として、コンピュータを機能させるプログラムであって、
前記コンピュータを、
前記解析対象物を構成する複数の機能ブロック及び当該複数の機能ブロック間の複数の信号線を示す前記構成情報を記憶する記憶部と、
前記複数の機能ブロックのうちの除外対象の機能ブロック及び前記複数の信号線のうちの除外対象の信号線の少なくとも一方を含む除外対象部分を示す除外対象情報を取得する取得部と、
前記構成情報と前記除外対象情報とに基づいて、前記複数の機能ブロック及び前記複数の信号線から前記除外対象部分を除外して得られる解析対象部分に関する前記フォールトツリーを生成するフォールトツリー生成部と
して機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フォールトツリーを生成する装置及び方法に関する。特に、本発明は、解析対象物の構成を示す構成情報に基づいて解析対象物のフォールトツリーを生成する装置及び方法に関する。
【背景技術】
【０００２】
解析対象物のフォールトツリーを自動生成する技術は知られている（例えば、非特許文献１、非特許文献２参照）。非特許文献１は、状態遷移システムのためのフォールトツリーの機械的な生成を開示し、非特許文献２は、フォールトツリー図を構築するための使い易いインターフェースを提供する「ＦａｕｌｔＴｒｅｅ＋」を開示する。
【０００３】
また、ツリー構造のデータにおいて計算量を削減する技術も知られている（例えば、特許文献１、特許文献２参照）。
【０００４】
特許文献１は、故障の木の最小カットセット（MCS）を評価するシステムであって、単純化ルールの集合に基づいて、複合k/nゲートを基本k/nゲートに減ずる複合k/nゲート単純化手段と、最小化ルールの集合に基づいて、基本k/nゲートを最小k/nゲートに減ずる基本k/nゲート最小化手段とを有する評価システムを開示する。
【０００５】
特許文献２は、入力手段から入力された事象の初期条件を読み込む読込ステップと、初期条件に基づき初期の分岐を生成する分岐生成ステップと、分岐の評価値を計算する評価値計算ステップと、隣接する分岐の評価値の差を計算する評価値差計算ステップと、評価値差計算ステップで得られた評価値差の最も大きい分岐の間に新しい分岐を追加する分岐追加ステップと、分岐追加ステップで追加された新しい分岐を備えたツリー構造から得られる情報を出力する出力ステップとを備える、状況を分類するツリー構造の自動生成プログラムを開示する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１１３５８２号公報
【特許文献２】特開２０１１−２３８０３１号公報
【非特許文献】
【０００７】
【非特許文献１】The Mechanical Generation of Fault Trees for State Transition Systems、［online］、［平成２５年８月２日検索］、インターネット＜URL：http://www.cs.man.ac.uk/~banach/retrenchment/SafetyTutorial/FaultTrees.TUTORIAL.pdf＞
【非特許文献２】Isograph - Fault Tree Analysis - Software - Reliability Workbench - Fault Tree Analysis - Diagram Construction、［online］、［平成２５年８月１５日検索］、インターネット＜URL：http://www.isograph-software.com/2011/software/reliability-workbench/fault-tree-analysis/diagram-construction＞
【発明の概要】
【発明が解決しようとする課題】
【０００８】
このように、解析対象物のフォールトツリーを自動生成する技術や、ツリー構造のデータにおいて計算量を削減する技術は、既に知られていた。
【０００９】
しかしながら、非特許文献１、２の技術は、解析対象物を構成する複数の機能ブロック及び複数の機能ブロック間の複数の信号線に基づいて解析対象物のフォールトツリーを生成するものではなく、特許文献１、２の技術は、解析対象物のフォールトツリーを生成するものですらなかった。従って、これらの技術の何れも、解析対象物を構成する複数の機能ブロック及び複数の機能ブロック間の複数の信号線のうちの除外対象部分を除外して得られた解析対象部分に関するフォールトツリーを生成するものではなく、これらの技術によっては、解析対象物を構成する複数の機能ブロック及び複数の機能ブロック間の複数の信号線に基づいて解析対象物のフォールトツリーを生成する際にフォールトツリーの肥大化を抑制することができないという問題点があった。
【００１０】
本発明の目的は、解析対象物を構成する複数の機能ブロック及び複数の機能ブロック間の複数の信号線に基づいて解析対象物のフォールトツリーを生成する際にフォールトツリーの肥大化を抑制することにある。
【課題を解決するための手段】
【００１１】
かかる目的のもと、本発明は、解析対象物の構成を示す構成情報に基づいて、解析対象物のフォールトツリーを生成する装置であって、解析対象物を構成する複数の機能ブロック及び複数の機能ブロック間の複数の信号線を示す構成情報を記憶する記憶部と、複数の機能ブロックのうちの除外対象の機能ブロック及び複数の信号線のうちの除外対象の信号線の少なくとも一方を含む除外対象部分を示す除外対象情報を取得する取得部と、構成情報と除外対象情報とに基づいて、複数の機能ブロック及び複数の信号線から除外対象部分を除外して得られる解析対象部分に関するフォールトツリーを生成するフォールトツリー生成部とを含む、装置を提供する。
【００１２】
ここで、この装置は、フォールトツリーのトップ事象を受け付ける受付部を更に含み、取得部は、複数の機能ブロックのうちのトップ事象に影響しない動作を行う機能ブロック、及び、複数の信号線のうちのトップ事象に影響しない信号を伝搬させる信号線の少なくとも一方を含む除外対象部分を示す除外対象情報を取得する、ものであってもよい。
【００１３】
また、取得部は、複数の機能ブロックのうちの安全のために設けられた機能ブロックを含む除外対象部分を示す除外対象情報を取得する、ものであってもよい。
【００１４】
更に、取得部は、複数の機能ブロックに含まれる第１の機能ブロック、第２の機能ブロック及び第３の機能ブロックであって、第１の機能ブロックに第３の機能ブロックへの信号を伝搬させる信号線が接続され、第２の機能ブロックに第３の機能ブロックからの信号を伝搬させる信号線が接続された第１の機能ブロック、第２の機能ブロック及び第３の機能ブロックが存在する場合に、第３の機能ブロックを含む除外対象部分を示す除外対象情報を取得する、ものであってもよい。
【００１５】
更にまた、この装置は、構成情報に基づいて、複数の機能ブロック及び複数の信号線を図形で表す機能ブロック図を生成する機能ブロック図生成部と、除外対象情報に基づいて、機能ブロック図に対し、解析対象部分と除外対象部分とを区別するための指標を付加する付加部とを含む、ものであってよい。
【００１６】
また、本発明は、解析対象物の構成を示す構成情報に基づいて、解析対象物のフォールトツリーを生成する装置であって、解析対象物を構成する複数の機能ブロック及び複数の機能ブロック間の複数の信号線を示す構成情報を記憶する記憶部と、複数の機能ブロックに含まれる第１の機能ブロック、第２の機能ブロック及び第３の機能ブロックであって、第１の機能ブロックに第３の機能ブロックへの信号を伝搬させる信号線が接続され、第２の機能ブロックに第３の機能ブロックからの信号を伝搬させる信号線が接続された第１の機能ブロック、第２の機能ブロック及び第３の機能ブロックが存在するかどうかを判定する判定部と、第１の機能ブロック、第２の機能ブロック及び第３の機能ブロックが存在すると判定部により判定された場合に、第１の機能ブロックと第２の機能ブロックとの間で信号の循環が発生しているために除外対象となる第３の機能ブロックを含む除外対象部分を示す除外対象情報を取得する取得部と、第１の機能ブロック、第２の機能ブロック及び第３の機能ブロックが存在すると判定部により判定された場合に、構成情報と除外対象情報とに基づいて、複数の機能ブロック及び複数の信号線に関する、信号の循環が発生している旨を明示したフォールトツリーを生成した後、信号の循環を除外する旨がユーザから指示されると、構成情報と除外対象情報とに基づいて、複数の機能ブロック及び複数の信号線から除外対象部分を除外して得られる解析対象部分に関するフォールトツリーを生成するフォールトツリー生成部とを含む、装置も提供する。
【００１７】
更に、本発明は、解析対象物の構成を示す構成情報に基づいて、解析対象物のフォールトツリーを生成する方法であって、解析対象物を構成する複数の機能ブロック及び複数の機能ブロック間の複数の信号線を示す構成情報を記憶するステップと、複数の機能ブロックのうちの除外対象の機能ブロック及び複数の信号線のうちの除外対象の信号線の少なくとも一方を含む除外対象部分を示す除外対象情報を取得するステップと、構成情報と除外対象情報とに基づいて、複数の機能ブロック及び複数の信号線から除外対象部分を除外して得られる解析対象部分に関するフォールトツリーを生成するステップとを含む、方法も提供する。
【００１８】
更にまた、本発明は、解析対象物の構成を示す構成情報に基づいて、解析対象物のフォールトツリーを生成する装置として、コンピュータを機能させるプログラムであって、コンピュータを、解析対象物を構成する複数の機能ブロック及び複数の機能ブロック間の複数の信号線を示す構成情報を記憶する記憶部と、複数の機能ブロックのうちの除外対象の機能ブロック及び複数の信号線のうちの除外対象の信号線の少なくとも一方を含む除外対象部分を示す除外対象情報を取得する取得部と、構成情報と除外対象情報とに基づいて、複数の機能ブロック及び複数の信号線から除外対象部分を除外して得られる解析対象部分に関するフォールトツリーを生成するフォールトツリー生成部として機能させる、プログラムも提供する。
【発明の効果】
【００１９】
本発明によれば、解析対象物を構成する複数の機能ブロック及び複数の機能ブロック間の複数の信号線に基づいて解析対象物のフォールトツリーを生成する際にフォールトツリーの肥大化を抑制することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の形態における安全分析支援装置のハードウェア構成例を示した図である。
【図２】本発明の実施の形態における安全分析支援装置の機能構成例を示したブロック図である。
【図３】本発明の実施の形態において設計者が画面上で作成する機能ブロック図の一例を示した図である。
【図４】本発明の実施の形態において機能ブロック図の機能ブロック間に設定された依存関係の情報を表す依存関係表の一例を示した図である。
【図５】本発明の実施の形態において設計者が除外指定の対象とするＦＴＡトップ事象を選択するために操作するＦＴＡ実行パネルの一例を示した図である。
【図６】本発明の実施の形態において設計者が除外したい依存関係を指定するために操作する機能ブロック分析パネルの一例を示した図である。
【図７】本発明の実施の形態において設計者が除外したい機能ブロックを指定するために操作する機能ブロック分析パネルの一例を示した図である。
【図８】本発明の実施の形態において設計者が除外したい機能ブロックを指定するために操作する機能ブロック分析パネルの一例を示した図である。
【図９】本発明の実施の形態において探索範囲の検出結果を反映させた機能ブロック図の一例を示した図である。
【図１０】本発明の実施の形態において探索範囲の検出結果を反映させた機能ブロック図の一例を示した図である。
【図１１】本発明の実施の形態において生成されるフォールトツリーの一例を示した図である。
【図１２】本発明の実施の形態において生成されるフォールトツリーの一例を示した図である。
【図１３】本発明の実施の形態において循環依存の発生が表示された機能ブロック図の一例を示した図である。
【図１４】本発明の実施の形態において循環依存の発生が表示されたフォールトツリーの一例を示した図である。
【図１５】本発明の実施の形態において循環依存を発生させた機能ブロックを除外指定した場合の探索範囲の検出結果を反映させた機能ブロック図の一例を示した図である。
【図１６】本発明の実施の形態において循環依存を発生させた機能ブロックを除外指定した場合に生成されるフォールトツリーの一例を示した図である。
【図１７】本実施の形態における安全分析支援装置のユーザインターフェース部の動作例を示したフローチャートである。
【図１８−１】本実施の形態における安全分析支援装置のフォールトツリー生成部の動作例を示したフローチャートである。
【図１８−２】本実施の形態における安全分析支援装置のフォールトツリー生成部の動作例を示したフローチャートである。
【発明を実施するための形態】
【００２１】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
【００２２】
［本実施の形態の背景］
近年の自動車部品の電子化、ネットワーク化、複雑化を背景に、車載電子機能の安全性を保証するための国際規格ＩＳＯ２６２６２等が公開され、車載電子部品、車載電子機器の設計における機能安全の確保が重要な課題となっている。規格に適合する車両を開発するには、設計する電子機器の故障分析が必須であり、故障発生時の危険度に応じた故障率を達成するため、各種の安全機構を設計し組み込むことが求められている。
【００２３】
ここで、故障分析の手法として、フォールトツリー分析（ＦＴＡ：Fault Tree Analysis）がある。ＦＴＡは、ＪＩＳ Ｚ８１１５：２０００では、「下位アイテム又は外部事象、若しくはこれらの組み合わせのフォールトモードのいずれが、定められたフォールトモードを発生させ得るか決めるための、フォールトの木形式で表された解析」と定義されている。また、ＦＴＡは、概念としては、「望ましくない事象（故障や事故等）」を出発点（頂点）とし、その要因となるフォールトを階層的に整理してフォールトツリーを作成し、単独のフォールト発生でトップの「望ましくない事象」が発生しないように安全機構の追加を検討するトップダウンの分析手法である。具体的には、フォールトツリーは、トップの「望ましくない事象」（以下、「ＦＴＡトップ事象」という）から順に階層的に、要因となるフォールトを表すノード（以下、「要因ノード」という）を、単独の事象の成立で上位の事象が成立する条件（ＯＲ条件）、又は、複数の事象が同時に成立して初めて上位の事象が成立する条件（ＡＮＤ条件）で結合することにより、作成される。
【００２４】
ところが、フォールトツリーの作成にあたっては、あるフォールト（故障や誤動作）の要因となる下位のフォールトにどのようなものがあるかを漏れなく抽出して分析できる経験や専門性が必要である。従って、抜け漏れが発生することがあり、その網羅性を示したり検証したりするのも困難である。また、ＩＳＯ２６２６２の規格に適合するには、電子機器の出力部（アクチュエータ）が複数あり、各出力部に求められる安全性のレベルが異なる場合には、各出力部に関わる制御部（マイコン、コントローラ）や入力部（センサ、スイッチ）を特定して依存関係を明確にした上で、安全機構の要否を検討する必要がある。更に、上流のシステム設計段階での試行錯誤や、工程が進んでからの設計変更等で電子機器の機能ブロックや部品の配置を変更する都度、フォールトツリーを見直したり作り直したりする作業が発生する。
【００２５】
こうしたことから、コンピュータプログラムを用いて、機能ブロック図から自動的にフォールトツリーを生成することが考えられる。
【００２６】
しかしながら、コンセプトレベルの機能ブロック図（ＩＳＯ２６２６２で求められている初期アーキテクチャ想定図等）では、機能ブロックの機能粒度が大きく、入力、処理論理、出力の関係が不明確であり、１つの機能ブロックに多くの入出力が割り当てられた状態で設計が始まり、徐々に詳細化するのが一般的である。このため、機能ブロック図（又はこれに相当する依存関係表）から機械的にフォールトツリーを作成すると、ＦＴＡトップ事象に影響しないものまでフォールトツリーに混入することになり、フォールトツリー上の分析対象ノードが増大し、フォールト要因の絞り込み作業（発生しない要因の除外作業）が増大するという課題がある。
【００２７】
また、コンセプトレベルの機能ブロック図では、機能ブロックの詳細設計が行われていないため、複数の機能ブロックに跨る依存関係の循環が発生する場合がある。機械的なフォールトツリーの生成で依存関係の循環を検出した場合、循環の発生原因に応じて機能ブロックを分割したり、機能ブロック内の論理処理を修正したりして、再度フォールトツリーを生成することになるので、手間がかかるという課題がある。また、機能ブロック図が変更されるので、別のＦＴＡトップ事象に対して生成したフォールトツリーがあれば、変更した機能ブロック図でのフォールトツリーの再生成及び再分析が必要になる。
【００２８】
更に、ＩＳＯ２６２６２で推奨される安全分析では、安全機構を除いた分析が必要となる。通常、過去の経験に基づいてコンセプトレベルの機能ブロック図を作成した場合、故障診断や出力信号の確認（フィードバック）といった仕組みも混在した形で描かれる。この機能ブロック図から、単純な機能ブロックの依存関係のみに基づいてフォールトツリーを生成すると、安全機構を含んだフォールトツリーが作成されてしまい、安全機構に関連する要因ノードの除外に手間がかかるという課題がある。特に１つの安全機構がフォールトツリーでは複数箇所に登場するため、規模が大きく複雑な機能ブロック図ほど安全機構が多数登場することになる。
【００２９】
更にまた、検証者（レビューア）は、機能ブロック図から機械的にフォールトツリーを生成する場合、フォールトツリー上で上位フォールトの要因とならない下位フォールトの除外理由を確認（レビュー）する必要がある。この場合、１つの機能ブロックが依存関係によってはフォールトツリー上に繰り返し登場し、同じ除外理由が記載されることが頻繁に発生するため、検証に時間がかかるという課題がある。また、除外理由の妥当性は機能ブロック図のどの部分で判断できるのかを特定するのが困難であるという課題がある。
【００３０】
そこで、本実施の形態では、コンセプトレベル（上位レベル）の機能ブロック図からフォールトツリーを生成して分析し、その分析結果を機能ブロック図に反映して再度フォールトツリーを生成する作業を繰り返し、最終的にＦＴＡトップ事象に影響を与える機能ブロックに絞り込んだフォールトツリーを完成させる作業を、これらの課題を解決することによって効率化する安全分析支援装置を提供する。また、この安全分析支援装置は、作業結果として保管された絞り込み理由を、機能ブロック図とフォールトツリーに加えて確認することで、検証者による検証作業も容易にする。
【００３１】
［安全分析支援装置のハードウェア構成］
図１は、本実施の形態における安全分析支援装置１０のハードウェア構成例を示した図である。図示するように、安全分析支援装置１０は、演算手段であるＣＰＵ（Central Processing Unit）１０ａと、Ｍ／Ｂ（マザーボード）チップセット１０ｂを介してＣＰＵ１０ａに接続されたメインメモリ１０ｃと、同じくＭ／Ｂチップセット１０ｂを介してＣＰＵ１０ａに接続された表示機構１０ｄとを備える。また、Ｍ／Ｂチップセット１０ｂには、ブリッジ回路１０ｅを介して、ネットワークインターフェイス１０ｆと、磁気ディスク装置（ＨＤＤ）１０ｇと、音声機構１０ｈと、キーボード／マウス１０ｉと、フレキシブルディスクドライブ１０ｊとが接続されている。
【００３２】
尚、図１において、各構成要素は、バスを介して接続される。例えば、ＣＰＵ１０ａとＭ／Ｂチップセット１０ｂの間や、Ｍ／Ｂチップセット１０ｂとメインメモリ１０ｃの間は、ＣＰＵバスを介して接続される。また、Ｍ／Ｂチップセット１０ｂと表示機構１０ｄとの間は、ＡＧＰ（Accelerated Graphics Port）を介して接続されてもよいが、表示機構１０ｄがＰＣＩ Ｅｘｐｒｅｓｓ対応のビデオカードを含む場合、Ｍ／Ｂチップセット１０ｂとこのビデオカードの間は、ＰＣＩ Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バスを介して接続される。また、ブリッジ回路１０ｅと接続する場合、ネットワークインターフェイス１０ｆについては、例えば、ＰＣＩ Ｅｘｐｒｅｓｓを用いることができる。また、磁気ディスク装置１０ｇについては、例えば、シリアルＡＴＡ（AT Attachment）、パラレル転送のＡＴＡ、ＰＣＩ（Peripheral Components Interconnect）を用いることができる。更に、キーボード／マウス１０ｉ、及び、フレキシブルディスクドライブ１０ｊについては、ＵＳＢ（Universal Serial Bus）を用いることができる。
【００３３】
［安全分析支援装置の機能構成］
図２は、本実施の形態における安全分析支援装置１０の機能構成例を示したブロック図である。図示するように、安全分析支援装置１０は、機能ブロック図生成部２１と、機能ブロック図記憶部２２と、探索起点特定部２３と、トップ事象特定部２４と、除外依存関係特定部２５と、除外機能ブロック特定部２６と、除外情報記憶部２７とを備えている。また、探索範囲検出部３１と、フォールトツリー生成部３２と、循環依存検出部３３とを備えている。更に、ユーザインターフェース部４０を備えている。
【００３４】
機能ブロック図生成部２１は、電子機器等の設計において設計者が機能ブロック図を表示機構１０ｄ（図１参照）上で作成すると、その機能ブロック図に関する情報を生成する。このとき設計者が作成する機能ブロック図の一例を図３に示す。この機能ブロック図は、「センサ１」及び「センサ２」からの信号により「モータ１」及び「モータ２」が動作し、「停止スイッチ」からの信号により「モータ１」が停止する機構に関するものである。
【００３５】
機能ブロック図記憶部２２は、機能ブロック図生成部２１が生成した機能ブロック図に関する情報を記憶する。ここで、機能ブロック図に関する情報としては、機能ブロック間に設定された依存関係の情報（信号や通信メッセージ等に相当）を記憶する。このような依存関係の情報を表形式で表した依存関係表の一例を図４に示す。この依存関係表では、例えば、「センサ１」の接続先機能ブロックＩＤが「ＣＴＬ−１」であり、この機能ブロックＩＤを持つ機能ブロックが「センサ入力判定部」であり、その接続先機能ブロックＩＤが「ＣＴＬ−３」及び「ＣＴＬ−４」であり、これらの機能ブロックＩＤを持つ機能ブロックがそれぞれ「モータ１出力制御部」及び「モータ２出力制御部」であり、それらの接続先機能ブロックＩＤがそれぞれ「ＭＴＲ−１」及び「ＭＴＲ−２」であり、これらの機能ブロックＩＤを持つ機能ブロックがそれぞれ「モータ１」及び「モータ２」であることが示されている。本実施の形態では、解析対象物の構成を示す構成情報の一例として、機能ブロック図に関する情報を用いており、構成情報を記憶する記憶部の一例として、機能ブロック図記憶部２２を設けている。
【００３６】
探索起点特定部２３は、フォールトツリー生成時の依存関係探索処理の起点として、電子機器等の外界に作用する最終段の機能ブロックを、設計者が機能ブロック図上でキーボード／マウス１０ｉ（図１参照）等を用いて選択する操作を行うと、この依存関係探索処理の起点となる機能ブロック（以下、「探索起点機能ブロック」という）を特定する。
【００３７】
トップ事象特定部２４は、同一の機能ブロック図で複数のＦＴＡトップ事象を分析する場合、設計者が除外指定の対象とするＦＴＡトップ事象を選択すると、このＦＴＡトップ事象を特定する。例えば、車両のエアバッグシステムで「衝突したときにエアバッグが展開しない」というＦＴＡトップ事象及び「衝突していないのにエアバッグが展開する」というＦＴＡトップ事象に対する安全機構を設計する場合、展開指示信号の生成に関わる機能ブロックと展開禁止信号の生成に関わる機能ブロックとには差異があり、２つのＦＴＡトップ事象に対して共通に使われる機能ブロックと、２つのＦＴＡトップ事象の何れか一方にしか関与しない機能ブロックとがあるので、このようにＦＴＡトップ事象を選択させている。本実施の形態では、フォールトツリーのトップ事象を受け付ける受付部の一例として、トップ事象特定部２４を設けている。
【００３８】
ここで、設計者が除外指定の対象とするＦＴＡトップ事象を選択するために操作するＦＴＡ実行パネルの一例を図５に示す。このＦＴＡ実行パネルでは、リストボックス４１１において、「停止スイッチが押されてもモータ１が止まらない」及び「モータ１が停止しているにも関わらずモータ２が動き続ける」の何れかをＦＴＡトップ事象として選択できるようになっている。
【００３９】
除外依存関係特定部２５は、設計者がフォールトツリー生成時の依存関係探索処理で除外したい依存関係を機能ブロックごとに指定し、その理由を入力する操作を行うと、この依存関係を除外依存関係として特定する。ＦＴＡトップ事象に影響しない依存関係の例としては、異常発生時に通常安全を確保する側の制御を行うためのモータ停止信号等がある。例えば、ＦＴＡトップ事象が「車両の衝突時に燃料噴射が続く」である場合、燃料噴射を止めるために手動でモータを停止させるモータ停止信号は、モータを停止させる機能しか持っていないため、ＦＴＡトップ事象の侵害には関与しないからである。従って、このモータ停止信号の生成に関連する機能ブロックの探索を除外することは、フォールトツリーを小さくするために有効である。通常、コンセプトレベルの機能ブロック図の設計では、詳細な内部論理（機能分解、機能階層化、入力値に対する出力値の演算処理仕様）は未検討であることが多いので、本実施の形態では、機能ブロックの入力の１つ１つ（ハードウェア信号やソフトウェアメッセージ）に対して、ＦＴＡトップ事象への影響の有無を内部論理の詳細化前に検討して除外する手段を提供している。本実施の形態では、除外対象部分を示す除外対象情報を取得する取得部の一例として、除外依存関係特定部２５を設けている。
【００４０】
ここで、設計者が除外したい依存関係を指定するために操作する機能ブロック分析パネルの一例を図６に示す。この機能ブロック分析パネルでは、表示欄４２１に表示された「スイッチ判定部」について、リストボックス４２４で選択された「停止スイッチが押されてもモータ１が止まらない」に影響しない依存関係（入力）として、リストボックス４２７で「スイッチＯＦＦ状態」が除外指定されている。尚、この機能ブロック分析パネルは、リストボックス４２４でＦＴＡトップ事象を切り替えると、リストボックス４２７やテキストボックス４２８の内容が切り替わるようになっている。
【００４１】
除外機能ブロック特定部２６は、設計者がフォールトツリー生成時の依存関係探索処理で除外したい機能ブロックを指定し、その理由を入力する操作を行うと、この機能ブロックを除外機能ブロックとして特定する。ここで、除外したい機能ブロックを指定する方法としては、安全機構としてＦＴＡトップ事象に関係なく機能ブロックを指定する方法と、ＦＴＡトップ事象に応じて機能ブロックを指定する方法とがある。特に、前者は、機能ブロック自体をＦＴＡの対象から除外する典型例である。従って、機能ブロック図に基づいてＦＴＡを実施する場合、安全機構を識別する必要がある。例えば、二重化されているセンサ入力や、ある機能ブロックの動作を監視するウォッチドッグ機能を安全機構と識別せずにフォールトツリーを生成した場合を考える。この場合、それぞれが上位の要因ノードにＯＲ条件でぶら下がることになり、安全機構に対する更なる安全機構を検討するような過剰設計となり、フォールトツリーの肥大化を招くことになってしまう。ハードウェアの回路ブロック図や機能仕様が詳細化されたソフトウェア機能ブロック図を用いたＦＴＡは、故障や不具合の原因分析で要因を網羅的に抽出することを主目的とするが、本実施の形態では、安全機構を設計するために、機能ブロック図の一部を安全機構として除外してフォールトツリーを生成する手段を提供している。本実施の形態では、除外対象部分を示す除外対象情報を取得する取得部の一例として、除外機能ブロック特定部２６を設けている。
【００４２】
ここで、設計者が除外したい機能ブロックを指定するために操作する機能ブロック分析パネルの一例を図７及び図８に示す。図７の機能ブロック分析パネルでは、表示欄４２１に表示された「センサ２」が、チェックボックス４２２にチェックされることにより、安全機構として除外指定されている。尚、安全機構はＦＴＡトップ事象に関係なく指定されるので、図７の機能ブロック分析パネルでは、チェックボックス４２２がチェックされると、リストボックス４２４内はグレーアウトされている。また、図８の機能ブロック分析パネルでは、表示欄４２１に表示された「スイッチ判定部」が、チェックボックス４２５にチェックされることにより、リストボックス４２４で選択された「モータ１が停止しているにも関わらずモータ２が動き続ける」に影響しない機能ブロックとして除外指定されている。尚、図８の機能ブロック分析パネルは、リストボックス４２４でＦＴＡトップ事象を切り替えると、リストボックス４２７やテキストボックス４２８の内容が切り替わるようになっている。
【００４３】
除外情報記憶部２７は、探索起点特定部２３が特定した探索起点機能ブロックに関する情報と、トップ事象特定部２４が特定したＦＴＡトップ事象に関する情報と、除外依存関係特定部２５が特定した除外依存関係に関する情報と、除外機能ブロック特定部２６が特定した除外機能ブロックに関する情報とを含む除外情報を記憶する。
【００４４】
探索範囲検出部３１は、除外情報記憶部２７に記憶された除外情報に基づいて、依存関係探索処理で探索される範囲を検出する。具体的には、除外指定された機能ブロックごとの依存関係（入力信号、入力メッセージ）が除外依存関係特定部２５により特定され、除外指定された機能ブロック（安全機構としてＦＴＡトップ事象に関係なく除外指定された機能ブロック又はＦＴＡトップ事象に応じて除外指定された機能ブロック）が除外機能ブロック特定部２６により特定されると、これらの除外指定に従ったＦＴＡの探索範囲を検出する。
【００４５】
ここで、探索範囲の検出結果を反映させた機能ブロック図の一例を図９及び図１０に示す。図９は、機能ブロック及び依存関係の除外指定を行わなかった場合の機能ブロック図の例を示しており、全てのセンサ及びその信号と停止スイッチ及びその信号が探索対象となっている。一方、図１０は、機能ブロック及び依存関係の除外指定を行った場合の機能ブロック図の例を示しており、「センサ２」及びその「センサ２値」信号と「停止スイッチ」及びその「スイッチＯＦＦ状態」信号が探索対象から除外されている。
【００４６】
フォールトツリー生成部３２は、機能ブロック図記憶部２２に記憶された機能ブロック図に関する情報と、除外情報記憶部２７に記憶された除外情報とに基づいて、フォールトツリーを生成する。具体的には、機能ブロック間の依存関係と、除外依存関係特定部２５及び除外機能ブロック特定部２６が特定した除外部分とに基づいて、トップ事象特定部２４が特定したＦＴＡトップ事象ごとに、探索起点特定部２３が特定した探索起点機能ブロックを起点としてフォールトツリーを生成する。その際、除外指定された依存関係及び機能ブロックを探索対象から除外して、依存関係探索処理を行う。
【００４７】
ここで、フォールトツリー生成部３２が生成するフォールトツリーの一例を図１１及び図１２に示す。図１１は、機能ブロック及び依存関係の除外指定を行わなかった場合のフォールトツリーの例を示しており、要因ノード数は２９個である。一方、図１２は、機能ブロックの除外指定として「センサ２」の除外指定を行い、依存関係の除外指定として「スイッチＯＦＦ状態」の除外指定を行った場合のフォールトツリーの例を示しており、要因ノード数は２２個である。即ち、図１２では、「「入力判定結果」信号の誤り」の下位の要因ノードのうち、「「センサ２値」信号の誤り」に関する要因ノードが除去され、「「停止要求」信号の誤り」の下位の要因ノードのうち、「「スイッチＯＦＦ状態」信号の誤り」に関する要因ノードが除去されている。尚、図１１及び図１２のフォールトツリーでは、機能ブロック自体の故障を示す要因ノードにおいて、図面作成の都合上、「「モータ１出力制御部」の故障」等と記述するに留めたが、より具体的に「「モータ１出力制御部」の出力値演算処理の誤り」等と記述してもよい。また、入力信号の誤りを示す要因ノードにおいて、括弧内に、図面作成の都合上、「「モータ１出力制御部」の故障」のようにその入力信号を出力する機能ブロックの故障のみを記述したが、通信路の故障を追加で記述してもよい。
【００４８】
循環依存検出部３３は、フォールトツリー生成時の依存関係探索処理で、循環する依存関係（以下、「循環依存」という）を検出し、循環依存を検出した場合は分岐の探索を終了する。安全機構の除外指定が漏れているとフィードバック信号で循環依存が発生するので、除外指定の再検討に有効である。本実施の形態では、複数の機能ブロックに含まれる第１の機能ブロック、第２の機能ブロック及び第３の機能ブロックであって、第１の機能ブロックに第３の機能ブロックへの信号を伝搬させる信号線が接続され、第２の機能ブロックに第３の機能ブロックからの信号を伝搬させる信号線が接続された第１の機能ブロック、第２の機能ブロック及び第３の機能ブロックが存在するかどうかを判定する判定部の一例として、循環依存検出部３３を設けている。
【００４９】
ここで、フィードバック信号監視による循環依存が発生している機能ブロック図の一例を図１３に示す。この機能ブロック図では、「モータ出力制御部」からの「出力フィードバック」信号が「出力監視部」に入力され、「出力監視部」が「出力異常」信号を「制御演算部」に通知し、「制御演算部」が「出力指令値」信号を「モータ出力制御部」に通知する循環が発生している。この場合、「モータ出力制御部」は上記第１の機能ブロックの一例であり、「制御演算部」は上記第２の機能ブロックの一例であり、「出力監視部」は上記第３の機能ブロックの一例である。また、この機能ブロック図から生成され、循環の発生が表示されたフォールトツリーの一例を図１４に示す。このフォールトツリーでは、循環が発生した位置に循環の発生を示す太枠の箱が表示され、その箱から、循環が始まっている要因ノード（同じ要因ノードが繰り返される基点）への矢印も表示されている。
【００５０】
一方、除外機能ブロック特定部２６が「出力監視部」を安全機構として除外指定した場合の探索範囲を表示した機能ブロック図の一例を図１５に示す。また、この探索範囲で生成されたフォールトツリーの一例を図１６に示す。このフォールトツリーは、安全機構により循環依存が発生していた部分が除去され、ＦＴＡの初期分析を行うのに適したものとなっている。
【００５１】
尚、図１４及び図１６のフォールトツリーでは、機能ブロック自体の故障を示す要因ノードにおいて、図面作成の都合上、「「モータ出力制御部」の故障」等と記述するに留めたが、より具体的に「「モータ出力制御部」の出力値演算処理の誤り」等と記述してもよい。また、入力信号の誤りを示す要因ノードにおいて、括弧内に、図面作成の都合上、「「モータ出力制御部」の故障」のようにその入力信号を出力する機能ブロックの故障のみを記述したが、通信路の故障を追加で記述してもよい。
【００５２】
ユーザインターフェース部４０は、以下のユーザインターフェースを介して上記各機能部を提供することにより、効率的にＦＴＡのフォールトツリーの生成を支援する。具体的には、既述の通り、機能ブロック図、機能ブロック分析パネル、ＦＴＡ実行パネル及びフォールトツリーを介して、上記各機能部を提供する。尚、このうち、機能ブロック図、機能ブロック分析パネル及びＦＴＡ実行パネルは、同時に表示し、配置を調整して操作可能になっている。
【００５３】
第一に、機能ブロック図について述べる。機能ブロック図は、機能ブロック及び機能ブロック間の依存関係（信号）の線を含み、これらによって以下の機能を提供する。
【００５４】
まず、機能ブロック分析パネルを呼び出す機能である。即ち、依存関係又は機能ブロックの除外指定や、現在の除外部分の確認を行うための前提となる機能である。この機能は、機能ブロック図上の機能ブロックを表す箱がキーボード／マウス１０ｉ（図１参照）等で選択されると、その機能ブロックに対する機能ブロック分析パネルを表示する。
【００５５】
また、探索起点機能ブロックを選択する機能である。即ち、探索起点特定部２３の実行に関する機能である。この機能は、ＦＴＡの探索起点となる出力側終端の機能ブロック（探索起点機能ブロック）がキーボード／マウス１０ｉ等で選択されると、選択された探索起点機能ブロックを強調表示する。或いは、代替手段として、後述するＦＴＡ実行パネルに出力側終端の機能ブロックの一覧をリストボックス形式で表示し、この中から探索起点機能ブロックを選択させる機能を採用してもよい。
【００５６】
更に、探索範囲を表示する機能である。即ち、探索範囲検出部３１が検出した探索範囲の出力部分に関する機能である。この機能は、後述するＦＴＡ実行パネルで「探索範囲を確認する機能」又は「フォールトツリーを生成する機能」が実行された場合に、探索起点機能ブロックから、除外指定された範囲を除いて、依存関係のある機能ブロック及び依存関係（信号）の線を強調表示する。
【００５７】
第二に、機能ブロック分析パネルについて述べる。機能ブロック分析パネルは、機能ブロック図で選択された機能ブロックに対して、除外指定の現況を表示する機能と除外指定を実行する機能とを提供する。
【００５８】
まず、安全機構を指定する機能である。即ち、除外機能ブロック特定部２６の実行に関する機能である。この機能は、機能ブロック自体が安全機構であることがチェックボックス４２２へのチェックにより示されると、全てのＦＴＡトップ事象に共通してこの機能ブロックをＦＴＡの探索から除外する。加えて、安全機構として除外した理由や説明をテキストボックス４２３に記入できるようになっている。
【００５９】
また、ＦＴＡトップ事象を選択する機能である。即ち、トップ事象特定部２４の実行に関する機能である。但し、後述するＦＴＡ実行パネルでＦＴＡトップ事象が選択された状態で機能ブロック分析パネルが呼び出された場合には、そのトップ事象が選択された状態で機能ブロック分析パネルは表示される。ＦＴＡトップ事象が複数ある場合は、除外指定の対象とするトップ事象をリストボックス４２４から選択する。或いは、リストボックス４２４に代えてコンボボックスを用いてもよい。
【００６０】
更に、機能ブロックの除外を指定する機能である。即ち、除外機能ブロック特定部２６の実行に関する機能である。「ＦＴＡトップ事象を選択する機能」で選択されたＦＴＡトップ事象に対するＦＴＡの探索を実行する際に、このパネルに対応する機能ブロック自体を除外するかどうかを指定するためのチェックボックス４２５と、除外する理由や説明を記入するためのテキストボックス４２６とから構成される。
【００６１】
更にまた、依存関係の除外を指定する機能である。即ち、除外依存関係特定部２５の実行に関する機能である。「ＦＴＡトップ事象を選択する機能」で選択されたＦＴＡトップ事象に対するＦＴＡの探索を実行する際に、このパネルに対応する機能ブロックへの入力信号の中から、その生成元への探索を除外する入力信号を選択するためのリストボックス（複数選択可）４２７と、除外する理由や説明を記入するためのテキストボックス４２８とから構成される。尚、入力信号を選択するためのインターフェースはチェックボックスで代替してもよい。
【００６２】
これらの機能により、安全機構として又はＦＴＡトップ事象に影響しないものとして機能ブロックの除外指定を行った後、又は、依存関係の除外指定を行った後、「ＯＫ」ボタンを押すことで、除外指定が確定し、除外指定に関する情報が除外情報記憶部２７に記憶される。
【００６３】
第三に、ＦＴＡ実行パネルについて述べる。ＦＴＡ実行パネルは、メニューバーやツールバー等で呼び出されるパネルである。そして、このパネルは、それが表示されていても機能ブロック図上で機能ブロックを選択する操作や、機能ブロック分析パネルでの操作が可能なモードレスのパネルであり、以下の機能を提供する。
【００６４】
まず、ＦＴＡトップ事象を選択する機能である。即ち、トップ事象特定部２４の実行に関する機能である。ＦＴＡトップ事象が複数ある場合は、ＦＴＡの探索対象とするＦＴＡトップ事象をリストボックス４１１から選択することで、対応する除外指定に関するデータを特定する。或いは、リストボックス４１１に代えてコンボボックスを用いてもよい。
【００６５】
また、探索範囲を確認する機能である。即ち、探索範囲検出部３１が検出した探索範囲の出力部分に関する機能である。この機能は、ボタン４１２が押下されることにより、「ＦＴＡトップ事象を選択する機能」で選択されたＦＴＡトップ事象に対して、各機能ブロックの除外指定を参照しながら機能ブロック図上にＦＴＡの探索範囲を表示する。例えば、ＦＴＡの探索範囲を他の部分よりも太い線で表示する。本実施の形態では、解析対象部分と除外対象部分とを区別するための指標として、この太い線を用いており、機能ブロック図に指標を付加する付加部の一例として、ユーザインターフェース部４０のこの機能を設けている。
【００６６】
更に、フォールトツリーを生成する機能である。即ち、フォールトツリー生成部３２が生成したフォールトツリーの出力部分に関する機能である。この機能は、ボタン４１３が押下されることにより、「ＦＴＡトップ事象を選択する機能」で選択されたＦＴＡトップ事象に対して、各機能ブロックの除外指定を参照しながらフォールトツリーを描画する。ここで、フォールトツリーは、ＦＴＡトップ事象ごとに描画され、保持されるものとする。
【００６７】
第四に、フォールトツリーについて述べる。フォールトツリーは、ＦＴＡ実行パネルで「フォールトツリーを生成する機能」を実行した結果として、ＦＴＡトップ事象ごとに描画されるものであり、以下の機能を提供する。
【００６８】
まず、フォールトツリーを表示する機能である。即ち、フォールトツリー生成部３２が生成したフォールトツリーの出力部分に関する機能である。この機能は、安全機構としての機能ブロックやＦＴＡトップ事象に影響しない機能ブロックが除外されたフォールトツリーを表示する。
【００６９】
また、循環依存を表示する機能である。即ち、循環依存検出部３３が検出した循環依存の出力部分に関する機能である。この機能は、ＦＴＡの探索時に既に探索済みの機能ブロックに到達した場合に、循環の発生をフォールトツリー上に表示する。加えて、循環の発生箇所と循環パターンの基点となる要因ノードとを矢印で連結して表示する。
【００７０】
尚、これらの機能部は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、ＣＰＵ１０ａが、機能ブロック図生成部２１、探索起点特定部２３、トップ事象特定部２４、除外依存関係特定部２５、除外機能ブロック特定部２６、探索範囲検出部３１、フォールトツリー生成部３２、循環依存検出部３３を実現するプログラムを例えば磁気ディスク装置１０ｇからメインメモリ１０ｃに読み込んで実行することにより、これらの機能部は実現される。また、機能ブロック図記憶部２２、除外情報記憶部２７は、例えば磁気ディスク装置１０ｇにより実現される。
【００７１】
［安全分析支援装置１０の動作］
図１７は、本実施の形態における安全分析支援装置１０の動作例を示したフローチャートである。安全分析支援装置１０のユーザインターフェース部４０が表示機構１０ｄ（図１参照）に機能ブロック図を表示した状態で、この動作は開始するものとする。
【００７２】
ユーザがキーボード／マウス１０ｉ（図１参照）等を用いて、メニューバー又はツールバーからＦＴＡ実行パネルを呼び出す操作を行うと、ユーザインターフェース部４０は、ＦＴＡ実行パネルを表示する（ステップ１０１）。また、ユーザがキーボード／マウス１０ｉ等を用いて、機能ブロック図上で探索起点機能ブロックを選択する操作を行うと、ユーザインターフェース部４０はこの操作を受け付ける（ステップ１０２）。これにより、探索起点特定部２３は、この操作によって選択された探索起点機能ブロックを特定し、その探索起点機能ブロックに関する情報を除外情報記憶部２７に記憶する。更に、ユーザがキーボード／マウス１０ｉ等を用いて、ＦＴＡ実行パネル上で除外指定の対象とするＦＴＡトップ事象を選択する操作を行うと、ユーザインターフェース部４０はこの操作を受け付ける（ステップ１０３）。これにより、トップ事象特定部２４は、この操作によって選択されたＦＴＡトップ事象を特定し、そのＦＴＡトップ事象に関する情報を除外情報記憶部２７に記憶する。
【００７３】
次に、ユーザがキーボード／マウス１０ｉ等を用いて、ＦＴＡ実行パネルのボタン４１２（図５参照）を押下する操作を行うと、ユーザインターフェース部４０はこの操作を受け付け、ＦＴＡの探索範囲を機能ブロック図上に表示する（ステップ１０４）。具体的には、ユーザインターフェース部４０が、この操作を受け付けると、探索範囲検出部３１が、除外情報記憶部２７に記憶された探索起点機能ブロックに関する情報に基づいて探索範囲を検出し、ユーザインターフェース部４０にこの探索範囲を表示するように指示する。
【００７４】
次いで、ユーザがキーボード／マウス１０ｉ等を用いて機能ブロック図上で除外指定を行いたい機能ブロックを選択する操作を、ユーザインターフェース部４０が受け付けたかどうかを判定する（ステップ１０５）。
【００７５】
この機能ブロックを選択する操作を受け付けた場合、ユーザインターフェース部４０は、この操作によって選択された機能ブロックに対応する機能ブロック分析パネルを表示する（ステップ１０６）。そして、ユーザがキーボード／マウス１０ｉ等を用いて、機能ブロック分析パネル上で、その機能ブロックを安全機構として若しくはＦＴＡトップ事象に影響しないものとして除外する旨の指定、又は、その機能ブロックに対する依存関係を除外する旨の指定を行うと、ユーザインターフェース部４０はその指定を受け付ける（ステップ１０７）。これにより、除外機能ブロック特定部２６は、除外対象の機能ブロックを特定し、除外依存関係特定部２５は、除外対象の依存関係を特定し、この機能ブロック又は依存関係に関する情報を除外情報として除外情報記憶部２７に記憶する。
【００７６】
その後、ユーザがキーボード／マウス１０ｉ等を用いて機能ブロック図上で他の機能ブロックを選択する操作を、ユーザインターフェース部４０が受け付けたかどうかを判定する（ステップ１０８）。他の機能ブロックを選択する操作を受け付けた場合、ユーザインターフェース部４０は、この操作によって選択された機能ブロックについてステップ１０６及び１０７の処理を行う。他の機能ブロックを選択する操作を一定期間内に受け付けなかった場合、ユーザインターフェース部４０は、これまでに受け付けた操作によって選択された機能ブロックについて除外指定を行った状態でＦＴＡの探索範囲を機能ブロック図上に表示し（ステップ１０４）、ステップ１０５〜１０８の処理を行う。
【００７７】
また、ステップ１０５で機能ブロックを選択する操作を一定期間内に受け付けなかった場合、ユーザがキーボード／マウス１０ｉ等を用いて、ＦＴＡ実行パネルのボタン４１３（図５参照）を押下する操作を行うと、ユーザインターフェース部４０はこの操作を受け付け、フォールトツリーを表示する（ステップ１０９）。具体的には、ユーザインターフェース部４０が、この操作を受け付けると、フォールトツリー生成部３２が、機能ブロック図記憶部２２に記憶された機能ブロック図に関する情報と、除外情報記憶部２７に記憶された探索起点機能ブロックに関する情報、ＦＴＡトップ事象に関する情報、除外指定された機能ブロックに関する情報、及び、除外指定された依存関係に関する情報とに基づいて、フォールトツリーを生成し、ユーザインターフェース部４０にこのフォールトツリーを表示するように指示する。
【００７８】
このようにしてフォールトツリーが作成されると、ユーザは、このフォールトツリーを用いてＦＴＡの要因分析を実施する。そして、探索範囲の変更が必要と判断すると、ユーザはキーボード／マウス１０ｉ等を用いて機能ブロック図上で除外指定を行いたい機能ブロックを選択する操作を行う。これにより、ユーザインターフェース部４０は、ステップ１０６以降の処理を行う。また、別のＦＴＡトップ事象での分析が必要と判断すると、ユーザはキーボード／マウス１０ｉ等を用いて機能ブロック図上で探索起点機能ブロックを選択する操作を行う。これにより、ユーザインターフェース部４０は、ステップ１０２以降の処理を行う。
【００７９】
さて、ステップ１０９ではユーザインターフェース部４０がフォールトツリーを表示したが、その際、上述したように、フォールトツリー生成部３２がフォールトツリーを生成する。図１８−１及び図１８−２は、このときのフォールトツリー生成部３２の動作例を示したフローチャートである。フォールトツリー生成部３２はステップ１０９でユーザインターフェース部４０から呼び出されるので、動作開始時にＦＴＡトップ事象及び探索起点機能ブロックは既に選択されているものとする。
【００８０】
動作が開始すると、図１８−１に示すように、フォールトツリー生成部３２は、まず、ＦＴＡトップ事象の箱を描画する（ステップ１５１）。例えば、図１２のフォールトツリーでは、「「ＳＧ−１：停止スイッチが押されたらモータ１を停止する。」の侵害」と記された箱が描画される。そして、フォールトツリー生成部３２は、探索機能ブロックパス変数を初期化する（ステップ１５２）。ここで、探索機能ブロックパス変数とは、グローバルな変数又は配列であり、｛機能ブロック＃４，機能ブロック＃２，機能ブロック＃１｝のような形式を有するものである（「機能ブロック＃ｎ」は機能ブロックＩＤを表す）。探索機能ブロックパス変数においては、探索中の機能ブロックの再帰呼び出しの都度その機能ブロックの機能ブロックＩＤが追加され、再帰呼び出しから一段前の機能ブロックに戻る際に探索を終了した機能ブロックの機能ブロックＩＤが削除される。従って、この探索機能ブロックパス変数内に探索中の機能ブロックが再度見つかれば循環依存（無限ループ処理）が発生していることになる。そこで、探索機能ブロックパス変数は循環依存検出部３３が保持することとし、フォールトツリー生成部３２からの指示により、循環依存検出部３３が探索機能ブロックパス変数を初期化する。
【００８１】
次に、フォールトツリー生成部３２は、指定された機能ブロック自身に対応する要因ノードの箱を描画する（ステップ１５３）。ここで、指定された機能ブロックとは、初期状態においては、探索起点特定部２３により特定された探索起点機能ブロックであり、除外情報記憶部２７に記憶された除外情報から知ることができる。また、初期状態以外においては、後述するステップ１６０で指定される機能ブロックである。例えば、図１２のフォールトツリーでは、指定された機能ブロックが「モータ１」であれば、「「モータ１」の故障」と記された箱と、その下位の「不動作」と記された箱及び「不停止」と記された箱とが描画される。また、指定されたブロックが「モータ１出力制御部」であれば、「「モータ１出力制御部」の故障（入力によらない内部故障）」と記された箱と、その下位の「停止」と記された箱及び「暴走」と記された箱とが描画される。
【００８２】
次いで、フォールトツリー生成部３２は、指定された機能ブロックの機能ブロックＩＤが探索機能ブロックパス変数に含まれているかどうかを判定する（ステップ１５４）。具体的には、フォールトツリー生成部３２が、機能ブロックＩＤを循環依存検出部３３に受け渡し、循環依存検出部３３が、この機能ブロックＩＤが探索機能ブロックパス変数に含まれているかどうかを判定して判定結果をフォールトツリー生成部３２に返す。
【００８３】
その結果、指定された機能ブロックの機能ブロックＩＤが探索機能ブロックパス変数に含まれていないと判定された場合、フォールトツリー生成部３２は、指定された機能ブロックの機能ブロックＩＤを探索機能ブロックパス変数に追加する（ステップ１５５）。具体的には、フォールトツリー生成部３２が、機能ブロックＩＤを循環依存検出部３３に受け渡し、循環依存検出部３３が、この機能ブロックＩＤを探索機能ブロックパス変数に追加する。そして、フォールトツリー生成部３２は、指定された機能ブロックに未探索の入力信号があるかどうかを判定する（ステップ１５６）。
【００８４】
指定された機能ブロックに未探索の入力信号があると判定された場合、フォールトツリー生成部３２は、その入力信号が除外指定されているかどうかを判定する（ステップ１５７）。
【００８５】
その入力信号が除外指定されていれば、処理はステップ１５６へ戻り、フォールトツリー生成部３２は、未探索の他の入力信号について同じ処理を行う。例えば、図６のパネルでは、「スイッチＯＦＦ状態」信号が除外指定されているので、「スイッチＯＦＦ状態」信号に関する処理は行われない。また、その入力信号が除外指定されていなければ、フォールトツリー生成部３２は、その入力信号を出力する機能ブロックが除外指定されているかどうかを判定する（ステップ１５８）。
【００８６】
その入力信号を出力する機能ブロックが除外指定されていれば、処理はステップ１５６へ戻り、フォールトツリー生成部３２は、未探索の他の入力信号について同じ処理を行う。例えば、図７のパネルでは、「センサ２」が除外指定されているので、「センサ２」に関する処理は行われない。また、その入力信号を出力する機能ブロックが除外指定されていなければ、フォールトツリー生成部３２は、その入力信号の誤りを示す要因ノードの箱を描画する（ステップ１５９）。例えば、図１２のフォールトツリーでは、指定された機能ブロックが「モータ１」であれば、「「モータ１作動」信号の誤り（「モータ１出力制御部」の故障）」と記された箱が描画される。また、指定されたブロックが「モータ１出力制御部」であれば、「「入力判定結果」信号の誤り（「センサ入力判定部」の故障）」と記された箱が描画される。そして、フォールトツリー生成部３２は、入力信号を出力する機能ブロックを、新たに、指定された機能ブロックとし（ステップ１６０）、ステップ１５３以降の処理を繰り返す。
【００８７】
また、ステップ１５６で、指定された機能ブロックに未探索の入力信号がないと判定された場合、図１８−２に示すように、フォールトツリー生成部３２は、探索機能ブロックパス変数から、探索を終えた機能ブロックの機能ブロックＩＤを削除する（ステップ１６１）。具体的には、フォールトツリー生成部３２が、機能ブロックＩＤを循環依存検出部３３に受け渡し、循環依存検出部３３が、この機能ブロックＩＤを探索機能ブロックパス変数から削除する。
【００８８】
一方、ステップ１５４で、指定された機能ブロックの機能ブロックＩＤが探索機能ブロックパス変数に含まれていると判定されたとする。具体的には、循環依存検出部３３が、この機能ブロックＩＤが探索機能ブロックパス変数に含まれていると判定し、その旨の判定結果をフォールトツリー生成部３２に返したとする。この場合、図１８−２に示すように、フォールトツリー生成部３２は、指定された機能ブロックへの入力信号の誤りを示す要因ノードの箱を描画する（ステップ１６２）。例えば、図１４のフォールトツリーでは、指定された機能ブロックが「モータ」であれば、「「モータ作動」信号の誤り（「モータ出力制御部」の故障）」と記された箱が描画される。また、指定されたブロックが「モータ出力制御部」であれば、「「出力指令値」信号の誤り（「制御演算部」の故障）」と記された箱が描画される。
【００８９】
次に、フォールトツリー生成部３２は、循環の発生を示す箱を、ステップ１６２で描画した入力信号の誤りを示す要因ノードの箱の子ノードとして描画する（ステップ１６３）。例えば、図１４のフォールトツリーでは、「「出力指令値」信号の誤り（「制御演算部」の故障）」と記された箱の子ノードとして「「この信号の故障原因は探索済み」（ツリー循環）」と記された箱が描画されている。尚、子ノードとして描画する場合、通常は、前者の箱の右側に後者の箱を描画するが、図１４では、図面作成の都合上、前者の箱の下に後者の箱を描画している。
【００９０】
次いで、フォールトツリー生成部３２は、循環の発生を示す箱と、指定された機能ブロックに対して最初に描画された入力信号の誤りを示す要因ノードの箱とを矢印で連結する（ステップ１６４）。ここで、指定された機能ブロックに対して最初に描画された入力信号の誤りを示す要因ノードは、指定された機能ブロックの機能ブロックＩＤをキーとして、機能ブロック図記憶部２２に記憶された依存関係表を検索することにより求められる。例えば、図１４のフォールトツリーでは、「「この信号の故障原因は探索済み」（ツリー循環）」と記された箱と、最も左側に描画されている「「出力指令値」信号の誤り（「制御演算部」の故障）」と記された箱とが、矢印で連結されている。
【００９１】
ステップ１６１で探索機能ブロックパス変数から機能ブロックＩＤを削除した後、又は、ステップ１６４で２つの箱を矢印で連結した後、フォールトツリー生成部３２は、一段前の機能ブロックを、新たに、指定された機能ブロックとする（ステップ１６５）。
【００９２】
その後、フォールトツリー生成部３２は、この指定された機能ブロックが探索起点機能ブロックであるかどうかを判定する（ステップ１６６）。この判定は、除外情報記憶部２７に記憶された探索起点機能ブロックに関する情報に基づいて行うとよい。この指定された機能ブロックが探索起点機能ブロックでないと判定された場合、処理はステップ１５６へ戻り、フォールトツリー生成部３２は、未探索の他の入力信号について同じ処理を行う。この指定された機能ブロックが探索起点機能ブロックであると判定された場合、フォールトツリー生成部３２は処理を終了する。
【００９３】
尚、この動作例では、循環の発生をフォールトツリー上に描画することにより、ユーザに例えば図７のパネル上で循環が発生している部分を除外指定させるようにしているが、この限りではない。例えば、循環の発生をフォールトツリー上に描画すると共に循環が発生している部分を除外するかどうかをユーザに問い合わせ、ユーザがそれを了承するとその部分を除外するようにしてもよい。或いは、循環の発生をフォールトツリー上に描画すると共に循環が発生している部分をユーザに問い合わせることなく除外するようにしてもよい。
【００９４】
また、この動作例で生成されたフォールトツリーは、図１７のステップ１０９でユーザインターフェース部４０がフォールトツリーを表示する際に、フォールトツリー生成部３２からユーザインターフェース部４０へと渡される。
【００９５】
以上述べたように、本実施の形態では、除外依存関係特定部２５及び除外機能ブロック特定部２６が、依存関係の探索範囲を、機能ブロック図中の機能ブロック又は機能ブロックに対する入力の単位で特定するようにした。これにより、フォールトツリー生成部３２により生成されるフォールトツリーに不要な要因ノードが混入することを回避した。
【００９６】
また、本実施の形態では、探索範囲検出部３１により検出されたフォールトツリー生成時の探索範囲を機能ブロック図上に表示するようにした。これにより、ユーザは、この探索範囲を視覚的に確認することで、絞り込みの妥当性の確認や更なる絞り込み作業を実施できるようになった。
【００９７】
更に、本実施の形態では、コンセプトレベルの詳細度が低い機能ブロック図に基づいて、ＦＴＡトップ事象との関連性を検討しながらフォールトツリーを生成できるようになった。そのため、機械的なフォールトツリー生成の網羅性を活かしつつ、効率的にＦＴＡトップ事象に関連する機能ブロックに絞り込んだ分析が可能となった。
【００９８】
また、本実施の形態では、循環依存検出部３３により機能ブロック間の循環依存が検出された場合、循環依存が発生している旨をフォールトツリーに表示するようにした。ここで、循環依存が探索範囲の絞り込み不足によって発生している場合には、除外依存関係特定部２５及び除外機能ブロック特定部２６により依存関係の探索範囲の絞り込み（循環依存の原因部分の除外）を行ってフォールトツリーを再度生成する。これにより、コンセプトレベルの詳細度が低い機能ブロック図で循環依存が発生しても、機能ブロック図の構造自体は変えずに、循環依存を排除したフォールトツリーを生成できるようになった。
【００９９】
更に、本実施の形態では、トップ事象特定部２４が特定したＦＴＡトップ事象ごとに除外依存関係特定部２５及び除外機能ブロック特定部２６が探索範囲を指定するようにした。これにより、循環依存を排除するような探索範囲を指定しても、別のＦＴＡトップ事象に対して既に生成されたフォールトツリーは影響を受けない。つまり、別のＦＴＡトップ事象に対して既に生成されたフォールトツリーを再生成する必要がない。
【０１００】
また、本実施の形態では、除外依存関係特定部２５及び除外機能ブロック特定部２６が依存関係の探索範囲を絞り込む際に、安全機構に相当する機能ブロックと安全機構からの入力を除外する指定を行い、この状態でフォールトツリー生成部３２がフォールトツリーを生成するようにした。これにより、安全機構を含まないフォールトツリーが生成される。ＩＳＯ２６２６２の規格に従って安全機構を設計する場合には何が通常機能で何が安全機構であるかを明確にする必要があり、これが後続工程での故障率の計算等につながって行く。安全分析の出発点として安全機構を除いたフォールトツリーを確実かつ容易に生成できるようになった。
【０１０１】
また、本実施の形態では、除外依存関係特定部２５及び除外機能ブロック特定部２６が依存関係の探索範囲を絞り込む際に、機能ブロックの除外理由及び入力の除外理由を保管しておくようにした。これにより、検証者は、機能ブロックの除外理由及び入力の除外理由を一度確認（レビュー）すればよく、除外部分はフォールトツリー上の要因ノードとして登場しないので、同じ除外理由をフォールトツリー上で何度も確認する必要がなくなった。その結果、検証者はフォールトツリー分析の検証作業を効率的に行うことができ、かつ、機能ブロック図上でフォールトツリーの探索範囲又は除外範囲を確認できるので、フォールトツリーの網羅性を視覚的に判断できるようになった。
【０１０２】
尚、本実施の形態では、電子機器の機能ブロック図からフォールトツリーを生成する場合について説明したが、ソフトウェアのハイレベルな機能ブロック図やネットワークシステムの構成図等からフォールトツリーを生成する場合にも、その機能ブロック図等における故障検討対象の機能ブロック間の依存関係が分かれば、本発明は適用可能である。
【０１０３】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム（装置又は機器）、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスク−リード／ライト（ＣＤ−Ｒ／Ｗ）及びＤＶＤが含まれる。
【０１０４】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【０１０５】
１０…安全分析支援装置、２１…機能ブロック図生成部、２２…機能ブロック図記憶部、２３…探索起点特定部、２４…トップ事象特定部、２５…除外依存関係特定部、２６…除外機能ブロック特定部、２７…除外情報記憶部、３１…探索範囲検出部、３２…フォールトツリー生成部、３３…循環依存検出部
【図１】
2015049775.tif 000003
【図２】
2015049775.tif 000004
【図３】
2015049775.tif 000005
【図４】
2015049775.tif 000006
【図５】
2015049775.tif 000007
【図６】
2015049775.tif 000008
【図７】
2015049775.tif 000009
【図８】
2015049775.tif 000010
【図９】
2015049775.tif 000011
【図１０】
2015049775.tif 000012
【図１１】
2015049775.tif 000013
【図１２】
2015049775.tif 000014
【図１３】
2015049775.tif 000015
【図１４】
2015049775.tif 000016
【図１５】
2015049775.tif 000017
【図１６】
2015049775.tif 000018
【図１７】
2015049775.tif 000019
【図１８−１】
2015049775.tif 000020
【図１８−２】
2015049775.tif 000021