複数のサブシステムによって階層構造をなすシステムの異常診断を行う異常診断装置であって、前記システム及び前記サブシステムごとに、正常動作モデルを記憶する正常動作モデル蓄積部と、前記システム及び前記サブシステムごとに、実動時動作データを抽出する実動時動作抽出部と、前記システム及び前記サブシステムごとに、前記正常動作モデルに前記実動時動作データが含まれている場合には正常、含まれていない場合には異常の可能性有とする局所判定を行う正常動作モデル比較部と、前記システムに係る前記局所判定が異常の可能性有であり、かつ、前記階層構造の最下位層の前記サブシステムから遡って前記階層構造の最上位層の前記サブシステムに到達するまでの遡及経路に含まれる全ての前記局所判定が異常の可能性有である場合には、異常の可能性大とする総合判定を行い、最下位層の前記サブシステムを異常箇所として同定する総合判定部と、を具備する異常診断装置。前記総合判定部は、前記遡及経路に含まれる全ての前記局所判定が異常の可能性有であるか否かの判定処理を再帰的に実行することによって、前記総合判定を行う請求項1に記載の異常診断装置。前記正常動作モデルは、前記システム及び前記サブシステムがそれぞれ独立に正常に動作していることを特徴づけるデータのみによって構築される請求項1又は請求項2に記載の異常診断装置。前記正常動作モデルは、前記システム及び前記サブシステムごとの正常時の入出力値の対応関係を示す表現形式、並びに、前記システム及び前記サブシステムごとの正常時に取り得るデータフロー或いは制御フローを示す表現形式の中から、前記システム及び前記サブシステムごとに最適な表現形式によって構築される請求項3に記載の異常診断装置。コンピュータを、請求項1に記載の異常診断装置として機能させるためのプログラム。しかしながら、特許文献1に記載の運用管理方法では、以下の課題がある。1開発の最終段階において大きな労力が発生する。これは、特許文献1に記載の運用管理方法では、大規模なシステムの正常/異常の判定、並びに、異常発生箇所の同定を行う為には、システムの完成時になって初めて正常動作モデル特許文献1では相関モデルを構築することが可能になるからである。すなわち、特許文献1に記載の運用管理方法では、システムが正常に動作していることを特徴づける変数に加えて、そのシステムの一部を構成する部分以降、サブシステムと記載する。が正常に動作していることを特徴づける変数の値も全て抽出し、それらの膨大な変数の相関モデルを構築しなければならない。2異常の判定精度が正常動作モデルの網羅度に依存する。すなわち、正常動作モデルを網羅的に作成することができれば異常の判定精度は向上するが、正常動作モデルを網羅的に作成することができなければ、異常の判定精度が低下して誤報正常なのに異常の可能性有と通知されてしまうこと。が発生し易くなる。3正常動作モデルの表現形式が時系列に変化する2つの変数の変換関数に限定されている為、その表現形式によって正常動作モデルを表現できない場合には特許文献1に記載の運用管理方法を適用できない。正常動作モデルの表現形式は、2つの変数の相関による表現形式以外にも、例えば、ツリー形式を用いてシステムが正常時に取り得る変数の組の集合を表現したり、ソフトウエアが正常時に取り得る制御フロー集合を表現したりと、多様な表現形式が考えられる。従って、正常動作モデルの表現形式は、システム又はサブシステムの特性に応じて適切な表現形式を用いることが望ましい。また、特許文献2や特許文献3に記載の異常診断装置にも課題がある。特許文献2や特許文献3に記載の異常診断装置では、階層の最上位の正常動作モデルが異常と判断された場合には、その下の階層のサブシステムがたとえ正常と判断されていても、最終的に異常と判定してしまう。この判定方法では、仮に最上位の正常動作モデルの網羅度が低いと、正常を異常と判定してしまう場合があり、誤報を引き起こす可能性が高いと言える。本発明は、前述した問題点に鑑みてなされたもので、その目的とすることは、開発の最終段階での労力を軽減し、システム又はサブシステムの特性に応じて適切な表現形式を用いて正常動作モデルが構築され、異常の判定精度を向上させて誤報を減らすとともに異常発生個所の同定も可能とする異常診断装置等を提供することである。前述した目的を達成するために第1の発明は、複数のサブシステムによって階層構造をなすシステムの異常診断を行う異常診断装置であって、前記システム及び前記サブシステムごとに、正常動作モデルを記憶する正常動作モデル蓄積部と、前記システム及び前記サブシステムごとに、実動時動作データを抽出する実動時動作抽出部と、前記システム及び前記サブシステムごとに、前記正常動作モデルに前記実動時動作データが含まれている場合には正常、含まれていない場合には異常の可能性有とする局所判定を行う正常動作モデル比較部と、前記システムに係る前記局所判定が異常の可能性有であり、かつ、前記階層構造の最下位層の前記サブシステムから遡って前記階層構造の最上位層の前記サブシステムに到達するまでの遡及経路に含まれる全ての前記局所判定が異常の可能性有である場合には、異常の可能性大とする総合判定を行い、最下位層の前記サブシステムを異常箇所として同定する総合判定部と、を具備する異常診断装置である。第1の発明によって、異常の判定精度を向上させて誤報を減らすとともに異常発生個所の同定も行うことができる。第1の発明における前記総合判定部は、前記遡及経路に含まれる全ての前記局所判定が異常の可能性有であるか否かの判定処理を再帰的に実行することによって、前記総合判定を行うことが望ましい。これによって、第1の発明の異常診断装置の実装作業が容易となるとともに、サブシステムの追加、削除、分割、又は統合があったとしても、対応が容易となる。第1の発明における前記正常動作モデルは、前記システム及び前記サブシステムがそれぞれ独立に正常に動作していることを特徴づけるデータのみによって構築されることが望ましい。これによって、開発の最終段階ではシステムの正常動作モデルのみを構築すれば良いので、開発の最終段階での労力を軽減することができる。第1の発明における前記正常動作モデルは、前記システム及び前記サブシステムごとの正常時の入出力値の対応関係を示す表現形式、並びに、前記システム及び前記サブシステムごとの正常時に取り得るデータフロー或いは制御フローを示す表現形式の中から、前記システム及び前記サブシステムごとに最適な表現形式によって構築されることが望ましい。これによって、システム又はサブシステムの特性に応じて適切な表現形式を用いて正常動作モデルが構築される。第2の発明は、コンピュータを、第1の発明の異常診断装置として機能させるためのプログラムである。汎用のコンピュータに第2の発明のプログラムをインストールすることによって、第1の発明の異常診断装置を得ることができる。本発明により、開発の最終段階での労力を軽減し、システム又はサブシステムの特性に応じて適切な表現形式を用いて正常動作モデルが構築され、異常の判定精度を向上させて誤報を減らすとともに異常発生個所の同定も可能とする異常診断装置等を提供することができる。以下図面に基づいて、本発明の実施形態を詳細に説明する。本発明の実施の形態に係る異常診断装置1は、複数のサブシステムによって階層構造をなすシステムを診断対象とする。異常診断装置1は、診断対象のシステムに搭載されていても良いし、診断対象のシステムの外部に設置されていても良い。例えば、診断対象のシステムが車両の制御システムである場合、異常診断装置1が車両に搭載されていると、後述する実動時動作データの収集が容易になるとともに、運転者に対して即座に診断結果を通知することが可能となる。図1は、診断対象のシステムと異常診断装置の概略構成図である。図1に示すように、診断対象のシステムは、複数のサブシステムによって階層構造をなす。図1を詳細に説明すると、システムは、サブシステム1、、サブシステムn最上位層のサブシステムを含む。また、サブシステム1最上位層のサブシステム群は、サブシステム11、、サブシステム1p第2階層のサブシステム群を含み、サブシステムn最上位層のサブシステムは、サブシステムn1、、サブシステムnq第2階層のサブシステム群を含む。尚、第2階層よりも下の階層のサブシステムが存在しない場合、第2階層が最下位層となる。階層構造の階層数は任意である。サブシステムの分割単位は、機能、HWハードウエア、SWソフトウエアなどが考えられる。機能、HWハードウエア、SWソフトウエアごとに分けられたサブシステムは、更に複数のサブ機能、サブHW、サブSWに階層化しても良い。また、例えば、図1に示すサブシステム1pとサブシステムn1などが、同一のサブシステムであっても良い。また、図1に示すように、階層型異常診断装置1以下、単に異常診断装置1と記載する。は、実動時動作抽出部2、正常動作モデル蓄積部3、正常動作モデル比較部4、総合判定部5等を具備する。正常動作モデル蓄積部3は、システム及びサブシステムごとに、階層型正常動作モデル7以下、単に正常動作モデル7と記載する。を記憶する。正常動作モデル7は、例えば、サブシステムごとの動作を確認する単体テストやシステム全体の動作を確認する総合テストの際に構築される。また、正常動作モデル7は、システムの実動後にデータが追加されても良い。正常動作モデル7は、システム及びサブシステムがそれぞれ独立に正常に動作していることを特徴づけるデータのみによって構築されることが望ましい。これは、システム全体や特定のサブシステムが正常か否かを判定する為には、より下位のサブシステムの動作を特徴づけるデータを含める必要がないからである。また、あるサブシステムの正常動作モデル7が他のサブシステムに依存する場合、他のサブシステムが完成しないと構築できない為、開発の最終段階において大きな労力が必要である。これに対して、正常動作モデル7をシステム及びサブシステムごとに独立して構築することによって、開発の最終段階ではシステムの正常動作モデル7のみを構築すれば良いので、開発の最終段階での労力を軽減することができる。正常動作モデル7は、システム及びサブシステムごとの正常時の入出力値の対応関係を示す表現形式第1の表現形式、並びに、システム及びサブシステムごとの正常時に取り得るフローを示す表現形式第2の表現形式などの中から、システム及びサブシステムごとに最適な表現形式によって構築される。例えば、機能、HWハードウエア、SWソフトウエアなどの分割単位に応じて最適な表現形式が選択される。第1の表現形式の例としては、入出力変数の相関関数、ツリー構造やテーブルなどによって表現される入出力変数値の羅列などが考えられる。また、第2の表現形式の例としては、データフローや制御フローなどが考えられる。例えば、機能やHWを分割単位とするときは、第1の表現形式などが望ましい。また、例えば、SWを分割単位とするときは、処理が単純な場合にはいずれの表現形式でも良く、処理が複雑な場合には第2の表現形式などが望ましい。実動時動作抽出部2は、システムの実動時に、システム及びサブシステムごとに、階層型実動時動作データ6以下、単に実動時動作データ6と記載する。を抽出する。実動時動作抽出部2は、正常動作モデル7との比較が可能なように、正常動作モデル7の表現形式に応じたデータを実動時動作データ6として収集する。例えば、正常動作モデル7が、入出力変数の相関関数、入出力変数値の羅列、データフローなどによって表現される場合、実動時動作抽出部2は、関連するデータを実動時動作データ6として収集する。また、例えば、正常動作モデル7が、制御フローなどによって表現される場合、実行された命令や命令の実行アドレスを実動時動作データ6として収集する。例えば、診断対象のシステムを構成する為の各種プログラムには、異常診断装置1に実動時動作データ6を送信する命令が記述されている。また、例えば、異常診断装置1の実動時動作抽出部2を構成する為のプログラムには、各種センサから実動時動作データ6を取得する命令が記述されている。正常動作モデル比較部4は、システムの実動時に、システム及びサブシステムごとに、正常動作モデル7に実動時動作データ6が含まれている場合には正常、含まれていない場合には異常の可能性有とする局所判定を行う。正常動作モデル比較部4が従う局所判定アルゴリズム8の一例については後述する。総合判定部5は、システムの実動時に、システムに係る局所判定が異常の可能性有であり、かつ、階層構造の最下位層のサブシステムから遡って階層構造の最上位層のサブシステムに到達するまでの遡及経路に含まれる全ての局所判定が異常の可能性有である場合には、異常の可能性大とする総合判定を行い、最下位層のサブシステムを異常箇所として同定する。以下、遡及経路とは、階層構造の最下位層のサブシステムから遡って階層構造の最上位層のサブシステムに到達するまでの経路を意味するものとする。総合判定部5が従う総合判定アルゴリズム9の一例については後述する。ここで、異常診断装置1のハードウエア構成について説明する。異常診断装置1は、例えば、制御装置、記憶装置、及び通信制御装置等がバスを介して接続されて構成される。制御装置は、CPUCentralProcessingUnit、ROMReadOnlyMemory、RAMRandomAccessMemory等で構成される。CPUは、記憶装置、ROM等に格納されるプログラムをRAM上のワークメモリ領域に呼び出して実行し、バスを介して接続された各装置を駆動制御し、異常診断装置1が行う後述する処理を実現する。ROMは、不揮発性メモリであり、異常診断装置1のブートプログラムやBIOS等のプログラム、データ等を恒久的に保持している。RAMは、揮発性メモリであり、記憶装置、ROM等からロードしたプログラム、データ等を一時的に保持するとともに、制御装置が各種処理を行う為に使用するワークエリアを備える。記憶装置は、HDDハードディスクドライブまたはEEPROMElectricallyErasableProgrammableROM等であり、制御装置が実行するプログラム、プログラム実行に必要なデータ等が格納される。プログラムは、制御装置により必要に応じて読み出されてRAMに移され、CPUに読み出されて各種の手段として実行される。通信制御装置は、他の装置との通信を媒介する通信インタフェースであり、他の装置との通信制御を行う。実動時動作抽出部2、正常動作モデル比較部4、及び総合判定部5は、制御装置が記憶装置に記憶されているプログラムを実行することによって実現される。また、実動時動作抽出部2は、制御装置が通信制御装置を介してデータを収集することによって実現される。正常動作モデル蓄積部3は、記憶装置に記憶されるファイル群によって実現される。図2は、システムの一例としての車両の概要図である。車両11は、図1に示すシステムに相当する。ABSAntilockBrakeSystem12は、図1に示す最上位層のサブシステムに相当する。説明を簡単にする為に、車両11に含まれるABS12以外の最上位層のサブシステムについては省略する。ABS12は、急ブレーキや低摩擦の路面でのブレーキ操作において、車輪のロック車輪の回転が止まることによる滑走を防止する機能である。ABS12は、例えば、ECUElectricControlUnit:電子制御装置によって実現される。ECUは、マイクロコンピュータであり、組み込まれるSWソフトウエア13に従って動作する。また、図2に示すABS12は、4センサ2チャンネル型となっている。4つのセンサは、車輪速FL:左前輪21、車輪速FR:右前輪22、車輪速RL:左後輪23、車輪速RR:右後輪24の車速センサである。2つのチャンネルは、HWFL:左前輪14、HWFR:右前輪15である。尚、HWはハードウエアの略称である。HWFL14やHWFR15は、例えば、ブレーキ油圧を制御するソレノイドバルブである。SW13、HWFL14、及びHWFR15は、図1に示す第2階層のサブシステムに相当する。以下では、車輪速FL21、車輪速FR22、車輪速RL23、車輪速RR24の車速センサや、出力装置25例えば、警報ランプなど、車輪FL26、車輪FR27、ブレーキ装置28などは、サブシステムとしてのABS12に含まれないものとして説明する。図3~図8を参照しながら、正常動作モデル蓄積部3について説明する。正常動作モデル蓄積部3は、図3に示す正常動作モデルの階層構造を示すデータとともに、図4~図8に示すシステム及びサブシステムの正常動作モデルのデータを蓄積する。図3は、正常動作モデルの階層構造を示す図である。図3に示すように、車両11、ABS12、SW13、HWFL14、HWFR15のそれぞれに対して、車両の正常動作モデル31、ABSの正常動作モデル32、SWの正常動作モデル33、HWFLの正常動作モデル34、HWFRの正常動作モデル35が構築される。システムが複数のサブシステムによって階層構造をなす為、正常動作モデル7も、図3に示す階層構造をなしている。図4は、車両の正常動作モデルの一例を示す図である。車両の正常動作モデル31は、例えば、正常な車両11の動作を表す変数値の組み合わせの羅列を示す表として構築される。正常な車両11の動作を表す変数値としては、運転者の操作を示す変数値、運転者の操作に対する反応を示す変数値、車両11の状態を示す変数値などが挙げられる。図4に示すように、車両の正常動作モデル31は、例えば、運転者の操作を示す変数値として、アクセル踏み角41、ブレーキ値42、及びステアリング角43を含み、運転者の操作に対する反応を示す変数値として、G加速度センサx値前後方向の値44、G加速度センサy値左右方向の値45を含み、車両11の状態を示す変数値として、車速46を含む。例えば、No.1のデータであれば、アクセル踏み角41が1.1、ブレーキ値42が0、ステアリング角43が1.1、Gセンサx値44が1.5、Gセンサy値45が3.7、車速46が1.6である。図4に示すNo.1~No.5などのデータは、それぞれ、正常な車両11の動作を表す変数値の組み合わせとなっている。図5は、ABSの正常動作モデルの一例を示す図である。ABSの正常動作モデル32は、例えば、正常なABS12の動作を表す変数値の組み合わせの羅列を示す表として構築される。正常なABS12の動作を表す変数値としては、ABS12に対する入力を示す変数値、ABS12からの出力を示す変数値などが挙げられる。図5に示すように、ABSの正常動作モデル32は、例えば、ABS12に対する入力を示す変数値として、車輪減速度FL51、車輪減速度FR52、車輪減速度RL53、車輪減速度RR54を含み、ABS12からの出力を示す変数値として、ソレノイドバルブFL55、ソレノイドバルブFR56を含む。例えば、No.1のデータであれば、車輪減速度FL51が2.4、車輪減速度FR52が3.5、車輪減速度RL53が2.7、車輪減速度RR54が1.5、ソレノイドバルブFL55が0、ソレノイドバルブFR56が0である。図5に示すNo.1~No.5などのデータは、それぞれ、正常なABS12の動作を表す変数値の組み合わせとなっている。尚、ソレノイドバルブFL55とソレノイドバルブFR56の値は、制御モードをコード化したものであり、0が減圧、1が保持、2が増圧を示している。図6は、SWの正常動作モデルの一例を示す図である。SWの正常動作モデル33は、例えば、正常なSW13の制御フローを示す表として構築される。正常なSW13の制御フローとしては、SW13の命令の実行アドレス列61などが挙げられる。図6に示すように、SWの正常動作モデル33は、例えば、実行アドレス列61として、命令1~命令6の実行アドレスを含む。例えば、No.1のデータであれば、命令1が0x1000、命令2が0x1001、命令3が0x1002、命令4が0x1003、命令5が0x1004、命令6が0x1005である。図6に示すNo.1~No.5などのデータは、それぞれ、正常なSW13の制御フローとなっている。尚、図6に示す例では、SWの正常動作モデル33は、実行アドレス列61による表現形式としたが、例えば、関数呼出しの呼出し順や、分岐処理だけに着目した制御フローなどによる表現形式であっても良い。図7は、HWFLの正常動作モデルの一例を示す図である。HWFLの正常動作モデル34は、例えば、正常なHWFL14の動作を表す変数値の組み合わせの羅列を示す表として構築される。正常なHWFL14の動作を表す変数値としては、HWFL14に対する入力を示す変数値、HWFL14からの出力を示す変数値などが挙げられる。図5に示すように、HWFLの正常動作モデル34は、例えば、HWFL14に対する入力を示す変数値として、ABS12のECUから与えられる電流値71を含み、HWFL14からの出力を示す変数値として、ソレノイドバルブのプランジャ位置72を含む。例えば、No.1のデータであれば、電流値71が0.1、プランジャ位置72が0である。図7に示すNo.1~No.5などのデータは、それぞれ、正常なHWFL14の動作を表す変数値の組み合わせとなっている。尚、プランジャ位置72の値は、コード化したものであり、0が高の位置、1が中の位置、2が低の位置を示している。図8は、HWFRの正常動作モデルの一例を示す図である。HWFLの正常動作モデル35は、例えば、正常なHWFR15の動作を表す変数値の組み合わせの羅列を示す表として構築される。例えば、正常なHWFR15の動作を表す変数値の組み合わせの羅列を示す表として構築される。正常なHWFR15の動作を表す変数値としては、HWFR15に対する入力を示す変数値、HWFR15からの出力を示す変数値などが挙げられる。図8に示すデータの意味は、図7に示すデータと同様である為、説明を省略する。次に、図9を参照しながら、実動時動作抽出部2について説明する。実動時動作抽出部2は、システムの実動時に、図9に示すシステム及びサブシステムの実動時動作データを抽出する。図9は、実動時動作データの階層構造を示す図である。図9に示すように、車両11、ABS12、SW13、HWFL14、HWFR15のそれぞれに対して、車両の実動時動作データ91、ABSの実動時動作データ92、SWの実動時動作データ93、HWFLの実動時動作データ94、HWFRの実動時動作データ95が構築される。システムが複数のサブシステムによって階層構造をなす為、実動時動作データも図9に示す階層構造をなしている。各実動時動作データの内容は、前述の正常動作モデル図4~図8参照と同様である為、説明を省略する。次に、図10を参照しながら、正常動作モデル比較部4について説明する。図10は、局所判定アルゴリズムの一例を示すフローチャートである。図10に示すSは、システム及びサブシステムを一意に特定するデータを格納する変数である。Nは、システム又は特定のサブシステムの正常動作モデルを格納する変数である。Rは、システム又は特定のサブシステムの実動時動作データを格納する変数である。正常動作モデル比較部4は、変数Sに、システム又は特定のサブシステムを示すデータを格納し、図10に示すフローチャートを実行する。図10に示すように、正常動作モデル比較部4は、変数Nに変数Sの正常動作モデルを格納するとともにステップS11、変数Rに変数Sの実動時動作データを格納するステップS12。次に、正常動作モデル比較部4は、変数Nのデータに変数Rのデータが含まれるか否か判定するステップS13。例えば、変数Nには、図4に示す車両の正常動作モデル31が格納されているとする。また、例えば、変数Rには、アクセル踏み角41が1.1、ブレーキ値42が0、ステアリング角43が1.1、Gセンサx値44が1.5、Gセンサy値45が3.7、車速46が1.6のデータが格納されているものとする。この場合、変数Rのデータは、変数NのNo.1のデータと同一であるから、正常動作モデル比較部4は、変数Nのデータに変数Rのデータが含まれていると判定する。また、例えば、変数Nには、図4に示す車両の正常動作モデル31が格納されているとする。また、例えば、変数Rには、アクセル踏み角41が1.1、ブレーキ値42が0、ステアリング角43が0.5、Gセンサx値44が1.5、Gセンサy値45が3.7、車速46が1.6のデータが格納されているものとする。この場合、変数Rのデータは、変数NのNo.1のデータと比べるとステアリング角43が異なり、それ以外のデータとも一致しないことから、正常動作モデル比較部4は、変数Nのデータに変数Rのデータが含まれていないと判定する。次に、正常動作モデル比較部4は、変数Nのデータに変数Rのデータが含まれていると判定した場合、正常と判定するステップS14。また、正常動作モデル比較部4は、変数Nのデータに変数Rのデータが含まれていないと判定した場合、異常の可能性有と判定するステップS15。正常動作モデル比較部4は、局所判定の結果をRAM等に記憶し、図10の処理を終了する。正常動作モデル比較部4は、システム及び全てのサブシステムに対して前述の処理を実行し、システム及びサブシステムごとの局所判定の結果をRAM等に記憶する。次に、図11~図13を参照しながら、総合判定部5について説明する。総合判定部5は、図11に示す総合判定アルゴリズム9、又は、図12に示す総合判定表100に従って、処理を実行する。総合判定部5は、図11に示す総合判定アルゴリズム9及び図12に示す総合判定表100のいずれに従う場合であっても、システムに係る局所判定が異常の可能性有であり、かつ、遡及経路階層構造の最下位層のサブシステムから遡って階層構造の最上位層のサブシステムに到達するまでの経路に含まれる全ての局所判定が異常の可能性有である場合には、異常の可能性大とする総合判定を行い、最下位層のサブシステムを異常箇所として同定する。図2に示す例であれば、遡及経路は、1SW13-ABS12-車両11、2HWFL14-ABS12-車両11、3HWFR15-ABS12-車両12である。最初に、図11に示す総合判定アルゴリズム9に従う場合について説明する。図11は、総合判定アルゴリズムの一例を示すフローチャートである。図11に示すSは、サブシステムの集合を格納する変数である。Siは、サブシステムを一意に特定するデータを格納する変数である。総合判定部5は、最初に、システムの局所判定が正常か否か判定するステップS21。総合判定部5は、システムの局所判定が正常の場合ステップS21のY、総合判定を正常とみなすとしステップS22、総合判定を出力しステップS23、処理を終了する。一方、総合判定部5は、システムの局所判定が正常でない場合ステップS21のN、ステップS24~ステップS32に示される再帰処理を実行し、現コンテキストが再帰のコンテキストではなくなるとステップS26のN、総合判定を出力しステップS23、処理を終了する。尚、現コンテキストが再帰のコンテキストであるステップS26のYとは、後述する再帰呼び出しステップS30の判定がYの場合によってステップS26が実行されていること、言い換えれば、後述するループ処理中にステップS26が実行されていることを意味する。以下では、ステップS24~ステップS32に示される再帰処理について説明する。総合判定部5は、もう一段下位の層のサブシステム群を変数Sに格納し、変数Sに含まれるサブシステムの局所判定が全て正常か否かの各層判定を行うステップS24。総合判定部5は、各層判定が全て正常の場合ステップS24のY、総合判定がφ空集合の場合には総合判定を正常か異常か不明としステップS25、現コンテキストが再帰のコンテキストか否かを確認するステップS26。総合判定部5は、現コンテキストが再帰のコンテキストである場合ステップS26のY、変数Sに一段上の階層のサブシステム群を格納し、再帰からリターンするステップS27。一方、総合判定部5は、現コンテキストが再帰のコンテキストではない場合ステップS26のN、前述の通りステップS23に進む。また、総合判定部5は、各層判定が全て正常ではない場合ステップS24のN、S28~S32に示されるループ処理を実行する。ループ処理では、総合判定部5は、変数Sにおける各サブシステムを変数Siに代入して順に一連の処理ステップS29~ステップS31を実行するステップS28。変数Sに含まれる全てのサブシステムに対して一連の処理が終了すると、総合判定部5は、ループ処理を終了しステップS32、ステップS26に進む。総合判定部5は、変数Siの局所判定が正常か否かを確認するステップS29。総合判定部5は、変数Siの局所判定が正常の場合ステップS29のY、次のサブシステムを変数Siに代入してステップS29から処理を繰り返す。一方、総合判定部5は、変数Siの局所判定が正常ではない場合ステップS29のN、ステップS30に進む。ステップS30では、総合判定部5は、変数Siのもう一段下位のサブシステムが存在するか否か確認し、存在する場合ステップS30のYにはS24の処理の再帰呼び出しを行い、存在しない場合ステップS30のNには総合判定を異常の可能性大とし、異常箇所として変数Siを付け加えてステップS31、次のサブシステムを変数Siに代入してステップS29から処理を繰り返す。以上の通り、総合判定部5は、図11に示す総合判定アルゴリズム9に従う場合、遡及経路に含まれる全ての局所判定が異常の可能性有であるか否かの判定処理を再帰的に実行することによって、総合判定及び異常箇所の同定を行う。次に、図12に示す総合判定表に従う場合について説明する。図12は、総合判定表の一例を示す図である。総合判定部5は、予め総合判定表100を記憶しておき、正常動作モデル比較部4による判定結果を総合判定表100に当てはめることによって、総合判定及び異常箇所の同定を行う。図12に示すように、総合判定表100は、局所判定101の組み合わせパターンと、総合判定異常箇所同定102との対応関係を示す表である。例えば、No.1のデータであれば、車両11の局所判定が正常、ABS12の局所判定が正常、SW13の局所判定が正常、HWFL14の局所判定が正常、かつ、HWFR15の局所判定が正常の場合、総合判定を正常とみなすと決定することを示している。図12のNo.1~No.16に示すように、総合判定部5は、車両11システムの局所判定が正常であれば、総合判定を正常とみなすと決定する。また、図12のNo.17~No.25に示すように、総合判定部5は、車両11システムの局所判定が異常の可能性有であっても、遡及経路に含まれるいずれか1つの局所判定が正常である場合には、総合判定を正常か異常か不明と決定する。また、図12のNo.26~No.32に示すように、総合判定部5は、車両11システムの局所判定が異常の可能性有、かつ遡及経路に含まれる全ての局所判定が異常の可能性有である場合には、総合判定を異常の可能性大と決定する。No.29~No32の場合、1SW13-ABS12-車両11の遡及経路に含まれる全ての局所判定が異常の可能性有であるから、最下位層のサブシステムであるSW13を異常箇所として同定する。No.27、No.28、No.31、No.32の場合、2HWFL14-ABS12-車両11の遡及経路に含まれる全ての局所判定が異常の可能性有であるから、最下位層のサブシステムであるHWFL14を異常箇所として同定する。No.26、No.28、No.30、No.32の場合、3HWFR15-ABS12-車両12の遡及経路に含まれる全ての局所判定が異常の可能性有であるから、最下位層のサブシステムであるHWFR15を異常箇所として同定する。前述した通り、総合判定部5は、図11に示す総合判定アルゴリズム9及び図12に示す総合判定表100のいずれに従う場合であっても、同様のルールによって総合判定及び異常箇所の同定を行う。従って、図11に示す総合判定アルゴリズム9に従った総合判定及び異常箇所の同定は、図12に示す総合判定及び異常箇所の同定102と同一である。図13は、総合判定結果の一例を示す図である。図13aは、図12のNo.21に対応する。図13bは、図12のNo.29に対応する。図13aでは、車両11システムの局所判定、及び、SW13最下位層のサブシステムの1つの局所判定が異常の可能性有となっており、ABS12最上位層のサブシステムの局所判定が正常となっている。このような状況は、車両の正常動作モデル31及びSWの正常動作モデル33の網羅度が低いと考えられる。そこで、総合判定部5は、総合判定を正常か異常か不明と決定する。一方、図13bでは、車両11システムの局所判定、ABS12最上位層のサブシステムの局所判定、及び、SW13最下位層のサブシステムの1つの局所判定が異常の可能性有となっている。言い換えると、異常の可能性有の局所判定だけを辿って、最下位層のサブシステムから遡って最上位層のサブシステムに到達することができる。このような状況は、最下位層のサブシステムであるSW13に何らかの不具合がある可能性が高いと考えられる。そこで、総合判定部5は、総合判定を異常の可能性大と決定し、SW13最下位層のサブシステムを異常箇所として同定する。このように、本発明の異常診断装置1では、仮にシステムや一部のサブシステムの正常動作モデルの網羅度が低い場合であっても、他のサブシステムの局所判定も考慮されて総合判定が決定されるので、誤報正常なのに異常の可能性有と通知されてしまうこと。を低減することができる。ここで、総合判定を決定した後の対応について説明する。例えば、総合判定が異常の可能性大の場合、異常診断装置1は、運転者に対して、車両11を安全に停止させるように、警報を出力することが望ましい。また、例えば、総合判定が正常か異常か不明の場合であっても、異常診断装置1は、無線などを介して車両11の診断センタなどに診断結果を通知しておくことが望ましい。また、例えば、総合判定が正常とみなすの場合であっても、異常診断装置1は、局所判定が異常の可能性有のサブシステムについて、適宜必要なログを収集しておくことが望ましい。総合判定部5が、図11に示す総合判定アルゴリズム9に従う場合、すなわち、遡及経路に含まれる全ての局所判定が異常の可能性有であるか否かの判定処理を再帰的に実行することによって総合判定を行う場合、総合判定表100を作成する必要がないので、本発明の異常診断装置1の実装作業が容易となる。また、サブシステムの追加、削除、分割、又は統合があったとしても、対応が容易となる。つまり、総合判定表100に従う場合であれば、総合判定表100として記憶される数多くのデータの追加、削除、修正が必要となるが、総合判定アルゴリズムに従う場合であればプログラムの修正は不要であり、階層構造を示すデータのみ修正すれば良い。以上、添付図面を参照しながら、本発明に係る異常診断装置等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。