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