(57)【要約】【課題】サブプログラムの呼び出しを行うメインプログラムを特定することを可能とする関連判定プログラム、関連判定装置及び関連判定方法を提供する。【解決手段】メインプログラムのソースコードから、メインプログラムによって呼び出される１以上のサブプログラムのうちのいずれかのサブプログラムに関する宣言文を削除し、宣言文が削除された後のメインプログラムのソースコードのコンパイルを実行し、コンパイルの実行が正常に完了した場合、いずれかのサブプログラムがメインプログラムによって呼び出されないサブプログラムであることを示す情報を出力する。【選択図】図６
2019144885.tif 000002
【特許請求の範囲】
【請求項１】
メインプログラムのソースコードから、前記メインプログラムによって呼び出される１以上のサブプログラムのうちのいずれかのサブプログラムに関する宣言文を削除し、
前記宣言文が削除された後の前記メインプログラムのソースコードのコンパイルを実行し、
前記コンパイルの実行が正常に完了した場合、前記いずれかのサブプログラムが前記メインプログラムによって呼び出されないサブプログラムであることを示す情報を出力する、
処理をコンピュータに実行させることを特徴とする関連判定プログラム。
【請求項２】
請求項１において、
前記出力する処理では、前記コンパイルの実行が正常に完了しなかった場合、前記いずれかのサブプログラムが前記メインプログラムによって呼び出されるサブプログラムであることを示す情報を出力する、
ことを特徴とする関連判定プログラム。
【請求項３】
請求項２において、
前記出力する処理では、前記コンパイルの実行が正常に完了した場合、前記いずれかのサブプログラムの修正に伴って前記メインプログラムについてのテストを行う必要がないことを示す情報を出力し、前記コンパイルの実行が正常に完了しなかった場合、前記いずれかのサブプログラムの修正に伴って前記メインプログラムについてのテストを行う必要があることを示す情報を出力する、
ことを特徴とする関連判定プログラム。
【請求項４】
請求項１において、さらに、
前記メインプログラムのソースコードに前記宣言文が複数含まれている場合、前記削除する処理、前記実行する処理及び前記出力する処理を前記宣言文のそれぞれについて繰り返し行う、
処理をコンピュータに実行させることを特徴とする関連判定プログラム。
【請求項５】
請求項１において、
前記メインプログラムは、所定期間内に修正が行われたプログラムである、
ことを特徴とする関連判定プログラム。
【請求項６】
請求項５において、
前記所定期間は、前記出力する処理が前回行われてから現在までの期間である、
ことを特徴とする関連判定プログラム。
【請求項７】
請求項１において、
前記メインプログラムは、所定期間内に修正が行われたサブプログラムを呼び出すプログラムである、
ことを特徴とする関連判定プログラム。
【請求項８】
請求項１において、
前記いずれかのサブプログラムに関する宣言文は、前記メインプログラムにおいて前記いずれかのサブプログラムが呼び出されることを示す宣言文である、
ことを特徴とする関連判定プログラム。
【請求項９】
メインプログラムのソースコードから、前記メインプログラムによって呼び出される１以上のサブプログラムのうちのいずれかのサブプログラムに関する宣言文を削除する宣言文削除部と、
前記宣言文が削除された後の前記メインプログラムのソースコードのコンパイルを実行するコンパイル実行部と、
前記コンパイルの実行が正常に完了した場合、前記いずれかのサブプログラムが前記メインプログラムによって呼び出されないサブプログラムであることを示す情報を出力する情報出力部と、を有する、
ことを特徴とする関連判定装置。
【請求項１０】
メインプログラムのソースコードから、前記メインプログラムによって呼び出される１以上のサブプログラムのうちのいずれかのサブプログラムに関する宣言文を削除し、
前記宣言文が削除された後の前記メインプログラムのソースコードのコンパイルを実行し、
前記コンパイルの実行が正常に完了した場合、前記いずれかのサブプログラムが前記メインプログラムによって呼び出されないサブプログラムであることを示す情報を出力する、
ことを特徴とする関連判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、関連判定プログラム、関連判定装置及び関連判定方法に関する。
【背景技術】
【０００２】
例えば、利用者にサービスを提供する事業者（以下、単に事業者とも呼ぶ）は、サービスの提供を行うための業務システム（以下、情報処理システムとも呼ぶ）を構築して稼働させる。そして、事業者は、業務システムを構成するプログラムの修正を行った場合、修正を行ったプログラムの動作についての各種テストを行う。
【０００３】
具体的に、上記のように修正が行われるプログラムには、例えば、実行中において他のプログラムを呼び出すプログラム（以下、メインプログラム）と、実行中の他のプログラムによって呼び出されるプログラム（以下、サブプログラムとも呼ぶ）とが含まれる。そのため、事業者は、例えば、サブプログラムの修正を行った場合、修正を行ったサブプログラムを呼び出すメインプログラムについても併せてテストを行う（例えば、特許文献１及び２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−２５０５３０
【特許文献２】特開２０１２−０８９０５５
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、上記のようにサブプログラムの修正を行った場合、事業者は、例えば、各メインプログラムのソースコードを参照し、各メインプログラムが呼び出しを行うサブプログラムに関する宣言文を特定する。そして、事業者は、修正を行ったサブプログラムに関する宣言文がソースコードに記述されているメインプログラムを、修正を行ったサブプログラムを呼び出すメインプログラムとして特定する。
【０００６】
しかしながら、上記のようなメインプログラムには、呼び出しを行うサブプログラムの追加や削除を伴う修正が繰り返し行われているものが含まれている。そのため、メインプログラムのソースコードに含まれる宣言文には、現在では呼び出しが行われていないサブプログラムに関する宣言文が含まれている可能性がある。したがって、事業者は、修正を行ったサブプログラムを呼び出すメインプログラムを正確に特定することができない場合がある。
【０００７】
そこで、一つの側面では、本発明は、サブプログラムの呼び出しを行うメインプログラムを特定することを可能とする関連判定プログラム、関連判定装置及び関連判定方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施の形態の一態様では、メインプログラムのソースコードから、前記メインプログラムによって呼び出される１以上のサブプログラムのうちのいずれかのサブプログラムに関する宣言文を削除し、前記宣言文が削除された後の前記メインプログラムのソースコードのコンパイルを実行し、前記コンパイルの実行が正常に完了した場合、前記いずれかのサブプログラムが前記メインプログラムによって呼び出されないサブプログラムであることを示す情報を出力する、処理をコンピュータに実行させる。
【発明の効果】
【０００９】
一つの側面によれば、サブプログラムの呼び出しを行うメインプログラムを特定することを可能とする。
【図面の簡単な説明】
【００１０】
【図１】図１は、情報処理システム１０の全体構成を示す図である。
【図２】図２は、ソースコード１３１の概略の具体例を説明する図である。
【図３】図３は、関連情報１３２の内容を出力した場合の具体例を説明する図である。
【図４】図４は、情報処理装置１のハードウエア構成を示す図である。
【図５】図５は、情報処理装置１の機能のブロック図である。
【図６】図６は、第１の実施の形態における関連判定処理の概略を説明するフローチャート図である。
【図７】図７は、第１の実施の形態における関連判定処理の概略を説明する図である。
【図８】図８は、第１の実施の形態における関連判定処理の概略を説明する図である。
【図９】図９は、第１の実施の形態における関連判定処理の詳細を説明するフローチャート図である。
【図１０】図１０は、第１の実施の形態における関連判定処理の詳細を説明するフローチャート図である。
【図１１】図１１は、第１の実施の形態における関連判定処理の詳細を説明するフローチャート図である。
【図１２】図１２は、第１の実施の形態における関連判定処理の詳細を説明するフローチャート図である。
【図１３】図１３は、第１の実施の形態における関連判定処理の詳細を説明する図である。
【図１４】図１４は、第１の実施の形態における関連判定処理の詳細を説明する図である。
【図１５】図１５は、第１の実施の形態における関連判定処理の詳細を説明する図である。
【図１６】図１６は、第１の実施の形態における関連判定処理の詳細を説明する図である。
【図１７】図１７は、関連情報１３２の具体例について説明する図である。
【図１８】図１８は、関連情報１３２の具体例について説明する図である。
【図１９】図１９は、関連情報１３２の具体例について説明する図である。
【図２０】図２０は、関連情報１３２の具体例について説明する図である。
【図２１】図２１は、関連情報１３２の具体例について説明する図である。
【図２２】図２２は、第１の実施の形態における関連判定処理の詳細を説明する図である。
【図２３】図２３は、第２の実施の形態における関連判定処理の詳細の一部を説明するフローチャート図である。
【図２４】図２４は、第２の実施の形態における関連判定処理の詳細の一部を説明するフローチャート図である。
【図２５】図２５は、第２の実施の形態における関連判定処理の詳細の一部を説明するフローチャート図である。
【図２６】図２６は、修正情報１３３の具体例について説明する図である。
【発明を実施するための形態】
【００１１】
［情報処理システムの構成］
図１は、情報処理システム１０の全体構成を示す図である。図１に示す情報処理システム１０には、情報処理装置１と、メインプログラムやサブプログラムのソースコード１３１を記憶する記憶装置１ａと、関連情報１３２を記憶するデータベースを含む記憶装置１ｂと、操作端末３とが含まれている。関連情報１３２は、各メインプログラムが呼び出しを行うサブプログラムを示す情報である。なお、メインプログラムが呼び出しを行うサブプログラムは、例えば、ＤＬＬ（Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙ）であってよい。
【００１２】
操作端末３は、例えば、事業者が情報処理装置１に対して情報の入力等を行うＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）である。操作端末３は、例えば、ネットワーク（図示しない）を介して情報処理装置１と接続する。
【００１３】
情報処理装置１は、記憶装置１ａに記憶されたソースコード１３１を取得する。そして、情報処理装置１は、記憶装置１ａから取得したソースコード１３１を参照し、関連情報１３２を生成する。その後、情報処理装置１は、生成した関連情報１３２を情報格納領域１３０に記憶する。以下、ソースコード１３１の概略の具体例について説明する。
【００１４】
［ソースコードの概略の具体例］
図２は、ソースコード１３１の概略の具体例を説明する図である。
【００１５】
図２に示す例は、プログラムＩＤが「ＭａｉｎＰｒｏＣ００１」であるメインプログラムのソースコード１３１に、呼び出しが行われるサブプログラムのプログラムＩＤである「ＳｕｂＰｒｏＣ００１」、「ＳｕｂＰｒｏＣ００２」、「ＳｕｂＰｒｏＣ００３」及び「ＳｕｂＰｒｏＣ００５」の宣言文がそれぞれ記述されていることを示している。
【００１６】
また、図２に示す例は、プログラムＩＤが「ＭａｉｎＰｒｏＣ００２」であるメインプログラムのソースコード１３１に、呼び出しが行われるサブプログラムのプログラムＩＤである「ＳｕｂＰｒｏＣ００１」、「ＳｕｂＰｒｏＣ００２」、「ＳｕｂＰｒｏＣ００３」及び「ＳｕｂＰｒｏＣ００６」の宣言文がそれぞれ記述されていることを示している。
【００１７】
［関連情報の内容を出力した場合の具体例（１）］
次に、関連情報１３２の内容を操作端末３の出力装置（図示しない）に出力した場合の具体例について説明を行う。図３は、関連情報１３２の内容を出力した場合の具体例を説明する図である。
【００１８】
図３に示す例において、例えば、「ＭａｉｎＰｒｏＣ００１」に対応する欄のうち、「ＳｕｂＰｒｏＣ００１」、「ＳｕｂＰｒｏＣ００２」、「ＳｕｂＰｒｏＣ００３」及び「ＳｕｂＰｒｏＣ００５」に対応する欄には、それぞれ「〇」が設定されている。すなわち、図３に示す例は、プログラムＩＤが「ＭａｉｎＰｒｏＣ００１」であるメインプログラムが呼び出しを行うサブプログラムとして、プログラムＩＤが「ＳｕｂＰｒｏＣ００１」、「ＳｕｂＰｒｏＣ００２」、「ＳｕｂＰｒｏＣ００３」及び「ＳｕｂＰｒｏＣ００５」であるサブプログラムがそれぞれ存在していることを示している。
【００１９】
また、図３に示す例において、例えば、「ＭａｉｎＰｒｏＣ００２」に対応する欄のうち、「ＳｕｂＰｒｏＣ００１」、「ＳｕｂＰｒｏＣ００２」、「ＳｕｂＰｒｏＣ００３」及び「ＳｕｂＰｒｏＣ００６」に対応する欄には、それぞれ「〇」が設定されている。すなわち、図３に示す例は、プログラムＩＤが「ＭａｉｎＰｒｏＣ００２」であるメインプログラムが呼び出しを行うサブプログラムとして、プログラムＩＤが「ＳｕｂＰｒｏＣ００１」、「ＳｕｂＰｒｏＣ００２」、「ＳｕｂＰｒｏＣ００３」及び「ＳｕｂＰｒｏＣ００６」であるサブプログラムがそれぞれ存在していることを示している。
【００２０】
上記のように、情報処理装置１は、例えば、情報格納領域１３０に記憶されているメインプログラムのソースコード１３１を参照し、宣言文が記述されているサブプログラムのプログラムＩＤをそれぞれ特定する。そして、情報処理装置１は、特定した情報に基づいて関連情報１３２を生成する。
【００２１】
これにより、事業者は、例えば、サブプログラムの修正を行った場合に、関連情報１３２の内容が出力された出力装置を閲覧することで、修正を行ったサブプログラムの呼び出しを行うメインプログラムを特定することが可能になる。そのため、事業者は、例えば、サブプログラムの改修に伴ってテストを行う必要があるメインプログラムを特定することが可能になる。
【００２２】
しかしながら、上記のようなメインプログラムには、例えば、呼び出しを行うサブプログラムの追加や削除を伴う修正が繰り返し行われているものが含まれている。そのため、メインプログラムのソースコードに含まれる宣言文には、現在では呼び出しが行われていないサブプログラムに関する宣言文が含まれている可能性がある。したがって、情報処理装置１は、修正を行ったサブプログラムを呼び出すメインプログラムを正確に特定することができない場合がある。
【００２３】
そこで、本実施の形態における情報処理装置１は、メインプログラムのソースコード１３１から、メインプログラムによって呼び出される１以上のサブプログラムのうちのいずれかのサブプログラムに関する宣言文を削除する。そして、情報処理装置１は、宣言文が削除された後のメインプログラムのコンパイルを実行する。
【００２４】
その結果、情報処理装置１は、コンパイルの実行が正常に完了した場合、宣言文を削除したサブプログラムがメインプログラムによって呼び出されないサブプログラムであることを示す情報を出力する。
【００２５】
すなわち、メインプログラムが実際に呼び出しを行っているサブプログラムの宣言文の削除が行われた場合、メインプログラムのコンパイルは、呼び出しを行うサブプログラムの宣言文が存在しないために失敗する。そこで、情報処理装置１は、いずれかのサブプログラムに関する宣言文を削除したメインプログラムのソースコード１３１のコンパイルを実行し、そのコンパイルが正常に完了するか否かの判定を行う。そして、コンパイルが正常に完了した場合、情報処理装置１は、宣言文を削除したサブプログラムの呼び出しが行われていないものと判定する。
【００２６】
これにより、情報処理装置１は、修正を行ったサブプログラムを実際に呼び出しているメインプログラムを特定することが可能になる。そのため、情報処理装置１は、サブプログラムの修正が行われた場合に、テストを行う必要があるメインプログラムを正確に特定することが可能になる。したがって、情報処理装置１は、サブプログラムの修正に伴うメインプログラムのテストが必要以上に行われることを防止することが可能になる。
【００２７】
［情報処理システムのハードウエア構成］
次に、情報処理システム１０のハードウエア構成について説明する。図４は、情報処理装置１のハードウエア構成を示す図である。
【００２８】
情報処理装置１は、図４に示すように、プロセッサであるＣＰＵ１０１と、メモリ１０２と、入出力インターフェース１０３と、記憶媒体１０４とを有する。各部は、バス１０５を介して互いに接続される。
【００２９】
記憶媒体１０４は、例えば、記憶媒体１０４内のプログラム格納領域（図示しない）に、メインプログラムが呼び出しを行うサブプログラムの判定を行う処理（以下、関連判定処理とも呼ぶ）を行うためのプログラム１１０を記憶する。記憶媒体１０４は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）であってよい。
【００３０】
また、記憶媒体１０４は、例えば、関連判定処理を行う際に用いられる情報を記憶する記憶部１３０（以下、情報格納領域１３０とも呼ぶ）を有する。
【００３１】
なお、図１で説明した記憶装置１ａ及び記憶装置１ｂは、例えば、情報処理装置１の内部に位置する情報格納領域１３０に対応するものであってよい。以下、記憶装置１ａ及び記憶装置１ｂが情報格納領域１３０に対応するものとして説明を行う。
【００３２】
ＣＰＵ１０１は、記憶媒体１０４からメモリ１０２にロードされたプログラム１１０を実行して関連判定処理を行う。
【００３３】
入出力インターフェース１０３は、例えば、ネットワーク（図示しない）を介して操作端末３と通信を行う。
【００３４】
［情報処理装置の機能］
次に、情報処理装置１の機能について説明する。図５は、情報処理装置１の機能のブロック図である。
【００３５】
情報処理装置１は、ＣＰＵ１０１やメモリ１０２等のハードウエアとプログラム１１０とが有機的に協働することにより、図５に示すように、ソースコード取得部１１１と、宣言文削除部１１２と、コンパイル実行部１１３と、結果判定部１１４と、情報管理部１１５（以下、情報出力部１１５とも呼ぶ）とを含む各種機能を実現する。
【００３６】
また、情報処理装置１は、図５に示すように、ソースコード１３１と、関連情報１３２と、修正情報１３３とを情報格納領域１３０に記憶する。
【００３７】
ソースコード取得部１１１は、情報格納領域１３０に記憶されたソースコード１３１を取得する。
【００３８】
宣言文削除部１１２は、ソースコード取得部１１１が取得したメインプログラムのソースコード１３１から、メインプログラムによって呼び出される１以上のサブプログラムのうちのいずれかのサブプログラムに関する宣言文を削除する。
【００３９】
コンパイル実行部１１３は、宣言文削除部１１２が宣言文を削除した後のメインプログラムのソースコード１３１のコンパイルを実行する。
【００４０】
結果判定部１１４は、コンパイル実行部１１３によって実行されたコンパイルが正常に完了したか否かを判定する。
【００４１】
情報管理部１１５は、結果判定部１１４によってコンパイルの実行が正常に完了したと判定された場合、宣言文削除部１１２によって宣言文の削除が行われたサブプログラムが、メインプログラムによって呼び出されていないサブプログラムであることを示す情報を出力する。
【００４２】
具体的に、情報管理部１１５は、例えば、宣言文の削除が行われたサブプログラムがメインプログラムによって呼び出されないサブプログラムであることを示す関連情報１３２を生成する。そして、情報管理部１１５は、例えば、生成した関連情報１３２の内容を出力装置に出力する。修正情報１３３についての説明は後述する。
【００４３】
［第１の実施の形態の概略］
次に、第１の実施の形態の概略について説明する。図６は、第１の実施の形態における関連判定処理の概略を説明するフローチャート図である。図７及び図８は、第１の実施の形態における関連判定処理の概略を説明する図である。以下、図７及び図８を参照しながら、図６に示す関連判定処理の概略について説明を行う。
【００４４】
情報処理装置１は、図６に示すように、情報出力タイミングまで待機する（Ｓ１のＮＯ）。情報出力タイミングは、例えば、事業者によって予め決められた定期的なタイミングであってよい。具体的に、情報出力タイミングは、例えば、毎朝午前５時等であってよい。
【００４５】
そして、情報出力タイミングになった場合（Ｓ１のＹＥＳ）、情報処理装置１は、メインプログラムのソースコード１３１から、メインプログラムによって呼び出される１以上のサブプログラムのうちのいずれかのサブプログラムに関する宣言文を削除する（Ｓ２）。続いて、情報処理装置１は、Ｓ２の処理で宣言文が削除された後のメインプログラムのソースコード１３１のコンパイルを実行する（Ｓ３）。
【００４６】
具体的に、情報処理装置１は、図７に示すように、記憶装置１ａから取得したメインプログラムのソースコード１３１のうちのいずれかから、そのメインプログラムによって呼び出されるいずれかのサブプログラムに関する宣言文を削除してコンパイルを実行する。
【００４７】
その後、情報処理装置１は、Ｓ３の処理においてコンパイルが正常に完了したか否かを判定する（Ｓ４）。
【００４８】
その結果、コンパイルが正常に完了したと判定した場合（Ｓ４のＹＥＳ）、情報処理装置１は、Ｓ２の処理で宣言文を削除したサブプログラムがメインプログラムによって呼び出されないサブプログラムであることを示す情報を出力する（Ｓ５）。
【００４９】
具体的に、情報処理装置１は、この場合、図８に示すように、例えば、Ｓ２の処理で宣言文を削除したサブプログラムがメインプログラムによって呼び出されないサブプログラムであることを示す関連情報１３２を生成し、情報格納領域１３０に記憶する。
【００５０】
一方、コンパイルが正常に完了していないと判定した場合（Ｓ４のＹＥＳ）、情報処理装置１は、Ｓ５の処理を行わない。
【００５１】
これにより、情報処理装置１は、修正を行ったサブプログラムを実際に呼び出しているメインプログラムを特定することが可能になる。そのため、情報処理装置１は、サブプログラムの修正が行われた場合に、テストを行う必要があるメインプログラムを正確に特定することが可能になる。したがって、情報処理装置１は、サブプログラムの修正に伴うメインプログラムのテストが必要以上に行われることを防止することが可能になる。
【００５２】
［第１の実施の形態の詳細］
次に、第１の実施の形態の詳細について説明する。図９から図１２は、第１の実施の形態における関連判定処理の詳細を説明するフローチャート図である。また、図１３から図２２は、第１の実施の形態における関連判定処理の詳細を説明する図である。以下、図１３から図２２を参照しながら、図９から図１２に示す関連判定処理の詳細について説明を行う。
【００５３】
なお、以下、図３で説明したメインプログラムのうち、プログラムＩＤが「ＭａｉｎＰｒｏＣ００１」から「ＭａｉｎＰｒｏＣ００５」であるプログラムがＣ言語によって記述されたプログラムであり、プログラムＩＤが「ＭａｉｎＰｒｏＣ００６」から「ＭａｉｎＰｒｏＣ０１０」であるプログラムがＣ♯によって記述されたプログラムであるものとして説明を行う。また、以下、図３で説明したサブプログラムのうち、プログラムＩＤが「ＳｕｂＰｒｏＣ００１」から「ＳｕｂＰｒｏＣ００６」であるプログラムがＣ言語によって記述されたプログラムであり、プログラムＩＤが「ＳｕｂＰｒｏＣ００７」から「ＳｕｂＰｒｏＣ０１０」であるプログラムがＣ♯によって記述されたプログラムであるものとして説明を行う。
【００５４】
情報処理装置１のソースコード取得部１１１は、図９に示すように、情報出力タイミングまで待機する（Ｓ１１のＮＯ）。
【００５５】
そして、情報出力タイミングになった場合（Ｓ１１のＹＥＳ）、ソースコード取得部１１１は、情報格納領域１３０に記憶されたソースコード１３１を取得する（Ｓ１２）。
【００５６】
続いて、情報処理装置１の情報管理部１１５は、Ｓ１２の処理で取得したソースコード１３１から、メインプログラムのソースコード１３１を特定する（Ｓ１３）。
【００５７】
この場合、情報管理部１１５は、例えば、Ｓ１２の処理で取得したソースコード１３１のそれぞれに記述されたプログラムＩＤを特定し、特定したプログラムＩＤのそれぞれがメインプログラムのプログラムＩＤの決定ルールに従っているか否かを判定する。そして、情報管理部１１５は、例えば、決定ルールに従っていると判定したプログラムＩＤが記述されたソースコード１３１を、メインプログラムのソースコード１３１として特定する。
【００５８】
また、情報管理部１１５は、例えば、Ｓ１２の処理で取得したソースコード１３１のそれぞれに記述されたプログラムＩＤを特定し、特定したプログラムＩＤのうち、情報格納領域１３０に記憶された関連情報１３２においてメインプログラムのプログラムＩＤとして設定されているプログラムＩＤを特定する。そして、情報管理部１１５は、関連情報１３２においてメインプログラムのプログラムＩＤとして設定されているプログラムＩＤが記述されたソースコード１３１を、メインプログラムのソースコード１３１として特定する。関連情報１３２の具体例については後述する。
【００５９】
その結果、メインプログラムのソースコード１３１が特定されなかった場合（Ｓ１４のＮＯ）、情報処理装置１は、関連判定処理を終了する。
【００６０】
一方、メインプログラムのソースコード１３１を特定した場合（Ｓ１４のＹＥＳ）、情報管理部１１５は、特定したソースコード１３１のうちの１つを特定する（Ｓ１５）。
【００６１】
そして、情報管理部１１５は、情報格納領域１３０に記憶された関連情報１３２から、Ｓ１５の処理でソースコード１３１を特定したメインプログラムに対応する情報を削除する（Ｓ１６）。
【００６２】
その後、情報処理装置１の宣言文削除部１１２は、図１０に示すように、Ｓ１５の処理で特定したメインプログラムのソースコード１３１に宣言文が含まれるサブプログラムを特定する（Ｓ２１）。以下、Ｓ２１の処理の具体例について説明を行う。
【００６３】
［Ｓ２１の処理の具体例］
図１３及び図１４は、Ｓ２１の処理の具体例について説明する図である。
【００６４】
初めに、Ｓ１５の処理で特定したメインプログラムのソースコード１３１がＣ言語によって記述されたソースコード１３１（以下、ソースコード１３１ａとも呼ぶ）であった場合におけるＳ２１の処理について説明を行う。図１３は、ソースコード１３１ａの一部の具体例を説明する図である。
【００６５】
この場合、宣言文削除部１１２は、図１３に示すソースコード１３１ａに含まれている記述から、「＜ＡｄｄｉｔｉｏｎａｌＤｅｐｅｎｄｅｎｃｉｅｓ＞」を含む文字列を検索する。具体的に、宣言文削除部１１２は、例えば、図１３に示すように、「＜ＡｄｄｉｔｉｏｎａｌＤｅｐｅｎｄｅｎｃｉｅｓ＞」を含む文字列として、文字列ＣＳ０１を特定する。
【００６６】
続いて、宣言文削除部１１２は、文字列ＣＳ０１のうち、「＜ＡｄｄｉｔｉｏｎａｌＤｅｐｅｎｄｅｎｃｉｅｓ＞」と「＜／ＡｄｄｉｔｉｏｎａｌＤｅｐｅｎｄｅｎｃｉｅｓ＞」との間において「；」で区切られている文字列を、Ｓ１５の処理で特定したメインプログラムが呼び出しを行うサブプログラムのプログラムＩＤとして特定する。
【００６７】
具体的に、宣言文削除部１１２は、図１３に示す例において、例えば、プログラムＩＤとして「ＳｕｂＰｒｏＣ００１」、「ＳｕｂＰｒｏＣ００２」、「ＳｕｂＰｒｏＣ００３」及び「ＳｕｂＰｒｏＣ００５」を特定する。すなわち、宣言文削除部１１２は、図１３に示す例において、Ｓ１５の処理で特定したメインプログラムのソースコード１３１に宣言文が含まれるサブプログラムとして、プログラムＩＤが「ＳｕｂＰｒｏＣ００１」、「ＳｕｂＰｒｏＣ００２」、「ＳｕｂＰｒｏＣ００３」及び「ＳｕｂＰｒｏＣ００５」であるサブプログラムを特定する。
【００６８】
次に、Ｓ１５の処理で特定したメインプログラムのソースコード１３１がＣ＃によって記述されたソースコード１３１（以下、ソースコード１３１ｂとも呼ぶ）であった場合におけるＳ２１の処理について説明を行う。図１４は、ソースコード１３１ｂの一部の具体例を説明する図である。
【００６９】
この場合、宣言文削除部１１２は、図１４に示すソースコード１３１ｂに含まれている記述から、「＜Ｒｅｆｅｒｅｎｃｅ  Ｉｎｃｌｕｄｅ＞」を含む文字列を検索する。具体的に、宣言文削除部１１２は、例えば、図１４に示すように、「＜Ｒｅｆｅｒｅｎｃｅ  Ｉｎｃｌｕｄｅ＞」を含む文字列として、文字列ＣＳ０２ａ、文字列ＣＳ０２ｂ及び文字列ＣＳ０２ｃをそれぞれ特定する。
【００７０】
続いて、宣言文削除部１１２は、例えば、文字列ＣＳ０２ａと文字列ＣＳ０２ａの直後に位置する「＜／Ｒｅｆｅｒｅｎｃｅ＞」との間において、「＜ＨｉｎｔＰａｔｈ＞」と「＜／ＨｉｎｔＰａｔｈ＞」とに囲まれる文字列ＣＳ０２ｄに含まれるプログラムＩＤを、Ｓ１５の処理で特定したメインプログラムが呼び出しを行うサブプログラムのプログラムＩＤとして特定する。また、宣言文削除部１１２は、例えば、文字列ＣＳ０２ｂと文字列ＣＳ０２ｂの直後に位置する「＜／Ｒｅｆｅｒｅｎｃｅ＞」との間において、「＜ＨｉｎｔＰａｔｈ＞」と「＜／ＨｉｎｔＰａｔｈ＞」とに囲まれる文字列ＣＳ０２ｅに含まれるプログラムＩＤを、Ｓ１５の処理で特定したメインプログラムが呼び出しを行うサブプログラムのプログラムＩＤとして特定する。さらに、宣言文削除部１１２は、例えば、文字列ＣＳ０２ｃと文字列ＣＳ０２ｃの直後に位置する「＜／Ｒｅｆｅｒｅｎｃｅ＞」との間において、「＜ＨｉｎｔＰａｔｈ＞」と「＜／ＨｉｎｔＰａｔｈ＞」とに囲まれる文字列ＣＳ０２ｆに含まれるプログラムＩＤを、Ｓ１５の処理で特定したメインプログラムが呼び出しを行うサブプログラムのプログラムＩＤとして特定する。
【００７１】
具体的に、宣言文削除部１１２は、図１４に示す例において、例えば、プログラムＩＤとして「ＳｕｂＰｒｏＣ００７」、「ＳｕｂＰｒｏＣ００８」及び「ＳｕｂＰｒｏＣ００９」を特定する。すなわち、宣言文削除部１１２は、図１４に示す例において、Ｓ１５の処理で特定したメインプログラムのソースコード１３１に宣言文が含まれるサブプログラムとして、プログラムＩＤが「ＳｕｂＰｒｏＣ００７」、「ＳｕｂＰｒｏＣ００８」及び「ＳｕｂＰｒｏＣ００９」であるサブプログラムを特定する。
【００７２】
図１０に戻り、Ｓ２１の処理においてサブプログラムを特定した場合（Ｓ２２のＹＥＳ）、宣言文削除部１１２は、Ｓ２１の処理で特定したサブプログラムのうちの１つを特定する（Ｓ２３）。
【００７３】
具体的に、Ｓ２１の処理において、プログラムＩＤが「ＳｕｂＰｒｏＣ００１」、「ＳｕｂＰｒｏＣ００２」、「ＳｕｂＰｒｏＣ００３」及び「ＳｕｂＰｒｏＣ００５」であるサブプログラムが特定された場合、宣言文削除部１１２は、例えば、プログラムＩＤが「ＳｕｂＰｒｏＣ００１」であるサブプログラムを特定する。
【００７４】
そして、宣言文削除部１１２は、Ｓ１５の処理で特定したソースコード１３１から、Ｓ２３の処理で特定したサブプログラムの宣言文を削除する（Ｓ２４）。
【００７５】
具体的に、例えば、Ｓ１５の処理で特定したソースコード１３１が図１３で説明したソースコード１３１ａであった場合、宣言文削除部１１２は、例えば、図１５に示すように、文字列ＣＳ０１から「ＳｕｂＰｒｏＣ００１．ｌｉｂ；」を削除する。
【００７６】
また、例えば、Ｓ１５の処理で特定したソースコード１３１が図１４で説明したソースコード１３１ｂであった場合、宣言文削除部１１２は、例えば、図１６に示すように、文字列ＣＳ０２ａに含まれる「＜Ｒｅｆｅｒｅｎｃｅ  Ｉｎｃｌｕｄｅ＞」と文字列ＣＳ０２ｄの直後に位置する「＜／Ｒｅｆｅｒｅｎｃｅ＞」とに囲まれる文字列を削除する。
【００７７】
その後、情報処理装置１のコンパイル実行部１１３は、Ｓ２４の処理で宣言文が削除されたソースコード１３１のコンパイルを実行する（Ｓ２５）。
【００７８】
具体的に、コンパイル実行部１１３は、図１５で説明したソースコード１３１ａや図１６で説明したソースコード１３１ｂのコンパイルを実行する。
【００７９】
そして、情報処理装置１の結果判定部１１４は、図１１に示すように、Ｓ２５の処理で実行したコンパイルの結果が正常であるか否かを判定する（Ｓ３１）。
【００８０】
具体的に、結果判定部１１４は、例えば、コンパイル実行部１１３によって出力されたコンパイル結果情報（図示しない）を参照し、コンパイル結果情報に「ｅｒｒｏｒ」の文字列が含まれているか否かを判定する。そして、結果判定部１１４は、例えば、コンパイル結果情報に「ｅｒｒｏｒ」の文字列が含まれていないと判定した場合、Ｓ２５の処理で実行したコンパイルの結果が正常であると判定する。一方、結果判定部１１４は、例えば、コンパイル結果情報に「ｅｒｒｏｒ」の文字列が含まれていると判定した場合、Ｓ２５の処理で実行したコンパイルの結果が正常でないと判定する。
【００８１】
その結果、Ｓ２５の処理で実行したコンパイルの結果が正常であると判定した場合（Ｓ３２のＹＥＳ）、情報管理部１１５は、情報格納領域１３０に記憶された関連情報１３２に、Ｓ１５の処理でソースコード１３１が特定されたメインプログラムが、Ｓ２３の処理で特定したサブプログラムの呼び出しを行わないことを示す情報を追加する（Ｓ３３）。
【００８２】
一方、Ｓ２５の処理で実行したコンパイルの結果が正常でないと判定した場合（Ｓ３２のＮＯ）、情報管理部１１５は、情報格納領域１３０に記憶された関連情報１３２に、Ｓ１５の処理でソースコード１３１が特定されたメインプログラムが、Ｓ２３の処理で特定したサブプログラムの呼び出しを行うことを示す情報を追加する（Ｓ３４）。
【００８３】
そして、宣言文削除部１１２は、Ｓ３３の処理またはＳ３４の処理の後、図１２に示すように、Ｓ２４の処理で宣言文が削除されたソースコード１３１を、宣言文を削除する前の状態に戻す（Ｓ４１）。
【００８４】
その後、情報管理部１１５は、Ｓ２１の処理で特定された全てのサブプログラムをＳ２３の処理において特定したか否かを判定する（Ｓ４２）。また、情報管理部１１５は、Ｓ２１の処理においてサブプログラムが特定されなかった場合（Ｓ２２のＮＯ）も同様に、Ｓ４２の処理を行う。
【００８５】
その結果、全てのサブプログラムを特定していないと判定した場合（Ｓ４２のＮＯ）、宣言文削除部１１２は、Ｓ２３以降の処理を再度行う。
【００８６】
一方、全てのサブプログラムを特定したと判定した場合（Ｓ４２のＹＥＳ）、情報管理部１１５は、Ｓ１３の処理で特定された全てのメインプログラムのソースコード１３１をＳ１５の処理において特定したか否かを判定する（Ｓ４３）。
【００８７】
その結果、全てのメインプログラムのソースコード１３１を特定していないと判定した場合（Ｓ４３のＮＯ）、情報管理部１１５は、Ｓ１５以降の処理を再度行う。
【００８８】
一方、全てのメインプログラムのソースコード１３１を特定したと判定した場合（Ｓ４３のＹＥＳ）、情報処理装置１は、関連判定処理を終了する。以下、関連情報１３２の具体例について説明を行う。
【００８９】
［関連情報の具体例］
図１７から図２１は、関連情報１３２の具体例について説明する図である。
【００９０】
初めに、Ｓ１６の処理が行われる前の関連情報１３２の具体例について説明を行う。図１７は、Ｓ１６の処理が行われる前の関連情報１３２の具体例について説明する図である。
【００９１】
図１７等に示す関連情報１３２は、メインプログラムのプログラムＩＤが設定される「メインプログラムＩＤ」と、サブプログラムのプログラムＩＤが設定される「サブプログラムＩＤ」とを項目として有する。また、図１７等に示す関連情報１３２は、メインプログラムやサブプログラムのプログラム言語の識別情報が設定される「言語識別情報」と、「サブプログラムＩＤ」に情報が設定されたサブプログラムが「メインプログラムＩＤ」に情報が設定されたメインプログラムによって実際に呼び出されているか否かを示す情報が設定される「判定結果」とを項目として有する。「言語識別情報」には、例えば、Ｃ言語を示す「１」、または、Ｃ＃を示す「２」が設定される。また、「判定結果」には、サブプログラムの呼び出しが実際に行われていることを示す「ＴＲＵＥ」、または、サブプログラムの呼び出しが実際には行われていないことを示す「ＦＡＬＳＥ」が設定される。すなわち、「判定結果」には、Ｓ３１の処理において行われた判定の結果を示す情報が設定される。
【００９２】
具体的に、図１７に示す関連情報１３２において、「メインプログラムＩＤ」に「ＭａｉｎＰｒｏＣ００１」が設定され、「サブプログラムＩＤ」に「ＳｕｂＰｒｏＣ００１」が設定されている情報には、「言語識別情報」として「１」が設定され、「判定結果」として「ＴＲＵＥ」が設定されている。また、図１７に示す関連情報１３２において、「メインプログラムＩＤ」に「ＭａｉｎＰｒｏＣ００１」が設定され、「サブプログラムＩＤ」に「ＳｕｂＰｒｏＣ００２」が設定されている情報には、「言語識別情報」として「１」が設定され、「判定結果」として「ＴＲＵＥ」が設定されている。図１７に含まれる他の情報についての説明は省略する。
【００９３】
そして、例えば、Ｓ１５の処理においてプログラムＩＤが「ＭａｉｎＰｒｏＣ００１」であるメインプログラムが特定された場合、情報管理部１１５は、図１８に示すように、「メインプログラムＩＤ」に「ＭａｉｎＰｒｏＣ００１」が設定された情報をそれぞれ削除する。
【００９４】
続いて、例えば、Ｓ１５の処理においてプログラムＩＤが「ＭａｉｎＰｒｏＣ００１」であるメインプログラムが特定され、Ｓ２３の処理においてプログラムＩＤが「ＳｕｂＰｒｏＣ００１」であるサブプログラムが特定されている場合であって、Ｓ３１の処理においてコンパイル結果が正常であると判定された場合、情報管理部１１５は、図１９の下線部分に示すように、「メインプログラムＩＤ」に「ＭａｉｎＰｒｏＣ００１」が設定され、「サブプログラムＩＤ」に「ＳｕｂＰｒｏＣ００１」が設定され、「判定結果」に「ＴＲＵＥ」が設定された情報を追加する。
【００９５】
さらに、例えば、Ｓ１５の処理においてプログラムＩＤが「ＭａｉｎＰｒｏＣ００１」であるメインプログラムが特定され、Ｓ２３の処理においてプログラムＩＤが「ＳｕｂＰｒｏＣ００２」であるサブプログラムが特定されている場合であって、Ｓ３１の処理においてコンパイル結果が正常でないと判定された場合、情報管理部１１５は、図２０の下線部分に示すように、「メインプログラムＩＤ」に「ＭａｉｎＰｒｏＣ００１」が設定され、「サブプログラムＩＤ」に「ＳｕｂＰｒｏＣ００２」が設定され、「判定結果」に「ＦＡＬＳＥ」が設定された情報を追加する。
【００９６】
その後、情報管理部１１５は、Ｓ２３の処理からＳ４２の処理までを繰り返し行うことにより、例えば、図２１の下線部分に示すように、「メインプログラムＩＤ」に「ＭａｉｎＰｒｏＣ００１」が設定された情報をそれぞれ追加する。
【００９７】
これにより、情報管理部１１５は、情報格納領域１３０に記憶されたソースコード１３１の現在の状態に対応する関連情報１３２を生成することが可能になる。そのため、事業者は、情報処理装置１が生成した関連情報１３２を参照することにより、各メインプログラムが呼び出しを行うサブプログラムのそれぞれを正確に特定することが可能になる。
【００９８】
［関連情報の内容を出力した場合の具体例（２）］
次に、図２１で説明した関連情報１３２の内容を出力した場合の具体例について説明を行う。図２２は、関連情報１３２の内容を出力した場合の具体例を説明する図である。
【００９９】
図２１で説明した関連情報１３２において、「メインプログラムＩＤ」が「ＭａｉｎＰｒｏＣ００１」であって「サブプログラムＩＤ」が「ＳｕｂＰｒｏＣ００１」及び「ＳｕｂＰｒｏＣ００５」である情報の「判定結果」には、それぞれ「ＴＲＵＥ」が設定されている。また、図２１で説明した関連情報１３２において、「メインプログラムＩＤ」が「ＭａｉｎＰｒｏＣ００１」であって「サブプログラムＩＤ」が「ＳｕｂＰｒｏＣ００２」及び「ＳｕｂＰｒｏＣ００３」である情報の「判定結果」には、それぞれ「ＦＡＬＳＥ」が設定されている。
【０１００】
そのため、図２２に示す例において、例えば、「ＭａｉｎＰｒｏＣ００１」に対応する欄のうち、「ＳｕｂＰｒｏＣ００１」及び「ＳｕｂＰｒｏＣ００５」に対応する欄のそれぞれには、サブプログラムの呼び出しが実際に行われていることを示す「〇」が設定されている。また、図２２に示す例において、例えば、「ＭａｉｎＰｒｏＣ００１」に対応する欄のうち、「ＳｕｂＰｒｏＣ００２」及び「ＳｕｂＰｒｏＣ００３」に対応する欄のそれぞれには、サブプログラムの呼び出しが実際には行われていないことを示す「×」が設定されている。
【０１０１】
これにより、事業者は、例えば、図２２に示す内容が出力された出力装置を閲覧することで、メインプログラムが呼び出しを行うサブプログラムを正確に特定することが可能になる。
【０１０２】
このように、本実施の形態における情報処理装置１は、メインプログラムのソースコード１３１から、メインプログラムによって呼び出される１以上のサブプログラムのうちのいずれかのサブプログラムに関する宣言文を削除する。そして、情報処理装置１は、宣言文が削除された後のメインプログラムのコンパイルを実行する。
【０１０３】
その後、情報処理装置１は、コンパイルの実行が正常に完了した場合、宣言文を削除したサブプログラムがメインプログラムによって呼び出されないサブプログラムであることを示す情報を出力する。
【０１０４】
すなわち、メインプログラムが実際に呼び出しを行っているサブプログラムの宣言文の削除が行われた場合、メインプログラムのコンパイルは、呼び出しを行うサブプログラムの宣言文が存在しないために失敗する。そこで、情報処理装置１は、いずれかのサブプログラムに関する宣言文を削除したメインプログラムのソースコード１３１のコンパイルを実行し、そのコンパイルが正常に完了するか否かの判定を行う。そして、コンパイルが正常に完了した場合、情報処理装置１は、宣言文を削除したサブプログラムの呼び出しが行われていないものと判定する。
【０１０５】
これにより、情報処理装置１は、修正を行ったサブプログラムを実際に呼び出しているメインプログラムを特定することが可能になる。そのため、情報処理装置１は、サブプログラムの修正が行われた場合に、テストを行う必要があるメインプログラムを正確に特定することが可能になる。したがって、情報処理装置１は、サブプログラムの修正に伴うメインプログラムのテストが必要以上に行われることを防止することが可能になる。
【０１０６】
なお、図２２に示す例において、「ＳｕｂＰｒｏＣ００７」に対応する欄のうちの「ＭａｉｎＰｒｏＣ００７」に対応する欄には、「〇」が設定されており、「ＳｕｂＰｒｏＣ００７」に対応する欄のうちの「ＭａｉｎＰｒｏＣ００６」、「ＭａｉｎＰｒｏＣ００８」、「ＭａｉｎＰｒｏＣ００９」及び「ＭａｉｎＰｒｏＣ０１０」に対応する欄には、それぞれ「×」が設定されている。
【０１０７】
すなわち、図２２に示す例は、プログラムＩＤが「ＭａｉｎＰｒｏＣ００６」、「ＭａｉｎＰｒｏＣ００８」、「ＭａｉｎＰｒｏＣ００９」及び「ＭａｉｎＰｒｏＣ０１０」であるメインプログラムのそれぞれが、プログラムＩＤが「ＳｕｂＰｒｏＣ００７」であるサブプログラムの呼び出しを中止していることを示している。また、図２２に示す例は、プログラムＩＤが「ＭａｉｎＰｒｏＣ００７」であるメインプログラムのみが、プログラムＩＤが「ＳｕｂＰｒｏＣ００７」であるサブプログラムの呼び出しを引き続き行っていることを示している。
【０１０８】
一方、図２２に示す例において、「ＳｕｂＰｒｏＣ００９」に対応する欄のうちの「ＭａｉｎＰｒｏＣ００６」、「ＭａｉｎＰｒｏＣ００８」、「ＭａｉｎＰｒｏＣ００９」及び「ＭａｉｎＰｒｏＣ０１０」に対応する欄には、「〇」が設定されており、「ＳｕｂＰｒｏＣ００９」に対応する欄のうちの「ＭａｉｎＰｒｏＣ００７」に対応する欄には、「〇」または「×」が設定されていない。
【０１０９】
すなわち、図２２に示す例は、プログラムＩＤが「ＭａｉｎＰｒｏＣ００６」から「ＭａｉｎＰｒｏＣ０１０」であるメインプログラムが呼び出すサブプログラムを、プログラムＩＤが「ＳｕｂＰｒｏＣ００７」であるサブプログラムからプログラムＩＤが「ＳｕｂＰｒｏＣ００９」であるサブプログラムに変更するための修正が過去に行われた可能性があることを示している。そして、図２２に示す例は、プログラムＩＤが「ＭａｉｎＰｒｏＣ００７」であるメインプログラムについては、上記の修正が行われていない可能性があることを示している。
【０１１０】
そのため、事業者は、図２２で説明した内容が出力された出力装置を閲覧することで、例えば、ソースコード１３１の修正漏れが発生している可能性に気が付くことが可能になる。
【０１１１】
［第２の実施の形態の概略］
次に、第２の実施の形態における関連判定処理について説明を行う。
【０１１２】
第１の実施の形態における情報処理装置１は、情報格納領域１３０に記憶されたソースコード１３１のうち、メインプログラムのソースコード１３１の全てを対象として関連判定処理を行う。これに対し、第２の実施の形態における情報処理装置１では、情報格納領域１３０に記憶されたソースコード１３１のうち、所定期間内に修正が行われたメインプログラムのソースコード１３１のみを対象として関連判定処理を行う。
【０１１３】
これにより、情報処理装置１は、関連判定処理の実行に要する時間を短縮させることが可能になる。
【０１１４】
なお、第２の実施の形態における関連判定処理は、Ｓ１２及びＳ１３の処理において行われる処理の内容についてのみ、第１の実施の形態における関連判定処理と異なる。そのため、以下、第２の実施の形態における関連判定処理のうち、Ｓ１２及びＳ１３の処理についてのみ説明を行う。
【０１１５】
［第２の実施の形態の詳細］
図２３から図２５は、第２の実施の形態における関連判定処理の詳細の一部を説明するフローチャート図である。具体的に、図２３及び図２４は、第２の実施の形態における処理のうち、Ｓ１２の処理について説明する図であり、図２５は、第２の実施の形態における処理のうち、Ｓ１３の処理について説明する図である。また、図２６は、第２の実施の形態における関連判定処理の詳細を説明する図である。以下、図２６を参照しながら、図２３から図２５に示す関連判定処理の詳細について説明を行う。
【０１１６】
ソースコード取得部１１１は、情報出力タイミングになった場合（Ｓ１１のＹＥＳ）、図２３に示すように、ソースコード取得部１１１は、情報格納領域１３０に記憶されたソースコード１３１を取得する（Ｓ５１）。
【０１１７】
そして、情報管理部１１５は、Ｓ５１の処理で取得したソースコード１３１のうち、所定期間内に修正が行われたソースコード１３１を特定する（Ｓ５２）。具体的に、情報管理部１１５は、例えば、Ｓ５１の処理で取得したソースコード１３１のうち、関連判定処理が前回行われてから現在までの間に修正が行われたソースコード１３１の特定を行う。
【０１１８】
その結果、所定期間内に修正が行われたソースコード１３１が特定されなかった場合（Ｓ５３のＮＯ）、情報処理装置１は、Ｓ１２の処理を終了する。
【０１１９】
一方、所定期間内に修正が行われたソースコード１３１が特定された場合（Ｓ５３のＹＥＳ）、情報管理部１１５は、情報格納領域１３０に記憶された修正情報１３３を削除する（Ｓ５４）。修正情報１３３は、例えば、関連判定処理が前回行われてから現在までの間に修正が行われたソースコード１３１を示す情報である。修正情報１３３の具体例については後述する。
【０１２０】
続いて、情報管理部１１５は、Ｓ５３の処理で特定したソースコード１３１のうちの１つを特定する（Ｓ５５）。
【０１２１】
そして、情報管理部１１５は、Ｓ５５の処理で特定したソースコード１３１がサブプログラムのソースコード１３１であるか否かを判定する（Ｓ５６）。
【０１２２】
具体的に、情報管理部１１５は、例えば、Ｓ５５の処理で取得したソースコード１３１のそれぞれに記述されたプログラムＩＤを特定し、特定したプログラムＩＤのそれぞれがサブプログラムのプログラムＩＤの決定ルールに従っているか否かを判定する。そして、情報管理部１１５は、例えば、決定ルールに従っていると判定したプログラムＩＤが記述されたソースコード１３１を、サブプログラムのソースコード１３１として特定する。
【０１２３】
また、情報管理部１１５は、例えば、Ｓ５５の処理で取得したソースコード１３１のそれぞれに記述されたプログラムＩＤを特定し、特定したプログラムＩＤのうち、情報格納領域１３０に記憶された関連情報１３２の「サブプログラムＩＤ」に設定されているプログラムＩＤを特定する。そして、情報管理部１１５は、関連情報１３２の「サブプログラムＩＤ」に設定されているプログラムＩＤが記述されたソースコード１３１を、サブプログラムのソースコード１３１として特定する。
【０１２４】
その結果、図２４に示すように、Ｓ５５の処理で特定したソースコード１３１がサブプログラムのソースコード１３１であると判定した場合（Ｓ６１のＹＥＳ）、情報管理部１１５は、情報格納領域１３０に記憶された修正情報１３３に、Ｓ５５の処理で特定したソースコード１３１が所定期間内に修正されているサブプログラムのソースコード１３１であることを示す情報を追加する（Ｓ６２）。
【０１２５】
一方、Ｓ５５の処理で特定したソースコード１３１がサブプログラムのソースコード１３１でないと判定した場合（Ｓ６１のＮＯ）、情報管理部１１５は、情報格納領域１３０に記憶された修正情報１３３に、Ｓ５５の処理で特定したソースコード１３１が所定期間内に修正されているメインプログラムのソースコード１３１であることを示す情報を追加する（Ｓ６３）。
【０１２６】
そして、Ｓ６２の処理またはＳ６３の処理の後、情報管理部１１５は、Ｓ５２の処理で特定した全てのプログラムのソースコード１３１をＳ５５の処理において特定したか否かを判定する（Ｓ６４）。
【０１２７】
その結果、全てのプログラムを特定していないと判定した場合（Ｓ６４のＮＯ）、情報管理部１１５は、Ｓ５５以降の処理を再度行う。
【０１２８】
一方、全てのプログラムを特定したと判定した場合（Ｓ６４のＹＥＳ）、情報処理装置１は、Ｓ１２の処理を終了する。以下、修正情報１３３の具体例について説明を行う。
【０１２９】
［修正情報の具体例］
図２６は、修正情報１３３の具体例について説明する図である。
【０１３０】
図２６に示す修正情報１３３は、メインプログラムまたはサブプログラムのプログラムＩＤが設定される「メインプログラムＩＤ」と、メインプログラムまたはサブプログラムのプログラム言語の識別情報が設定される「言語識別情報」とを項目として有する。また、図２６に示す修正情報１３３は、プログラムの種別が設定される「プログラム種別」を項目として有する。「プログラム種別」には、メインプログラムを示す「メイン」、または、サブプログラムを示す「サブ」が設定される。
【０１３１】
具体的に、図２６に示す修正情報１３３において、「プログラムＩＤ」が「ＭａｉｎＰｒｏＣ００１」である情報には、「言語識別情報」として「１」が設定され、「プログラム種別」として「メイン」が設定されている。すなわち、図２６に示す修正情報１３３は、プログラムＩＤが「ＭａｉｎＰｒｏＣ００１」であるメインプログラムの修正が、所定期間内に行われたことを示している。
【０１３２】
また、図２６に示す修正情報１３３において、「プログラムＩＤ」が「ＳｕｂＰｒｏＣ００４」である情報には、「言語識別情報」として「１」が設定され、「プログラム種別」として「サブ」が設定されている。すなわち、図２６に示す修正情報１３３は、プログラムＩＤが「ＳｕｂＰｒｏＣ００４」であるサブプログラムの修正が、所定期間内に行われたことを示している。図２６に含まれる他の情報については説明を省略する。
【０１３３】
そして、情報管理部１１５は、図２５に示すように、情報格納領域１３０に記憶された修正情報１３３に情報が含まれるメインプログラムを特定する（Ｓ７１）。具体的に、情報管理部１１５は、例えば、図２６で説明した修正情報１３３を参照し、「プログラムＩＤ」に情報が設定されているメインプログラムとして、プログラムＩＤが「ＭａｉｎＰｒｏＣ００１」及び「ＭａｉｎＰｒｏＣ００７」であるプログラムを特定する。
【０１３４】
続いて、情報管理部１１５は、情報格納領域１３０に記憶された修正情報１３３に情報が含まれるサブプログラムを特定する（Ｓ７２）。具体的に、情報管理部１１５は、例えば、図２６で説明した修正情報１３３を参照し、「プログラムＩＤ」に情報が設定されているサブプログラムとして、プログラムＩＤが「ＳｕｂＰｒｏＣ００４」、「ＳｕｂＰｒｏＣ００５」及び「ＳｕｂＰｒｏＣ０１０」であるプログラムを特定する。
【０１３５】
そして、情報管理部１１５は、情報格納領域１３０に記憶された関連情報１３２を参照し、Ｓ７２の処理で特定したサブプログラムの呼び出しを行うメインプログラムを特定する（Ｓ７３）。
【０１３６】
具体的に、図２２で説明した例では、「ＳｕｂＰｒｏＣ００４」に対応する欄のうち、「ＭａｉｎＰｒｏＣ００３」、「ＭａｉｎＰｒｏＣ００４」及び「ＭａｉｎＰｒｏＣ００５」に対応する欄に「〇」が設定されている。また、図２２で説明した例では、「ＳｕｂＰｒｏＣ００５」に対応する欄のうち、「ＭａｉｎＰｒｏＣ００１」及び「ＭａｉｎＰｒｏＣ００３」に対応する欄に「〇」が設定されている。さらに、図２２で説明した例では、「ＳｕｂＰｒｏＣ０１０」に対応する欄のうち、「ＭａｉｎＰｒｏＣ００８」に対応する欄に「〇」が設定されている。
【０１３７】
そのため、情報管理部１１５は、Ｓ７３の処理において、プログラムＩＤが「ＳｕｂＰｒｏＣ００４」、「ＳｕｂＰｒｏＣ００５」または「ＳｕｂＰｒｏＣ０１０」であるサブプログラムの呼び出しを行うメインプログラムとして、プログラムＩＤが「ＭａｉｎＰｒｏＣ００１」、「ＭａｉｎＰｒｏＣ００３」、「ＭａｉｎＰｒｏＣ００４」、「ＭａｉｎＰｒｏＣ００５」及び「ＭａｉｎＰｒｏＣ００８」であるメインプログラムを特定する。
【０１３８】
すなわち、情報管理部１１５は、Ｓ１３の処理において、プログラムＩＤが「ＭａｉｎＰｒｏＣ００１」、「ＭａｉｎＰｒｏＣ００３」、「ＭａｉｎＰｒｏＣ００４」、「ＭａｉｎＰｒｏＣ００５」、「ＭａｉｎＰｒｏＣ００７」及び「ＭａｉｎＰｒｏＣ００８」であるメインプログラムを特定する。そして、情報管理部１１５は、この場合、プログラムＩＤが「ＭａｉｎＰｒｏＣ００１」、「ＭａｉｎＰｒｏＣ００３」、「ＭａｉｎＰｒｏＣ００４」、「ＭａｉｎＰｒｏＣ００５」、「ＭａｉｎＰｒｏＣ００７」及び「ＭａｉｎＰｒｏＣ００８」であるメインプログラムについてのみ、Ｓ１４以降の処理を行う。
【０１３９】
これにより、情報処理装置１は、Ｓ１４以降の処理が行われるメインプログラムの数を抑制することが可能になる。そのため、情報処理装置１は、関連判定処理の実行に要する時間を短縮させることが可能になる。
【０１４０】
以上の実施の形態をまとめると、以下の付記のとおりである。
【０１４１】
（付記１）
メインプログラムのソースコードから、前記メインプログラムによって呼び出される１以上のサブプログラムのうちのいずれかのサブプログラムに関する宣言文を削除し、
前記宣言文が削除された後の前記メインプログラムのソースコードのコンパイルを実行し、
前記コンパイルの実行が正常に完了した場合、前記いずれかのサブプログラムが前記メインプログラムによって呼び出されないサブプログラムであることを示す情報を出力する、
処理をコンピュータに実行させることを特徴とする関連判定プログラム。
【０１４２】
（付記２）
付記１において、
前記出力する処理では、前記コンパイルの実行が正常に完了しなかった場合、前記いずれかのサブプログラムが前記メインプログラムによって呼び出されるサブプログラムであることを示す情報を出力する、
ことを特徴とする関連判定プログラム。
【０１４３】
（付記３）
付記２において、
前記出力する処理では、前記コンパイルの実行が正常に完了した場合、前記いずれかのサブプログラムの修正に伴って前記メインプログラムについてのテストを行う必要がないことを示す情報を出力し、前記コンパイルの実行が正常に完了しなかった場合、前記いずれかのサブプログラムの修正に伴って前記メインプログラムについてのテストを行う必要があることを示す情報を出力する、
ことを特徴とする関連判定プログラム。
【０１４４】
（付記４）
付記１において、さらに、
前記メインプログラムのソースコードに前記宣言文が複数含まれている場合、前記削除する処理、前記実行する処理及び前記出力する処理を前記宣言文のそれぞれについて繰り返し行う、
処理をコンピュータに実行させることを特徴とする関連判定プログラム。
【０１４５】
（付記５）
付記１において、
前記メインプログラムは、所定期間内に修正が行われたプログラムである、
ことを特徴とする関連判定プログラム。
【０１４６】
（付記６）
付記５において、
前記所定期間は、前記出力する処理が前回行われてから現在までの期間である、
ことを特徴とする関連判定プログラム。
【０１４７】
（付記７）
付記１において、
前記メインプログラムは、所定期間内に修正が行われたサブプログラムを呼び出すプログラムである、
ことを特徴とする関連判定プログラム。
【０１４８】
（付記８）
付記１において、
前記いずれかのサブプログラムに関する宣言文は、前記メインプログラムにおいて前記いずれかのサブプログラムが呼び出されることを示す宣言文である、
ことを特徴とする関連判定プログラム。
【０１４９】
（付記９）
メインプログラムのソースコードから、前記メインプログラムによって呼び出される１以上のサブプログラムのうちのいずれかのサブプログラムに関する宣言文を削除する宣言文削除部と、
前記宣言文が削除された後の前記メインプログラムのソースコードのコンパイルを実行するコンパイル実行部と、
前記コンパイルの実行が正常に完了した場合、前記いずれかのサブプログラムが前記メインプログラムによって呼び出されないサブプログラムであることを示す情報を出力する情報出力部と、を有する、
ことを特徴とする関連判定装置。
【０１５０】
（付記１０）
付記９において、
前記情報出力部は、前記コンパイルの実行が正常に完了しなかった場合、前記いずれかのサブプログラムが前記メインプログラムによって呼び出されるサブプログラムであることを示す情報を出力する、
ことを特徴とする関連判定装置。
【０１５１】
（付記１１）
付記１０において、
前記情報出力部は、前記コンパイルの実行が正常に完了した場合、前記いずれかのサブプログラムの修正に伴って前記メインプログラムについてのテストを行う必要がないことを示す情報を出力し、前記コンパイルの実行が正常に完了しなかった場合、前記いずれかのサブプログラムの修正に伴って前記メインプログラムについてのテストを行う必要があることを示す情報を出力する、
ことを特徴とする関連判定装置。
【０１５２】
（付記１２）
メインプログラムのソースコードから、前記メインプログラムによって呼び出される１以上のサブプログラムのうちのいずれかのサブプログラムに関する宣言文を削除し、
前記宣言文が削除された後の前記メインプログラムのソースコードのコンパイルを実行し、
前記コンパイルの実行が正常に完了した場合、前記いずれかのサブプログラムが前記メインプログラムによって呼び出されないサブプログラムであることを示す情報を出力する、
ことを特徴とする関連判定方法。
【０１５３】
（付記１３）
付記１２において、
前記出力する工程では、前記コンパイルの実行が正常に完了しなかった場合、前記いずれかのサブプログラムが前記メインプログラムによって呼び出されるサブプログラムであることを示す情報を出力する、
ことを特徴とする関連判定方法。
【０１５４】
（付記１４）
付記１３において、
前記出力する工程では、前記コンパイルの実行が正常に完了した場合、前記いずれかのサブプログラムの修正に伴って前記メインプログラムについてのテストを行う必要がないことを示す情報を出力し、前記コンパイルの実行が正常に完了しなかった場合、前記いずれかのサブプログラムの修正に伴って前記メインプログラムについてのテストを行う必要があることを示す情報を出力する、
ことを特徴とする関連判定方法。
【符号の説明】
【０１５５】
１：情報処理装置          １ａ：記憶装置
１ｂ：記憶装置            ３：操作端末
【図１】
2019144885.tif 000003
【図２】
2019144885.tif 000004
【図３】
2019144885.tif 000005
【図４】
2019144885.tif 000006
【図５】
2019144885.tif 000007
【図６】
2019144885.tif 000008
【図７】
2019144885.tif 000009
【図８】
2019144885.tif 000010
【図９】
2019144885.tif 000011
【図１０】
2019144885.tif 000012
【図１１】
2019144885.tif 000013
【図１２】
2019144885.tif 000014
【図１３】
2019144885.tif 000015
【図１４】
2019144885.tif 000016
【図１５】
2019144885.tif 000017
【図１６】
2019144885.tif 000018
【図１７】
2019144885.tif 000019
【図１８】
2019144885.tif 000020
【図１９】
2019144885.tif 000021
【図２０】
2019144885.tif 000022
【図２１】
2019144885.tif 000023
【図２２】
2019144885.tif 000024
【図２３】
2019144885.tif 000025
【図２４】
2019144885.tif 000026
【図２５】
2019144885.tif 000027
【図２６】
2019144885.tif 000028