(57)【要約】【課題】リスク分析の実施者による見落としの防止、および、分析時間の短縮を図る。【解決手段】リスク分析支援装置１００は、ブロックと、制御を実行するブロックおよびこのブロックに制御される被ブロックの関係を示す制御とでリスク分析対象を表現した制御構造図の形式で表現されたリスク分析対象の入力を受け付ける制御構造図入力部１１１と、入力が受け付けられた制御構造図から抽出した制御の部分集合と一致または類似する制御の部分集合を含む類似の制御構造図を分析結果データベース１４０において探索し、類似の制御構造図に含まれる制御の部分集合と対応関係を持つノードを有するハザードシナリオを分析結果データベース１４０から取得する制御ループ探索部１２１と、取得されたハザードシナリオを木構造で出力するリコメンデーション出力部１２３とを備える。【選択図】図１
2020017238.tif 000002
【特許請求の範囲】
【請求項１】
ブロックと、制御を実行するブロックおよび該実行するブロックに制御される被ブロックの関係を示す制御とでリスク分析対象を表現した制御構造図を蓄積し、該制御構造図に対応し、それぞれのノードが該制御構造図のブロックまたは制御と対応関係を持つ木構造で表現されたハザードシナリオを蓄積するデータベースに接続され、
前記制御構造図の形式で表現されたリスク分析対象の入力を受け付ける入力部と、
前記入力部により入力が受け付けられた制御構造図から抽出した制御の部分集合と一致または類似する制御の部分集合を含む類似の制御構造図を前記データベースにおいて探索し、該類似の制御構造図に含まれる制御の部分集合と対応関係を持つノードを有するハザードシナリオを前記データベースから取得する探索部と、
前記探索部により取得されたハザードシナリオを木構造で出力する出力部と
を備えることを特徴とするリスク分析支援装置。
【請求項２】
前記出力部は、
前記ハザードシナリオを木構造で出力する際、前記類似の制御構造図の制御の部分集合に存在するが、前記入力部により入力が受け付けられた制御構造図内に存在しないブロックまたは制御に対応するノードを識別可能に出力することを特徴とする請求項１に記載のリスク分析支援装置。
【請求項３】
前記探索部は、
前記入力部により入力が受け付けられた制御構造図から抽出した制御の部分集合と一致または類似する制御の部分集合を含む他の類似の制御構造図を前記データベースにおいて追加探索し、該他の類似の制御構造図に含まれる制御の部分集合と対応関係を持つノードを有するハザードシナリオを前記データベースから取得することを特徴とする請求項１に記載のリスク分析支援装置。
【請求項４】
前記出力部により木構造で出力されたハザードシナリオを、前記入力部により入力が受け付けられた制御構造図に対応するハザードシナリオとして取り込んで前記データベースに蓄積する取込部をさらに備えることを特徴とする請求項１に記載のリスク分析支援装置。
【請求項５】
前記取込部は、
前記出力部により木構造で出力された複数のハザードシナリオを、前記入力部により入力が受け付けられた制御構造図に対応するハザードシナリオとして取り込んで前記データベースに蓄積する際、該複数のハザードシナリオのうち木構造の頂点が同様のハザードシナリオを１つの同一頂点とする木構造に接続することを特徴とする請求項４に記載のリスク分析支援装置。
【請求項６】
前記取込部は、
前記出力部により木構造で出力されたハザードシナリオを表示部に編集可能に表示して編集を受け付け、編集された該ハザードシナリオを前記入力部により入力が受け付けられた制御構造図に対応するハザードシナリオとして取り込んで前記データベースに蓄積することを特徴とする請求項４に記載のリスク分析支援装置。
【請求項７】
前記取込部は、
取り込んだハザードシナリオのノードと対応関係を持つブロックまたは制御が前記入力部により入力が受け付けられた制御構造図に存在しない場合、該ノードをガイドワード情報および木構造の情報を持つノードとして該ハザードシナリオを前記データベースに蓄積することを特徴とする請求項４に記載のリスク分析支援装置。
【請求項８】
各ノードがガイドワード情報および木構造の情報を持つテンプレートシナリオを蓄積するテンプレートデータベースと接続され、
前記入力部により入力が受け付けられた制御構造図から抽出した制御の部分集合と一致または類似する制御の部分集合を含む類似の制御構造図が前記データベースに存在しない場合に、前記テンプレートデータベースに蓄積されているテンプレートを元にハザードシナリオを生成する生成部をさらに備え、
前記出力部は、
前記生成部により生成されたハザードシナリオを木構造で出力することを特徴とする請求項１に記載のリスク分析支援装置。
【請求項９】
前記探索部は、
前記入力部により入力が受け付けられた制御構造図から抽出した制御の部分集合と類似の制御構造図に含まれる制御の部分集合との一致または類似を、該制御構造図および該類似の制御構造図におけるブロックまたは制御の編集距離に基づく類似度を元に判定することを特徴とする請求項１に記載のリスク分析支援装置。
【請求項１０】
前記探索部は、
前記実行するブロックが一致する場合に、前記類似度に加点することを特徴とする請求項９に記載のリスク分析支援装置。
【請求項１１】
前記探索部は、
前記被ブロックが一致する場合に、前記類似度に加点することを特徴とする請求項１０に記載のリスク分析支援装置。
【請求項１２】
リスク分析支援装置が実行するリスク分析支援方法において、
前記リスク分析支援装置は、
ブロックと、制御を実行するブロックおよび該実行するブロックに制御される被ブロックの関係を示す制御とでリスク分析対象を表現した制御構造図を蓄積し、該制御構造図に対応し、それぞれのノードが該制御構造図のブロックまたは制御と対応関係を持つ木構造で表現されたハザードシナリオを蓄積するデータベースに接続されており、
前記制御構造図の形式で表現されたリスク分析対象の入力を受け付け、
前記入力が受け付けられた制御構造図から抽出した制御の部分集合と一致または類似する制御の部分集合を含む類似の制御構造図を前記データベースにおいて探索し、該類似の制御構造図に含まれる制御の部分集合と対応関係を持つノードを有するハザードシナリオを前記データベースから取得し、
前記取得されたハザードシナリオを木構造で出力する
各処理を含んだことを特徴とするリスク分析支援方法。
【請求項１３】
コンピュータをリスク分析支援装置として機能させるためのプログラムにおいて、
前記コンピュータを、
ブロックと、制御を実行するブロックおよび該実行するブロックに制御される被ブロックの関係を示す制御とでリスク分析対象を表現した制御構造図を蓄積し、該制御構造図に対応し、それぞれのノードが該制御構造図のブロックまたは制御と対応関係を持つ木構造で表現されたハザードシナリオを蓄積するデータベースに接続され、
前記制御構造図の形式で表現されたリスク分析対象の入力を受け付ける入力部と、
前記入力部により入力が受け付けられた制御構造図から抽出した制御の部分集合と一致または類似する制御の部分集合を含む類似の制御構造図を前記データベースにおいて探索し、該類似の制御構造図に含まれる制御の部分集合と対応関係を持つノードを有するハザードシナリオを前記データベースから取得する探索部と、
前記探索部により取得されたハザードシナリオを木構造で出力する出力部と
として機能させるためのリスク分析支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リスク分析支援装置、リスク分析支援方法、およびリスク分析支援プログラムに関する。
【背景技術】
【０００２】
システムあるいは製品に潜む事故につながりかねないリスクを識別するリスク分析手法がある。代表的なリスク分析手法として故障モードとその影響の解析（FMEA：Failure  Mode  and  Effect  Analysis）および故障木解析（FTA：Fault  Tree  Analysis）がある。FMEAおよびFTAを含む多くの既存手法は部品の単体故障や単体脅威を元にシステムが事故に至るリスクを識別する。
【０００３】
すでに識別された単体故障や脅威を知識化することで、リスク分析に要する時間を減らすことが可能である。特許文献１は複数のシステムに共通に適用可能な脅威および対策を定義した共通脅威対策知識を用いることで、システム構成情報を基に情報システムにおけるリスクを識別することを可能とする。これにより、個々のシステム毎に単体故障や脅威によって生じるリスクを一から識別せずに済むため、リスク分析の実施者の負担が軽減される。
【０００４】
これに対し、近年、システムの複雑化に伴い、こうした単体故障あるいは単体脅威が発生していないにも関わらず事故に至るリスクが生じている。一例として、個々のコンポーネントは正常に動いているにも関わらず、システムの相互作用などによってシステム全体として非安全な状態に陥ってしまう事象があげられる。これらのリスクは単体故障や単体脅威を元に分析を行うような分析手法では識別できない。
【０００５】
非特許文献１で開示されているSTAMP/STPAは、システム内の制御の流れを解析し、事故に至る事象をシナリオとして記載することで単体故障に起因しない事故に至るリスクの特定を可能とするリスク分析手法である。STAMP/STPAはトップダウン解析手法であり、次に述べる４ステップで解析を行う。まず、システム内の制御の流れを図示する。次に、分析対象となる事故を定める。次に、４つのガイドワードを用いて事故に至る非安全な制御を特定する。最後に、１３個のヒントワードを用いて非安全な制御に至るシナリオを特定する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１４００４１号公報
【０００７】
【非特許文献１】Nancy  G.  Leveson、「Engineering  a  Safer  World」、The  MIT  Press
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ここで単体故障あるいは脅威が存在せずに事故に至るシナリオを、ガイドワードおよびヒントワードを用いて特定する場合を考える。ガイドワードおよびヒントワードによって特定されたシナリオの記載方法は、リスク分析の実施者に任されており、多くの場合、自然言語によって記載される。自然言語によって記載された場合、過去に他システムにて特定されたシナリオを流用するのが困難であり、似たようなシステムであっても一からシナリオを特定しなければならないため、分析に時間がかかる。また、リスク分析の実施者がガイドワードから想起できないことによって、過去には分析できていたシナリオを特定できない可能性もある。
【０００９】
特許文献１の方法は、複数のシステムに共通の脅威を記載した知識を用いることで、過去に分析できていた脅威の見落としを防止することが可能である。しかし、共通脅威対策知識を基にしているため、単体故障あるいは脅威を起因とせず制御の流れによって事故に至るリスクを抽出することができない。
【００１０】
また非特許文献１の方法は、４個のガイドワードおよび１３個のヒントワードによって分析者の想起を促している。しかし、想起されたシナリオは自然言語で記載するため、過去分析結果の流用は困難であり、一から分析を実施するため分析に時間を要する。また、過去には特定できていたシナリオをリスク分析の実施者が見落とす可能性がある。
【００１１】
本発明は、上記課題を解決するため、リスク分析の実施者による見落としの防止、および、分析時間の短縮を図ることができるリスク分析支援装置、リスク分析支援方法、およびリスク分析支援プログラムの提供を目的とする。
【課題を解決するための手段】
【００１２】
本発明のリスク分析支援装置は、一例として、ブロックと、制御を実行するブロックおよび該実行するブロックに制御される被ブロックの関係を示す制御とでリスク分析対象を表現した制御構造図を蓄積し、該制御構造図に対応し、それぞれのノードが該制御構造図のブロックまたは制御と対応関係を持つ木構造で表現されたハザードシナリオを蓄積するデータベースに接続され、前記制御構造図の形式で表現されたリスク分析対象の入力を受け付ける入力部と、前記入力部により入力が受け付けられた制御構造図から抽出した制御の部分集合と一致または類似する制御の部分集合を含む類似の制御構造図を前記データベースにおいて探索し、該類似の制御構造図に含まれる制御の部分集合と対応関係を持つノードを有するハザードシナリオを前記データベースから取得する探索部と、前記探索部により取得されたハザードシナリオを木構造で出力する出力部とを備えるようにした。
【発明の効果】
【００１３】
本発明によれば、リスク分析の実施者による見落としの防止、および、分析時間の短縮を図ることができる。
【図面の簡単な説明】
【００１４】
【図１】実施例１のリスク分析支援装置の構成の一例を示すブロック図。
【図２】実施例１の制御構造図入力画面の一例を示す図。
【図３】実施例１のリコメンデーション結果表示画面の一例を示す図。
【図４】実施例１のシナリオ入力画面の一例を示す図。
【図５】実施例１の制御構造図構成情報の一例を示す図。
【図６】実施例１の制御ループ構成情報の一例を示す図。
【図７】実施例１の制御構成情報の一例を示す図。
【図８】実施例１のブロック構成情報の一例を示す図。
【図９】実施例１のシナリオ木構成情報の一例を示す図。
【図１０】実施例１のＵＣＡノード構成情報の一例を示す図。
【図１１】実施例１のゲート構成情報の一例を示す図。
【図１２】実施例１のＨＣＦノード構成情報の一例を示す図。
【図１３】実施例１のＵＣＡノード構成情報（テンプレート）の一例を示す図。
【図１４】実施例１のＨＣＦノード構成情報（テンプレート）の一例を示す図。
【図１５】実施例１のシナリオリコメンデーション部の処理の一例を示すフローチャート（その１）。
【図１６】実施例１のシナリオリコメンデーション部の処理の一例を示すフローチャート（その２）。
【図１７】実施例１のリコメンデーション木生成処理の一例を示すフローチャート。
【図１８】実施例１のリコメンデーション木表示処理の一例を示すフローチャート。
【図１９】実施例１のシナリオ取込処理の一例を示すフローチャート。
【図２０】実施例１の類似度計算方法の一例を示す図。
【図２１】実施例２のリスク分析支援装置の構成の一例を示すブロック図。
【図２２】実施例２のシナリオリコメンデーション部の処理の一例を示すフローチャート。
【図２３】リスク分析支援装置を実現するコンピュータの一例を示す図。
【発明を実施するための形態】
【００１５】
以下、図面を用いて本発明の実施例を説明する。同一構成および同一処理には同一符号を付与し、後出の説明を省略する。また各実施例および各変形例は、本発明の技術的思想の範囲内でその一部または全部を組合せることができる。
【実施例１】
【００１６】
図１は、実施例１のリスク分析支援装置の構成の一例を示すブロック図である。リスク分析支援装置１００は、ユーザが行うリスク分析を支援するシステムである。
【００１７】
リスク分析支援装置１００は、分析結果データベース１４０およびテンプレートデータベース１５０が接続されている。分析結果データベース１４０は、過去に実施されたリスク分析において入力された制御構造図と、この制御構造図に対応し、リスク分析によって識別された事故に至るシナリオを木構造の形で蓄積している。木構造で表したシナリオをこれ以降、シナリオ木と呼ぶ。テンプレートデータベース１５０は、複数のシステムにおいて共通に使用可能な木構造の構成をテンプレートとして格納している。テンプレートは、各ノードがガイドワード番号を構成情報として持つシナリオ木の形となっている。
【００１８】
なお分析結果データベース１４０およびテンプレートデータベース１５０は、一体のデータベースに統合されていてもよい。
【００１９】
またリスク分析支援装置１００は、ユーザインタフェース部１１０と、シナリオリコメンデーション部１２０と、シナリオ取込部１３０とを有する。ユーザインタフェース部１１０は、ユーザによる情報入力および情報確認を支援する。ユーザインタフェース部１１０は、ディスプレイなどの表示装置の表示画面に表示されるＧＵＩ（Graphical  User  Interface）およびキーボード等の入力装置から構成される。
【００２０】
シナリオリコメンデーション部１２０は、ユーザの入力に応じて、過去のリスク分析結果およびシナリオのテンプレートを元にシナリオをリコメンデーションする。シナリオ取込部１３０は、シナリオリコメンデーション部１２０によりリコメンデーションされたシナリオをユーザインタフェース部１１０に取り込み、ユーザがリコメンデーションされた結果を元に分析可能な環境を提供する。
【００２１】
ユーザインタフェース部１１０は、制御構造図入力部１１１と、リコメンデーションインタフェース部１１２と、シナリオ入力部１１３とを含む。ユーザは、制御構造図入力部１１１にて、制御とブロックから構成される制御構造図の入力をし、リコメンデーションインタフェース部１１２にて、リコメンデーション結果の確認およびこの結果の取り込みをし、シナリオ入力部１１３にて、取り込んだリコメンデーション結果を元に事故に至るシナリオを木構造の形で入力する。
【００２２】
シナリオリコメンデーション部１２０は、制御ループ探索部１２１と、リコメンデーション木生成部１２２と、リコメンデーション出力部１２３とを有する。制御構造図入力部１１１からリコメンデーション指示があると、制御ループ探索部１２１が制御構造図入力部１１１に入力されている制御構造図から制御ループを抽出し、抽出した制御ループと類似の制御ループを含む制御構造図を分析結果データベース１４０から探索する。
【００２３】
ここで制御ループとは、制御構造図内において影響を及ぼし合う制御の部分集合のことである。制御ループはあくまで制御の部分集合であり、ループは存在せずとも良い。例えば制御ループとは、ヒントワードの適用範囲（リスク分析の対象となるブロックと制御の部分集合）である。これ以降、類似の制御ループを含む制御構造図を類似制御構造図と呼ぶ。
【００２４】
リコメンデーション木生成部１２２は、制御ループ探索部１２１の探索結果を元に、シナリオのリコメンデーション木を生成する。リコメンデーション出力部１２３はリコメンデーション木生成部１２２が生成したリコメンデーション木をリコメンデーションインタフェース部１１２に受け渡す。
【００２５】
シナリオ取込部１３０は、リコメンデーションインタフェース部１１２が表示したリコメンデーション木のうち、ユーザが取り込み指示をしたリコメンデーション木を処理し、入力された制御構造図のシナリオ木としてシナリオ入力部１１３に表示する。ユーザは、シナリオ入力部１１３に表示されたシナリオ木を自由に書き換えることができる。ユーザが、制御構造図入力部１１１で入力した制御構造図、および、シナリオ入力部１１３で入力したシナリオ木は、分析結果データベース１４０に蓄積される。
【００２６】
図２は、実施例１の制御構造図入力画面の一例を示す図である。実施例１の制御構造図入力部１１１が表示する制御構造図入力画面２００では、ユーザは、ブロック２１１と制御２１２から構成される制御構造図２１３を入力できる。ブロック２１１は、ソフトウェア、ハードウェア、システム、あるいは人など、分析対象に応じて決定されるため、限定しない。制御２１２は、あるブロックからあるブロックへの制御指示、あるいは、制御行動である。ユーザが入力した制御構造図２１３は、分析結果データベース１４０に保存される。
【００２７】
ユーザが制御構造図２１３を入力し、シナリオリコメンデーションボタン２２０を押下すると、シナリオリコメンデーション部１２０は、入力された制御構造図２１３の類似制御構造図を分析結果データベース１４０から探索し、探索結果を元にリコメンデーション木を生成し、ユーザにリコメンデーションする。
【００２８】
図３は、実施例１のリコメンデーション結果表示画面の一例を示す図である。実施例１のリコメンデーション結果表示画面３００は、入力制御構造図表示画面３１０と、類似制御構造図表示画面３３０と、リコメンデーション木表示画面３５０とを有する。
【００２９】
入力制御構造図表示画面３１０には、ユーザが制御構造図入力画面２００にて入力した制御構造図が表示される。類似制御構造図表示画面３３０には、入力された制御構造図から探索された０個以上の類似制御構造図が表示される。
【００３０】
入力制御構造図表示画面３１０に表示されている制御構造図内のブロックおよび制御のうち、類似制御構造図に含まれないブロックおよび制御は点線で表示される。点線での表示はあくまで一例であり、類似制御構造図に含まれないブロックおよび制御が識別できれば良い。ユーザが追加探索ボタン３２０を押下すると、類似制御構造図に含まれないブロックおよび制御を必ず含むような制御構造図およびそれに関連するシナリオ木をリコメンデーション木として追加探索できる。追加探索により追加取得された制御構造図および関連するリコメンデーション木は、リコメンデーション結果画面３００のリコメンデーション木表示画面３５０に表示される。
【００３１】
類似制御構造図表示画面３３０に表示されている類似制御構造図内のブロックおよび制御のうち、入力された制御構造図に含まれないブロックおよび制御は点線で表示される。点線での表示はあくまで一例であり、入力された制御構造図に含まれないブロックおよび制御が識別できれば良い。
【００３２】
リコメンデーション木表示画面３５０には、シナリオリコメンデーション部１２０が生成したリコメンデーション木が０個以上表示される（０個の表示とは、すなわち表示されないことをいう）。シナリオ木およびリコメンデーション木は、制御構造図、の対応関係とガイドワード番号を構成情報として持つノード３５１と、ゲート３５２から構成される木構造で表現される。
【００３３】
本実施例において、ノードはＵＣＡ（Unsafe  Control  Action）ノード３５４とＨＣＦ（Hazard  Control  Factor）ノード３５１の二種類があるものとする。シナリオ木の頂点となるノードがＵＣＡノード３５４であり、それ以外のノードがＨＣＦノード３５１である。また本実施例において、ゲート３５２はＯＲゲートあるいはＡＮＤゲートとする。
【００３４】
リコメンデーション木表示画面３５０には、類似制御構造図表示画面３３０に表示されている類似制御構造図内のブロックあるいは制御のうち、入力制御構造図表示画面３１０に表示されている制御構造図内に存在しないブロックあるいは制御に対応するＨＣＦノード３５３が警告付きで表示される。警告は、表示線種の変更、色の変更、あるいは注釈の付与など、他のノードと識別可能であれば良い。
【００３５】
またリコメンデーション木表示画面３５０には、現在表示しているシナリオ木のシナリオによって引き起こされるハザード３５５も表示される。ハザードには、事故に至る直接的な現象あるいはシステムの状態に限られず、分析対象である事故を表示しても良い。
【００３６】
リコメンデーション木表示画面３５０においてユーザが取り込みボタン３４０を押下すると、表示されているリコメンデーション木を入力された制御構造図に対応するシナリオ木として分析結果データベース１４０に取り込むことができる。分析結果データベース１４０に取り込まれたシナリオ木は、次回以降の他のリスク分析対象についてのリスク分析の際に用いることができる。
【００３７】
図４は、実施例１のシナリオ入力画面の一例を示す図である。実施例１のシナリオ入力部１１３が表示するシナリオ入力画面４００では、シナリオ木の入力４１０ができる。また、リコメンデーション結果表示画面３００の取り込みボタン３４０にて取り込まれたリコメンデーション木は、シナリオ木の入力部分４１０に表示される。取り込まれたリコメンデーション木のうち、リコメンデーション木表示画面３５０にて警告付きで表示されたノード３５３は、ガイドワード番号（図４の例では“[(6)]”）のみを構成情報として持つ空のノード４１１として表示される。ノード４１１は、リスク分析の実施者による検討対象ノードの一つとなる。
【００３８】
ユーザは、表示されているシナリオ木に対して、ノードの内容の書き換え、ノードの追加および削除、ゲートの追加および削除などを行って、シナリオ木を自由に書き換えることが可能である。シナリオに対応するハザード４１２もシステムあるいは分析対象に合わせてユーザが書き換えることが可能である。シナリオ入力画面４００で入力されたシナリオ木は分析結果データベース１４０に保存される。なお分析結果データベース１４０に保存されるシナリオ木は、シナリオ入力画面４００での編集を経ず、リコメンデーション結果表示画面３００の取り込みボタン３４０の押下を契機として直ちに分析結果データベース１４０に保存されてもよい。
【００３９】
図５は、実施例１の制御構造図構成情報の一例を示す図である。実施例１の制御構造図構成情報５００は、制御構造図を一意に識別するための制御構造図ＩＤ５０１を持つ。制御リスト５０２は、制御構造図ＩＤ５０１で識別される制御構造図中に含まれる制御のリストである。ブロックリスト５０３は、制御構造図ＩＤ５０１で識別される制御構造図中に含まれるブロックのリストである。制御ループリスト５０４は、制御構造図ＩＤ５０１で識別される制御構造図中に含まれる制御ループを制御ループＩＤ６０１（図６参照を参照して後述）で示すリストである。
【００４０】
制御構造図毎に図５に示す制御構造図構成情報５００のデータ形式で分析結果データベース１４０に保存されている。
【００４１】
図６は、実施例１の制御ループ構成情報の一例を示す図である。実施例１の制御ループ構成情報６００は、制御ループを一意に識別するための制御ループＩＤ６０１を持つ。制御リスト６０２は、制御ループＩＤ６０１で識別される制御ループ中に含まれる制御のリストである。シナリオ木リスト６０３は、制御ループＩＤ６０１で識別される制御ループに対応するシナリオ木のシナリオ木ＩＤ（図９を参照して後述）である。
【００４２】
制御ループ毎に図６に示す制御ループ構成情報６００のデータ形式で分析結果データベース１４０に保存されている。
【００４３】
図７は、実施例１の制御構成情報の一例を示す図である。実施例１の制御構成情報７００は、制御を一意に識別するための制御ＩＤ７０１を持つ。制御７０２は、あるブロックからあるブロックへの制御の内容である。ブロック７０３は、制御７０２を指示する、あるいは、制御７０２の行動を起こすブロックのブロックＩＤ８０１（図８を参照して後述）である。被ブロック７０４は、制御を受けるブロック、あるいは、制御されるブロックのブロックＩＤ８０１（図８を参照して後述）である。
【００４４】
制御毎に図７に示す制御構成情報７００のデータ形式で分析結果データベース１４０に保存されている。
【００４５】
図８は、実施例１のブロック構成情報の一例を示す図である。実施例１のブロック構成情報８００は、ブロックを一意に識別するためのブロックＩＤ８０１を持つ。ブロック名８０２はブロックの名前である。
【００４６】
ブロック毎に図８に示すブロック構成情報８００のデータ形式で分析結果データベース１４０に保存されている。
【００４７】
図９は、実施例１のシナリオ木構成情報の一例を示す図である。実施例１のシナリオ木構成情報９００は、シナリオ木を一意に識別するためのシナリオ木ＩＤ９０１を持つ。対象ハザード９０２は、シナリオ木ＩＤ９０１で識別されるシナリオによって引き起こされるハザードあるいは事故である。ＵＣＡノード９０３は、シナリオ木ＩＤ９０１で識別されるシナリオ木の頂点となるＵＣＡＩＤ１００１（図１０を参照して後述）のＵＣＡノードである。
【００４８】
シナリオ木毎に図９に示すシナリオ木構成情報９００のデータ形式で分析結果データベース１４０に保存されている。
【００４９】
図１０は、実施例１のＵＣＡノード構成情報の一例を示す図である。実施例１のＵＣＡノード構成情報１０００は、ＵＣＡノードを一意に識別するためのＵＣＡＩＤ１００１を持つ。ＵＣＡ１００２は、ＵＣＡＩＤ１００１で識別されるＵＣＡの内容である。ＵＣＡの内容は、ハザードを引き起こす原因あるいはハザードを引き起こす事象である。関連制御１００３は、ＵＣＡＩＤ１００１で識別されるＵＣＡに対応する制御のＩＤである。下位ゲート１００４は、ＵＣＡＩＤ１００１で識別されるＵＣＡノードの下位に接続されているゲートである。
【００５０】
ＵＣＡノード毎に図１０に示すＵＣＡノード構成情報１０００のデータ形式で分析結果データベース１４０に保存されている。
【００５１】
図１１は、実施例１のゲート構成情報の一例を示す図である。実施例１のゲート構成情報１１００は、ゲートを一意に識別するためのゲートＩＤ１１０１を持つ。ゲート種別１１０２は、ゲートＩＤ１１０１で識別されるゲートの種類である。ゲート種別にはＯＲゲートあるいはＡＮＤゲートがある。下位ノードリスト１１０３は、ゲートＩＤ１１０１で識別されるゲートの下位に接続されているＨＣＦノードおよびゲートのリストである。
【００５２】
図１２は、実施例１のＨＣＦノード構成情報の一例を示す図である。実施例１のＨＣＦノード構成情報１２００は、ＨＣＦノードを一意に特定するためのＨＣＦＩＤ１２００を持つ。ＨＣＦ１２０２は、ＨＣＦＩＤ１２００で識別されるＨＣＦの内容である。ＨＣＦの内容は、上位のＵＣＡまたは上位のＨＣＦを引き起こす原因または引き起こす事象であり、ユーザがガイドワードを使って想起するＨＣＦである。
【００５３】
下位ゲートリスト１２０３は、ＨＣＦＩＤ１２００で識別されるＨＣＦノードの下位に接続されているゲートである。ヒントワード番号１２０４は、ＨＣＦＩＤ１２００で識別されるＨＣＦを特定するために使用したガイドワードの番号である。関連ブロックまたは関連制御１２０５は、ＨＣＦＩＤ１２００で識別されるＨＣＦに対応するブロックのブロックＩＤ８０１、あるいは、対応する制御の制御ＩＤ７０１である。関連フラグ１２０６は、シナリオリコメンデーション部１２０がリコメンデーション処理の過程で使用するフラグであり、ユーザが入力した制御構造図との関連の有無を示す。
【００５４】
図１３は、実施例１のＵＣＡノード構成情報（テンプレート）の一例を示す図である。実施例１のＵＣＡノード構成情報（テンプレート）１０００−１は、ＵＣＡノード構成情報１０００と同一のデータ構成であるが、ＵＣＡ１００２および関連制御１００３にＮＵＬＬがセットされている点でＵＣＡノード構成情報１０００と異なる。
【００５５】
図１４は、実施例１のＨＣＦノード構成情報（テンプレート）の一例を示す図である。実施例１のＨＣＦノード構成情報（テンプレート）１２００−１は、ＨＣＦノード構成情報１２００と同一のデータ構成であるが、ＨＣＦ１２０２、および、関連ブロックまたは関連制御１２０５にＮＵＬＬがセットされている点でＨＣＦノード構成情報１２００と異なる。
【００５６】
ＵＣＡノード構成情報（テンプレート）１０００−１およびＨＣＦノード構成情報（テンプレート）１２００−１は、テンプレートデータベース１５０に保存されており、各ノードがガイドワード番号のみを構成情報として持つシナリオ木のテンプレートを構成する情報である。
【００５７】
図１５および図１６は、実施例１のシナリオリコメンデーション部の処理の一例を示すフローチャートである。図１５および図１６に示す処理は、実施例１のシナリオリコメンデーション部１２０が、ユーザが制御構造図入力画面２００で制御構造図を入力し、シナリオリコメンデーションボタン２２０を押下したのを契機に、ユーザが入力した制御構造図のシナリオのヒントとなるシナリオ木をリコメンデーションする処理である。
【００５８】
先ず制御ループ探索部１２１は、入力された制御構造図から制御ループを抜き出す（Ｓ１３０１）。詳細には制御ループ探索部１２１は、分析結果データベース１４０に保存されている入力された制御構造図の制御構造図構成情報５００（図５参照）の制御ループリスト５０４から制御ループＩＤを抽出する。抽出した制御ループＩＤに該当する制御ループをこれ以降、入力された制御ループと呼ぶ。
【００５９】
次に制御ループ探索部１２１およびリコメンデーション木生成部１２２は、分析結果データベース１４０に保存されている全ての制御構造図について次の処理を繰り返す（制御構造確認ループ：Ｓ１３０２〜Ｓ１３１６（図１６参照））。
【００６０】
先ずシナリオリコメンデーション部１２０は、リコメンデーション木リストにＮＵＬＬを代入し、類似制御構造図リストにＮＵＬＬを代入する（Ｓ１３０３）。リコメンデーション木リストはリコメンデーション木を列挙する配列変数であり、類似制御構造図リストは類似制御構造図を列挙する配列変数である。後述するように、リコメンデーション木リストにはリコメンデーション木生成部１２２が生成したリコメンデーション木のシナリオ木ＩＤ９０１が格納され、類似制御構造図リストにはＳ１３０８で制御構造図の制御構造図ＩＤが格納される。
【００６１】
さらに制御ループ探索部１２１およびリコメンデーション木生成部１２２は、制御構造図の制御ループリスト５０４について次の処理を繰り返す（制御ループ確認ループ：Ｓ１３０４〜Ｓ１３１３）。
【００６２】
先ず制御ループ探索部１２１は、入力された制御ループのうち制御ループと完全一致するものがあるかどうか確認する（Ｓ１３０５）。完全一致とは制御ループの制御リスト６０２中の各制御の制御７０２が全て一致し、さらにブロック７０３と被ブロック７０４が一致することをさす。
【００６３】
完全一致する場合（Ｓ１３０５：ＹＥＳ）、制御ループ探索部１２１は、入力された制御ループに対応する制御ループ構成情報６００のシナリオ木リスト６０３を分析結果データベース１４０から取得する（Ｓ１３０６）。次に、制御ループ探索部１２１は、リコメンデーション木リストに、Ｓ１３０６で取得したシナリオ木リスト６０３をコピーし（Ｓ１３０７）、Ｓ１３０８に処理を移す。
【００６４】
全ての入力された制御ループと制御ループが完全一致しなかった場合（Ｓ１３０５：ＮＯ）、制御ループ探索部１２１は、制御ループの制御リスト６０２と、入力された制御ループの制御リスト６０２との類似度を算出する（Ｓ１３０９）。類似度が所定閾値以上の場合（Ｓ１３１０：ＹＥＳ）、制御ループ探索部１２１は、分析結果データベース１４０から制御ループに対応するシナリオ木リスト６０３を取得し、リコメンデーション木生成部１２２に入力する（Ｓ１３１１）。続いてリコメンデーション木生成部１２２は、Ｓ１３１１の入力に基づいてリコメンデーション木リストを作成し（Ｓ１３１２）、Ｓ１３０８に処理を移す。
【００６５】
一方類似度が閾値以上でなかった場合（Ｓ１３０５：ＮＯ）、制御ループ探索部１２１は、Ｓ１３１３に処理を移す。
【００６６】
Ｓ１３０８では、制御ループ探索部１２１は、類似制御構造図リストに、今回の制御構造確認ループの実行で処理対象となっている制御構造図の制御構造図ＩＤを代入する（Ｓ１３０８）。続いて制御ループ探索部１２１およびリコメンデーション木生成部１２２は、次の制御ループについて制御ループ確認ループを実行する（Ｓ１３１３）。全ての入力された制御ループについて制御ループ確認ループ：Ｓ１３０４〜Ｓ１３１３が終了すると、制御ループ探索部１２１は、図１６のＳ１３１４に処理を移す。
【００６７】
続いてＳ１３１３で全ての制御ループについて確認が終わった時点で、類似制御構造図リストがＮＵＬＬであった場合（Ｓ１３１４：ＹＥＳ）、制御ループ探索部１２１は、次の制御構造図を確認する（Ｓ１３１６）。類似制御構造図リストがＮＵＬＬでなかった場合（Ｓ１３１４：ＮＯ）、リコメンデーション出力部１２３は、ユーザに対して、リコメンデーションインタフェース部１１２にリコメンデーション木リストを表示する（Ｓ１３１５）。
【００６８】
続いて、Ｓ１３１６において、全ての制御構造図について確認が終わった時点で、リコメンデーションインタフェース部１１２にリコメンデーション木が表示されていない場合（Ｓ１３１７：ＹＥＳ）、制御ループ探索部１２１は、リコメンデーション木生成部１２２にＮＵＬＬを入力する（Ｓ１３１８）。これを受けてリコメンデーション木生成部１２２は、リコメンデーション可能なシナリオ木が分析結果データベース１４０になかった場合におけるリコメンデーション木リストを、テンプレートデータベース１５０に保存されているＵＣＡノード構成情報（テンプレート）１０００−１およびＨＣＦノード構成情報（テンプレート）１２００−１から生成する（Ｓ１３１９）。その後、リコメンデーション出力部１２３は、Ｓ１３１９で生成されたリコメンデーション木リストをリコメンデーションインタフェース部１１２に表示する（Ｓ１３２０）。
【００６９】
Ｓ１３１６において、全ての制御構造図について確認が終わった時点で、リコメンデーションインタフェース部１１２にリコメンデーション木が表示されている場合（Ｓ１３１７：ＮＯ）、もしくは、Ｓ１３２０が終了した場合に、本シナリオリコメンデーション部の処理を終了する。
【００７０】
図１７は、実施例１のリコメンデーション木生成処理の一例を示すフローチャートである。実施例１のリコメンデーション木生成処理は、図１５のＳ１３１２および図１６のＳ１３１９の処理の詳細例を示すサブルーチンである。
【００７１】
先ずＳ１４０１では、入力がＮＵＬＬ、つまりリコメンデーション可能なシナリオ木が分析結果データベース１４０に存在しない場合（Ｓ１４０１：ＹＥＳ）、リコメンデーション木生成部１２２は、ＵＣＡノード構成情報（テンプレート）１０００−１およびＨＣＦノード構成情報（テンプレート）１２００−１から構成される、ヒントワード番号１２０４のみが埋められたシナリオ木のテンプレートをテンプレートデータベース１５０から取得する（Ｓ１４１３）。続いてリコメンデーション木生成部１２２は、Ｓ１４１３で取得したシナリオ木にシナリオ木ＩＤ９０１を付与してリコメンデーション木リストに追加し（Ｓ１４１４）、本リコメンデーション木生成処理を終了する。
【００７２】
一方入力がＮＵＬＬでない場合（Ｓ１４０１：ＮＯ）、リコメンデーション木生成部１２２は、入力された全てのシナリオ木について次の処理（リコメンデーション木生成ループ：Ｓ１４０２〜Ｓ１４１２）を繰り返す。
【００７３】
先ずリコメンデーション木生成部１２２は、入力されたシナリオ木のＵＣＡノード１０００の関連制御１００３を取得する（Ｓ１４０３）。本実施例では、リコメンデーション木の頂点であるＵＣＡノード９０２の関連制御１００３が、ユーザが入力した制御構造図にも存在しなければならないとする。Ｓ１４０３で取得した関連制御１００３に一致する制御が、ユーザが入力した制御構造図に存在する場合（Ｓ１４０４：ＹＥＳ）、リコメンデーション木生成部１２２は、シナリオ木をリコメンデーション木リストに追加する（Ｓ１４０６）。Ｓ１４０３で取得した関連制御１００３に一致する制御が、ユーザが入力した制御構造図に存在せず（Ｓ１４０４：ＮＯ）、かつ処理対象の入力された全てのシナリオ木についてＳ１４０２〜Ｓ１４０５の処理が処理済である場合、リコメンデーション木生成部１２２は、本リコメンデーション木生成処理を終了する。
【００７４】
Ｓ１４０６にさらに引き続き、リコメンデーション木生成部１２２は、Ｓ１４０６でリコメンデーション木リストに追加したシナリオ木内の全てのＨＣＦノードについて以下の処理（ＨＣＦノード確認ループ：Ｓ１４０７〜Ｓ１４１２）を繰り返す。
【００７５】
先ずリコメンデーション木生成部１２２は、処理対象のＨＣＦノードの関連ブロックまたは関連制御１２０５を取得する（Ｓ１４０８）。ユーザが入力した制御構造図内に一致する制御あるいはブロックが存在する場合（Ｓ１４０９：ＹＥＳ）、リコメンデーション木生成部１２２は、ＨＣＦノードの関連フラグ１２０６をTrueにする（Ｓ１４１０）。一方存在しない場合（Ｓ１４０９：ＮＯ）、リコメンデーション木生成部１２２は、ＨＣＦノードの関連フラグ１２０６をFalseにする（Ｓ１４１１）。リコメンデーション木生成部１２２は、処理対象の全てのＨＣＦノードについてＳ１４０７〜Ｓ１４１２の処理を処理済である場合、Ｓ１４０５に処理を移す。
【００７６】
図１８は、実施例１のリコメンデーション木表示処理の一例を示すフローチャートである。実施例１のリコメンデーション木表示処理は、図１６のＳ１３１５およびＳ１３２０のリコメンデーション出力部１２３がリコメンデーション木を表示する処理の詳細例を示すサブルーチンである。
【００７７】
先ずリコメンデーション出力部１２３は、リコメンデーション木リスト中の全てのリコメンデーション木について次の処理（リコメンデーション木表示ループ：Ｓ１５０１〜Ｓ１５０８）を繰り返す。
【００７８】
先ずリコメンデーション出力部１２３は、リコメンデーション結果画面３００のリコメンデーション木表示画面３５０に新規タブ（図３において“シナリオ１”“シナリオ２”・・・で例示するタブの新規タブ）を追加する（Ｓ１５０２）。続いてリコメンデーション出力部１２３は、Ｓ１５０２で追加したタブにリコメンデーション木を表示する（Ｓ１５０３）。
【００７９】
次にリコメンデーション出力部１２３は、Ｓ１５０３でリコメンデーション木表示画面３５０の新規タブに表示したリコメンデーション木内の全てのＨＣＦノードについて次の処理（ＨＣＦノード警告表示ループ：Ｓ１５０４〜Ｓ１５０７）を繰り返す。
【００８０】
先ずリコメンデーション出力部１２３は、ＨＣＦノードの関連フラグ１２０６がTrueかどうか確認する（Ｓ１５０５）。Falseの場合（Ｓ１５０５：ＮＯ）、リコメンデーション出力部１２３は、該当のＨＣＦノードに警告（図３のＨＣＦノード３５３参照）を表示する（Ｓ１５０７）。ＨＣＦノードの関連フラグ１２０６がTrue（Ｓ１５０５:ＹＥＳ）の場合、もしくはＳ１５０７終了後、リコメンデーション木リスト中の全てのリコメンデーション木についてＳ１５０１〜１５０８の処理を終了すると、Ｓ１５０９に処理を移す。
【００８１】
Ｓ１５０９〜Ｓ１５１２では、リコメンデーション出力部１２３は、類似制御構造図の表示を行う。類似制御構造図がＮＵＬＬの場合（Ｓ１５０９：ＹＥＳ）、本リコメンデーション木表示処理を終了する。ＮＵＬＬでない場合（Ｓ１５０９：ＮＯ）、リコメンデーション出力部１２３は、類似制御構造図表示画面３３０に新規タブ（図３の“図１”“図２”・・・で例示されるタブの新規タブ）を追加する（Ｓ１５１０）。
【００８２】
続いてリコメンデーション出力部１２３は、Ｓ１５１０で追加した類似制御構造図表示画面３３０の新規タブに、類似制御構造図リストに格納されている類似制御構造図を表示する（Ｓ１５１１）。
【００８３】
続いてリコメンデーション出力部１２３は、類似制御構造図内の全てのブロックについて次の処理（ブロック表示ループ：Ｓ１５１２〜Ｓ１５１５）を繰り返す。ユーザが入力した制御構造図内にブロックが存在しない場合（Ｓ１５１３：ＹＥＳ）、リコメンデーション出力部１２３は、ブロックを点線表示に変える（Ｓ１５１４）。ユーザが入力した制御構造図内にブロックが存在する場合（Ｓ１５１３：ＹＥＳ）、リコメンデーション出力部１２３は、Ｓ１５１５に処理を移す。
【００８４】
Ｓ１５１５で処理対象の類似制御構造図内の全てのブロックについてＳ１５１２〜Ｓ１５１５の処理が処理済である場合、リコメンデーション木生成部１２２は、本リコメンデーション木表示処理を終了する。
【００８５】
図１９は、実施例１のシナリオ取込処理の一例を示すフローチャートである。実施例１のシナリオを取込処理は、ユーザが取り込みボタン３４０（図３）を押下したのを契機に、シナリオ取込部１３０が、リコメンデーション木表示画面３５０に表示されているリコメンデーション木をシナリオとして取り込む処理である。
【００８６】
シナリオ入力画面４００の全てのタブ（図４の“シナリオ１”・・・で例示する全タブ）について以下の処理（頂点確認ループ：Ｓ１６０１〜Ｓ１６０３）を繰り返す。
【００８７】
先ずシナリオ取込部１３０は、シナリオ入力画面４００の処理対象のタブに表示されているシナリオ木の頂点のＵＣＡノードと、リコメンデーション木の頂点のＵＣＡノードが同様かどうか確認する（Ｓ１６０２）。これらの頂点のＵＣＡノードが同様である場合（Ｓ１６０２：ＹＥＳ）、シナリオ取込部１３０は、処理対象のタブに表示されているシナリオ木の頂点のＵＣＡノードの下位ゲート１００４の下位ノードリスト１１０３に、リコメンデーション木のＵＣＡノードの下位ゲート１００４を追加し、表示する（Ｓ１６０７）。Ｓ１６０７の処理により、同じＵＣＡノードのシナリオ木を一つのリコメンデーション木に纏めることで、リスク分析を効率化できる。Ｓ１６０７の表示後、頂点確認ループ（Ｓ１６０１）を終了する。頂点が同様でない場合（Ｓ１６０２：ＮＯ）、頂点確認ループを継続する（Ｓ１６０３）。
【００８８】
Ｓ１６０１〜Ｓ１６０３の頂点確認ループ終了後に、頂点が同じシナリオ木が存在しなかった場合、シナリオ取込部１３０は、シナリオ入力画面４００に新規タブを追加する（Ｓ１６０４）。続いてシナリオ取込部１３０は、Ｓ１６０４で追加した新規タブにリコメンデーション木を表示する（Ｓ１６０５）。
【００８９】
シナリオ取込部１３０は、シナリオ入力画面４００の新規タブにリコメンデーション木を表示後、表示したリコメンデーション木内の全てのＨＣＦノードについて以下の処理（ＨＣＦノード表示ループ：Ｓ１６０６〜Ｓ１６１０）を繰り返す。
【００９０】
先ずシナリオ取込部１３０は、処理対象のＨＣＦノードの関連フラグ１２０６がTrueかどうかを確認する（Ｓ１６０８）。Trueでない場合（Ｓ１６０８：ＮＯ）、先ずシナリオ取込部１３０は、処理対象のＨＣＦノードの「ＨＣＦ１２０２」「関連ブロックまたは関連制御１２０５」にＮＵＬＬを代入し、表示を更新する（Ｓ１６１０）。Ｓ１６１０が終了し、Ｓ１６０９で処理対象の全てのＨＣＦノードについてＳ１６０６〜Ｓ１６０９の処理が処理済である場合、シナリオ取込部１３０は、本シナリオ取込処理を終了する。
【００９１】
図２０は、実施例１の類似度計算方法の一例を示す図である。実施例１の類似度計算方法は、図１５のＳ１３０９での制御ループの類似度計算における一方法であるが、これに限られるものではない。類似度評点１７０１の合計値が高いほど、類似度が高いものとする。
【００９２】
類似度の決定基準の１つが、図２０に示す制御リスト６０２の編集距離１７０２である。編集距離１７０２は、入力された制御ループと制御構造図の制御ループリストの制御ループとが一致するまでに、制御またはブロックに対して挿入、削除、置換等の処理を行う必要がある場合に、これらの各処理を一回行う毎に類似度評点を−１する例を示す。
【００９３】
また図２０は、制御ループの制御リスト６０２の各制御について、制御７０２が一致してかつ制御のブロック７０３が一致した場合、制御のブロック一致１７０３とみなし、類似度評点を＋１する例を示す。また図２０は、制御ループの制御リスト６０２の各制御について、制御７０２が一致してかつ制御の被ブロック７０４が一致した場合、制御の被ブロック一致１７０４とみなし、類似度評点を＋１する例を示す。また図２０は、制御リスト６０２制御リスト６０２の先頭の制御が一致しない場合、制御リストの先頭の制御が不一致１７０５とし、類似度評点を−１００する例を示す。
【００９４】
なお制御リストの先頭の制御が不一致１７０５は省略されてもよい。この場合、類似度の計算の際（図１５のＳ１３０９参照）には、制御ループの制御リストと入力された制御ループの制御リストのＵＣＡノードが不一致であるものは、類似度計算の対象から除外する。
【００９５】
実施例１では、制御とブロックでシステムなどのリスク分析対象を表現した制御構造図と、各ノードが制御構造図およびガイドワードとの対応関係を持つ木構造として表現されたシナリオをデータベースに蓄積し、入力されたシステムの制御構造図の制御の部分集合と類似の部分集合を持つ制御構造図をデータベースから検索し、検索して得られた制御構造図と対応関係を持つハザードシナリオの木構造をリコメンデーションする。よって実施例１によれば、蓄積された過去のハザードシナリオを元に、入力されたシステムの制御構造図に対応するハザードシナリオを表示するので、複数のブロックおよび制御で表現されるシステムのリスク分析の分析時間を短縮し、実施者の負担を軽減することができる。さらに過去のリスク分析結果を流用してシステムに内在するリスクをＧＵＩで視覚的に表示するので、リスク分析の実施者のリスクの見落としを防止できる。
【実施例２】
【００９６】
本発明の実施例２は、シナリオ入力画面４００において、ユーザがシナリオ木に新規ＨＣＦノードを追加したときに、下位ノードのリコメンデーションを実施するものである。以下、本実施例において、実施例１と同じ構成には同じ番号を付与して説明を省略する。また図２１では構成の図示を適宜省略している。
【００９７】
図２１は、実施例２のリスク分析支援装置の構成の一例を示すブロック図である。実施例２のリスク分析支援装置１００Ｂにおいて、シナリオ入力部１１３で新規ＨＣＦノードが追加されると、リコメンデーション木生成部１２２が新規ＨＣＦノード以下のリコメンデーション木を作成し、シナリオリコメンデーション部１２０Ｂのリコメンデーション出力部１２３がユーザインタフェース部１１０Ｂのリコメンデーションインタフェース部１１２に表示する。取り込みボタン３４０（図３参照）が押下されると、シナリオ取込部１３０は、リコメンデーションインタフェース部１１２に表示されているリコメンデーション木をシナリオ入力部１１３の新規ＨＣＦノード以下に追加し、表示する。
【００９８】
図２２は、実施例２のシナリオリコメンデーション部の処理の一例を示すフローチャートである。シナリオリコメンデーション部１２０は、ユーザがシナリオ入力画面４００で新規ＨＣＦノードを追加したのを契機に、ユーザが入力した新規ＨＣＦノードに対応するシナリオ木をリコメンデーションする処理を実施する。
【００９９】
まずシナリオリコメンデーション部１２０は、リコメンデーション木リストにＮＵＬＬを代入し、類似制御構造図リストにＮＵＬＬを代入する（Ｓ１３０３）。続いてシナリオリコメンデーション部１２０は、リコメンデーション木生成部１２２にＮＵＬＬを入力する（Ｓ１３１８）。Ｓ１３１８を受けて、図１７のリコメンデーション木生成処理が実行され、リコメンデーション木が生成される。続いてリコメンデーション木生成部１２２は、リコメンデーション木リストを生成する（Ｓ１３１９）。リコメンデーション木生成部１２２は、ＮＵＬＬが入力されると、これに応じて、ヒントワード番号１２０４のみから構成されるシナリオ木をテンプレートデータベース１５０から取得し、リコメンデーション木リストに代入する（図１７のＳ１４０１→Ｓ１４１３→Ｓ１４１４の処理シーケンス参照）。最後にリコメンデーション出力部１２３は、Ｓ１３１９で生成されたリコメンデーション木リストをリコメンデーションインタフェース部１１２に表示する（Ｓ１３２０）。
【０１００】
以上の実施例２によれば、リスク分析の過程でシナリオ入力画面４００のハザード４１２に対応する適切な障害原因がリコメンデーション木の最下位のＨＣＦノードに表示されていないと考えられる場合に、リスク分析の実施者がヒントワードのみを構成情報として持つ空のＨＣＦノードを新たに追加することで、追加されたＨＣＦノード以下に接続される適切なノードまたは木構造がテンプレートデータベース１５０から取得されてリコメンデーション木に追加される。このような処理を繰り返すことにより、シナリオ入力画面４００において適切な障害原因がリコメンデーション木の最下位のＨＣＦノードに表示されるようになり、リスク分析の実施者による対象ハザードの障害要因の特定を効率的に支援することができる。
【０１０１】
図２３は、リスク分析支援装置を実現するコンピュータの一例を示す図である。実施例１および２のリスク分析支援装置１００，１００Ｂを実現するコンピュータ５０００は、ＣＰＵ（Central  Processing  Unit）５３００、ＲＡＭ（Random  Access  Memory）等のメモリ５４００、入力装置５６００（例えばキーボード、マウス、タッチパネル等）、および出力装置５７００（例えば外部ディスプレイモニタに接続されたビデオグラフィックカード）が、メモリコントローラ５５００を通して相互接続される。コンピュータ５０００において、リスク分析支援装置１００，１００Ｂを実現するためのプログラムがＩ／Ｏ（Input／Output）コントローラ５２００を介してＳＳＤやＨＤＤ等の外部記憶装置５８００から読み出されて、ＣＰＵ５３００およびメモリ５４００の協働により実行されることにより、リスク分析支援装置１００，１００Ｂが実現される。あるいは、リスク分析支援装置１００，１００Ｂを実現するためのプログラムは、ネットワークインターフェース５１００を介した通信により外部のコンピュータから取得されてもよい。
【０１０２】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例を含む。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【０１０３】
１００，１００Ｂ…リスク分析支援装置、１１０，１１０Ｂ…ユーザインタフェース部、１１１…制御構造図入力部、１１２…リコメンデーションインタフェース部、１１３…シナリオ入力部、１２０，１２０Ｂ…シナリオリコメンデーション部、１２１…制御ループ探索部、１２２…リコメンデーション木生成部、１２３…リコメンデーション出力部、１３０…シナリオ取込部、１４０…分析結果データベース、１５０…テンプレートデータベース、５０００…コンピュータ、５１００…ネットワークインターフェース、５２００…コントローラ、５４００…メモリ、５５００…メモリコントローラ、５６００…入力装置、５７００…出力装置、５８００…外部記憶装置。
【図１】
2020017238.tif 000003
【図２】
2020017238.tif 000004
【図３】
2020017238.tif 000005
【図４】
2020017238.tif 000006
【図５】
2020017238.tif 000007
【図６】
2020017238.tif 000008
【図７】
2020017238.tif 000009
【図８】
2020017238.tif 000010
【図９】
2020017238.tif 000011
【図１０】
2020017238.tif 000012
【図１１】
2020017238.tif 000013
【図１２】
2020017238.tif 000014
【図１３】
2020017238.tif 000015
【図１４】
2020017238.tif 000016
【図１５】
2020017238.tif 000017
【図１６】
2020017238.tif 000018
【図１７】
2020017238.tif 000019
【図１８】
2020017238.tif 000020
【図１９】
2020017238.tif 000021
【図２０】
2020017238.tif 000022
【図２１】
2020017238.tif 000023
【図２２】
2020017238.tif 000024
【図２３】
2020017238.tif 000025