(57)【要約】【課題】発見し難い、異常や例外のソフトウェア仕様を利用者に判り易い形で提示することができるソフトウェア開発支援システムを提供することにある。【解決手段】ソフトウェア開発支援システムＡでは、デバイス名と属性と起きる可能性がある故障パターンとを記述したデバイスＤと、デバイスＤ間で伝達されるキャリアＣｒと、デバイスＤとキャリアＣｒの関連を示すデバイスダイアグラムと、デバイスＤ上で処理されるプロセスＰと該プロセスＰの条件とを示すプロセスダイアグラムと、デバイスダイアグラムとプロセスダイアグラムとの間の関連を表す矢印Ａｒとからなる情報フローダイアグラムが入力されると、演算処理装置１内の分析機能部１ｂが組込みシステムの機能面での障害を情報フローダイアグラムの参照により取得し、当該障害に基づいたシナリオをソフトウェアの仕様を決める情報として表示装置のような出力手段２ｂを介して提示する処理を行う。【選択図】図１
2007206977.tif 000002
【特許請求の範囲】
【請求項１】
デバイス名と属性と起きる可能性がある故障パターンとを記述したデバイス要素と該デバイス要素間で伝達される情報とからなり、前記デバイス要素と前記情報との関連を示すデバイスダイアグラムと、前記デバイス要素上で処理されるプロセスと該プロセスの条件とを示すプロセスダイアグラムと、前記デバイスダイアグラムと前記プロセスダイアグラムとの間の関連を表す有向枝と、から構成される情報フローダイアグラムを有し、開発対象のソフトウェアを組み込むシステムの機能面での異常事象を前記情報フローダイアグラムの参照により取得して、取得した前記異常事象に基づいた情報を前記ソフトウェアの仕様を決める情報として出力手段を介して提示する処理部を備えていることを特徴とするソフトウェア開発支援システム。
【請求項２】
前記処理部は、前記デバイスダイアグラムでの特定のデバイス要素における特定の故障パターンを選択するとともに、前記有向枝を用いて前記故障パターンが発生した場合のフローを前記情報フローダイアグラム上に表し、前記フローにより前記故障パターンの影響で引き起こされる前記異常事象を取得することを特徴とする請求項１記載のソフトウェア開発支援システム。
【請求項３】
前記デバイスダイアグラムでの特定のデバイス要素における特定の故障パターンが重大リスクとして選択されると、この選択に対応して前記処理部には前記情報フローダイアグラムを参照する中で、前記重大リスクを経由する仕様の存在可能性を分析する重大リスク分析部を具備していることを特徴とする請求項１又は２記載のソフトウェア開発支援システム。
【請求項４】
前記プロセスダイアグラム上のプロセスと前記デバイスダイアグラム上の前記デバイス要素及び前記情報とからなる重大リスクが予め選択されると、この選択に対応して、前記処理部には前記重大リスクに対して、該重大リスクへ到達する前記情報フローダイアグラム上のパスの検索と、検索されたパス上の重大リスクが発生し得る状況の分析とを行って、当該重大リスクの発生原因を分析する原因分析部を備えていることを特徴とする請求項１乃至３の何れか記載のソフトウェア開発支援システム。
【請求項５】
前記異常事象の発生が想定されるプロセスダイアグラム上のプロセスが選択されると、当該プロセスに対して有向枝で繋がれる前記デバイスダイアグラム上のデバイス要素が前記重大リスクとして設定されることを特徴とする請求項３又は４記載のソフトウェア開発支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組込みソフトウェアの分析支援に用いるソフトウェア開発支援システムに関するものである。
【背景技術】
【０００２】
近年、組込みシステム用のソフトウェアは、高機能化や複雑化に加え、開発期間の短縮に対するニーズが強まっており、品質要件の確保が重要な課題となっている。組込みシステム（製品）は、ソフトウェアを意識しない一般不特定ユーザにより、不特定環境下でそれぞれの用途に合わせて運用されるため、安全・安心・長寿命な動作が期待されている。
【０００３】
そのような品質確保を行うため、ソフトウェアの７０％強は通信エラー対応や、信号のノイズ除去、誤操作対応、障害回避機能といった非正常系であるエラー処理のソフトウェアである。しかし、このような非正常系のソフトウェアの仕様はハードウェアの知識と、システムの動作環境の知識が必要となるため、ソフトウェア開発者にとって見落とし易い。実際に、そのような仕様の抜けが、開発見積もりの誤り、設計やり直しによる開発遅れ、或いは、テスト仕様の抜けによる製品の品質や安全の問題となっている。
【０００４】
一方、そのようなソフトウェアの障害を分析するシステムが従来提供されている（例えば特許文献１）。このシステムはソフトウェアにおいて発生した障害の名称や、障害が発生した環境、症状や対応者が特定した発生原因、登録した日付などを登録し、これら登録した情報を用いて、障害の分析やグラフ化などを自動的に実行し、発生原因の割合の分析を行うものである。
【０００５】
また商品出荷後におけるフィールド稼働後の障害情報の管理を含めてハードウェアの障害を他面的に分析するシステムが提供されている（特許文献２）。
【０００６】
ここで特許文献１に示されるシステムはソフトウェアの障害管理を行うシステムであるが、ソフトウェアを作成後における障害分析に使用するものであって、ソフトウェアを作成するに当たって障害等の分析を行い作成しようとするソフトウェアの仕様に盛り込むというものではなかった。
【０００７】
また特許文献２に示されるシステムもフィールド稼働後の障害管理を目的とするものであり、特許文献１と同様にソフトウェアを作成するに当たって障害等の分析を行い作成しようとするソフトウェアの仕様に盛り込むというものではなかった。
【０００８】
そこで本発明者らは、ソフトウェア使用マニュアルに記述されているよな設計時に予期でき、定義される振る舞いなどの正常系に対して、ハードウェアの故障や異常動作及び劣化、動作環境におけるオーバーロード、誤操作、誤使用、自然環境における高温、信号ノイズ、雨など正常系から逸脱する非正常系に対応するための仕様を正しく効率的に設定でき、開発対象のソフトウェアの品質改善が図れるソフトウェア開発支援システムを提案している（非特許文献１）。
【特許文献１】特開２０００−２９３４１１号公報（段落００２９〜００３２）
【特許文献２】特開２００３−２３３６８６号公報（段落００１４〜００１９）
【非特許文献１】情報処理学会研究報告  Ｖｏｌ．２００４，Ｎｏ．８７２００４年８月１９日〜２０日発行（  「組込みソフトウェア非正常系の概念モデル」ｐ１０５    新屋敷泰史、三瀬敏朗  江浦洋平、畑中久典、橋本正明、鵜林尚靖、片峯恵一  中谷多哉子）（「組込みソフトウェア使用抽出のための非正常系分析マトリクス」ｐ１１３  三瀬敏朗、新屋敷泰史  橋本正明、鵜林尚靖、片峯恵一、中谷多哉子）  発行人  社団法人  情報処理学会  湖東俊彦
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、非特許文献１に開示されているソフトウェア開発支援システムは、開発対象のソフトウェアを組み込むシステムの異常を、デバイス間の情報のやりとりに問題（異常）が生じたことのみで表現した形で提示するものであったため、デバイスの異常が組み込むシステムの機能においてどのような異常として認識されているかを、ソフトウェア開発支援システムの利用者には判り難いという課題があった。
【００１０】
またデバイス間の情報のやりとりを単純に追跡したのみで、全てのデバイスについて全ての情報の正常・異常の組合せを追跡せざるを得なかったため、実質上問題なしと判断できるようなノイズとなる追跡結果が多数混入する恐れがあった。
【００１１】
本発明は、上述のような点に鑑みて為されたもので、その目的とするところは、発見し難い、異常や例外のソフトウェア仕様を利用者に判り易い形で提示することができるソフトウェア開発支援システムを提供することにある。
【課題を解決するための手段】
【００１２】
上述の目的を達成するために、請求項１の発明では、デバイス名と属性と起きる可能性がある故障パターンとを記述したデバイス要素と該デバイス要素間で伝達される情報とからなり、前記デバイス要素と前記情報との関連を示すデバイスダイアグラムと、前記デバイス要素上で処理されるプロセスと該プロセスの条件とを示すプロセスダイアグラムと、前記デバイスダイアグラムと前記プロセスダイアグラムとの間の関連を表す有向枝と、から構成される情報フローダイアグラムを有し、開発対象のソフトウェアを組み込むシステムの機能面での異常事象を前記情報フローダイアグラムの参照により取得して、取得した前記異常事象に基づいた情報を前記ソフトウェアの仕様を決める情報として出力手段を介して提示する処理部を備えていることを特徴とする。
【００１３】
請求項１の発明によれば、あるデバイス要素の異常が開発対象のソフトウェアを組み込むシステムの機能において、どのような異常として認識されるかを、利用者（ソフトウェア開発者）が容易に知ることが可能となるとともに、前記機能において発生した異常や、それに対する異常処理が、別の機能において影響を及ぼす可能性を記述することも可能となり、より発見し難い異常や例外のソフトウェア仕様を利用者に提示することができる。
【００１４】
請求項２の発明では、前記処理部は、前記デバイスダイアグラムでの特定のデバイス要素における特定の故障パターンを選択するとともに、前記有向枝を用いて前記故障パターンが発生した場合のフローを前記情報フローダイアグラム上に表し、前記フローにより前記故障パターンの影響で引き起こされる前記異常事象を取得することを特徴とする。
【００１５】
請求項２発明によれば、異常事象の情報を判り易いフローという形で示すことができる。
【００１６】
請求項３の発明では、請求項１又は２の発明において、前記デバイスダイアグラムでの特定のデバイス要素における特定の故障パターンが重大リスクとして選択されると、この選択に対応して前記処理部には前記情報フローダイアグラムを参照する中で、前記重大リスクを経由する仕様の存在可能性を分析する重大リスク分析部を具備していることを特徴とする。
【００１７】
請求項３の発明によれば、重大リスク分析部が重大リスクへの到達可能性がないと判断された時点で情報フローダイアグラムの参照を中止したり、分析結果内から重大な問題となり得るデバイス要素に関するソフトウェア仕様のみを選別して利用者へ提示することや、重大リスクを経由するソフトウェア仕様を優先的に利用者へ提示することが可能となり、処理部での演算処理時間の短縮化と、利用者の利便性を高めることが可能となる。
【００１８】
請求項４の発明では、請求項１乃至３の何れかの発明において、前記プロセスダイアグラム上のプロセスと前記デバイスダイアグラム上の前記デバイス要素及び前記情報データとからなる重大リスクが予め選択されると、この選択に対応して前記処理部には前記重大リスクに対して、該重大リスクへ到達する前記情報フローダイアグラム上のパスの検索と、検索されたパス上の重大リスクが発生し得る状況の分析とを行って、当該重大リスクの発生原因を分析する原因分析部を備えていることを特徴とする。
【００１９】
請求項４の発明によれば、開発対象のソフトウェアにおいて回避すべき重大リスクに対して、その発生原因を優先して自動的に提示することができ、そのためソフトウェア開発者が想定しなかった発生原因の発見が可能となる。
【００２０】
請求項５の発明では、請求項３又は４の発明において、前記異常事象の発生が想定されるプロセスダイアグラム上のプロセスが選択されると、当該プロセスに対して有向枝で繋がれる前記デバイスダイアグラム上のデバイス要素が前記重大リスクとして設定されることを特徴とする。
【００２１】
請求項５の発明によれば、重大リストを設定する際に、予め異常事象が起きることが想定できるプロセスを決めれば、当該プロセスのデータとともに重大リスクのデータとして設定するデバイス要素及び情報が情報フローダイアグラム上から見つけ出すことができ、重大リストの設定の容易に行え、また自動化も可能となる。
【発明の効果】
【００２２】
本発明は、あるデバイス要素の異常が開発対象のソフトウェアを組み込むシステムの機能において、どのような異常として認識されるかを、利用者が容易に知ることが可能となるとともに、前記機能において発生した異常や、それに対する異常処理が、別の機能において影響を及ぼす可能性を記述することも可能となり、より発見しにくい異常や例外のソフトウェア仕様を利用者に提示することができるという効果ある。
【発明を実施するための最良の形態】
【００２３】
まず本発明のソフトウェア開発支援システムの対象となるソフトウェアが組み込まれた構築される組込みシステムについて簡単に説明する。
【００２４】
組込みシステムは製品毎に様々なハードウェアの構成が存在しており、主にシステム利用者（ユーザ）の操作や動作環境から来る信号によって動作する。すなわち、ユーザや動作環境の要素がシステムのアクターとなり、そこからシステムに対して、トリガとなる信号が発せられる。アクターから発せられた信号は、各デバイスを通り、マイコン内のソフトウェアで認識され、処理される。ソフトウェア処理された後は、各デバイスに意図通りに動作するように信号が送られ、システムとして動作する。
【００２５】
ここで、正常系のアクターはシステムに対して要求を発し、システムはその要求を正確に解釈し、満たすように振る舞うことによって製品としての役割を果たす。一方、アクターの要求を誤って解釈してしまうことや、要求に反する振る舞いを行うことはシステムの誤動作である。
【００２６】
また、誤ったアクターから来る信号に対してアクションを起こすことも、システムの誤動作である。システム側から見れば、ある情報を受け取り、解釈し、処理を行い、また情報を出力するという過程において、何らかの原因によって、正式な情報が誤った情報に変化する。すなわち、システムの誤動作の原因は、システム内或いは動作環境において誤った情報が伝達されるところにある。
【００２７】
更にまた、システムの誤動作により、障害を引き起こす場合がある。この障害発生も情報の誤伝達により、引き起こされると捉えている。何らかの要因によって、情報の誤伝達が起こる。更にその誤った情報が伝達されて、他のデバイスで解釈され、処理され、出力され伝達される。このように、障害の発生は、ある要因から誤情報が伝達され、その誤情報が次々に伝達されるという障害のシナリオを持つ。
【００２８】
本発明のソフトウェア開発支援システムでは、組込みシステムと動作環境の中を伝達される情報のフローに着目し、組込みシステム内の各デバイスによって伝達される情報と、システムと交信する動作環境の中を伝達される情報について、そのフローを、ダイアグラムを用いて視覚化するとともに、ダイアグラム上で情報フローを分析し、上述のシナリオを抽出することによって、非正常系を分析するという点に特徴を有する。
【００２９】
また本発明のソフトウェア開発支援システムでは、組込みシステムを情報の伝達により動作していると捉えている。つまり電気的デバイスの間の接続に着目した場合、実際には、その電気信号は単に電圧や周波数といった物理的パラメータを運んでいるだけでなく、システムが意思決定するための情報（例えば、モータＯＮの信号やセンシングした値などの情報）を含んでおり、デバイス間を流れる電気信号や、動作環境と組込みシステムの間を流れる光や温度などの物理的媒体は情報を運び、組込みシステムにとって意思決定に必要な情報は上述物理的媒体（以下キャリアという）によって伝達されていると捉えるのである。
【００３０】
以上のような組込みシステム及び情報伝達の概念に基づいた本発明のソフトウェア開発支援システムを実施形態により更に詳説する。
（実施形態１）
本実施形態のソフトウェア開発支援システムＡは、図１に示すように演算処理装置１と、ユーザインターフェース部（ユーザＩ／Ｆ部）２と、記憶部３とで構成されたコンピュータシステムにおいて、演算処理装置１でソフトウェア開発支援用のアプリケーションが実行されることで実現される。
【００３１】
ここで、ユーザＩ／Ｆ部２はキーボードやポインティングデバイスからなる入力手段２ａと、モニタ装置からなる出力手段２ｂを備えている。
【００３２】
演算処理装置１はソフトウェア開発支援システムＡの利用者（以下単に利用者という）によって入力されるデータに基づいて図２に示すような情報フローダイアグラム＜以下ＩＦＤ（Information Flow Diagram）と略す＞を作成するためのダイアグラム編集機能部１ａと、後述する分析機能部１ｂとからなる開発支援のための処理部として備えている。
【００３３】
ダイアグラム編集機能部１ａは、ソフトウェア開発支援システムＡの利用者がダイアグラムを作成するためのエディタ機能及びＧＵＩ機能を備え、モニタ装置からなる出力手段２ｂを通じてダイアグラム作成画面を提示し、このダイアグラム作成画面上からポイントデバイスやキーボード等の入力手段２ａを通じてダイアグラムのデータを利用者が入力することで、所定のダイアグラムの編集と作成する処理を行う。
【００３４】
ＩＦＤは、デバイスダイアグラムと、プロセスダイアグラムとで構成され、そのうちのデバイスダイアグラムは、組込みシステム中のデバイスや、動作環境に含まれる組込みシステムのユーザなどのオブジェクトをモデリング対象ドメインに含むもので、該モデリング対象ドメインには実際にシステムを構成するデバイスのインスタンスを記述する。
【００３５】
ここでモデリング対象ドメインは、図３（ａ）に示すように表現された上述した組込みシステムのデバイスに対応するデバイス要素＜以下デバイスという＞Ｄと、図３（ｂ）で表現された物理的媒体たるキャリアに対応するキャリア要素＜以下キャリアという＞Ｃｒとで構成される。
【００３６】
デバイスＤは矩形のシンボルで表され、名前（組込みシステムでのデバイスの名前）と属性及び当該デバイスで起きる可能性のある故障のパターンのデータを記述するようになっており、故障パターンには例えば、ノイズ、断線、劣化等の種類を記述する。また属性には分析に必要な当該デバイスの性質を示すパラメータを記述する。そして作成画面上において利用者は物理的な繋がりがあるデバイスＤ同士には有向枝（以下矢印という）Ａｒを用いて繋ぎ、ダイアグラムを作成する。この矢印ＡｒはキャリアＣｒを運ぶパスを表すもので、図３（ｂ）に示すように矢印Ａｒ上にキャリアＣｒを示す。このキャリアＣｒは菱形のシンボルで表し、組込みシステムにおけるキャリア（物理的媒体）の名前が付記されるとともに属性及び故障パターンが記述される。図２の下段部分（Ｉ）がこのデバイスダイアグラムの記述例を示す。
【００３７】
一方プロセスダイアグラムは、アクティビティ・モデリング手法とも呼ばれるＩＤＥＦ０（Integrated Definition methods）を基に作成される。ここでＩＤＥＦ０とは、企業などの活動を機能的な側面から体系付けた静的機能モデルを構築するための手法で、業務プロセスをアクティビティという単位に分割し、夫々のアクティビティに対して、入力と出力及びコントロールとメカニズムを指定するようになっており、アクティブティは、入力情報を基に、メカニズムによって処理を行い、出力情報を生成する。メカニズムの処理を行う際の条件がコントロールである。
【００３８】
そして本発明ではＩＤＥＦ０を用いて組込みシステムのモデリングを行うものであり、このモデリングのためのプロセスダイアグラムはＩＤＥＦ０に従ってデバイスダイアグラムに記述されたデバイスＤ上で処理されるアクティブティ（プロセスＰ）の名称及び入力（インプット）と出力（アウトプット）、コントロール及びメカニズムを記述する（図３（ｃ）参照）。そしてメカニズムとしてはデバイスダイアグラムから夫々のプロセスＰに矢印Ａｒを用いて繋ぐことで、図２の上段部分（II）で示すようなプロセスダイアグラムを作成するのである。
【００３９】
ここで、ＩＤＥＦ０は段階的に詳細化して記述可能なため、初めは最上位階層のプロセスＰのみ記述する。その後、必要に応じてプロセスＰ毎に下位の階層として詳細に記述することで図２で示すような正常系のＩＦＤが完成することになる。
【００４０】
このように作成が完了されたＩＦＤは利用者の指示により演算処理装置１の制御の下で一旦記憶部３に記憶される。この後、当該ＩＦＤに対して非正常系の分析を演算処理装置１に分析機能部１ｂによって行われることになる。
【００４１】
ここで演算処理装置１の分析機能部１ｂによる分析は、ＦＭＥＡ（Fai1ure Modes and Effect Analysis）を用いて行うようになっており、分析機能部１ｂは、まず作成されたＩＦＤを記憶部３から読み出して、当該ＩＦＤ中のデバイスダイアグラムのデバイスＤに着目し、そのデバイスＤの故障パターンを一つ選択し、その故障パターンが発生した場合の情報フローを実際にＩＦＤ上に表し、デバイス故障が、組込みシステムに与える影響を分析する。そして故障パターンの影響がソフトウェアで正常に処理される場合は問題無いと判定する。一方、正常に処理されずに障害を引き起こす場合には、ＩＦＤ上で、故障パターンから障害に至るまでの情報フローが存在することになり、その情報フロー、つまり上述の障害のシナリオ（異常事象）を抽出する。このように、分析機能部１ｂはＦＭＥＡを適用することによって、デバイス故障が発生した場合の組込みシステムの振る舞いを分析して、障害のシナリオを抽出し、この抽出した障害のシナリオに対応した発見し難い、異常や例外のソフトウェア仕様を故障パターンから障害に至るまでの障害のシナリオを利用者に判り易い形で出力手段２ｂにより表示する。
【００４２】
次に本実施形態を具体事例により詳説する。
【００４３】
まず利用者は開発支援対象のソフトウェアを組み込むシステムの実現する機能を、開発支援対象のソフトウェアの処理の流れに沿って分割したプロセスダイアグラムと、機能を実現するデバイスＤとキャリアＣｒとからなるデバイスダイアグラムをソフトウェア開発支援システム１の入力手段１ａを用いて入力する。ここでデバイスダイアグラム上のデバイスＤ及びキャリアＣｒの入力においては、デバイスＤの名前・属性・故障パターンとも入力されるものとする。尚利用者が名前を入力するとソフトウェア開発支援システムＡ内に設けた知識ベース（図示せず）からそれに対応する属性・故障パターンを検索して自動的に補完入力がなされるようにしても良い。
【００４４】
さてデバイスダイアグラム上の各デバイスＤに対し、全ての属性が正常の範囲にあるものと想定する。この時、属性を持たないデバイスＤは、その入力となるキャリアＣｒを経由した前段階のデバイスＤの属性のデータを引き継いで設定する。例えば人〜ミルクモード操作意図、デバイスＤではパネル〜表示温度…４０℃・認識操作〜ミルクモード、ヒータ〜温度…４０℃、水〜水温…４０℃・水量…１．２リットル、サーミスタ〜温度…４０℃、水位センサ〜水量…水位センサ以上、蓋センサ〜認識状態…閉じ、マイコン〜水温…４０℃・水量…水位センサ以上というように記述する。
【００４５】
かようにしてデバイスダイアグラムのデータ入力が終了して、利用者が分析開始の入力を入力手段２ａにより行うと、演算処理装置１の分析機能部１ｂはデバイスダイアグラム上の全てのデバイスＤに対して、次の（ａ）〜（ｊ）のステップに沿って処理を実施する。
【００４６】
ここではまず名前がサーミスタのデバイスＤが選択されたものとする。
（ａ）選択されたデバイスＤの全ての故障パターンに対して、以下の処理を実施する。
【００４７】
＜例：ここでは故障（固定）が選択されたものとする。＞
（ｂ)  次に選択された故障パターンが発生したと仮定し、この故障パターンが発生した場合に選択されたデバイスＤの出力が受ける影響に従って、出力側のキャリアＣｒの属性を変化させる。
【００４８】
＜例：ここでは、サーミスタの出力である電気信号の値を、２０℃を意味する信号に固定されたものとする。＞
（ｃ) （ｂ）のステップで変化した信号がそれを入力とするデバイスＤに入力したものとする。
【００４９】
＜例：ここではマイコンに２０℃という情報が入力されたものとする。＞
（ｄ） 変化した信号を入力されたデバイスＤの処理方法に従い、デバイスＤの出力側のキャリアＣｒを決定する。
【００５０】
＜例：ここでは、マイコンはパネルからミルクモードの操作受付、サーミスタからは２０℃、水位センサからは水位センサ以上、蓋センサからは閉じ、という情報をそれぞれ獲得し、ヒータのＯＮ制御が必要と判断することから、出力側のキャリアＣｒとしてヒータＯＮを意味する電気信号を出力するものとする。＞
(ｅ) 上述の（ｃ）、（ｄ）のステップを同様に繰り返して実施する。
【００５１】
＜例：ここでは、ヒータに対してマイコンからヒータＯＮを意味する電気信号が入力されたものとする。更にヒータの出力する熱が水を発熱させる。また水から出力された水温はサーミスタに入力される。＞
(ｆ) 上述の（ｃ）、（ｄ）のステップを繰り返す中で、当初選択された故障パターンを持つデバイスＤに再び到達した場合、そのデバイスＤの処理は当初選択された故障パターンがあるという前提のもとで仮定する。
【００５２】
＜例：ここでは、ヒータによって熱せられた６０℃という水温情報がサーミスタに入力されるが、サーミスタは（ａ）において故障（固定）という故障パターンが選択されているため、サーミスタからの出力としては２０℃を意味する信号となる。＞
(ｇ) 上述の（ｃ）〜（ｆ）のステップを繰り返した結果、出力のないデバイスＤに到達するか、デバイスダイアグラムがループ状となっていることを、過去において上述の処理中で参照したことのあるデバイスＤに到達したことで検出した場合、それまでのデバイスＤとキャリアＣｒの間の情報の流れをデバイスダイアグラム上中間データとする。
【００５３】
＜例：ここでは（ｆ）のステップで再度サーミスタに到達したので、サーミスタ→マイコン→ヒータ→水→サーミスタの一連の流れをデバイスダイアグラム上中間データとする。＞
(ｈ) デバイスダイアグラム上中間データにおける各デバイスＤについて、対応するプロセスダイアグラムのプロセスＰの名称を用いて、出力データを作成する。出力データの作成においては、プロセスダイアグラムのプロセスＰの名称をデバイスダイアグラム上での検索順に配置する。又は、配置後の機能名称間にキャリアＣｒの名前を補っても良い。
【００５４】
＜例：サーミスタ→マイコン→ヒータ→水→サーミスタのデバイスダイアグラム上中間データから、以下の出力データを得る。＞
「故障（固定）しているサーミスタはマイコンに２０℃という情報を送信する。マイコンはミルクモード指示・２０℃・水位センサ以上の水量・蓋閉じという情報からヒータにＯＮ情報を伝える。ヒータは水に熱を伝える。水は故障（固定）しているサーミスタに６０℃という情報を伝える。故障（固定）しているサーミスタはマイコンに２０℃という情報を送信する。」
(ｉ) 出力データを作成したら、デバイスダイアグラム上中間データの最終から一つ前のデバイスにおいて、別の出力の有無を検索する。別の出力がある場合には、同様に出力となるキャリアから処理を継続する。別の出力がない場合には、更にデバイスダイアグラム上中間データの一つ前のデバイスＤに戻る。
【００５５】
＜例；ここでは、水から水位センサへ水量という出力があることが判かる。＞
同様の処理を行うと、水位センサ（過去に参照したデバイス）で出力データが作成される。
ただし、この場合の出力データは、「故障（固定）しているサーミスタはマイコンに２０℃という情報を送信する。マイコンはミルクモード指示・２０℃・水位センサ以上の水量・蓋閉じという情報からヒータにＯＮ情報を伝える。ヒータは水に熱を伝える。水は水位センサに１．２リットルという情報を伝える。水位センサはマイコンに水位センサ以上という情報を伝える。」となり、障害の発生を意味するデータとはならない。
(ｊ) デバイスダイアグラム上中間データに戻った結果、最初に選択したデバイスＤまで戻った場合には、そのデバイスＤにおける別の故障パターンを選択し、（ｂ）〜（ｉ）の処理を実施する。
【００５６】
選択したデバイスＤにおいて、他に故障パターンがない場合には、デバイスＤに対する処理が終了したものと判断する。
【００５７】
而してソフトウェア開発支援システムＡの演算処理装置１の分析機能部１ｂは、全てのデバイスＤに対しての上述の処理が終了した時点で得られている出力データを、開発支援対象のソフトウェアにおける障害のシナリオ、つまり当該支援対象のソフトウェアの非正常系の仕様を決める情報として最終的に出力手段２ｂへ出力して利用者に提示するのある。
（実施形態２）
上述の実施形態１では演算処理装置１の分析機能部１ｂがＦＩＤを用いて機能面で組込みシステムの障害のシナリオを抽出するものであったが、本実施形態は、基本的には実施形態１と同じであるものの、デバイスダイアグラムでの特定のデバイスＤにおける特定の故障パターンを重大リスクとして利用者が選択入力或いは所定の規則に基づいて自動的に選択して設定し、ＦＩＤを参照する中で入力設定された重大リスクを経由する仕様の存在可能性を分析する重大リスク分析機能部１ｃを演算処理装置１に具備している点に特徴がある。
【００５８】
次に本実施形態を具体事例に基づいて詳説する。
【００５９】
まず本実施形態も実施形態１と同様なフローを経て、ＦＩＤが構築する。そして利用者はプロセスダイアグラム上のプロセスＰと、デバイスダイアグラム上のデバイスＤ、キャリアＣｒの値の組からなる重大リスクデータを入力手段２ａにより利用者が入力してダイアグラム編集機能部１ａの働きの下で記憶部３に記憶させる。
【００６０】
＜例：「空焚き」を回避すべき重大リスクと判断して、プロセスダイアグラム上の「加熱処理」、デバイスダイアグラム上の「水量が極めて少ない水（水温は問わない）」というデータを重大リスクデータとして利用者は入力手段２ａから入力する。＞
次に実施形態１の事例と同様にフローを経て、ソフトウェア開発支援システムＡの演算処理装置１の分析機能部１ａによる処理を行い、出力データを得るとともに各出力データを得る基となったデバイスダイアグラム上中間データを記憶部３に記憶しておく。
【００６１】
次に演算処理装置１の重大リスク分析機能部１ｃは、出力データと、その基となったデバイスダイアグラム上中間データの組に対して、利用者が入力した重大リスクデータと一致するものを検索する。
【００６２】
＜例：ここでは、「水位センサ：故障（固定）→マイコン→ヒータ→水→水位センサ：故障（固定）」というデバイスダイアグラム上中間データと、「故障（固定）している水位センサは水位センサ以上の水量と水量を測定する。マイコンはミルクモード指示・２０℃・水位センサ以上の水量・蓋閉じという情報からヒータＯＮ制御する。ヒータは加熱処理する。水は水温上昇し、水量は一定である。故障（固定）している水位センサはマイコンに水位センサ以上の水量という情報を送信する。」という出力データに、「加熱処理」「水量は一定である」というデータが含まれると判断する。＞
そして重大リスク分析機能部１ｃは、選択された出力データを優先出力対象として取り扱う。
【００６３】
以下、上述の処理を全ての出力データとデバイスダイアグラム上中間データの組に対して実施する。
【００６４】
そして演算処理装置１は重大リスク分析機能部１ｃで優先出力対象とした出力データを出力手段２ｂで表示させる処理を行うのである。
（実施形態３）
ところで、上述の実施形態２では、特定のデバイスＤにおける特定の故障パターンに対応する障害を重大リスクとして利用者が入力設定するようになっているが、本実施形態ではプロセスダイアグラム上のプロセスＰと、デバイスダイアグラム上のデバイスＤ、キャリアＣｒの値の組とからなる重大リスクを利用者が予め入力して記憶部３に記憶させておき、この重大リスクへ到達するＦＩＤ上のパスの検索と、検索されたパス上の重大リスクが発生し得る状況の分析とを繰り返して行って、当該重大リスクの発生原因を分析する原因分析機能部１ｄを演算処理装置１に備えている点に特徴がある。
【００６５】
次に本実施形態を具体事例により説明する。
【００６６】
まず実施形態２と同様のフローを経て、利用者によりＦＩＤの構築と、特定のデバイスＤやキャリアＣｒに関するデータやプロセスＰに関するデータからなる重大リスクの入力を行う。
【００６７】
次にこれら入力されたデータに基づいてソフトウェア開発支援システムＡの演算処理装置１の原因分析機能部１ｄは、設定されている重大リスクデータ（例えば、「水量が極めて少ない水」と「加熱処理」）を同時に満たす検索用初期条件データを作成する。
【００６８】
具体的には、重大リスクデータのデバイスＤに関するデータから、そのデバイスＤへの入力となるキャリアＣｒを経由して前段階のデバイスＤをたどり、前段階のデバイスＤに対応するプロセスＰが重大リスクデータのプロセスＰに関するデータと一致する条件を検索する。
【００６９】
＜例：図２を参照すれば「水量が極めて少ない水」に対応するデバイスＤ１への入力であるキャリアＣｒ１の「熱」を経由してデバイスＤ２の「ヒータ」へとたどる。このデバイスＤ２に対応するプロセスダイアグラムのプロセスＰは矢印Ａｒ１で繋がれた「加熱処理」と記述されているプロセスＰ１であって、この「加熱処理」は重大リスクデータであることから、「加熱処理」「水量が極めて少ない水」の組を検索用初期条件データとする。＞
次に原因分析機能部１ｄは、例えば「ヒータ」の「加熱処理」が行われる条件を検索する。ここでは、「電源が入力される」「マイコンから電気信号でヒータＯＮを受ける」ことが条件となる。
【００７０】
上述の検索により得た各条件を上述の検索用初期条件データに加え、検索中間データとする。検索中間データのうち、上述の検索により新たに加わった「電源が入力される」「マイコンから電気信号でヒータＯＮを受ける」の夫々について、上述と同様にそれらが行われる条件を検索する。
【００７１】
原因分析機能部１ｄは以上の処理を繰り返して、入力がないデバイスＤか、既に検索中間データに入っているデバイスＤに行き当たるまで検索を続ける。
【００７２】
ここでは、「人」や「水」に行き当たるまで検索が続けられることになる。
行き当たったら（６）か（７）を行い、まだ検索していない条件を検索する。
【００７３】
そして既に検索中間データに入っているデバイス要素に行き当たった場合、それが中間データに入っている属性の値や故障パターンの値と一致しなければ、それは矛盾した条件として削除可能と判断する。逆に一致したら、それを中間データに加える。
【００７４】
＜例：中間データ内に「水量が極めて少ない水」が入っていたとして、検索の途中で「水量が多い水」という条件が出てきたら、「水量が多い水」は除外してよい。＞
また入力がないデバイスＤに行き当たったら、それを中間データに加える。
【００７５】
＜例：検索して「人が沸騰指示する」という条件が出てきたら、「人」に対する入力はないので、「人が沸騰指示する」を中間データに加える。＞
以上の処理を繰り返して得られた結果が、重大リスクを発生させる可能性のある障害のパターンであるので、該結果を出力データとして実施形態１、２と同様の方法で出力手段２ｂにより表示させる。
【００７６】
＜例：「水量が極めて少ない水」「加熱処理」という重大リスクを発生させる可能性のある障害パターンとして、「人が沸騰指示して、パネルが沸騰指示を伝えて、水位センサ：故障（固定）が、水位センサ以上の水量があると測定して、マイコンがヒータＯＮをして、ヒータが加熱処理して、水量が極めて少ない水が水温上昇する」「人が沸騰指示して、パネルが沸騰指示を伝えて、ポット筐体が転倒して、水位センサが誤った検知をして、マイコンがヒータＯＮをして、ヒータが加熱処理して、水量が極めて少ない水が水温上昇する」などのパターンが出力される。＞
ところで、利用者が重大リストデータを設定入力する際に、障害（異常事象）の発生が想定できるプロセス（例えば上述のプロセスＰ２をプロセスダイアグラム上から選択することで、該プロセスＰ２に矢印Ａｒ１で繋がるデバイスＤ２、更にキャリアＣｒ１、デバイスＤ１と辿るこで、重大リスクデータとして設定すべきデバイスＤ１やキャリアＣｒ１を情報フローダイアグラムから容易に見つけることができ、プロセスＰを決めればデバイスＤ及び関連するキャリアＣｒからなるデータを重大リスクのデータとして設定することができることも可能なる。
【００７７】
尚上述の分析手法以外に体系的分析手法を用いても良い。この場合まず、正常系のＩＦＤを作成し、正常系情報フローに対して逸脱する想定事項を示すガイドワードを適用する。そして本来伝達され得る正常情報がガイドワードに従って逸脱した場合を想定することによって、逸脱した情報がシステムにどのような影響を与えるか分析する。その逸脱情報は最終的に障害に至る場合と正常に処理される場合とがあるが、その中で障害に至る逸脱の場合、逸脱する原因を分析し、ブレイクダウンしていく中で、デバイスやパスの故障パターンを発見できれば、障害が発生する可能性が存在することになる。一方、原因となる故障パターンが存在しなければ、ガイドワードの逸脱そのものが発生しないので、その逸脱に対する処理を追加する必要はない。故障パターンからガイドワードを通過し障害に至る経路において、その経路上の一連の情報の流れを追うことは、障害に至るシナリオを表現している。この障害シナリオが分析の成果物となる。また、非正常系は思いつきにくいため、上述のＦＭＥＡ適用時には障害自体が見落とされやすく、また上述のＦＴＡ適用時には障害の発生原因が見落とされやすい。ＦＭＥＡとＦＴＡは分析の方向が異なるが、分析結果の障害シナリオにおける、故障パターンから障害に至る情報フローは変わらない。すなわち、ＦＭＥＡとＦＴＡは分析過程のある点においてつながる。ＦＭＥＡとＦＴＡを単独で適用するのではなく、ガイドワードとも合わせて適用することによって、個々の適用では双方で見落とされやすい現象を補え、発見しにくい非正常系を抽出できる。
【図面の簡単な説明】
【００７８】
【図１】本発明のソフトウェア開発支援システムの構成図である。
【図２】本発明に用いられる情報フローダイアグラムである。
【図３】本発明に用いられる情報フローダイアグラムの各要素の説明図である。
【符号の説明】
【００７９】
１  演算処理装置
１ａ  ダイアグラム編集機能部
１ｂ  分析機能部
１ｃ  重大リスク分析機能部
１ｄ  原因分析機能部
２    ユーザインターフェース部
２ａ  入力手段
２ｂ  出力手段
３    記憶部
Ａ    ソフトウェア開発支援システム
【図１】
2007206977.tif 000003
【図２】
2007206977.tif 000004
【図３】
2007206977.tif 000005