(57)【要約】【課題】不良傾向を考慮しながら、記録の対象とするイベントの種類とタイミングを指定して、記録用部品を容易に作成すること。【解決手段】記録用部品埋め込み領域推定エンジンと、記録用部品作成エンジンと、監視対象にて実装するソフトウェアの設計とソースコードを格納する設計／コードＤＢとを備えており、前記設計における状態及びイベントをソースコードにおける分岐と繰り返しと命令とを対応づけておき、ソースコード上で不良傾向として受け付けた状態とイベントに対応した領域を同定し、同定された領域に基づいて状態の活性と不活性に関する記録用部品と、イベントの実行に関する記録用部品が生成される。不良傾向として状態とイベントを２つ以上受け付けられるときには、個別にソースコードと対応する領域を同定し、領域の重複状況に基づいて、状態とイベントとを選定して記録用部品を生成する。【選択図】図２
2009032108.tif 000002
【特許請求の範囲】
【請求項１】
記録用部品埋め込み領域推定エンジンと、記録用部品作成エンジンと、監視対象にて実装するソフトウェアの設計とそのソースコードを格納するデータベースとを備え、前記ソフトウェアの設計において前記監視対象が取り得る状態及びイベントと前記ソースコードにおける分岐、繰り返し及び命令とを対応付けておき、前記記録用部品埋め込み領域推定エンジンが、想定される不良傾向として受け付けられた前記状態と前記イベントに対応してそれぞれ個別に前記ソースコードへの記録用部品埋め込み領域を同定し、前記記録用部品作成エンジンが、同定された前記領域に基づいて前記状態の活性と不活性に関する記録用部品と前記イベントの実行に関する記録用部品を生成する稼働実績記録制御装置。
【請求項２】
ソフトウェアの設計において監視対象が取り得る状態及びイベントと前記ソフトウェアのソースコードにおける分岐、繰り返し及び命令とを対応付けておき、想定される不良傾向として受け付けられた前記状態と前記イベントに対応してそれぞれ個別に前記ソースコードへの記録用部品埋め込み領域を同定し、同定された前記領域に基づいて前記状態の活性と不活性に関する記録用部品と前記イベントの実行に関する記録用部品を生成する稼働実績記録制御方法。
【請求項３】
記録用部品埋め込み領域推定エンジンと、記録用部品作成エンジンと、監視対象にて実装するソフトウェアの設計とそのソースコードを格納するデータベースとを備え、前記ソフトウェアの設計において前記監視対象が取り得る状態及びイベントと前記ソースコードにおける分岐、繰り返し及び命令とを対応付けておき、前記記録用部品埋め込み領域推定エンジンが、想定される不良傾向として受け付けられた２つ以上の前記状態と前記イベントに対応してそれぞれ個別に前記ソースコードへの記録用部品埋め込み領域を同定し、前記記録用部品埋め込み領域推定エンジンが、同定された前記領域とその重複状況とに基づいて、前記状態と前記イベントを選定し、前記状態の活性と不活性に関する記録用部品と前記イベントの実行に関する記録用部品を生成する稼働実績記録制御装置。
【請求項４】
請求項３記載の稼働実績記録制御装置において、前記ソフトウェアの前記状態と前記イベントとの補足属性を受け付けて、前記記録用部品埋め込み領域推定エンジンが、前記重複状況と前記補足属性とを使用して前記状態と前記イベントを選定する稼働実績記録制御装置。
【請求項５】
請求項３記載の稼働実績記録制御装置において、前記ソフトウェアの前記状態と前記イベントとの補足属性を受け付けて、前記記録用部品埋め込み領域推定エンジンが、前記重複状況と前記補足属性とを使用して前記状態と前記イベントを選定し、更に前記補足属性に、致命度と頻度の両方、あるいは、どちらか一方を含む稼働実績記録制御装置。
【請求項６】
ソフトウェアの設計において監視対象が取り得る状態及びイベントと前記ソフトウェアのソースコードにおける分岐、繰り返し及び命令とを対応付けておき、想定される不良傾向として受け付けられた２つ以上の前記状態と前記イベントに対応してそれぞれ個別に前記ソースコードへの記録用部品埋め込み領域を同定し、同定された前記領域とその重複状況に基づいて、前記状態と前記イベントを選定し、前記状態の活性と不活性に関する記録用部品と前記イベントの実行に関する記録用部品を生成する稼働実績記録制御方法。
【請求項７】
監視対象と稼働実績記録制御装置と監視装置とで構成され、前記稼働実績記録制御装置が、記録用部品埋め込み領域推定エンジンと、記録用部品作成エンジンと、監視対象にて実装するソフトウェアの設計とそのソースコードを格納するデータベースとを備え、前記ソフトウェアの設計において前記監視対象が取り得る状態及びイベントと前記ソフトウェアのソースコードにおける分岐、繰り返し及び命令とを対応付けておき、前記記録用部品埋め込み領域推定エンジンが、想定される不良傾向として受け付けられた前記状態と前記イベントに対応して前記ソースコードへの記録用部品埋め込み領域を同定し、前記記録用部品作成エンジンが、同定された前記領域に基づいて前記状態の活性と不活性に関する記録用部品と前記イベントの実行に関する記録用部品を生成する監視システム。
【請求項８】
請求項７記載の監視システムにおいて、前記監視対象が複数の装置で構成され、少なくとも一つの前記装置で前記状態の活性と不活性に関する前記記録用部品を実行し、他の少なくとも一つの前記装置で前記イベントの実行に関する前記記録用部品を実行する監視システム。
【請求項９】
請求項７記載の監視システムにおいて、前記ソフトウェアの前記状態、前記イベント及び前記補足属性を受け付けて不良傾向蓄積データベースに蓄積し、前記監視装置が前記補足属性に基づいて前記状態と前記イベントの記録を表示する監視システム。
【請求項１０】
請求項７記載の監視システムにおいて、前記ソフトウェアの前記状態、前記イベント及び前記補足属性を受け付けて不良傾向蓄積データベースに蓄積し、前記監視装置が前記補足属性に基づいて前記状態と前記イベントの記録を表示し、更に前記状態での前記イベントの発生有無に関する項目を前記補足属性に含む監視システム。
【請求項１１】
請求項７記載の監視システムにおいて、監視装置が、前記ソフトウェアの状態とイベントを受け付けた際の構造と対応付けて、前記状態と前記イベントの記録を表示する監視システム。
【請求項１２】
請求項７記載の監視システムにおいて、前記状態の活性と不活性に関する前記記録用部品を実行した時に、時刻と、対象とする前記状態の識別子と、前記状態の活性状況を記録する監視システム。
【請求項１３】
請求項７記載の監視システムにおいて、前記状態の活性と不活性に関する前記記録用部品を実行した時に、時刻と、対象とする前記状態の識別子と、前記状態の活性状況を記録し、更に前記イベントの実行に関する前記記録用部品を実行した時に、前記状態の前記活性状況に基づいて、時刻と、前記状態と、対応する前記イベントの識別子と、開始と終了を示すフラグを記録する監視システム。
【請求項１４】
監視対象と稼働実績記録制御装置と監視装置とで構成する監視システムにおいて、稼働実績記録制御装置が、監視対象にて実行するソフトウェアの前記設計における状態及びイベントを、前記ソフトウェアのソースコードにおける分岐と繰り返しと命令とを対応づけておき、前記記録用部品埋め込み領域推定エンジンが、前記状態と前記イベントを２つ以上受け付けて、個別に前記ソースコードと対応する領域を同定し、前記領域の重複状況に基づいて、前記状態と前記イベントを選定し、記録用部品を生成する監視システム。
【請求項１５】
請求項１４記載の監視システムにおいて、前記監視対象が複数の装置で構成され、少なくとも一つの前記装置で前記状態の活性と不活性に関する前記記録用部品を実行し、他の少なくとも一つの前記装置で前記イベントの実行に関する前記記録用部品を実行する監視システム。
【請求項１６】
請求項１４記載の監視システムにおいて、前記ソフトウェアの状態とイベントと補足属性を受け付けて不良傾向蓄積データベースに蓄積し、前記監視装置が前記補足属性に基づいて前記状態と前記イベントの記録を表示する監視システム。
【請求項１７】
請求項１４記載の監視システムにおいて、前記ソフトウェアの状態とイベントと補足属性を受け付けて不良傾向蓄積データベースに蓄積し、前記監視装置が前記補足属性に基づいて前記状態と前記イベントの記録を表示し、前記状態での前記イベントの発生有無に関する項目を前記補足属性に含む監視システム。
【請求項１８】
請求項１４記載の監視システムにおいて、前記監視装置が前記ソフトウェアの前記状態と前記イベントを受け付けた際の構造と対応付けて前記状態と前記イベントの記録を表示する監視システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、監視対象を監視するための稼働実績記録制御方法及び装置、並びに監視システムに関する。特に、監視対象の稼働効率を確保しながら、監視対象の稼働実績を記録するための稼働実績記録制御方法と装置、並びに記録された稼働実績を使用して監視対象を監視する監視システムに関する。
【背景技術】
【０００２】
監視対象の稼動実績を記録する方法としては、モニタ技術に関する報告がある。例えば、特許文献１に記載のソフトウェアによってシステムの挙動を検出するソフトウェアモニタによると、記録用部品（プローブとしてのコード）をソフトウェアのソースコードに埋め込むことで、前記ソフトウェアにおける命令の実行に関するデータを記録することができる。これにより、前記ソフトウェアのイベントを前記命令と対応付けて定義しておけば、監視対象の稼動実績を、前記イベントの実行に関するデータを使用して記録することができる。
【０００３】
一方、前記ソフトウェアモニタでは、記録用部品を実行する間、前記記録に伴うデータ読み込み処理と、データ書き込み処理などを実行することになるので、記録用部品を埋め込んでいない場合と比較して、ソフトウェアの実行に時間を要するという問題がある。
【０００４】
この問題に対して、特許文献１記載のハイブリッドモニタでは、前記書き込み処理に伴うバッファ部へのデータ書き込み処理と、バッファ部から不揮発性記録部へのデータ書き込み処理を並行して実行することで、記録用部品の実行時間を短縮するとの記載がある。確かに、前記ハイブリッドモニタによれば、開発者が、前記イベントに対応付けられた前記命令の前後に、記録すべき項目とハードウェアへの記録指示を含む記録用部品を埋め込むことで、監視対象の稼働効率が低下することをある程度は抑えることができる。
【０００５】
ただし、前記ハイブリッドモニタでは、前記書き込み処理を記録用部品とハードウェアとを連動させることで実現するので、専用ハードウェアと、専用ハードウェアインターフェースを必要としている。これにより、適用先が特殊な用途に限られるという問題がある。また、前記ハイブリッドモニタを適用して、前記書き込み処理に要する時間を短縮するとしても、記録用部品を埋め込んでいない場合と比較すると、ソフトウェアの実行に時間を要する。これにより、記録用部品のロジックが複雑化し、また、記録用部品の埋め込み数が増加するのに従い、監視対象の稼働効率を確保することに限界が生じていた。
【０００６】
よって、前記モニタ技術を適用することで、監視対象の稼動実績を蓄積する場合には、監視対象の稼働効率と監視項目を考慮しながら、（１）記録すべきイベントの種類とタイミングを選定し、（２）記録するための記録用部品を作成し、（３）記録用部品の埋め込みを行うことが求められた。上記（３）に関しては、非特許文献１に記載のアスペクト指向プログラミング技術が報告されている。この技術によれば、前記命令に相当するメソッド又は関数を指定すれば、指定された前記メソッド又は関数に対して記録用部品を機械的に埋め込むことができるので、記録用部品を埋め込む作業に伴う負荷が削減可能となっている。また、上記（２）に関しては、非特許文献２によるオンデマンドのアスペクト・ウィービングが報告されている。前記報告では、ソフトウェアの実行中に、ポイントカットを変更するための実装環境が提案されている。前記実装環境では、ソフトウェアの実装者が、ソースコードで定義されている変数を選定し、前記変数の値と対応付けて、ポイントカットを定義する。これにより、実装者が、前記実装環境を使用して、ソースコードレベルで、記録用部品を作成すれば、監視対象の稼働効率の低下を低減できた。更に上記（１）に関しては、記録用部品を埋め込む実装者が、検査票などを分析してイベントの種別とタイミングを個別に選定していた。
【特許文献１】特開平７−２８１９３０号公報
【非特許文献１】石尾隆、楠本真二、井上克郎、“アスペクト指向プログラミングのプログラムスライス計算への応用”、Ｗｅｂ文献
【非特許文献２】佐藤芳樹、立堀道明、千葉滋、“オンデマンドのアスペクト・ウィービングに基づくＷｅｂアプリケーション開発のすすめ”、Ｗｅｂ文献
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来技術では、（２）において、ソースコードにて定義されている変数、関数を使用したプログラミングを行うことが求められた。これにより、設計者が設計段階で想定している不良傾向から記録用部品を作成することが困難であった。また、保守員が稼働実績に基づいて想定している不良傾向から記録用部品を作成することも困難であった。さらに、（１）において、設計者と、実装者と、保守員のそれぞれが選び出したイベントの種類とタイミングから、どれを最終的に選定するかを決めるのが困難であった。
【０００８】
本発明は、この問題を解決するために発明されたもので、目的は、前記不良傾向を考慮しながら、記録の対象とするイベントの種類とタイミングを指定して、記録用部品を作成することを容易とするものである。
【課題を解決するための手段】
【０００９】
記録用部品埋め込み領域推定エンジンと、記録用部品作成エンジンと、監視対象にて実装するソフトウェアの設計とそのソースコードを格納するデータベースとを備え、前記ソフトウェアの設計において前記監視対象が取り得る状態及びイベントと前記ソースコードにおける分岐、繰り返し及び命令とを対応付けておき、前記記録用部品埋め込み領域推定エンジンが、想定される不良傾向として受け付けられた前記状態と前記イベントに対応してそれぞれ個別に前記ソースコードへの記録用部品埋め込み領域を同定し、前記記録用部品作成エンジンが、同定された前記領域に基づいて前記状態の活性と不活性に関する記録用部品と前記イベントの実行に関する記録用部品を生成する。また、前記記録用部品埋め込み領域推定エンジンが、前記状態と前記イベントを２つ以上受け付ける場合には、個別に前記ソースコードと対応する領域を同定し、前記領域の重複状況に基づいて、前記状態と前記イベントを選定し、前記状態の活性と不活性に関する記録用部品と前記イベントの実行に関する記録用部品を生成する。また、活性と不活性に関する記録用部品は、活性と不活性に関する報告を行い、更に、活性と不活性に関する記録を行うことができる。また、状態（活性と不活性）と連動してイベントを記録することもできる。
【発明の効果】
【００１０】
この発明によれば、設計で定義されている状態とイベントを選択するだけで、記録の対象とするイベントの種類とタイミングを指定した記録用部品を作成することができ、監視対象に実装されるソフトウェアに対して、監視対象の不良傾向として受け付けられた状態やイベントを監視するための記録用部品を埋め込むべき領域を容易に定めることができる。
【発明を実施するための最良の形態】
【００１１】
本発明による監視システムは、複数の装置から構成される監視対象と、稼働実績記録制御装置と、監視装置とから構成されている。また、監視対象を構成する各装置は、各装置に備わるソフトウェアを実行することで、それぞれのシーケンスを制御する。監視システムにおいて、稼働実績記録制御装置が、監視対象のソフトウェアに関するコードを受け付ける。また、稼働実績記録制御装置は、ソフトウェアの設計段階で設計者によって想定される不良傾向と、ソフトウェアの実装段階で実装者によって想定される不良傾向と、実績に基づいて保守管理者によって想定される不良傾向とを受け付ける。また、稼働実績記録制御装置が、前記した不良傾向とコードに基づいて、記録用部品を作成する。また、監視対象を構成する各装置がこれらの記録用部品を実行しながら、個々に稼働実績を記録する。また、監視装置で、監視対象にて記録した稼働実績を収集し、前記シーケンス間の同期を確認する。
【実施例】
【００１２】
以下、図面に基づいて本発明による監視システムの実施例を説明する。
【００１３】
図１７は、実施例１における監視システムの利用イメージを示す。この実施例において、監視システムは、稼働実績記録制御装置１７０９と、監視装置１７１０と、ｍｏｖｅｒＡ（１７２４）、ｍｏｖｅｒＢ（１７２０）及びｍｏｖｅｒＣ（１７２３）を含む監視対象とから構成されている。
【００１４】
ｍｏｖｅｒＡ（１７２４）とｍｏｖｅｒＢ（１７２０）とｍｏｖｅｒＣ（１７２３）の設計を行う設計者１７０１は、設計段階で想定する不良傾向を稼働実績記録制御装置１７０９に登録する。前記設計に基づいて実装を行う実装者１７０２は、実装段階で想定する不良傾向を稼働実績記録制御装置１７０９に登録する。ｍｏｖｅｒＡ（１７２４）とｍｏｖｅｒＢ（１７２０）とｍｏｖｅｒＣ（１７２３）の保守を行う保守員１７０３は、実績に基づいて想定する不良傾向を稼働実績記録制御装置１７０９に登録する。なお、設計者１７０１と実装者１７０２と保守員１７０３の役割を兼任してもよい。
【００１５】
実施例１では、設計者１７０１と保守員１７０３は、各ｍｏｖｅｒが取り得る状態と各ｍｏｖｅｒの状態を変化させる動作として取り得るイベントを使用して不良傾向を定義し、実装者１７０２は、分岐と繰り返しと命令を使用して不良傾向を定義する。もちろん、設計者１７０１と保守員１７０３が、分岐と繰り返しと命令を使用して不良傾向を定義しても、本発明の効果を享受できる。また、実装者１７０２が、状態とイベントを使用して不良傾向を定義しても、本発明の効果を享受できる。さらに、設計者１７０１と保守員１７０３と実装者１７０２が、状態とイベントと、分岐と繰り返しと命令の両方を使用して不良傾向を定義しても、本発明の効果を享受できる。責任者１７３０は、推定ポリシを稼働実績記録制御装置１７０９に登録する。設計者１７０１と、実装者１７０２と、保守員１７０３のいずれかが責任者１７３０の役割を兼任するとしても、本発明の効果を享受できる。また、設計者１７０１と、実装者１７０２と、保守員１７０３の組合せで役割を兼任するとしても、本発明の効果を享受できる。
【００１６】
稼働実績記録制御装置１７０９は、前記不良傾向を前記ｍｏｖｅｒで稼働するソフトウェアのソースコード上に配置して重複数を算出する。本発明では、状態とイベントの組合せをソースコード上に対応付けることで記録用部品を埋め込む領域が推定されるが、状態とイベントが複数存在する場合には、この対応付けが組合せの数だけ繰り返される。重複数とは、当該組合せの数だけ繰り返すときに対応付けられる領域が重複するときの、その重複する数をいう。さらに、推定ポリシに基づいて記録用部品の埋め込み位置を推定する。さらに、記録用部品を作成して、前記ソースコードの所定の箇所に埋め込む。さらに、実行系を生成して、ｍｏｖｅｒＡ（１７２４）とｍｏｖｅｒＢ（１７２０）とｍｏｖｅｒＣ（１７２３）に実行系を受け渡す。この動作により、ｍｏｖｅｒＡ（１７２４）とｍｏｖｅｒＢ（１７２０）とｍｏｖｅｒＣ（１７２３）のログ項目を更新する。なお、実施例１では、ソフトウェアのソースコードに記録用部品を静的に埋め込むこととするが、非特許文献２に記載の技術を使用して、ソフトウェアを実行中に記録用部品をウィーブするようにしても本発明の効果を享受できる。もちろん、実行系を受け渡すタイミングとは異なるタイミングで、記録用部品を前記監視対象に受け渡して、ソフトウェアにウィーブするようにしても本発明の効果を享受できる。
【００１７】
ｍｏｖｅｒＡ（１７２４）と、ｍｏｖｅｒＢ（１７２０）と、ｍｏｖｅｒＣ（１７２３）は、それぞれ、ｍｏｖｅｒの状態を格納するためのメモリ領域１７２６と、メモリ領域１７２１と、メモリ領域１７２２とを備える。図１７では、ｍｏｖｅｒＡ（１７２４）がセンシング２状態に遷移したことを、ｍｏｖｅｒＢ（１７２０）とｍｏｖｅｒＣ（１７２３）に通知し、ｍｏｖｅｒＢ（１７２０）とｍｏｖｅｒＣ（１７２３）が前記通知を受信して、それぞれ、メモリ領域１７２１と、メモリ領域１７２２に格納する。ｍｏｖｅｒＡ（１７２４）と、ｍｏｖｅｒＢ（１７２０）と、ｍｏｖｅｒＣ（１７２３）は、それぞれ、記録用部品を実行中に、必要に応じてメモリ領域１７２６と、メモリ領域１７２１と、メモリ領域１７２２を参照し、前記参照結果に基づいてログを記録する。また、前記ログを監視装置１７１０へと転送する。監視装置１７１０は、前記ログを加工してタイミングチャートなどの形式で画面に表示する。保守員は、前記画面を参照することで、監視対象の稼働状況を監視する。
【００１８】
図６は、実施例１における不良傾向の記述形式を示す。前記記述形式では、ラベル６０１にて示す不良が発生する傾向を持つ状態と、ラベル６４１にて示す不良の原因となる傾向を持つイベントとを使用して不良傾向を記述する。図６では、特に、ｍｏｖｅｒＡ（１７２４）の状態（６０２、６０３、６０２、６２２、６２３、６３１）と、ｍｏｖｅｒＢ（１７２０）のイベント（６０６、６０９、６２５）と、ｍｏｖｅｒＣ（１７２３）のイベント（６１２、６１５、６１８、６２８、６３５、６３８）と、イベント毎の発生有無（６４７、６４８、６４９、６５０、６５１、６５２、６５３、６５４、６５５）と、イベント毎の致命度（６０７、６１０、６１３、６１６、６１９、６２６、６２９、６３６、６３９）と頻度（６０８、６１１、６１４、６１７、６２０、６２７、６３０、６３７、６４０）を使用して不良傾向を示している。ラベル６０４と、ラベル６３２と、ラベル６３３は、状態の指定が無いことを示す。イベント毎の発生有無とは、あるイベントが発生すべきときにそのイベントが発生しなければエラーとし、あるイベントが発生すべきでないときにそのイベントが発生すればエラーとするためのものである。
【００１９】
図１１は、実施例１におけるｍｏｖｅｒＡ（１７２４）の状態（６０２、６０３、６２２、６２３、６３１）を基準として受け付けた不良傾向を蓄積して、前記不良傾向を分析することで得られる分析結果を示す。なお、ラベル１１０１は、ｍｏｖｅｒＡ（１７２４）のソースコードである。ｍｏｖｅｒＡ（１７２４）の状態（６０２、６０３、６２２、６２３、６３１）をソースコード上に配置した場合の領域と、前記領域と関連するｍｏｖｅｒＢ（１７２０）のイベント（６０６、６０９、６２５）と、ｍｏｖｅｒＣ（１７２３）のイベント（６１２、６１５、６１８、６２８、６３５、６３８）と、イベント毎の発生有無（６４７、６４８、６４９、６５０、６５１、６５２、６５３、６５４、６５５）と、イベント毎の致命度（６０７、６１０、６１３、６１６、６１９、６２６、６２９、６３６、６３９）と頻度（６０８、６１１、６１４、６１７、６２０、６２７、６３０、６３７、６４０）を対応付けた形式で、前記分析結果を構成する。
【００２０】
これにより、ｍｏｖｅｒＡ（１７２４）の状態６３１を介して、ラベル１１０２に示す命令と関連するｍｏｖｅｒＣ（１７２３）のイベント（６３５、６３８）とを対応付ける。また、ｍｏｖｅｒＡ（１７２４）の状態（６０２、６２２、６２３）を介して、ラベル１１０３に示す命令と関連するｍｏｖｅｒＢ（１７２０）のイベント６２５と、ラベル１１０４に示す命令と関連するｍｏｖｅｒＣ（１７２３）のイベント６２８とを対応付ける。さらに、ｍｏｖｅｒＡ（１７２４）の状態（６０２、６０３）を介して、ラベル１１０５に示す命令に関するｍｏｖｅｒＢ（１７２０）のイベント（６０６、６０９）と、ラベル１１０６に示す命令と関連するｍｏｖｅｒＣ（１７２３）のイベント（６１２、６１５、６１８）とを対応付ける。
【００２１】
図１９は、実施例１において、前記不良傾向から記録用部品を生成し、前記記録用部品を使用してｍｏｖｅｒＡ（１７２４）とｍｏｖｅｒＢ（１７２０）とｍｏｖｅｒＣ（１７２３）を監視した場合の監視結果を示す。ラベル１９０１は、ｍｏｖｅｒＡ（１７２４）の状態（６０２、６０３）が監視対象となったことを示す。ラベル１９０２は、前記状態（６０２、６０３）において、不良である可能性の高いイベントが発生した数を示す。ラベル（１９０４、１９０７、１９１１）は、ｍｏｖｅｒＡ（１７２４）の状態（６０２、６０３）にフォーカスしたタイムチャートを示す。ラベル１９０４は、前記状態（６０２、６０３）の開始を示す。また、ラベル１９０５は、前記状態（６０２、６０３）の終了を示す。ラベル１９０６は、ｍｏｖｅｒＢ（１７２０）の状態６０６の終了を示す。ラベル１９０８は、ｍｏｖｅｒＣ（１７２３）の状態６１２の開始を示す。また、ラベル１９０９は、ｍｏｖｅｒＣ（１７２３）の状態６１２の終了を示す。ラベル１９１０は、ｍｏｖｅｒＣ（１７２３）の状態６１８の開始を示す。ラベル１９１４は、ラベル１９０２にて示した不良である可能性の高い２つのイベントを、ラベル１９１２とラベル１９１３にて強調して示したブロックである。なお、実施例１では、図１８（１）のステップ１８０３において、ｍｏｖｅｒＣ（１７２３）のｓｅｎｓｉｎｇ１（６１５）が選択されなかったとして、前記ブロックには表示されないものとした。もちろん、表示したとしても本発明の効果を享受できる。
【００２２】
図１８は、実施例１における監視システムの操作フローを示す。図１８（１）は、責任者１７３０の操作フローを示す。まず、責任者１７３０は推定ポリシを稼働実績記録制御装置１７９０に入力する（ステップ１８０１）。次に、稼働実績記録制御装置１７０９に不良傾向が蓄積された後、責任者１７３０はログ項目候補を確認する（ステップ１８０２）。実施例１では、ログ項目候補の確認において、図１１に示す形式で出力された画面を閲覧することで当該確認が行なわれる。もちろん、前記形式でなくとも、ログ項目候補を理解できる形式であれば、本発明の効果を享受できる。次に、必要であれば、責任者１７３０はログ項目候補を補正する。実施例１では、前記画面を介して、ログ項目候補の追加、削除を行うものとする（ステップ１８０３）。
【００２３】
図１８（２）は、設計者１７０１の操作フローを示す。まず、設計者１７０１は設計情報を入力する（ステップ１８０４）。次に、設計者１７０１は設計段階で想定する不良傾向を入力する（ステップ１８０５）。なお、ステップ１８０５は、必ずしもステップ１８０４を実行した直後に実行される必要は無く、ステップ１８０４を実行した数時間後、数日後などであってもよい。図１８（３）は、実装者１７０２の操作フローを示す。まず、実装者１７０２は実装情報を入力する（ステップ１８０６）。次に、実装者１７０２は実装段階で想定する不良傾向を入力する（ステップ１８０７）。なお、ステップ１８０７は、必ずしもステップ１８０６を実行した直後に実行される必要は無く、ステップ１８０６を実行した数時間後、数日後などであってもよい。図１８（４）は、保守員１７３０の操作フローを示す。本操作フローでは、保守員１７３０は実績に基づいて想定する不良傾向を入力する（ステップ１８０８）。
【００２４】
図１は、実施例１における監視システムのシステム構成を示す。前記監視システムは、監視対象としてのｍｏｖｅｒＡ（１７２４）、ｍｏｖｅｒＢ（１７２０）及びｍｏｖｅｒＣ（１７２３）と、無線送受信機１１３と、ネットワーク１１４と、稼働実績記録制御装置１７０９と、監視装置１７１０とから構成される。稼働実績記録制御装置１７０９は、設計データベース（データベースは「ＤＢ」と略す。以下同じ）１０５と、不良傾向蓄積ＤＢ１０６と、開発ツール１０７と、推定結果ＤＢ１１５と、ポリシＤＢ１０８と、実装ＤＢ１０９とから構成される。開発ツール１０７は、ユーザインターフェース１１６と、記録用部品埋め込み領域推定エンジン１１７と、記録用部品／状態−イベント関連テーブル作成エンジン１１８と、記録用部品埋め込み／出力エンジン１１９とから構成される。監視装置１７１０は、監視ツール１１１と、稼働実績ＤＢ１１２とから構成される。
【００２５】
図３は、実施例１におけるｍｏｖｅｒＡ（１７２４）とｍｏｖｅｒＢ（１７２０）とｍｏｖｅｒＣ（１７２３）の機能ブロック図を示す。前記ブロックは、無線通信機器３１０と、メインボード３０１と、制御ボード３０９と、駆動系機器３１１と、センシング機器３１２と、操作機器３１３とから構成される。メインボード３０１は、通信部３０２と、格納部３０４と、活性フラグメモリ領域３０５と、実行系３０６と、ソフトウェア実行部３０７と、ログ結果３０８と、ログ結果転送部３０３と、状態−イベント関連テーブルメモリ領域３１４とから構成する。
【００２６】
図２は、実施例１における稼働実績記録制御装置１７０９のデータフロー図を示す。設計ＤＢ１０５は、シーケンス設計情報２０４を格納する。不良傾向蓄積ＤＢ１０６は、設計不良傾向テーブル２０５と、実装不良傾向テーブル２０６と、実績不良傾向テーブル２０７を格納する。推定結果ＤＢ１１５は、埋め込み領域候補２１２と、埋め込み領域補正結果２１３と、補正支援用行評価結果２１４を格納する。ポリシＤＢ１０８は、推定ポリシ２１０を格納する。実装ＤＢ１０９には、設計ラベル付きソースコード２１１と、記録用部品（ログ用モジュール、即ち、ソフトウェアとハードウェアの挙動をログとして記録するモジュールのこと）２０８と、実行系２０９を格納する。なお、図２では、図１に示す各エンジン１１７〜１１９が再掲されているが、ユーザインターフェース１１６の記載を省略した。
【００２７】
図９は、実施例１における監視システムのシステムフローを示す。まず、ユーザインターフェース１１６を使用して、推定ポリシ２１０を受け付けて、受け付けた推定ポリシ２１０をポリシＤＢ１０８に格納する（ステップ９０１）。次に、ユーザインターフェース１１６を使用して、不良傾向を受け付けて、不良傾向の種別に基づいて設計不良傾向テーブル２０５と、実装不良傾向テーブル２０６と、実績不良傾向テーブル２０７を不良傾向蓄積ＤＢ１０６に格納する（ステップ９０２）。次に、記録用部品埋め込み領域推定エンジン１１７を使用して、ポリシＤＢ１０８に格納している前記推定ポリシ２１０から推定ポリシを読み込み、不良傾向蓄積ＤＢ１０６に格納している設計不良傾向テーブル２０５と実装不良傾向テーブル２０６と実績不良傾向テーブル２０７から不良傾向を読み込み、前記推定ポリシを使用して前記不良傾向を分析し、記録用部品埋め込み領域を推定し、結果として得られる埋め込み領域候補２１２と、補正支援用行評価結果２１４を推定結果ＤＢ１１５に格納する（ステップ９０３）。次に、ユーザインターフェース１１６を使用して、推定結果ＤＢ１１５の埋め込み領域候補２１２と、補正支援用行評価結果２１４を読み出して画面に表示し、補正要求を受け付けることで埋め込み領域補正結果２１３を作成して、推定結果ＤＢ１１５に格納する（ステップ９０４）。
【００２８】
次に、記録用部品／状態−イベント関連テーブル作成エンジン１１８を使用して、推定結果ＤＢ１１５に格納している埋め込み領域補正結果２１３と設計ラベル付きソースコード２１１とを読み込んで記録用部品２０８を作成し、実装ＤＢ１０９に格納する（ステップ９０５）。この意味で、記録用部品／状態−イベント関連テーブル作成エンジン１１８は、記録用部品作成エンジンである。さらに、記録用部品／状態−イベント関連テーブル作成エンジン１１８は、前記埋め込み領域補正結果２１３に格納している状態とイベントの関係を分析することで、状態−イベント関連テーブル２１５を作成し、実装ＤＢ１０９に格納する（ステップ９０９）。
【００２９】
次に、記録用部品埋め込み／実行系出力エンジン１１９を使用して、実装ＤＢ１０９から設計ラベル付きソースコード２１１と記録用部品２０８を読み込み、前記設計ラベル付きソースコード２１１に対して記録用部品２０８を埋め込む（ステップ９０６）。次に、記録用部品埋め込み／実行系出力エンジン１１９を使用して、記録用部品２０８を埋め込んだ設計ラベル付きソースコード２１１から実行系２０９を作成し、実装ＤＢ１０９に格納する。さらに、記録用部品埋め込み／実行系出力エンジン１１９を使用して、前記実行系２０９と前記状態−イベント関連テーブル２１５をネットワーク１１４に出力することで、無線送受信機１１３を経由してｍｏｖｅｒＡ（１７２４）と、ｍｏｖｅｒＢ（１７２０）と、ｍｏｖｅｒＣ（１７２２）に送信する。
【００３０】
さらに、ｍｏｖｅｒＡ（１７２４）と、ｍｏｖｅｒＢ（１７２０）と、ｍｏｖｅｒＣ（１７２２）は、通信部３０２を使用して、前記実行系２０９と前記状態−イベント関連テーブル２１５を受信して、実行系３０６と状態−イベント関連テーブルメモリ領域３１４に格納する（ステップ９０７）。次に、ｍｏｖｅｒＡ（１７２４）と、ｍｏｖｅｒＢ（１７２０）と、ｍｏｖｅｒＣ（１７２２）を稼働させて、さらに監視装置１７１０にて稼働状況を監視する（ステップ９０８）。
【００３１】
具体的には、ｍｏｖｅｒＡ（１７２４）と、ｍｏｖｅｒＢ（１７２０）と、ｍｏｖｅｒＣ（１７２２）では、ソフトウェア実行部３０７を使用して実行系３０６から実行系を読み込んで実行し、記録したログ結果をログ結果３０８に格納する。ログ結果転送部３０３は、周期的にログ結果３０８からログ結果を読み込んで、通信部３０２を使用して前記ログ結果を監視装置に転送する。なお、転送する方法としては、ログ結果の重要さに基づいて転送するのが望ましい。実施例１では、図１１に示した前記致命度（６３６、６３９、６２６、６２９、６０７、６１０、６１３、６１６、６１９）、前記頻度（６３７、６４０、６２７、６３０、６０８、６１１、６１４、６１７、６２０）などを、重要さを表すデータとして利用するために、ステップ９０７において、実行系３０６に添付してｍｏｖｅｒＡ（１７２４）と、ｍｏｖｅｒＢ（１７２０）と、ｍｏｖｅｒＣ（１７２２）に転送し、ログ結果転送部３０３が前記データを参照することで、優先的に転送すべきログ結果３０８を選定して転送するものとする。
【００３２】
図４は、図４（１）実施例１における設計情報を入力するための画面４０１と、図４（２）設計ＤＢ１０５に格納するシーケンス設計情報２０４の構成４１９を示す。前記画面４０１は、ｍｏｖｅｒの識別子（ラベル１７２４）と、構造化した状態とから構成する。実施例１では、前記状態を、最上位の状態（４０２、６３１、６０２、４０５、４２０）と、中位の状態（４０７、６２２、６０３、４２１）と、最下位の状態（４１３、４１４、４１５、４１６、６２３、４１８、４１０、４１１、４１２、４２２、４２３）とで定義する。もちろん、階層数が変化しても、本発明の効果を享受できる。前記画面４０１にて受け付けた前記設計情報を、前記構成４１９で格納する。
【００３３】
図７は、実施例１におけるｍｏｖｅｒＡ（１７２４）で実行されるソフトウェアの設計ラベル付きソースコードを示す。前記設計ラベル付きソースコードでは、前記最上位の状態（４０２、６３１、６０２、４０５、４２０）を、それぞれ、ラベル７０１と、ラベル７０２と、ラベル７０３と、ラベル７１６と、ラベル７１７に対応付ける。また、前記中位の状態（４０７、６２２、６０３、４２１）を、ラベル７０４と、ラベル７０８と、ラベル７１２に対応付ける。また、前記最下位の状態（４１３、４１４、４１５、４１６、６２３、４１８、４１０、４１１、４１２、４２２、４２３）を、それぞれ、ラベル７０５と、ラベル７０６と、ラベル７０７と、ラベル７０９と、ラベル７１０と、ラベル７１１と、ラベル７１３と、ラベル７１４と、ラベル７１５と、ラベル７１８と、ラベル７１９に対応付ける。ラベル７２０は、設計ラベル付きソースコードの行番号を示す。なお、実施例１では、ソースコードに設計ラベルを添付することとするが、ソースコードと設計ラベルとの対応を、図には未記載のテーブル又は内部メモリなどにて管理するのであれば、ソースコードに設計ラベルを添付しなくても本発明の効果を享受できる。また、実施例１では、設計情報と設計ラベル付ソースコードを共にユーザインターフェース１１６を介して受け付けることとするが、設計情報と設計ラベル付ソースコードのちらか一方をユーザインターフェース１１６を介して受け付けて、もう片方を自動生成することとしても本発明の効果を享受できる。
【００３４】
図５は、実施例１において不良傾向蓄積ＤＢ１０６に格納される設計不良傾向テーブル２０５の構成を示す。ラベル５０１は、不良傾向蓄積ＤＢ１０６に格納する不良傾向テーブルの種別を示す。設計不良傾向テーブル２０５では、ラベル５０１にＤｅｓｉｇｎを格納する。実装不良傾向テーブル２０６では、ラベル５０１にＩｍｐｌｅｍｅｎｔａｔｉｏｎを格納する。また、実績不良傾向テーブル２０７では、ＡｃｔｕａｌＲｅｓｕｌｔを格納する。ラベル５０２は、ｍｏｖｅｒの台数を示す。ラベル（１７２４、１７２０）は、ｍｏｖｅｒの識別子を示す。ラベル（５０４、５５４）は、ｍｏｖｅｒＡ（１７２４）を対象として受け付けた前記設計不良傾向の数を示す。ラベル（６０２、６０３、６０４）とラベル（６０２、６２２、６２３）とラベル（６３１、６３２、６３３）は、前記設計不良傾向に指定されているｍｏｖｅｒＡ（１７２４）の状態を示す。ラベル（５０８、５３１、５４３）は、ｍｏｖｅｒＡ（１７２４）の状態と関連付けて指定されているｍｏｖｅｒＢ（１７２０）とｍｏｖｅｒＣ（１７２３）のイベント数を示す。ラベル（５０９、５１３、５１６、５２０、５２４、５３２、５３６、５４４、５４８）は、ｍｏｖｅｒＢ（１７２０）とｍｏｖｅｒＣ（１７２３）のイベントを示す。ラベル（５１０、５１７、５５５、５２１、５２５、５３３、５３７、５４５、５４９）は、イベントが発生するか否かを示すフラグを示す。ラベル（５１１、５１４、５１８、５２２、５２６、５３４、５３８、５４６、５５０）は、致命度を示す。ラベル（５１２、５１５、５１９、５２３、５２７、５３５，５３９、５４７、５５１）は、頻度を示す。
【００３５】
図２３は、実施例１において不良傾向蓄積ＤＢ１０６に格納される埋め込み領域候補２１２と、埋め込み領域補正結果２１３の構造を示す。ラベル２３０１は、前記埋め込み領域候補２１２と、前記埋め込み領域補正結果２１３の種別を示す。前記埋め込み領域候補２１２の場合には、ラベル２３０１にて示す領域にＣａｎｄｉｄａｔｅｓを格納する。また、前記埋め込み領域候補補正結果２１３の場合には、ＲｅｖｉｓｉｏｎＲｅｓｕｌｔを格納する。以下、前記埋め込み領域候補補正結果２１３の場合について示す。埋め込み領域候補２１２の場合も同様の構造であるので、記述を省略する。ラベル２３０２は、不良傾向の種別を示す。設計不良傾向であれば、ラベル２３０２には、Ｄｅｓｉｇｎを格納する。また、実装不良傾向であれば、ラベル２３０２には、Ｉｍｐｌｅｍｅｎｔａｔｉｏｎを格納する。また、実績不良傾向であれば、ラベル２３０２には、ＡｃｔｕａｌＲｅｓｕｌｔを格納する。ラベル２３０３は、ｍｏｖｅｒの台数を示す。ラベル（２３０４、２３１４）は、ｍｏｖｅｒの識別子を示す。ラベル（２３０５、２３１５）は、ｍｏｖｅｒＡ（１７２４）を対象として補正された不良傾向の数を示す。ラベル（２３０６、２３０７、２３０８、２３０９）は、前記不良傾向に指定されているｍｏｖｅｒＡ（１７２４）の状態を示す。ラベル２３０９は、ｍｏｖｅｒＡ（１７２４）の状態と関連付けて指定されているｍｏｖｅｒＢ（１７２０）とｍｏｖｅｒＣ（１７２３）のイベント数を示す。ラベル（２３１０、２３１１、２３１２、２３１３）は、ｍｏｖｅｒＡ（１７２４）の状態と関連付けて指定されているｍｏｖｅｒＢ（１７２０）とｍｏｖｅｒＣ（１７２３）のイベントを示す。
【００３６】
図１０は、実施例１におけるｍｏｖｅｒＢ（１７２０）に確保する状態−イベント関連テーブルメモリ領域３１４の構造を示す。なお、状態−イベント関連テーブル２１５の構造は、前記状態−イベント関連テーブルメモリ領域３１４の構造と同様なので、記載を省略する。前記状態−イベント関連テーブルメモリ領域３１４では、ｍｏｖｅｒＡ（１７２４）とｍｏｖｅｒＣ（１７２３）の状態と、ｍｏｖｅｒＢ（１７２０）のイベントを関連付けて管理する。このため、ラベル（１００１、１００９）に示す領域には、ｍｏｖｅｒＢ（１７２０）にて状態を管理するｍｏｖｅｒの識別子を格納する。ラベル（１００２、１０１０）に示す領域には、前記状態の数を格納する。ラベル（１００３、１００４、１００５）と、ラベル（１０１１、１０１２、１０１３）に示す領域には、それぞれｍｏｖｅｒＡ（１７２４）とｍｏｖｅｒＣ（１７２３）の前記状態を格納する。ラベル（１００６、１０１４）に示す領域には、前記状態と関連付けたｍｏｖｅｒＢ（１７２０）の前記イベントの数を格納する。ラベル（１００７、１００８）とラベル（１０１５、１０１６、１０１７）に示す領域には、前記状態と関連付けた前記イベントを格納する。ｍｏｖｅｒＡ（１７２４）とｍｏｖｅｒＣ（１７２３）の状態−イベント関連テーブルメモリ領域３１４と、状態−イベント関連テーブル２１５の構造は、ｍｏｖｅｒＢ（１７２０）の前記状態−イベント関連テーブルメモリ領域３１４と、前記状態−イベント関連テーブル２１５と同様であるので記載を省略する。
【００３７】
図８は、実施例１における補正支援用行評価結果２１４の構造を示す。ラベル８０１は、実装ＤＢ１０９に格納する設計ラベル付きソースコード２１１の行番号を示す。ラベル（８０２、８０３、８０４）は、不良傾向の種別を示す。ラベル（８０５、８０７、８０９）は、致命度を示す。ラベル（８０６、８０８、８１０）は、頻度を示す。
【００３８】
図１６は、実施例１における推定ポリシ２１０の構造を示す。ラベル（１６０１、１６０４、１６１１）は、推定ポリシ２１０の分類を示す。ラベル１６０１は、不良傾向から埋め込み領域候補を推定するためのポリシであることを示す。想定される不良傾向として受け付けられた２つ以上の状態とイベントに対応してそれぞれ個別にソースコードへの記録用部品埋め込み領域が同定され、領域の重複状況に基づいて、記録用部品を生成すべき状態とイベントが選定される。即ち、設計者、実装者及び保守員が状態又はイベントについて不良傾向として共通して抱く状況には、ソフトウェアにプローブとして監視するコードを埋め込む価値があると考えられる。ラベル１６０２を、埋め込み領域候補を推定する際に、選定される重複領域の最小値として使用する。ラベル１６１８を、埋め込み領域候補を推定する際に、候補の最大数として使用する。ラベル１６０４は、不良傾向からシステムへの影響の深刻さとしての致命度を算出するための重み付けに関するポリシであることを示す。ラベル１６０５は、設計に関する致命度の重み付けを示す。ラベル１６０６は、実装に関する致命度の重み付けを示す。ラベル１６０７は、実績に関する致命度の重み付けを示す。ラベル１６１１は、不良傾向から不良事象が発生する程度としての頻度を算出するための重み付けに関するポリシであることを示す。ラベル１６１２は、設計に関する頻度の重み付けを示す。ラベル１６１３は、実装に関する頻度の重み付けを示す。ラベル１６１４は、実績に関する頻度の重み付けを示す。致命度、頻度及び特定の状態でのイベント発生の有無は、記録用部品埋め込み領域を推定するに際しての状態とイベントとの補足属性である。
【００３９】
図１２は、実施例１における活性フラグメモリ領域３０５の構造を示す。ラベル１２０２は、ｍｏｖｅｒの識別子を示す。ラベル１２０４は、状態識別子を示す。ラベル１２０３は、活性フラグメモリ領域３０５に格納される状態識別子１２０４の数を示す。ラベル１２０５は、活性化フラグを示す。ここで、活性化フラグ１２０５は、前記状態識別子が示す状態が活性であるか、不活性であるかを示すフラグである。状態が活性であるとは、ｍｏｖｅｒ識別子（１２０２）に該当するｍｏｖｅｒが当該状態にあることを示す。また、状態が不活性であるとは、当該状態にないことを示す。
【００４０】
図１３は、実施例１における記録用部品の構造を示す。図１３（１）は、ｍｏｖｅｒＡ（１７２４）を監視対象とした、ｍｏｖｅｒＡ（１７２４）が取り得る状態の活性／不活性報告のための記録用部品を示す。ラベル１３０２は、報告のための記録用部品を示す。ラベル１３０３は、不活性のための記録用部品を示す。図１３（２）は、ｍｏｖｅｒＢ（１７２０）を対象とした、前記活性報告／不活性報告と連動してイベントを記録するための記録用部品を示す。ラベル１３０７は、イベントを実行する前に、前記活性報告／不活性報告と連動して記録動作を実行する。ラベル１３０８は、イベントを実行した後に、前記活性報告／不活性報告と連動して記録動作を実行する。
【００４１】
図１４は、実施例１におけるログ結果３０８の構造を示す。図１４（１）は、所定の状態を開始する前に記録するログ構造を示す。ラベル１４０１に示す領域には、前記状態を開始する前の時刻を格納する。ラベル１４０２に示す領域には、前記状態を開始する前であることを示す識別子を格納する。ラベル１４０３に示す領域には、前記状態を示す識別子を格納する。図１４（２）は、前記状態を終了した後に記録するログ構造を示す。ラベル１４１２に示す領域には、前記状態を終了した後の時刻を格納する。ラベル１４１３に示す領域には、前記状態を終了した後であることを示す識別子を格納する。ラベル１４１４に示す領域には、前記状態を示す識別子を格納する。図１４（３）は、所定の状態と連動してイベントを実行する前に記録するログ構造を示す。ラベル１４０４に示す領域には、前記イベントを実行する前の時刻を格納する。ラベル１４０５に示す領域には、前記状態を示す識別子を格納する。ラベル１４０６に示す領域には、前記イベントを示す識別子を格納する。ラベル１４０７に示す領域には、開始を示す識別子を格納する。図１４（４）は、所定の状態と連動してイベントを実行した後に記録するログ構造を示す。ラベル１４０８に示す領域には、前記イベントを実行した後の時刻を格納する。ラベル１４０９に示す領域には、前記状態を示す識別子を格納する。ラベル１４１０に示す領域には、前記イベントを示す識別子を格納する。ラベル１４１１に示す領域には、終了を示す識別子を格納する。図１４（３）又は（４）に示されているように、連動する状態とイベントとは互いに対応付けてログが記録される。
【００４２】
図１５は、実施例１における活性／不活性報告のための記録用部品を実行するｍｏｖｅｒと、イベントを記録するための記録用部品を実行するｍｏｖｅｒとの連携を示すフローである。活性／不活性報告のための記録用部品を実行するｍｏｖｅｒのフローを、ステップ（１５０１、１５０２、１５０３、１５０４）で示す。イベントを記録するための記録用部品を実行するｍｏｖｅｒのフローを、ステップ（１５０５、１５０６、１５０７、１５０８、１５０９）で示す。
【００４３】
まず、活性／不活性報告のための記録用部品を実行するｍｏｖｅｒのフローについて説明する。前記ｍｏｖｅｒでは、ソフトウェア実行部３０７は、まず、所定の状態を開始する前にｓｔａｒｔ（）を呼び出して、図１４（１）に示す構造でログをログ結果３０８に格納する。さらに、前記ソフトウェア実行部３０７は、通信部３０２を使用して、活性報告１５１０を送信する（ステップ１５０１）。次に、前記ソフトウェア実行部３０７は、前記状態を開始する（ステップ１５０２）。次に、前記ソフトウェア実行部３０７は、前記状態を終了する（ステップ１５０３）。次に、前記ソフトウェア実行部３０７は、ｅｎｄ（）を呼び出して、図１４（２）に示す構造でログをログ結果３０８に格納する。さらに、前記ソフトウェア実行部３０７は、通信部３０２を使用して、不活性報告１５１１を送信して本フローを終了する（ステップ１５０４）。
【００４４】
次に、イベントを記録するための記録用部品を実行するｍｏｖｅｒのフローについて説明する。前記ｍｏｖｅｒでは、まず、通信部３０２が、活性報告を受信する。さらに、格納部３０４が、前記不活性報告に格納された、転送元のｍｏｖｅｒ識別子と、状態識別子と、活性化フラグの値（１）とを確認して、活性フラグメモリ領域３０５に、前記状態識別子と、前記活性化フラグの値（１）とを格納する（ステップ１５０５）。次に、ソフトウェア実行部３０７は、イベントを実行する前に、前記イベントが記録の対象となっているか否かを判定し、記録の対象となっている場合には、前記イベントと関連づけられた状態の活性状況を確認し、前記状態が活性であれば、図１４（３）に示す構造でログをログ結果３０８に格納する（ステップ１５０６）。次に、ソフトウェア実行部３０７は、前記イベントを実行する（ステップ１５０７）。次に、ソフトウェア実行部３０７は、イベントを実行する前に、前記イベントが記録の対象となっているか否かを判定し、記録の対象となっている場合には、前記イベントと関連づけられた状態の活性状況を確認し、前記状態が活性であれば、図１４（４）に示す構造でログをログ結果３０８に格納する（１５０８）。次に、通信部３０２が、不活性報告を受信する。さらに、格納部３０４が、前記不活性報告に格納された、転送元のｍｏｖｅｒ識別子と、状態識別子と、活性化フラグの値（０）とを確認して、活性フラグメモリ領域３０５に、前記状態識別子と、前記活性化フラグの値（０）とを格納して、本フローを終了する（ステップ１５０９）。図１７には、ｍｏｖｅｒＡ（１７２４）が前記記録用部品を実行して活性／不活性報告をｍｏｖｅｒＢ（１７２０）とｍｏｖｅｒＣ（１７２３）に転送する様子を表している。
【００４５】
図２４は、実施例１における図１５のステップ１５０６と、ステップ１５０８において、前記イベントが記録の対象となっているか否かを判定して、前記イベントと関連づけられた状態の活性状況を確認するフローを示す。まず、ソフトウェア実行部３０７は、状態‐イベント関連テーブルメモリ領域３１４のイベント格納領域（２３０７、２３０８、２３１５、２３１６、２３１７）を参照する（ステップ２４０１）。前記イベントが前記状態‐イベント関連テーブルメモリ領域３１４に格納されているか否かを判定し（ステップ２４０２）、前記イベントが格納されていれば、前記状態‐イベント関連テーブルメモリ領域３１４において、ｍｏｖｅｒの識別子を格納する領域（２３０１、２３０９）と、状態を格納する領域（１００３、１００４、１００５、１０１１、１０１２、１０１３）を参照することで、前記イベントと関連づけられたｍｏｖｅｒと状態を同定する（２４０３）。次に、ソフトウェア実行部３０７は、活性化フラグメモリ領域３０５を参照し、前記ｍｏｖｅｒと前記状態に該当する活性化フラグの値を確認する（ステップ２４０４）。次に、前記活性化フラグの値が、０であれば、前記状態が不活性であると判定し、本フローを終了する。また、前記活性化フラグの値が、１であれば、前記状態が活性であると判定し、本フローを終了する（ステップ２４０５）。
【００４６】
図１９は、実施例１におけるｍｏｖｅｒＡ（１７２４）を基準として受け付けた不良傾向から記録用部品を生成し、前記記録用部品を使用してｍｏｖｅｒＡ（１７２４）とｍｏｖｅｒＢ（１７２０）とｍｏｖｅｒＣ（１７２３）を監視した場合の監視結果を示す。ラベル１９０１は、ｍｏｖｅｒＡ（１７２４）の状態（６０２、６０３）が監視対象となったことを示す。ラベル１９０２は、前記状態（６０２、６０３）において、不良である可能性の高いイベントが発生した数を示す。ラベル（１９０４、１９０７、１９１１）は、ｍｏｖｅｒＡ（１７２４）の状態（６０２、６０３）にフォーカスしたタイムチャートを示す。ラベル１９０４は、前記状態（６０２、６０３）の開始を示す。また、ラベル１９０５は、前記状態（６０２、６０３）の終了を示す。ラベル１９０６は、ｍｏｖｅｒＢ（１７２０）の状態６０６の終了を示す。ラベル１９０８は、ｍｏｖｅｒＣ（１７２３）の状態６１２の開始を示す。また、ラベル１９０９は、ｍｏｖｅｒＣ（１７２３）の状態６１２の終了を示す。ラベル１９１０は、ｍｏｖｅｒＣ（１７２３）の状態６１８の開始を示す。ラベル１９１４は、ラベル１９０２にて示した不良である可能性の高い２つのイベントを、ラベル１９１２とラベル１９１３にて強調して示したブロックである。なお、実施例１では、図１８（１）のステップ１８０３において、ｍｏｖｅｒＣ（１７２３）のｓｅｎｃｉｎｇ１（６１５）が選択されなかったとして、前記ブロックには表示されないものとした。もちろん、表示したとしても本発明の効果を享受できる。
【００４７】
以上に示したように、実施例１によれば、設計者１７０１と、実装者１７０２と、保守員１７０３がそれぞれの観点で入力する不良傾向に基づいて、記録対象とするイベントの種類とタイミングの選定と、前記選定結果に基づく記録用部品の作成を可能とするので、監視対象の稼働効率を確保しながら、より多くの重要なイベントを稼働実績として記録することを実現する。また、責任者１７３０が指定する推定ポリシに基づいて、記録対象とするイベントの種類とタイミングを選定するので、推定に関する方針を調整することが容易である。また、図１３（１）に示す活性／不活性報告のための記録用部品の実行と、図１３（２）に示すイベントを記録するための記録用部品の実行とを、ｍｏｖｅｒ間で分担して実行するので、稼働実績の記録に関する負荷を分散することができる。また、不良傾向を、不良が発生する傾向を持つ状態６０１と、不良の原因となる傾向を持つイベント６４１とで記述できるので、稼働実績記録制御装置１０７への入力が容易である。また、図１９に示すように、入力した不良傾向の構造と対応して稼働状況を表示するので監視が容易となる。
【００４８】
図２０は、実施例２における監視システムの利用イメージを示す。実施例１では、保守員１７０３が、実績不良傾向を稼働実績記録制御装置１７０９に入力する監視システムについて示した。実施例２では、保守員１７０３だけではなく、監視装置１７１０も前記不良傾向を前記稼働実績記録制御装置１７０９に入力する監視システムについて示す。
【００４９】
図２１は、実施例２における監視システムのシステムフローを示す。図９に示した実施例１のシステムフローとは、一回目のフローでは、ステップ２１０１が異なる。二回目以降のフローでは、前記ステップに加えて、ステップ９０３とステップ９０４が異なる。
【００５０】
まず、一回目のフローについて説明する。ステップ２１０１において、監視装置１７１０の監視ツール１１１が、監視対象（１７２４、１７２０、１７２３）から受信するログ結果を、画面にログ結果を表示しつつ、実績不良傾向として、稼働実績記録制御装置１７０９の不良傾向ＤＢ１０６に蓄積する。以下、前記実績不良傾向を、拡張実績不良傾向と呼ぶ。また、拡張実績不良傾向を格納するテーブルを拡張実績不良傾向テーブルと呼ぶ。実績不良傾向とは異なり、拡張実績不良傾向テーブルは、所定の状態が発生した回数と、前記状態において不良傾向に記録した事象が発生した回数とを格納する。これにより、設置された環境において、どの不良傾向が発生するのか、あるいは、どの不良傾向が発生しないのかを判定することが容易となる。
【００５１】
次に、二回目のフローについて説明する。ステップ９０３では、記録用部品埋め込み領域推定エンジン１１７を使用して、ポリシＤＢ１０８に格納している推定ポリシ２１０から推定ポリシを読み込み、実施例１で示した設計不良傾向テーブル２０５と、実装不良傾向テーブル２０６と、実績不良傾向テーブル２０７に加えて、前記拡張実績不良傾向テーブルから不良傾向を読み込み、前記推定ポリシを使用して前記不良傾向を分析し、記録用部品埋め込み領域を推定し、推定した結果を推定結果ＤＢ１１５の埋め込み領域２１２と、補正支援用行評価結果２１４に格納する。ステップ９０４では、ユーザインターフェース１１６を使用して、推定結果ＤＢ１１５の埋め込み領域２１２と、補正支援用行評価結果２１４と、所定の状態が発生した回数と、前記状態において不良傾向に記録した事象が発生した回数を読み出して画面に表示し、補正要求を受け付けて推定結果ＤＢ１１５の埋め込み領域補正結果２１３に格納する。
【００５２】
図２２は、実施例２において監視装置１７１０の監視ツール１１１が、稼働実績記録制御装置１７０９の不良傾向ＤＢ１０６に登録する拡張実績不良傾向テーブルの構造を示す。ラベル２２０１は、拡張実績不良傾向テーブルであることを示す識別子である。ラベル２２０２は、ｍｏｖｅｒの台数を示す。ラベル（２２０３、２２０４）は、ｍｏｖｅｒの識別子を示す。ラベル（２２０４、２２１９）は、前記ｍｏｖｅｒに対して登録されている不良傾向の数を示す。ラベル（２２０５、２２０６、２２０７）は、状態を示す。ラベル２２０８は、前記状態を遂行した回数を示す。ラベル２２０９は、前記状態に対応するイベントの数を示す。ラベル（２２１０、２２１２、２２１４、２２１６）は、前記状態に対応するイベントを示す。ラベル（２２１１、２２１３、２２１５，２２１７）は、前記状態において、前記イベントに関する不良が発生した回数を示す。
【００５３】
以上に示したように、実施例２によれば、前記監視装置１７１０が前記稼働実績記録制御装置１７０９に不良傾向を転送するので、より確実に、記録の対象とするイベントの種類とタイミングを選別することができる。
【図面の簡単な説明】
【００５４】
【図１】実施例１における監視システムのシステム構成図。
【図２】実施例１における稼働実績記録制御装置１７０９のデータフロー図。
【図３】実施例１におけるｍｏｖｅｒの機能ブロック図。
【図４】実施例１における設計情報入力画面４０１と、シーケンス設計情報２０４の構成４１９を示す図。
【図５】実施例１における設計不良傾向テーブル２０５の構成図。
【図６】実施例１における不良傾向の記述形式。
【図７】実施例１における設計ラベル付きソースコード。
【図８】実施例１における補正支援用行評価結果２１４の構成図。
【図９】実施例１における監視システムのシステムフロー。
【図１０】実施例１における状態‐イベント関連テーブルメモリ領域３１４の構造図。
【図１１】実施例１における不良傾向を分析することで得られる分析結果を示す図。
【図１２】実施例１における活性フラグメモリ領域３０５の構成図。
【図１３】実施例１における記録用部品の構造図。
【図１４】実施例１におけるログ結果３０８の構造図。
【図１５】実施例１における記録用部品を実行するｍｏｖｅｒとの連携を示すフロー。
【図１６】実施例１における推定ポリシ２１０の構成図。
【図１７】実施例１における監視システムの利用イメージ。
【図１８】実施例１における監視システムの操作フロー。
【図１９】実施例１におけるｍｏｖｅｒＡ（１７２４）とｍｏｖｅｒＢ（１７２０）とｍｏｖｅｒＣ（１７２３）を監視した場合の監視結果を示す図。
【図２０】実施例２における監視システムの利用イメージ。
【図２１】実施例２における監視システムのシステムフロー。
【図２２】実施例２における拡張実績不良傾向テーブルの構造図。
【図２３】実施例１における埋め込み領域候補２１２と、埋め込み領域補正結果２１３の構造図。
【図２４】実施例１における前記イベントと関連づけられた状態の活性状況を確認するフロー。
【符号の説明】
【００５５】
１７０９…稼働実績記録制御装置、１７２４…ｍｏｖｅｒＡ、１７２０…ｍｏｖｅｒＢ、１７２３…ｍｏｖｅｒＣ、６０１…不良が発生する傾向を持つ状態、６４１…不良が原因となる傾向を持つイベント、３０４…格納部、３０５…活性フラグメモリ領域、３１４…状態−イベント関連テーブルメモリ領域、１０５…設計ＤＢ、２０４…シーケンス設計情報、１０６…不良傾向蓄積ＤＢ、２０５…設計不良傾向テーブル、２０６…実装不良傾向テーブル、２０７…実績不良傾向テーブル、１１５…推定結果ＤＢ、２１２…埋め込み領域候補、２１３…埋め込み領域補正結果、２１４…補正支援用行評価結果、１０８…ポリシＤＢ、２１０…推定ポリシ、１０９…実装ＤＢ、２１１…設計ラベル付きソースコード、２０８…記録用部品、２１５…状態‐イベント関連テーブル、２０９…実行系
【図１】
2009032108.tif 000003
【図２】
2009032108.tif 000004
【図３】
2009032108.tif 000005
【図４】
2009032108.tif 000006
【図５】
2009032108.tif 000007
【図６】
2009032108.tif 000008
【図７】
2009032108.tif 000009
【図８】
2009032108.tif 000010
【図９】
2009032108.tif 000011
【図１０】
2009032108.tif 000012
【図１１】
2009032108.tif 000013
【図１２】
2009032108.tif 000014
【図１３】
2009032108.tif 000015
【図１４】
2009032108.tif 000016
【図１５】
2009032108.tif 000017
【図１６】
2009032108.tif 000018
【図１７】
2009032108.tif 000019
【図１８】
2009032108.tif 000020
【図１９】
2009032108.tif 000021
【図２０】
2009032108.tif 000022
【図２１】
2009032108.tif 000023
【図２２】
2009032108.tif 000024
【図２３】
2009032108.tif 000025
【図２４】
2009032108.tif 000026