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