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