説明

プログラム分析装置、プログラム分析方法、及びプログラム

【課題】プログラムソースファイルから関数を抽出する際の抽出精度の向上を図り得る、プログラム分析装置、プログラム分析方法、及びプログラムを提供する。
【解決手段】プログラム分析装置1を用いる。プログラム分析装置1は、プログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、正規表現付加部10と、プログラムソースファイルに対して、検索文字列を用いて検索を行い、検索文字列を抽出する、ソースファイル検索部20と、関数に別の排除用の正規表現の文字列を付加して、排除文字列を作成し、ソースファイル検索部20による抽出の結果から、排除文字列に該当する箇所を排除する、文字列排除部40とを備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラムソースファイルの分析を行なうための、プログラム分析装置、プログラム分析方法、及びこれらを実現するためのプログラムに関する。
【背景技術】
【0002】
一般に、ソフトウェア開発においては、プログラムの欠陥(バグ)の検出、及び新規のプログラムの作成等のため、プログラムソースファイルの分析を行うことが必要となる場合がある。プログラムソースの分析は、例えば、プログラム言語に用意されている文字列検索コマンドに、対象となる関数名を順番に読み込ませ、プログラムソースファイルから、使用されている関数を抽出することによって行なわれている。
【0003】
具体的には、特許文献1は、入力された検索クエリに基づいて、知識データベースを参照しながら、データベースに登録されているプログラムソースファイルを検索するシステムを開示している。知識データベースには、抽出の対象となるソースコードに直接的又は間接的に関連する情報、例えば、プログラムに含まれていたバグに関する情報、変数の依存関係に関する情報等が格納されている。特許文献1に開示されたシステムでは、知識データベースを参照して検索が実行されるので、抽出精度の向上が図られると考えられる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−117280号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、プログラムソースファイルから、直接、文字列検索コマンドによって関数名文字列の検索を行なった場合は、目的の関数の抽出精度が低くなる場合がある。例えば、「コメント部分の関数名が抽出された場合」、「文字列の中に抽出したい関数名と同じ文字の並びがあり、この文字列が誤って抽出された場合("111"を抽出したいが、"abc111efg"が抽出されてしまった場合)」等である。
【0006】
これに対して、特許文献1に開示されたシステムでは、上述したように、知識データベースを参照して検索が実行されるので、文字列検索コマンドのみを用いて検索を行なう場合に比べて、抽出精度の向上は図られると考えられる。
【0007】
しかしながら、特許文献1に開示されたシステムでは、抽出精度は、知識データベースに登録されている情報の内容に大きく影響されるので、知識データベースの完成度が低い場合は、誤った関数名が抽出されることがある。更に、誤った関数名が抽出された場合は、誤った関数名もそのまま出力されてしまう。このため、特許文献1に開示されたシステムであっても、依然、抽出精度が低くなる可能性が残っている。
【0008】
本発明の目的の一例は、上記問題を解消し、プログラムソースファイルから関数を抽出する際の抽出精度の向上を図り得る、プログラム分析装置、プログラム分析方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本発明の一側面におけるプログラム分析装置は、
プログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、正規表現付加部と、
前記プログラムソースファイルに対して、前記正規表現付加部によって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ソースファイル検索部と、
抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記ソースファイル検索部による抽出の結果から、前記排除文字列に該当する箇所を排除する、文字列排除部と、
を備えている、ことを特徴とする。
【0010】
また、上記目的を達成するため、本発明の一側面におけるプログラム分析方法は、
(a)プログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、ステップと、
(b)前記プログラムソースファイルに対して、前記(a)のステップによって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ステップと、
(c)抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記(b)のステップによる抽出の結果から、前記排除文字列に該当する箇所を排除する、ステップと、
を有する、ことを特徴とする。
【0011】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、
コンピュータに、
(a)プログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、ステップと、
(b)前記プログラムソースファイルに対して、前記(a)のステップによって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ステップと、
(c)抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記(b)のステップによる抽出の結果から、前記排除文字列に該当する箇所を排除する、ステップと、
を実行させることを特徴とする。
【発明の効果】
【0012】
以上のように本発明によれば、プログラムソースファイルから関数を抽出する際の抽出精度の向上を図ることができる。
【図面の簡単な説明】
【0013】
【図1】図1は、本発明の実施の形態1におけるプログラム分析装置の構成を示すブロック図である。
【図2】図2は、本発明の実施の形態1におけるプログラム分析装置の検索処理時の動作を示すフロー図である。
【図3】図3は、本発明の実施の形態1におけるプログラム分析装置の排除処理時の動作を示すフロー図である。
【図4】図4は、本実施の形態1におけるプログラム分析装置の検索処理時の具体的動作を説明するための図である。
【図5】図5は、本実施の形態1におけるプログラム分析装置の排除処理時の具体的動作を説明するための図である。
【図6】図6は、本発明の実施の形態2におけるプログラム分析装置の構成を示すブロック図である。
【図7】図7は、図6に示した正規表現生成処理部の構成を具体的に示すブロック図である。
【図8】図8は、本発明の実施の形態2におけるプログラム分析装置の正規表現生成処理時の動作を示すフロー図である。
【図9】図9は、本発明の実施の形態3におけるプログラム分析装置の構成を示すブロック図である。
【図10】図10は、図9に示した関数置換部の構成を具体的に示すブロック図である。
【図11】図11は、本発明の実施の形態3におけるプログラム分析装置の関数置換処理時の動作を示すフロー図である。
【図12】図12は、本発明の実施の形態1〜3におけるプログラム分析装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【0014】
(実施の形態1)
以下、本発明の実施の形態1における、プログラム分析装置、プログラム分析方法、及びプログラムについて、図1〜図5を参照しながら説明する。
【0015】
[装置構成]
最初に、本実施の形態1におけるプログラム分析装置1の構成について図1を用いて説明する。図1は、本発明の実施の形態1におけるプログラム分析装置の構成を示すブロック図である。
【0016】
図1に示す本実施の形態1におけるプログラム分析装置1は、プログラムソースファイルから、そこで使用されている関数を抽出して、プログラムソースファイルの分析を行なう装置である。図1に示すように、プログラム分析装置1は、主に、正規表現付加部10と、ソースファイル検索部20と、文字列排除部40とを備えている。
【0017】
このうち、正規表現付加部10は、プログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する。また、ソースファイル検索部20は、プログラムソースファイルに対して、正規表現付加部10によって作成された検索文字列を用いて、検索を行い、プログラムソースファイルから検索文字列を抽出する。
【0018】
また、文字列排除部40は、まず、抽出の対象となる関数、又はこの関数とは別の関数に、上述の正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成する。次に、文字列排除部40は、ソースファイル検索部20による抽出の結果から、排除文字列に該当する箇所を排除する。
【0019】
このように、プログラム分析装置1は、正規表現を用いて作成した検索文字列を用いることで、確実に抽出対象となった関数を抽出する。そして、抽出された関数の中に、誤って抽出された関数が含まれていても、プログラム分析装置1は、これらを、排除文字列を用いて排除する。このため、プログラム分析装置1によれば、プログラムソースファイルから関数を抽出する際の抽出精度の向上が図られる。
【0020】
ここで、本実施の形態1におけるプログラム分析装置1の構成を更に具体的に説明する。図1に示すように、本実施の形態1では、プログラム分析装置1は、上述の正規表現付加部10、ソースファイル検索部20、及び文字列排除部40に加え、抽出結果ファイル出力部30と、最終抽出結果ファイル出力部50とを備えている。
【0021】
更に、プログラム分析装置1は、各部による処理によって得られた情報を格納するために、関数格納部61と、正規表現格納部62と、ソースファイル格納部63と、検索文字列格納部64と、抽出結果格納部65と、抽出結果ファイル格納部66と、排除用正規表現格納部71と、排除文字列格納部72と、最終抽出結果格納部73と、最終抽出結果ファイル格納部74とを備えている。
【0022】
また、本実施の形態1では、正規表現付加部10は、関数読込部11と、正規表現読込部12とを備えている。関数読込部11は、検索に用いられる関数のリストを格納している関数格納部61から、検索の対象となる任意の関数(以下「検索関数」と表記する。)を選択し、選択した関数の名称を正規表現読込部12に引き渡す。
【0023】
正規表現読込部12は、正規表現のリストを格納している正規表現格納部62から、正規表現を読み込み、これを検索関数の名称の前後に付与して、検索文字列を作成する。また、正規表現読込部12は、作成した検索文字列を、検索文字列格納部64に格納する。このとき、正規表現読込部12は、複数パターンの検査文字列を作成することができる。また、本実施の形態1では、後述する実施の形態2とは異なり、使用される正規表現は、予め、開発者によって作成され、正規表現格納部62に格納されている。
【0024】
ソースファイル検索部20は、本実施の形態1では、まず、検索文字列格納部64から、検索に用いる検索文字列を読み込み、更に、ソースファイル格納部63が格納しているプログラムソースファイルを読み込む。なお、本実施の形態1において、プログラムソースファイルは、C言語で記述されている。また、ソースファイル格納部63は、予め、複数個のプログラムソースファイルを格納している。
【0025】
そして、ソースファイル検索部20は、1のプログラムソースファイル毎に、読み込んだ検索文字列を用いて、当該プログラムソースファイルに対して検索を実行する。その後、ソースファイル検索部20は、検索によってヒットした行を抽出し、抽出結果を、抽出結果格納部65に格納する。具体的には、ソースファイル検索部20は、抽出結果として、検索文字列、検索文字列を含むプログラムソースファイルの識別子、及び検索文字列が記述された行の番号を特定する情報を、抽出結果格納部65に出力する。
【0026】
また、ソースファイル検索部20は、複数の検索文字列が作成されている場合は、検索文字列毎に、ソースファイル格納部63に格納されている全プログラムソースファイルを検索する。そして、ソースファイル検索部20は、検索文字列毎に、全プログラムソースファイルからの抽出結果を、抽出結果格納部65に格納する。
【0027】
抽出結果ファイル出力部30は、抽出結果格納部65に格納されている抽出結果を読み込み、読み込んだ抽出結果を、予め設定されたファイル形式に変換して、抽出結果ファイルとする。また、抽出結果ファイル出力部30は、抽出結果ファイルを、抽出結果ファイル格納部66に出力する。
【0028】
また、文字列排除部40は、排除関数読込部41と、排除用正規表現読込部42と、排除処理部43とを備えている。排除関数読込部41は、誤抽出された関数を排除するため、関数格納部61に格納されている関数のリストから、任意の関数(以下「排除関数」と表記する。)を選択し、選択した排除関数の名称を排除用正規表現読込部42に引き渡す。
【0029】
このとき、抽出結果から誤抽出の関数を排除する点からは、本実施の形態1では、検索関数として選択された関数が、全て、排除関数としても選択される。また、排除関数は、関数格納部61に格納されている関数のリスト以外のリストに予め用意されていても良く、この場合は、このリストから選択される。
【0030】
排除用正規表現読込部42は、排除用の正規表現のリストを格納している排除用正規表現格納部71から、排除用正規表現を読み込み、これを排除関数の名称の前後に付与して、排除文字列を作成する。このとき、排除用正規表現読込部42は、選択された排除関数毎に、全排除用正規表現を用いて、排除文字列を作成する。
【0031】
また、排除用正規表現読込部42は、作成した排除文字列を、排除文字列格納部72に格納する。本実施の形態1では、排除用の正規表現も、予め、開発者によって作成され、排除用正規表現格納部71に格納されている。
【0032】
排除処理部43は、まず、抽出結果ファイル格納部66から、抽出結果ファイルを読み込み、更に、排除文字列格納部72から排除文字列を読み込む。そして、排除処理部43は、抽出結果ファイルに対して、排除文字列を用いて検索を実行し、ヒットした行を抽出結果ファイルから取り除く。
【0033】
具体的には、排除処理部43は、排除文字列と抽出結果ファイルとを対比して、排除文字列に一致している検索文字列を特定する。そして、排除処理部43は、抽出結果ファイルから、一致している検索文字列、一致している検索文字列を含むプログラムソースファイルの識別子、及び一致している検索文字列が記述された行の番号を排除する。
【0034】
また、排除処理部43は、排除文字列格納部72に格納されている全ての排除文字列を用いて、抽出結果ファイル格納部66に格納されている全抽出結果ファイルを対象として、上記の検索及び排除を実行する。そして、排除処理部43は、排除文字列の排除された抽出結果ファイルを、最終抽出結果として、最終抽出結果格納部73に格納する。
【0035】
最終抽出結果ファイル出力部50は、最終抽出結果格納部73から最終抽出結果を読み込み、読み込んだ最終抽出結果を、設定されたファイル形式に変換して、最終抽出結果ファイルとする。また、最終抽出結果ファイル出力部50は、最終抽出結果ファイルを、最終抽出結果ファイル格納部74に出力する。
【0036】
具体的には、最終抽出結果ファイル出力部50は、最終抽出結果に基づいて、プログラムソースファイル毎に、各プログラムソースファイルに存在している関数及びその数を特定するデータを作成し、作成したデータを、最終抽出結果ファイルとして出力する。
【0037】
[装置動作]
次に、本発明の実施の形態1におけるプログラム分析装置1の動作について図2及び図3を用いて説明する。また、本実施の形態1では、プログラム分析装置1を動作させることによって、プログラム分析方法が実施される。よって、本実施の形態1におけるプログラム分析方法の説明は、以下のプログラム分析装置1の動作説明に代える。
【0038】
最初に、図2を用いて、プログラム分析装置における検索処理について説明する。図2は、本発明の実施の形態1におけるプログラム分析装置の検索処理時の動作を示すフロー図である。
【0039】
図2に示すように、まず、関数読込部11が、関数格納部61から検索の対象となる検索関数を選択し、選択した関数の名称を正規表現読込部12に引き渡す(ステップA1)。
【0040】
次に、正規表現読込部12は、正規表現格納部62から正規表現を読み込み、これを検索関数の名称の前後に付与して、検索文字列を作成する(ステップA2)。ステップA2では、正規表現読込部12は、作成した検索文字列を、検索文字列格納部64に格納する。
【0041】
次に、ソースファイル検索部20は、ソースファイル格納部63から読み込んだプログラムソースファイル毎に、検索文字列格納部64から読み込んだ検索文字列を用いて、当該プログラムソースファイルに対して検索を実行する(ステップA3)。ステップA3では、ソースファイル検索部20は、更に、検索によってヒットした行を抽出し、抽出結果を、抽出結果格納部65に格納する。
【0042】
次に、抽出結果ファイル出力部30は、ステップA3で抽出結果格納部65に格納された抽出結果を読み込み、読み込んだ抽出結果から抽出結果ファイルを作成し、これを抽出結果ファイル格納部66に出力する(ステップA4)。
【0043】
以上のステップA1〜A4の実行により、検索処理が終了する。また、本実施の形態1では、ステップA1〜A4は、関数格納部61に格納されている全ての関数について繰り返し実行される。
【0044】
続いて、図3を用いて、プログラム分析装置における排除処理について説明する。図3は、本発明の実施の形態1におけるプログラム分析装置の排除処理時の動作を示すフロー図である。
【0045】
図3に示すように、まず、排除関数読込部41は、関数格納部61に格納されている関数のリストから、任意の排除関数を選択し、選択した排除関数の名称を排除用正規表現読込部42に引き渡す(ステップB1)。
【0046】
次に、排除用正規表現読込部42は、排除用正規表現格納部71から排除用正規表現を読み込み、これを排除関数の名称の前後に付与して、排除文字列を作成する(ステップB2)。また、ステップB2は、選択された排除関数毎に、全排除用正規表現を用いて、実行される。
【0047】
次に、排除処理部43は、抽出結果ファイル格納部66から読み込んだ抽出結果ファイルに対して、排除文字列格納部72から読み込んだ排除文字列を用いて、検索を実行し、ヒットした行を抽出結果ファイルから取り除く(ステップB3)。
【0048】
ステップB3は、排除文字列格納部72に格納されている全ての排除文字列を用いて、抽出結果ファイル格納部66に格納されている全ファイルを対象として、実行される。また、排除処理部43は、排除文字列の排除された抽出結果ファイルを、最終抽出結果として、最終抽出結果格納部73に格納する。
【0049】
次に、最終抽出結果ファイル出力部50は、最終抽出結果格納部73から最終抽出結果を読み込み、読み込んだ最終抽出結果を用いて、最終抽出結果ファイルを作成し、これを、最終抽出結果ファイル格納部74に出力する(ステップB4)。
【0050】
[装置動作:具体例]
ここで、本実施の形態1におけるプログラム分析装置1の動作の具体例を、図4及び図5を用いて説明する。最初に、図4を用いて、正規表現付加部10、ソースファイル検索部20、及び抽出結果ファイル出力部30による検索処理について具体的に説明する。図4は、本実施の形態1におけるプログラム分析装置の検索処理時の具体的動作を説明するための図である。
【0051】
[ステップA1、A2]
図4に示すように、まず、関数読込部11が、関数リスト61aから関数を読み込む。次に、正規表現読込部12が、正規表現リスト62aから正規表現を読み込み、検索関数の名称と正規表現とを組み合わせて、正規表現が付加された検索文字列のリスト64aを作成する。
【0052】
具体的には、図4に示すステップA1及びA2では、各正規表現の”@”マークの部分が、関数リスト61aから取得された関数名に置き換えられている。この置き換えにより、検索文字列が作成されている。
【0053】
[ステップA3]
次に、ソースファイル検索部20は、プログラムソースファイル群63aを構成する全てのソースファイルに対して、プログラムソースファイル・リスト63bと検索文字列リスト64aとを用いて検索を実行する。
【0054】
具体的には、図4に示すステップA3では、ソースファイル検索部20は、プログラムソースファイル毎に、全ての検索文字列について検索を実行する。そして、ソースファイル検索部20は、検索毎に、ソースファイル名、行番号、及びソース本文を抽出し、これらを抽出結果65aとして抽出結果格納部65(図1参照)に格納する。
【0055】
[ステップA4]
次に、抽出結果ファイル出力部30は、抽出結果65aから、重複しているエントリを排除する。その後、抽出結果ファイル出力部30は、抽出結果65aを、予め設定されたファイル形式に変換して、抽出結果ファイル68aを生成し、これを抽出結果ファイル格納部66に出力する。
【0056】
具体的には、検索文字列が複数ある場合(検索文字列リスト64a)、抽出結果65aにおいて、重複しているエントリが存在している場合が考えられる。この場合、抽出結果ファイル出力部30は、抽出結果ファイル格納部66への抽出結果ファイルの出力の前に、重複しているエントリを排除する。図4に示すステップA4では、重複しているエントリには、取り消し線が付されている。
【0057】
そして、まだ、処理が行なわれていない検索関数を用いて、再度、ステップA1〜A4が実行される。ステップA1〜A4は、関数格納部61に格納されている全ての関数について繰り返し実行される。
【0058】
続いて、図5を用いて、文字列排除部40及び最終抽出結果ファイル出力部50による排除処理について具体的に説明する。図5は、本実施の形態1におけるプログラム分析装置の排除処理時の具体的動作を説明するための図である。
【0059】
[ステップB1、B2]
図5に示すように、まず、排除関数読込部41が、関数リスト61aから、排除関数となる関数を読み込む。次に、排除用正規表現読込部42が、排除用正規表現リスト71aから排除用正規表現を読み込み、抽出結果ファイル68aから誤抽出を排除し得る排除文字列を作成する。72aは、排除文字列のリストを示している。
【0060】
具体的には、図5に示すステップB1及びB2では、排除用正規表現の”@”マークの部分が、関数リスト61aから取得された関数名に置き換えられている。この置き換えにより、排除用文字列が作成されている。
【0061】
[ステップB3]
次に、排除処理部43は、抽出結果ファイル群73aを構成する全ての抽出結果ファイルを対象として、誤抽出された行の排除処理を実行する。具体的には、排除処理部43は、排除文字列の種類の数だけ、抽出結果ファイルを対象とする検索を実施して、抽出結果ファイル群68aから誤抽出の行を排除して、最終抽出結果73aを作成する。図5に示すステップB3では、誤抽出の行には、取り消し線が付されている。その後、排除処理部43は、最終抽出結果73aを、最終抽出結果格納部73に格納する。
【0062】
[ステップB4]
次に、最終抽出結果ファイル出力部50は、最終抽出結果73aに対してレイアウト編集を行ない、レイアウト編集後の最終抽出結果を、最終抽出結果ファイル74aとして出力する。図5の例では、最終抽出結果ファイル出力部50は、縦軸が検索関数名、横軸がプログラムソースファイル名とされたテーブルを作成する。また、最終抽出結果ファイル出力部50は、テーブルの各欄には、検索関数毎の各プログラムソースファイルについての使用回数を配置する。
【0063】
そして、まだ、処理が行なわれていない排除関数を用いて、再度、ステップB1〜B4が実行される。ステップB1〜B4は、関数格納部61に格納されている全ての関数について繰り返し実行される。また、ステップB1〜B4が実行される度に、最終抽出結果ファイル74aに、「行」が追加される。
【0064】
また、本実施の形態1におけるプログラムは、コンピュータに、図2に示すステップA1〜A4、図3に示すステップB1〜B4を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態1におけるプログラム分析装置1とプログラム分析方法とを実現することができる。
【0065】
この場合、コンピュータのCPU(Central Processing Unit)は、正規表現付加部10、ソースファイル検索部20、抽出結果ファイル出力部30、文字列排除部40、及び最終抽出結果ファイル出力部50として機能し、処理を行なう。
【0066】
更に、本実施の形態1では、コンピュータに備えられたハードディスク等の記憶装置が、関数格納部61、正規表現格納部62、ソースファイル格納部63、検索文字列格納部64、抽出結果格納部65、抽出結果ファイル格納部66、排除用正規表現格納部71、排除文字列格納部72、最終抽出結果格納部73、及び最終抽出結果ファイル格納部74として機能する。
【0067】
以上のように本実施の形態1によれば、アプリケーションプログラムで使用されている関数を高精度で抽出して集計可能となる。よって、OS(Operation System)の移行(例えば、UNIX(登録商標)からLinuxへの移行等)、バージョンアップ等において、アプリケーションプログラムの影響範囲(件数、規模)の算出が容易となる。
【0068】
また、本実施の形態1によれば、各関数がどのアプリケーションプログラムで使用されているかを管理することが容易にできるようになるため、ソフトウェア開発、テストでの進捗指標として利用可能となる。更に、本実施の形態1は、検索対象となる関数の条件、及び正規表現の条件を変更することにより、様々なプログラム言語にも適用することができる。
【0069】
(実施の形態2)
次に、本発明の実施の形態2におけるプログラム分析装置、プログラム分析方法、及びプログラムについて、図6〜図8を参照しながら説明する。
【0070】
[装置構成]
最初に、本実施の形態2におけるプログラム分析装置2の構成について図6及び図7を用いて説明する。図6は、本発明の実施の形態2におけるプログラム分析装置の構成を示すブロック図である。図7は、図6に示した正規表現生成処理部の構成を具体的に示すブロック図である。
【0071】
図6に示すように、本実施の形態2におけるプログラム分析装置2は、図1に示した実施の形態1におけるプログラム分析装置1と異なり、正規表現生成処理部80を備えている。それ以外の点では、本実施の形態2におけるプログラム分析装置2は、実施の形態1におけるプログラム分析装置1と同様に構成されている。
【0072】
正規表現生成処理部80は、プログラムソースファイルの行毎に、当該行に含まれる関数の前後に位置する文字列を抽出し、抽出した文字列を用いて、正規表現付加部10で関数に付加する正規表現を作成する。
【0073】
具体的には、図7に示すように、正規表現生成処理部80は、代表ソースファイル読込部81と、文字列パターン分析部82と、正規表現生成部83と、代表ソースファイル展開部84と、文字列パターン格納部85とを備えている。
【0074】
代表ソースファイル読込部81は、検索対象となるプログラムソースファイルを格納しているソースファイル格納部63から、代表となる1又は2以上のプログラムソースファイルを読み込み、読み込んだプログラムソースファイルを代表ソースファイル展開部84に展開する。
【0075】
文字列パターン分析部82は、展開されたプログラムソースファイルを1行ずつ分析して、関数の前後にある文字列パターン、例えば、空白の個数、「(」等の記号の有無、などを特定し、特定した文字列パターンを、文字列パターン格納部85に格納する。このとき、文字列パターン分析部82は、同じ文字列パターンが重複して格納されないようにする。
【0076】
正規表現生成部83は、文字列パターン格納部85に格納されている文字列パターンを用いて、正規表現を作成し、これをリストの形式(図4参照)で、正規表現格納部62に出力する。
【0077】
[装置動作]
次に、本発明の実施の形態2におけるプログラム分析装置2の動作について図8を用いて説明する。図8は、本発明の実施の形態2におけるプログラム分析装置の正規表現生成処理時の動作を示すフロー図である。なお、本実施の形態2においては、検索処理及び排除処理は、実施の形態1と同様に実行されるので、説明を省略する。
【0078】
また、本実施の形態2においても、プログラム分析装置2を動作させることによって、プログラム分析方法が実施される。よって、本実施の形態2におけるプログラム分析方法の説明も、以下のプログラム分析装置2の動作説明に代える。
【0079】
図8に示すように、まず、代表ソースファイル読込部81が、ソースファイル格納部63から、代表となる1又は2以上のプログラムソースファイルを読み込み、これを代表ソースファイル展開部84に展開する(ステップC1)。
【0080】
次に、文字列パターン分析部82が、展開されたプログラムソースファイルを1行ずつ分析して、関数の前後にある文字列パターンを特定し、これを文字列パターン格納部85に格納する(ステップC2)。
【0081】
次に、正規表現生成部83が、ステップC2で生成された文字列パターンを用いて、正規表現を作成する(ステップC3)。その後、正規表現生成部83は、作成した正規表現を用いて正規表現のリストを作成し、作成したリストを正規表現格納部62に出力する(ステップC3)。
【0082】
また、本実施の形態2におけるプログラムは、コンピュータに、図2に示すステップA1〜A4、図3に示すステップB1〜B4、更に、図8に示すステップC1〜C4を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態2におけるプログラム分析装置2とプログラム分析方法とを実現することができる。
【0083】
この場合、コンピュータのCPU(Central Processing Unit)は、正規表現付加部10、ソースファイル検索部20、抽出結果ファイル出力部30、文字列排除部40、及び最終抽出結果ファイル出力部50、代表ソースファイル読込部81、文字列パターン分析部82、及び正規表現生成部83として機能し、処理を行なう。
【0084】
更に、本実施の形態2では、コンピュータに備えられたハードディスク等の記憶装置が、関数格納部61、正規表現格納部62、ソースファイル格納部63、検索文字列格納部64、抽出結果格納部65、抽出結果ファイル格納部66、排除用正規表現格納部71、排除文字列格納部72、最終抽出結果格納部73、最終抽出結果ファイル格納部74、代表ソースファイル展開部84、及び文字列パターン格納部85として機能する。
【0085】
以上のように本実施の形態2によれば、用意されているプログラムソースファイルを用いて、正規表現を作成することができるので、関数の抽出精度をより高める事が可能となる。また、本実施の形態2を用いた場合も、実施の形態1と同様の効果を得ることができる。
【0086】
(実施の形態3)
次に、本発明の実施の形態3におけるプログラム分析装置、プログラム分析方法、及びプログラムについて、図9〜図11を参照しながら説明する。
【0087】
[装置構成]
最初に、本実施の形態3におけるプログラム分析装置3の構成について図9及び図10を用いて説明する。図9は、本発明の実施の形態3におけるプログラム分析装置の構成を示すブロック図である。図10は、図9に示した関数置換部の構成を具体的に示すブロック図である。
【0088】
図9に示すように、本実施の形態3におけるプログラム分析装置2は、図1に示した実施の形態1におけるプログラム分析装置1と異なり、関数置換部90を備えている。それ以外の点では、本実施の形態3におけるプログラム分析装置3は、実施の形態1におけるプログラム分析装置1と同様に構成されている。
【0089】
関数置換部90は、まず、特定の関数と抽出結果ファイル(図4参照)とを対比して、特定の関数を含む検索文字列を特定する。そして、関数置換部90は、特定した検索文字列を含むプログラムソースファイルの識別子、及び特定した検索文字列が記述された行の番号に基づいて、特定した検索文字列を含むプログラムソースファイル中の特定の関数を、他の関数に置き換える。
【0090】
具体的には、図10に示すように、関数置換部90は、置換対象関数読込部91と、抽出結果ファイル読込部92と、ソースファイル置換部93と、置換済みソースファイル出力部94と、置換対象関数格納部95と、抽出結果ファイル展開部96と、置換済みソースファイル格納部97とを備えている。
【0091】
置換対象関数格納部95は、置き換え元の関数と置き換え先の関数とが一対一となった関数セットを格納している。置換対象関数読込部91は、置換対象関数格納部95から、関数セットを1セット読み込み、これを抽出結果ファイル読込部92に引き渡す。
【0092】
抽出結果ファイル読込部92は、関数セットを参照して、抽出結果ファイル格納部66から、置き換え元の関数を検索文字列として得られた抽出結果ファイルを読み込み、これを、抽出結果ファイル展開部96に展開する。このとき、読み込まれる抽出結果ファイルは、1つに限定されず、2以上であっても良い。
【0093】
ソースファイル置換部93は、抽出結果展開部96に展開されている抽出結果ファイルから、検索対象となったプログラムソースファイルを特定し、その名称を読み取る。また、名称が読み取られたプログラムソースファイルが関数置換の対象となるので、ソースファイル置換部93は、このプログラムソースファイルを、ソースファイル格納部63から読み取る。
【0094】
ソースファイル置換部93は、抽出結果ファイルに基づいて、読み取ったプログラムソースファイル内の置き換え元の関数を特定し、これを、置き換え先の関数に置換して、置換済みプログラムソースファイルを生成する。また、ソースファイル置換部93は、生成した置換済みプログラムソースファイルを、置換済みソースファイル格納部97に格納する。
【0095】
置換済みソースファイル出力部94は、置換済みソースファイル格納部97に格納されている置換済みプログラムソースファイルを、ソースファイル格納部63に出力する。これにより、ソースファイル格納部63は、特定の関数が別の関数に置換されたプログラムソースファイルを格納することになる。
【0096】
[装置動作]
次に、本発明の実施の形態3におけるプログラム分析装置3の動作について図11を用いて説明する。図11は、本発明の実施の形態3におけるプログラム分析装置の関数置換処理時の動作を示すフロー図である。なお、本実施の形態3においては、検索処理及び排除処理は、実施の形態1と同様に実行されるので、説明を省略する。
【0097】
また、本実施の形態3においても、プログラム分析装置3を動作させることによって、プログラム分析方法が実施される。よって、本実施の形態3におけるプログラム分析方法の説明も、以下のプログラム分析装置3の動作説明に代える。
【0098】
図11に示すように、まず、置換対象関数読込部91が、置換対象関数格納部95から、関数セットを1セット読み込む(ステップD1)。
【0099】
次に、抽出結果ファイル読込部92が、関数セットを参照して、抽出結果ファイル格納部66から、置き換え元の関数を検索文字列として得られた抽出結果ファイルを読み込む(ステップD2)。ステップD2において、読み込まれた抽出結果ファイルは、抽出結果ファイル展開部96に展開される。
【0100】
次に、ソースファイル置換部93が、展開されている抽出結果ファイルに基づいて、ソースファイル格納部63から、関数置換の対象となるプログラムソースファイルを読み取る(ステップD3)。
【0101】
次に、ソースファイル置換部93が、抽出結果ファイルに基づいて、読み取ったプログラムソースファイル内の置き換え元の関数を、置き換え先の関数に置換して、置換済みプログラムソースファイルを生成する(ステップD4)。
【0102】
その後、置換済みソースファイル出力部94が、ステップD4で作成された置換済みプログラムソースファイルを、ソースファイル格納部63に出力する(ステップD5)。これにより、関数置換処理は終了する。但し、ステップD3〜D5は、抽出結果ファイル展開部96に展開されているプログラムソースファイルの数だけ、繰り返し実行される。
【0103】
また、本実施の形態3におけるプログラムは、コンピュータに、図2に示すステップA1〜A4、図3に示すステップB1〜B4、更に、図11に示すステップD1〜D5を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態3におけるプログラム分析装置3とプログラム分析方法とを実現することができる。
【0104】
この場合、コンピュータのCPU(Central Processing Unit)は、正規表現付加部10、ソースファイル検索部20、抽出結果ファイル出力部30、文字列排除部40、及び最終抽出結果ファイル出力部50、置換対象関数読込部91、抽出結果ファイル読込部92、ソースファイル置換部93、及び置換済みソースファイル出力部94として機能し、処理を行なう。
【0105】
更に、本実施の形態3では、コンピュータに備えられたハードディスク等の記憶装置が、関数格納部61、正規表現格納部62、ソースファイル格納部63、検索文字列格納部64、抽出結果格納部65、抽出結果ファイル格納部66、排除用正規表現格納部71、排除文字列格納部72、最終抽出結果格納部73、最終抽出結果ファイル格納部74、置換対象関数格納部95、抽出結果ファイル展開部96、及び置換済みソースファイル格納部97として機能する。
【0106】
以上のように、本実施の形態3では、抽出結果ファイルから、プログラムソースファイルで使用されている関数の行と位置とを特定できることを利用して、対象となる関数文字列を書き換えることができる。本実施の形態3によれば、関数の自動置換、対象となる関数の引数の自動置換が可能となる。また、本実施の形態3を用いた場合も、実施の形態1と同様の効果を得ることができる。
【0107】
ここで、実施の形態1〜3におけるプログラムを実行することによって、プログラム分析装置を実現するコンピュータについて図12を用いて説明する。図12は、本発明の実施の形態1〜3におけるプログラム分析装置を実現するコンピュータの一例を示すブロック図である。
【0108】
図12に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
【0109】
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
【0110】
また、記憶装置113の具体例としては、ハードディスクの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0111】
また、記録媒体120の具体例としては、CF(Compact Flash)及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記憶媒体、又はCD−ROM(Compact Disk Read Only Memory)などの光学記憶媒体が挙げられる。
【0112】
上述した実施の形態の一部又は全部は、以下に記載する(付記1)〜(付記18)によって表現することができるが、以下の記載に限定されるものではない。
【0113】
(付記1)
プログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、正規表現付加部と、
前記プログラムソースファイルに対して、前記正規表現付加部によって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ソースファイル検索部と、
抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記ソースファイル検索部による抽出の結果から、前記排除文字列に該当する箇所を排除する、文字列排除部と、
を備えている、ことを特徴とするプログラム分析装置。
【0114】
(付記2)
前記プログラムソースファイルの行毎に、当該行に含まれる関数の前後に位置する文字列を抽出し、抽出した前記文字列を用いて、前記抽出の対象となる関数に付加する正規表現を作成する、正規表現生成処理部を更に備えている、
付記1に記載のプログラム分析装置。
【0115】
(付記3)
前記ソースファイル検索部が、前記抽出の結果として、前記検索文字列、前記検索文字列を含むプログラムソースファイルの識別子、及び前記検索文字列が記述された行の番号を特定する情報を出力する、
付記1または2に記載のプログラム分析装置。
【0116】
(付記4)
前記文字列排除部が、前記排除文字列と前記抽出の結果とを対比して、前記排除文字列に一致している前記検索文字列を特定し、前記抽出の結果から、前記一致している前記検索文字列、前記一致している前記検索文字列を含むプログラムソースファイルの識別子、及び前記一致している前記検索文字列が記述された行の番号を排除する、
付記3に記載のプログラム分析装置。
【0117】
(付記5)
前記文字列排除部によって前記排除文字列に該当する箇所が排除された前記抽出の結果に基づいて、前記プログラムソースファイル毎に、当該プログラムソースファイルに存在している関数及びその数を特定するデータを作成し、作成した前記データを出力する、出力部を更に備えている、
付記4に記載のプログラム分析装置。
【0118】
(付記6)
特定の関数と前記抽出の結果とを対比して、前記特定の関数を含む前記検索文字列を特定し、特定した前記検索文字列を含むプログラムソースファイルの識別子、及び特定した前記検索文字列が記述された行の番号に基づいて、特定した前記検索文字列を含むプログラムソースファイル中の前記特定の関数を、他の関数に置き換える、関数置換部を更に備えている、
付記3〜5のいずれかに記載のプログラム分析装置。
【0119】
(付記7)
(a)プログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、ステップと、
(b)前記プログラムソースファイルに対して、前記(a)のステップによって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ステップと、
(c)抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記(b)のステップによる抽出の結果から、前記排除文字列に該当する箇所を排除する、ステップと、
を有する、ことを特徴とするプログラム分析方法。
【0120】
(付記8)
(d)前記プログラムソースファイルの行毎に、当該行に含まれる関数の前後に位置する文字列を抽出し、抽出した前記文字列を用いて、前記抽出の対象となる関数に付加する正規表現を作成する、ステップを更に有する、
付記7に記載のプログラム分析方法。
【0121】
(付記9)
前記(b)のステップで、前記抽出の結果として、前記検索文字列、前記検索文字列を含むプログラムソースファイルの識別子、及び前記検索文字列が記述された行の番号を特定する情報を出力する、
付記7または8に記載のプログラム分析方法。
【0122】
(付記10)
前記(c)のステップで、前記排除文字列と前記抽出の結果とを対比して、前記排除文字列に一致している前記検索文字列を特定し、前記抽出の結果から、前記一致している前記検索文字列、前記一致している前記検索文字列を含むプログラムソースファイルの識別子、及び前記一致している前記検索文字列が記述された行の番号を排除する、
付記9に記載のプログラム分析方法。
【0123】
(付記11)
(e)前記(c)のステップによって前記排除文字列に該当する箇所が排除された前記抽出の結果に基づいて、前記プログラムソースファイル毎に、当該プログラムソースファイルに存在している関数及びその数を特定するデータを作成し、作成した前記データを出力する、ステップを更に有する、
付記10に記載のプログラム分析方法。
【0124】
(付記12)
(f)特定の関数と前記抽出の結果とを対比して、前記特定の関数を含む前記検索文字列を特定し、特定した前記検索文字列を含むプログラムソースファイルの識別子、及び特定した前記検索文字列が記述された行の番号に基づいて、特定した前記検索文字列を含むプログラムソースファイル中の前記特定の関数を、他の関数に置き換える、ステップを更に有する、
付記9〜11のいずれかに記載のプログラム分析方法。
【0125】
(付記13)
コンピュータに、
(a)プログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、ステップと、
(b)前記プログラムソースファイルに対して、前記(a)のステップによって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ステップと、
(c)抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記(b)のステップによる抽出の結果から、前記排除文字列に該当する箇所を排除する、ステップと、
を実行させるプログラム。
【0126】
(付記14)
(d)前記プログラムソースファイルの行毎に、当該行に含まれる関数の前後に位置する文字列を抽出し、抽出した前記文字列を用いて、前記抽出の対象となる関数に付加する正規表現を作成する、ステップを更に前記コンピュータに実行させる、
付記13に記載のプログラム。
【0127】
(付記15)
前記(b)のステップで、前記抽出の結果として、前記検索文字列、前記検索文字列を含むプログラムソースファイルの識別子、及び前記検索文字列が記述された行の番号を特定する情報を出力する、
付記13または14に記載のプログラム。
【0128】
(付記16)
前記(c)のステップで、前記排除文字列と前記抽出の結果とを対比して、前記排除文字列に一致している前記検索文字列を特定し、前記抽出の結果から、前記一致している前記検索文字列、前記一致している前記検索文字列を含むプログラムソースファイルの識別子、及び前記一致している前記検索文字列が記述された行の番号を排除する、
付記15に記載のプログラム。
【0129】
(付記17)
(e)前記(c)のステップによって前記排除文字列に該当する箇所が排除された前記抽出の結果に基づいて、前記プログラムソースファイル毎に、当該プログラムソースファイルに存在している関数及びその数を特定するデータを作成し、作成した前記データを出力する、ステップを更に前記コンピュータに実行させる、
付記16に記載のプログラム。
【0130】
(付記18)
(f)特定の関数と前記抽出の結果とを対比して、前記特定の関数を含む前記検索文字列を特定し、特定した前記検索文字列を含むプログラムソースファイルの識別子、及び特定した前記検索文字列が記述された行の番号に基づいて、特定した前記検索文字列を含むプログラムソースファイル中の前記特定の関数を、他の関数に置き換える、ステップを更に前記コンピュータに実行させる、
付記15〜17のいずれかに記載のプログラム。
【産業上の利用可能性】
【0131】
以上のように本発明によれば、プログラムソースファイルから関数を抽出する際の抽出精度を向上できる。本発明は、ソフトウェアの開発において、プログラムソースファイルの分析が必要となる場合に有用である。
【符号の説明】
【0132】
1 プログラム分析装置(実施の形態1)
2 プログラム分析装置(実施の形態2)
3 プログラム分析装置(実施の形態3)
10 正規表現付加部
20 ソースファイル検索部
30 抽出結果ファイル出力部
40 文字列排除部
50 最終抽出結果ファイル出力部
61 関数格納部
62 正規表現格納部
63 ソースファイル格納部
64 検索文字列格納部
65 抽出結果格納部
66 抽出結果ファイル格納部
71 排除用正規表現格納部
72 排除文字列格納部
73 最終抽出結果格納部
74 最終抽出結果ファイル格納部
80 正規表現生成処理部
81 代表ソースファイル読込部
82 文字列パターン分析部
83 正規表現生成部
84 代表ソースファイル展開部
85 文字列パターン格納部
90 関数置換部
91 置換対象関数読込部
92 抽出結果ファイル読込部
93 ソースファイル置換部
94 置換済みソースファイル出力部
95 置換対象関数格納部
96 抽出結果ファイル展開部
97 置換済みソースファイル格納部
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス

【特許請求の範囲】
【請求項1】
プログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、正規表現付加部と、
前記プログラムソースファイルに対して、前記正規表現付加部によって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ソースファイル検索部と、
抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記ソースファイル検索部による抽出の結果から、前記排除文字列に該当する箇所を排除する、文字列排除部と、
を備えている、ことを特徴とするプログラム分析装置。
【請求項2】
前記プログラムソースファイルの行毎に、当該行に含まれる関数の前後に位置する文字列を抽出し、抽出した前記文字列を用いて、前記抽出の対象となる関数に付加する正規表現を作成する、正規表現生成処理部を更に備えている、
請求項1に記載のプログラム分析装置。
【請求項3】
前記ソースファイル検索部が、前記抽出の結果として、前記検索文字列、前記検索文字列を含むプログラムソースファイルの識別子、及び前記検索文字列が記述された行の番号を特定する情報を出力する、
請求項1または2に記載のプログラム分析装置。
【請求項4】
前記文字列排除部が、前記排除文字列と前記抽出の結果とを対比して、前記排除文字列に一致している前記検索文字列を特定し、前記抽出の結果から、前記一致している前記検索文字列、前記一致している前記検索文字列を含むプログラムソースファイルの識別子、及び前記一致している前記検索文字列が記述された行の番号を排除する、
請求項3に記載のプログラム分析装置。
【請求項5】
前記文字列排除部によって前記排除文字列に該当する箇所が排除された前記抽出の結果に基づいて、前記プログラムソースファイル毎に、当該プログラムソースファイルに存在している関数及びその数を特定するデータを作成し、作成した前記データを出力する、出力部を更に備えている、
請求項4に記載のプログラム分析装置。
【請求項6】
特定の関数と前記抽出の結果とを対比して、前記特定の関数を含む前記検索文字列を特定し、特定した前記検索文字列を含むプログラムソースファイルの識別子、及び特定した前記検索文字列が記述された行の番号に基づいて、特定した前記検索文字列を含むプログラムソースファイル中の前記特定の関数を、他の関数に置き換える、関数置換部を更に備えている、
請求項3〜5のいずれかに記載のプログラム分析装置。
【請求項7】
(a)プログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、ステップと、
(b)前記プログラムソースファイルに対して、前記(a)のステップによって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ステップと、
(c)抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記(b)のステップによる抽出の結果から、前記排除文字列に該当する箇所を排除する、ステップと、
を有する、ことを特徴とするプログラム分析方法。
【請求項8】
コンピュータに、
(a)プログラムソースファイルからの抽出の対象となる関数に、正規表現の文字列を付加して、検索文字列を作成する、ステップと、
(b)前記プログラムソースファイルに対して、前記(a)のステップによって作成された前記検索文字列を用いて検索を行い、前記検索文字列を抽出する、ステップと、
(c)抽出の対象となる前記関数又は前記関数とは別の関数に、前記正規表現とは別の排除用の正規表現の文字列を付加して、排除文字列を作成し、前記(b)のステップによる抽出の結果から、前記排除文字列に該当する箇所を排除する、ステップと、
を実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2013−8304(P2013−8304A)
【公開日】平成25年1月10日(2013.1.10)
【国際特許分類】
【出願番号】特願2011−141953(P2011−141953)
【出願日】平成23年6月27日(2011.6.27)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.COMPACTFLASH
2.Linux
【出願人】(390001395)NECシステムテクノロジー株式会社 (438)
【Fターム(参考)】