(57)【要約】【課題】自動変換したソースプログラムにおいて発生するエラーを適切に把握することができる情報処理装置を提供する。【解決手段】変換前ソースを変換ツールに与えて起動した場合のエラーに関するエラーパターン情報が格納されるエラーパターン情報格納部１１と、変換前ソースを変換ツールに与えて起動した場合の変換後情報が格納される変換後情報格納部１２と、変換後情報から１以上のエラー情報を取得するエラー情報取得部１３と、エラーパターン情報を用いて、各エラー情報に対応するエラーパターン情報を決定するエラーパターン決定部１４と、エラーパターン決定部１４が決定したエラーパターン情報の、各エラーパターン情報毎の出現回数を取得する出現回数取得部１５と、出現回数取得部１５が取得したエラーパターン情報毎の出現回数を出力する出現回数出力部１６とを備えた。【選択図】図１
2014215937.tif 000002
【特許請求の範囲】
【請求項１】
変換前のソースプログラムを変換し、新しいソースプログラムを作成するマイグレーションを支援する情報処理装置であって、
変換前のソースプログラムである変換前ソースを変換ツールに与えて起動した場合のエラーに関する情報のパターンである１以上のエラーパターン情報が格納されるエラーパターン情報格納部と、
前記変換前ソースを変換ツールに与えて起動した場合の出力である変換後情報が格納される変換後情報格納部と、
前記変換後情報格納部に格納されている変換後情報からエラーに関する情報である１以上のエラー情報を取得するエラー情報取得部と、
前記エラーパターン情報格納部に格納されている１以上のエラーパターン情報を用いて、前記エラー情報取得部が取得した１以上の各エラー情報に対応するエラーパターン情報を決定するエラーパターン決定部と、
前記エラーパターン決定部が決定したエラーパターン情報の、各エラーパターン情報毎の出現回数を取得する出現回数取得部と、
前記出現回数取得部が取得したエラーパターン情報毎の出現回数を出力する出現回数出力部とを具備する情報処理装置。
【請求項２】
前記エラーパターン決定部が前記エラーパターン情報格納部に格納されているいずれのエラーパターン情報にも対応しないと判断したエラー情報に関する情報を、新しいエラーパターン情報として、前記エラーパターン情報格納部に蓄積するエラーパターン情報登録部をさらに具備する請求項１記載の情報処理装置。
【請求項３】
前記エラーパターン情報格納部は、
一のエラーパターン情報に集約される２以上のエラーパターン情報を特定する集約情報をさらに有し、
前記エラーパターン決定部は、
前記エラーパターン情報格納部に格納されている１以上のエラーパターン情報と集約情報とを用いて、前記エラー情報取得部が取得した１以上の各エラー情報に対応するエラーパターン情報を決定する請求項１または請求項２記載の情報処理装置。
【請求項４】
前記エラーパターン情報格納部は、
グループ分けされた１以上のエラーパターン情報を格納しており、
前記出現回数出力部は、
グループ毎およびエラーパターン情報毎に、前記出現回数取得部が取得した出現回数を出力する請求項１から請求項３いずれか一項に記載の情報処理装置。
【請求項５】
前記出現回数取得部は、
さらにグループ毎に前記出現回数取得部が取得した出現回数を集計し、
前記出現回数出力部は、
グループ毎の集計結果を出力する請求項４記載の情報処理装置。
【請求項６】
変換前のソースプログラムを変換し、新しいソースプログラムを作成するマイグレーションを支援する情報処理装置であって、変換前のソースプログラムである変換前ソースを変換ツールに与えて起動した場合のエラーに関する情報のパターンである１以上のエラーパターン情報が格納されるエラーパターン情報格納部と、前記変換前ソースを変換ツールに与えて起動した場合の出力である変換後情報が格納される変換後情報格納部と、エラー情報取得部と、エラーパターン決定部と、出現回数取得部と、出現回数出力部とを具備する情報処理装置を用いて行われる情報処理方法であって、
前記エラー情報取得部が、前記変換後情報格納部に格納されている変換後情報からエラーに関する情報である１以上のエラー情報を取得するエラー情報取得ステップと、
前記エラーパターン決定部が、前記エラーパターン情報格納部に格納されている１以上のエラーパターン情報を用いて、前記エラー情報取得ステップで取得した１以上の各エラー情報に対応するエラーパターン情報を決定するエラーパターン決定ステップと、
前記出現回数取得部が、前記エラーパターン決定ステップで決定したエラーパターン情報の、各エラーパターン情報毎の出現回数を取得する出現回数取得ステップと、
前記出現回数出力部が、前記出現回数取得ステップで取得したエラーパターン情報毎の出現回数を出力する出現回数出力ステップとを具備する情報処理方法。
【請求項７】
変換前のソースプログラムである変換前ソースを変換ツールに与えて起動した場合のエラーに関する情報のパターンである１以上のエラーパターン情報が格納されるエラーパターン情報格納部と、前記変換前ソースを変換ツールに与えて起動した場合の出力である変換後情報が格納される変換後情報格納部と、にアクセス可能なコンピュータを、変換前のソースプログラムを変換し、新しいソースプログラムを作成するマイグレーションを支援する情報処理装置として機能させるためのプログラムであって、
前記変換後情報格納部に格納されている変換後情報からエラーに関する情報である１以上のエラー情報を取得するエラー情報取得部と、
前記エラーパターン情報格納部に格納されている１以上のエラーパターン情報を用いて、前記エラー情報取得部が取得した１以上の各エラー情報に対応するエラーパターン情報を決定するエラーパターン決定部と、
前記エラーパターン決定部が決定したエラーパターン情報の、各エラーパターン情報毎の出現回数を取得する出現回数取得部と、
前記出現回数取得部が取得したエラーパターン情報毎の出現回数を出力する出現回数出力部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイグレーションを支援する情報処理装置等に関するものである。
【背景技術】
【０００２】
従来、ソースプログラムを自動変換する技術として、発生する記述の違いを自動検出し、自動修正もしくはリストアップして開発作業を向上させる技術があった（例えば、特許文献１参照）。本技術は、Ｃ言語で記述された原始プログラムを構文解析し、１トークン毎のデータベースと中間ファイルを作成し、データベース上の対象になる文字列を削除・変更し、データベースや中間ファイルの情報をＣ言語ファイルに生成し、目的プログラムを生成するものである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−４１２８６号公報（第１頁、第１図等）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術においては、ソースプログラムを自動変換により新しいソースプログラムに変換した際に発生するエラーパターンの出現状況を適切に把握することができない、という課題があった。
【０００５】
例えば、ソースプログラムに用いられる言語の仕様が変更された場合や、ソースプログラムが異なるＯＳ等の他の環境で実行可能となるよう変更する場合、変更前のソースプログラムを、変更後の環境等に対応したソースプログラムに変換する必要がある。このような変換は、通常、マイグレーションと呼ばれる。このような変換を支援するためのソフトウェアとして、ソースプログラムを変換後の言語のソースプログラムに自動変換するとともに、変換後のソースプログラムにおいて文法上のエラー等のエラーとなる箇所に、エラーが発生すること等を示す情報を出力する自動変換ツールが知られている。
【０００６】
しかしながら、このような自動変換ツールは、ソースプログラムのエラーとなる箇所にエラーが発生することを示す情報等を出力するものであるため、自動変換後のソースプログラムにどのようなエラーがどの程度含まれているか、といったエラーパターンの出現状況を、ソースプログラムの変換を行うユーザが容易にかつ正確に把握することが困難であった。このため、ユーザは、自動変換後のソースプログラムを修正するために必要となる工数等の正確な見積や、計画策定を行うことができず、効率的にソースプログラムの修正ができない、という問題があった。また、ソースプログラムを修正する際に、出現頻度の高いエラーについては、修正のためのプログラム等を作成して一括して修正することで、エラー修正の効率化を図ることも考えられるが、エラーの数等の適切な把握ができない場合、このような手法をとることが好ましいか否かの判断ができない、という問題があった。
【課題を解決するための手段】
【０００７】
本発明の情報処理装置は、変換前のソースプログラムを変換し、新しいソースプログラムを作成するマイグレーションを支援する情報処理装置であって、変換前のソースプログラムである変換前ソースを変換ツールに与えて起動した場合のエラーに関する情報のパターンである１以上のエラーパターン情報が格納されるエラーパターン情報格納部と、変換前ソースを変換ツールに与えて起動した場合の出力である変換後情報が格納される変換後情報格納部と、変換後情報格納部に格納されている変換後情報からエラーに関する情報である１以上のエラー情報を取得するエラー情報取得部と、エラーパターン情報格納部に格納されている１以上のエラーパターン情報を用いて、エラー情報取得部が取得した１以上の各エラー情報に対応するエラーパターン情報を決定するエラーパターン決定部と、エラーパターン決定部が決定したエラーパターン情報の、各エラーパターン情報毎の出現回数を取得する出現回数取得部と、出現回数取得部が取得したエラーパターン情報毎の出現回数を出力する出現回数出力部とを具備する情報処理装置である。
【０００８】
かかる構成により、変換後情報における各エラーパターン情報に対応するエラー情報の出現回数を、エラーパターン情報毎に取得することができ、自動変換したソースプログラムにおいて発生するエラーパターンの出現状況を適切に把握することができる。
【０００９】
また、本発明の情報処理装置は、前記情報処理装置において、エラーパターン決定部がエラーパターン情報格納部に格納されているいずれのエラーパターン情報にも対応しないと判断したエラー情報に関する情報を、新しいエラーパターン情報として、エラーパターン情報格納部に蓄積するエラーパターン情報登録部をさらに具備する情報処理装置である。
【００１０】
かかる構成により、エラーパターン情報格納部に格納されているエラーパターン情報に対応しないエラー情報に対応する新規のエラーパターン情報を登録することができる。
【００１１】
また、本発明の情報処理装置は、前記情報処理装置において、エラーパターン情報格納部は、一のエラーパターン情報に集約される２以上のエラーパターン情報を特定する集約情報をさらに有し、エラーパターン決定部は、エラーパターン情報格納部に格納されている１以上のエラーパターン情報と集約情報とを用いて、エラー情報取得部が取得した１以上の各エラー情報に対応するエラーパターン情報を決定する情報処理装置である。
【００１２】
かかる構成により、集約情報により特定される二以上のエラーパターン情報の出現回数を、一のエラーパターン情報の出現回数に集約ことができる。これにより、例えば、一の修正ツール等で修正可能な複数のエラーの出現回数を一のエラーパターンの出現回数として取得することができる。
【００１３】
また、本発明の情報処理装置は、前記情報処理装置において、エラーパターン情報格納部は、グループ分けされた１以上のエラーパターン情報を格納しており、出現回数出力部は、グループ毎およびエラーパターン情報毎に、出現回数取得部が取得した出現回数を出力する情報処理装置である。
【００１４】
かかる構成により、グループ毎およびエラーパターン情報毎に、エラーパターン情報の出現回数を把握することができる。
【００１５】
また、本発明の情報処理装置は、前記情報処理装置において、出現回数取得部は、さらにグループ毎に出現回数取得部が取得した出現回数を集計し、出現回数出力部は、グループ毎の集計結果を出力する情報処理装置である。
【００１６】
かかる構成により、グループ単位のエラーパターン情報の出現回数を把握することができる。
【発明の効果】
【００１７】
本発明による情報処理装置等によれば、自動変換したソースプログラムにおいて発生するエラーパターンの出現状況を適切に把握することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態における情報処理装置のブロック図
【図２】同情報処理装置の動作について説明するフローチャート
【図３】同情報処理装置のエラーパターン管理情報を示す図
【図４】同情報処理装置のグループ管理情報を示す図
【図５】同情報処理装置の集約情報管理情報を示す図
【図６】同変換前ソースの一例を示す図
【図７】同情報処理装置の変換後情報の一例を示す図
【図８】同情報処理装置のパターン集計情報を示す図
【図９】同情報処理装置のパターン集計情報を示す図
【図１０】同情報処理装置のグループ回数管理情報を示す図
【図１１】同情報処理装置のエラーパターン情報の出現回数の出力例を示す図
【図１２】本発明の実施の形態におけるコンピュータシステムの外観の一例を示す図
【図１３】同構成の一例を示す図
【発明を実施するための形態】
【００１９】
以下、情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【００２０】
（実施の形態）
図１は、本実施の形態における情報処理装置１のブロック図である。情報処理装置１は、エラーパターン情報格納部１１、変換後情報格納部１２、エラー情報取得部１３、エラーパターン決定部１４、出現回数取得部１５、出現回数出力部１６、エラーパターン情報登録部１７を備える。
【００２１】
エラーパターン情報格納部１１には、１または２以上のエラーパターン情報が格納される。エラーパターン情報とは、変換前のソースプログラムである変換前ソースを変換ツールに与えて起動した場合のエラーに関する情報のパターンである。ソースプログラムとは、プログラミング言語の仕様に従って記述されたプログラムである。ソースプログラムは、ソースコードとも呼ばれる。ソースプログラムに用いられるプログラミング言語は問わない。ソースプログラムは、例えば、ｖｉｓｕａｌ  ｂａｓｉｃ（登録商標）言語や、ＣＯＢＯＬ言語、Ｃ言語、ｐｅｒｌ言語、ＪＡＶＡ（登録商標）言語等で記述されたソースプログラムである。変換ツールとは、例えば、一のソースプログラムを、他のソースプログラムに自動変換するツールである。変換ツールとは、例えば、変換前ソースを、変換前ソースに用いられているプログラミング言語とは仕様が異なるプログラミング言語のソースプログラムに自動変化するためのツールである。変換ツールは、例えば、ソフトウェアとして提供される。仕様が異なるプログラミング言語は、言語が異なるプログラミング言語である。仕様が異なるプログラミング言語とは、例えば、バージョンが異なるプログラミング言語も含む概念である。変換前ソースを変換ツールに与えて起動した場合のエラーに関する情報とは、例えば、一の変換ツールが、変換前ソースを変換した場合に出力したエラーに関する情報である。変換ツールは、通常、変換後のソースプログラム内に、エラーに関する情報を出力するが、変換後のソースプログラム外に、例えば、別ファイル等の情報として、エラーに関する情報を出力しても良い。変換ツールについては、公知の技術であるので、ここでは詳細な説明は省略する。
【００２２】
エラーに関する情報を、ここでは、エラー情報と呼ぶ。ここでのエラーとは、例えば、変換後のソースプログラムにおいて、変換ツールで変換前ソースを正常に変換できなかったことによって、変換後のソースプログラムにおいて発生する不具合等である。例えば、エラーは、変換ツールによる変換によって、文法上の誤りが生じたことで発生する不具合や、変換前のソースプログラムにおける動作や機能と同じ動作や機能を実現できないことを意味するものである。エラー情報とは、例えば、エラーが発生することを示す情報である。エラー情報とは、例えば、エラーの内容を示す情報である。エラー情報は、変換前ソースにおけるエラーの対象となる箇所を示す情報である。エラーの対象となる箇所を示す情報は、例えば、変換前ソース内の、エラーの対象となる文字列を示す情報であっても良いし、エラーの対象となる行番号等を示す情報であっても良い。エラー情報は、変換されたソースプログラムにおけるエラーに対応する箇所と対応付けられて出力されても良く、例えば、エラーに対応する箇所を示す情報を有していても良い。また、エラー情報は、エラーの属性や分類等を示す情報を有していても良い。また、エラー情報は、エラーの識別子を有していても良い。エラー情報は、例えば、上記の情報のうちの二以上を有していても良い。エラー情報は、通常、自然言語で示されたエラーメッセージ等の情報であるが、自然言語で示されていなくても良い。エラー情報は、エラーコードや、エラーに対応する箇所の変数名等を有していてもよい。
【００２３】
エラーパターン情報は、エラー情報のパターンの情報である。エラーパターン情報格納部１１には、例えば、ソースプログラムの変換に用いられる変換ツール（図示せず）が出力しうる１以上のエラー情報にそれぞれ対応するエラーパターン情報が予め格納されている。エラーパターン情報とは、例えば、文字列と変数とを含むパターンである。エラーパターン情報は、例えば、エラー情報と一致するものであっても良い。ここでの一致は、完全一致であっても部分一致であっても良い。例えば、エラーパターン情報は、エラー情報のうちの、エラー情報であることを示す情報を除外した部分が完全一致する情報であっても良い。また、エラーパターン情報は、エラー情報の少なくとも一部を正規表現化した情報であっても良い。正規表現とは、例えば、文字列の集合を一の文字列で表したものである。正規表現とは、例えば、文字列を、文字の属性や、文字数等を表す特殊文字等を用いて、パターン化したものである。文字の属性とは、文字の大文字、小文字等の属性や、日本語、英語等の属性や、数字やカタカナ等の属性である。正規表現化とは、文字列をいわゆるワイルドカード化することと考えても良い。エラー情報のうちの正規表現化する部分とは、例えば、エラー情報のうちの、変数名や、参照するデータ名等である。エラーパターン情報格納部１１には、例えば、上述した変換ツールが出力しうる全てのエラー情報に対応したエラーパターン情報が格納されていることが好ましい。エラーパターン情報は、エラーパターン情報を識別する識別子と対応付けられて、エラーパターン情報格納部１１に格納されていても良い。
【００２４】
エラーパターン情報格納部１１には、１以上のエラーパターン情報がグループ分けされて格納されていてもよい。ここでのグループ分けとは、例えば、エラーパターン情報の属性に応じたグループ分けである。属性に応じたグループ分けとは、例えば、エラーパターン情報が示すエラーの種類毎のグループ分けや、エラーの重要度や深刻度等に応じたグループ分けである。また、このグループ分けは、エラーの対応策毎や、エラーの修正に用いられる修正ツール（図示せず）毎のグループ分けであっても良い。修正ツールとは、変換後のソースプログラムのエラーを修正するためのツールであり、通常、プログラムで提供される。また、エラーパターン情報格納部１１に格納されている一のエラーパターン情報が、複数のグループに属するようグループ分けされていても良い。エラーパターン情報格納部１１に格納されている各エラーパターン情報がグループ分けされているということは、各エラーパターン情報が、それぞれが属するグループ毎に分類されて格納されていることであっても良い。また、各エラーパターン情報がグループ分けされているということは、各エラーパターン情報のエラーパターン識別子が、各エラーパターン情報が属するグループ毎に分類されて管理されていることであっても良い。また、また、各エラーパターン情報がグループ分けされているということは、各エラーパターン情報に、各エラーパターン情報が属するグループの識別子であるグループ識別子が対応付けられていることであっても良い。
【００２５】
エラーパターン情報格納部１１には、１または２以上の集約情報が更に格納されていても良い。集約情報は、例えば、一のエラーパターン情報に集約される２以上のエラーパターン情報を特定する情報である。各集約情報は、例えば、一のエラーパターン情報に集約される集約対象となる二以上のエラーパターン情報またはそのエラーパターン情報識別子と、これらのエラーパターン情報の集約先となる一のエラーパターン情報またはそのエラーパターン識別子とを有する情報である。集約先のエラーパターン情報は、エラーパターン情報格納部１１に格納されているエラーパターン情報であっても良いし、他のエラーパターン情報であっても良い。集約先のエラーパターン情報の代わりに、各集約情報は、更に、集約情報の識別子である集約情報識別子を有していても良い。集約情報が集約情報識別子を有する場合、集約先のエラーパターン情報は省略しても良い。集約情報で集約される二以上のエラーパターン情報は、同じ修正ツール等で修正可能なエラーをそれぞれ示す二以上のエラーパターン情報であることが好ましい。集約情報で集約される集約対象となる二以上のエラーパターン情報および集約先のエラーパターン情報は、一のグループに属するエラーパターン情報であることが好ましい。なお、以下においては、集約情報が、集約対象となる二以上のエラーパターン情報またはそのエラーパターン情報識別子と、集約先となる一のエラーパターン情報またはそのエラーパターン識別子とを有する情報である場合を例に挙げて説明する。
【００２６】
エラーパターン情報格納部１１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。かかることは、他の格納部においても同様である。
【００２７】
変換後情報格納部１２には、変換後情報が格納される。変換後情報は、変換前ソースを変換ツールに与えて起動した場合の出力である。変換後情報とは、例えば、変換ツールによる変換前ソースの変換後のソースプログラムを有する情報である。また、変換後情報は、変換ツールが変換を行う際に取得したエラー情報を有していても良い。例えば、変換後情報は、変換後のソースプログラムに、エラー情報等を加えた情報である。エラー情報は、例えば、変換後のソースプログラム内の、エラーに関連する箇所、具体的にはエラーが発生する箇所に配置される。また、エラー情報は、例えば、エラー情報であることが、他のソースプログラムの部分に対して識別可能な態様で配置されることが好ましい。例えば、「エラー箇所：」等の予め指定された文字列や、予め指定された文字や制御記号等のエラー箇所を特定する情報が、エラー情報の先頭や、末尾や、両端に配置されていることが好ましい。予め指定された文字は、プログラミング言語では使用されない文字（記号も含む）等であることが好ましい。このようなソースプログラム内におけるエラー情報が配置されている箇所を特定する情報を、ここでは、エラー箇所特定情報と呼ぶ。エラー箇所特定情報と、エラー箇所との位置関係を示す情報とは、例えば、予め図示しない格納部等に格納されていても良いし、後述するエラー情報取得部１３が有していても良い。変換後情報は、例えば、テキストで構成される情報である。なお、エラー情報は、変換後のソースプログラム内に配置されていなくても良い。例えば、エラー情報は、変換後のソースプログラムと異なるファイル等として、変換後のソースプログラムと対応付けられて、変換後情報格納部１２内に格納されていても良い。この場合、変換後情報は、変換後のソースプログラムと、エラー情報のファイルとを有する情報と考えても良い。
【００２８】
変換後情報格納部１２に変換後情報が記憶される過程は問わない。例えば、図示しない変換ツール等が変換前ソースを変換して出力した変換後情報が記録媒体や通信回線等を介して、変換後情報格納部１２に蓄積されても良い。この場合、情報処理装置１は、変換後情報を受け付けるための受付部や、変換後情報を受信するための受信部等を備えていても良い。また、変換ツール（図示せず）や、変換対象となる変換前ソースが格納されている格納部（図示せず）等が、情報処理装置１内に設けられている場合、この変換ツール等が出力する変換後情報が変換後情報格納部１２に蓄積されるようにしても良い。なお、ここでの格納は、一時記憶も含むものと考えても良い。
【００２９】
エラー情報取得部１３は、変換後情報格納部１２に格納されている変換後情報から１以上のエラー情報を取得する。エラー情報取得部１３がどのように変換後情報からエラー情報を取得するかは問わない。エラー情報取得部１３は、例えば、エラー箇所特定情報を利用してエラー情報を取得する。
【００３０】
エラー情報取得部１３は、例えば、変換後情報において、上述したエラー箇所特定情報を順次検索し、検出したエラー特定情報に対して予め指定された位置関係にある文字列をエラー情報として取得する。例えば、変換ツールが、各エラー情報の先頭に「ＷＡＲＮＩＮＧ：」という文字列を付与し、末尾に改行コードを付与して、各エラー情報を変換後情報内に配置したとする。この場合、エラー情報取得部１３は、例えば、変換後情報内において「ＷＡＲＮＩＮＧ：」というエラー箇所特定情報で始まる行を順次検出し、検出した行の「ＷＡＲＮＩＮＧ：」以降の文字列を、エラー情報として順次取得する。ここでの行は、例えば、改行コードで区切られた文字列である。あるいは、エラー情報取得部１３は、例えば、「ＷＡＲＮＩＮＧ：」以降の文字列であって、「。」（句点）が現れるまでの文字列をエラー情報として取得しても良い。
【００３１】
また、例えば、変換ツールが出力した変換後情報において、エラー情報が、「＜？」と「？＞」という二つのエラー特定情報に挟まれて配置されていたとする。この場合、エラー情報取得部１３は、「＜？」という第一のエラー特定情報を検索し、検出したエラー特定情報の直後の文字列から、次に「？＞」という第二のエラー特定情報が現れる直前までの文字列を、エラー情報として順次取得するようにしても良い。また、エラー情報が変換後のソースプログラムと別のファイル等として存在している場合、このエラー情報のファイルから、順次、エラー情報を読み出すようにしても良い。
【００３２】
エラー情報取得部１３は、通常、ＭＰＵやメモリ等から実現され得る。エラー情報取得部１３の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００３３】
エラーパターン決定部１４は、エラー情報取得部１３が取得した１以上の各エラー情報に対応するエラーパターン情報を決定する。エラーパターン決定部１４は、エラーパターン情報格納部１１に格納されている１以上のエラーパターン情報を用いて、各エラー情報に対応するエラーパターン情報を決定する。エラーパターン決定部１４は、例えば、エラー情報取得部１３が取得した各エラー情報の文字列とエラーパターン情報格納部１１に格納されているエラーパターン情報の文字列との比較を行い、各エラー情報に一致するエラーパターン情報を検出する。ここでの一致とは通常は完全一致である。但し、ここでの一致は、部分一致であっても良い。エラーパターン決定部１４は、例えば、エラー情報取得部１３が取得した各エラー情報とエラーパターン情報格納部１１に格納されているエラーパターン情報とのパターンマッチングを行い、各エラー情報に一致するエラーパターン情報を検出する。ここでの一致とは、通常は、パターンが完全に一致していることを指すが、マッチング率が、予め指定された閾値以上（例えば、９０％以上等）である場合も一致すると判断しても良い。例えば、エラーパターン情報が正規表現を有するものである場合、エラー情報に対応するエラーパターン情報の検出には、パターンマッチングを利用する。なお、ここでのパターンマッチングは、例えば、変数以外の部分が一致しているか否かを判断する処理等であってもよい。
【００３４】
例えば、エラーパターン決定部１４は、エラーパターン情報格納部１１から一のエラーパターン情報を読み出す。そして、このエラーパターン情報が、正規表現を含むか否かを判断する。正規表現を含まない場合、エラー情報取得部１３が取得した一のエラー情報と、読み出したエラーパターン情報とが一致するか否かを判断し、一致する場合、このエラーパターン情報をこの一のエラー情報に対応するエラーパターン情報として決定する。また、正規表現を含む場合、エラーパターン決定部１４は、例えば、正規表現も含めてパターンマッチングを行い、パターンが完全にマッチングしている場合、このエラーパターン情報を、一のエラー情報に対応するエラーパターン情報として決定する。
【００３５】
エラーパターン情報のパターンマッチングの例について以下に簡単に説明する。一のエラーパターン情報が、例えば、ｋ（ｋは二以上の整数）個の文字列の間に、ｋ−１個の正規表現が個別に含まれているものであったとする。この場合、エラーパターン決定部１４は、一のエラー情報内に、上記の一のエラーパターン情報のｋ個の文字列と一致する文字列が、それぞれ、エラーパターン情報に含まれている順番通りに含まれているか否かを判断する。ここでの一致は、通常、完全一致である。全てが順番通りに含まれていなければ、一致しないエラーパターン情報であると判断する。順番通りに全て含まれている場合、エラーパターン決定部１４は、エラー情報における、一致すると判断された文字列の間に配置されている各文字列が、エラーパターン情報のｋ−１個の正規表現のうちの、同じ配列順番の各正規表現に対応する文字列であるか否かを判断する。対応する文字列であるか否かの判断は、例えば、正規表現が示す属性等を有する文字列であるか否かによって行われる。そして、全ての文字列が、同じ配列順番の正規表現に対応する文字列である場合、この一のエラーパターン情報を、一のエラー情報に一致するエラーパターン情報として決定する。同じ配列順番の正規表現に対応する文字列でない場合、エラーパターン決定部１４は、一致しないエラーパターン情報であると判断する。
【００３６】
なお、ここでのパターンマッチングの処理は、一例であり、エラー情報と、エラーパターン情報とのパターンマッチングとしては、どのようなアルゴリズムのパターンマッチング処理を用いても良い。また、エラーパターン決定部１４が行うエラー情報とエラーパターン情報とが一致するか否かの判断処理は、パターンマッチングの一形態、例えば、正規表現を用いないパターンマッチングと考えても良い。
【００３７】
エラーパターン決定部１４は、エラーパターン情報格納部１１に格納されている１以上のエラーパターン情報と集約情報とを用いて、エラー情報取得部１３が取得した１以上の各エラー情報に対応するエラーパターン情報を決定するようにしても良い。集約情報を用いて、エラーパターン情報を決定するということは、具体的には、各エラー情報が対応するエラーパターン情報の集約先となる一のエラーパターン情報を、集約情報を用いて決定することと考えても良い。
【００３８】
例えば、エラーパターン決定部１４は、エラーパターン情報格納部１１に格納されている１以上のエラーパターン情報を用いて、エラー情報取得部１３が取得した１以上の各エラー情報に対応するエラーパターン情報を決定する。そして、エラーパターン決定部１４は、このエラーパターン情報を集約対象のエラーパターン情報として有する一の集約情報を検出する。そして、検出した集約情報が集約先のエラーパターン情報として有するエラーパターン情報を、エラー情報取得部１３が取得した１以上の各エラー情報に対応するエラーパターン情報として決定する。これにより、一の集約情報が示す二以上のエラーパターン情報に対応するエラー情報を、この集約情報が集約先としてしめす一のエラーパターン情報に対応するエラー情報として決定することができる。
【００３９】
エラーパターン決定部１４は、更に、エラー情報取得部１３が取得した１以上の各エラー情報について、エラーパターン情報格納部１１に格納されているいずれのエラーパターン情報にも対応しないエラー情報を検出しても良い。
【００４０】
出現回数取得部１５は、エラーパターン決定部１４が決定したエラーパターン情報の出現回数を取得する。ここでは特に、出現回数取得部１５は、各エラーパターン情報毎に出現回数を取得する。例えば、出現回数取得部１５は、エラーパターン決定部１４が一のエラーパターン情報を検出する毎に、この検出したエラーパターン情報の出現回数の値を１インクリメントする。即ち、出現回数取得部１５は、検出したエラーパターン情報の出現回数をカウントする。
【００４１】
出現回数取得部１５は、さらにグループ毎にエラーパターン情報の出現回数を取得してもよい。即ち、出現回数取得部１５は、グループ単位のエラーパターン情報の出現回数を取得してもよい。例えば、出現回数取得部１５は、上記で取得した各エラーパターン情報毎の出現回数を、エラーパターン情報が属するグループ毎に集計する。なお、例えば、出現回数取得部１５は、エラーパターン決定部１４が一のエラーパターン情報を検出する毎に、この検出したエラーパターン情報に対応するグループの出現回数の値を１インクリメントして、グループに属するエラーパターン情報の出現回数を、グループの出現回数としてカウントしても良い。
【００４２】
なお、エラーパターン決定部１４が一以上の集約情報によって集約されたエラーパターン情報を決定する場合、出現回数取得部１５は、各集約情報が集約したエラーパターン情報についての出現回数を取得するようにしても良い。この場合、集約前の各エラーパターン情報については、通常、出現回数を取得しないが、出現回数を取得するようにしても良い。例えば、一の集約情報において、集約対象となっているエラーパターン情報が決定された場合に、出現回数取得部１５は、この集約情報が集約先に指定するエラーパターン情報の出現回数をカウントアップする。また、出現回数取得部１５は、一の集約情報によって集約される集約対象となる２以上のエラーパターン情報の出現回数を集計した値を、集約先のエラーパターン情報の出現回数として取得しても良い。
【００４３】
出現回数出力部１６は、出現回数取得部１５が取得したエラーパターン情報毎の出現回数を出力する。出現回数出力部１６は、グループ毎およびエラーパターン情報毎に、出現回数取得部１５が取得した出現回数を出力してもよい。グループ毎およびエラーパターン情報毎に出現回数を出力するということは、例えば、各エラーパターン情報を各エラーパターン情報が属するグループ毎に分類、あるいはソートして出力することと考えても良い。また、出現回数出力部１６は、各グループ毎に、各グループに属するエラーパターン情報毎の出現回数の合計を出力してもよい。また、出現回数出力部１６は、集約情報により集約されたエラーパターン情報についての出現回数の集計結果を出力しても良い。この場合、出現回数出力部１６は、集約前のエラーパターン情報の出現回数も出力するようにしても良いし、出力しないようにしても良い。ここでの出現回数の出力は、出現回数をそのまま出力することであっても良いし、出現回数を指標化した値を出力することであっても良い。また、出現回数の出力は、出現回数の値の属する範囲を示す情報の出力でも良い。
【００４４】
ここでの出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
【００４５】
出現回数出力部１６は、ディスプレイやプリンタ等の出力デバイスを含むと考えても含まないと考えても良い。出現回数出力部１６は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【００４６】
エラーパターン情報登録部１７は、エラーパターン決定部１４がエラーパターン情報格納部１１に格納されているいずれのエラーパターン情報にも対応しないと判断したエラー情報に関する情報を、新しいエラーパターン情報として、エラーパターン情報格納部１１に蓄積する。ここでの蓄積は、例えばエラーパターン情報の追記である。ここでのエラー情報に関する情報は、エラー情報そのものであっても良いし、エラー情報に、予め指定された文字列等を付与した情報であっても良い。また、ここでのエラー情報に関する情報は、エラー情報の一部を予め指定されたルール等に応じてエラーパターン情報登録部１７が正規表現化したものであっても良い。例えば、エラーパターン情報登録部１７は、エラー情報のアルファベットで表記されている連続した二以上の文字列を検出し、この部分を二以上のアルファベットを表す正規表現で置き換えたエラーパターン情報を蓄積しても良い。あるいは、予め登録されている一群の文字列のいずれか一つに一致する文字列をエラー情報から検出し、検出したこの文字列を、この文字列の群に対応付けられた正規表現に置き換えたエラーパターン情報を蓄積しても良い。
【００４７】
次に、情報処理装置１の動作について図２のフローチャートを用いて説明する。なお、ここでは、エラーパターン情報格納部１１には、変換後情報格納部１２に格納されている変換後情報を取得する際に用いた変換ツールが出力するエラー情報に対応するエラーパターン情報が予め格納されているものとする。
【００４８】
（ステップＳ１０１）情報処理装置１は、図示しない受付部等を介して、変換後情報格納部１２に格納されている変換後情報のうちの、エラーパターン情報を検出する処理の対象となる変換後情報を指定する情報を受け付けたか否かを判断する。受け付けた場合、ステップＳ１０２に進み、受け付けていない場合、ステップＳ１０１に戻る。
【００４９】
（ステップＳ１０２）出現回数取得部１５は、エラーパターン情報格納部１１に格納されている各エラーパターン情報に対する出現回数の値を「０」にセットする。この処理は出現回数の値をリセットすることと考えても良い。
【００５０】
（ステップＳ１０３）エラー情報取得部１３は、カウンターｍの値に１を代入する。
【００５１】
（ステップＳ１０４）エラー情報取得部１３は、ステップＳ１０１で指定された変換後情報から、ｍ番目のエラー情報を検出する処理を行い、ｍ番目のエラー情報が検出できたか否かを判断する。検出できた場合、ステップＳ１０５に進み、検出できなかった場合、ステップＳ１１８に進む。
【００５２】
（ステップＳ１０５）エラーパターン決定部１４は、カウンターｎの値に１を代入する。
【００５３】
（ステップＳ１０６）エラーパターン決定部１４は、エラーパターン情報格納部１１にｎ番目のエラーパターン情報が格納されているか否かを判断する。格納されている場合、ステップＳ１０７に進み、格納されていない場合、ステップＳ１１３に進む。
【００５４】
（ステップＳ１０７）エラーパターン決定部１４は、ｎ番目のエラーパターン情報を読み出す。
【００５５】
（ステップＳ１０８）エラーパターン決定部１４は、ｎ番目のエラーパターン情報に正規表現が含まれているか否かを判断する。含まれている場合、ステップＳ１０９に進み、含まれていない場合、ステップＳ１１４に進む。
【００５６】
（ステップＳ１０９）エラーパターン決定部１４は、ｎ番目のエラーパターン情報と、ｍ番目のエラー情報とが一致するか否かの判断を行う。一致した場合、ステップＳ１１０に進み、一致していない場合、ステップＳ１１６に進む。
【００５７】
（ステップＳ１１０）エラーパターン決定部１４は、ｎ番目のエラーパターン情報に対応する集約情報があるか否かを判断する。具体的には、ｎ番目のエラーパターン情報を、集約対象のエラーパターン情報に指定する集約情報があるか否かを判断する。ある場合、ステップＳ１１１に進み、ない場合、ステップＳ１１７に進む。
【００５８】
（ステップＳ１１１）出現回数取得部１５は、ｎ番目のエラーパターン情報の出現回数を１インクリメントする。
【００５９】
（ステップＳ１１２）エラー情報取得部１３は、カウンターｍの値を１インクリメントする。そして、ステップＳ１０４に戻る。
【００６０】
（ステップＳ１１３）エラーパターン情報登録部１７は、ｍ番目のエラー情報に関する情報を、新たなエラーパターン情報としてエラーパターン情報格納部１１に蓄積する。そして、ステップＳ１１２に戻る。
【００６１】
（ステップＳ１１４）エラーパターン決定部１４は、ｎ番目のエラーパターン情報と、ｍ番目のエラー情報とのパターンマッチングを行う。
【００６２】
（ステップＳ１１５）エラーパターン決定部１４は、ステップＳ１１４のパターンマッチングの結果、ｎ番目のエラーパターン情報と、ｍ番目のエラー情報とが一致したか否か判断し、一致した場合、ステップＳ１１０に進む。また、一致していない場合、ステップＳ１１６に進む。
【００６３】
（ステップＳ１１６）エラーパターン決定部１４は、カウンターｎの値に１を代入する。そして、ステップＳ１０６に戻る。
【００６４】
（ステップＳ１１７）出現回数取得部１５は、ステップＳ１１０で検出した集約情報が示す集約先のエラーパターン情報の出現回数を一インクリメントする。そして、ステップＳ１１２に戻る。
【００６５】
（ステップＳ１１８）出現回数取得部１５は、エラーパターン情報の出現回数を、グループ毎に集計する。
【００６６】
（ステップＳ１１９）出現回数出力部１６は、出現回数取得部１５が取得したエラーパターン情報毎の出現回数と、グループ毎の出現回数とを出力する。そして、ステップＳ１０１に戻る。
【００６７】
なお、図２のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【００６８】
以下、本実施の形態における情報処理装置１の具体的な動作について具体例を挙げて説明する。情報処理装置１の概念図は図１である。
【００６９】
図３は、エラーパターン情報格納部１１に格納されているエラーパターン情報を管理するエラーパターン管理情報を示す図である。エラーパターン管理情報は、「パターンＩＤ」と、「エラーパターン」という属性を有している。「パターンＩＤ」は、エラーパターン識別情報である。「エラーパターン」は、エラーパターン情報である。なお、エラーパターン情報内において、ここでは、「"ｘｘｘ"」および「"ｙｙｙ"」が、一文字以上の任意の文字列を示す正規表現であるとする。
【００７０】
図４は、エラーパターンで構成されるグループを管理するグループ管理情報を示す図である。グループ管理情報は、ここでは、エラーパターン情報格納部１１に格納されているものとする。グループ管理情報は、「パターンＩＤ」と、「グループＩＤ」と、「グループ名」という属性を有している。「パターンＩＤ」は、エラーパターン識別情報である。「グループＩＤ」は、対応する「パターンＩＤ」が示すエラーパターン情報が属するグループのグループ識別情報である。「グループ名」は、グループの名称であり、ここでは、グループを構成するエラーパターン情報がどのようなエラーであるかを分類した分類名をグループの名称として用いている。
【００７１】
図５は、集約情報を管理する集約情報管理情報を示す図である。集約情報は、ここでは、エラーパターン情報格納部１１に格納されているものとする。集約情報管理情報は、「対象パターンＩＤ」と、「集約先パターンＩＤ」という属性を有している。「対象パターンＩＤ」は、集約の対象となるエラーパターン情報のエラーパターン識別子である。「集約先パターンＩＤ」は、集約先のエラーパターン情報のエラーパターン識別子である。ここでは、一の「対象パターンＩＤ」と対応付けられたエラーパターン情報と一致するエラー情報が一つ検出された場合、この一の「対象パターンＩＤ」に対応付けられた「集約先パターンＩＤ」が示すエラーパターン情報の検出数が１インクリメントされる。一の集約情報は、この集約情報管理情報における一の「集約先パターンＩＤ」と、この一の「集約先パターンＩＤ」と対応付けられた複数の「対象パターンＩＤ」とで構成されている。ここでは、一例として、一のエラーパターン情報に集約される複数のエラーパターン情報は、同じ手法や、同じエラー修正ツール（図示せず）等を用いて修正可能なエラー情報に対応するエラーパターン情報であるとする。
【００７２】
図６は、変換前ソースの一例を示す図であり、変換前ソースの一部を抜粋して示している。
【００７３】
図７は、変換後情報格納部１２に格納されている変換後情報の一例を示す図であり、図６に示した変換前ソースを、一の変換ツール（図示せず）を用いて変換して得られた変換後情報の一部を抜粋して示したものである。この一部は、図６に表示されている変換前ソースの一部に対応した部分であるとする。この変換後情報は、エラー情報７１〜７３等を備えている。図３に示したエラーパターン情報は、この一の変換ツールが出力しうるエラーパターン情報であるとする。図７に示す変換後情報のファイル名は、「ｃｏｎｖｅｒｔｅｄ．ｖｂ」であるとする。
【００７４】
なお、本具体例において示す変換前ソースや、変換後情報に含まれる変換後のソースプログラム等は、説明のための便宜上のものであって、必ずしも実際に実行可能なものではなく、また、変換の前後のプログラミング言語の仕様に必ずしも沿ったものではない。
【００７５】
まず、ユーザが、キーボード等を操作して、変換後情報格納部１２に格納されているファイル名が「ｃｏｎｖｅｒｔｅｄ．ｖｂ」であるファイルを指定する操作を行うと、情報処理装置１は、この「ｃｏｎｖｅｒｔｅｄ．ｖｂ」というファイルを処理対象に指定する指示を、図示しない受付部等を介して受け付ける。
【００７６】
出現回数取得部１５は、エラーパターン情報格納部１１に格納されている各エラーパターン情報の出現回数の値を「０」に設定する。
【００７７】
図８は、エラーパターン情報の出現回数の集計結果を管理するためのパターン集計情報を示す図である。パターン集計情報は、「パターンＩＤ」と「集計」という属性を有している。「パターンＩＤ」は、エラーパターン識別情報であり、「集計」は、エラーパターン情報の出現回数であり、ここでは、エラーパターン決定部１４が決定したエラーパターン情報のカウント数で順次更新される。なお、「パターンＩＤ」においては、集約情報で他のエラーパター情報に集約されるエラーパターン情報に対応するエラーパターン識別子は、ここでは、除外されている。ただし、対応するエラーパターン識別子を除外しないようにしても良い。
【００７８】
出現回数取得部１５は、図８に示すように、パターン集計情報の「集計」に対応する各属性値を「０」に設定する。
【００７９】
エラー情報取得部１３は、「ｃｏｎｖｅｒｔｅｄ．ｖｂ」という変換後情報のファイルから、１番目のエラー情報を取得する。ここでは、変換後情報を得るために用いた変換ツール（図示せず）が、エラー情報として、文頭が、「'ＵＰＧＲＡＤＥ＿ＷＡＲＮＩＮＧ：」という文字列（即ち、エラー箇所特定情報）で、文末が「。」（句点）で区切られたデータを出力する仕様であり、更に、その後には、エラー情報をサポートするための情報として、エラー情報の詳細な内容を示す情報のアドレス等を示す情報を出力する仕様であったとする。エラー情報取得部１３は、変換後情報の先頭から、検索により、「'ＵＰＧＲＡＤＥ＿ＷＡＲＮＩＮＧ：」というエラー箇所特定情報と一致する文字列を検出する。そして、エラー情報取得部１３は、１番目に検出された「'ＵＰＧＲＡＤＥ＿ＷＡＲＮＩＮＧ：」という文字列の直後から、最初に現れる「。」（句点）までの文字列を、エラー情報として取得する。ここでは、エラー情報をサポートするための情報は取得しないものとする。
【００８０】
ここでエラー情報取得部１３が取得した１番目のエラー情報は、例えば、「オブジェクトＥ＿ＧＵＡＩＤＰＡＢ（）の既定プロパティを解決できませんでした」という文字列であったとする。エラー情報取得部１３は、取得したエラー情報を図示しない記憶媒体等に一時記憶する。
【００８１】
次に、エラーパターン決定部１４は、図３に示したエラーパターン管理情報から、１番目（ここでは一行目）のエラーパターン情報とエラーパターン識別子とを取得する。ここでは、「パターンＩＤ」が「１０１」である「エラーパターン」の属性値である「固定長文字列のサイズはバッファに合わせる必要があります」と、その「パターンＩＤ」の値とを取得する。
【００８２】
エラーパターン決定部１４は、取得した１番目のエラーパターン情報が、正規表現を含むか否かを判断する。ここでは、１番目のエラーパターン情報が「"ｘｘｘ"」および「"ｙｙｙ"」のいずれも含まないため、エラーパターン決定部１４は、正規表現を含まないと判断する。このため、エラーパターン決定部１４は、エラー情報取得部１３が取得した１番目のエラー情報の文字列と、１番目のエラーパターン情報の文字列とを、例えば先頭から一文字ずつ比較していき、１番目のエラー情報の文字列と、１番目のエラーパターン情報の文字列とが一致するか否かを判断する。
【００８３】
ここでは、一致しないと判断されたとすると、エラーパターン決定部１４は、図３に示したエラーパターン管理情報から、２番目（ここでは二行目）のエラーパターン情報「オブジェクト"ｘｘｘ"の既定プロパティを解決できませんでした」を取得する。次に、この２番目のエラーパターン情報が正規表現を含むか否かを判断する。ここでは、「"ｘｘｘ"」を含むため、エラーパターン決定部１４は、正規表現を含むと判断する。このため、エラーパターン決定部１４は、１番目のエラー情報と、２番目のエラーパターン情報とのパターンマッチングを行う。
【００８４】
具体的には、エラーパターン決定部１４は、２番目のエラーパターン情報から、正規表現である「"ｘｘｘ"」の部分の前の文字列である「オブジェクト」を取り出し、エラー情報の先頭の文字列が、この取り出した文字列「オブジェクト」と一致するか否かを判断する。一致しなければ、エラー情報とエラーパターン情報が一致しないと判断する。ここでは、一致するため、エラーパターン決定部１４は、２番目のエラーパターン情報から、正規表現の後の文字列である「の既定プロパティを解決できませんでした」を取り出し、エラー情報の末尾の文字列が、この取り出した文字列と一致するか否かを判断する。一致しなければ、エラー情報とエラーパターン情報が一致しないと判断する。ここでは、一致するため、更に、エラーパターン決定部１４は、エラー情報内の、エラーパターン情報の正規表現の前後の文字列と一致すると判断された文字列間の文字列「Ｅ＿ＧＵＡＩＤＰＡＢ（）」が、正規表現「"ｘｘｘ"」に対応する属性の文字列であるか否かを判断する。ここでは、正規表現「"ｘｘｘ"」が一文字以上の任意の文字列を示すものであるとすると、エラーパターン決定部１４は、文字列が正規表現に対応する属性の文字列であると判断する。これにより、エラーパターン決定部１４は、１番目のエラー情報と、２番目のエラーパターン情報とが一致すると判断し、１番目のエラー情報に対応するエラーパターン情報として、「パターンＩＤ」が「１０２」である２番目のエラーパターン情報を決定する。なお、文字列が正規表現に対応する属性の文字列でない場合、エラーパターン決定部１４は、エラー情報とエラーパターン情報が一致しないと判断する。
【００８５】
エラーパターン決定部１４が、「パターンＩＤ」が「１０２」である２番目のエラーパターン情報を１番目のエラー情報に対応するエラーパターン情報として決定した。このため、出現回数取得部１５は、図４に示した集約情報管理情報の「対象パターンＩＤ」の属性値に、エラーパターン決定部１４が決定したエラーパターン情報の「パターンＩＤ」である「１０２」と一致するものがあるか否かを判断する。
【００８６】
ここでは、一致するものがないため、出現回数取得部１５は、「パターンＩＤ」が「１０２」であるエラーパターン情報の出現回数の値を１インクリメントする。具体的には、図８に示したパターン集計情報の「パターンＩＤ」が「１０２」であるレコード（行）の「集計」の値に１を加算する。
【００８７】
なお、仮に、図４に示した集約情報管理情報の「対象パターンＩＤ」の属性値に、エラーパターン決定部１４が決定したエラーパターン情報の「パターンＩＤ」である「１０２」と一致するものがあったとする。この場合、出現回数取得部１５は、「対象パターンＩＤ」が「１０２」であるレコード（行）に対応する「集約先パターンＩＤ」の属性値を取得し、取得した属性値が示すエラーパターン情報の出現回数の値を１インクリメントする。例えば、取得した「集約先パターンＩＤ」が「１２３」であったとすると、出現回数取得部１５は、「パターンＩＤ」が「１２３」であるエラーパターン情報の出現回数の値を１インクリメントする。これにより、例えば、同じエラーを修正するツール等で修正可能なエラー情報等を、一のエラー情報として集約してカウントすることが可能となる。
【００８８】
また、仮に、エラーパターン決定部１４が、２番目のエラーパターン情報が、１番目のエラー情報に対応するエラーパターン情報でないと判断したとする。この場合、エラーパターン決定部１４は、３番目以降のエラーパターン情報についても、同様に、１番目のエラー情報に対応するエラーパターン情報を検出する処理を行う。そして、一致するエラーパターン情報が検出された場合、このエラーパターン情報、もしくはこのエラーパターン情報の集約先となるエラーパターン情報の出現回数を１インクリメントする。
【００８９】
また、仮に、１番目のエラー情報に対応するエラーパターン情報が、エラーパターン情報格納部１１に格納されているエラーパターン情報の中になかった場合を考える。この場合、エラーパターン情報登録部１７は、１番目のエラー情報に関する情報を、新しいエラーパターン情報として登録する。具体的には、エラーパターン情報登録部１７は、１番目のエラー情報に関する情報を、エラーパターン情報格納部１１に蓄積する。例えば、エラーパターン情報登録部１７は、１番目のエラー情報「オブジェクトＥ＿ＧＵＡＩＤＰＡＢ（）の既定プロパティを解決できませんでした」を、そのまま、新しいエラーパターン情報として登録しても良い。また、エラーパターン情報登録部１７は、１番目のエラー情報の予め指定された属性を有する部分、例えば、アルファベットで記載された部分を、正規表現に置き換えて得られた情報を新たなエラーパターン情報として登録しても良い。この場合、登録されるエラーパターン情報は、「パターンＩＤ」が「１０２」であるエラーパターン情報と同じものとなる。なお、新たに登録するエラーパターン情報が属するグループを、エラーパターン情報登録部１７が、どのように決定しても良い。例えば、エラーパターン情報登録部１７は、新たに登録するエラーパターン情報を、デフォルト等で指定されているグループ（例えば、「新規登録エラー」等）にグループ分けするようにしても良い。また、新たにエラーパターン情報を登録した際に、このエラーパターン情報に対応する出現回数は、例えば、「１」に設定する。
【００９０】
１番目のエラー情報に対応するエラーパターン情報の出現回数を１インクリメントする処理、または、１番目のエラー情報に関する情報を新たなエラーパターン情報として登録する処理が終了した場合、情報処理装置１は、ファイル名が「ｃｏｎｖｅｒｔｅｄ．ｖｂ」である変換後情報に含まれる２番目以降の各エラー情報についても、上記と同様の処理を行う。
【００９１】
そして、ファイル名が「ｃｏｎｖｅｒｔｅｄ．ｖｂ」である変換後情報に含まれる全てのエラー情報について上記の処理が終了したとする。
【００９２】
図９は、全てのエラー情報について上記の処理が終了した後の、パターン集計情報を示す図である。
【００９３】
出現回数取得部１５は、図９に示したパターン集計情報と、図４に示したグループ管理情報とを用いて、エラーパターン情報の出現回数を、グループ毎に合計する。具体的には、出現回数取得部１５は、図４に示したグループ管理情報から、「グループＩＤ」毎に、各「グループＩＤ」と対応付けられた１以上の「パターンＩＤ」を取得する。そして、出現回数取得部１５は、この取得した１以上の「パターンＩＤ」のそれぞれと対応付けられた「集計」の属性値（即ちエラーパターン情報の出現回数）を、図９に示したパターン集計情報から読み出し、集計していく。これにより、出現回数取得部１５は、「グループＩＤ」毎の集計数を取得する。
【００９４】
図１０は、出現回数取得部１５が、「グループＩＤ」毎に取得したエラーパターン情報の出現回数の合計を管理するためのグループ回数管理情報を示す図である。グループ回数管理情報において、「グループＩＤ」は、グループ識別情報であり、「回数」は、「グループＩＤ」が示すグループに属するエラーパターン情報の出現回数の合計である。
【００９５】
出現回数出力部１６は、図９に示したパターン集計情報が示すエラーパターン情報毎の出現回数と、図１０に示したグループ回数管理情報が示すグループ毎のエラーパターン情報の出現回数を出力する。ここでは、一例として、出現回数出力部１６は、パターン集計情報が示すエラーパターン情報の出現回数を、各エラーパターン情報が属するグループ毎に分類して並べて出力する。出現回数出力部１６は、例えば、図４に示したグループ管理情報が示すグループ毎に、各グループを構成する各「パターンＩＤ」が示す各エラーパターン情報に対応する出現回数の値である「集計」の値を、図９に示したパターン集計情報から取得する。また、出現回数出力部１６は、「集計」の値を取得した各エラーパターン情報を、図３に示したエラーパターン管理情報から取得する。また、出現回数出力部１６は、図４に示したグループ管理情報が示すグループ毎に、各グループに対応する「グループ名」の属性値を取得するとともに、各グループ毎に各グループに属するエラーパターン情報の出現回数の合計を、図１０に示したグループ回数管理情報から取得する。そして、出現回数出力部１６は、各グループに属するエラーパターン情報と、各エラーパターン情報の出現回数とをグループ毎に分類して並べて出力するとともに、各グループに属するエラーパターン情報と対応付けて、グループ毎に取得したエラーパターン情報の出現数の合計と、「グループ名」の属性値とを出力する。ここでは一例として、出現回数出力部１６は、これらの情報を、モニタ１６ａに出力する。
【００９６】
図１１は、出現回数出力部１６が出力するエラーパターン情報の出現回数の表示例を示す図である。このように出力されたエラーパターン情報の出現回数を見ることで、ユーザは、どのようなエラーが存在し、エラーの修正にどのような作業がどの程度の量だけ必要かということ等を正確に見積もることが可能となる。この結果、ソースプログラムのマイグレーションの作業を効率的に行うことが可能となる。
【００９７】
以上、本実施の形態によれば、変換後情報におけるエラーパターン情報の出現回数を正確に把握することができ、自動変換したソースプログラムにおいて発生するエラーパターンの出現状況を適切に把握することができる。
これにより、例えば、エラーの修正にかかる作業量の見積や、修正に必要な修正ツール等の要否等を正確に判断することが可能となり、マイグレーション作業の効率化を図ることができる。つまり、本発明は、不完全な変換ツールを補うための技術開発のための技術と捉えることができる。
【００９８】
なお、本実施の形態によれば、一の変換後情報についてエラーパターン情報毎の出現回数を取得するようにしたが、本発明においては、複数の変換後情報についてのエラーパターン情報毎の出現回数の集計を行って、複数の変換後情報における各エラーパターン情報の出現回数を取得するようにしても良い。
【００９９】
なお、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０１００】
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりする情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していない場合であっても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
【０１０１】
また、上記各実施の形態では、情報処理装置がスタンドアロンである場合について説明したが、情報処理装置は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
【０１０２】
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをＣＰＵ等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、格納部（例えば、ハードディスクやメモリ等の記録媒体）にアクセスしながらプログラムを実行してもよい。
【０１０３】
なお、上記各実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、変換前のソースプログラムである変換前ソースを変換ツールに与えて起動した場合のエラーに関する情報のパターンである１以上のエラーパターン情報が格納されるエラーパターン情報格納部と、変換前ソースを変換ツールに与えて起動した場合の出力である変換後情報が格納される変換後情報格納部と、にアクセス可能なコンピュータを、変換前のソースプログラムを変換し、新しいソースプログラムを作成するマイグレーションを支援する情報処理装置として機能させるためのプログラムであって、変換後情報格納部に格納されている変換後情報からエラーに関する情報である１以上のエラー情報を取得するエラー情報取得部と、エラーパターン情報格納部に格納されている１以上のエラーパターン情報を用いて、エラー情報取得部が取得した１以上の各エラー情報に対応するエラーパターン情報を決定するエラーパターン決定部と、エラーパターン決定部が決定したエラーパターン情報の、各エラーパターン情報毎の出現回数を取得する出現回数取得部と、出現回数取得部が取得したエラーパターン情報毎の出現回数を出力する出現回数出力部として機能させるためのプログラムである。
【０１０４】
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理（ハードウェアでしか行われない処理）は含まれない。
【０１０５】
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
【０１０６】
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０１０７】
図１２は、上記プログラムを実行して、上記実施の形態による情報処理装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
【０１０８】
図１２において、コンピュータシステム９００は、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブ９０５、ＦＤ（Ｆｌｏｐｐｙ（登録商標）  Ｄｉｓｋ）ドライブ９０６を含むコンピュータ９０１と、キーボード９０２と、マウス９０３と、モニタ９０４とを備える。
【０１０９】
図１３は、コンピュータシステム９００の内部構成を示す図である。図１３において、コンピュータ９０１は、ＣＤ−ＲＯＭドライブ９０５、ＦＤドライブ９０６に加えて、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９１１と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ９１２と、ＭＰＵ９１１に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１３と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク９１４と、ＭＰＵ９１１、ＲＯＭ９１２等を相互に接続するバス９１５とを備える。なお、コンピュータ９０１は、ＬＡＮへの接続を提供する図示しないネットワークカードを含んでいてもよい。
【０１１０】
コンピュータシステム９００に、上記実施の形態による情報処理装置等の機能を実行させるプログラムは、ＣＤ−ＲＯＭ９２１、またはＦＤ９２２に記憶されて、ＣＤ−ＲＯＭドライブ９０５、またはＦＤドライブ９０６に挿入され、ハードディスク９１４に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ９０１に送信され、ハードディスク９１４に記憶されてもよい。プログラムは実行の際にＲＡＭ９１３にロードされる。なお、プログラムは、ＣＤ−ＲＯＭ９２１やＦＤ９２２、またはネットワークから直接、ロードされてもよい。
【０１１１】
プログラムは、コンピュータ９０１に、上記実施の形態による情報処理装置の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム９００がどのように動作するのかについては周知であり、詳細な説明は省略する。
【０１１２】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０１１３】
以上のように、本発明にかかる情報処理装置等は、マイグレーションを支援する装置等として適しており、特に、自動変換ツールを用いたマイグレーションを支援する装置等として有用である。
【符号の説明】
【０１１４】
１  情報処理装置
１１  エラーパターン情報格納部
１２  変換後情報格納部
１３  エラー情報取得部
１４  エラーパターン決定部
１５  出現回数取得部
１６  出現回数出力部
１６ａ  モニタ
１７  エラーパターン情報登録部
【図１】
2014215937.tif 000003
【図２】
2014215937.tif 000004
【図３】
2014215937.tif 000005
【図４】
2014215937.tif 000006
【図５】
2014215937.tif 000007
【図６】
2014215937.tif 000008
【図７】
2014215937.tif 000009
【図８】
2014215937.tif 000010
【図９】
2014215937.tif 000011
【図１０】
2014215937.tif 000012
【図１１】
2014215937.tif 000013
【図１２】
2014215937.tif 000014
【図１３】
2014215937.tif 000015