JP2012194945A - Management program, management method, and management device - Google Patents
Management program, management method, and management device Download PDFInfo
- Publication number
- JP2012194945A JP2012194945A JP2011060330A JP2011060330A JP2012194945A JP 2012194945 A JP2012194945 A JP 2012194945A JP 2011060330 A JP2011060330 A JP 2011060330A JP 2011060330 A JP2011060330 A JP 2011060330A JP 2012194945 A JP2012194945 A JP 2012194945A
- Authority
- JP
- Japan
- Prior art keywords
- program
- analysis target
- target function
- analysis
- registered
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は,プログラムの管理を行う管理プログラム,管理方法および管理装置に関するものである。 The present invention relates to a management program, a management method, and a management apparatus that manage programs.
プログラム部品を管理し,再利用することで,プログラミングに掛かるコストやバグを削減することが行われている。 By managing and reusing program parts, programming costs and bugs are reduced.
プログラム部品の管理では,プログラム部品の登録や,登録するプログラム部品への索引情報の付与などが,プログラマに一任されることも多い。そのため,プログラム部品の登録時に適切な索引情報が付与されなかったことで後日の検索が難しくなったり,同じようなプログラム部品が異なる索引情報で重複して登録されるなどの問題がある。 In the management of program parts, it is often left to the programmer to register program parts and assign index information to the program parts to be registered. For this reason, there is a problem in that it is difficult to search at a later date because appropriate index information is not given at the time of program part registration, or that similar program parts are registered with different index information.
登録するプログラムに対する索引情報の付与精度を上げるためには,登録時に登録済みプログラムの中から類似するプログラムを検索し,その類似プログラムの索引情報を参照しながら,登録するプログラムに索引情報を付与できるようにすることが望ましい。 To improve the accuracy of index information assignment for registered programs, similar programs can be searched from registered programs at the time of registration, and index information can be assigned to registered programs while referring to the index information of the similar programs. It is desirable to do so.
なお,プロセスモデルを,該プロセスモデルに含まれる参照関数にリンクさせてDBに登録し,検索・再利用を容易にする技術が知られている。 A technique is known in which a process model is linked to a reference function included in the process model and registered in a DB to facilitate retrieval and reuse.
上記のプログラム検索の技術を利用することによって,例えば,登録しようとするプログラムに含まれる標準関数と同じ標準関数を含む登録済みプログラムを,類似プログラムとして検索することは可能である。 By using the program search technique described above, for example, a registered program including the same standard function as the standard function included in the program to be registered can be searched as a similar program.
しかし,上述のプログラム検索の技術では,個々のプログラムに閉じた検索しか行うことができない。多くのプログラムでは,外部の別のプログラムへの呼び出しが行われている。別のプログラムを呼び出しているプログラムが登録されている場合に,この呼び出し対象の別プログラムに含まれる標準関数をも加味した検索を行うことができなければ,精度の高い類似プログラムの検索はできない。 However, with the above-described program search technique, only closed search can be performed for each program. Many programs make calls to other external programs. If a program that calls another program is registered, it is impossible to search for a similar program with high accuracy unless a search that also includes the standard function included in the other program to be called can be performed.
一側面では,本発明は,あるプログラムの類似プログラムを登録されたプログラムから検索する場合において,類似プログラムの検索精度を向上させる技術を提供することを目的とする。 In one aspect, an object of the present invention is to provide a technique for improving the retrieval accuracy of a similar program when a similar program of a program is retrieved from a registered program.
1態様では,開示するプログラムは,コンピュータを,次のように機能させる。 In one aspect, the disclosed program causes a computer to function as follows.
すなわち,前記プログラムは,前記プログラムがインストールされて実行されるコンピュータに,プログラム同士の類似性の判断に用いる所定の分析対象関数が記憶された記憶部を参照して,所定の分析対象関数のうち,処理対象プログラムに含まれる分析対象関数を示す第1の分析対象関数情報を取得し,登録プログラムごとに,該登録プログラムを特定する識別情報と,所定の分析対象関数のうち,該登録プログラムに含まれる分析対象関数を示す第2の分析対象関数情報と,該登録プログラムから識別情報で呼び出される別の登録プログラムに含まれる分析対象関数を示す第3の分析対象関数情報とが対応付けて記憶された記憶部を,第1の分析対象関数情報をもとに検索して,第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,第1の分析対象関数情報と同じ登録プログラムを抽出し,抽出した登録プログラムを,処理対象プログラムに類似するプログラムとして出力する処理を実行させる。 That is, the program refers to a storage unit in which a predetermined analysis target function used for determining similarity between programs is stored in a computer on which the program is installed and executed. The first analysis target function information indicating the analysis target function included in the processing target program is acquired, and for each registration program, the identification information for identifying the registration program and the predetermined analysis target function are stored in the registration program. The second analysis target function information indicating the included analysis target function and the third analysis target function information indicating the analysis target function included in another registration program called by the registration information from the registration program are stored in association with each other. The stored storage unit is searched based on the first analysis target function information, and the second analysis target function information and the third analysis target function information are searched. Analyte function information including extracts the same registration program in the first analysis target function information, the extracted registration program, to execute a process of outputting a similar program to the processing target program.
1態様では,あるプログラムの類似プログラムを登録されたプログラムから検索する場合において,類似プログラムの検索精度が向上する。 In one aspect, when a similar program of a program is searched from registered programs, the search accuracy of the similar program is improved.
以下,本実施の形態について,図を用いて説明する。 Hereinafter, the present embodiment will be described with reference to the drawings.
図1は,本実施の形態によるプログラム管理装置の構成例を示す図である。 FIG. 1 is a diagram showing a configuration example of a program management apparatus according to the present embodiment.
図1に示す本実施の形態のプログラム管理装置10は,例えばプログラムの再利用を目的として,複数のプログラムの登録・管理を行う。
The
本実施の形態のプログラム管理装置10は,プログラム管理装置10に登録済みのプログラムから,これからプログラム管理装置10に登録しようとしているプログラムと類似するプログラムを検索する,類似プログラム検索機能を有する。以下では,プログラム管理装置10に登録済みのプログラムを,登録プログラムと呼ぶ。また,これからプログラム管理装置10に登録しようとしているプログラムを,処理対象プログラムと呼ぶ。
The
図1に示すプログラム管理装置10は,プログラム入力部11,分析部12,抽出部13,出力部14,登録部15,更新部16,分析情報記憶部101,登録プログラム記憶部102,抽出結果記憶部103を備える。図1に示すプログラム管理装置10において,実線の接続は主に制御関係を示し,破線の接続は主にデータの入出力を示す。
1 includes a
プログラム入力部11は,プログラム管理装置10に登録する処理対象プログラムを入力する。入力される処理対象プログラムは,例えば,プログラミング言語で記述されたソースコードである。
The
分析部12は,入力された処理対象プログラムを分析し,その分析結果として,処理対象プログラムに含まれる分析対象関数を示す第1の分析対象関数情報を取得する。分析対象関数としては,例えば,プログラム同士の類似性の判断に用いる関数が設定される。分析対象関数としては,システムコールや,プログラミング言語で標準規格化された標準関数などが考えられる。
The
分析対象関数は,例えば,分析情報記憶部101に記憶されたプログラム分析に関する情報で設定されている。分析情報記憶部101は,所定の分析対象関数を含むプログラム分析に関する情報を記憶する,コンピュータがアクセス可能な記憶部である。分析部12は,処理対象プログラムの分析時に,分析情報記憶部101に記憶された情報を参照して,処理対象プログラムに含まれる分析対象関数を取得する。
The analysis target function is set with information relating to program analysis stored in the analysis
また,分析部12は,処理対象プログラムに登録プログラムを呼び出す識別情報が含まれている場合に,第1の分析対象関数情報を取得するとともに,処理対象プログラムに含まれる識別情報で呼び出される登録プログラムに含まれる分析対象関数を示す第4の分析対象関数情報を取得する。処理対象プログラムに含まれる登録プログラムを呼び出す識別情報は,例えば,処理対象プログラムに含まれるサブ関数の関数名である。例えば,処理対象プログラムに含まれるサブ関数が登録プログラムである場合には,分析部12は,処理対象プログラムに含まれるサブ関数の関数名で,処理対象プログラムから呼び出される登録プログラムを特定できる。分析部12は,登録プログラム記憶部102から特定された登録プログラムの分析結果を得ることで,処理対象プログラムの分析結果に,呼び出される登録プログラムの分析対象関数を含めることができる。
In addition, when the processing target program includes identification information for calling the registration program, the
登録プログラム記憶部102は,登録プログラムに関する情報を記憶する,コンピュータがアクセス可能な記憶部である。例えば,登録プログラム記憶部102は,登録プログラムごとに,該登録プログラムを特定する識別情報と,該登録プログラムに含まれる分析対象関数を示す第2の分析対象関数情報と,該登録プログラムから識別情報で呼び出される別の登録プログラムに含まれる分析対象関数を示す第3の分析対象関数情報とを対応付けて記憶する。登録プログラムを特定する識別情報は,例えば,登録プログラムのメイン関数の関数名である。
The registered
また,登録プログラム記憶部102は,さらに,登録プログラムに,該登録プログラムの索引情報を対応付けて記憶する。索引情報は,ユーザがプログラム管理装置10から目的とする登録プログラムを引き出す際に,ユーザが入力したり,参照したりする情報である。索引情報としては,例えば,ユーザにとってそのプログラムの特徴が分かり易い文例などが望ましい。
The registered
抽出部13は,登録プログラム記憶部102を,処理対象プログラムから取得した第1の分析対象関数情報をもとに検索する。抽出部13は,登録プログラム記憶部102から,第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,第1の分析対象関数情報と同じ登録プログラムを抽出する。抽出部13により抽出された登録プログラムが,処理対象プログラムに類似すると判定されたプログラムである。以下では,処理対象プログラムに類似すると判定されたプログラムを,類似プログラムとも呼ぶ。抽出部13による登録プログラムの抽出結果は,抽出結果記憶部103に記憶される。抽出結果記憶部103は,類似プログラムの抽出結果を記憶する,コンピュータがアクセス可能な記憶部である。
The
また,抽出部13は,登録プログラム記憶部102を検索する際に,重要度が所定以上高い分析対象関数を一致判定の対象として,第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,第1の分析対象関数情報と同じ登録プログラムを抽出するようにしてもよい。
Further, when searching the registered
例えば,分析情報記憶部101では,分析対象関数ごとに重要度が設定されている。分析対象関数の中にも,プログラムの特徴を分析する上で,重要度が高い分析対象関数と重要度が低い分析対象関数とがある。2つのプログラム間で抽出される分析対象関数の一部が一致しなくても,その一致しない分析対象関数の重要度が低い場合には,それらの2つのプログラムが類似すると判定できる場合がある。このように,重要度の基準を変えて,処理対象プログラムの分析結果と登録プログラム分析結果との一致判定を行うことで,類似プログラムの検索精度を向上させることが可能となる。
For example, in the analysis
また,抽出部13は,処理対象プログラムに登録プログラムを呼び出す識別情報が含まれている場合に,登録プログラム記憶部102を,第1の分析対象関数情報および第4の分析対象関数情報を含む分析対象関数情報をもとに検索する。このとき,抽出部13は,登録プログラム記憶部102から,第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,第1の分析対象関数情報および第4の分析対象関数情報を含む分析対象関数情報と同じ登録プログラムを抽出する。
Further, when the processing target program includes identification information for calling the registration program, the
出力部14は,抽出した登録プログラムを,処理対象プログラムに類似するプログラムとして出力する。例えば,出力部14は,ユーザが処理対象プログラムに索引情報を付与してプログラム管理装置10に登録する作業を行うためのプログラム登録画面を,ディスプレイ等の表示装置に表示する。このとき,出力部14は,抽出された類似プログラムの情報を,ユーザが参照できるように,プログラム登録画面に出力する。
The
また,出力部14は,抽出した登録プログラムを処理対象プログラムに類似するプログラムとして出力する際に,さらに抽出した登録プログラムに対応付けられた索引情報を出力する。例えば,出力部14は,プログラム登録画面に抽出された類似プログラムの情報を出力する際に,抽出された類似プログラムに対応付けられた索引情報も,同時にプログラム登録画面に出力する。
Further, when outputting the extracted registration program as a program similar to the processing target program, the
登録部15は,登録プログラム記憶部102に,処理対象プログラムのデータを登録する。例えば,登録部15は,登録する処理対象プログラムに,該処理対象プログラムを特定する識別情報と,該処理対象プログラムに含まれる分析対象関数を示す分析関数情報とを対応付けて,登録プログラム記憶部102に登録する。また,処理対象プログラムに別の登録プログラムを呼び出す識別情報が含まれている場合に,登録部15は,登録する処理対象プログラムに,該処理対象プログラムから識別情報で呼び出される別の登録プログラムに含まれる分析対象関数を示す分析関数情報をも対応付けて,登録プログラム記憶部102に登録する。また,登録部15は,登録する処理対象プログラムに,ユーザに指定された索引情報を対応付けて,登録プログラム記憶部102に登録する。
The
更新部16は,処理対象プログラムの識別情報を含む登録プログラムを,登録プログラム記憶部102から検索する。更新部16は,検索された登録プログラムに処理対象プログラムを関連付けて,登録プログラム記憶部102に記憶する。例えば,登録プログラムに処理対象プログラムの識別情報が含まれている場合,処理対象プログラムは,該登録プログラムのサブ関数となる。このとき,該登録プログラムから呼び出される処理対象プログラムに含まれる分析対象関数を,該登録プログラムの分析結果に含めるために,処理対象プログラムの該登録プログラムへの関連付けを行う。このような更新部16の処理によって,呼び出し対象プログラムの分析対象関数を含む類似プログラム検索の対象を増やすことが可能となる。
The
図2は,本実施の形態によるプログラム管理装置を実現するコンピュータのハードウェア構成例を示す図である。 FIG. 2 is a diagram illustrating a hardware configuration example of a computer that realizes the program management apparatus according to the present embodiment.
図1に示す本実施の形態のプログラム管理装置10は,例えば,CPU(Central Processing Unit )2,主記憶となるメモリ3,記憶装置4,通信装置5,媒体読取・書込装置6,入力装置7,出力装置8等を備えるコンピュータ1によって実現される。記憶装置4は,例えばHDD(Hard Disk Drive )などである。媒体読取・書込装置6は,例えばCD−R(Compact Disc Recordable )ドライブやDVD−R(Digital Versatile Disc Recordable )ドライブなどである。入力装置7は,例えばキーボード・マウスなどである。出力装置8は,例えばディスプレイ等の表示装置などである。
1 includes, for example, a CPU (Central Processing Unit) 2, a
図1に示すプログラム管理装置10およびプログラム管理装置10が備える各機能部は,コンピュータ1が備えるCPU2,メモリ3等のハードウェアと,ソフトウェアプログラムとによって実現することが可能である。コンピュータ1が実行可能なプログラムは,記憶装置4に記憶され,その実行時にメモリ3に読み出され,CPU2により実行される。
The
コンピュータ1は,可搬型記録媒体から直接プログラムを読み取り,そのプログラムに従った処理を実行することもできる。また,コンピュータ1は,サーバコンピュータからプログラムが転送されるごとに,逐次,受け取ったプログラムに従った処理を実行することもできる。さらに,このプログラムは,コンピュータ1で読み取り可能な記録媒体に記録しておくことができる。
The
図3は,本実施の形態による分析情報記憶部が格納するデータの例を示す図である。 FIG. 3 is a diagram illustrating an example of data stored in the analysis information storage unit according to the present embodiment.
図3(A)に示す分析対象関数データ110,図3(B)に示す分析対象外関数データ111は,分析情報記憶部101に記憶されたプログラム分析に関する情報の一例である。
The analysis
図3(A)に示す分析対象関数データ110は,分析部12によるプログラムの分析において,処理対象プログラムから取得する対象となる分析対象関数が設定された情報である。分析対象関数は,例えば,標準関数などである。使用頻度が高く,プログラムを特徴付ける重要な要素となり得るユーザ関数が,分析対象関数に設定されていてもよい。本実施の形態による分析部12は,分析対象関数データ110に記録された分析対象関数を,分析結果として抽出する。
The analysis
図3(A)に示す分析対象関数データ110は,関数ID,関数名,重み値等の情報を持つ。図3(A)に示す分析対象関数データ110において,関数IDは,設定された分析対象関数を一意に識別する識別情報である。関数名は,分析対象関数の関数名を示す。重み値は,分析対象関数の重要度を示す情報である。本実施の形態では,各分析対象関数に対して5段階の重み値が設定されている。ここでは,重み値は,値が大きいほど重要度が高いものとする。重み値1が設定された分析対象関数の重要度は最も低く,重み値5が設定された分析対象関数の重要度は最も高い。
The analysis
図3(B)に示す分析対象外関数データ111は,分析部12によるプログラムの分析において,処理対象プログラムから取得する対象とならない分析対象外関数が設定された情報である。プログラムに含まれる関数の中には,分析結果として抽出することによって,かえってそのプログラムの特徴を失わせてしまう関数がある。本実施の形態による分析部12は,処理対象プログラムに分析対象外関数データ111に記録された分析対象外関数が含まれている場合に,その存在を無視する。
The
図3(B)に示す分析対象外関数データ111は,番号,関数名,プログラム内容等の情報を持つ。図3(B)に示す分析対象外関数データ111において,番号は,分析対象外関数のレコードに付された番号である。関数名は,分析対象外関数の関数名を示す。プログラム内容は,分析対象外関数がユーザ関数である場合において,その分析対象外関数のソースコードを示す。
The
図4,図5は,本実施の形態による登録プログラム記憶部が格納するデータの例を示す図である。 4 and 5 are diagrams showing examples of data stored in the registered program storage unit according to the present embodiment.
図4に示す登録プログラム管理データ120,図5に示す文例管理データ121は,登録プログラム記憶部102に記憶された登録プログラムに関する情報の一例である。
The registration
図4に示す登録プログラム管理データ120は,各登録プログラムのデータを管理する情報である。図4に示す登録プログラム管理データ120は,管理番号,プログラム名,プログラム内容,呼び出し関係,分析結果の情報を持つ。
The registered
図4に示す登録プログラム管理データ120において,管理番号は,各登録プログラムをプログラム管理装置10内部で識別するために付された番号である。
In the registered
図4に示す登録プログラム管理データ120において,プログラム名は,プログラムを識別する識別情報である。本実施の形態では,原則として,登録プログラムのプログラム名に,その登録プログラムのメイン関数の関数名が使用される。これにより,プログラム名を登録プログラムの識別情報として,登録プログラムの呼び出し関係を管理することが可能となる。だだし,特にユーザからプログラム名の指定があった場合には,ユーザに指定されたものをプログラム名とする。例えば,登録プログラムのメイン関数の関数名が,“main”である場合などには,プログラム管理装置10は,ユーザにプログラム名の指定を促す。
In the registered
図4に示す登録プログラム管理データ120において,プログラム内容は,登録プログラムのソースコードを示す。
In the registered
図4に示す登録プログラム管理データ120において,呼び出し関係は,登録プログラムに含まれるサブ関数が別のプログラムの呼び出しを行っている際の呼び出し関係を管理する情報である。図4に示す登録プログラム管理データ120の呼び出し関係では,
「サブ関数の関数名」:「呼び出し対象の登録プログラムの管理番号」
の形式で,登録プログラム間の呼び出し関係が示されている。
In the registered
“Function name of sub-function”: “Management number of registered program to be called”
The call relationship between registered programs is shown in the form
例えば,図4に示す登録プログラム管理データ120において,管理番号#003の登録プログラムのサブ関数sub4は,管理番号#004の登録プログラムのプログラム名,すなわち管理番号#004の登録プログラムのメイン関数の関数名sub4と一致する。このことから,管理番号#004の登録プログラムは,管理番号#003の登録プログラムからの呼び出し対象のプログラムであることがわかる。この関係sub4:#004が,管理番号#003のレコードの呼び出し関係に記録される。なお,「呼び出し対象の登録プログラムの管理番号」がnoneである場合には,そのサブ関数の関数名の登録プログラムがなく,プログラム管理装置10内で呼び出し関係が解決できていないことを示している。
For example, in the registered
登録プログラムのメイン関数で呼び出されるサブ関数が,その登録プログラム内部に存在する場合には,呼び出し関係の情報への記録は行われない。例えば,図4に示す登録プログラム管理データ120において,管理番号#002の登録プログラムのメイン関数では,3つのサブ関数sub1,sub2,sub3の呼び出しが行われている。だだし,そのうちの2つのサブ関数sub1,sub2は,管理番号#002の登録プログラムの内部に存在している。そのため,図4に示す登録プログラム管理データ120における管理番号#002のレコードでは,サブ関数sub1,sub2については,呼び出し関係が記録されていない。
If a subfunction called by the main function of a registered program exists in the registered program, no information is recorded in the call-related information. For example, in the registered
図4に示す登録プログラム管理データ120において,分析結果は,登録プログラムに含まれる分析対象関数の情報である。図4に示す登録プログラム管理データ120の分析結果では,分析対象関数が,図3(A)の分析対象関数データ110における関数IDで示されている。
In the registered
なお,図4に示す登録プログラム管理データ120では,登録プログラムのサブ関数が別の登録プログラムとして存在する場合には,その別の登録プログラムに含まれる分析対象関数も,分析結果に含まれている。例えば,管理番号#003の登録プログラム自身には,分析対象関数が1つも含まれていない。だだし,管理番号#003の登録プログラムのサブ関数sub4,sub5で呼び出される管理番号#004,管理番号#005の登録プログラムには,分析対象関数が含まれている。そのため,図4に示す登録プログラム管理データ120では,管理番号#003の登録プログラムの分析結果に,管理番号#004,管理番号#005の登録プログラムの分析結果における分析対象関数が記録されている。
In the registered
図5に示す文例管理データ121は,文例を索引情報として登録プログラムを管理する情報である。図5に示す文例管理データ121は,文例,プログラム名,管理番号,分析結果,利用回数等の情報を持つ。図5に示す文例管理データ121において,文例は,登録プログラムの索引情報である。プログラム名,管理番号,分析結果は,図4に示す登録プログラム管理データ120のプログラム名,管理番号,分析結果に相当する。利用回数は,登録プログラムが再利用された回数を示す。
The sentence
図6は,本実施の形態による抽出結果記憶部が格納するデータの例を示す図である。 FIG. 6 is a diagram illustrating an example of data stored in the extraction result storage unit according to the present embodiment.
図6に示す類似プログラムリストデータ130は,抽出結果記憶部103に記憶された類似プログラムの抽出結果の一例である。図6に示す類似プログラムリストデータ130は,プログラム名,文例,プログラムID,類似判定重み値等の情報を持つ。図6に示す類似プログラムリストデータ130において,プログラム名,文例,プログラムIDは,図4に示す登録プログラム管理データ120,図5に示す文例管理データ121のプログラム名,文例,プログラムIDに相当する。類似判定重み値は,類似プログラムが抽出された際の,一致判定の対象となる分析対象関数の重み値の範囲を示す。例えば,類似判定重み値が2である場合には,その類似プログラムの分析結果と処理対象プログラムの分析結果との一致判定で,重み値が2〜5のすべての分析対象関数が一致したことを示している。
The similar
図7は,本実施の形態による出力部が表示装置に出力するプログラム登録画面の例を示す図である。 FIG. 7 is a diagram showing an example of a program registration screen that the output unit according to the present embodiment outputs to the display device.
図7に示すプログラム登録画面200は,ユーザがプログラム管理装置10への処理対象プログラムの登録を行う際に,ディスプレイ等の表示装置に表示される画面の例である。図7に示すプログラム登録画面200には,類似プログラムの検索結果も出力されている。
A
図7に示すプログラム登録画面200において,類似プログラムリストは,登録プログラムから検出された類似プログラムの一覧である。図7に示すプログラム登録画面200の類似プログラムリストでは,類似プログラムのプログラム名と,類似プログラムに付与された索引情報である文例とが示されている。図7に示すプログラム登録画面200において,例えばユーザが類似プログラムリストのプログラム名を指定すると,その類似プログラムのソースコードなどの情報が表示される。類似プログラムの検索結果と,検出された類似プログラムに付与された索引情報とを合わせて画面に出力することで,ユーザは,登録する処理対象プログラムに適切な索引情報を付与することができるようになる。
In the
図7に示すプログラム登録画面200において,文例入力欄は,ユーザが,登録する処理対象プログラムに付与する文例を入力する欄である。例えば,ユーザが登録する処理対象プログラムに類似プログラムと同じ文例を付与したい場合には,ユーザが類似プログラムリストの文例を指定すると,その文例が文例入力欄に入力される。ユーザが,ユーザが登録する処理対象プログラムに新たな文例を付与したい場合には,キーボードなどの入力装置によって文例入力欄に文例を入力する。
In the
図7に示すプログラム登録画面200において,プログラム名入力欄は,ユーザが,登録する処理対象プログラムにプログラム名を入力する欄である。プログラム名入力欄へのプログラム名の入力がない場合には,登録する処理対象プログラムのメイン関数の関数名が,その処理対象プログラムのプログラム名として登録される。
In the
以下,図8〜図12のフローチャートを用いて,本実施の形態のプログラム管理装置10による処理の流れを説明する。
Hereinafter, the flow of processing by the
図8は,本実施の形態のプログラム管理装置によるプログラム登録処理フローチャートである。 FIG. 8 is a flowchart of a program registration process performed by the program management apparatus according to this embodiment.
プログラム管理装置10においてプログラム入力部11は,登録する処理対象プログラムを入力する(ステップS10)。
In the
分析部12は,プログラム分析処理を実行する(ステップS11)。プログラム分析処理は,プログラムを分析し,プログラムに含まれる分析対象関数を取得する処理である。プログラム分析処理の詳細については,後述する。
The
抽出部13は,類似プログラム抽出処理を実行する(ステップS12)。類似プログラム抽出処理は,処理対象プログラムから取得した分析対象関数と同じ分析対象関数が対応付けられた登録プログラムを,類似プログラムとして抽出する処理である。類似プログラム抽出処理の詳細については,後述する。
The
出力部14は,ユーザが処理対象プログラムを登録する作業を行うためのプログラム登録画面200を,ディスプレイなどの表示装置に表示する(ステップS13)。このとき,出力部14は,類似プログラムの抽出結果をプログラム登録画面200に出力する。
The
登録部15は,プログラム登録処理を実行する(ステップS14)。プログラム登録処理は,処理対象プログラムのデータを登録プログラム記憶部102に記録する処理である。プログラム登録処理の詳細については,後述する。
The
更新部16は,データ更新処理を実行する(ステップS15)。データ更新処理は,処理対象プログラムの呼び出しを行っている登録プログラムのデータを更新する処理である。データ更新処理の詳細については,後述する。
The
図9は,本実施の形態の分析部によるプログラム分析処理フローチャートである。 FIG. 9 is a flowchart of a program analysis process performed by the analysis unit according to this embodiment.
本実施の形態の分析部12による処理対象プログラムからの分析対象関数の取得では,分析部12は,処理対象プログラムの記述順で関数の分析を行い,分析対象関数を取得する。途中にサブ関数があり,そのサブ関数に含まれる分析対象関数の取得が可能であれば,分析部12は,該サブ関数から取得される分析対象関数を分析結果に加える。
In the acquisition of the analysis target function from the processing target program by the
分析部12は,処理対象プログラムから,記述された順序で,関数を1つ取得する(ステップS20)。プログラミング言語ごとに,関数を記述するルールが決まっており,そのルールに従った分析を行うことにより,処理対象プログラムから関数を取得することができる。例えば,分析部12は,処理対象プログラムがC言語である場合に,“()”付きの文字列を関数として取得する。
The
分析部12は,分析情報記憶部101の分析対象外関数データ111を参照し,取得された関数が分析対象外関数であるかを判定する(ステップS21)。取得された関数が分析対象外関数であれば(ステップS21のYES),分析部12は,ステップS29の処理に進む。本実施の形態によるプログラム分析処理では,分析対象外関数への対処は行われない。
The
取得された関数が分析対象外関数でなければ(ステップS21のNO),分析部12は,分析情報記憶部101の分析対象関数データ110を参照し,取得された関数が分析対象関数であるかを判定する(ステップS22)。取得された関数が分析対象関数であれば(ステップS22のYES),分析部12は,取得された関数を分析結果に加え(ステップS23),ステップS29の処理に進む。
If the acquired function is not a non-analysis function (NO in step S21), the
取得された関数が分析対象関数でなければ(ステップS22のNO),分析部12は,取得された関数が,処理対象プログラム内にプログラムが存在するサブ関数であるかを判定する(ステップS24)。取得された関数が処理対象プログラム内にプログラムが存在するサブ関数であれば(ステップS24のYES),分析部12は,処理対象プログラムに含まれる該当サブ関数のプログラムについて,再帰的にプログラム分析処理を実行し(ステップS25),ステップS29の処理に進む。
If the acquired function is not an analysis target function (NO in step S22), the
例えば,処理対象プログラムが,図4の登録プログラム管理データ120における管理番号#002のレコードのプログラム内容に示されるようなプログラムであったものとする。このプログラムでは,メイン関数でサブ関数sub1,sub2,sub3を呼び出しているが,このうち2つのサブ関数sub1,sub2のプログラムについては,自身の内部に存在している。このようなサブ関数については,ステップS25の処理によって,分析対象関数が取得される。
For example, it is assumed that the processing target program is a program as shown in the program content of the record of
取得された関数が処理対象プログラム内にプログラムが存在するサブ関数でなければ(ステップS24のNO),分析部12は,登録プログラム記憶部102の登録プログラム管理データ120を参照し,取得された関数が登録プログラムであるかを判定する(ステップS26)。ここでは,分析部12は,該当サブ関数の関数名で登録プログラム管理データ120のプログラム名を探索し,該当サブ関数の関数名とプログラム名が一致する登録プログラムが存在するかを判定する。
If the acquired function is not a subfunction in which the program exists in the processing target program (NO in step S24), the
取得された関数が登録プログラムであれば(ステップS26のYES),分析部12は,登録プログラム記憶部102の登録プログラム管理データ120を参照し,該当登録プログラムの分析結果を今回の処理対象プログラムの分析結果に加え(ステップS27),ステップS29の処理に進む。なお,このとき,分析部12は,該当サブ関数と呼び出し対象の登録プログラムとを対応付けた呼び出し関係の情報を保持しておく。
If the acquired function is a registered program (YES in step S26), the analyzing
例えば,処理対象プログラムが,図4の登録プログラム管理データ120における管理番号#003のレコードのプログラム内容に示されるようなプログラムであったものとする。このプログラムでは,メイン関数でサブ関数sub4,sub5,sub6を呼び出しているが,このうち2つのサブ関数sub4,sub5のプログラムについては,その関数名をプログラム名とする登録プログラムが存在する。このようなサブ関数については,ステップS27の処理によって,分析対象関数が取得される。
For example, it is assumed that the processing target program is a program as shown in the program content of the record of
取得された関数が登録プログラムでなければ(ステップS26のNO),分析部12は,取得された関数が未分析のサブ関数であると判定し(ステップS28),ステップS29の処理に進む。このとき,分析部12は,該当サブ関数に未分析を示すnoneを対応付けた呼び出し関係の情報を保持しておく。未分析のサブ関数については,その時点でプログラムの実体がわからないため,分析対象関数の取得ができない。
If the acquired function is not a registered program (NO in step S26), the
分析部12は,処理対象プログラムのすべての関数について,処理が終了したかを判定する(ステップS29)。まだ,すべての関数について処理が終了していなければ(ステップS29のNO),ステップS20の処理に戻って,次の関数の処理に移る。すべての関数について処理が終了していれば(ステップS29のYES),分析部12は,処理を終了する。
The
図9に示すプログラム分析処理では,処理対象プログラムに別のプログラムの呼び出しがある場合に,その呼び出し対象のプログラムに含まれる分析対象関数も,分析結果として取得される。これにより,処理対象プログラムに別のプログラムの呼び出しがある場合に,呼び出し対象のプログラムに含まれる分析対象関数を考慮した,類似プログラムの検索が可能となる。 In the program analysis process shown in FIG. 9, when another program is called in the processing target program, the analysis target function included in the call target program is also acquired as an analysis result. As a result, when there is a call to another program in the processing target program, it is possible to search for a similar program in consideration of the analysis target function included in the calling target program.
図10は,本実施の形態の抽出部による類似プログラム抽出処理フローチャートである。 FIG. 10 is a flowchart of similar program extraction processing by the extraction unit of the present embodiment.
本実施の形態の抽出部13による類似プログラムの抽出では,分析結果の分析対象関数が順序も含めて処理対象プログラムの分析結果の分析対象関数と一致する登録プログラムが,類似プログラムとして登録プログラム記憶部102から抽出される。
In the extraction of similar programs by the
抽出部13は,カウンタiを1に設定する(ステップS30)。カウンタiは,分析結果同士の一致判定において,一致判定の対象となる分析対象関数の重み値の範囲を示す。例えば,カウンタiの値が1であれば,一致判定の対象となる分析対象関数の重み値の範囲は1〜5となる。また,例えば,カウンタiの値が3であれば,一致判定の対象となる分析対象関数の重み値の範囲は3〜5となる。
The
抽出部13は,登録プログラム記憶部102の登録プログラム管理データ120から,登録プログラムのレコードを1つ取得する(ステップS31)。
The
抽出部13は,抽出結果記憶部103の類似プログラムリストデータ130を参照し,レコードが取得された登録プログラムが,類似プログラムの検索結果としてすでに抽出された登録プログラムであるかを判定する(ステップS32)。結果としてすでに抽出された登録プログラムであれば(ステップS32のYES),ステップS31の処理に戻り,次の登録プログラムの処理に移る。本実施の形態では,一致判定に用いる分析対象関数の重み値の基準を変えるたびに,登録プログラム管理データ120の最初のレコードに戻って処理を行うので,ステップS32の判定で,同じ登録プログラムを重複して抽出することを防ぐ。
The
結果としてすでに抽出された登録プログラムでなければ(ステップS32のNO),抽出部13は,重み値がi以上の分析対象関数について,取得された登録プログラムの分析結果を,処理対象プログラムの分析結果と比較する(ステップS33)。抽出部13は,重み値がi以上の分析対象関数について,双方のプログラムの分析結果が一致するかを判定する(ステップS34)。
If the registered program has not already been extracted as a result (NO in step S32), the
双方のプログラムの分析結果が一致すれば(ステップS34のYES),抽出部13は,取得された登録プログラムのデータを,抽出結果記憶部103の類似プログラムリストデータ130に抽出する(ステップS35)。ステップS34の判定で一致した場合には,取得された登録プログラムが類似プログラムであると判定されたことになる。このとき,抽出部13は,該当登録プログラムについて,登録プログラム記憶部102の登録プログラム管理データ120と文例管理データ121から必要な情報を抽出し,抽出結果記憶部103の類似プログラムリストデータ130に記録する。また,このときのカウンタiの値を,類似プログラムリストデータ130の類似判定重み値に記録する。
If the analysis results of both programs match (YES in step S34), the
抽出部13は,すべての登録プログラムについて処理が終了したかを判定する(ステップS36)。まだすべての登録プログラムについて処理が終了していなければ(ステップS36のNO),抽出部13は,ステップS31の処理に戻って,次の登録プログラムの処理に移る。
The
すべての登録プログラムについて処理が終了していれば(ステップS36のYES),抽出部13は,カウンタiが5であるかを判定する(ステップS37)。カウンタiが5でなければ(ステップS37のNO),抽出部13は,カウンタiをインクリメントし(ステップS38),ステップS31の処理に戻って,登録プログラム管理データ120の最初の登録プログラムの処理に移る。カウンタiが5であれば(ステップS37のYES),抽出部13は,処理を終了する。
If the processing has been completed for all registered programs (YES in step S36), the
例えば,ある入力対象プログラムXXXの分析結果が,{getaddrinfo() ,while() ,socket(),connect() ,close() ,freeaddrinfo()}であるものとする。この入力対象プログラムXXXの分析結果を,図3(A)に示す分析対象関数データ110の関数IDで表すと{100,053,102,101,200,104}となる。例えば,この入力対象プログラムXXXの類似プログラムを,図4に示す登録プログラム管理データ120から検出するものとする。
For example, it is assumed that the analysis result of a certain input target program XXX is {getaddrinfo (), while (), socket (), connect (), close (), freeaddrinfo ()}. When the analysis result of the input target program XXX is expressed by the function ID of the analysis
図4に示す登録プログラム管理データ120において,管理番号#001の登録プログラムAAAの分析結果は,{001,100,053,102,101,200,104}である。重み値が1以上の分析対象関数が一致判定の対象であれば,管理番号#001の登録プログラムAAAは,入力対象プログラムXXXの類似プログラムとして検出されない。重み値が2以上の分析対象関数が一致判定の対象であれば,重み値1の分析対象関数mainが一致判定の対象とならないので,管理番号#001の登録プログラムAAAは,入力対象プログラムXXXの類似プログラムとして検出される。例えば,分析対象関数mainは,プログラムの特徴を表すという意味ではあまり重要ではないので,一致判定の対象としなくてもほとんど問題はない。
In the registered
このように,すべての分析対象関数の一致判定では,類似プログラムとして検出できない登録プログラムでも,一致判定の対象となる分析対象関数の重み値の範囲を変えれば,類似プログラムとして検出できる場合がある。 As described above, in the coincidence determination of all analysis target functions, even a registered program that cannot be detected as a similar program may be detected as a similar program if the range of the weight value of the analysis target function that is the target of the match determination is changed.
なお,図10に示す類似プログラム抽出処理では,一致判定の対象となる分析対象関数の重み値の範囲を5段階に変えて,類似プログラムの検索を行っているが,ある設定された固定の重み値の範囲で,1度だけ類似プログラムの検索を行うようにしてもよい。また,所定数以上の類似プログラムが検出された時点で,段階を変えた類似プログラムの検索を終了するようにしてもよい。 In the similar program extraction process shown in FIG. 10, similar programs are searched by changing the range of the weight value of the analysis target function that is the object of the match determination to five levels, but a certain fixed weight is set. Similar programs may be searched only once within a range of values. Alternatively, when a predetermined number or more of similar programs are detected, the search for similar programs at different stages may be terminated.
図11は,本実施の形態の登録部によるプログラム登録処理フローチャートである。 FIG. 11 is a flowchart of a program registration process by the registration unit of the present embodiment.
プログラム管理装置10において,登録部15は,プログラム登録画面200においてユーザが決定した文例を取得する(ステップS40)。
In the
登録部15は,プログラム登録画面200でのユーザによるプログラム名の入力があるかを判定する(ステップS41)。プログラム名の入力があれば(ステップS41のYES),登録部15は,入力されたプログラム名を取得する(ステップS42)。プログラム名の入力がなければ(ステップS41のNO),処理対象プログラムのメイン関数の関数名をプログラム名とする(ステップS43)。
The
登録部15は,処理対象プログラムのデータを,登録プログラム管理データ120に追加する(ステップS44)。プログラム名は,ステップS42またはステップS43の処理で得られたプログラム名が記録される。プログラム内容は,処理対象プログラムのソースコードが記録される。呼び出し関係は,分析部12によるプログラム分析処理で保持された呼び出し関係が記録される。分析結果は,分析部12によるプログラム分析処理で得られた分析結果が記録される。
The
登録部15は,処理対象プログラムのデータを,文例管理データに追加する(ステップS45)。文例は,ステップS40の処理で得られた文例が記録される。
The
図12は,本実施の形態の更新部によるデータ更新処理フローチャートである。 FIG. 12 is a flowchart of data update processing performed by the update unit according to this embodiment.
プログラム管理装置10において,更新部16は,登録プログラム記憶部102の登録プログラム管理データ120から,登録プログラムのレコードを1つ取得する(ステップS50)。
In the
更新部16は,取得した登録プログラムの呼び出し関係に未分析のサブ関数がある場合に,その未分析のサブ関数の関数名と,登録された処理対象プログラムのプログラム名とを比較する(ステップS51)。更新部16は,未分析のサブ関数の関数名と処理対象プログラムのプログラム名とが一致するかを判定する(ステップS52)。
When there is an unanalyzed subfunction in the acquired registered program call relationship, the
未分析のサブ関数の関数名と処理対象プログラムのプログラム名とが一致すれば(ステップS52のYES),更新部16は,登録プログラム管理データ120の該当登録プログラムの呼び出し関係において,該当サブ関数に処理対象プログラムとの関係を記録する(ステップS53)。また,更新部16は,登録プログラム管理データ120の該当登録プログラムの分析結果に,処理対象プログラムの分析結果をマージする(ステップS54)。更新部16は,登録プログラム管理データ120の更新結果を文例管理データ121に反映する。
If the function name of the unanalyzed subfunction matches the program name of the processing target program (YES in step S52), the updating
更新部16は,すべての登録プログラムについて処理が終了したかを判定する(ステップS55)。まだすべての登録プログラムについて処理が終了していなければ(ステップS55のNO),更新部16は,ステップS50の処理に戻って,次の登録プログラムの処理に移る。すべての登録プログラムについて処理が終了していれば(ステップS55のYES),更新部16は,処理を終了する。
The updating
例えば,図4に示す登録プログラム管理データ120において,管理番号#003のプログラムの登録時に,管理番号#004のsub4のプログラムと管理番号#005のsub5のプログラムとが,未登録であったものとする。この時点で,管理番号#003のプログラムの分析結果に,分析対象関数はない。
For example, in the registered
その後,管理番号#004のsub4のプログラムが登録されると,管理番号#003のプログラムとの呼び出し関係から,管理番号#003のプログラムの分析結果に管理番号#004のsub4のプログラムの分析結果がマージされる。この時点で,管理番号#003のプログラムの分析結果は,{100}となる。
After that, when the sub4 program with the
さらに,管理番号#005のsub5のプログラムが登録されると,管理番号#003のプログラムとの呼び出し関係から,管理番号#003のプログラムの分析結果に管理番号#005のsub5のプログラムの分析結果がマージされる。この時点で,管理番号#003のプログラムの分析結果は,{100,053,102,101,200}となる。
Furthermore, when the sub5 program with the
以上説明した本実施の形態のプログラム管理装置10によって,処理対象プログラムが別の登録プログラムを呼び出している場合でも,その呼び出し対象の登録プログラムに含まれる分析対象関数も含めた,処理対象プログラムの分析対象関数を取得することができる。これにより,より精度が高い類似プログラムの検索が可能となる。
Even when the program to be processed calls another registered program by the
以上,本実施の形態について説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。 Although the present embodiment has been described above, the present invention can naturally be modified in various ways within the scope of the gist thereof.
例えば,本実施の形態では,類似プログラム抽出処理において,分析対象関数の順番も含めた一致で,類似プログラムの判定を行っている。例えば,類似プログラム抽出処理において,分析対象関数の種類と数との関係の一致で,類似プログラムの判定を行うようにしてもよい。 For example, in the present embodiment, in the similar program extraction process, similar programs are determined based on the matching including the order of the functions to be analyzed. For example, in a similar program extraction process, a similar program may be determined based on the coincidence of the relationship between the type and number of functions to be analyzed.
以上の本実施の形態に関し,さらに以下の付記を開示する。 Regarding the above embodiment, the following additional notes are disclosed.
(付記1)
コンピュータに,
プログラム同士の類似性の判断に用いる所定の分析対象関数が記憶された記憶部を参照して,前記所定の分析対象関数のうち,処理対象プログラムに含まれる分析対象関数を示す第1の分析対象関数情報を取得し,
登録プログラムごとに,該登録プログラムを特定する識別情報と,前記所定の分析対象関数のうち,該登録プログラムに含まれる分析対象関数を示す第2の分析対象関数情報と,該登録プログラムから識別情報で呼び出される別の登録プログラムに含まれる分析対象関数を示す第3の分析対象関数情報とが対応付けて記憶された記憶部を,前記第1の分析対象関数情報をもとに検索して,前記第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,前記第1の分析対象関数情報と同じ登録プログラムを抽出し,
前記抽出した登録プログラムを,前記処理対象プログラムに類似するプログラムとして出力する
処理を実行させるための管理プログラム。
(Appendix 1)
Computer
A first analysis target that indicates an analysis target function included in a processing target program among the predetermined analysis target functions with reference to a storage unit that stores a predetermined analysis target function used to determine similarity between programs. Get function information
For each registered program, identification information for identifying the registered program, second analysis target function information indicating an analysis target function included in the registration program among the predetermined analysis target functions, and identification information from the registration program A storage unit in which the third analysis target function information indicating the analysis target function included in another registered program called in is associated and stored is searched based on the first analysis target function information, The analysis target function information including the second analysis target function information and the third analysis target function information extracts the same registration program as the first analysis target function information,
A management program for executing processing for outputting the extracted registered program as a program similar to the processing target program.
(付記2)
前記記憶部は,さらに,登録プログラムに該登録プログラムの索引情報を対応付けて記憶し,
前記出力する処理では,前記抽出した登録プログラムを前記処理対象プログラムに類似するプログラムとして出力する際に,さらに前記抽出した登録プログラムに対応付けられた索引情報を出力する
ことを特徴とする付記1に記載の管理プログラム。
(Appendix 2)
The storage unit further stores the registration program in association with index information of the registration program,
In the output process, when the extracted registration program is output as a program similar to the processing target program, index information associated with the extracted registration program is further output. The management program described.
(付記3)
前記コンピュータに,さらに,
前記処理対象プログラムの識別情報を含む登録プログラムを前記記憶部から検索し,検索された登録プログラムに前記処理対象プログラムを関連付けて前記記憶部に記憶する
処理を実行させるための付記1または付記2に記載の管理プログラム。
(Appendix 3)
In addition to the computer,
(付記4)
前記分析対象関数には,前記分析対象関数ごとに重要度が設定されており,
前記登録プログラムを抽出する処理では,重要度が所定以上高い分析対象関数を一致判定の対象として,前記記憶部を,前記第1の分析対象関数情報をもとに検索して,前記第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,前記第1の分析対象関数情報と同じ登録プログラムを抽出する
ことを特徴とする付記1から付記3までのいずれかに記載の管理プログラム。
(Appendix 4)
In the analysis object function, importance is set for each analysis object function,
In the process of extracting the registration program, the storage unit is searched based on the first analysis target function information, with the analysis target function having a higher degree of importance than a predetermined value being the target of coincidence determination, and the second Any one of
(付記5)
前記第1の分析対象関数情報を取得する処理では,前記処理対象プログラムに前記記憶部に記憶された登録プログラムを呼び出す識別情報が含まれている場合に,前記第1の分析対象関数情報を取得するとともに,前記処理対象プログラムに含まれる識別情報で呼び出される登録プログラムに含まれる分析対象関数を示す第4の分析対象関数情報を取得し,
前記登録プログラムを抽出する処理では,前記記憶部を,前記第1の分析対象関数情報および第4の分析対象関数情報を含む分析対象関数情報をもとに検索して,前記第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,前記第1の分析対象関数情報および第4の分析対象関数情報を含む分析対象関数情報と同じ登録プログラムを抽出する
ことを特徴とする付記1から付記4までのいずれかに記載の管理プログラム。
(Appendix 5)
In the process of acquiring the first analysis target function information, when the processing target program includes identification information for calling a registration program stored in the storage unit, the first analysis target function information is acquired. And obtaining fourth analysis target function information indicating the analysis target function included in the registration program called by the identification information included in the processing target program,
In the process of extracting the registration program, the storage unit is searched based on the analysis target function information including the first analysis target function information and the fourth analysis target function information, and the second analysis target is searched. The analysis target function information including the function information and the third analysis target function information is extracted with the same registered program as the analysis target function information including the first analysis target function information and the fourth analysis target function information. The management program according to any one of
(付記6)
コンピュータが,
プログラム同士の類似性の判断に用いる所定の分析対象関数が記憶された記憶部を参照して,前記所定の分析対象関数のうち,処理対象プログラムに含まれる分析対象関数を示す第1の分析対象関数情報を取得し,
登録プログラムごとに,該登録プログラムを特定する識別情報と,前記所定の分析対象関数のうち,該登録プログラムに含まれる分析対象関数を示す第2の分析対象関数情報と,該登録プログラムから識別情報で呼び出される別の登録プログラムに含まれる分析対象関数を示す第3の分析対象関数情報とが対応付けて記憶された記憶部を,前記第1の分析対象関数情報をもとに検索して,前記第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,前記第1の分析対象関数情報と同じ登録プログラムを抽出し,
前記抽出した登録プログラムを,前記処理対象プログラムに類似するプログラムとして出力する過程を実行する
ことを特徴とする管理方法。
(Appendix 6)
Computer
A first analysis target that indicates an analysis target function included in a processing target program among the predetermined analysis target functions with reference to a storage unit that stores a predetermined analysis target function used to determine similarity between programs. Get function information
For each registered program, identification information for identifying the registered program, second analysis target function information indicating an analysis target function included in the registration program among the predetermined analysis target functions, and identification information from the registration program A storage unit in which the third analysis target function information indicating the analysis target function included in another registered program called in is associated and stored is searched based on the first analysis target function information, The analysis target function information including the second analysis target function information and the third analysis target function information extracts the same registration program as the first analysis target function information,
A process for outputting the extracted registered program as a program similar to the processing target program.
(付記7)
前記記憶部は,さらに,登録プログラムに該登録プログラムの索引情報を対応付けて記憶し,
前記出力する過程では,前記抽出した登録プログラムを前記処理対象プログラムに類似するプログラムとして出力する際に,さらに前記抽出した登録プログラムに対応付けられた索引情報を出力する
ことを特徴とする付記6に記載の管理方法。
(Appendix 7)
The storage unit further stores the registration program in association with index information of the registration program,
In the output process, when the extracted registration program is output as a program similar to the processing target program, index information associated with the extracted registration program is further output. The management method described.
(付記8)
前記コンピュータが,さらに,
前記処理対象プログラムの識別情報を含む登録プログラムを前記記憶部から検索し,検索された登録プログラムに前記処理対象プログラムを関連付けて前記記憶部に記憶する過程を実行する
ことを特徴とする付記6または付記7に記載の管理方法。
(Appendix 8)
Said computer further comprising:
The registration program including the identification information of the processing target program is searched from the storage unit, and the process of associating the processing target program with the searched registration program and storing it in the storage unit is executed. The management method according to attachment 7.
(付記9)
前記分析対象関数には,前記分析対象関数ごとに重要度が設定されており,
前記登録プログラムを抽出する過程では,重要度が所定以上高い分析対象関数を一致判定の対象として,前記記憶部を,前記第1の分析対象関数情報をもとに検索して,前記第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,前記第1の分析対象関数情報と同じ登録プログラムを抽出する
ことを特徴とする付記6から付記8までのいずれかに記載の管理方法。
(Appendix 9)
In the analysis object function, importance is set for each analysis object function,
In the process of extracting the registration program, the storage unit is searched on the basis of the first analysis target function information, with the analysis target function having a higher importance level than a predetermined level as the target of coincidence determination, and the second Any one of appendix 6 to appendix 8, wherein the analysis target function information including the analysis target function information and the third analysis target function information extracts the same registration program as the first analysis target function information. The management method described.
(付記10)
前記第1の分析対象関数情報を取得する過程では,前記処理対象プログラムに前記記憶部に記憶された登録プログラムを呼び出す識別情報が含まれている場合に,前記第1の分析対象関数情報を取得するとともに,前記処理対象プログラムに含まれる識別情報で呼び出される登録プログラムに含まれる分析対象関数を示す第4の分析対象関数情報を取得し,
前記登録プログラムを抽出する過程では,前記記憶部を,前記第1の分析対象関数情報および第4の分析対象関数情報を含む分析対象関数情報をもとに検索して,前記第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,前記第1の分析対象関数情報および第4の分析対象関数情報を含む分析対象関数情報と同じ登録プログラムを抽出する
ことを特徴とする付記6から付記9までのいずれかに記載の管理方法。
(Appendix 10)
In the process of acquiring the first analysis target function information, when the processing target program includes identification information for calling a registration program stored in the storage unit, the first analysis target function information is acquired. And obtaining fourth analysis target function information indicating the analysis target function included in the registration program called by the identification information included in the processing target program,
In the process of extracting the registration program, the storage unit is searched based on the analysis target function information including the first analysis target function information and the fourth analysis target function information, and the second analysis target is searched. The analysis target function information including the function information and the third analysis target function information is extracted with the same registered program as the analysis target function information including the first analysis target function information and the fourth analysis target function information. The management method according to any one of appendix 6 to appendix 9.
(付記11)
プログラム同士の類似性の判断に用いる所定の分析対象関数を記憶する分析情報記憶部と,
登録プログラムごとに,該登録プログラムを特定する識別情報と,前記所定の分析対象関数のうち,該登録プログラムに含まれる分析対象関数を示す第2の分析対象関数情報と,該登録プログラムから識別情報で呼び出される別の登録プログラムに含まれる分析対象関数を示す第3の分析対象関数情報とを対応付けて記憶する登録プログラム記憶部と,
前記分析情報記憶部を参照して,前記所定の分析対象関数のうち,処理対象プログラムに含まれる分析対象関数を示す第1の分析対象関数情報を取得する分析部と,
前記登録プログラム記憶部を,前記第1の分析対象関数情報をもとに検索して,前記第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,前記第1の分析対象関数情報と同じ登録プログラムを抽出する抽出部と,
前記抽出した登録プログラムを,前記処理対象プログラムに類似するプログラムとして出力する出力部とを備える
ことを特徴とする管理装置。
(Appendix 11)
An analysis information storage unit for storing a predetermined analysis target function used to determine similarity between programs;
For each registered program, identification information for identifying the registered program, second analysis target function information indicating an analysis target function included in the registration program among the predetermined analysis target functions, and identification information from the registration program A registered program storage unit for storing in association with third analysis target function information indicating an analysis target function included in another registration program called in
Referring to the analysis information storage unit, an analysis unit that acquires first analysis target function information indicating an analysis target function included in a processing target program among the predetermined analysis target functions;
The registered program storage unit is searched based on the first analysis target function information, and the analysis target function information including the second analysis target function information and the third analysis target function information is the first analysis target function information. An extraction unit that extracts the same registered program as the analysis target function information of
An output unit that outputs the extracted registration program as a program similar to the processing target program.
(付記12)
前記登録プログラム記憶部は,さらに,登録プログラムに該登録プログラムの索引情報を対応付けて記憶し,
前記出力部は,前記抽出した登録プログラムを前記処理対象プログラムに類似するプログラムとして出力する際に,さらに前記抽出した登録プログラムに対応付けられた索引情報を出力する
ことを特徴とする付記11に記載の管理装置。
(Appendix 12)
The registered program storage unit further stores the registered program in association with index information of the registered program,
The output unit further outputs index information associated with the extracted registration program when the extracted registration program is output as a program similar to the processing target program. Management device.
(付記13)
前記処理対象プログラムの識別情報を含む登録プログラムを前記登録プログラム記憶部から検索し,検索された登録プログラムに前記処理対象プログラムを関連付けて前記登録プログラム記憶部に記憶する更新部を備える
ことを特徴とする付記11または付記12に記載の管理装置。
(Appendix 13)
An update unit that searches the registered program storage unit for a registered program including identification information of the processing target program, associates the processing target program with the searched registration program, and stores the associated program in the registered program storage unit. The management apparatus according to
(付記14)
前記分析対象関数には,前記分析対象関数ごとに重要度が設定されており,
前記抽出部は,重要度が所定以上高い分析対象関数を一致判定の対象として,前記登録プログラム記憶部を,前記第1の分析対象関数情報をもとに検索して,前記第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,前記第1の分析対象関数情報と同じ登録プログラムを抽出する
ことを特徴とする付記11から付記13までのいずれかに記載の管理装置。
(Appendix 14)
In the analysis object function, importance is set for each analysis object function,
The extraction unit searches the registered program storage unit based on the first analysis target function information for an analysis target function having a higher importance level than a predetermined level as a match determination target, and the second analysis target The analysis target function information including the function information and the third analysis target function information extracts the same registration program as the first analysis target function information. Management device.
(付記15)
前記分析部は,前記処理対象プログラムに前記登録プログラム記憶部に記憶された登録プログラムを呼び出す識別情報が含まれている場合に,前記第1の分析対象関数情報を取得するとともに,前記処理対象プログラムに含まれる識別情報で呼び出される登録プログラムに含まれる分析対象関数を示す第4の分析対象関数情報を取得し,
前記抽出部は,前記登録プログラム記憶部を,前記第1の分析対象関数情報および第4の分析対象関数情報を含む分析対象関数情報をもとに検索して,前記第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,前記第1の分析対象関数情報および第4の分析対象関数情報を含む分析対象関数情報と同じ登録プログラムを抽出する
ことを特徴とする付記11から付記14までのいずれかに記載の管理装置。
(Appendix 15)
The analysis unit obtains the first analysis target function information when the processing target program includes identification information for calling a registered program stored in the registered program storage unit, and the processing target program 4th analysis object function information which shows the analysis object function contained in the registration program called with the identification information contained in is acquired,
The extraction unit searches the registered program storage unit based on the analysis target function information including the first analysis target function information and the fourth analysis target function information, and the second analysis target function information. And the analysis target function information including the third analysis target function information extracts the same registration program as the analysis target function information including the first analysis target function information and the fourth analysis target function information. The management device according to any one of
10 プログラム管理装置
11 プログラム入力部
12 分析部
13 抽出部
14 出力部
15 登録部
16 更新部
101 分析情報記憶部
102 登録プログラム記憶部
103 抽出結果記憶部
DESCRIPTION OF
Claims (7)
プログラム同士の類似性の判断に用いる所定の分析対象関数が記憶された記憶部を参照して,前記所定の分析対象関数のうち,処理対象プログラムに含まれる分析対象関数を示す第1の分析対象関数情報を取得し,
登録プログラムごとに,該登録プログラムを特定する識別情報と,前記所定の分析対象関数のうち,該登録プログラムに含まれる分析対象関数を示す第2の分析対象関数情報と,該登録プログラムから識別情報で呼び出される別の登録プログラムに含まれる分析対象関数を示す第3の分析対象関数情報とが対応付けて記憶された記憶部を,前記第1の分析対象関数情報をもとに検索して,前記第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,前記第1の分析対象関数情報と同じ登録プログラムを抽出し,
前記抽出した登録プログラムを,前記処理対象プログラムに類似するプログラムとして出力する
処理を実行させるための管理プログラム。 Computer
A first analysis target that indicates an analysis target function included in a processing target program among the predetermined analysis target functions with reference to a storage unit that stores a predetermined analysis target function used to determine similarity between programs. Get function information
For each registered program, identification information for identifying the registered program, second analysis target function information indicating an analysis target function included in the registration program among the predetermined analysis target functions, and identification information from the registration program A storage unit in which the third analysis target function information indicating the analysis target function included in another registered program called in is associated and stored is searched based on the first analysis target function information, The analysis target function information including the second analysis target function information and the third analysis target function information extracts the same registration program as the first analysis target function information,
A management program for executing processing for outputting the extracted registered program as a program similar to the processing target program.
前記出力する処理では,前記抽出した登録プログラムを前記処理対象プログラムに類似するプログラムとして出力する際に,さらに前記抽出した登録プログラムに対応付けられた索引情報を出力する
ことを特徴とする請求項1に記載の管理プログラム。 The storage unit further stores the registration program in association with index information of the registration program,
The output processing further outputs index information associated with the extracted registration program when the extracted registration program is output as a program similar to the processing target program. The management program described in.
前記処理対象プログラムの識別情報を含む登録プログラムを前記記憶部から検索し,検索された登録プログラムに前記処理対象プログラムを関連付けて前記記憶部に記憶する
処理を実行させるための請求項1または請求項2に記載の管理プログラム。 In addition to the computer,
A registration program including identification information of the processing target program is searched from the storage unit, and the processing unit program is associated with the searched registration program and stored in the storage unit. 2. The management program according to 2.
前記登録プログラムを抽出する処理では,重要度が所定以上高い分析対象関数を一致判定の対象として,前記記憶部を,前記第1の分析対象関数情報をもとに検索して,前記第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,前記第1の分析対象関数情報と同じ登録プログラムを抽出する
ことを特徴とする請求項1から請求項3までのいずれかに記載の管理プログラム。 In the analysis object function, importance is set for each analysis object function,
In the process of extracting the registration program, the storage unit is searched based on the first analysis target function information, with the analysis target function having a higher degree of importance than a predetermined value being the target of coincidence determination, and the second The analysis function information including the analysis target function information and the third analysis target function information extracts the same registration program as the first analysis target function information. The management program described in
前記登録プログラムを抽出する処理では,前記記憶部を,前記第1の分析対象関数情報および第4の分析対象関数情報を含む分析対象関数情報をもとに検索して,前記第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,前記第1の分析対象関数情報および第4の分析対象関数情報を含む分析対象関数情報と同じ登録プログラムを抽出する
ことを特徴とする請求項1から請求項4までのいずれかに記載の管理プログラム。 In the process of acquiring the first analysis target function information, when the processing target program includes identification information for calling a registration program stored in the storage unit, the first analysis target function information is acquired. And obtaining fourth analysis target function information indicating the analysis target function included in the registration program called by the identification information included in the processing target program,
In the process of extracting the registration program, the storage unit is searched based on the analysis target function information including the first analysis target function information and the fourth analysis target function information, and the second analysis target is searched. The analysis target function information including the function information and the third analysis target function information is extracted with the same registered program as the analysis target function information including the first analysis target function information and the fourth analysis target function information. The management program according to any one of claims 1 to 4.
プログラム同士の類似性の判断に用いる所定の分析対象関数が記憶された記憶部を参照して,前記所定の分析対象関数のうち,処理対象プログラムに含まれる分析対象関数を示す第1の分析対象関数情報を取得し,
登録プログラムごとに,該登録プログラムを特定する識別情報と,前記所定の分析対象関数のうち,該登録プログラムに含まれる分析対象関数を示す第2の分析対象関数情報と,該登録プログラムから識別情報で呼び出される別の登録プログラムに含まれる分析対象関数を示す第3の分析対象関数情報とが対応付けて記憶された記憶部を,前記第1の分析対象関数情報をもとに検索して,前記第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,前記第1の分析対象関数情報と同じ登録プログラムを抽出し,
前記抽出した登録プログラムを,前記処理対象プログラムに類似するプログラムとして出力する過程を実行する
ことを特徴とする管理方法。 Computer
A first analysis target that indicates an analysis target function included in a processing target program among the predetermined analysis target functions with reference to a storage unit that stores a predetermined analysis target function used to determine similarity between programs. Get function information
For each registered program, identification information for identifying the registered program, second analysis target function information indicating an analysis target function included in the registration program among the predetermined analysis target functions, and identification information from the registration program A storage unit in which the third analysis target function information indicating the analysis target function included in another registered program called in is associated and stored is searched based on the first analysis target function information, The analysis target function information including the second analysis target function information and the third analysis target function information extracts the same registration program as the first analysis target function information,
A process for outputting the extracted registered program as a program similar to the processing target program.
登録プログラムごとに,該登録プログラムを特定する識別情報と,前記所定の分析対象関数のうち,該登録プログラムに含まれる分析対象関数を示す第2の分析対象関数情報と,該登録プログラムから識別情報で呼び出される別の登録プログラムに含まれる分析対象関数を示す第3の分析対象関数情報とを対応付けて記憶する登録プログラム記憶部と,
前記分析情報記憶部を参照して,前記所定の分析対象関数のうち,処理対象プログラムに含まれる分析対象関数を示す第1の分析対象関数情報を取得する分析部と,
前記登録プログラム記憶部を,前記第1の分析対象関数情報をもとに検索して,前記第2の分析対象関数情報および第3の分析対象関数情報を含む分析対象関数情報が,前記第1の分析対象関数情報と同じ登録プログラムを抽出する抽出部と,
前記抽出した登録プログラムを,前記処理対象プログラムに類似するプログラムとして出力する出力部とを備える
ことを特徴とする管理装置。 An analysis information storage unit for storing a predetermined analysis target function used to determine similarity between programs;
For each registered program, identification information for identifying the registered program, second analysis target function information indicating an analysis target function included in the registration program among the predetermined analysis target functions, and identification information from the registration program A registered program storage unit for storing in association with third analysis target function information indicating an analysis target function included in another registration program called in
Referring to the analysis information storage unit, an analysis unit that acquires first analysis target function information indicating an analysis target function included in a processing target program among the predetermined analysis target functions;
The registered program storage unit is searched based on the first analysis target function information, and the analysis target function information including the second analysis target function information and the third analysis target function information is the first analysis target function information. An extraction unit that extracts the same registered program as the analysis target function information of
An output unit that outputs the extracted registration program as a program similar to the processing target program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011060330A JP5712711B2 (en) | 2011-03-18 | 2011-03-18 | Management program, management method, and management apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011060330A JP5712711B2 (en) | 2011-03-18 | 2011-03-18 | Management program, management method, and management apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012194945A true JP2012194945A (en) | 2012-10-11 |
JP5712711B2 JP5712711B2 (en) | 2015-05-07 |
Family
ID=47086737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011060330A Expired - Fee Related JP5712711B2 (en) | 2011-03-18 | 2011-03-18 | Management program, management method, and management apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5712711B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019175373A (en) * | 2018-03-29 | 2019-10-10 | Necソリューションイノベータ株式会社 | File management device, file management method, and program |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07239860A (en) * | 1994-02-28 | 1995-09-12 | Fuji Xerox Co Ltd | Data managing device |
US20050234887A1 (en) * | 2004-04-15 | 2005-10-20 | Fujitsu Limited | Code retrieval method and code retrieval apparatus |
JP2005316707A (en) * | 2004-04-28 | 2005-11-10 | Fujitsu Ltd | Program typification method |
JP2006018693A (en) * | 2004-07-02 | 2006-01-19 | Fujitsu Ltd | Similar source code extraction program, similar source code extraction device and similar source code extraction method |
-
2011
- 2011-03-18 JP JP2011060330A patent/JP5712711B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07239860A (en) * | 1994-02-28 | 1995-09-12 | Fuji Xerox Co Ltd | Data managing device |
US20050234887A1 (en) * | 2004-04-15 | 2005-10-20 | Fujitsu Limited | Code retrieval method and code retrieval apparatus |
JP2005316707A (en) * | 2004-04-28 | 2005-11-10 | Fujitsu Ltd | Program typification method |
JP2006018693A (en) * | 2004-07-02 | 2006-01-19 | Fujitsu Ltd | Similar source code extraction program, similar source code extraction device and similar source code extraction method |
Non-Patent Citations (4)
Title |
---|
CSNG200301440007; 田原 靖太 外2名: '"既存ソフトウェアの変更履歴を利用したソースコード修正支援手法の提案"' 情報処理学会研究報告 第2002巻,第23号, 20020308, p.57-64, 社団法人情報処理学会 * |
CSNG201100042016; 包 胡日査 外3名: '"構文木の類似度を用いたC言語プログラムの類似性検証"' 電子情報通信学会技術研究報告 第110巻,第370号, 20110113, p.83-86, 社団法人電子情報通信学会 * |
JPN6014022336; 包 胡日査 外3名: '"構文木の類似度を用いたC言語プログラムの類似性検証"' 電子情報通信学会技術研究報告 第110巻,第370号, 20110113, p.83-86, 社団法人電子情報通信学会 * |
JPN6014022337; 田原 靖太 外2名: '"既存ソフトウェアの変更履歴を利用したソースコード修正支援手法の提案"' 情報処理学会研究報告 第2002巻,第23号, 20020308, p.57-64, 社団法人情報処理学会 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019175373A (en) * | 2018-03-29 | 2019-10-10 | Necソリューションイノベータ株式会社 | File management device, file management method, and program |
JP7010538B2 (en) | 2018-03-29 | 2022-01-26 | Necソリューションイノベータ株式会社 | File management device, file management method, and program |
Also Published As
Publication number | Publication date |
---|---|
JP5712711B2 (en) | 2015-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109376166B (en) | Script conversion method, script conversion device, computer equipment and storage medium | |
US10860464B2 (en) | Test selection for application commit | |
Kirbas et al. | The relationship between evolutionary coupling and defects in large industrial software | |
US20140304253A1 (en) | Screen-data editing device for programmable display device | |
US8954376B2 (en) | Detecting transcoding tables in extract-transform-load processes | |
US11163812B2 (en) | Classification apparatus and classification method | |
US20160124795A1 (en) | Evaluation method and apparatus | |
US11157394B2 (en) | Exception cause analysis during computer program execution | |
CN111258614B (en) | Method, system, equipment and storage medium for detecting upgrade exception of project third-party library | |
JP5900193B2 (en) | Update determination program and update determination apparatus | |
US11036701B2 (en) | Data sampling in a storage system | |
US10175958B2 (en) | Acquiring identification of an application lifecycle management entity associated with similar code | |
CN108959454B (en) | Prompting clause specifying method, device, equipment and storage medium | |
KR101798705B1 (en) | Flexible metadata composition | |
JP2023007169A (en) | Program, vulnerability detection method, and information processor | |
US11106526B1 (en) | Architecture-based root cause analysis | |
JP5712711B2 (en) | Management program, management method, and management apparatus | |
Meurice et al. | DAHLIA 2.0: A visual analyzer of database usage in dynamic and heterogeneous systems | |
US11556531B2 (en) | Crux detection in search definitions | |
JP6955162B2 (en) | Analytical equipment, analysis method and analysis program | |
US12026146B2 (en) | Data analysis method, apparatus and device | |
JP6217440B2 (en) | Symbolic execution program, symbolic execution method, and symbolic execution device | |
JP4899544B2 (en) | Program analysis method, program, and program analysis apparatus | |
JP5197128B2 (en) | Dependency Estimation Device, Dependency Estimation Program, and Recording Medium | |
JP2011175446A (en) | System for processing requirement/bug report and method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20131129 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140522 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140603 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140804 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150210 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150223 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5712711 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |