(57)【要約】【課題】精度良く故障を診断できる電子回路装置、故障診断装置、故障診断システム、及び故障診断プログラムを提供する。【解決手段】電子回路装置が実行する処理手順を記述する全体プログラムを構成するように設計された部分プログラムに生じる故障原因と、故障原因が引起す不具合とを設計により定まる因果関係に基づいて関連付けたモデルを生成するモデル生成手段を有するモデル生成装置と、モデル生成装置が生成したモデルを用いて、全体プログラムを実行する電子回路装置に生じた故障を診断する故障診断手段を有する故障診断装置とを備える。この構成によれば、全体プログラムの設計により定まる因果関係に基づいて、全体プログラムを実行する電子回路装置に発生した故障を精度良く診断できる。【選択図】図１
2008257656.tif 000002
【特許請求の範囲】
【請求項１】
電子回路装置が実行する処理手順を記述する全体プログラムを構成するように設計された部分プログラムに生じる故障原因と、前記故障原因が引起す不具合とを前記設計により定まる因果関係に基づいて関連付けたモデルを生成するモデル生成手段を有するモデル生成装置と、
前記モデル生成手段が生成したモデルを用いて、前記全体プログラムを実行する前記電子回路装置に生じた故障を診断する故障診断手段を有する故障診断装置とを備えることを特徴とする故障診断システム。
【請求項２】
前記設計を表す設計情報に基づいて前記全体プログラムを生成するプログラム生成手段を有するプログラム生成装置を更に備え、
前記モデル生成手段は、前記設計情報に基づいてモデルを生成し、
前記故障診断手段は、前記設計情報に基づいて前記モデル生成装手段が生成したモデルを用いて、前記設計情報に基づいて前記プログラム生成手段が生成した全体プログラムを実行する前記電子回路装置に生じた故障を診断することを特徴とする請求項１に記載の故障診断システム。
【請求項３】
前記設計情報は、前記電子回路装置が実行する処理の手順と前記処理の対象とする情報とで構成されるオブジェクトを用いる設計を表し、
前記部分プログラムは、前記オブジェクトを構成するプログラムを含み、
前記全体プログラムは、前記部分プログラムが表すオブジェクトと、前記オブジェクト間で行われる処理の手順と、前記処理の対象とする情報とで構成されることを特徴とする請求項２に記載の故障診断システム。
【請求項４】
電子回路装置が実行する処理手順を記述する全体プログラムを構成するように設計された部分プログラムに生じる故障原因と、前記故障原因が引起す不具合とを前記設計により定まる因果関係に基づいて関連付けたモデルを生成するモデル生成手段と、
前記モデル生成手段が生成したモデルを用いて、前記全体プログラムを実行する前記電子回路装置に生じた故障を診断する故障診断手段とを備えることを特徴とする故障診断装置。
【請求項５】
電子回路装置が実行する画像処理の手順を記述する全体プログラムを構成するように設計された部分プログラムに生じる故障原因と、前記故障原因が引起す不具合とを前記設計により定まる因果関係に基づいて関連付けたモデルを生成するモデル生成手段と、
前記モデル生成手段が生成したモデルを用いて、前記全体プログラムを実行する前記電子回路装置に生じた故障を診断する故障診断手段とを備えることを特徴とする電子回路装置。
【請求項６】
コンピュータを、
電子回路装置が実行する処理手順を記述する全体プログラムを構成するように設計された部分プログラムに生じる故障原因と、前記故障原因が引起す不具合とを前記設計により定まる因果関係に基づいて関連付けたモデルを生成するモデル生成手段と、
前記モデル生成手段が生成したモデルを用いて、前記全体プログラムを実行する前記電子回路装置に生じた故障を診断する故障診断手段として機能させることを特徴とする故障診断プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子回路装置、故障診断装置、故障診断システム、及び故障診断プログラムに関する。
【背景技術】
【０００２】
従来から、機械装置が故障により停止するまでの動作シーケンスを、動作シーケンスを表す状態遷移図に基づいて解析することで、故障原因を容易に特定できる故障診断装置が知られている（例えば、特許文献１）。
【０００３】
この故障診断装置は、機械装置の動作シーケンスを表す状態遷移図を予め記憶する動作モデルメモリと、動作シーケンスの状態遷移を逐次記憶するトレースメモリと、トレースメモリが記憶した状態遷移を動作モデルメモリが記憶する状態遷移図に基づいてプレイバックするプレイバック手段とを備えることを特徴とする。
【特許文献１】特開平１１‐２５９１２０
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的とするところは、精度良く故障を診断できる電子回路装置、故障診断装置、故障診断システム、及び故障診断プログラムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明に係る故障診断システムは、電子回路装置が実行する処理手順を記述する全体プログラムを構成するように設計された部分プログラムに生じる故障原因と、故障原因が引起す不具合とを設計により定まる因果関係に基づいて関連付けたモデルを生成するモデル生成手段を有するモデル生成装置と、モデル生成手段が生成したモデルを用いて、全体プログラムを実行する電子回路装置に生じた故障を診断する故障診断手段を有する故障診断装置とを備えることを特徴としている。
【０００６】
上記構成において、設計を表す設計情報に基づいて全体プログラムを生成するプログラム生成手段を有するプログラム生成装置を更に備え、モデル生成手段は、設計情報に基づいてモデルを生成し、故障診断手段は、設計情報に基づいてモデル生成手段が生成したモデルを用いて、設計情報に基づいてプログラム生成手段が生成した全体プログラムを実行する電子回路装置に生じた故障を診断する構成を採用できる。
【０００７】
上記構成において、設計情報は、電子回路装置が実行する処理の手順と処理の対象とする情報とで構成されるオブジェクトを用いる設計を表し、部分プログラムは、オブジェクトを構成するプログラムを含み、全体プログラムは、部分プログラムが表すオブジェクトと、オブジェクト間で行われる処理の手順と、処理の対象とする情報とで構成される構成を採用できる。
【０００８】
本発明に係る故障診断装置は、電子回路装置が実行する処理手順を記述する全体プログラムを構成するように設計された部分プログラムに生じる故障原因と、故障原因が引起す不具合とを設計により定まる因果関係に基づいて関連付けたモデルを生成するモデル生成手段と、モデル生成手段が生成したモデルを用いて、全体プログラムを実行する電子回路装置に生じた故障を診断する故障診断手段とを備えることを特徴としている。
【０００９】
本発明に係る電子回路装置は、電子回路装置が実行する画像処理の手順を記述する全体プログラムを構成するように設計された部分プログラムに生じる故障原因と、故障原因が引起す不具合とを設計により定まる因果関係に基づいて関連付けたモデルを生成するモデル生成手段と、モデル生成手段が生成したモデルを用いて、全体プログラムを実行する電子回路装置に生じた故障を診断する故障診断手段とを備えることを特徴としている。
【００１０】
本発明に係る故障診断プログラムは、コンピュータを、電子回路装置が実行する処理手順を記述する全体プログラムを構成するように設計された部分プログラムに生じる故障原因と、故障原因が引起す不具合とを設計により定まる因果関係に基づいて関連付けたモデルを生成するモデル生成手段と、モデル生成手段が生成したモデルを用いて、全体プログラムを実行する電子回路装置に生じた故障を診断する故障診断手段として機能させることを特徴としている。
【発明の効果】
【００１１】
請求項１の構成によれば、全体プログラムの設計により定まる因果関係に基づいて、全体プログラムを実行する電子回路装置に発生した故障を精度良く診断できる。
【００１２】
請求項２の構成によれば、全体プログラムを生成する基礎とした設計情報と同じ情報に基づいて生成したモデルを用いて、全体プログラムを実行する電子回路装置に発生した故障を精度良く診断できる。
【００１３】
請求項３の構成によれば、電子回路装置が実行する処理手順のみならず処理対象とする情報に基づいて、電子回路装置に発生した故障を精度良く診断できる。
【００１４】
請求項４の構成によれば、全体プログラムの設計により定まる因果関係に基づいて、全体プログラムを実行する電子回路装置に発生した故障を精度良く診断できる。
【００１５】
請求項５の構成によれば、全体プログラムの設計により定まる因果関係に基づいて、全体プログラムを実行することで画像処理を行う電子回路装置に発生した故障を精度良く診断できる。
【００１６】
請求項６の構成によれば、全体プログラムの設計により定まる因果関係に基づいて、全体プログラムを実行する電子回路装置に発生した故障を精度良く診断できる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の最良の実施形態について、添付図面を参照しつつ説明する。
【実施例１】
【００１８】
図１は本発明に係る故障診断システムの一実施形態を示す構成図である。
図１に示す故障診断システムは、通信網１００、１又は複数の故障診断装置１０００から１００ｎ、モデル生成装置９１００、及びプログラム生成装置９２００で構成される。
【００１９】
尚、故障診断装置１０００から１００ｎの接続、構成、及び機能は、それぞれほぼ同一であるので、以下単に、故障診断装置１０００についてのみ説明する。
【００２０】
通信網１００は、例えば、ＬＡＮ（Local Area Network ）、ＷＡＮ（Wide Area Network）、ＭＡＮ（Metropolitan Area Network）、又は公衆回線網で構成され、故障診断装置１０００、モデル生成装置９１００、及びプログラム生成装置９２００をそれぞれ通信可能に接続する。
【００２１】
故障診断装置１０００について説明する前に、モデル生成装置９１００について説明する。
モデル生成装置９１００は、例えば、パーソナルコンピュータで構成され、通信網１００を介してプログラム生成装置９２００、及び故障診断装置１０００に接続している。
【００２２】
モデル生成装置９１００は、故障診断モデルを生成する。故障診断モデルとは、電子回路装置である故障診断装置１０００が実行する処理手順を記述する全体プログラム（以下単に、ファームウェア又はＦＷという）を構成するように設計された部分プログラムに生じる故障原因と、故障原因が引起す不具合とを設計により定まる因果関係に基づいて関連付けたモデルであって、故障診断に用いるモデルをいう。
【００２３】
ここで図２を参照して、モデル生成装置９１００の構成について説明する。図２は、モデル生成装置９１００の一構成例を表す機能ブロック図である。
【００２４】
図２に示すモデル生成装置９１００は、情報入力部９１１０、モデル生成部９１２０、記憶部９１３０、管理部９１４０、及び情報通信部９１５０で構成され、それぞれの部は情報の授受が可能なようにバス９１０５を介して接続している。
【００２５】
情報入力部９１１０、モデル生成部９１２０、記憶部９１３０、管理部９１４０、及び情報通信部９１５０が有する各機能は、モデル生成装置９１００が実行するソフトウェア制御により実現される。
【００２６】
ここで、図３を参照して、ソフトウェア制御を実行するためのモデル生成装置９１００のハードウェア構成について説明する。図３は、このソフトウェア制御を実現するためのモデル生成装置９１００のハードウェアの一構成例を表す図である。
【００２７】
モデル生成装置９１００は、例えば、ＣＰＵ（Central Processing Unit）等の演算部９１０１、ＥＰＲＯＭ（Erasable Programmable Read-Only Memory）又はＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）等の読み出し専用メモリであるＲＯＭ９１０２（Read-Only Memory ）、ＤＲＡＭ（Dynamic  RAM）又はＳＲＡＭ（Static  RAM）等の揮発性メモリ及びＮＶＲＡＭ（Non Volatile RAM）等の不揮発性メモリで構成されるＲＡＭ９１０３（Random Access Memory）、並びにハードディスク等の外部記憶装置で構成される外部記憶部９１０４で構成され、演算部９１０１、ＲＯＭ９１０２、ＲＡＭ９１０３、及び外部記憶部９１０４は互いにバス９１０５によって接続している。
【００２８】
ソフトウェア制御は、ＲＯＭ９１０２又は外部記憶部９１０４に格納したプログラムであるファームウェアを演算部９１０１が読込み、読込んだファームウェアに従って演算部９１０１が演算を行うことにより上記各部の機能を実現する。なお、ＲＡＭ９１０３には、演算結果のデータが書き込まれ、特にＮＶＲＡＭには、電源オフ時にバックアップが必要なデータが保存される。
【００２９】
ここで図２に戻り、モデル生成装置９１００の構成について引続き説明を行う。
情報入力部９１１０は、例えば、キーボード、ポインティングディバイス、又はタッチパネルで構成される。
【００３０】
情報入力部９１１０は、モデル生成装置９１００を使用する使用者に操作されてファームウェアの設計を表す情報（以下単に、設計情報という）と設計されるファームウェアのバージョンを表す情報（以下単に、バージョン情報という）とを入力し、入力した情報を関連付けて記憶部９１３０に保存する。
【００３１】
ここで、ファームウェアの設計を表す設計情報とは、例えば、ＵＭＬ（Unified Modeling Language）を用いたクラス図、ステートチャート、及びシーケンス図等を用いたオブジェクト指向によりファームウェアの設計を表す情報をいう。
【００３２】
ここで図４を参照して、電子回路装置１０００が実行するファームウェアの設計を表すクラス図について説明する。図４は、ファームウェアの設計を表すクラス図の一例を表す図である。
【００３３】
図４に表すクラス図は、クラスＡからＥを表す長方形の図形ＣＬ１から５を有している。クラスとは、共通の情報（一般に、属性又はプロパティと呼ばれる）又は共通の処理手順（一般に、操作又はメソッドと呼ばれる）を有するオブジェクトの概念的な集合をいう。
【００３４】
オブジェクトとは、主に、現実に存在する電子回路装置１０００、若しくは電子回路装置１０００を構成する部品又は部品群を表し、それぞれ表される装置、部品、又は部品群が実行する具体的な操作と処理の対象とする具体的な属性とで構成される。
【００３５】
クラスＡを表す図形ＣＬ１は、クラスＡに関する情報を表す３つの欄を有する。最上欄は、クラスＡの名称が「Ａ」であることを表す情報を表す。
【００３６】
中欄は、クラスＡが有する０、１、又は複数の情報を表す。クラスＡを表す図形ＣＬ１は、クラスＡが属性Ａ１からＡｎを有することを表す。
【００３７】
下欄は、クラスＡが有する０、１、又は複数の操作を表す。クラスＡを表す図形ＣＬ１は、クラスＡが操作Ａ１からＡｎを有することを表す。尚、クラスＢからＥを表す図形ＣＬ２から５についても、クラスＡを表す図形ＣＬ１と同様であるので説明を省略する。
【００３８】
また図４に表すクラス図は、クラスＡとクラスＢとが関連を有することをリレーションＲＴ１で表し、クラスＢとクラスＣとが関連を有することをリレーションＲＴ２で表し、クラスＣとクラスＤとが関連を有することをリレーションＲＴ３で表し、クラスＤとクラスＥとが関連を有することをリレーションＲＴ４で表し、クラスＣとクラスＥとが関連を有することをリレーションＲＴ５で表す。
【００３９】
リレーションＲＴ１は、クラスＢがクラスＡに依存する関係を表す。尚、依存関係は、一時的に他のクラスに属するオブジェクトを使用する関係を表す。
【００４０】
リレーションＲＴ２はクラスＢはクラスＣに集約される関係を、リレーションＲＴ３はクラスＤはクラスＣに集約される関係を、リレーションＲＴ４はクラスＤはクラスＥに集約される関係を、リレーションＲＴ５はクラスＥはクラスＣに集約される関係を表す。
【００４１】
尚、集約されるクラスに属するオブジェクトが表す部品又は部品群等は、集約するクラスに属するオブジェクトが表す部品群又は装置等の部品である関係を表す。
【００４２】
上記実施例では、集約及び依存を用いてクラス間の関係を設計する場合について説明したが、これに限定される訳ではない。例えば、継承関係を用いてクラス間の関係を設計する構成を採用できる。尚、承継関係とは、承継したクラスが継承元とした他のクラスが有する属性及び操作に対して、更に異なる属性及び操作等を追加して定義されたクラスであるという関係である。
【００４３】
次に、ステートチャート及びシーケンス図について説明する前に、図５を参照して、全体プログラムであるファームウェアと部分プログラムと全体プログラムの設計に用いられるオブジェクトとの関係について説明する。
【００４４】
図５は、全体プログラムと部分プログラムと全体プログラムの設計に用いられるオブジェクトとの関係の一例について説明するための図である。
【００４５】
図５に示す全体プログラムである実行プログラムＦＥは、ソースファイルＦＳ０から５をコンパイルして得られるオブジェクトファイルＦＯ０から５をリンク（スタティックリンク又はダイナミックリンク）して得られる。
【００４６】
尚、コンパイルはプログラム作成装置９２００が有するコンパイラによって行われ、かつリンクはプログラム作成装置９２００が有するリンカによって行われる。
【００４７】
ソースファイルＦＳ０から５は、例えば、Ｃ＋＋、Ｃ＃又はＪａｖａ（登録商標）等のオブジェクト指向言語を用いて、電子回路装置１０００が実行する処理手順及び処理対象とする情報を記述したテキストファイルである。
【００４８】
ソースファイルＦＳ１から５は、それぞれクラスＡからＥに共通の属性又は共通の操作を記述する。また、ソースファイルＦＳ０は、ソースファイルＦＳ１から５に記述した情報に対して具体的な値を与える等してオブジェクトとして生成（一般に、コンストラクトという）し、かつ生成したオブジェクトの間で行われる処理の手順と、処理の対象とする情報とを記述する。
【００４９】
尚、ソースファイルＦＳ０は、ソースファイルＦＳ１から５が記載する処理手順及び情報を記載しない。その代わりに、ソースファイルＦＳ０は、ソースファイルＦＳ１から５の記載を参照（一般にインクルードという）するようにコンパイラ又はリンカに指示する記載を行う。
【００５０】
オブジェクトファイルＦＯ０から５は、それぞれソースファイルＦＳ０から５をコンパイルして得られるプログラムである。オブジェクトファイルＦＯ０から５は、それぞれのソースファイルＦＳ０から５が記載する処理手順及び属性をバイナリデータで表したプログラムである。
【００５１】
全体プログラムは、オブジェクトファイルＦＯ０から５をリンクすることで得られる。よって、オブジェクトファイルＦＯ０から５は、全体プログラムを構成する部分プログラムである。尚、リンクはソースファイルＦＳ０のインクルードを指示する記載に基づいてなされる。
【００５２】
よって、それぞれのクラスに共通の属性又は共通の操作を記述する部分プログラムを実行することで、具体的な情報である属性に関する処理を実行した際又は具体的な操作を実行した際に故障の原因が生じることを、オブジェクトに故障の原因が生じるという。
【００５３】
また、同様に、部分プログラムを実行することで何らかの不良が生じた（又は何ら不良が生じていない）状態を、オブジェクトの状態が不良状態（又は正常状態）にあるという。
【００５４】
尚、上記実施例では、ソースファイルＦ０はソースファイルＦ１から５の記載を参照するようにコンパイラ又はリンカに指示する記載を含み、全体プログラムＦＥはオブジェクトプログラムＦＯ０から５をリンクすることで生成されるとして説明したが、これに限定される訳ではない。
【００５５】
例えば、ソースファイルＦＳ０は他のソースファイルＦＳを参照指示する記載を含まず、全体プログラムＦＥはオブジェクトプログラムＦＯ０のみからなり、全体プログラムＦＥが有するクラスに共通の属性又は共通の操作を記述する部分を部分プログラムとする構成を採用できる。
【００５６】
次に図６を参照して、ファームウェアの設計を表すステートチャートについて説明する。図６は、ファームウェアの設計を表すステートチャートの一例を表す図である。
【００５７】
ステートチャートは、有る特定のオブジェクトの状態の変化を表す図である。図５に示すステートチャートは、開始状態ＳＳ、終了状態ＳＥ、状態ＳＴ１及び２、並びに状態遷移ＴＳ１から３で構成される。
【００５８】
図６に示すステートチャートは、有るオブジェクトが生成（コンストラクト）されて開始状態ＳＳとなり、次に状態遷移ＴＳ１をして正常状態ＳＴ１となり、その後に所定の条件を満たした又はイベントが発生した場合に状態遷移ＴＳ２をして不良状態ＳＴ２となり、最後にオブジェクトが消滅する（デストラクトされる）際に状態遷移ＴＳ３をして終了状態ＳＥとなることを表す。
【００５９】
次に図７を参照して、ファームウェアの設計を表すシーケンス図について説明する。図７は、ファームウェアの設計を表すシーケンスの一例を表す図である。
【００６０】
シーケンス図は、電子回路装置１０００が実行するように設計された具体的な処理の一例（一般に、シナリオという）において生成されるオブジェクト同士の相互作用を時系列的に表現する図である。尚、相互作用は、オブジェクト間で行われる処理の手順と処理の対象とする情報とで定まる。
【００６１】
図７で示すシーケンス図は、オブジェクトＡ、Ｂ及びＣを表す図形ＦＧＯ１から３とライフラインＬＬ１から３とメッセージＭＧ１及び２とを有する。オブジェクトＡを表す図形ＦＧＯ１は、オブジェクトＡの属するクラスをも表示する。尚、オブジェクトＢ及びＣを表す図形ＦＧＯ２及び３についても同様であるので説明を省略する。
【００６２】
ライフラインＬＬは、オブジェクトを表す図形ＦＧＯから図の下方へ伸びる直線によって、オブジェクトが存続する期間を表す。ここで、シーケンス図は時間軸を表示しないが、図における上下関係を用いて相対的な時間関係を表す。
【００６３】
よって、シーケンス図は、ライフラインＬＬがより上側で始まるオブジェクトの方が、より下側で始まるオブジェクトよりも早い時期に生成されることを表す。また逆に、シーケンス図は、ライフラインＬＬがより上側で終わるオブジェクトの方が、より下側で終わるオブジェクトよりも早い時期に消滅することを表す。
【００６４】
メッセージＭＧ１及び２は、オブジェクト間の相互作用を表す。メッセージＭＧは、作用を及ぼすオブジェクトのライフラインＬＬから作用を及ぼされるオブジェクトのライフラインＬＬへ向かう矢印で表記される。尚、あるオブジェクトが、他のオブジェクトへ作用を及ぼすことを他のオブジェクトを呼び出すという。
【００６５】
ここで、オブジェクトＢが有する属性の１つを、オブジェクトＡが有する属性の１つで更新する（つまり、オブジェクトＢはオブジェクトＡを一時的に使用する）という依存関係を具体例として挙げて説明する。
【００６６】
この場合、オブジェクトＡが有する属性が正常であるか否かは、オブジェクトＢの更新される属性に影響を与える。よって、オブジェクトＡは、オブジェクトＢに対して作用を及ぼすことを表すために、図８に示すシーケンス図は、オブジェクトＡのライフラインＬＬ１からオブジェクトＢのライフラインＬＬ２へ向かう矢印でメッセージＭＧ１を表す。
【００６７】
尚、メッセージＭＧ２についても同様であるので説明を省略する。また、メッセージＭＧは、オブジェクトの生成により生じる使用のみならず、オブジェクト間の情報の受け渡し、他のオブジェクトの生成、又は他のオブジェクトに対する操作実行の要求等により生じる作用をも表す。
【００６８】
また、メッセージＭＧ１はメッセージＭＧ２よりも上方に表示されるため、メッセージＭＧ１が表す作用はメッセージＭＧ２が表す作用よりも先に及ぶ。
【００６９】
ここで図２に戻り、モデル生成装置９１００の構成について引続き説明を行う。
モデル生成部９１２０は、モデル生成処理を実行することで、情報入力部９１１０が入力したファームウェアの設計を表す情報に基づいて故障診断モデルを生成する。
【００７０】
ここで図８を参照して、モデル生成部９１２０が生成する故障診断モデルについて説明する。図８は、モデル生成部９１２０が生成する故障診断モデルの一例を概念的に表す図である。
【００７１】
図８に示すモデルは、オブジェクト状態ノードＯＮ１から５、不具合情報ノードＮＫ、及び証拠情報ノードＮＥ、並びにこれらを関連付けるリンクＮＲで構成されるベイジアン・ネットワークモデルである。
【００７２】
ここで、ノードは確率変数を表す。特に、オブジェクト状態ノードＯＮ１から５は、クラスＡからＥに属するオブジェクトの正常不良の状態を表す確率変数を表す。つまり、オブジェクト状態ノードＯＮ１から５が表す確率変数の取り得る具体値は、例えば、「故障（不良）」又は「正常」である。
【００７３】
尚、オブジェクトが不良状態にあるとは、オブジェクトを構成する操作処理の実行が正常に行われない状態、又は属性が正常ではない情報である状態をいう。これは、オブジェクトが属するクラスの共通の操作及び属性を記述する部分プログラムの実行が正常に行われない状態を表す。
【００７４】
不具合情報ノードＮＫは、電子回路装置１０００に発生する故障により引起される特定の不具合の発生状態を表す確率変数を表す。図８における不具合情報ノードＮＫは、電子回路装置１０００がフリーズするという不具合の発生状態を表す確率変数を表す。
【００７５】
つまり、不具合情報ノードＮＫが表す確率変数の取り得る具体値は、例えば、「発生」又は「不発生」である。尚、不具合情報ノードＮＫが表す変数は、電子回路装置１０００が後述する不具合識別情報を故障診断モデルに入力することで定まる。
【００７６】
証拠情報ノードＮＥは、電子回路装置１０００に不具合が発生した場合における装置１０００を構成する部品又は部品群等の状態であり、リンクＮＲで関連付けられるオブジェクト状態ノードＮＯが表すオブジェクトの状態に影響を与える状態であり、かつ電子回路装置１０００が記憶するログ情報等から特定される状態を表す確率変数を表す。尚、ログ情報等については後述する。
【００７７】
図６における証拠情報ノードＮＥは、電子回路装置１０００に不具合が発生した際に、電子回路装置１０００が有する記憶部１０４０に空きが無い状態を表す確率変数を表す。尚、電子回路装置１０００が有する記憶部１０４０については後述する。
【００７８】
つまり、証拠情報ノードＮＥが表す確率変数の取り得る具体値は、例えば、「発生」又は「不発生」である。尚、証拠情報ノードＮＥが表す変数は、電子回路装置１０００が後述するログ情報等により定まる証拠情報を故障診断モデルに入力することで定まる。
【００７９】
ここで、ベイジアン・ネットワークである故障診断モデルは、ノードＮＯ間の定性的な依存関係である因果関係をグラフ構造を用いて表す。グラフ構造は、「原因」と「結果」という因果関係を、「原因」を表すノードから「結果」を表すノードへ向かう矢印で結線して表す。尚、リンクＮＲは、矢印によって因果関係を表す。
【００８０】
例えば、不具合情報ノードＮＫとオブジェクト状態ノードＮＯ３との関係は、オブジェクト状態ノードＮＯ３の状態変数を「原因」として、不具合情報ノードＮＫの確率変数が具体値「発生」（又は「不発生」）を取ることを「結果」とする定性的な因果関係を表す。
【００８１】
また、オブジェクト状態ノードＮＯ１とＮＯ２との関係についても、不具合情報ノードＮＫとオブジェクト状態ノードＮＯ３との関係とほぼ同様であるので詳細な説明を省略する。
【００８２】
つまり具体的には、クラスＡに属するオブジェクトが不良（又は正常）状態にあることを「原因」として、クラスＡに依存するクラスＢに属するオブジェクトが不良（又は正常）状態となる「結果」が引起される因果関係を表す。
【００８３】
また、オブジェクト状態ノードＮＯ２とＮＯ３との関係、ＮＯ３とＮＯ４との関係、及びＮＯ３とＮＯ５との関係についても、不具合情報ノードＮＫとオブジェクト状態ノードＮＯ３との関係とほぼ同様であるので詳細な説明を省略する。
【００８４】
つまり具体的には、クラスＢ、Ｄ、又はＥに属するオブジェクトのいずれか１つ以上が不良（又は正常）状態にあることを「原因」として、これらを集約するクラスＣに属するオブジェクトが不良（又は正常）状態に陥るという「結果」が引起される因果関係を表す。尚、オブジェクト状態ノードＮＯ４とＮＯ５との関係についても同様であるので説明を省略する。
【００８５】
また、証拠情報ノードＮＥとオブジェクト状態ノードＮＯ１との関係についても、不具合情報ノードＮＫとオブジェクト状態ノードＮＯ３との関係とほぼ同様であるので詳細な説明を省略する。
【００８６】
具体例としては、電子回路装置１０００に不具合が発生した際に、電子回路装置１０００が有する記憶部１０４０に空きが無い状態が発生した（又は発生しない）ことを「原因」として、クラスＡに属するオブジェクトが不良（又は正常）状態となる「結果」が生じることを表す。
【００８７】
また、ベイジアン・ネットワークモデルは、ノード間の定量的な因果関係をそのノードが表す変数の間に定義される条件付き確率によって表すモデルでもある。
【００８８】
具体的に説明すると、図８に示すオブジェクト状態ノードＯＢ２には、オブジェクト状態ノードＯＢ２に接続するリンクＮＲ１２が原因として表すオブジェクト状態ノードＮＯ１の確率変数が「不良」（又は「正常」）という具体値を取る条件下において、ノードＮＯ２の確率変数が具体値「不良」（又は「正常」）を取る条件付確率が対応付けられている。尚、図８に示す他のノードについても同様であるので説明を省略する。
【００８９】
本実施例においては、電子回路装置１０００が証拠情報及び不具合識別情報を故障診断モデルに代入することで定まる証拠情報ノードＮＥ及び不具合情報ノードＮＫに対応した状態確率、及びノード間の定量的な因果関係を表す条件付き確率に基づいて、オブジェクト状態ノードＯＢに対応した状態確率を計算する。
【００９０】
これによって、オブジェクト毎に故障の原因が生じている確率（又は生じていない確率）（以下単に、事後確率と言う）を算出する。つまり、各ノードには、故障診断装置１０００が故障原因の発生確率を算出するために用いる確率テーブルを対応させる。
【００９１】
この確率テーブルは、事前確率を保存する。事前確率とは、故障診断前に設計情報から予め定める確率である。確率テーブルは、オブジェクトに生じ得る故障の原因と故障の原因により引き起こされる不具合との因果関係の強さを定量的に表す条件付確率と、オブジェクトの初期故障確率とを有する。尚、初期故障確率とは、故障診断モデルがモデル化する対象としたオブジェクトが初期状態において不良状態にある確率をいう。
【００９２】
次に図９及び１０を参照して、モデル生成部９１２０が実行するモデル生成処理について説明する。図９は、モデル生成部９１２０が実行するモデル生成処理の一例を表すフローチャートの一部であり、図１０は、モデル生成部９１２０が実行するモデル生成処理の一例を表すフローチャートの他部である。
【００９３】
先ず、モデル生成部９１２０は、記憶部９１３０からクラス図を表す情報と、クラス図により設計されるファームウェアのバージョン情報とを取得する（ステップＳＴ０００１）。次に、モデル生成部９１２０は、クラス図を表す情報からクラスを表す情報を取得する（ステップＳＴ０００２）。
【００９４】
その後、モデル生成部９１２０は、後述するステップＳＴ０００４の処理対象としていないクラスを表す情報（以下単に、未処理のクラスを表す情報という）が存在するか否かを判断する（ステップＳＴ０００３）。モデル生成部９１２０は、未処理のクラスを表す情報が存在すると判断する場合にはステップＳＴ０００４の処理を実行し、そうでない場合にはステップＳＴ０００５の処理を実行する。
【００９５】
ステップＳＴ０００３において、モデル生成部９１２０は、未処理のクラスを表す情報が存在すると判断した場合には、未処理のクラスを表す情報のうちの１つを処理対象とし、処理対象とするクラスを表す情報に基づいてノードを作成する（ステップＳＴ０００４）。その後、モデル生成部９１２０は、ステップＳＴ０００３に戻り上記処理を繰り返す。
【００９６】
具体的には、処理対象とするクラスに属するオブジェクトを表すオブジェクト状態ノードを作成する。尚、電子回路装置１０００は、クラス図に示された全てのクラスを、初期処理において１度だけ生成するものとする。
【００９７】
ステップＳＴ０００３において、モデル生成部９１２０は、未処理のクラスを表す情報が存在しないと判断した場合には、クラス図を表す情報からリレーションを表す情報を取得する（ステップＳＴ０００５）。
【００９８】
その後、モデル生成部９１２０は、後述するステップＳＴ０００７の処理対象としていないリレーションを表す情報（以下単に、未処理のリレーションを表す情報という）が存在するか否かを判断する（ステップＳＴ０００６）。モデル生成部９１２０は、未処理のリレーションを表す情報が存在すると判断する場合にはステップＳＴ０００７の処理を実行し、そうでない場合にはステップＳＴ０００８の処理を実行する。
【００９９】
ステップＳＴ０００６において、モデル生成部９１２０は、未処理のリレーションを表す情報が存在すると判断した場合には、未処理のリレーションを表す情報のうちの１つを処理対象とし、処理対象とするリレーションを表す情報に基づいてリンクを作成する（ステップＳＴ０００７）。その後、モデル生成部９１２０は、ステップＳＴ０００６に戻り上記処理を繰り返す。
【０１００】
ここで、処理対象とするリレーションを表す情報が、図２に示したリレーションＲＴ２を表す情報である場合を例に挙げて説明する。この場合には、クラスＣがクラスＢを集約する関係を表すため、クラスＢに属するオブジェクトを「原因」とし、クラスＣに属するオブジェクトを「結果」とする図３に示したリンクＮＲ２３を生成する。
【０１０１】
ステップＳＴ０００６において、モデル生成部９１２０は、未処理のリレーションを表す情報が存在しないと判断した場合には、記憶部９１３０からステートチャートを表す情報を取得する（ステップＳＴ０００８）。
【０１０２】
次に、モデル生成部９１２０は、後述するステップＳＴ００１０及びＳＴ００１１の処理対象としていないクラスを表す情報が存在するか否かを判断する（ステップＳＴ０００９）。モデル生成部９１２０は、未処理のクラスを表す情報が存在すると判断する場合にはステップＳＴ００１０の処理を、そうでない場合にはステップＳＴ００１２の処理を実行する。
【０１０３】
ステップＳＴ０００９において、モデル生成部９１２０は、未処理のクラスを表す情報が存在すると判断した場合には、未処理のクラスの内の１つを処理対象とするクラスとする。
【０１０４】
その後、処理対象とするクラスに属するオブジェクトの状態遷移を表すステートチャートを表す情報から、オブジェクトが取り得る状態を取得する（ステップＳＴ００１０）。
【０１０５】
ここで、図６で示したステートチャートを具体例として挙げて説明すると、取得するオブジェクトが取り得る状態は正常状態又は不良状態である。
【０１０６】
次に、モデル生成部９１２０は、ステップＳＴ００１０で取得した情報に基づいてオブジェクトの状態変数を生成する（ステップＳＴ００１１）。その後、モデル生成部９１２０は、ステップＳＴ０００９に戻り上記処理を繰り返す。
【０１０７】
ステップＳＴ０００９において、モデル生成部９１２０は、未処理のクラスを表す情報が存在しないと判断した場合には、記憶部９１３０からシーケンス図を表す情報を取得する（ステップＳＴ００１２）。
【０１０８】
次に、モデル生成部９１２０は、後述するステップＳＴ００１４の処理対象としていないクラスを表す情報が存在するか否かを判断する（ステップＳＴ００１３）。モデル生成部９１２０は、未処理のクラスを表す情報が存在すると判断する場合にはステップＳＴ００１４の処理を、そうでない場合にはステップＳＴ００１５の処理を実行する。
【０１０９】
ステップＳＴ００１３において、モデル生成部９１２０は、未処理のクラスを表す情報が存在すると判断した場合には、未処理のクラスの内の１つを処理対象とするクラスとする。
【０１１０】
その後、モデル生成部９１２０は、シーケンス図のメッセージを表す情報等に基づいて、処理対象とするクラスに属するオブジェクトの呼び出し回数を取得し、取得した回数に基づいて確率テーブルを作成する（ステップＳＴ００１４）。その後、モデル生成部９１２０は、ステップＳＴ００１３に戻り上記処理を繰り返す。
【０１１１】
ステップＳＴ００１３において、モデル生成部９１２０は、未処理のクラスを表す情報が存在しないと判断した場合には、記憶部９１３０へ生成したモデルとモデルを用いた故障診断に用いられる確率テーブルと診断対象とする電子回路装置１０００が実行するファームウェアのバージョン情報とを関連づけて保存する。その後、モデル生成部９１２０は、モデル生成処理の実行を終了する。
【０１１２】
上記実施例では、オブジェクトの呼び出し回数に基づいて事前確率を算出して確率テーブルを生成するとして説明したが、これに限定される訳ではない。例えば、確率テーブルが保存する確率の一部を、過去の故障発生時のデータや部品の平均故障間隔ＭＴＢＦ（Mean Time Between Failure）を用いて決定される確率で代用する構成を採用できる。
【０１１３】
ここで図２に戻り引続きモデル生成装置９１００の構成について説明する。
記憶部９１３０は、例えば、ＲＡＭ９１０３又は外部記憶部９１０４等で構成される。
【０１１４】
記憶部９１３０は、情報入力部９１１０が入力したファームウェアの設計を表す設計情報と設計されるファームウェアのバージョン情報とを関連付けて記憶する。記憶部９１３０が記憶した設計情報及びバージョン情報は、モデル生成部９１２０により参照される。
【０１１５】
また記憶部９１３０は、モデル生成部９１２０が生成した故障診断モデルとモデルを用いた故障診断に用いる確率テーブルと診断対象とする電子回路装置１０００が実行するファームウェアのバージョン情報とを関連付けて記憶する。記憶部９１３０が記憶する故障診断モデル、確率テーブル、及びバージョン情報は、管理部９１４０によって参照される。
【０１１６】
管理部９１４０は、モデル生成部９１２０が生成したモデルとモデルの解析に用いられる確率テーブルとを管理する。具体的には、管理部９１４０は、情報通信部９１５０から最新のモデルに関連付けられたバージョン情報の送信要求を取得する。
【０１１７】
次に、管理部９１４０は、記憶部９１３０から、最新のモデルに関連付けられたバージョン情報を参照し、参照したバージョン情報を情報通信部９１５０へ出力する。
【０１１８】
その後、管理部９１４０は、情報通信部９１５０から最新モデルの送信要求を取得した場合には、最新モデルと最新モデルに関連付けた確率テーブルとを情報通信部９１５０へ出力する。
【０１１９】
情報通信部９１５０は、例えば、ネットワークアダプタで構成され、通信網１００に接続している。情報通信部９１５０は、通信網１００を介して故障診断装置１０００から最新のバージョン情報の送信要求を取得し、管理部９１４０へ出力する。
【０１２０】
次に、情報通信部９１５０は、管理部９１４０から最新のバージョン情報を取得し、取得した情報を通信網１００を介して故障診断装置１０００へ送信する。
【０１２１】
また情報通信部９１５０は、故障診断装置１０００から最新モデルの送信要求を受信した場合には、管理部９１４０へ要求を出力する。その後、情報通信部９１５０は、管理部９１４０から最新モデルと最新の確率テーブルとを取得し、取得したモデルとテーブルとを故障診断装置１０００へ送信する。
【０１２２】
次に図１に戻り、故障診断システム１０の構成について引続き説明する。
プログラム生成装置９２００は、例えば、パーソナルコンピュータで構成され、通信網１００を介してモデル生成装置９１００及び故障診断装置１０００に接続している。
【０１２３】
プログラム生成装置９２００は、モデル生成装置９１００が故障診断モデルを生成する基礎とした設計情報に基づいて故障診断装置１０００が実行するファームウェアを生成する。
【０１２４】
ここで図１１を参照して、プログラム生成装置９２００の構成について説明する。図１１は、プログラム生成装置９２００の一構成例を表す機能ブロック図である。
【０１２５】
図１１に示すプログラム生成装置９２００は、情報入力部９２１０、プログラム生成部９２２０、記憶部９２３０、管理部９２４０、及び情報通信部９２５０で構成され、それぞれの部は情報の授受が可能なようにバス９２０５を介して接続している。
【０１２６】
情報入力部９２１０、プログラム生成部９２２０、記憶部９２３０、管理部９２４０、及び情報通信部９２５０が有する各機能は、プログラム生成装置９２００が実行するソフトウェア制御により実現される。
【０１２７】
ここで、プログラム生成装置９２００がソフトウェア制御を実行するためのハードウェア構成は、図３を参照して説明したモデル生成装置９１００のハードウェア構成と同様であるので説明を省略する。
【０１２８】
情報入力部９２１０は、例えば、キーボード、ポインティングディバイス、又はタッチパネルで構成される。情報入力部９２１０は、プログラム生成装置９２００を使用する使用者に操作されて、設計情報に基づいて作成したソースコードとコードにより生成されるファームウェアのバージョン情報とを入力し、入力したコードとバージョン情報とを関連付けて記憶部９２３０に保存する。
【０１２９】
尚、情報入力部９２１０が入力するソースコードは、モデル生成装置９１００が入力した設計情報と同じバージョンの設計情報に基づいて作成したコードであるとする。
【０１３０】
プログラム生成部９２２０はコンパイラ及びリンカを有する。プログラム生成部９２２０は、記憶部９２３０が記憶するソースコードに基づいてファームウェアである全体プログラムを生成する。次に、生成した全体プログラムと全体プログラムのバージョン情報とを関連付けて記憶部９２３０に保存する。
【０１３１】
具体的には、プログラム生成部９２２０の有するコンパイラは、記憶部９２３０が記憶するソースコードをコンパイルすることで部分プログラムであるオブジェクトプログラムを生成する。次に、プログラム生成部９２２０の有するリンカは、部分プログラムをリンクすることで全体プログラムを生成する。
【０１３２】
記憶部９２３０は、例えば、ＲＡＭ又は外部記憶装置等で構成される。記憶部９２３０は、情報入力部９２１０が入力したソースコードとソースコードに基づいて生成されるファームウェアのバージョン情報とを記憶する。記憶部９２３０が記憶したソースコード及びバージョン情報は、プログラム生成部９２２０により参照される。
【０１３３】
また記憶部９２３０は、プログラム生成部９２２０が生成した全体プログラムと全体プログラムのバージョン情報とを関連付けて記憶する。記憶部９１３０が記憶する全体プログラムとバージョン情報とは、管理部９２４０によって参照される。
【０１３４】
管理部９２４０は、プログラム生成部９２２０が生成した全体プログラムを管理する。具体的には、管理部９２４０は、情報通信部９２５０から最新の全体プログラムに関連付けられたバージョン情報の送信要求を取得する。
【０１３５】
次に、管理部９２４０は、記憶部９２３０から、最新のプログラムに関連付けられたバージョン情報を参照し、参照したバージョン情報を情報通信部９２５０へ出力する。
【０１３６】
その後、管理部９２４０は、情報通信部９２５０から最新プログラムの送信要求を取得した場合には、最新の全体プログラムを情報通信部９２５０へ出力する。
【０１３７】
情報通信部９２５０は、例えば、ネットワークアダプタで構成され、通信網１００に接続している。情報通信部９２５０は、通信網１００を介して故障診断装置１０００から最新のファームウェアのバージョン情報の送信要求を取得し、管理部９２４０へ出力する。次に、情報通信部９２５０は、管理部９２４０から最新のバージョン情報を取得し、取得した情報を通信網１００を介して故障診断装置１０００へ送信する。
【０１３８】
また情報通信部９２５０は、故障診断装置１０００から最新プログラムの送信要求を受信した場合には、管理部９２４０へ要求を出力する。その後、情報通信部９２５０は、管理部９２４０から最新の全体プログラムを取得し、取得したプログラムを故障診断装置１０００へ送信する。
【０１３９】
上記実施例では、プログラム生成装置９２００は、情報入力部９２１０が入力したソースコードに基づいてファームウェアを生成するとして説明したが、これに限定される訳ではない。例えば、情報入力部９２１０は設計情報を入力し、プログラム生成装置９２００は、情報入力部９２１０が入力した設計情報に基づいてソースコードを生成する部を有し、生成されたソースコードに基づいてファームウェアを生成する構成を採用できる。
【０１４０】
尚、プログラム生成装置９２００は、設計情報のみに基づいてソースコードを作成するのではなく、設計情報に基づいてソースコードの雛形を生成する部を有し、生成した雛形と、例えば、プログラマが情報入力部９２１０を操作して入力する情報とで構成されるソースコードとを用いてファームウェアを生成する構成を採用できる。
【０１４１】
ここで図１に戻り引続き故障診断システム１０の構成について説明する。
故障診断装置１０００は、例えば、スキャン（画像入力）機能、プリント（画像出力）機能、ＦＡＸ通信機能、情報通信機能、又はコピー（複写）機能、並びに故障診断機能を有する複写機等で構成される電子回路装置である。
【０１４２】
故障診断装置１０００は、通信網１００を介してモデル生成装置９１００、及びプログラム生成装置９２００に接続する。故障診断装置１０００は、電子回路装置である故障診断装置１０００がファームウェアを実行することで生じた故障を診断する。
【０１４３】
ここで図１２を参照して、故障診断装置１０００の構成について説明する。図１２は、故障診断装置１０００の一構成例を表す図である。
【０１４４】
図１２に示す故障診断装置１０００は、画像入力部１０１０、画像出力部１０１５、ＦＡＸ通信部１０２０、情報通信部１０２５、情報入力部１０３０、情報表示部１０３５、記憶部１０４０、制御部１０５０、モデル更新部１０６０、プログラム更新部１０６５、及び故障診断部１０７０で構成され、それぞれの部はバス１００５を介して情報の授受が可能なように接続される。
【０１４５】
画像入力部１０１０、画像出力部１０１５、ＦＡＸ通信部１０２０、情報通信部１０２５、情報入力部１０３０、情報表示部１０３５、記憶部１０４０、制御部１０５０、モデル更新部１０６０、プログラム更新部１０６５、及び故障診断部１０７０が有する各機能は、故障診断装置１０００が実行するソフトウェア制御により実現される。
【０１４６】
ここで、故障診断装置１０００がソフトウェア制御を実行するためのハードウェア構成は、図３を参照して説明したモデル生成装置９１００のハードウェア構成と同様であるので説明を省略する。
【０１４７】
画像入力部１０１０は、例えば、スキャナで構成される。画像入力部１０１０は、例えば、印刷用紙等の印刷媒体に印刷された画像を読取り、読取った画像を記憶部１０４０に保存することで画像入力機能を提供する。
【０１４８】
画像出力部１０１５は、例えば、プリンタで構成される。画像出力部１０１５は、記憶部１０４０が記憶する画像を、例えば、印刷用紙等の印刷媒体に印刷出力することで画像出力機能を提供する。
【０１４９】
ＦＡＸ通信部１０２０は、例えば、ＦＡＸモデムで構成され、通信網１００に接続する。ＦＡＸ通信部１０２０は、例えば、Ｇ３又はＧ４プロトコルに従って通信網１００から画像を受信し、受信した画像を記憶部１０４０へ保存することでＦＡＸ送信機能を提供する。
【０１５０】
また、ＦＡＸ通信部１０２０は、同様に、記憶部１０４０が記憶する画像を通信網１００へ送信することでＦＡＸ受信機能を提供する。尚、ＦＡＸ受信機能とＦＡＸ送信機能とを合わせてＦＡＸ通信機能という。
【０１５１】
情報通信部１０２５は、例えば、ネットワークアダプタで構成され、通信網１００に接続する。情報通信部１０２５は、例えば、ＴＣＰ／ＩＰプロトコルに従って通信網１００から画像又は各種の情報を受信し、受信した画像又は各種の情報を記憶部１０４０へ保存することで情報受信機能を提供する。
【０１５２】
また、情報通信部１０２５は、同様に、記憶部１０４０が記憶する画像又は情報を通信網１００へ送信することで情報送信機能を提供する。尚、情報通信部１０２５が送受信する情報については後述する。また、情報受信機能と情報送信機能とを合わせて情報通信機能という。
【０１５３】
情報入力部１０３０は、例えば、キーボード、マウス、又はタッチパネルで構成される。情報入力部１０３０は、故障診断装置１０００を使用する使用者に操作されて、各種の情報を入力する。
【０１５４】
ここで、情報入力部１０３０が入力する情報は不具合識別情報を含む。不具合識別情報とは、故障により生じた不具合を識別する情報をいう。不具合識別情報は、例えば、エラーコード等の故障診断装置である電子回路装置１０００が検出した不具合を識別する情報、及び電子回路装置１０００が検出できない不具合を識別する情報を含む。
【０１５５】
検出できない不具合は、例えば、電子回路装置１０００がフリーズする等の誤動作、電子回路装置１０００が実行するジョブ処理の不良、画像入力部１０１０が入力する画像が有する画像欠陥、及び画像出力部１０１５が出力する画像に発生する画像欠陥等を含む。
【０１５６】
また、情報入力部１０３０が入力する情報は、電子回路装置１０００が有する機能の提供を命じる情報をも含む。
【０１５７】
情報表示部１０３５は、例えば、ＣＲＴ（Cathode Ray Tube）、液晶ディスプレイ、又はプラズマディスプレイで構成される。情報表示部１０３５は、制御部１０４０又は故障診断部１０７０に制御されて、各種情報を表示する。尚、情報表示部１０３５が表示する情報については後述する。
【０１５８】
記憶部１０４０は、例えば、ＲＡＭ又は外部記憶装置で構成される。記憶部１０４０は、故障を診断するために用いる故障診断モデル、故障診断モデルを用いた故障診断の際に使用される確率テーブル、及び故障診断対象とする電子回路装置１０００が実行するファームウェアのバージョン情報を記憶する。
【０１５９】
記憶部１０４０が記憶する故障診断モデル、確率テーブル、及びバージョン情報は、モデル更新部１０６０により参照され、必要に応じてモデル更新部１０６０により更新される。
【０１６０】
また、記憶部１０４０は、故障診断装置１０００が有する各機能を提供するために実行するファームウェア及びファームウェアのバージョン情報を記憶する。
【０１６１】
特にファームウェアは、画像処理の手順を記述したプログラムを含み、故障診断装置である電子回路装置１０００は画像処理の手順を記述したファームウェアを実行することで、スキャン機能、プリント機能、コピー機能、ＦＡＸ通信機能、又は情報通信機能を提供する。
【０１６２】
記憶部１０４０が記憶するファームウェア及びバージョン情報は、プログラム更新部１０６５により参照され、必要に応じてプログラム更新部１０６５により更新される。
【０１６３】
更に、記憶部１０４０は、画像入力部１０１０が入力した画像、ＦＡＸ通信部１０２０が受信した画像、若しくは情報通信部１０２５が受信した画像及び各種情報を記憶する。記憶部１０４０が記憶する画像は、画像出力部１０１５、ＦＡＸ通信部１０２０、又は情報通信部１０２５によって参照される。
【０１６４】
また、記憶部１０４０は、電子回路装置１０００の動作履歴、及び電子回路装置１０００の内部の状態情報を記述するログ情報ファイルを記憶する。特に、ログ情報ファイルは、起動時に記録されたブートログ情報、及び機能の提供時に記録された動作ログ情報、故障発生時の機能診断テストから抽出されたテストログ情報、又は検査結果を記録したファイルを含む。記憶部１０４０が記憶するログ情報ファイルは、故障診断部１０７０によって参照される。
【０１６５】
制御部１０５０は、画像入力部１０１０、画像出力部１０１５、ＦＡＸ通信部１０２０、情報通信部１０２５、情報入力部１０３０、情報表示部１０３５、記憶部１０４０、モデル更新部１０６０、プログラム更新部１０６５、及び故障診断部１０７０の実行を制御する。
【０１６６】
具体例として、制御部１０５０が情報入力部１０３０からコピー機能の提供を命じる命令を取得した場合を挙げて説明する。制御部１０５０は、取得した命令に従って画像入力部１０１０の実行を制御した後に、画像入力部１０１０が入力した画像を出力するよう画像出力部１０１５を制御することで、コピー機能を提供する。尚、スキャン機能、プリント機能、ＦＡＸ通信機能、及び情報通信機能についても同様であるので説明を省略する。
【０１６７】
また、制御部１０５０は、情報入力部１０３０から故障診断機能の提供を命じる命令を取得し、取得した命令に従って故障診断モードに移行した後に故障診断部１０７０が後述する故障診断処理を実行するよう制御する。尚、故障診断モードとは、故障診断に必要な命令又は情報以外の入力を情報入力部１０３０から受付けない状態をいう。
【０１６８】
モデル更新部１０６０は、後述するモデル更新処理を実行することで、記憶部１０４０が記憶する故障診断モデルを更新する。
【０１６９】
ここで図１３を参照して、モデル更新部１０６０が実行するモデル更新処理について説明する。図１３は、モデル更新部１０６０が実行するモデル更新処理の一例を表すフローチャートである。
【０１７０】
先ず、モデル更新部１０６０は、情報通信部１０２５へモデルの最新バージョン情報の送信要求を出力する（ステップＳＴ０１０１）。
【０１７１】
尚その後、情報通信部１０２５は、モデル更新部１０６０から取得した送信要求を、通信網１００を介してモデル生成装置９１００へ送信する。次に、情報通信部１０２５は、モデル更新部１０６０からモデルのバージョン情報を受信する。
【０１７２】
次に、モデル更新部１０６０は、情報通信部１０２５から最新のバージョン情報を取得する（ステップＳＴ０１０２）。その後、モデル更新部１０６０は、記憶部１０４０が記憶するモデルのバージョン情報を取得する（ステップＳＴ０１０３）。
【０１７３】
次に、モデル更新部１０６０は、記憶部１０４０から取得したバージョン情報が、情報通信部１０２５から取得したバージョン情報と一致する（つまり、記憶部１０４０が記憶するモデルが最新のバージョンである）か否かを判断する（ステップＳＴ０１０４）。モデル更新部１０６０は、モデルのバージョンは最新であると判断する場合には更新処理の実行を終了し、そうでない場合にはステップＳＴ０１０５の処理を実行する。
【０１７４】
ステップＳＴ０１０４において、モデル更新部１０６０は、モデルが最新のバージョンではないと判断した場合には、情報通信部１０２５へ最新のモデル及び最新の確率テーブルの送信要求を出力する（ステップＳＴ０１０５）。
【０１７５】
尚その後、情報通信部１０２５は、通信網１００を介してモデル生成装置９１００へ送信要求を送信する、次に、情報通信部１０２５は、モデル生成装置９１００から最新のモデルと確率テーブルとを受信する。
【０１７６】
次に、モデル更新部１０６０は、情報通信部１０２５からから最新のモデルと確率テーブルとを取得する（ステップＳＴ０１０６）。その後、モデル更新部１０６０は、記憶部１０４０が記憶するモデルと確率テーブルとを、取得した最新のモデルと確率テーブルとに更新する（ステップＳＴ０１０７）。その後、モデル更新部１０６０は、モデル更新処理の実行を終了する。
【０１７７】
ここで図１２に戻り、故障診断装置１０００の構成について引続き説明する。
プログラム更新部１０６５は、後述するプログラム更新処理を実行することで、記憶部１０４０が記憶するファームウェアを更新する。
【０１７８】
ここで図１４を参照して、プログラム更新部１０６５が実行するプログラム更新処理について説明する。図１４は、プログラム更新部１０６５が実行するプログラム更新処理の一例を表すフローチャートである。
【０１７９】
先ず、プログラム更新部１０６５は、情報通信部１０２５へファームウェアの最新のバージョン情報の送信要求を出力する（ステップＳＴ０２０１）。
【０１８０】
尚その後、情報通信部１０２５は、プログラム更新部１０６５から取得した送信要求を、通信網１００を介してプログラム生成装置９２００へ送信する。次に、情報通信部１０２５は、プログラム生成装置９２００から最新のファームウェアのバージョン情報を受信する。
【０１８１】
次に、プログラム更新部１０６５は、情報通信部１０２５から最新のバージョン情報を取得する（ステップＳＴ０２０２）。その後、プログラム更新部１０６５は、記憶部１０４０が記憶するファームウェア（ＦＷ）のバージョン情報を取得する（ステップＳＴ０２０３）。
【０１８２】
次に、プログラム更新部１０６５は、記憶部１０４０から取得したバージョン情報が、情報通信部１０２５から取得したバージョン情報と一致する（つまり、記憶部１０４０が記憶するプログラムが最新のバージョンである）か否かを判断する（ステップＳＴ０２０４）。プログラム更新部１０６５は、ファームウェアが最新のバージョンであると判断する場合にはプログラム更新処理の実行を終了し、そうでない場合にはステップＳＴ０２０５の処理を実行する。
【０１８３】
ステップＳＴ０２０４において、プログラム更新部１０６５は、ファームウェアが最新のバージョンでないと判断した場合には、情報通信部１０２５へ最新のファームウェアの送信要求を出力する（ステップＳＴ０２０５）。尚、その後、情報通信部１０２５は、通信網１００を介してプログラム生成装置９２００へ送信要求を送信する。次に、情報通信部１０２５は、プログラム生成装置９２００から最新のファームウェアを受信する。
【０１８４】
次に、プログラム更新部１０６５は、情報通信部１０２５からから最新のファームウェアを取得する（ステップＳＴ０２０６）。その後、プログラム更新部１０６５は、記憶部１０４０が記憶するファームウェアを、取得した最新のファームウェアに更新する（ステップＳＴ０２０７）。その後、プログラム更新部１０６５は、プログラム更新処理の実行を終了する。
【０１８５】
ここで図１２に戻り、故障診断装置１０００の構成について引続き説明する。
故障診断部１０７０は、後述する故障診断処理を実行することで、モデル生成装置９１００が生成したモデルを用いて、プログラム生成装置９２００が生成したファームウェアを実行することで生じた故障を診断する。
【０１８６】
ここで図１５を参照して、故障診断部１０７０が実行する故障診断処理について説明する。図１５は、故障診断部１０７０が実行する故障診断処理の一例を表すフローチャートである。
【０１８７】
先ず、故障診断部１０７０は、情報入力部１０３０から不具合識別情報を取得する（ステップＳＴ０３０１）。次に、故障診断部１０７０は、記憶部１０４０から証拠情報を取得する（ステップＳＴ０３０２）。
【０１８８】
ここで、証拠情報とは、故障診断装置である電子回路装置１０００に不具合が発生した場合における電子回路装置１０００を構成する部品又は部品群の状態に関する情報を言う。部品又は部品群の状態とは、部品又は部品群に関する環境情報、及び部品又は部品群が実行していたファームウェアの機能診断結果を含む。
【０１８９】
具体的には、故障診断部１０７０は、記憶部１０４０が記憶する電子回路装置１０００の動作履歴等を記述するログ情報ファイルを解析することで証拠情報を取得する。
【０１９０】
次に、故障診断部１０７０は、不具合識別情報が識別する不具合を引起す故障の診断に適したモデルを、記憶部１０４０が記憶する故障診断モデルから選択して取得する（ステップＳＴ０３０３）。
【０１９１】
その後、故障診断部１０７０は、記憶部１０４０が記憶する確率テーブルから、ステップＳＴ０３０３で選択したモデルを用いた故障診断に用いる確率テーブルを選択して取得する（ステップＳＴ０３０４）。
【０１９２】
次に、故障診断部１０７０は、選択した故障診断モデルに不具合識別情報と証拠情報と確率テーブルが保存する事前確率とを入力する（ステップＳＴ０３０５）。その後、故障診断部１０７０は、故障診断モデルを解析することでオブジェクト毎の事後確率を算出する（ステップＳＴ０３０６）。
【０１９３】
次に、故障診断部１０７０は、算出した事後確率に基づいて故障原因の候補を抽出する（ステップＳＴ０３０７）。具体的には、故障の原因が生じている確率が高いオブジェクトを、事後確率が高い順に所定の数だけ抽出して故障原因の候補とする。
【０１９４】
その後、故障診断部１０７０は、故障原因の候補を表示するよう情報表示部１０３５を制御する（ステップＳＴ０３０８）。その後、故障診断部１０７０は、故障診断処理の実行を終了する。
【０１９５】
上記実施例では、ソースコードはオブジェクト指向言語で記載され、かつオブジェクト指向言語の例としてＣ＋＋、Ｃ＃及びＪａｖａ（登録商標）を挙げて説明したが、これに限定される訳ではない。ソースコードは、例えば、Ａｄａ（Ada language）、Ｓｉｍｕｌａ（Simple universal language）、Ｓｍａｌｌｔａｌｋ、Ｍｏｄｕｌａ−３、Ｏｂｊｅｃｔ  Ｐａｓｃａｌ、Ｏｂｊｅｃｔｉｖｅ−Ｃ、Ｐｙｔｈｏｎ、Ｒｕｂｙ、ＯＣａｍｌ、ＣＬＯＳ（Common Lisp Object System CommonLisp）、又はＥｉｆｆｅｌ、Ｓａｔｈｅｒで記載される構成を採用できる。
【０１９６】
本実施例においては、故障診断部１０７０が故障診断手段に相当し、モデル生成部９１２０がモデル生成手段に相当し、プログラム生成部９２２０がプログラム生成手段に相当する。
【０１９７】
以下、本発明の第２の実施形態について図面を参酌しながら説明する。
【実施例２】
【０１９８】
第２の実施例は、故障診断装置が診断対象とする故障が、故障診断装置とは異なる電子回路装置に発生した故障である点で実施例１と異なる。
【０１９９】
ここで図１６を参照して、第２の実施例における故障診断システムの構成について説明する。図１６は、第２の実施例における故障診断システムの一構成例を表す図である。
【０２００】
図１６が示す故障診断システムは、通信網２００、故障診断装置２０００、１又は複数の電子回路装置８０００から８００ｎ、モデル生成装置８１００、及びプログラム生成装置８２００で構成される。
【０２０１】
尚、電子回路装置８０００から８００ｎの接続、構成、及び機能は、それぞれほぼ同一であるため、以下単に、電子回路装置８０００のみについて説明する。
【０２０２】
通信網２００は、故障診断装置２０００、電子回路装置８０００、モデル生成装置８１００、及びプログラム生成装置８２００をそれぞれ通信可能に接続する。尚、通信網２００の構成及び機能は、実施例１で説明した通信網１００の構成等とほぼ同様であるので説明を省略する。
【０２０３】
故障診断装置２０００は、通信網２００を介して電子回路装置８０００、モデル生成装置８１００、及びプログラム生成装置８２００に接続している。故障診断装置２０００の構成及び機能については、実施例１で説明した故障診断装置１０００の構成等とほぼ同様であるため、以下相違点について主に説明する。
【０２０４】
よって図１７を参照して、故障診断装置２０００の構成について説明する。図１７は、故障診断装置２０００の一構成例を表す機能ブロック図である。
【０２０５】
故障診断装置２０００は、情報通信部２０２５、情報入力部２０３０、情報表示部２０３５、記憶部２０４０、制御部２０５０、モデル更新部２０６０で構成、及び故障診断部２０７０で構成され、それぞれの部は情報の授受が可能なようにバス２００５を介して接続している。
【０２０６】
故障診断装置２０００は、実施例１で説明した画像入力部１０１０、画像出力部１０１５、ＦＡＸ通信部１０２０、及びプログラム更新部１０６５に相当する部を有しないため、スキャン機能、プリント機能、ＦＡＸ通信機能、及びコピー機能を有しない。
【０２０７】
情報通信部２０２５は、電子回路装置８０００から通信網２００を介して証拠情報を受信し、受信した証拠情報を故障診断部２０７０へ出力する。
【０２０８】
記憶部２０４０は、実施例１で説明した記憶部１０４０と異なり、スキャン機能、プリント機能、ＦＡＸ通信機能、及びコピー機能を提供するために実行するファームウェア及びファームウェアのバージョン情報を記憶しない。
【０２０９】
故障診断部２０７０は、情報通信部２０２５から、故障診断の対象とする電子回路装置８０００の証拠情報を取得し、取得した証拠情報を用いて故障診断処理を実行する点で実施例１と異なる。
【０２１０】
ここで図１６に戻り、故障診断システム２０の構成について引続き説明を行う。
モデル生成装置８１００は、通信網２００を介して故障診断装置２０００、電子回路装置８０００、及びプログラム生成装置８２００に接続している。
【０２１１】
モデル生成装置８１００の構成及び機能は、実施例１で説明したモデル生成装置９１００の構成等とほぼ同様であるので説明を省略する。尚、図示を省略するが、モデル生成装置８１００は、実施例１で説明したモデル生成部９１２０に相当する部を有している。
【０２１２】
プログラム生成装置８２００は、通信網２００を介して故障診断装置２０００、電子回路装置８０００、及びモデル生成装置８１００に接続している。プログラム生成装置８２００の構成及び機能は、実施例１で説明したプログラム生成装置９２００の構成等とほぼ同様であるので、以下相違点について主に説明をする。
【０２１３】
プログラム生成装置９２００は、図示を省略するが、実施例１で説明したプログラム生成部９２２０及び情報通信部９２５０に相当する部を有している。情報通信部９２５０に相当する部は、故障診断装置２０００ではなく、電子回路装置８０００から最新ファームウェアに関するバージョン情報の送信要求を受信し、受信した送信要求に従ってバージョン情報を電子回路装置８０００へ送信する。
【０２１４】
また、情報通信部９２５０に相当する部は、同様に、電子回路装置８０００から最新ファームウェアの送信要求を受信し、受信した送信要求に従って最新のファームウェアを電子回路装置８０００へ送信する。
【０２１５】
電子回路装置８０００は、通信網２００を介して故障診断装置２０００、モデル生成装置８１００、及びプログラム生成装置８２００に接続している。電子回路装置８０００は、例えば、スキャン機能、プリント機能、コピー機能、ＦＡＸ通信機能、及び情報通信機能を有する複合機で構成される。電子回路装置８０００は、故障診断装置２０００によって故障診断される。
【０２１６】
電子回路装置８０００の構成及び機能は、実施例１で説明した故障診断装置である電子回路装置１０００の構成等とほぼ同様であるので、以下主に相違点について説明する。
【０２１７】
よって図１８を参照して、電子回路装置８０００の構成について説明する。図１８は、電子回路装置８０００の一構成例を表す機能ブロック図である。
【０２１８】
電子回路装置８０００は、画像入力部８０１０、画像出力部８０１５、ＦＡＸ通信部８０２０、情報通信部８０２５、情報入力部８０３０、情報表示部８０３５、記憶部８０４０、制御部８０５０、及びプログラム更新部８０６５で構成され、それぞれの部はバス８００５を介して情報の授受が可能なように接続される。
【０２１９】
電子回路装置８０００は、実施例１で説明した故障診断部１０７０及びモデル更新部１０６０に相当する部を有しないために故障診断機能を有しない。
【０２２０】
情報通信部８０２５は、制御部８０５０から証拠情報を取得し、取得した証拠情報を通信網２００を介して故障診断装置２０００へ送信する。
【０２２１】
記憶部８０４０は、実施例１で説明した記憶部１０４０と異なり、故障診断モデル及び確率テーブルを記憶しない。
【０２２２】
制御部８０５０は、記憶部２０４０が記憶する電子回路装置８０００の動作履歴等を記述するログ情報ファイルを解析することで証拠情報を取得する。次に、制御部８０５０は、取得した証拠情報を情報通信部８０７０へ出力する。
【０２２３】
本実施例においては、故障診断部２０７０が故障診断手段に相当し、モデル生成装置８１００が有するモデル生成部９１２０に相当する部がモデル生成手段に相当し、プログラム生成装置８２００が有するプログラム生成部９２２０に相当する部がプログラム生成手段に相当する。
【０２２４】
以下、本発明の第３の実施形態について図面を参酌しながら説明する。
【実施例３】
【０２２５】
第３の実施例においては、本発明に係る電子回路装置について説明する。
先ず図１９を参照して、本発明に係る電子回路装置の構成について説明する。図１９は、本発明に係る電子回路装置の一構成例を表す機能ブロック図である。
【０２２６】
図１９に示す電子回路装置３０００は、画像入力部３０１０、画像出力部３０１５、ＦＡＸ通信部３０２０、情報通信部３０２５、情報入力部３０３０、情報表示部３０３５、記憶部３０４０、制御部３０５０、故障診断部３０７０、モデル生成部３１２０、及びプログラム生成部３２２０で構成され、それぞれの部は情報の授受が可能なようにバス３００５を介して接続している。
【０２２７】
電子回路装置３０００の構成及び機能は、実施例１で説明した故障診断装置である電子回路装置１０００の構成及び接続とほぼ同様であるので、以下相違点について主に説明する。
【０２２８】
電子回路装置３０００は、実施例１で説明したモデル更新部１０６０及びプログラム更新部１０６５に相当する部を有さない。また、電子回路装置３０００は、モデル生成部３１２０、及びプログラム生成部３２２０を有する点で実施例１と異なる。
【０２２９】
モデル生成部３１２０、及びプログラム生成部３２２０の構成及び機能は、実施例１で説明したモデル生成装置９１００を構成するモデル生成部９１２０、及びプログラム生成装置９２００を構成するプログラム生成部９２２０の構成及び機能とほぼ同一であるので、以下相違点について主に説明する。
【０２３０】
情報入力部３０３０は、ファームウェアの設計情報と設計されるファームウェアのバージョン情報とを入力し、入力した情報を関連付けて記憶部３０４０に保存する点で実施例１で説明した情報入力部１０３０と異なる。
【０２３１】
また、情報入力部３０３０は、設計情報に基づいて作成したソースコードとコードにより生成されるファームウェアのバージョン情報とを入力し、入力したコードとバージョン情報とを関連付けて記憶部３０４０に保存する。
【０２３２】
更に、情報入力部３０３０は、必要に応じて、制御部３０５０が実行するファームウェアのバージョン情報を入力し、制御部３０５０へ出力する。
【０２３３】
記憶部３０４０は、情報入力部３０３０が入力したファームウェアの設計を表す設計情報と設計されるファームウェアのバージョン情報とを関連付けて記憶する。記憶部３０４０が記憶した設計情報及びバージョン情報は、モデル生成部３１２０により参照される。
【０２３４】
また記憶部３０４０は、モデル生成部３１２０が生成した故障診断モデルとモデルを用いた故障診断に用いる確率テーブルと診断対象とする電子回路装置３０００が実行するファームウェアのバージョン情報とを関連付けて記憶する。記憶部３０４０が記憶する故障診断モデル、確率テーブル、及びバージョン情報は、故障診断部３０７０によって参照される。
【０２３５】
記憶部３０４０は、情報入力部３０３０が入力したソースコードとソースコードに基づいて生成されるファームウェアのバージョン情報とを記憶する。記憶部３０４０が記憶したソースコード及びバージョン情報は、プログラム生成部３２２０により参照される。
【０２３６】
また記憶部３０４０は、プログラム生成部３２２０が生成した全体プログラムと全体プログラムのバージョン情報とを関連付けて記憶する。記憶部３０４０が記憶する全体プログラムとバージョン情報とは、制御部３０５０及び故障診断部３０７０によって参照される。
【０２３７】
制御部３０５０は、情報入力部３０３０からバージョン情報を取得し、取得したバージョン情報に関連付けて記憶部３０４０が記憶するファームウェアを実行する。
【０２３８】
故障診断部３０７０は、制御部３０５０から故障発生時に実行していたファームウェアのバージョン情報を取得する。故障診断部３０７０は、次に、取得したバージョン情報に関連付けられた故障診断モデル及び確率テーブルを選択し、選択した故障診断モデル及び確率テーブルを用いて故障診断を行う。
【０２３９】
本実施例においては、故障診断部３０７０が故障診断手段に相当し、モデル生成部３１２０がモデル生成手段に相当し、プログラム生成部３２２０がプログラム生成手段に相当する。
【０２４０】
以下、本発明の第４の実施形態について図面を参酌しながら説明する。
【実施例４】
【０２４１】
第４の実施例においては、本発明に係る故障診断装置について説明をする。
先ず図２０を参照して、実施例４における故障診断システムの構成について説明する。図２０は、実施例４における故障診断システムの一構成例を表す図である。
【０２４２】
故障診断システム４０は、通信網４００、故障診断装置４０００、１又は複数の電子回路装置７０００から７００ｎで構成される。尚、電子回路装置７０００から７００ｎの構成、接続、及び機能は、それぞれほぼ同一であるので、以下、電子回路装置７０００についてのみ説明する。
【０２４３】
通信網４００は、故障診断装置４０００と電子回路装置７０００とを通信可能に接続する。尚、通信網４００の構成及び機能は、実施例１で説明した通信網１００と同様であるので説明を省略する。
【０２４４】
故障診断装置４０００は、通信網４００を介して電子回路装置７０００に接続している。故障診断装置４０００は、電子回路装置７０００に発生した故障を診断する。尚、故障診断装置４０００の構成は、実施例１で説明した故障診断装置１０００の構成及び機能とほぼ同一であるため、以下主に、相違点について説明する。
【０２４５】
ここで図２１を参照して、故障診断装置４０００の構成について説明する。図２１は、故障診断装置４０００の一構成例を表す機能ブロック図である。
【０２４６】
故障診断装置４０００は、実施例１で説明した画像入力部１０１０、画像出力部１０２０、及びＦＡＸ通信部１０３０に相当する部を有しない。故障診断装置４０００は、スキャン機能、プリント機能、ＦＡＸ通信機能、及びコピー機能を有しない点で実施例１で説明した故障診断装置１０００と異なる。
【０２４７】
また、故障診断装置４０００は、モデル更新部４０６０及びプログラム更新部４０６５を有さず、モデル生成部４１２０、プログラム生成部４２００、及びプログラム管理部４２４０を有する点で実施例１で説明した故障診断装置１０００と異なる。
【０２４８】
情報通信部４０２５は、電子回路装置７０００から通信網４００を介して証拠情報を受信し、受信した証拠情報を故障診断部４０７０へ出力する。
【０２４９】
情報入力部４０３０は、ファームウェアの設計情報と設計されるファームウェアのバージョン情報とを入力し、入力した情報を関連付けて記憶部４０４０に保存する点で実施例１で説明した情報入力部１０３０と異なる。
【０２５０】
また、情報入力部４０３０は、設計情報に基づいて作成したソースコードとコードにより生成されるファームウェアのバージョン情報とを入力し、入力したコードとバージョン情報とを関連付けて記憶部４０４０に保存する。
【０２５１】
記憶部４０４０は、情報入力部４０３０が入力したファームウェアの設計を表す設計情報と設計されるファームウェアのバージョン情報とを関連付けて記憶する。記憶部４０４０が記憶した設計情報及びバージョン情報はモデル生成部４１２０により参照される。
【０２５２】
また記憶部４０４０は、モデル生成部４１２０が生成した故障診断モデルとモデルを用いた故障診断に用いる確率テーブルと診断対象とする電子回路装置７０００が実行するファームウェアのバージョン情報とを関連付けて記憶する。記憶部４０４０が記憶する故障診断モデル、確率テーブル、及びバージョン情報は、故障診断部４０７０によって参照される。
【０２５３】
更に、記憶部４０４０は、情報入力部４０３０が入力したソースコードとソースコードに基づいて生成されるファームウェアのバージョン情報とを記憶する。記憶部４０４０が記憶したソースコード及びバージョン情報は、プログラム生成部４２００により参照される。
【０２５４】
また記憶部４０４０は、プログラム生成部４２００が生成した全体プログラムと全体プログラムのバージョン情報とを関連付けて記憶する。記憶部４０４０が記憶する全体プログラムとバージョン情報とは、プログラム管理部４２４０によって参照される。
【０２５５】
更に記憶部４０４０は、実施例１で説明した記憶部１０４０と異なり、スキャン機能、プリント機能、ＦＡＸ通信機能、及びコピー機能を提供するために実行するファームウェア及びファームウェアのバージョン情報を記憶しない。
【０２５６】
故障診断部４０７０は、情報通信部４０２５から、故障診断の対象とする電子回路装置７０００の証拠情報を取得し、取得した証拠情報を用いて故障診断処理を実行する点で実施例１と異なる。
【０２５７】
尚、モデル生成部４１２０、プログラム生成部４２００、及びプログラム管理部４２４０の構成及び機能は、実施例１で説明したモデル生成装置９１００を構成するモデル生成部９１２０、並びにプログラム生成装置９２００を構成するプログラム生成部９２２０及びプログラム管理部９２４０の構成及び機能とほぼ同一であるため説明を省略する。
【０２５８】
ここで図２０に戻り、故障診断システム４０の構成について引続き説明する。
電子回路装置７０００は、通信網４００を介して故障診断装置４０００に接続している。電子回路装置７０００は、例えば、スキャン機能、プリント機能、コピー機能、ＦＡＸ通信機能、及び情報通信機能を有する複合機で構成される。
【０２５９】
電子回路装置７０００は、故障診断装置４０００が生成したファームウェアを実行することで電子回路装置７０００が有する機能を提供する。また、電子回路装置７０００は、ファームウェアを実行することで生じた故障を故障診断装置４０００によって診断される。
【０２６０】
電子回路装置７０００の構成及び機能は、実施例２で説明した電子回路装置２０００の構成等とほぼ同様であるので説明を省略する。
【０２６１】
本実施例においては、故障診断部４０７０が故障診断手段に相当し、モデル生成部４１２０がモデル生成手段に相当し、プログラム生成部４２２０がプログラム生成手段に相当する。
【０２６２】
以下、本発明の第５の実施形態について図面を参照しながら説明する。
【実施例５】
【０２６３】
第５の実施例は、実施例１で説明したモデル生成装置９１００が有する機能及びプログラム生成装置９２００が有する機能の双方を有する生成装置を備える故障診断システムの一実施例である。
【０２６４】
先ず図２２を参照して、実施例５における故障診断システムの構成について説明する。図２２は、実施例５における故障診断システムの一構成例を表す図である。
【０２６５】
図２２に示す故障診断システム５０は、通信網５００、１又は複数の電子回路装置である故障診断装置５０００から５００ｎ、並びに生成装置６０００で構成される。尚、故障診断装置５０００から５００ｎの接続、構成、及び機能はそれぞれほぼ同様であるために、以下、故障診断装置５０００についてのみ説明する。
【０２６６】
通信網５００は、故障診断装置５０００及び生成装置６０００を通信可能に接続する。尚、通信網５００の構成及び機能は、実施例１で説明した通信網１００の構成等とほぼ同一であるために説明を省略する。
【０２６７】
故障診断装置５０００は、通信網５００を介して生成装置６０００に接続している。故障診断装置５０００は、生成装置６０００が生成したファームウェア及びファームウェアのバージョン情報を取得し、取得したファームウェアを実行することで故障診断装置５０００が有する機能を提供する。
【０２６８】
また、故障診断装置５０００は、生成装置６０００が生成した故障診断モデル、故障診断モデルのバージョン情報、及び確率テーブルを取得し、取得したモデル及びテーブルを用いて、故障診断装置である電子回路装置５０００がファームウェアを実行することで生じた故障を診断する。
【０２６９】
尚、故障診断装置５０００の構成及び機能は、実施例１で説明した故障診断装置１０００の構成及び機能とほぼ同様であるため説明を省略する。また、故障診断装置５０００は、実施例１で説明した故障診断部１０７０に相当する部を有する。
【０２７０】
生成装置６０００は、設計情報に基づいて故障診断装置である電子回路装置５０００が実行するファームウェア及び電子回路装置５０００の故障診断に用いるモデルを生成する。
【０２７１】
ここで図２３を参照して、生成装置６０００の構成について説明する。図２３は、生成装置６０００の一構成例を表す機能ブロック図である。
【０２７２】
生成装置６０００は、情報入力部６０１０、モデル生成部６０２０、プログラム生成部６０３０、記憶部６０３０、モデル管理部６０４０、プログラム管理部６０４５、及び情報通信部６０５０で構成される。
【０２７３】
情報入力部６０１０の構成及び機能は、実施例３で説明した情報入力部３０１０の構成及び機能とほぼ同様であるので説明を省略する。
【０２７４】
モデル生成部６０２０の構成及び機能は、実施例３で説明したモデル生成部３１２０の構成及び機能とほぼ同様であるので説明を省略する。
【０２７５】
プログラム生成部６０２５の構成及び機能は、実施例３で説明したプログラム生成部３２２０の構成及び機能とほぼ同様であるので説明を省略する。
【０２７６】
モデル管理部６０４０及びプログラム管理部６０４５の構成及び機能は、実施例１で説明したモデル生成装置９１００が有するモデル管理部９１４０及びプログラム生成装置９２００が有するプログラム管理部９２４０の構成及び機能とほぼ同一であるため説明を省略する。
【０２７７】
情報通信部６０５０の構成及び機能は、実施例１で説明したモデル生成装置９１００が有する情報通信部９１５０とほぼ同一の構成及び機能、並びにプログラム生成装置９２００が有する情報通信部９２５０とほぼ同一の構成及び機能であるため説明を省略する。
【０２７８】
本実施例においては、故障診断部５０７０が有する故障診断部１０７０に相当する部が故障診断手段に相当し、モデル生成部６０２０がモデル生成手段に相当し、プログラム生成部６０２５がプログラム生成手段に相当する。
【０２７９】
故障診断装置１０００、故障診断装置２０００、故障診断装置４０００、故障診断装置５０００、及び電子回路装置３０００は、機能的には、演算部がＲＯＭ、ＲＡＭ、外部記憶装置の少なくともひとつに格納されたプログラムを実行することにより実現できる。また、このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供できる。
【０２８０】
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【０２８１】
上記実施形態では、外部記憶装置はハードディスク（Hard Disk）で構成されるとして説明したが、これに限定されるわけではなく、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory）、ＤＶＤ−ＲＡＭ（Digital Versatile Disk Random Access Memory）、ＭＯ（magneto-optic）、及び、フラッシュメモリ（flash memory）で構成される実施形式を採用できる。
【図面の簡単な説明】
【０２８２】
【図１】本発明に係る故障診断システムの一実施形態を示す構成図である。
【図２】モデル生成装置の一構成例を表す機能ブロック図である。
【図３】モデル生成装置のハードウェアの一構成例を表す図である。
【図４】ファームウェアの設計を表すクラス図の一例を表す図である。
【図５】全体プログラムと部分プログラムとオブジェクトとの関係の一例について説明するための図である。
【図６】ファームウェアの設計を表すステートチャートの一例を表す図である。
【図７】ファームウェアの設計を表すシーケンスの一例を表す図である。
【図８】モデル生成部が生成する故障診断モデルの一例を概念的に表す図である。
【図９】モデル生成部が実行するモデル生成処理の一例を表すフローチャートの一部である。
【図１０】モデル生成部が実行するモデル生成処理の一例を表すフローチャートの他部である。
【図１１】プログラム生成装置の一構成例を表す機能ブロック図である。
【図１２】故障診断装置の一構成例を表す図である。
【図１３】モデル更新部が実行するモデル更新処理の一例を表すフローチャートである。
【図１４】プログラム更新部が実行するプログラム更新処理の一例を表すフローチャートである。
【図１５】故障診断部が実行する故障診断処理の一例を表すフローチャートである。
【図１６】実施例２における故障診断システムの一構成例を表す図である。
【図１７】実施例２における故障診断装置の一構成例を表す機能ブロック図である。
【図１８】実施例２における電子回路装置の一構成例を表す機能ブロック図である。
【図１９】実施例３における電子回路装置の一構成例を表す機能ブロック図である。
【図２０】実施例４における故障診断システムの一構成例を表す図である。
【図２１】実施例４における故障診断装置の一構成例を表す機能ブロック図である。
【図２２】実施例５における故障診断システムの一構成例を表す図である。
【図２３】生成装置の一構成例を表す機能ブロック図である。
【符号の説明】
【０２８３】
１０…故障診断システム            １００…通信網                    
１０００〜ｎ…故障診断装置（電子回路装置）
１００５…バス                    １０１０…画像入力部              
１０１５…画像出力部              １０２０…ＦＡＸ通信部            
１０２５…情報通信部              １０３０…情報入力部              
１０３５…情報表示部              １０４０…記憶部                  
１０５０…制御部                  １０６０…モデル更新部            
１０６５…プログラム更新部        １０７０…故障診断部（故障診断手段）
２０…故障診断システム            ２００…通信網                    
２０００…故障診断装置            ２００５…バス                    
２０２５…情報通信部              ２０３０…情報入力部              
２０３５…情報表示部              ２０４０…記憶部                  
２０５０…制御部                  ２０６０…モデル更新部            
２０７０…故障診断部（故障診断手段）
３００…通信網                    ３０００…電子回路装置            
３００５…バス                    ３０１０…画像入力部              
３０１５…画像出力部              ３０２０…ＦＡＸ通信部            
３０２５…情報通信部              ３０３０…情報入力部              
３０３５…情報表示部              ３０４０…記憶部                  
３０５０…制御部                  ３０７０…故障診断部（故障診断手段）
３１２０…モデル生成部（モデル生成手段）
３２２０…プログラム生成部（プログラム生成手段）
４０…故障診断システム            ４００…通信網                    
４０００…故障診断装置            ４００５…バス                    
４０２５…情報通信部              ４０３０…情報入力部              
４０３５…情報表示部              ４０４０…記憶部                  
４０５０…制御部                  ４０７０…故障診断部（故障診断手段）
４１２０…モデル生成部（モデル生成手段）
４２２０…プログラム生成部（プログラム生成手段）
４２４０…プログラム管理部        ５０…故障診断システム            
５００…通信網                    
５０００〜ｎ…故障診断装置（電子回路装置）
６０００…生成装置                ６００５…バス                    
６０１０…情報入力部              
６０２０…モデル生成部（モデル生成手段）
６０２５…プログラム生成部（プログラム生成手段）
６０３０…記憶部                  ６０４０…モデル管理部            
６０４５…プログラム管理部        ６０５０…情報通信部              
７０００〜ｎ…電子回路装置        
８０００〜ｎ…電子回路装置        
８００５…バス                    ８０１０…画像入力部              
８０１５…画像出力部              ８０２０…ＦＡＸ通信部            
８０２５…情報通信部              ８０３０…情報入力部              
８０３５…情報表示部              ８０４０…記憶部                  
８０５０…制御部                  ８０６５…プログラム更新部        
８１００…モデル生成装置          ８２００…プログラム生成装置      
９１００…モデル生成装置          ９１０１…演算部                  
９１０２…ＲＯＭ                  ９１０３…ＲＡＭ                  
９１０４…外部記憶部              ９１０５…バス                    
９１１０…情報入力部              
９１２０…モデル生成部（モデル生成手段）
９１３０…記憶部                  ９１４０…管理部                  
９１５０…情報通信部              ９２００…プログラム生成装置      
９２０５…バス                    ９２１０…情報入力部              
９２２０…プログラム生成部（プログラム生成手段）
９２３０…記憶部                  ９２４０…管理部                  
９２５０…情報通信部              ＣＬ１〜５…クラス                
ＦＤ…設計書ファイル              ＦＥ…実行プログラム              
ＦＧＯ１から３…オブジェクト      ＦＯ…オブジェクトプログラム      
ＦＳ…ソースコードファイル        ＩＤ１〜５…インクルード          
ＬＬ１から３……ライフライン      ＭＧ１，２…メッセージ            
ＮＥ…証拠情報ノード              ＮＫ…不具合情報ノード            
ＮＯ１〜５…オブジェクト状態ノード
ＮＲ１１，１２，２３，３３，４３，４５，５３…リンク
ＲＴ１〜５…リレーション          ＳＥ…終了状態                    
ＳＬ１〜５…スタティックリンク    ＳＳ…開始状態                    
ＳＴ１，２…状態                  ＴＳ１〜３…状態遷移              
【図１】
2008257656.tif 000003
【図２】
2008257656.tif 000004
【図３】
2008257656.tif 000005
【図４】
2008257656.tif 000006
【図５】
2008257656.tif 000007
【図６】
2008257656.tif 000008
【図７】
2008257656.tif 000009
【図８】
2008257656.tif 000010
【図９】
2008257656.tif 000011
【図１０】
2008257656.tif 000012
【図１１】
2008257656.tif 000013
【図１２】
2008257656.tif 000014
【図１３】
2008257656.tif 000015
【図１４】
2008257656.tif 000016
【図１５】
2008257656.tif 000017
【図１６】
2008257656.tif 000018
【図１７】
2008257656.tif 000019
【図１８】
2008257656.tif 000020
【図１９】
2008257656.tif 000021
【図２０】
2008257656.tif 000022
【図２１】
2008257656.tif 000023
【図２２】
2008257656.tif 000024
【図２３】
2008257656.tif 000025