プログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、正規表現付加部と、前記プログラムソースファイルに対して、前記正規表現付加部によって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ソースファイル検索部と、抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記ソースファイル検索部による抽出の結果から、前記排除文字列に該当する箇所を排除する、文字列排除部と、を備えている、ことを特徴とするプログラム分析装置。前記プログラムソースファイルの行毎に、当該行に含まれる関数の前後に位置する文字列を抽出し、抽出した前記文字列を用いて、前記抽出の対象となる関数に付加する正規表現を作成する、正規表現生成処理部を更に備えている、請求項1に記載のプログラム分析装置。前記ソースファイル検索部が、前記抽出の結果として、前記検索文字列、前記検索文字列を含むプログラムソースファイルの識別子、及び前記検索文字列が記述された行の番号を特定する情報を出力する、請求項1または2に記載のプログラム分析装置。前記文字列排除部が、前記排除文字列と前記抽出の結果とを対比して、前記排除文字列に一致している前記検索文字列を特定し、前記抽出の結果から、前記一致している前記検索文字列、前記一致している前記検索文字列を含むプログラムソースファイルの識別子、及び前記一致している前記検索文字列が記述された行の番号を排除する、請求項3に記載のプログラム分析装置。前記文字列排除部によって前記排除文字列に該当する箇所が排除された前記抽出の結果に基づいて、前記プログラムソースファイル毎に、当該プログラムソースファイルに存在している関数及びその数を特定するデータを作成し、作成した前記データを出力する、出力部を更に備えている、請求項4に記載のプログラム分析装置。特定の関数と前記抽出の結果とを対比して、前記特定の関数を含む前記検索文字列を特定し、特定した前記検索文字列を含むプログラムソースファイルの識別子、及び特定した前記検索文字列が記述された行の番号に基づいて、特定した前記検索文字列を含むプログラムソースファイル中の前記特定の関数を、他の関数に置き換える、関数置換部を更に備えている、請求項3~5のいずれかに記載のプログラム分析装置。aプログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、ステップと、b前記プログラムソースファイルに対して、前記aのステップによって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ステップと、c抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記bのステップによる抽出の結果から、前記排除文字列に該当する箇所を排除する、ステップと、を有する、ことを特徴とするプログラム分析方法。コンピュータに、aプログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、ステップと、b前記プログラムソースファイルに対して、前記aのステップによって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ステップと、c抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記bのステップによる抽出の結果から、前記排除文字列に該当する箇所を排除する、ステップと、を実行させるプログラム。ところで、プログラムソースファイルから、直接、文字列検索コマンドによって関数名文字列の検索を行なった場合は、目的の関数の抽出精度が低くなる場合がある。例えば、コメント部分の関数名が抽出された場合、文字列の中に抽出したい関数名と同じ文字の並びがあり、この文字列が誤って抽出された場合111を抽出したいが、abc111efgが抽出されてしまった場合等である。これに対して、特許文献1に開示されたシステムでは、上述したように、知識データベースを参照して検索が実行されるので、文字列検索コマンドのみを用いて検索を行なう場合に比べて、抽出精度の向上は図られると考えられる。しかしながら、特許文献1に開示されたシステムでは、抽出精度は、知識データベースに登録されている情報の内容に大きく影響されるので、知識データベースの完成度が低い場合は、誤った関数名が抽出されることがある。更に、誤った関数名が抽出された場合は、誤った関数名もそのまま出力されてしまう。このため、特許文献1に開示されたシステムであっても、依然、抽出精度が低くなる可能性が残っている。本発明の目的の一例は、上記問題を解消し、プログラムソースファイルから関数を抽出する際の抽出精度の向上を図り得る、プログラム分析装置、プログラム分析方法、及びプログラムを提供することにある。上記目的を達成するため、本発明の一側面におけるプログラム分析装置は、プログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、正規表現付加部と、前記プログラムソースファイルに対して、前記正規表現付加部によって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ソースファイル検索部と、抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記ソースファイル検索部による抽出の結果から、前記排除文字列に該当する箇所を排除する、文字列排除部と、を備えている、ことを特徴とする。また、上記目的を達成するため、本発明の一側面におけるプログラム分析方法は、aプログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、ステップと、b前記プログラムソースファイルに対して、前記aのステップによって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ステップと、c抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記bのステップによる抽出の結果から、前記排除文字列に該当する箇所を排除する、ステップと、を有する、ことを特徴とする。更に、上記目的を達成するため、本発明の一側面におけるプログラムは、コンピュータに、aプログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、ステップと、b前記プログラムソースファイルに対して、前記aのステップによって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ステップと、c抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記bのステップによる抽出の結果から、前記排除文字列に該当する箇所を排除する、ステップと、を実行させることを特徴とする。以上のように本発明によれば、プログラムソースファイルから関数を抽出する際の抽出精度の向上を図ることができる。実施の形態1以下、本発明の実施の形態1における、プログラム分析装置、プログラム分析方法、及びプログラムについて、図1~図5を参照しながら説明する。[装置構成]最初に、本実施の形態1におけるプログラム分析装置1の構成について図1を用いて説明する。図1は、本発明の実施の形態1におけるプログラム分析装置の構成を示すブロック図である。図1に示す本実施の形態1におけるプログラム分析装置1は、プログラムソースファイルから、そこで使用されている関数を抽出して、プログラムソースファイルの分析を行なう装置である。図1に示すように、プログラム分析装置1は、主に、正規表現付加部10と、ソースファイル検索部20と、文字列排除部40とを備えている。このうち、正規表現付加部10は、プログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する。また、ソースファイル検索部20は、プログラムソースファイルに対して、正規表現付加部10によって作成された検索文字列を用いて、検索を行い、プログラムソースファイルから検索文字列を抽出する。また、文字列排除部40は、まず、抽出の対象となる関数、又はこの関数とは別の関数に、上述の正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成する。次に、文字列排除部40は、ソースファイル検索部20による抽出の結果から、排除文字列に該当する箇所を排除する。このように、プログラム分析装置1は、正規表現を用いて作成した検索文字列を用いることで、確実に抽出対象となった関数を抽出する。そして、抽出された関数の中に、誤って抽出された関数が含まれていても、プログラム分析装置1は、これらを、排除文字列を用いて排除する。このため、プログラム分析装置1によれば、プログラムソースファイルから関数を抽出する際の抽出精度の向上が図られる。ここで、本実施の形態1におけるプログラム分析装置1の構成を更に具体的に説明する。図1に示すように、本実施の形態1では、プログラム分析装置1は、上述の正規表現付加部10、ソースファイル検索部20、及び文字列排除部40に加え、抽出結果ファイル出力部30と、最終抽出結果ファイル出力部50とを備えている。更に、プログラム分析装置1は、各部による処理によって得られた情報を格納するために、関数格納部61と、正規表現格納部62と、ソースファイル格納部63と、検索文字列格納部64と、抽出結果格納部65と、抽出結果ファイル格納部66と、排除用正規表現格納部71と、排除文字列格納部72と、最終抽出結果格納部73と、最終抽出結果ファイル格納部74とを備えている。また、本実施の形態1では、正規表現付加部10は、関数読込部11と、正規表現読込部12とを備えている。関数読込部11は、検索に用いられる関数のリストを格納している関数格納部61から、検索の対象となる任意の関数以下検索関数と表記する。を選択し、選択した関数の名称を正規表現読込部12に引き渡す。正規表現読込部12は、正規表現のリストを格納している正規表現格納部62から、正規表現を読み込み、これを検索関数の名称の前後に付与して、検索文字列を作成する。また、正規表現読込部12は、作成した検索文字列を、検索文字列格納部64に格納する。このとき、正規表現読込部12は、複数パターンの検査文字列を作成することができる。また、本実施の形態1では、後述する実施の形態2とは異なり、使用される正規表現は、予め、開発者によって作成され、正規表現格納部62に格納されている。ソースファイル検索部20は、本実施の形態1では、まず、検索文字列格納部64から、検索に用いる検索文字列を読み込み、更に、ソースファイル格納部63が格納しているプログラムソースファイルを読み込む。なお、本実施の形態1において、プログラムソースファイルは、C言語で記述されている。また、ソースファイル格納部63は、予め、複数個のプログラムソースファイルを格納している。そして、ソースファイル検索部20は、1のプログラムソースファイル毎に、読み込んだ検索文字列を用いて、当該プログラムソースファイルに対して検索を実行する。その後、ソースファイル検索部20は、検索によってヒットした行を抽出し、抽出結果を、抽出結果格納部65に格納する。具体的には、ソースファイル検索部20は、抽出結果として、検索文字列、検索文字列を含むプログラムソースファイルの識別子、及び検索文字列が記述された行の番号を特定する情報を、抽出結果格納部65に出力する。また、ソースファイル検索部20は、複数の検索文字列が作成されている場合は、検索文字列毎に、ソースファイル格納部63に格納されている全プログラムソースファイルを検索する。そして、ソースファイル検索部20は、検索文字列毎に、全プログラムソースファイルからの抽出結果を、抽出結果格納部65に格納する。抽出結果ファイル出力部30は、抽出結果格納部65に格納されている抽出結果を読み込み、読み込んだ抽出結果を、予め設定されたファイル形式に変換して、抽出結果ファイルとする。また、抽出結果ファイル出力部30は、抽出結果ファイルを、抽出結果ファイル格納部66に出力する。また、文字列排除部40は、排除関数読込部41と、排除用正規表現読込部42と、排除処理部43とを備えている。排除関数読込部41は、誤抽出された関数を排除するため、関数格納部61に格納されている関数のリストから、任意の関数以下排除関数と表記する。を選択し、選択した排除関数の名称を排除用正規表現読込部42に引き渡す。このとき、抽出結果から誤抽出の関数を排除する点からは、本実施の形態1では、検索関数として選択された関数が、全て、排除関数としても選択される。また、排除関数は、関数格納部61に格納されている関数のリスト以外のリストに予め用意されていても良く、この場合は、このリストから選択される。排除用正規表現読込部42は、排除用の正規表現のリストを格納している排除用正規表現格納部71から、排除用正規表現を読み込み、これを排除関数の名称の前後に付与して、排除文字列を作成する。このとき、排除用正規表現読込部42は、選択された排除関数毎に、全排除用正規表現を用いて、排除文字列を作成する。また、排除用正規表現読込部42は、作成した排除文字列を、排除文字列格納部72に格納する。本実施の形態1では、排除用の正規表現も、予め、開発者によって作成され、排除用正規表現格納部71に格納されている。排除処理部43は、まず、抽出結果ファイル格納部66から、抽出結果ファイルを読み込み、更に、排除文字列格納部72から排除文字列を読み込む。そして、排除処理部43は、抽出結果ファイルに対して、排除文字列を用いて検索を実行し、ヒットした行を抽出結果ファイルから取り除く。具体的には、排除処理部43は、排除文字列と抽出結果ファイルとを対比して、排除文字列に一致している検索文字列を特定する。そして、排除処理部43は、抽出結果ファイルから、一致している検索文字列、一致している検索文字列を含むプログラムソースファイルの識別子、及び一致している検索文字列が記述された行の番号を排除する。また、排除処理部43は、排除文字列格納部72に格納されている全ての排除文字列を用いて、抽出結果ファイル格納部66に格納されている全抽出結果ファイルを対象として、上記の検索及び排除を実行する。そして、排除処理部43は、排除文字列の排除された抽出結果ファイルを、最終抽出結果として、最終抽出結果格納部73に格納する。最終抽出結果ファイル出力部50は、最終抽出結果格納部73から最終抽出結果を読み込み、読み込んだ最終抽出結果を、設定されたファイル形式に変換して、最終抽出結果ファイルとする。また、最終抽出結果ファイル出力部50は、最終抽出結果ファイルを、最終抽出結果ファイル格納部74に出力する。具体的には、最終抽出結果ファイル出力部50は、最終抽出結果に基づいて、プログラムソースファイル毎に、各プログラムソースファイルに存在している関数及びその数を特定するデータを作成し、作成したデータを、最終抽出結果ファイルとして出力する。[装置動作]次に、本発明の実施の形態1におけるプログラム分析装置1の動作について図2及び図3を用いて説明する。また、本実施の形態1では、プログラム分析装置1を動作させることによって、プログラム分析方法が実施される。よって、本実施の形態1におけるプログラム分析方法の説明は、以下のプログラム分析装置1の動作説明に代える。最初に、図2を用いて、プログラム分析装置における検索処理について説明する。図2は、本発明の実施の形態1におけるプログラム分析装置の検索処理時の動作を示すフロー図である。図2に示すように、まず、関数読込部11が、関数格納部61から検索の対象となる検索関数を選択し、選択した関数の名称を正規表現読込部12に引き渡すステップA1。次に、正規表現読込部12は、正規表現格納部62から正規表現を読み込み、これを検索関数の名称の前後に付与して、検索文字列を作成するステップA2。ステップA2では、正規表現読込部12は、作成した検索文字列を、検索文字列格納部64に格納する。次に、ソースファイル検索部20は、ソースファイル格納部63から読み込んだプログラムソースファイル毎に、検索文字列格納部64から読み込んだ検索文字列を用いて、当該プログラムソースファイルに対して検索を実行するステップA3。ステップA3では、ソースファイル検索部20は、更に、検索によってヒットした行を抽出し、抽出結果を、抽出結果格納部65に格納する。次に、抽出結果ファイル出力部30は、ステップA3で抽出結果格納部65に格納された抽出結果を読み込み、読み込んだ抽出結果から抽出結果ファイルを作成し、これを抽出結果ファイル格納部66に出力するステップA4。以上のステップA1~A4の実行により、検索処理が終了する。また、本実施の形態1では、ステップA1~A4は、関数格納部61に格納されている全ての関数について繰り返し実行される。続いて、図3を用いて、プログラム分析装置における排除処理について説明する。図3は、本発明の実施の形態1におけるプログラム分析装置の排除処理時の動作を示すフロー図である。図3に示すように、まず、排除関数読込部41は、関数格納部61に格納されている関数のリストから、任意の排除関数を選択し、選択した排除関数の名称を排除用正規表現読込部42に引き渡すステップB1。次に、排除用正規表現読込部42は、排除用正規表現格納部71から排除用正規表現を読み込み、これを排除関数の名称の前後に付与して、排除文字列を作成するステップB2。また、ステップB2は、選択された排除関数毎に、全排除用正規表現を用いて、実行される。次に、排除処理部43は、抽出結果ファイル格納部66から読み込んだ抽出結果ファイルに対して、排除文字列格納部72から読み込んだ排除文字列を用いて、検索を実行し、ヒットした行を抽出結果ファイルから取り除くステップB3。ステップB3は、排除文字列格納部72に格納されている全ての排除文字列を用いて、抽出結果ファイル格納部66に格納されている全ファイルを対象として、実行される。また、排除処理部43は、排除文字列の排除された抽出結果ファイルを、最終抽出結果として、最終抽出結果格納部73に格納する。次に、最終抽出結果ファイル出力部50は、最終抽出結果格納部73から最終抽出結果を読み込み、読み込んだ最終抽出結果を用いて、最終抽出結果ファイルを作成し、これを、最終抽出結果ファイル格納部74に出力するステップB4。[装置動作:具体例]ここで、本実施の形態1におけるプログラム分析装置1の動作の具体例を、図4及び図5を用いて説明する。最初に、図4を用いて、正規表現付加部10、ソースファイル検索部20、及び抽出結果ファイル出力部30による検索処理について具体的に説明する。図4は、本実施の形態1におけるプログラム分析装置の検索処理時の具体的動作を説明するための図である。[ステップA1、A2]図4に示すように、まず、関数読込部11が、関数リスト61aから関数を読み込む。次に、正規表現読込部12が、正規表現リスト62aから正規表現を読み込み、検索関数の名称と正規表現とを組み合わせて、正規表現が付加された検索文字列のリスト64aを作成する。具体的には、図4に示すステップA1及びA2では、各正規表現のマークの部分が、関数リスト61aから取得された関数名に置き換えられている。この置き換えにより、検索文字列が作成されている。[ステップA3]次に、ソースファイル検索部20は、プログラムソースファイル群63aを構成する全てのソースファイルに対して、プログラムソースファイルリスト63bと検索文字列リスト64aとを用いて検索を実行する。具体的には、図4に示すステップA3では、ソースファイル検索部20は、プログラムソースファイル毎に、全ての検索文字列について検索を実行する。そして、ソースファイル検索部20は、検索毎に、ソースファイル名、行番号、及びソース本文を抽出し、これらを抽出結果65aとして抽出結果格納部65図1参照に格納する。[ステップA4]次に、抽出結果ファイル出力部30は、抽出結果65aから、重複しているエントリを排除する。その後、抽出結果ファイル出力部30は、抽出結果65aを、予め設定されたファイル形式に変換して、抽出結果ファイル68aを生成し、これを抽出結果ファイル格納部66に出力する。具体的には、検索文字列が複数ある場合検索文字列リスト64a、抽出結果65aにおいて、重複しているエントリが存在している場合が考えられる。この場合、抽出結果ファイル出力部30は、抽出結果ファイル格納部66への抽出結果ファイルの出力の前に、重複しているエントリを排除する。図4に示すステップA4では、重複しているエントリには、取り消し線が付されている。そして、まだ、処理が行なわれていない検索関数を用いて、再度、ステップA1~A4が実行される。ステップA1~A4は、関数格納部61に格納されている全ての関数について繰り返し実行される。続いて、図5を用いて、文字列排除部40及び最終抽出結果ファイル出力部50による排除処理について具体的に説明する。図5は、本実施の形態1におけるプログラム分析装置の排除処理時の具体的動作を説明するための図である。[ステップB1、B2]図5に示すように、まず、排除関数読込部41が、関数リスト61aから、排除関数となる関数を読み込む。次に、排除用正規表現読込部42が、排除用正規表現リスト71aから排除用正規表現を読み込み、抽出結果ファイル68aから誤抽出を排除し得る排除文字列を作成する。72aは、排除文字列のリストを示している。具体的には、図5に示すステップB1及びB2では、排除用正規表現のマークの部分が、関数リスト61aから取得された関数名に置き換えられている。この置き換えにより、排除用文字列が作成されている。[ステップB3]次に、排除処理部43は、抽出結果ファイル群73aを構成する全ての抽出結果ファイルを対象として、誤抽出された行の排除処理を実行する。具体的には、排除処理部43は、排除文字列の種類の数だけ、抽出結果ファイルを対象とする検索を実施して、抽出結果ファイル群68aから誤抽出の行を排除して、最終抽出結果73aを作成する。図5に示すステップB3では、誤抽出の行には、取り消し線が付されている。その後、排除処理部43は、最終抽出結果73aを、最終抽出結果格納部73に格納する。[ステップB4]次に、最終抽出結果ファイル出力部50は、最終抽出結果73aに対してレイアウト編集を行ない、レイアウト編集後の最終抽出結果を、最終抽出結果ファイル74aとして出力する。図5の例では、最終抽出結果ファイル出力部50は、縦軸が検索関数名、横軸がプログラムソースファイル名とされたテーブルを作成する。また、最終抽出結果ファイル出力部50は、テーブルの各欄には、検索関数毎の各プログラムソースファイルについての使用回数を配置する。そして、まだ、処理が行なわれていない排除関数を用いて、再度、ステップB1~B4が実行される。ステップB1~B4は、関数格納部61に格納されている全ての関数について繰り返し実行される。また、ステップB1~B4が実行される度に、最終抽出結果ファイル74aに、行が追加される。また、本実施の形態1におけるプログラムは、コンピュータに、図2に示すステップA1~A4、図3に示すステップB1~B4を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態1におけるプログラム分析装置1とプログラム分析方法とを実現することができる。この場合、コンピュータのCPUCentralProcessingUnitは、正規表現付加部10、ソースファイル検索部20、抽出結果ファイル出力部30、文字列排除部40、及び最終抽出結果ファイル出力部50として機能し、処理を行なう。更に、本実施の形態1では、コンピュータに備えられたハードディスク等の記憶装置が、関数格納部61、正規表現格納部62、ソースファイル格納部63、検索文字列格納部64、抽出結果格納部65、抽出結果ファイル格納部66、排除用正規表現格納部71、排除文字列格納部72、最終抽出結果格納部73、及び最終抽出結果ファイル格納部74として機能する。以上のように本実施の形態1によれば、アプリケーションプログラムで使用されている関数を高精度で抽出して集計可能となる。よって、OSOperationSystemの移行例えば、UNIX登録商標からLinuxへの移行等、バージョンアップ等において、アプリケーションプログラムの影響範囲件数、規模の算出が容易となる。また、本実施の形態1によれば、各関数がどのアプリケーションプログラムで使用されているかを管理することが容易にできるようになるため、ソフトウェア開発、テストでの進捗指標として利用可能となる。更に、本実施の形態1は、検索対象となる関数の条件、及び正規表現の条件を変更することにより、様々なプログラム言語にも適用することができる。実施の形態2次に、本発明の実施の形態2におけるプログラム分析装置、プログラム分析方法、及びプログラムについて、図6~図8を参照しながら説明する。[装置構成]最初に、本実施の形態2におけるプログラム分析装置2の構成について図6及び図7を用いて説明する。図6は、本発明の実施の形態2におけるプログラム分析装置の構成を示すブロック図である。図7は、図6に示した正規表現生成処理部の構成を具体的に示すブロック図である。図6に示すように、本実施の形態2におけるプログラム分析装置2は、図1に示した実施の形態1におけるプログラム分析装置1と異なり、正規表現生成処理部80を備えている。それ以外の点では、本実施の形態2におけるプログラム分析装置2は、実施の形態1におけるプログラム分析装置1と同様に構成されている。正規表現生成処理部80は、プログラムソースファイルの行毎に、当該行に含まれる関数の前後に位置する文字列を抽出し、抽出した文字列を用いて、正規表現付加部10で関数に付加する正規表現を作成する。具体的には、図7に示すように、正規表現生成処理部80は、代表ソースファイル読込部81と、文字列パターン分析部82と、正規表現生成部83と、代表ソースファイル展開部84と、文字列パターン格納部85とを備えている。代表ソースファイル読込部81は、検索対象となるプログラムソースファイルを格納しているソースファイル格納部63から、代表となる1又は2以上のプログラムソースファイルを読み込み、読み込んだプログラムソースファイルを代表ソースファイル展開部84に展開する。文字列パターン分析部82は、展開されたプログラムソースファイルを1行ずつ分析して、関数の前後にある文字列パターン、例えば、空白の個数、等の記号の有無、などを特定し、特定した文字列パターンを、文字列パターン格納部85に格納する。このとき、文字列パターン分析部82は、同じ文字列パターンが重複して格納されないようにする。正規表現生成部83は、文字列パターン格納部85に格納されている文字列パターンを用いて、正規表現を作成し、これをリストの形式図4参照で、正規表現格納部62に出力する。[装置動作]次に、本発明の実施の形態2におけるプログラム分析装置2の動作について図8を用いて説明する。図8は、本発明の実施の形態2におけるプログラム分析装置の正規表現生成処理時の動作を示すフロー図である。なお、本実施の形態2においては、検索処理及び排除処理は、実施の形態1と同様に実行されるので、説明を省略する。また、本実施の形態2においても、プログラム分析装置2を動作させることによって、プログラム分析方法が実施される。よって、本実施の形態2におけるプログラム分析方法の説明も、以下のプログラム分析装置2の動作説明に代える。図8に示すように、まず、代表ソースファイル読込部81が、ソースファイル格納部63から、代表となる1又は2以上のプログラムソースファイルを読み込み、これを代表ソースファイル展開部84に展開するステップC1。次に、文字列パターン分析部82が、展開されたプログラムソースファイルを1行ずつ分析して、関数の前後にある文字列パターンを特定し、これを文字列パターン格納部85に格納するステップC2。次に、正規表現生成部83が、ステップC2で生成された文字列パターンを用いて、正規表現を作成するステップC3。その後、正規表現生成部83は、作成した正規表現を用いて正規表現のリストを作成し、作成したリストを正規表現格納部62に出力するステップC3。また、本実施の形態2におけるプログラムは、コンピュータに、図2に示すステップA1~A4、図3に示すステップB1~B4、更に、図8に示すステップC1~C4を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態2におけるプログラム分析装置2とプログラム分析方法とを実現することができる。この場合、コンピュータのCPUCentralProcessingUnitは、正規表現付加部10、ソースファイル検索部20、抽出結果ファイル出力部30、文字列排除部40、及び最終抽出結果ファイル出力部50、代表ソースファイル読込部81、文字列パターン分析部82、及び正規表現生成部83として機能し、処理を行なう。更に、本実施の形態2では、コンピュータに備えられたハードディスク等の記憶装置が、関数格納部61、正規表現格納部62、ソースファイル格納部63、検索文字列格納部64、抽出結果格納部65、抽出結果ファイル格納部66、排除用正規表現格納部71、排除文字列格納部72、最終抽出結果格納部73、最終抽出結果ファイル格納部74、代表ソースファイル展開部84、及び文字列パターン格納部85として機能する。以上のように本実施の形態2によれば、用意されているプログラムソースファイルを用いて、正規表現を作成することができるので、関数の抽出精度をより高める事が可能となる。また、本実施の形態2を用いた場合も、実施の形態1と同様の効果を得ることができる。実施の形態3次に、本発明の実施の形態3におけるプログラム分析装置、プログラム分析方法、及びプログラムについて、図9~図11を参照しながら説明する。[装置構成]最初に、本実施の形態3におけるプログラム分析装置3の構成について図9及び図10を用いて説明する。図9は、本発明の実施の形態3におけるプログラム分析装置の構成を示すブロック図である。図10は、図9に示した関数置換部の構成を具体的に示すブロック図である。図9に示すように、本実施の形態3におけるプログラム分析装置2は、図1に示した実施の形態1におけるプログラム分析装置1と異なり、関数置換部90を備えている。それ以外の点では、本実施の形態3におけるプログラム分析装置3は、実施の形態1におけるプログラム分析装置1と同様に構成されている。関数置換部90は、まず、特定の関数と抽出結果ファイル図4参照とを対比して、特定の関数を含む検索文字列を特定する。そして、関数置換部90は、特定した検索文字列を含むプログラムソースファイルの識別子、及び特定した検索文字列が記述された行の番号に基づいて、特定した検索文字列を含むプログラムソースファイル中の特定の関数を、他の関数に置き換える。具体的には、図10に示すように、関数置換部90は、置換対象関数読込部91と、抽出結果ファイル読込部92と、ソースファイル置換部93と、置換済みソースファイル出力部94と、置換対象関数格納部95と、抽出結果ファイル展開部96と、置換済みソースファイル格納部97とを備えている。置換対象関数格納部95は、置き換え元の関数と置き換え先の関数とが一対一となった関数セットを格納している。置換対象関数読込部91は、置換対象関数格納部95から、関数セットを1セット読み込み、これを抽出結果ファイル読込部92に引き渡す。抽出結果ファイル読込部92は、関数セットを参照して、抽出結果ファイル格納部66から、置き換え元の関数を検索文字列として得られた抽出結果ファイルを読み込み、これを、抽出結果ファイル展開部96に展開する。このとき、読み込まれる抽出結果ファイルは、1つに限定されず、2以上であっても良い。ソースファイル置換部93は、抽出結果展開部96に展開されている抽出結果ファイルから、検索対象となったプログラムソースファイルを特定し、その名称を読み取る。また、名称が読み取られたプログラムソースファイルが関数置換の対象となるので、ソースファイル置換部93は、このプログラムソースファイルを、ソースファイル格納部63から読み取る。ソースファイル置換部93は、抽出結果ファイルに基づいて、読み取ったプログラムソースファイル内の置き換え元の関数を特定し、これを、置き換え先の関数に置換して、置換済みプログラムソースファイルを生成する。また、ソースファイル置換部93は、生成した置換済みプログラムソースファイルを、置換済みソースファイル格納部97に格納する。置換済みソースファイル出力部94は、置換済みソースファイル格納部97に格納されている置換済みプログラムソースファイルを、ソースファイル格納部63に出力する。これにより、ソースファイル格納部63は、特定の関数が別の関数に置換されたプログラムソースファイルを格納することになる。[装置動作]次に、本発明の実施の形態3におけるプログラム分析装置3の動作について図11を用いて説明する。図11は、本発明の実施の形態3におけるプログラム分析装置の関数置換処理時の動作を示すフロー図である。なお、本実施の形態3においては、検索処理及び排除処理は、実施の形態1と同様に実行されるので、説明を省略する。また、本実施の形態3においても、プログラム分析装置3を動作させることによって、プログラム分析方法が実施される。よって、本実施の形態3におけるプログラム分析方法の説明も、以下のプログラム分析装置3の動作説明に代える。図11に示すように、まず、置換対象関数読込部91が、置換対象関数格納部95から、関数セットを1セット読み込むステップD1。次に、抽出結果ファイル読込部92が、関数セットを参照して、抽出結果ファイル格納部66から、置き換え元の関数を検索文字列として得られた抽出結果ファイルを読み込むステップD2。ステップD2において、読み込まれた抽出結果ファイルは、抽出結果ファイル展開部96に展開される。次に、ソースファイル置換部93が、展開されている抽出結果ファイルに基づいて、ソースファイル格納部63から、関数置換の対象となるプログラムソースファイルを読み取るステップD3。次に、ソースファイル置換部93が、抽出結果ファイルに基づいて、読み取ったプログラムソースファイル内の置き換え元の関数を、置き換え先の関数に置換して、置換済みプログラムソースファイルを生成するステップD4。その後、置換済みソースファイル出力部94が、ステップD4で作成された置換済みプログラムソースファイルを、ソースファイル格納部63に出力するステップD5。これにより、関数置換処理は終了する。但し、ステップD3~D5は、抽出結果ファイル展開部96に展開されているプログラムソースファイルの数だけ、繰り返し実行される。また、本実施の形態3におけるプログラムは、コンピュータに、図2に示すステップA1~A4、図3に示すステップB1~B4、更に、図11に示すステップD1~D5を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態3におけるプログラム分析装置3とプログラム分析方法とを実現することができる。この場合、コンピュータのCPUCentralProcessingUnitは、正規表現付加部10、ソースファイル検索部20、抽出結果ファイル出力部30、文字列排除部40、及び最終抽出結果ファイル出力部50、置換対象関数読込部91、抽出結果ファイル読込部92、ソースファイル置換部93、及び置換済みソースファイル出力部94として機能し、処理を行なう。更に、本実施の形態3では、コンピュータに備えられたハードディスク等の記憶装置が、関数格納部61、正規表現格納部62、ソースファイル格納部63、検索文字列格納部64、抽出結果格納部65、抽出結果ファイル格納部66、排除用正規表現格納部71、排除文字列格納部72、最終抽出結果格納部73、最終抽出結果ファイル格納部74、置換対象関数格納部95、抽出結果ファイル展開部96、及び置換済みソースファイル格納部97として機能する。以上のように、本実施の形態3では、抽出結果ファイルから、プログラムソースファイルで使用されている関数の行と位置とを特定できることを利用して、対象となる関数文字列を書き換えることができる。本実施の形態3によれば、関数の自動置換、対象となる関数の引数の自動置換が可能となる。また、本実施の形態3を用いた場合も、実施の形態1と同様の効果を得ることができる。ここで、実施の形態1~3におけるプログラムを実行することによって、プログラム分析装置を実現するコンピュータについて図12を用いて説明する。図12は、本発明の実施の形態1~3におけるプログラム分析装置を実現するコンピュータの一例を示すブロック図である。図12に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。CPU111は、記憶装置113に格納された、本実施の形態におけるプログラムコードをメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAMDynamicRandomAccessMemory等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。また、記憶装置113の具体例としては、ハードディスクの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。また、記録媒体120の具体例としては、CFCompactFlash及びSDSecureDigital等の汎用的な半導体記憶デバイス、フレキシブルディスクFlexibleDisk等の磁気記憶媒体、又はCD-ROMCompactDiskReadOnlyMemoryなどの光学記憶媒体が挙げられる。上述した実施の形態の一部又は全部は、以下に記載する付記1~付記18によって表現することができるが、以下の記載に限定されるものではない。付記1プログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、正規表現付加部と、前記プログラムソースファイルに対して、前記正規表現付加部によって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ソースファイル検索部と、抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記ソースファイル検索部による抽出の結果から、前記排除文字列に該当する箇所を排除する、文字列排除部と、を備えている、ことを特徴とするプログラム分析装置。付記2前記プログラムソースファイルの行毎に、当該行に含まれる関数の前後に位置する文字列を抽出し、抽出した前記文字列を用いて、前記抽出の対象となる関数に付加する正規表現を作成する、正規表現生成処理部を更に備えている、付記1に記載のプログラム分析装置。付記3前記ソースファイル検索部が、前記抽出の結果として、前記検索文字列、前記検索文字列を含むプログラムソースファイルの識別子、及び前記検索文字列が記述された行の番号を特定する情報を出力する、付記1または2に記載のプログラム分析装置。付記4前記文字列排除部が、前記排除文字列と前記抽出の結果とを対比して、前記排除文字列に一致している前記検索文字列を特定し、前記抽出の結果から、前記一致している前記検索文字列、前記一致している前記検索文字列を含むプログラムソースファイルの識別子、及び前記一致している前記検索文字列が記述された行の番号を排除する、付記3に記載のプログラム分析装置。付記5前記文字列排除部によって前記排除文字列に該当する箇所が排除された前記抽出の結果に基づいて、前記プログラムソースファイル毎に、当該プログラムソースファイルに存在している関数及びその数を特定するデータを作成し、作成した前記データを出力する、出力部を更に備えている、付記4に記載のプログラム分析装置。付記6特定の関数と前記抽出の結果とを対比して、前記特定の関数を含む前記検索文字列を特定し、特定した前記検索文字列を含むプログラムソースファイルの識別子、及び特定した前記検索文字列が記述された行の番号に基づいて、特定した前記検索文字列を含むプログラムソースファイル中の前記特定の関数を、他の関数に置き換える、関数置換部を更に備えている、付記3~5のいずれかに記載のプログラム分析装置。付記7aプログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、ステップと、b前記プログラムソースファイルに対して、前記aのステップによって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ステップと、c抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記bのステップによる抽出の結果から、前記排除文字列に該当する箇所を排除する、ステップと、を有する、ことを特徴とするプログラム分析方法。付記8d前記プログラムソースファイルの行毎に、当該行に含まれる関数の前後に位置する文字列を抽出し、抽出した前記文字列を用いて、前記抽出の対象となる関数に付加する正規表現を作成する、ステップを更に有する、付記7に記載のプログラム分析方法。付記9前記bのステップで、前記抽出の結果として、前記検索文字列、前記検索文字列を含むプログラムソースファイルの識別子、及び前記検索文字列が記述された行の番号を特定する情報を出力する、付記7または8に記載のプログラム分析方法。付記10前記cのステップで、前記排除文字列と前記抽出の結果とを対比して、前記排除文字列に一致している前記検索文字列を特定し、前記抽出の結果から、前記一致している前記検索文字列、前記一致している前記検索文字列を含むプログラムソースファイルの識別子、及び前記一致している前記検索文字列が記述された行の番号を排除する、付記9に記載のプログラム分析方法。付記11e前記cのステップによって前記排除文字列に該当する箇所が排除された前記抽出の結果に基づいて、前記プログラムソースファイル毎に、当該プログラムソースファイルに存在している関数及びその数を特定するデータを作成し、作成した前記データを出力する、ステップを更に有する、付記10に記載のプログラム分析方法。付記12f特定の関数と前記抽出の結果とを対比して、前記特定の関数を含む前記検索文字列を特定し、特定した前記検索文字列を含むプログラムソースファイルの識別子、及び特定した前記検索文字列が記述された行の番号に基づいて、特定した前記検索文字列を含むプログラムソースファイル中の前記特定の関数を、他の関数に置き換える、ステップを更に有する、付記9~11のいずれかに記載のプログラム分析方法。付記13コンピュータに、aプログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、ステップと、b前記プログラムソースファイルに対して、前記aのステップによって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ステップと、c抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記bのステップによる抽出の結果から、前記排除文字列に該当する箇所を排除する、ステップと、を実行させるプログラム。付記14d前記プログラムソースファイルの行毎に、当該行に含まれる関数の前後に位置する文字列を抽出し、抽出した前記文字列を用いて、前記抽出の対象となる関数に付加する正規表現を作成する、ステップを更に前記コンピュータに実行させる、付記13に記載のプログラム。付記15前記bのステップで、前記抽出の結果として、前記検索文字列、前記検索文字列を含むプログラムソースファイルの識別子、及び前記検索文字列が記述された行の番号を特定する情報を出力する、付記13または14に記載のプログラム。付記16前記cのステップで、前記排除文字列と前記抽出の結果とを対比して、前記排除文字列に一致している前記検索文字列を特定し、前記抽出の結果から、前記一致している前記検索文字列、前記一致している前記検索文字列を含むプログラムソースファイルの識別子、及び前記一致している前記検索文字列が記述された行の番号を排除する、付記15に記載のプログラム。付記17e前記cのステップによって前記排除文字列に該当する箇所が排除された前記抽出の結果に基づいて、前記プログラムソースファイル毎に、当該プログラムソースファイルに存在している関数及びその数を特定するデータを作成し、作成した前記データを出力する、ステップを更に前記コンピュータに実行させる、付記16に記載のプログラム。付記18f特定の関数と前記抽出の結果とを対比して、前記特定の関数を含む前記検索文字列を特定し、特定した前記検索文字列を含むプログラムソースファイルの識別子、及び特定した前記検索文字列が記述された行の番号に基づいて、特定した前記検索文字列を含むプログラムソースファイル中の前記特定の関数を、他の関数に置き換える、ステップを更に前記コンピュータに実行させる、付記15~17のいずれかに記載のプログラム。