JP6369177B2 - Development support program, development support method, and development support apparatus - Google Patents

Development support program, development support method, and development support apparatus Download PDF

Info

Publication number
JP6369177B2
JP6369177B2 JP2014139439A JP2014139439A JP6369177B2 JP 6369177 B2 JP6369177 B2 JP 6369177B2 JP 2014139439 A JP2014139439 A JP 2014139439A JP 2014139439 A JP2014139439 A JP 2014139439A JP 6369177 B2 JP6369177 B2 JP 6369177B2
Authority
JP
Japan
Prior art keywords
description
source code
specifying information
line
development support
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.)
Expired - Fee Related
Application number
JP2014139439A
Other languages
Japanese (ja)
Other versions
JP2016018307A (en
Inventor
山村 太一
太一 山村
浩史 須永
浩史 須永
斎 齊藤
斎 齊藤
知朗 山本
知朗 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014139439A priority Critical patent/JP6369177B2/en
Publication of JP2016018307A publication Critical patent/JP2016018307A/en
Application granted granted Critical
Publication of JP6369177B2 publication Critical patent/JP6369177B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は,開発支援プログラム,開発支援方法及び開発支援装置に関する。   The present invention relates to a development support program, a development support method, and a development support apparatus.

開発支援プログラムは,コーディングされたソースコードを解析し,様々な観点で問題があると疑われる問題箇所を検出し,検出した問題箇所と疑われる問題点を記載する問題指摘文とを共に出力する。具体的には,開発支援プログラムは,コンピュータにより実行されることで,解析対象であるソースコードを実行することなく,ソースコードを構文解析し,文法ミス,変数の定義ミス,プログラム実行時に獲得したメモリ領域の解放処理の欠如,論理的ミスなどの問題が疑がわれる問題箇所を検出し,全ての問題箇所の行番号と,問題箇所として検出した理由である問題点を記述する問題指摘文とを共にリスト化した問題箇所出力データを生成する。   The development support program analyzes the coded source code, detects problem areas that are suspected of having problems from various viewpoints, and outputs both the detected problem areas and problem indications that describe the suspected problems. . Specifically, the development support program is executed by a computer, and the source code is parsed without executing the source code to be analyzed, and the grammatical error, variable definition error, and program acquisition are acquired. Detect problem areas that are suspected of problems such as lack of memory area release processing, logical mistakes, etc., and problem indication statements that describe the line numbers of all problem areas and the problems that are the reason for the detection The problem part output data which lists together is generated.

開発支援プログラムについては,例えば,以下の特許文献に記載されている。   The development support program is described in the following patent document, for example.

開発支援プログラムが全ての問題箇所と問題指摘文を出力することは,最初にソースコードを開発する段階では,有用である。なぜなら,ソースコード上の問題が疑われる全ての箇所をプログラム開発者がチェックし,必要な修正を加えることができるからである。この場合,プログラム開発者は,問題が疑われる全ての問題箇所を問題指摘文を参考にして検討し,必要な場合に修正を加える。したがって,一部の問題箇所はチェックした結果問題が見いだされず,なんら修正を加えられない場合もある。   It is useful for the development support program to output all problem locations and problem indications at the initial stage of source code development. This is because the program developer can check all possible parts of the source code and make the necessary corrections. In this case, the program developer examines all problem areas that are suspected of problems with reference to the problem indication sentence, and makes corrections if necessary. Therefore, some problems may not be found as a result of checking, and no correction may be made.

しかしながら,初版のまたは以前のソースコードを変更または追加して改版する段階では,以前のソースコードに残っている問題箇所は既に検討済みである。したがって,以前から残っている問題箇所は,改版のソースコードに対する問題箇所の出力データから除外することが求められる。除外することで,問題箇所リストに基づくチェック工程を短縮することができる。   However, at the stage of revising the original or previous source code by changing or adding it, the problems remaining in the previous source code have already been considered. Therefore, it is necessary to exclude the problem part that has remained from before from the output data of the problem part for the revised source code. By excluding it, the check process based on the problem location list can be shortened.

以前のソースコードに対して出力された問題箇所を含む一連の処理を記述するソースコードのブロック,例えばサブルーチン,メソッド,関数(以下代表してサブルーチンと称する)と,改版のソースコードに対して出力された問題箇所を含むサブルーチンとが同じ場合は,問題箇所が重複している可能性が高い。そこで,開発支援プログラムは,改版のソースコードで検出した問題箇所を含むサブルーチンが,以前のソースコードで検出した問題箇所のサブルーチンと一致する場合は,同じ箇所に対する問題箇所と見なして,その問題箇所を改版のソースコードの問題箇所出力データから除外することを行う。   A block of source code that describes a series of processes including the problem part output for the previous source code, for example, a subroutine, a method, a function (hereinafter referred to as a subroutine), and an output for the revised source code If the subroutine containing the problem part is the same, there is a high possibility that the problem part is duplicated. Therefore, the development support program considers the problem location for the same location if the subroutine containing the problem location detected in the revised source code matches the problem location subroutine detected in the previous source code. Is excluded from the problem part output data of the revised source code.

特開2004−126866号公報JP 2004-126866 A 特開平05−94343号公報JP 05-94343 A

しかし,問題箇所を含むサブルーチンのソースコードが一致するか否かに基づいて重複する問題箇所を検出するためには,以前のソースコードを保持しておく必要があり,管理する資産量が多くなり,また,問題箇所を含むサブルーチンが一致するか否かの処理時間が長く,解析のスループットが悪くなる。さらに,改版されたソースコードには様々な変更が加えられるため,単にサブルーチンが一致するか否かで判断した場合,以前のソースコードに対する問題箇所に対して影響を与えないマイナーな変更しか加えられていない場合も,サブルーチンが不一致となり,実質的に重複する問題箇所を除外することができない。   However, in order to detect a duplicate problem location based on whether or not the source code of the subroutine containing the problem location matches, it is necessary to retain the previous source code, which increases the amount of assets to be managed. In addition, the processing time for determining whether or not the subroutine including the problem part matches is long, and the analysis throughput deteriorates. In addition, since various changes are made to the revised source code, only minor changes that do not affect the problem part of the previous source code are made if it is judged simply by whether or not the subroutine matches. Even if they are not, the subroutines do not match, and it is not possible to exclude the duplicated problems.

そこで,実施の形態の第1の側面の目的は,改版されたソースコードの問題箇所から以前のソースコードの問題箇所と重複する箇所を除外して出力する開発支援プログラム,開発支援方法及び開発支援装置を提供することにある。   Therefore, the purpose of the first aspect of the embodiment is to provide a development support program, a development support method, and a development support that excludes a part of a revised source code from a part that overlaps with a part of the previous source code and outputs it. To provide an apparatus.

本実施の形態の第1の態様では,
第1のソースコードを更新して生成された第2のソースコードを解析して第2の問題箇所を検出し,
前記第2の問題箇所が記述されているサブルーチンの先頭から少なくとも前記第2の問題箇所までの記述を特定する第2の記述特定情報を生成し,
前記第2のソースコードを解析して検出した前記第2の問題箇所に対応する前記第2の記述特定情報が,前記第1のソースコードを解析して検出された第1の問題箇所に対応する第1の記述特定情報と一致する場合に,前記第2の問題箇所を,前記第2のソースコードの問題箇所としての出力の対象から除外する,
処理をコンピュータに実行させるコンピュータ読み取り可能な開発支援プログラムである。
In the first aspect of the present embodiment,
Analyzing the second source code generated by updating the first source code to detect the second problem portion;
Generating second description specifying information for specifying a description from the top of a subroutine in which the second problem part is described to at least the second problem part;
The second description specifying information corresponding to the second problem location detected by analyzing the second source code corresponds to the first problem location detected by analyzing the first source code. The second problem location is excluded from the output target as the problem location of the second source code when the first description specifying information matches.
A computer-readable development support program that causes a computer to execute processing.

第1の側面によれば,改版されたソースコードの問題箇所から以前のソースコードの問題箇所と重複する箇所を除外して出力する。   According to the first aspect, a part that overlaps with a problem part of the previous source code is excluded from the problem part of the revised source code and output.

本実施の形態の開発支援プログラムを実行する開発支援装置の構成を示す図である。It is a figure which shows the structure of the development assistance apparatus which performs the development assistance program of this Embodiment. 第1のソースコードとそれを解析して生成された第1の問題箇所出力データ例と第2のソースコードとそれを解析して生成された第2の問題箇所出力データ例を示す図である。It is a figure which shows the 1st source code, the 1st problem part output data example produced | generated by analyzing it, the 2nd source code, and the 2nd problem part output data example produced | generated by analyzing it. . 本実施の形態における開発支援プログラムを利用した開発支援の工程を示すフローチャート図である。It is a flowchart figure which shows the process of the development assistance using the development assistance program in this Embodiment. 本実施の形態における開発支援プログラムの工程S4,S5の処理のフローチャート図である。It is a flowchart figure of the process of process S4, S5 of the development assistance program in this Embodiment. 図4の工程S44について説明する図である。It is a figure explaining process S44 of FIG. 工程S44において問題箇所を含むサブルーチンを検出する方法について説明する図である。It is a figure explaining the method to detect the subroutine containing a problem location in process S44. 本実施の形態における第1,第2のソースコードとその第1,第2の問題箇所出力データの第1の例を示す図である。It is a figure which shows the 1st, 2nd source code in this Embodiment, and the 1st example of the 1st, 2nd problem location output data. 本実施の形態における第1,第2のソースコードとその第1,第2の問題箇所出力データの第2の例を示す図である。It is a figure which shows the 2nd example of the 1st, 2nd source code in this Embodiment, and its 1st, 2nd problem location output data. 図4の工程S44について説明する別の図である。It is another figure explaining process S44 of FIG. 本実施の形態における第1,第2のソースコードとその第1,第2の問題箇所出力データの第3の例を示す図である。It is a figure which shows the 3rd example of the 1st, 2nd source code in this Embodiment, and its 1st, 2nd problem location output data. 本実施の形態における第1,第2のソースコードとその第1,第2の問題箇所出力データの第4の例を示す図である。It is a figure which shows the 4th example of the 1st, 2nd source code in this Embodiment, and its 1st, 2nd problem location output data. 本実施の形態における第1,第2のソースコードとその第1,第2の問題箇所出力データの第5の例を示す図である。It is a figure which shows the 5th example of the 1st, 2nd source code in this Embodiment, and its 1st, 2nd problem location output data. 本実施の形態における第1,第2のソースコードとその第1,第2の問題箇所出力データの第6の例を示す図である。It is a figure which shows the 6th example of the 1st, 2nd source code in this Embodiment, and its 1st, 2nd problem location output data. 本実施の形態における開発支援プログラムの工程S4,S5の処理の第2のフローチャート図である。It is a 2nd flowchart figure of the process of process S4, S5 of the development assistance program in this Embodiment. 本実施の形態における第1,第2のソースコードとその第1,第2の問題箇所出力データの第7の例を示す図である。It is a figure which shows the 7th example of the 1st, 2nd source code in this Embodiment, and its 1st, 2nd problem location output data.

図1は,本実施の形態の開発支援プログラムを実行する開発支援装置の構成を示す図である。開発支援装置は,開発支援プログラム20と,開発支援プログラムを実行するCPU(Central Processing Unit)10と,開発支援プログラムやデータを一時的に記憶するRAM12と,入出力装置14とを有する。開発支援プログラム20は,例えばハードディスク等の大容量記憶装置に格納される。さらに,開発支援装置は,第1のソースコードを解析して生成された第1のソースコードの問題箇所出力データ22と,解析対象の第2のソースコード24とを大容量記憶装置に格納している。そして,開発支援装置は,開発支援プログラムをCPU10に実行させて,第2のソースコード24を解析し,第2のソースコードの問題箇所出力データ26を生成し,大容量記憶装置に格納する。第2のソースコードの問題箇所出力データ26は,入出力装置14から出力される。   FIG. 1 is a diagram showing a configuration of a development support apparatus that executes the development support program of the present embodiment. The development support apparatus includes a development support program 20, a CPU (Central Processing Unit) 10 that executes the development support program, a RAM 12 that temporarily stores the development support program and data, and an input / output device 14. The development support program 20 is stored in a mass storage device such as a hard disk. Further, the development support apparatus stores the problem source output data 22 of the first source code generated by analyzing the first source code and the second source code 24 to be analyzed in the mass storage device. ing. Then, the development support apparatus causes the CPU 10 to execute the development support program, analyzes the second source code 24, generates problem part output data 26 of the second source code, and stores it in the mass storage device. The problem part output data 26 of the second source code is output from the input / output device 14.

図2は,第1のソースコードとそれを解析して生成された第1の問題箇所出力データ例と第2のソースコードとそれを解析して生成された第2の問題箇所出力データ例を示す図である。第2のソースコード24は,第1のソースコード21の一部を変更し,追加して更新された改版後のソースプログラムのコードである。   FIG. 2 shows a first source code, a first problem part output data example generated by analyzing it, a second source code, and a second problem part output data example generated by analyzing it. FIG. The second source code 24 is a revised version of the source program that has been updated by adding a part of the first source code 21 and updating it.

第1のソースコード21は,ファイル名a.cであり,1−3行のサブルーチンvoid func01と,5−9行のサブルーチンvoid func02とを有する。ここで,サブルーチンとは,一連の処理を記述するソースコードのブロックであり,メソッド,関数などを含む。なお,各サブルーチン内の処理の記述は省略されている。   The first source code 21 includes file names a. c, and has a subroutine void func01 of 1-3 lines and a subroutine void func02 of 5-9 lines. Here, a subroutine is a block of source code that describes a series of processing, and includes methods, functions, and the like. The description of processing in each subroutine is omitted.

図1の開発支援装置は,第1のソースコード21を解析して問題が疑われる問題箇所を検出し,第1の問題箇所出力データ22を生成する。図2の例では,第1のソースコード21のサブルーチンvoid func02内の7行目のif文の括弧内の記述「a+b>c」が,不等号の左辺に括弧がないため問題が疑われると判定され問題箇所として検出される。その結果,第1のソースコード21の第1の問題箇所出力データ22には,ファイル名FILEとして「a.c」,問題箇所を特定する問題箇所行番号30として「7行目」,問題が疑われる理由を記述する問題指摘文32として「if文に誤り」を有する問題箇所のデータが含まれている。なお,以降の図中,問題が疑われている箇所のソースコードには,理解を容易にするため,例えば「NG括弧がない」などのコメントを記述している。   The development support apparatus shown in FIG. 1 analyzes the first source code 21 to detect a problem part where a problem is suspected, and generates first problem part output data 22. In the example of FIG. 2, the description “a + b> c” in the parenthesis of the if statement in the seventh line in the subroutine void func02 of the first source code 21 is judged to be suspected because there is no parenthesis on the left side of the inequality sign. And detected as a problem. As a result, the first problem part output data 22 of the first source code 21 includes “ac” as the file name FILE, “seventh line” as the problem part line number 30 identifying the problem part, and the problem. As the problem indication sentence 32 describing the suspected reason, the data of the problem part having “error in if sentence” is included. In the following figures, comments such as “no NG parentheses” are written in the source code where the problem is suspected to facilitate understanding.

一方,第2のソースコード24は,第1のソースコード21のサブルーチンvoid func01内に,3,4行目のコード41を追加して更新されている。その結果,サブルーチンvoid func02の行番号が7−11行に変更されているが,サブルーチンvoid func02内のソースコードに変更はない。   On the other hand, the second source code 24 is updated by adding the code 41 on the third and fourth lines in the subroutine void func01 of the first source code 21. As a result, the line number of the subroutine void func02 is changed to line 7-11, but the source code in the subroutine void func02 is not changed.

図1の開発支援装置は,第2のソースコード24を解析して問題が疑われる問題箇所を検出し,ファイル名FILEとして「a.c」,問題箇所を特定する問題箇所行番号30として「9行目」,問題が疑われる理由を記述する問題指摘文32として「if文に誤り」を有する問題箇所のデータが含まれる第2の問題箇所出力データ26を出力する。   The development support apparatus shown in FIG. 1 analyzes the second source code 24 to detect a problematic part where the problem is suspected, and “ac” as the file name FILE and “problem part line number 30 identifying the problematic part” 9th line ", the second problem location output data 26 including the data of the problem location having" error in if statement "is output as the problem indication statement 32 describing the reason why the problem is suspected.

しかしながら,第2のソースコード24は,第1のソースコード21内の1−3行目のサブルーチンvoid func01内に行番号3,4の追加コード41が追加されただけであるので,第1のソースコード21内の5−9行目のサブルーチンvoid func02と,第2のソースコード24内の7−11行目のサブルーチンvoid func02とは行番号は異なるが実質的には同じである。したがって,第2の問題箇所出力データ26の問題箇所は,第1の問題箇所データ22の問題箇所と問題箇所行番号30だけが異なるだけであり,問題箇所は実質的に同じであり重複している。   However, since the second source code 24 has only the additional code 41 of line numbers 3 and 4 added to the subroutine void func01 in the first to third lines in the first source code 21, The subroutine void func02 on the 5th to 9th lines in the source code 21 and the subroutine void func02 on the 7th to 11th lines in the second source code 24 are substantially the same, although the line numbers are different. Therefore, the problem part of the second problem part output data 26 is different from the problem part of the first problem part data 22 only in the problem part line number 30, and the problem part is substantially the same and is duplicated. Yes.

そこで,本実施の形態の開発支援プログラムは,上記のような第1のソースコードを解析して得た第1の問題箇所出力データ22と重複する問題箇所を,第2の問題箇所出力データ26から除外する処理を行う。   Therefore, the development support program according to the present embodiment uses the second problem location output data 26 to identify a problem location that overlaps the first problem location output data 22 obtained by analyzing the first source code as described above. Process to be excluded from.

図3は,本実施の形態における開発支援プログラムを利用した開発支援の工程を示すフローチャート図である。まず,開発支援プログラムを利用するユーザは,第1のソースコード21を開発する(S1)。このソースコードの言語は,サブルーチン,C言語,JAVA(登録商標,Sun Microsystems社が開発したプログラミング言語),Visual Basic(Microsoft社のプログラミング言語)等のいずれのプログラミング言語でもよい。   FIG. 3 is a flowchart showing a process of development support using the development support program in the present embodiment. First, the user who uses the development support program develops the first source code 21 (S1). The language of the source code may be any programming language such as a subroutine, C language, JAVA (registered trademark, programming language developed by Sun Microsystems), Visual Basic (programming language of Microsoft).

次に,図1の開発支援装置は,第1のソースコード21を解析し,第1のソースコード21内の問題があると疑われる問題箇所を検出し,その問題箇所と問題指摘文を含む第1の問題箇所出力データ22を出力する(S2)。問題箇所出力データの具体例は,図2で説明したとおりである。   Next, the development support apparatus of FIG. 1 analyzes the first source code 21, detects a problem part suspected of having a problem in the first source code 21, and includes the problem part and a problem indication sentence. First problem location output data 22 is output (S2). A specific example of the problem location output data is as described in FIG.

ユーザは,第1のソースコードの一部を変更,追加して更新し,改版された第2のソースコード24を開発する(S3)。改版された第2のソースコード24は,変更,追加が行われていない一部分では改版前の第1のソースコードと一致し,変更,追加が行われた他の部分では改版前の第1のソースコードと一致しない。   The user changes, adds and updates a part of the first source code, and develops the revised second source code 24 (S3). The revised second source code 24 matches the first source code before the revision in a part where the change or addition is not performed, and the first part before the revision in the other part where the change or addition is performed. Does not match the source code.

そして,開発支援装置は,第2のソースコード24を解析し,第2のソースコード24内の問題があると疑われる問題箇所を検出し,その問題箇所と問題指摘文を含む第2の問題箇所出力データ26_1を出力する(S4)。この第2のソースコードの問題箇所出力データ26_1は,変更,追加が行われていない一部分に対する問題箇所出力データ(旧問題箇所出力データ)と,変更,追加が行われた他の部分に対する問題箇所出力データ(新問題箇所出力データ)とを有する。したがって,旧問題箇所出力データは,第1のソースコードの問題箇所出力データと重複するデータであり,第1のソースコード21のデバッグ工程で原因がチェックされ問題がないことが確認されている問題箇所である。   Then, the development support apparatus analyzes the second source code 24, detects a problem part suspected of having a problem in the second source code 24, and detects the second problem including the problem part and the problem indication sentence. The location output data 26_1 is output (S4). The problem part output data 26_1 of the second source code includes problem part output data for a part that has not been changed or added (old problem part output data) and a problem part for another part that has been changed or added. Output data (new problem location output data). Therefore, the old problem part output data is data that overlaps with the problem part output data of the first source code, and the cause is checked in the debugging process of the first source code 21 and it is confirmed that there is no problem. It is a place.

そこで,開発支援装置は,第2のソースコードの問題箇所出力データの問題箇所26_1から,第1のソースコードの問題箇所出力データ22に含まれる問題箇所と重複する問題箇所を除外する(S5)。その結果,開発支援装置は,第2のソースコードに対する問題箇所出力データとして,第1のソースコードの問題箇所出力データの問題箇所を除外した,新たに問題の有無をチェックする必要がある問題箇所だけを含む問題箇所データを出力する。   Therefore, the development support apparatus excludes from the problem part 26_1 of the problem part output data of the second source code, the problem part that overlaps with the problem part included in the problem part output data 22 of the first source code (S5). . As a result, the development support apparatus needs to newly check whether there is a problem by excluding the problem part of the problem part output data of the first source code as the problem part output data for the second source code. The problem part data including only

本実施の形態の開発支援プログラムは,図3の工程S4とS5をコンピュータに実行させることで,第1のソースコードから更新された第2のソースコードの新規の問題箇所を含む問題箇所出力データを出力する。   The development support program according to the present embodiment causes the computer to execute steps S4 and S5 in FIG. 3 so that the problem location output data including the new problem location of the second source code updated from the first source code is obtained. Is output.

図4は,本実施の形態における開発支援プログラムの工程S4,S5の処理のフローチャート図である。図4中,工程S41−S45は図3の工程S4に対応する処理であり,工程S51−S54は図3の工程S5に対応する処理である。   FIG. 4 is a flowchart of the processes of steps S4 and S5 of the development support program in the present embodiment. 4, steps S41 to S45 are processes corresponding to step S4 in FIG. 3, and processes S51 to S54 are processes corresponding to step S5 in FIG.

開発支援装置は,開発支援プログラムを実行して,第2のソースコードを構文解析し,第2のソースコード中の問題があると疑わしい問題箇所(第2の問題箇所)を検出する(S41)。問題があると疑われる問題箇所には,例えば,文法ミス,変数の定義ミス,プログラム実行時に獲得したメモリ領域の解放処理の欠如,論理的ミスなどの疑いが有る問題箇所が含まれる。   The development support apparatus executes the development support program, parses the second source code, and detects a problem part (second problem part) that is suspected of having a problem in the second source code (S41). . Problems that are suspected of having a problem include, for example, problems that have doubts such as grammatical errors, variable definition errors, lack of memory area release processing acquired during program execution, and logical errors.

そして,開発支援装置は,開発支援プログラムを実行して,第2の問題箇所を検出すると(S42のYES),その第2の問題箇所を検出した理由を指摘する問題指摘文を生成する(S43)。さらに,開発支援装置は,開発支援プログラムを実行して,検出した第2の問題箇所が含まれるサブルーチンの先頭から少なくとも第2の問題箇所までのソースコードの記述を特定する第2の記述特定情報を生成する(S44)。   Then, when the development support apparatus executes the development support program and detects the second problem location (YES in S42), the development support device generates a problem indication statement that points out the reason for detecting the second problem location (S43). ). Further, the development support apparatus executes the development support program, and the second description specifying information for specifying the description of the source code from the top of the subroutine including the detected second problem location to at least the second problem location. Is generated (S44).

第2の記述特定情報は,望ましくは,第2の問題箇所が記述されているサブルーチンの先頭から少なくとも第2の問題箇所までの記述(特定対象の記述)のハッシュ値,符号化コードのいずれかであり,且つ望ましくは特定対象の記述よりもデータ量が少ない情報である。また,第2の記述特定情報は,第2の問題箇所が記述されているサブルーチンの先頭から少なくとも第2の問題箇所までのソースコードの記述そのものであってもよい。   Preferably, the second description specifying information is either a hash value or an encoded code of a description (specification target description) from the top of the subroutine in which the second problem part is described to at least the second problem part. And preferably information having a smaller data amount than the description of the specific object. Further, the second description specifying information may be a description of the source code itself from the top of the subroutine in which the second problem part is described to at least the second problem part.

そして,開発支援装置は,開発支援プログラムを実行して,上記の工程S41−S44を,第2のソースコードの記述全てに対して実行するまで繰り返す(S45)。その結果,開発支援装置は,図3の第2のソースコードの第2の問題箇所出力データ26_1を出力する。   Then, the development support apparatus executes the development support program and repeats the above steps S41 to S44 until all the descriptions of the second source code are executed (S45). As a result, the development support apparatus outputs the second problem location output data 26_1 of the second source code of FIG.

図5は,図4の工程S44について説明する図である。図5には,第2のソースコード24の例として,1行目にサブルーチンvoid func02が示され,サブルーチンvoid func02内の4行目のif文が問題箇所として検出されるものとする。この場合,開発支援装置は,開発支援プログラムを実行して,サブルーチンvoid func02の先頭の1行目から4行目の問題箇所までの記述を問題箇所を特定する特定記述34_1とし,その特定記述34_1のハッシュ値を記述特定情報34として生成する。図5の例では,記述特定情報34は,「415fe51dbefb5・・・」である。記述特定情報34は,前述のとおり,特定記述34_1のハッシュ値以外に,符号化コードなどでもよく,さらに,記述そのもののデータでもよい。   FIG. 5 is a diagram illustrating step S44 in FIG. In FIG. 5, as an example of the second source code 24, a subroutine void func02 is shown on the first line, and the if statement on the fourth line in the subroutine void func02 is detected as a problem location. In this case, the development support device executes the development support program, and the description from the first line to the problem part on the fourth line of the subroutine void func02 is set as the specific description 34_1 for identifying the problem part, and the specific description 34_1. Is generated as the description specifying information 34. In the example of FIG. 5, the description specifying information 34 is “415fe51dbefb5. As described above, the description specifying information 34 may be an encoded code other than the hash value of the specific description 34_1, or may be data of the description itself.

図5には,第2のソースコード24に対して生成された第2の問題箇所出力データ26の例が示されている。第2の問題箇所出力データ26は,ファイル名FILE,問題箇所行30,問題指摘文32,記述特定情報34を有する。但し,記述特定情報34は必ずしも問題箇所出力データ26に含めなくても良く,ファイル名FILE,問題箇所行30,問題指摘文32に関連付けられていればよい。   FIG. 5 shows an example of the second problem location output data 26 generated for the second source code 24. The second problem part output data 26 includes a file name FILE, a problem part line 30, a problem indication sentence 32, and description specifying information 34. However, the description specifying information 34 does not necessarily have to be included in the problem location output data 26 and may be associated with the file name FILE, the problem location line 30, and the problem indication sentence 32.

図6は,工程S44において問題箇所を含むサブルーチンを検出する方法について説明する図である。開発支援装置は,開発支援プログラムを実行することで,BNF(Backus-Naur form)を用いた構文解析を行い,問題箇所を含むサブルーチンを検出する。図6には,サブルーチンの一種であるメソッドのBNF50を示す。BNF50によれば,メソッドの宣言文(MethodDeclaration)は,以下のような構文になることが規定されている。
MethodDeclaration : Type MethodName'(' FormalParameterListopt ')'{' BlockStatementsopt '}'
そこで,開発支援装置は,第2のソースコード24を構文解析し,ソースコード内の要素に分解し,上記のメソッドの宣言文と一致する要素群の記述を検出する。図5には,検出されたメソッドの宣言文の記述を要素に分解した表51が示される。このように,BNF定義によるメソッド宣言文と一致するソースコードの要素群が検出されると,そのソースコードがメソッド宣言文として判定される。このようなBNFを利用した構文解析を行うことで,問題箇所を含むサブルーチンを検出できる。
FIG. 6 is a diagram for explaining a method for detecting a subroutine including a problematic part in step S44. The development support apparatus executes a development support program, performs syntax analysis using BNF (Backus-Naur form), and detects a subroutine including a problem portion. FIG. 6 shows a BNF 50 of a method which is a kind of subroutine. The BNF 50 stipulates that a method declaration statement (MethodDeclaration) has the following syntax.
MethodDeclaration: Type MethodName '(' FormalParameterListopt ')'{'BlockStatementsopt'}'
Therefore, the development support apparatus parses the second source code 24, decomposes it into elements in the source code, and detects the description of the element group that matches the declaration statement of the method. FIG. 5 shows a table 51 in which the description of the declaration statement of the detected method is broken down into elements. Thus, when a source code element group that matches the method declaration statement by the BNF definition is detected, the source code is determined as a method declaration statement. By performing syntax analysis using such BNF, it is possible to detect a subroutine including a problem portion.

図4に戻り,開発支援プログラムの工程S5に対応する工程S51−S54ついて説明する。開発支援装置は,開発支援プログラムを実行することで,第2のソースコードの第2の問題箇所に対応する第2の記述特定情報34が,第1のソースコードを解析して検出した第1の問題箇所に対応する第1の記述特定情報のいずれかと一致するか否かをチェックする(S51)。そして,開発支援装置は,第2の問題箇所の第2の記述特定情報が,第1の問題箇所の第1の記述特定情報のいずれかと一致した場合(S52のYES),その一致した第2の記述特定情報に対応する第2の問題箇所を,第2の問題箇所出力データから除外する(S53)。そして,開発支援装置は,上記の工程S51−S53を全ての第2の問題箇所について実行する(S54)。   Returning to FIG. 4, steps S51 to S54 corresponding to step S5 of the development support program will be described. The development support apparatus executes the development support program, whereby the second description specifying information 34 corresponding to the second problem location of the second source code detects the first source code detected by analyzing the first source code. It is checked whether it matches any of the first description specifying information corresponding to the problem part (S51). Then, when the second description specifying information of the second problem location matches any of the first description specifying information of the first problem location (YES in S52), the development support apparatus determines the matching second The second problem location corresponding to the description specifying information is excluded from the second problem location output data (S53). Then, the development support apparatus executes the above steps S51-S53 for all the second problem locations (S54).

上記の工程S51を実行するためには,開発支援装置は,第1のソースコードを解析して第1の問題箇所を検出した際に,その第1の問題箇所に対応する第1の記述特定情報を生成しておく。この第1の記述特定情報を,第1の問題箇所に対応付けて出力データに含めておくことが望ましい。   In order to execute the above step S51, when the development support apparatus analyzes the first source code and detects the first problem location, the development support apparatus identifies the first description corresponding to the first problem location. Generate information. This first description specifying information is preferably included in the output data in association with the first problem location.

記述特定情報により特定される記述を,サブルーチンの先頭から少なくとも問題箇所までの記述とした理由は,次のとおりである。すなわち,図2で示された問題箇所のif文は,サブルーチンvoid func02内に含まれ,その文法ミス,定義ミス,論理矛盾などは問題箇所のif文より前の記述に依存するのが一般的である。したがって,問題箇所を含むサブルーチンの先頭から最後までの記述を特定対象の記述として,第1のソースコードの問題箇所に対応する記述特定情報と比較する必要は必ずしもない。問題箇所を含むサブルーチンの先頭から最後までの記述を特定記述情報が特定する記述とすると,特定記述情報のデータ量が大きくなるだけでなく,問題箇所の後にその問題箇所に直接影響を与えない記述の変更や追加が行われた場合に,問題箇所が実質的に同じ問題点に対応するものであっても,第1のソースコードでは検出されなかった新たな問題箇所として検出されてしまう。   The reason why the description specified by the description specifying information is the description from the beginning of the subroutine to at least the problem part is as follows. In other words, the if statement at the problem location shown in FIG. 2 is included in the subroutine void func02, and its grammatical error, definition error, logical contradiction, etc. generally depend on the description before the if statement at the problem location. It is. Therefore, it is not always necessary to compare the description from the beginning to the end of the subroutine including the problem part with the description specifying information corresponding to the problem part of the first source code as the description of the specification target. If the description from the beginning to the end of the subroutine containing the problem location is a description specified by the specific description information, not only does the data amount of the specific description information increase, but also the description that does not directly affect the problem location after the problem location. When a change or addition is made, even if the problem part corresponds to the substantially same problem, it is detected as a new problem part that was not detected in the first source code.

但し,問題箇所の記述が繰り返し制御記述(具体的にはループ文)内に含まれる場合は,記述特定情報として,問題箇所が記述されているサブルーチンの先頭からその問題箇所の記述を含む繰り返し制御記述(ループ文)の最後までの記述を特定する情報にする。ループ文の場合は,問題箇所の後の記述が問題箇所の記述に影響を与えるからである。このループ文の最後までの記述の場合であっても,サブルーチンの先頭から最後までの記述よりも特定対象の記述は少なくなり,さらに,ループ文の後に修正や追加が行われた場合でも実質t的に同じ問題箇所を検出できる。   However, if the description of the problem location is included in the repetitive control description (specifically, a loop statement), the repetitive control including the description of the problem location from the beginning of the subroutine in which the problem location is described as description specifying information. Information that specifies the description up to the end of the description (loop statement). In the case of a loop statement, the description after the problem part affects the description of the problem part. Even in the case of the description up to the end of this loop statement, the description of the specific target is less than the description from the beginning to the end of the subroutine, and even if corrections or additions are made after the loop statement, it is substantially t The same problem can be detected.

[第1の第1,第2のソースコード例]
図7は,本実施の形態における第1,第2のソースコードとその第1,第2の問題箇所出力データの第1の例を示す図である。図7には,図3,図4の開発支援プログラムにより解析された第1,第2のソースコード21,24の例と,生成された第1,第2の問題箇所出力データ22,26の例が示されている。この例において,第2の問題箇所出力データ26から第1の問題箇所出力データ22と重複する問題箇所を除外する処理について説明する。
[First and second source code examples]
FIG. 7 is a diagram showing a first example of the first and second source codes and the first and second problem location output data in the present embodiment. FIG. 7 shows examples of the first and second source codes 21 and 24 analyzed by the development support program of FIGS. 3 and 4 and the generated first and second problem part output data 22 and 26. An example is shown. In this example, a process for excluding a problem location that overlaps with the first problem location output data 22 from the second problem location output data 26 will be described.

第1のソースコード21は,問題が疑われる問題箇所として,7行目のif文と,12行目のif文とを有している。そして,7行目のif文は5行目のサブルーチンvoid func02内の記述であり,12行目のif文は10行目のサブルーチンvoid func03内の記述である。   The first source code 21 has an if statement on the seventh line and an if statement on the twelfth line as a problem part where a problem is suspected. The if statement on the 7th line is a description in the subroutine void func02 on the 5th line, and the if statement on the 12th line is a description in the subroutine void func03 on the 10th line.

そこで,開発支援装置は,開発支援プログラムを実行することで,7行目のif文に対する第1の問題箇所出力データ22_1として,そのファイル名「a.c」,問題箇所行「7行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「415fe51dbefb5・・・」を生成する。この記述特定情報は,第1のソースコード21内の7行目のif文を含むサブルーチンvoid func02の先頭の5行目から7行目の問題箇所までの記述34_1のハッシュ値である。   Therefore, the development support apparatus executes the development support program, so that the file name “ac”, the problem location line “7th line”, and the problem are output as the first problem location output data 22_1 for the “if” statement on the 7th row. Data including an indication sentence “error in if sentence” is generated, and description specific information “415fe51dbefb5. This description specifying information is a hash value of the description 34_1 from the first 5th line to the 7th problem area of the subroutine void func02 including the if statement in the 7th line in the first source code 21.

また,開発支援装置は,開発支援プログラムを実行することで,12行目のif文に対する第1の問題箇所出力データ22_2として,そのファイル名「a.c」,問題箇所行「12行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「28ac3741de65・・・」を生成する。この記述特定情報は,第1のソースコード21内の12行目のif文を含むサブルーチンvoid func03の先頭の10行目から12行目の問題箇所までの記述34_2のハッシュ値である。   Further, the development support apparatus executes the development support program, so that the file name “ac”, the problem location line “12th line”, the problem as the first problem location output data 22_2 for the if statement on the 12th line. Data including the indicated sentence “error in if sentence” is generated, and the description specifying information “28ac3741de65...” Corresponding thereto is generated. This description specifying information is a hash value of the description 34_2 from the first 10th line to the problem part on the 12th line of the subroutine void func03 including the if statement on the 12th line in the first source code 21.

一方,第2のソースコード24には,第1のソースコード21に対して,3,4行目の記述42と14行目の記述42が追加されている。それに伴い,第2のソースコード24は,問題が疑われる問題箇所として,9行目のif文と,15行目のif文とを有している。そして,9行目のif文は7行目のサブルーチンvoid func02内の記述であり,15行目のif文は12行目のサブルーチンvoid func03内の記述である。   On the other hand, in the second source code 24, a description 42 in the third and fourth lines and a description 42 in the fourteenth line are added to the first source code 21. Accordingly, the second source code 24 has an if statement on the ninth line and an if statement on the fifteenth line as a problem portion where the problem is suspected. The if statement on the 9th line is a description in the subroutine void func02 on the 7th line, and the if statement on the 15th line is a description in the subroutine void func03 on the 12th line.

そこで,開発支援装置は,開発支援プログラムを実行することで,9行目のif文に対する第2の問題箇所出力データ26_1として,そのファイル名「a.c」,問題箇所行「9行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「415fe51dbefb5・・・」を生成する。この記述特定情報は,第2のソースコード24内の9行目のif文を含むサブルーチンvoid func02の先頭の7行目から9行目の問題箇所までの記述34_3のハッシュ値である。   Therefore, the development support apparatus executes the development support program, so that the file name “ac”, the problem location line “9th line”, and the problem are output as the second problem location output data 26_1 for the “if” statement on the 9th line. Data including an indication sentence “error in if sentence” is generated, and description specific information “415fe51dbefb5. This description specifying information is a hash value of the description 34_3 from the first 7th line to the 9th line problem part of the subroutine void func02 including the if statement in the 9th line in the second source code 24.

また,開発支援装置は,開発支援プログラムを実行することで,15行目のif文に対する第2の問題箇所出力データ26_2として,そのファイル名「a.c」,問題箇所行「15行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「13fe28dd5690・・・」を生成する。この記述特定情報は,第2のソースコード24内の15行目のif文を含むサブルーチンvoid func03の先頭の12行目から15行目の問題箇所までの記述34_3のハッシュ値である。   Further, the development support apparatus executes the development support program, so that the file name “ac”, the problem location line “15th line”, the problem as the second problem location output data 26_2 for the if statement on the 15th line. Data including the indication sentence “error in if sentence” is generated, and description specific information “13fe28dd5690...” Corresponding to the data is generated. This description specifying information is a hash value of the description 34_3 from the first 12th line to the 15th problem part of the subroutine void func03 including the if statement on the 15th line in the second source code 24.

そこで,開発支援装置は,開発支援プログラムを実行して,図4のS51−S54の重複する問題箇所を除外する処理を行う。すなわち,開発支援装置は,第2の問題箇所出力データ26_1の記述特定情報が,第1の問題箇所出力データ22_1,22_2のいずれかの記述特定情報と一致するか否かをチェックする(S51)。図7の例では,第2の問題箇所出力データ26_1の記述特定情報「415fe51dbefb5・・・」が,第1の問題箇所出力データ22_1の記述特定情報と一致することが検出される。その結果,第2の問題箇所出力データ26から9行目のif文に対する第2の問題箇所出力データ26_1を除外する(S53)。つまり,第2の問題箇所出力データ26_1は,第1の問題箇所出力データ22_1と行番号は異なるが,記述特定情報が一致するので,第2の問題箇所出力データ26_1と第1の問題箇所出力データ22_1は,同じ対象のif文を問題箇所として検出した出力データであることが理解できる。   Therefore, the development support apparatus executes the development support program, and performs a process of excluding duplicate problem portions in S51 to S54 in FIG. That is, the development support apparatus checks whether or not the description specifying information of the second problem location output data 26_1 matches the description specification information of the first problem location output data 22_1 and 22_2 (S51). . In the example of FIG. 7, it is detected that the description specifying information “415fe51dbefb5...” Of the second problem location output data 26_1 matches the description specification information of the first problem location output data 22_1. As a result, the second problem location output data 26_1 for the if statement on the ninth line is excluded from the second problem location output data 26 (S53). In other words, the second problem location output data 26_1 is different in the line number from the first problem location output data 22_1, but the description specifying information matches, so the second problem location output data 26_1 and the first problem location output data 26_1 are output. It can be understood that the data 22_1 is output data obtained by detecting the same if sentence as the problem part.

次に,開発支援装置は,第2の問題箇所出力データ26_2の記述特定情報が,第1の問題箇所出力データ22_1,22_2のいずれかの記述特定情報と一致するか否かをチェックする(S51)。図7の例では,第2の問題箇所出力データ26_2の記述特定情報「13fe28dd5690・・・」が,第1の問題箇所出力データ22_2の記述特定情報と不一致であることが検出される。すなわち,第2のソースコード24は,第1のソースコード21に14行目の記述42が追加されているので,その14行目の記述42が15行目のif文に影響を与える可能性があり,15行目のif文に対する問題箇所は除外すべきではない。そこで,第2の問題箇所出力データ26_2については,記述特定情報が不一致になり,その結果,15行目のif文に対する第2の問題箇所出力データ26_2が除外されることなく第2の問題箇所出力データ26に含められる。このように,第2のソースコード24に対する問題箇所に影響を与える14行目の記述42の存在が,記述特定情報の照合での不一致判定により確認され,必要な問題箇所が除外されることを抑制している。   Next, the development support apparatus checks whether or not the description specifying information of the second problem location output data 26_2 matches the description specification information of the first problem location output data 22_1 and 22_2 (S51). ). In the example of FIG. 7, it is detected that the description specifying information “13fe28dd5690...” Of the second problem location output data 26_2 does not match the description specification information of the first problem location output data 22_2. That is, since the description 42 of the 14th line is added to the first source code 21 in the second source code 24, the description 42 of the 14th line may affect the if statement of the 15th line. The problem part for the if statement on the 15th line should not be excluded. Accordingly, the description specifying information does not match for the second problem location output data 26_2, and as a result, the second problem location output data 26_2 for the if statement on the 15th line is not excluded. It is included in the output data 26. In this way, the existence of the description 42 in the 14th line that affects the problem location for the second source code 24 is confirmed by the mismatch determination in the collation of the description specifying information, and the necessary problem location is excluded. Suppressed.

[第2の第1,第2のソースコード例]
図8は,本実施の形態における第1,第2のソースコードとその第1,第2の問題箇所出力データの第2の例を示す図である。図8には,図3,図4の開発支援プログラムにより解析された第1,第2のソースコードの例と,生成された第1,第2の問題箇所出力データの例が示されている。この例において,第2の問題箇所出力データから第1の問題箇所出力データと重複する問題箇所を除外する処理について説明する。
[Second and first source code examples]
FIG. 8 is a diagram showing a second example of the first and second source codes and the first and second problem location output data in the present embodiment. FIG. 8 shows an example of the first and second source codes analyzed by the development support program of FIGS. 3 and 4 and an example of the generated first and second problem location output data. . In this example, a process for excluding a problem location that overlaps with the first problem location output data from the second problem location output data will be described.

図8の例では,第2のソースコード24には,第1のソースコード21に対して6,7行目の記述43が追加されている。しかし,この追加の記述43は,4行目のif文の後の記述であり,4行目のif文の問題点に影響を与えない。   In the example of FIG. 8, descriptions 43 in the sixth and seventh lines are added to the second source code 24 with respect to the first source code 21. However, this additional description 43 is a description after the if statement on the fourth line, and does not affect the problem of the if statement on the fourth line.

この場合,第1のソースコード21に対して,4行目のif文に対する第1の問題指摘出力データ22_1が生成され,その4行目の問題箇所の記述を含む特定記述34_1のハッシュ値である記述特定情報「415fe51dbefb5・・・」が生成されている。さらに,第2のソースコード24に対して,4行目のif文に対する第2の問題指摘出力データ26_1が生成され,その4行目の問題箇所の記述を含む特定記述34_3のハッシュ値である記述特定情報「415fe51dbefb5・・・」が生成されている。第1,第2の問題指摘出力データの問題箇所を含むサブルーチンvoid func02の先頭から問題箇所までの特定記述34_1,34_3が一致しているので,それらのハッシュ値である記述特定情報も一致している。その結果,第2の問題箇所出力データ26_2は第2の問題箇所出力データ26から除外される。この例では,第1,第2の問題箇所出力データ22_1,26_1はファイル名,行番号,問題指摘文,記述特定情報は全て一致しているので,当然に除外される。   In this case, the first problem indication output data 22_1 for the if statement in the fourth line is generated for the first source code 21, and the hash value of the specific description 34_1 including the description of the problem part in the fourth line is generated. Certain description specifying information “415fe51dbefb5...” Is generated. Further, the second problem indication output data 26_1 for the if statement on the fourth line is generated for the second source code 24, and the hash value of the specific description 34_3 including the description of the problem part on the fourth line. Description specific information “415fe51dbefb5...” Is generated. Since the specific descriptions 34_1 and 34_3 from the beginning of the subroutine void func02 including the problem part of the first and second problem indication output data match, the description specification information which is their hash value also matches. Yes. As a result, the second problem location output data 26_2 is excluded from the second problem location output data 26. In this example, the first and second problem part output data 22_1 and 26_1 are excluded because they all match the file name, line number, problem indication sentence, and description specifying information.

[問題箇所がループ内に含まれる例]
図9は,図4の工程S44について説明する別の図である。図9には,第2のソースコード24の例として,1行目にサブルーチンvoid func02が示され,サブルーチンvoid func02内の4行目のif文が問題箇所として検出される例が示されている。この例では,4行目のif文の問題箇所の記述が,3行目〜5行目のfor文からなるループ内の記述されている。
[Example where problem area is included in loop]
FIG. 9 is another diagram illustrating step S44 of FIG. FIG. 9 shows an example in which the subroutine void func02 is shown on the first line and the if statement on the fourth line in the subroutine void func02 is detected as a problem part as an example of the second source code 24. . In this example, the description of the problem part of the if statement on the fourth line is described in a loop composed of the for sentence on the third to fifth lines.

この場合,開発支援装置は,開発支援プログラムを実行して,サブルーチンvoid func02の先頭の1行目から4行目の問題箇所を含むループの最終行の7行目までの記述を問題箇所を特定する特定記述34_5とし,その特定記述34_5のハッシュ値を記述特定情報34として生成する。   In this case, the development support device executes the development support program and identifies the problem part from the first line of the subroutine void func02 to the seventh line of the last line of the loop including the problem part of the fourth line. And a hash value of the specific description 34_5 is generated as the description specifying information 34.

図9には,第2のソースコード24に対して生成された第2の問題箇所出力データ26の例が示されている。第2の問題箇所出力データ26は,ファイル名FILE,問題箇所行30,問題指摘文32に加えて,記述特定情報34を有する。または,記述特定情報34は,ファイル名FILE,問題箇所行30,問題指摘文32に関連付けられている。前述のとおり,問題箇所がループの中にある場合は,問題箇所の後にある追加または変更された記述であっても,ループ内の記述は,問題箇所に影響を及ぼすおそれがある。したがって,記述特定情報34により特定される記述は,問題箇所を含むサブルーチンの先頭から問題箇所を含むループの最後の行までとすることが望ましい。   FIG. 9 shows an example of the second problem location output data 26 generated for the second source code 24. The second problem part output data 26 includes description specifying information 34 in addition to the file name FILE, the problem part line 30, and the problem indication sentence 32. Alternatively, the description specifying information 34 is associated with the file name FILE, the problem part line 30, and the problem indication sentence 32. As described above, if the problem part is in the loop, the description in the loop may affect the problem part even if the description is added or changed after the problem part. Therefore, it is desirable that the description specified by the description specifying information 34 is from the top of the subroutine including the problem part to the last line of the loop including the problem part.

[第3の第1,第2のソースコード例]
図10は,本実施の形態における第1,第2のソースコードとその第1,第2の問題箇所出力データの第3の例を示す図である。図10には,図3,図4の開発支援プログラムにより解析された第1,第2のソースコード21,24の例と,生成された第1,第2の問題箇所出力データ22,26の例が示されている。この例は,問題箇所がループ内に記述されている例である。この例において,第2の問題箇所出力データから第1の問題箇所出力データと重複する問題箇所を除外する処理について説明する。
[Third first and second source code examples]
FIG. 10 is a diagram showing a third example of the first and second source codes and the first and second problem location output data in the present embodiment. FIG. 10 shows examples of the first and second source codes 21 and 24 analyzed by the development support program shown in FIGS. 3 and 4, and the generated first and second problem location output data 22 and 26. An example is shown. In this example, the problem part is described in a loop. In this example, a process for excluding a problem location that overlaps with the first problem location output data from the second problem location output data will be described.

第1のソースコード21は,問題が疑われる問題箇所として,8行目のif文と,16行目のif文とを有している。そして,7行目のif文は5行目のサブルーチンvoid func02内の記述であり7行目〜10行目のループ内の記述であり,12行目のif文は10行目のサブルーチンvoid func03内の記述であり15行目〜18行目のループ内の記述である。   The first source code 21 has an if statement on the 8th line and an if statement on the 16th line as the problem part where the problem is suspected. The if statement on the 7th line is the description in the subroutine void func02 on the 5th line and the description in the loop on the 7th to 10th lines, and the if statement on the 12th line is the subroutine void func03 on the 10th line. This is a description in the loop of the 15th to 18th lines.

そこで,開発支援装置は,開発支援プログラムを実行することで,8行目のif文に対する第1の問題箇所出力データ22_3として,そのファイル名「a.c」,問題箇所行「8行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「415fe51dbefb5・・・」を生成する。この記述特定情報は,第1のソースコード21内の8行目のif文を含むサブルーチンvoid func02の先頭の5行目からループ文の最後の10行目までの記述34_5のハッシュ値である。   Therefore, the development support apparatus executes the development support program, and as the first problem location output data 22_3 for the if statement on the 8th row, the file name “ac”, the problem location line “8th line”, the problem Data including an indication sentence “error in if sentence” is generated, and description specific information “415fe51dbefb5. This description specifying information is a hash value of the description 34_5 from the first 5th line of the subroutine void func02 including the if statement in the 8th line in the first source code 21 to the last 10th line of the loop statement.

また,開発支援装置は,開発支援プログラムを実行することで,16行目のif文に対する第1の問題箇所出力データ22_4として,そのファイル名「a.c」,問題箇所行「16行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「28ac3741de65・・・」を生成する。この記述特定情報は,第1のソースコード21内の16行目のif文を含むサブルーチンvoid func03の先頭の13行目からループ文の最後の18行目までの記述34_6のハッシュ値である。   Further, the development support apparatus executes the development support program, so that the file name “ac”, the problem location line “16th line”, the problem as the first problem location output data 22_4 for the if statement on the 16th line. Data including the indicated sentence “error in if sentence” is generated, and the description specifying information “28ac3741de65...” Corresponding thereto is generated. This description specifying information is a hash value of the description 34_6 from the first 13th line of the subroutine void func03 including the if statement of the 16th line in the first source code 21 to the last 18th line of the loop statement.

なお,第1の問題箇所出力データ22_3,22_4内の記述特定情報のハッシュ値は,簡単のために,図7の例と同じになっている。   Note that the hash value of the description specifying information in the first problem location output data 22_3 and 22_4 is the same as the example of FIG. 7 for simplicity.

一方,第2のソースコード24は,第1のソースコード21に対して,3,4行目の記述44と20行目の記述44を追加して生成されている。それに伴い,第2のソースコード24は,10行目のif文と,18行目のif文とを,問題が疑われる問題箇所として有している。そして,10行目のif文は7行目のサブルーチンvoid func02内の記述であり9行目〜12行目のループ文内の記述であり,18行目のif文は15行目のサブルーチンvoid func03内の記述であり17−21行目のループ文内にある。   On the other hand, the second source code 24 is generated by adding a description 44 in the third and fourth lines and a description 44 in the twentieth line to the first source code 21. Accordingly, the second source code 24 has an if sentence on the 10th line and an if sentence on the 18th line as a problem part where a problem is suspected. The if statement on the 10th line is the description in the subroutine void func02 on the 7th line, the description in the loop statement on the 9th to 12th lines, and the if statement on the 18th line is the subroutine void on the 15th line. This is a description in func03 and is in the loop statement on lines 17-21.

そこで,開発支援装置は,開発支援プログラムを実行することで,10行目のif文に対する第2の問題箇所出力データ26_3として,そのファイル名「a.c」,問題箇所行「10行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「415fe51dbefb5・・・」を生成する。この記述特定情報は,第2のソースコード24内の10行目のif文を含むサブルーチンvoid func02の先頭の7行目からループ文の最後の12行目までの記述34_7のハッシュ値である。   Therefore, the development support apparatus executes the development support program, so that the file name “ac”, the problem location line “10th line”, the problem as the second problem location output data 26_3 for the if statement on the 10th line. Data including an indication sentence “error in if sentence” is generated, and description specific information “415fe51dbefb5. This description specifying information is a hash value of the description 34_7 from the first 7th line of the subroutine void func02 including the if statement of the 10th line in the second source code 24 to the last 12th line of the loop statement.

また,開発支援装置は,開発支援プログラムを実行することで,18行目のif文に対する第2の問題箇所出力データ26_4として,そのファイル名「a.c」,問題箇所行「18行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「13fe28dd5690・・・」を生成する。この記述特定情報は,第2のソースコード24内の18行目のif文を含むサブルーチンvoid func03の先頭の15行目からループ文の最後の21行目までの記述34_8のハッシュ値である。   Further, the development support apparatus executes the development support program, so that the file name “ac”, the problem location line “18th line”, the problem is output as the second problem location output data 26_4 for the if statement on the 18th line. Data including the indication sentence “error in if sentence” is generated, and description specific information “13fe28dd5690...” Corresponding to the data is generated. This description specifying information is a hash value of the description 34_8 from the first 15th line of the subroutine void func03 including the if statement in the 18th line in the second source code 24 to the last 21st line of the loop statement.

そこで,開発支援装置は,開発支援プログラムを実行して,図4のS51−S54の重複する問題箇所を除外する処理を行う。すなわち,開発支援装置は,第2の問題箇所出力データ26_3の記述特定情報が,第1の問題箇所出力データ22_3,22_4のいずれかの記述特定情報と一致するか否かをチェックする(S51)。図10の例では,第2の問題箇所出力データ26_3の記述特定情報「415fe51dbefb5・・・」が,第1の問題箇所出力データ22_3の記述特定情報と一致することが検出される。その結果,第2の問題箇所出力データ26から10行目のif文に対する第2の問題箇所出力データ26_3を除外する(S53)。つまり,第2の問題箇所出力データ26_3は,第1の問題箇所出力データ22_3と行番号は異なるが,記述特定情報は一致するので,第2の問題箇所出力データ26_3と第1の問題箇所出力データ22_3は,同じ対象のif文を問題箇所として検出したことが理解できる。   Therefore, the development support apparatus executes the development support program, and performs a process of excluding duplicate problem portions in S51 to S54 in FIG. That is, the development support apparatus checks whether the description specifying information of the second problem location output data 26_3 matches the description specification information of any of the first problem location output data 22_3 and 22_4 (S51). . In the example of FIG. 10, it is detected that the description specifying information “415fe51dbefb5...” Of the second problem location output data 26_3 matches the description specification information of the first problem location output data 22_3. As a result, the second problem location output data 26_3 for the if statement on the 10th line is excluded from the second problem location output data 26 (S53). That is, the second problem location output data 26_3 is different in the line number from the first problem location output data 22_3, but the description specifying information matches. Therefore, the second problem location output data 26_3 and the first problem location output data 26_3 are output. It can be understood from the data 22_3 that the same if sentence is detected as a problem location.

次に,開発支援装置は,第2の問題箇所出力データ26_4の記述特定情報が,第1の問題箇所出力データ22_3,22_4のいずれかの記述特定情報と一致するか否かをチェックする(S51)。図10の例では,第2の問題箇所出力データ26_4の記述特定情報「13fe28dd5690・・・」が,第1の問題箇所出力データ22_4の記述特定情報と不一致であることが検出される。すなわち,第2のソースコード24には,第1のソースコード21に20行目の記述45が追加され,その記述45は18行目のif文の問題箇所と同じループ文内にあるので,その記述45が18行目のif文に影響を与える可能性があり,18行目のif文に対する問題箇所は除外すべきではない。そこで,第2の問題箇所出力データ26_4については,記述特定情報が不一致になり,その結果,18行目のif文に対する第2の問題箇所出力データ26_4は除外されることなく第2の問題箇所出力データ26に含められる。このように,第2のソースコード24に対する問題箇所に影響を与える20行目の記述45の存在が,記述特定情報の照合による不一致判定により確認され,必要な問題箇所が除外されることを抑制している。   Next, the development support apparatus checks whether or not the description specifying information of the second problem location output data 26_4 matches the description specification information of any of the first problem location output data 22_3 and 22_4 (S51). ). In the example of FIG. 10, it is detected that the description specifying information “13fe28dd5690...” Of the second problem location output data 26_4 does not match the description specification information of the first problem location output data 22_4. That is, in the second source code 24, a description 45 on the 20th line is added to the first source code 21, and the description 45 is in the same loop statement as the problem part of the if statement on the 18th line. The description 45 may affect the “if” sentence on the 18th line, and the problematic part for the “if” sentence on the 18th line should not be excluded. Therefore, the description specific information does not match for the second problem location output data 26_4, and as a result, the second problem location output data 26_4 for the if statement on the 18th line is not excluded. It is included in the output data 26. In this way, the presence of the description 45 on the 20th line that affects the problem location for the second source code 24 is confirmed by the mismatch determination by collation of the description specifying information, and the necessary problem location is prevented from being excluded. doing.

[第4の第1,第2のソースコード例]
図11は,本実施の形態における第1,第2のソースコードとその第1,第2の問題箇所出力データの第4の例を示す図である。図11には,図3,図4の開発支援プログラムにより解析された第1,第2のソースコード21,24の例と,生成された第1,第2の問題箇所出力データ22,26の例が示されている。この例は,問題箇所の対象記述が同じでも異なるサブルーチン内の場合は,異なる問題箇所として除外されない例である。この例において,第2の問題箇所出力データから第1の問題箇所出力データと重複する問題箇所を除外する処理について説明する。
[Fourth example of first and second source code]
FIG. 11 is a diagram showing a fourth example of the first and second source codes and the first and second problem location output data in the present embodiment. FIG. 11 shows examples of the first and second source codes 21 and 24 analyzed by the development support program shown in FIGS. 3 and 4 and the generated first and second problem location output data 22 and 26. An example is shown. In this example, if the target description of the problem part is the same, but is in a different subroutine, it is not excluded as a different problem part. In this example, a process for excluding a problem location that overlaps with the first problem location output data from the second problem location output data will be described.

第1のソースコード21は,問題が疑われる問題箇所として,4行目のif文を有している。   The first source code 21 has an “if” statement on the fourth line as a problem part in which a problem is suspected.

そこで,開発支援装置は,開発支援プログラムを実行することで,4行目のif文に対する第1の問題箇所出力データ22_5として,そのファイル名「a.c」,問題箇所行「8行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「415fe51dbefb5・・・」を生成する。この記述特定情報は,第1のソースコード21内の4行目のif文を含むサブルーチンvoid func01の先頭の1行目から問題箇所の4行目のif文までの記述34_9のハッシュ値である。   Therefore, the development support apparatus executes the development support program, so that the file name “ac”, the problem location line “8th line”, the problem as the first problem location output data 22_5 for the if statement on the 4th line Data including an indication sentence “error in if sentence” is generated, and description specific information “415fe51dbefb5. This description specifying information is a hash value of the description 34_9 from the first line of the subroutine void func01 including the if statement of the fourth line in the first source code 21 to the if statement of the fourth line of the problem part. .

一方,第2のソースコード24は,第1のソースコード21に対して,1〜6行目のサブルーチンvoid func02を追加して生成されている。それに伴い,第2のソースコード24は,4行目のif文と,10行目のif文とを,問題が疑われる問題箇所として有している。   On the other hand, the second source code 24 is generated by adding a subroutine void func02 in the first to sixth lines to the first source code 21. Accordingly, the second source code 24 has an if sentence on the 4th line and an if sentence on the 10th line as a problem part where a problem is suspected.

そこで,開発支援装置は,開発支援プログラムを実行することで,4行目のif文に対する第2の問題箇所出力データ26_5として,そのファイル名「a.c」,問題箇所行「4行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「78ab09feffea・・・」を生成する。この記述特定情報は,第2のソースコード24内の4行目のif文を含むサブルーチンvoid func02の先頭の1行目からif文の4行目までの記述34_10のハッシュ値である。   Therefore, the development support apparatus executes the development support program, and as the second problem location output data 26_5 for the if statement on the 4th row, the file name “ac”, the problem location line “line 4”, the problem Data including the indicated sentence “error in if sentence” is generated, and the description specifying information “78ab09feffea...” Corresponding thereto is generated. This description specifying information is a hash value of the description 34_10 from the first line of the subroutine void func02 including the if statement of the fourth line in the second source code 24 to the fourth line of the if statement.

また,開発支援装置は,開発支援プログラムを実行することで,10行目のif文に対する第2の問題箇所出力データ26_6として,そのファイル名「a.c」,問題箇所行「10行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「415fe51dbefb5・・・」を生成する。この記述特定情報は,第2のソースコード24内の10行目のif文を含むサブルーチンvoid func01の先頭の7行目からif文の10行目までの記述34_11のハッシュ値である。   Further, the development support apparatus executes the development support program, so that the file name “ac”, the problem location line “10th line”, the problem as the second problem location output data 26_6 for the if statement on the 10th line. Data including an indication sentence “error in if sentence” is generated, and description specific information “415fe51dbefb5. This description specifying information is a hash value of the description 34_11 from the first 7th line of the subroutine void func01 including the if statement of the 10th line in the second source code 24 to the 10th line of the if statement.

そこで,開発支援装置は,開発支援プログラムを実行して,図4のS51−S54の重複する問題箇所を除外する処理を行う。すなわち,開発支援装置は,第2の問題箇所出力データ26_5の記述特定情報が,第1の問題箇所出力データ22_5の記述特定情報と一致するか否かをチェックする(S51)。図11の例では,第2の問題箇所出力データ26_5の記述特定情報「78ab09feffea・・・」が,第1の問題箇所出力データ22_5の記述特定情報と不一致であることが検出される。その結果,第2の問題箇所出力データ26から4行目のif文に対する第2の問題箇所出力データ26_5は除外しない。つまり,第2の問題箇所出力データ26_5は,第1の問題箇所出力データ22_5と行番号は同じであるが,記述特定情報は不一致であるので,第2の問題箇所出力データ26_5と第1の問題箇所出力データ22_5とは,異なる対象のif文を問題箇所として検出したことが理解できる。   Therefore, the development support apparatus executes the development support program, and performs a process of excluding duplicate problem portions in S51 to S54 in FIG. That is, the development support apparatus checks whether or not the description specifying information of the second problem location output data 26_5 matches the description specification information of the first problem location output data 22_5 (S51). In the example of FIG. 11, it is detected that the description specifying information “78ab09feffea...” Of the second problem location output data 26_5 does not match the description specification information of the first problem location output data 22_5. As a result, the second problem location output data 26_5 for the if statement on the fourth line from the second problem location output data 26 is not excluded. That is, the second problem location output data 26_5 has the same line number as the first problem location output data 22_5, but the description specifying information does not match, so the second problem location output data 26_5 and the first problem location output data 26_5 are the same. It can be understood that the problem part output data 22_5 has detected an if sentence of a different object as a problem part.

次に,開発支援装置は,第2の問題箇所出力データ26_6の記述特定情報が,第1の問題箇所出力データ22_5の記述特定情報と一致するか否かをチェックする(S51)。図11の例では,第2の問題箇所出力データ26_6の記述特定情報「415fe51dbefb5・・・」が,第1の問題箇所出力データ22_5の記述特定情報と一致することが検出される。すなわち,第2のソースコード24には,第1のソースコード21に対して1〜6行目のサブルーチンvoid func02の記述が追加され,第1のソースコード21内の1〜6行のサブルーチンvoid func01の記述は,7〜12行に移動している。そこで,第2の問題箇所出力データ26_6については,記述特定情報が一致して,その結果,10行目のif文に対する第2の問題箇所出力データ26_6は除外されて第2の問題箇所出力データ26には含められない。   Next, the development support apparatus checks whether the description specifying information of the second problem part output data 26_6 matches the description specifying information of the first problem part output data 22_5 (S51). In the example of FIG. 11, it is detected that the description specifying information “415fe51dbefb5...” Of the second problem location output data 26_6 matches the description specification information of the first problem location output data 22_5. That is, in the second source code 24, a description of the subroutine void func02 on the first to sixth lines is added to the first source code 21, and the subroutine void 1 to 6 in the first source code 21 is added. The description of func01 has moved to lines 7-12. Therefore, the description specifying information for the second problem location output data 26_6 is the same, and as a result, the second problem location output data 26_6 for the if statement on the 10th line is excluded, and the second problem location output data. 26 is not included.

[第5の第1,第2のソースコード例]
図12は,本実施の形態における第1,第2のソースコードとその第1,第2の問題箇所出力データの第5の例を示す図である。第1のソースコード21は,4行目のif文を問題が疑われる問題箇所として有している。
[Fifth first and second source code examples]
FIG. 12 is a diagram showing a fifth example of the first and second source codes and the first and second problem location output data in the present embodiment. The first source code 21 has the “if” statement on the fourth line as a problem location where a problem is suspected.

開発支援装置は,開発支援プログラムを実行することで,第1のソースコード21に対して,4行目のif文に対する第1の問題箇所出力データ22_6として,そのファイル名「a.c」,問題箇所行「4行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「78ab09feffea・・・」を生成する。この記述特定情報は,第1のソースコード21内の4行目のif文を含む1行目のサブルーチンvoid func01の先頭から問題箇所の4行目までの記述34_12のハッシュ値である。   By executing the development support program, the development support apparatus executes, as the first problem code output data 22_6 for the if statement on the fourth line, the file name “ac”, the problem code, and the first source code 21. Data including the line “line 4” and the problem indication sentence “error in if sentence” is generated, and the description specifying information “78ab09feffea...” Corresponding to the data is generated. This description specifying information is a hash value of the description 34_12 from the beginning of the subroutine void func01 on the first line including the if statement on the fourth line in the first source code 21 to the fourth line of the problem location.

一方,第2のソースコード24は,第1のソースコード21に08−10行目の記述46を追加している。そして,第2のソースコード24に対して,4行目のif文と,8行目のif文とが問題箇所として検出される。   On the other hand, in the second source code 24, a description 46 on lines 08-10 is added to the first source code 21. Then, for the second source code 24, the if sentence on the fourth line and the if sentence on the eighth line are detected as problem parts.

すなわち,開発支援装置は,開発支援プログラムを実行することで,第2のソースコード26に対して,4行目のif文に対する第2の問題箇所出力データ26_7として,そのファイル名「a.c」,問題箇所行「4行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「78ab09feffea・・・」を生成する。この記述特定情報は,第2のソースコード26内の4行目のif文を含むサブルーチンvoid func01の先頭の1行目から問題箇所の4行目までの記述34_13のハッシュ値である。   That is, by executing the development support program, the development support apparatus executes, as the second problem code output data 26_7 for the if statement on the fourth line, the file name “ac”, Data including the problem part line “line 4” and the problem indication sentence “error in if sentence” is generated, and description specific information “78ab09feffea...” Corresponding to the data is generated. This description specifying information is a hash value of the description 34_13 from the first line of the subroutine void func01 including the if statement of the fourth line in the second source code 26 to the fourth line of the problem part.

さらに,開発支援装置は,開発支援プログラムを実行することで,第2のソースコード24に対し,8行目のif文に対する第2の問題箇所出力データ26_8として,そのファイル名「a.c」,問題箇所行「8行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「415fe51dbefb5・・・」を生成する。この記述特定情報は,第2のソースコード24内の8行目のif文を含むサブルーチンvoid func01の先頭の1行目から問題箇所の8行目までの記述34_14のハッシュ値である。   Further, the development support apparatus executes the development support program, thereby providing the second source code 24 with the file name “ac”, the problem as the second problem location output data 26_8 for the “if” statement on the eighth line. Data including the location line “line 8” and the problem indication sentence “error in if sentence” is generated, and the description specifying information “415fe51dbefb5...” Corresponding thereto is generated. This description specifying information is a hash value of the description 34_14 from the first line of the subroutine void func01 including the if statement of the eighth line in the second source code 24 to the eighth line of the problem part.

そこで,開発支援装置は,開発支援プログラムを実行して,図4のS51−S54の重複する問題箇所を除外する処理を行う。その結果,第2の問題箇所出力データ26_7の記述特定情報「78ab09feffea・・・」は,第1の問題箇所出力データ22_6の記述特定情報「78ab09feffea・・・」と一致し,除外される。また,第2の問題箇所出力データ26_8の記述特定情報「415fe51dbefb5・・・」は,第1の問題箇所出力データ22_6の記述特定情報「78ab09feffea・・・」と不一致となり,除外されない。   Therefore, the development support apparatus executes the development support program, and performs a process of excluding duplicate problem portions in S51 to S54 in FIG. As a result, the description specifying information “78ab09feffea...” Of the second problem location output data 26_7 matches the description specification information “78ab09feffea...” Of the first problem location output data 22_6 and is excluded. In addition, the description specifying information “415fe51dbefb5...” Of the second problem location output data 26_8 is inconsistent with the description specifying information “78ab09feffea...” Of the first problem location output data 22_6 and is not excluded.

このように,第2のソースコード24の8−10行目に記述46が追加されても,4行目のif文の記述特定情報が,第1のソースコード21の4行目のif文の記述特定情報と一致し,第2の問題箇所出力データ26から除外される。そして,第2のソースコード24に追加された記述46内のif文に対する問題箇所出力データ26_8は,第2の問題箇所データ26から除外されない。   As described above, even if the description 46 is added to the 8th to 10th lines of the second source code 24, the description specifying information of the “if” statement in the fourth line is the if statement in the fourth line of the first source code 21. Are excluded from the second problem location output data 26. Then, the problem location output data 26_8 for the “if” sentence in the description 46 added to the second source code 24 is not excluded from the second problem location data 26.

[第6の第1,第2のソースコード例]
図13は,本実施の形態における第1,第2のソースコードとその第1,第2の問題箇所出力データの第6の例を示す図である。第1のソースコード21は,4行目のif文と7行目のif文を問題が疑われる問題箇所として有している。
[Sixth first and second source code examples]
FIG. 13 is a diagram showing a sixth example of the first and second source codes and the first and second problem location output data in the present embodiment. The first source code 21 has an if statement on the 4th line and an if statement on the 7th line as a problem part where a problem is suspected.

開発支援装置は,開発支援プログラムを実行することで,第1のソースコード21に対して,4行目のif文に対する第1の問題箇所出力データ22_7として,そのファイル名「a.c」,問題箇所行「4行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「78ab09feffea・・・」を生成する。この記述特定情報は,第1のソースコード21内の4行目のif文を含むサブルーチンvoid func01の先頭の1行目から問題箇所の4行目までの記述34_15のハッシュ値である。   By executing the development support program, the development support apparatus executes, as the first problem code output data 22_7 for the if statement on the fourth line, the file name “ac” and the problem code for the first source code 21. Data including the line “line 4” and the problem indication sentence “error in if sentence” is generated, and the description specifying information “78ab09feffea...” Corresponding to the data is generated. This description specifying information is a hash value of the description 34_15 from the first line of the subroutine void func01 including the if statement of the fourth line in the first source code 21 to the fourth line of the problem part.

同様に,開発支援装置は,第1のソースコード21に対して,7行目のif文に対する第1の問題箇所出力データ22_8として,そのファイル名「a.c」,問題箇所行「7行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「31b409faf0e0・・・」を生成する。この記述特定情報は,第1のソースコード21内の4行目のif文を含むサブルーチンvoid func01の先頭の1行目から問題箇所の7行目までの記述34_16のハッシュ値である。   Similarly, for the first source code 21, the development support apparatus uses the file name “ac” and the problem part line “seventh line” as the first problem part output data 22_8 for the “if” sentence on the seventh line. , The data including the problem indication sentence “error in the if sentence” is generated, and the description specifying information “31b409faf0e0...” Corresponding thereto is generated. This description specifying information is a hash value of the description 34_16 from the first line of the subroutine void func01 including the if statement of the fourth line in the first source code 21 to the seventh line of the problem part.

一方,第2のソースコード24は,第1のソースコード21に07−08行目の記述47を追加している。そして,第2のソースコード24に対して,4行目のif文と9行目のif文とが問題箇所として検出される。   On the other hand, in the second source code 24, a description 47 on lines 07-08 is added to the first source code 21. Then, for the second source code 24, the if sentence on the fourth line and the if sentence on the ninth line are detected as problem parts.

開発支援装置は,開発支援プログラムを実行することで,第2のソースコード24に対して,4行目のif文に対する第2の問題箇所出力データ26_9として,そのファイル名「a.c」,問題箇所行「4行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「78ab09feffea・・・」を生成する。この記述特定情報は,第2のソースコード24内の4行目のif文を含むサブルーチンvoid func01の先頭の1行目から問題箇所の4行目までの記述34_17のハッシュ値である。   By executing the development support program, the development support apparatus executes, as the second problem code output data 26_9 for the if statement on the fourth line, the file name “ac”, the problem code, and the second source code 24. Data including the line “line 4” and the problem indication sentence “error in if sentence” is generated, and the description specifying information “78ab09feffea...” Corresponding to the data is generated. This description specifying information is a hash value of the description 34_17 from the first line of the subroutine void func01 including the if statement of the fourth line in the second source code 24 to the fourth line of the problem part.

さらに,開発支援装置は,開発支援プログラムを実行することで,第2のソースコード24に対し,9行目のif文に対する第2の問題箇所出力データ26_10として,そのファイル名「a.c」,問題箇所行「9行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「415fe51dbefb5・・・」を生成する。この記述特定情報は,第2のソースコード24内の9行目のif文を含むサブルーチンvoid func01の先頭の1行目から問題箇所の9行目までの記述34_14のハッシュ値である。   Furthermore, the development support apparatus executes the development support program, so that the second source code 24 has the file name “ac”, the problem name as the second problem location output data 26_10 for the if statement on the ninth line. Data including a location line “9th line” and a problem indication sentence “error in if sentence” is generated, and corresponding description specifying information “415fe51dbefb5...” Is generated. This description specifying information is a hash value of the description 34_14 from the first line of the subroutine void func01 including the if statement of the 9th line in the second source code 24 to the 9th line of the problem part.

そこで,開発支援装置は,開発支援プログラムを実行して,図4のS51−S54の重複する問題箇所を除外する処理を行う。その結果,第2の問題箇所出力データ26_9の記述特定情報「78ab09feffea・・・」は,第1の問題箇所出力データ22_7の記述特定情報「78ab09feffea・・・」と一致し,除外される。また,第2の問題箇所出力データ26_10の記述特定情報「415fe51dbefb5・・・」は,第1の問題箇所出力データ22_8の記述特定情報「78ab09feffea・・・」と不一致となり,除外されない。   Therefore, the development support apparatus executes the development support program, and performs a process of excluding duplicate problem portions in S51 to S54 in FIG. As a result, the description specifying information “78ab09feffea...” Of the second problem location output data 26_9 matches the description specification information “78ab09feffea...” Of the first problem location output data 22_7 and is excluded. In addition, the description specifying information “415fe51dbefb5...” Of the second problem location output data 26_10 is inconsistent with the description specification information “78ab09feffea...” Of the first problem location output data 22_8 and is not excluded.

このように,第2のソースコード24の7−8行目に記述47が問題箇所の9行目より前に追加されたため,9行目のif文の記述特定情報が,第1のソースコード21の7行目のif文の記述特定情報と不一致になり,第2の問題箇所出力データ26から除外されない。   As described above, since the description 47 is added before the ninth line of the problem portion on the seventh to eighth lines of the second source code 24, the description specifying information of the “if” statement on the ninth line becomes the first source code. 21 is not excluded from the second problem location output data 26 because it is inconsistent with the description specifying information of the if statement on the seventh line.

図14は,本実施の形態における開発支援プログラムの工程S4,S5の処理の第2のフローチャート図である。図14は,図4のフローチャートの工程S51の代わりに工程S51_Bを有する。それ以外の工程は,図4と同じである。   FIG. 14 is a second flowchart of the processes of steps S4 and S5 of the development support program in the present embodiment. FIG. 14 includes a step S51_B instead of the step S51 in the flowchart of FIG. The other steps are the same as those in FIG.

図14のフローチャート図によれば,工程S51_Bにおいて,開発支援装置が,開発支援プログラムを実行して,第2の問題箇所に対応する第2の記述特定情報に加えて問題指摘文の両方が,第1のソースコードを解析して検出した第1の問題箇所に対応する第1の記述特定情報と問題指摘文の両方のいずれかと一致するかチェックする。そして,一致した場合は,その第2の問題箇所を第2の問題箇所出力データから除外する。   According to the flowchart of FIG. 14, in step S51_B, the development support apparatus executes the development support program, and both the problem indication sentence in addition to the second description specifying information corresponding to the second problem location are The first source code is analyzed to check whether it matches either the first description specifying information corresponding to the first problem location detected and the problem indication sentence. If they match, the second problem location is excluded from the second problem location output data.

すなわち,図14の処理によれば,第2のソースコードを解析して得た問題箇所群から重複する問題箇所を除外する際に,記述特定情報が一致することに加えて問題指摘文が一致することもチェックする。このようにすることで次のような状況の場合に,新たに検出された問題箇所が除外されることを防止できる。   That is, according to the processing of FIG. 14, when excluding duplicate problem parts from the problem part group obtained by analyzing the second source code, the description specifying information matches and the problem indication sentence matches. Also check what to do. By doing so, it is possible to prevent the newly detected problem part from being excluded in the following situation.

例えば,開発支援プログラムによる問題箇所検出項目の設定を第1のソースコードを解析した時と異なる設定に変更した場合に,第2のソースコードを解析して得られた問題箇所と問題指摘文が,同じif文に対して新たに検出される場合がある。そのような場合は,新たに検出された問題箇所と問題指摘文の出力を除外すべきでない。このような場合に,図14の処理を行って除外すべき問題箇所を判定すれば,新たに検出された問題箇所と問題指摘文を除外せずに第2の問題箇所出力データに残すことができる。   For example, when the setting of the problem location detection item by the development support program is changed to a setting different from that when the first source code is analyzed, the problem location and the problem indication sentence obtained by analyzing the second source code are displayed. , The same if sentence may be newly detected. In such cases, the newly detected problem location and problem indication should not be excluded. In such a case, if the problem location to be excluded is determined by performing the processing of FIG. 14, the newly detected problem location and the problem indication sentence may be left in the second problem location output data. it can.

図14の工程S51_Bでは,問題箇所に対応する記述特定情報と問題指摘文とが一致するか否かの判定を行ったが,さらに,問題箇所に対応する記述特定情報と問題指摘文とファイル名とが一致するか否かの判定を行うようにしても良い。その場合,同じファイル内の同じ問題箇所,同じ問題指摘文,そして同じ記述特定情報とが一致する場合に,第2の問題箇所出力データから除外される。   In step S51_B of FIG. 14, it is determined whether or not the description specifying information corresponding to the problem location matches the problem indication text. The description specification information corresponding to the problem location, the problem indication text, and the file name are further determined. It is also possible to determine whether or not and match. In this case, when the same problem location, the same problem indication sentence, and the same description specifying information in the same file match, it is excluded from the second problem location output data.

[第7の第1,第2のソースコード例]
図15は,本実施の形態における第1,第2のソースコードとその第1,第2の問題箇所出力データの第7の例を示す図である。この例は,図14のフローチャートにしたがって第2の問題箇所出力データから新規に検出された問題箇所と問題指摘文のデータを除外することが防止される。
[Seventh first and second source code examples]
FIG. 15 is a diagram showing a seventh example of the first and second source codes and the first and second problem location output data in the present embodiment. In this example, according to the flowchart of FIG. 14, it is possible to prevent the newly detected problem location and problem indication sentence data from the second problem location output data.

第1のソースコード21は,4行目のif文を問題が疑われる問題箇所として有している。開発支援装置は,開発支援プログラムを実行することで,第1のソースコード21に対して,4行目のif文に対する第1の問題箇所出力データ22_9として,そのファイル名「a.c」,問題箇所行「4行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「78ab09feffea・・・」を生成する。この記述特定情報は,第1のソースコード21内の4行目のif文を含むサブルーチンvoid func01の先頭の1行目から問題箇所の4行目までの記述34_19のハッシュ値である。   The first source code 21 has the “if” statement on the fourth line as a problem location where a problem is suspected. By executing the development support program, the development support apparatus executes, as the first problem code output data 22_9 for the if statement on the fourth line, the file name “ac”, the problem code for the first source code 21. Data including the line “line 4” and the problem indication sentence “error in if sentence” is generated, and the description specifying information “78ab09feffea...” Corresponding to the data is generated. This description specifying information is a hash value of the description 34_19 from the first line of the subroutine void func01 including the if statement of the fourth line in the first source code 21 to the fourth line of the problem part.

一方,第2のソースコード24は,第1のソースコード21に1,2,3,9行目の記述48を追加している。そして,第2のソースコード24に対して,7行目のif文が問題箇所として検出される。   On the other hand, in the second source code 24, descriptions 48 in the first, second, third and ninth lines are added to the first source code 21. For the second source code 24, the if statement on the seventh line is detected as a problem location.

開発支援装置は,第1のソースコードを解析した時の検出項目の設定に,「変数の定義ミス」を追加する変更を行った開発支援プログラムを実行する。設定の変更は第2のソースコード開発者により行われる。開発支援装置は,第2のソースコード24に対して,7行目のif文に対する第2の問題箇所出力データ26_11として,そのファイル名「a.c」,問題箇所行「7行目」,問題指摘文「if文に誤り」を含むデータを生成し,それに対応する記述特定情報「78ab09feffea・・・」を生成する。この記述特定情報は,第2のソースコード24内の7行目のif文を含むサブルーチンvoid func01の先頭の4行目から問題箇所の7行目までの記述34_20のハッシュ値である。   The development support apparatus executes the development support program in which the “variable definition mistake” is added to the setting of the detection item when the first source code is analyzed. The setting is changed by the second source code developer. For the second source code 24, the development support device uses the file name “ac”, the problem part line “seventh line”, the problem indication as the second problem part output data 26_11 for the “if” sentence on the seventh line. Data including the sentence “error in if sentence” is generated, and corresponding description specifying information “78ab09feffea...” Is generated. This description specifying information is a hash value of the description 34_20 from the first 4th line of the subroutine void func01 including the if statement of the 7th line in the second source code 24 to the 7th line of the problem part.

さらに,開発支援装置は,第2のソースコード24に対して,7行目のif文の変数の定義に問題の可能性があることを理由に,第2の問題箇所出力データ26_12として,そのファイル名「a.c」,問題箇所行「7行目」。問題指摘文「変数aに誤り」を含むデータを生成し,それに対応する記述特定情報「78ab09feffea・・・」を生成する。問題箇所は,上記と同じ7行目のif文であるが,この問題の原因はif文の変数aの誤りの可能性である。したがって,記述特定情報は,第2のソースコード24内の同じ7行目のif文を含むサブルーチンvoid func01の先頭の4行目から問題箇所の7行目までの記述34_20のハッシュ値であり,上記の記述特定情報と同じである。第2のソースコード24では,4行目のサブルーチンvoid func01の括弧内の変数は,変数aが通常のビット数の整数であるのに対して,変数b,cは,短いビット数の整数に定義されている。そのため,変数aの整数の精度が変数b,cの整数の精度と正号しないことを理由に,上記のような問題指摘文「変数aに誤り」が検出されている。   Furthermore, the development support apparatus uses the second source code 24 as the second problem location output data 26_12 because there is a possibility of a problem in the definition of the variable of the “if” statement on the seventh line. File name “ac”, problem part line “7th line”. Data including a problem indication sentence “error in variable a” is generated, and description specific information “78ab09feffea...” Corresponding to the data is generated. The problem location is the same if statement on the seventh line as described above, but the cause of this problem is the possibility of an error in the variable a of the if statement. Therefore, the description specifying information is a hash value of the description 34_20 from the first 4th line of the subroutine void func01 including the same if statement on the 7th line in the second source code 24 to the 7th line of the problem part, It is the same as the above description specifying information. In the second source code 24, the variable in the parenthesis of the subroutine void func01 on the fourth line is that the variable a is an integer having a normal number of bits, whereas the variables b and c are integers having a short number of bits. Is defined. Therefore, the problem indication sentence “error in variable a” as described above is detected because the precision of the integer of variable a is not a sign of the precision of the integers of variables b and c.

そこで,開発支援装置は,開発支援プログラムを実行して,図14のS51−S54の重複する問題箇所を除外する処理を行う。その結果,第2の問題箇所出力データ26_11の記述特定情報「78ab09feffe・・・a」は,第1の問題箇所出力データ22_9の記述特定情報「78ab09feffea・・・」と一致し,さらに問題指摘文「if文に誤り」も一致し,除外される。ところが,第2の問題箇所出力データ26_12の記述特定情報「78ab09feffea・・・」は,第1の問題箇所出力データ22_9の記述特定情報「78ab09feffea・・・」と一致するが,問題指摘文「変数aに誤り」が不一致となり,第2の問題箇所出力データからは除外されない。   Therefore, the development support apparatus executes the development support program, and performs a process of eliminating duplicate problem locations in S51 to S54 in FIG. As a result, the description specifying information “78ab09feffe... A” of the second problem location output data 26_11 matches the description specifying information “78ab09feffea... “Error in if sentence” also matches and is excluded. However, the description specifying information “78ab09feffea...” Of the second problem location output data 26_12 matches the description specifying information “78ab09feffea...” Of the first problem location output data 22_9. "Error in a" does not match and is not excluded from the second problem location output data.

このように,第2のソースコード24の分析の設定を変更したことで初めて検出される問題箇所と問題指摘文は,たとえ同じ問題箇所に対する問題箇所出力データであっても,問題指摘文が異なる,つまり問題視した理由が異なる場合は,新たな問題箇所として第2の問題箇所出力データから除外されることはない。   Thus, even if the problem location and the problem indication text detected for the first time by changing the analysis setting of the second source code 24 are the problem location output data for the same problem location, the problem indication text is different. In other words, if the reason for the problem is different, it is not excluded from the second problem location output data as a new problem location.

以上の実施の形態をまとめると,次の付記のとおりである。   The above embodiment is summarized as follows.

(付記1)
第1のソースコードを更新して生成された第2のソースコードを解析して第2の問題箇所を検出し,
前記第2の問題箇所が記述されているサブルーチンの先頭から少なくとも前記第2の問題箇所までの記述を特定する第2の記述特定情報を生成し,
前記第2のソースコードを解析して検出した前記第2の問題箇所に対応する前記第2の記述特定情報が,前記第1のソースコードを解析して検出された第1の問題箇所に対応する第1の記述特定情報と一致する場合に,前記第2の問題箇所を,前記第2のソースコードの問題箇所としての出力の対象から除外する,
処理をコンピュータに実行させるコンピュータ読み取り可能な開発支援プログラム。
(Appendix 1)
Analyzing the second source code generated by updating the first source code to detect the second problem portion;
Generating second description specifying information for specifying a description from the top of a subroutine in which the second problem part is described to at least the second problem part;
The second description specifying information corresponding to the second problem location detected by analyzing the second source code corresponds to the first problem location detected by analyzing the first source code. The second problem location is excluded from the output target as the problem location of the second source code when the first description specifying information matches.
A computer-readable development support program that causes a computer to execute processing.

(付記2)
付記1において,
前記第2の記述特定情報を生成する工程において,前記第2の問題箇所の記述が繰り返し制御記述内に含まれる場合は,前記第2の記述特定情報として,前記第2の問題箇所が記述されているサブルーチンの先頭から前記第2の問題箇所の記述を含む前記繰り返し制御記述の最後までの記述を特定する記述特定情報を生成する,開発支援プログラム。
(Appendix 2)
In Appendix 1,
In the step of generating the second description specifying information, when the description of the second problem location is repeatedly included in the control description, the second problem location is described as the second description specification information. A development support program for generating description specifying information for specifying a description from the top of a subroutine to the end of the repetitive control description including a description of the second problem portion.

(付記3)
付記1または2において,
さらに,
前記第2の問題箇所の問題を記述する第2の問題指摘文を生成し,
前記出力として,前記第2の問題箇所と前記第2の問題指摘文とを出力し,
前記出力の対象から除外する工程において,前記第2の記述特定情報が前記第1の記述特定情報と一致することに加えて,前記第2の問題箇所の第2の問題指摘文と前記第1の問題箇所に対応する第1の問題指摘文とが一致する場合に,前記第2の問題箇所を,前記出力の対象から除外する,開発支援プログラム。
(Appendix 3)
In Appendix 1 or 2,
further,
Generating a second problem indication statement describing the problem of the second problem location;
As the output, the second problem location and the second problem indication sentence are output,
In the step of excluding from the output target, in addition to the second description specifying information being identical to the first description specifying information, the second problem indication sentence of the second problem location and the first description A development support program for excluding the second problem part from the output target when the first problem indication sentence corresponding to the problem part matches.

(付記4)
付記3において,
前記出力の対象から除外する工程において,前記第2の記述特定情報が前記第1の記述特定情報と一致することと,前記第2の問題指摘文と前記第1の問題指摘文とが一致することに加えて,前記第2のソースコードのファイル名と前記第2のソースコードのファイル名が一致する場合に,前記第2の問題箇所を,前記出力の対象から除外する,開発支援プログラム。
(Appendix 4)
In Appendix 3,
In the step of excluding from the output target, the second description specifying information matches the first description specifying information, and the second problem indicating sentence matches the first problem indicating sentence. In addition, when the file name of the second source code matches the file name of the second source code, the development support program excludes the second problem portion from the output target.

(付記5)
付記1または2において,
前記第1,第2の記述特定情報は,特定対象であるソースコードの記述のハッシュ値,符号化コードのいずれかであり,且つ前記特定対象であるソースコードの記述よりもデータ量が少ない,開発支援プログラム。
(Appendix 5)
In Appendix 1 or 2,
The first and second description specifying information is either a hash value or an encoded code of a description of a source code that is a specified target, and has a smaller data amount than a description of the source code that is the specified target. Development support program.

(付記6)
付記1または2において,
前記出力の対象から除外する工程において,前記第2の記述特定情報が,前記第1のソースコードを解析して検出された複数の第1の問題箇所に対応する第1の記述特定情報のいずれかと一致する場合に,当該一致した第2の問題箇所を,前記出力の対象から除外し,前記第2の記述特定情報が,前記複数の第1の問題箇所に対応する第1の記述特定情報の全てと不一致の場合に,前記出力の対象に含める,開発支援プログラム。
(Appendix 6)
In Appendix 1 or 2,
In the step of excluding from the output target, the second description specifying information is any of the first description specifying information corresponding to the plurality of first problem points detected by analyzing the first source code. And the second description specifying information corresponding to the plurality of first problem locations is excluded from the output target, and the second description specifying information corresponding to the plurality of first problem locations is excluded. A development support program to be included in the output target when it does not match all of the above.

(付記7)
付記1または2において,
前記サブルーチンは,一連の処理を記述するソースコードのブロックであり,メソッド,関数を含む,開発支援プログラム。
(Appendix 7)
In Appendix 1 or 2,
The subroutine is a source code block describing a series of processing, and is a development support program including methods and functions.

(付記8)
付記1または2において,
前記問題箇所を検出する工程において,設定された解析対象に基づいて前記ソースコードに問題がある場合に問題箇所として検出する,開発支援プログラム。
(Appendix 8)
In Appendix 1 or 2,
A development support program for detecting a problem location when there is a problem in the source code based on a set analysis target in the step of detecting the problem location.

(付記9)
第1のソースコードを更新して生成された第2のソースコードを解析して第2の問題箇所を検出し,
前記第2の問題箇所が記述されているサブルーチンの先頭から少なくとも前記第2の問題箇所までの記述を特定する第2の記述特定情報を生成し,
前記第2のソースコードを解析して検出した前記第2の問題箇所に対応する前記第2の記述特定情報が,前記第1のソースコードを解析して検出された第1の問題箇所に対応する第1の記述特定情報と一致する場合に,前記第2の問題箇所を,前記第2のソースコードの問題箇所としての出力の対象から除外する,
処理を有する開発支援方法。
(Appendix 9)
Analyzing the second source code generated by updating the first source code to detect the second problem portion;
Generating second description specifying information for specifying a description from the top of a subroutine in which the second problem part is described to at least the second problem part;
The second description specifying information corresponding to the second problem location detected by analyzing the second source code corresponds to the first problem location detected by analyzing the first source code. The second problem location is excluded from the output target as the problem location of the second source code when the first description specifying information matches.
Development support method having processing.

(付記10)
付記9において,
前記第2の記述特定情報を生成する工程において,前記第2の問題箇所の記述が繰り返し制御記述内に含まれる場合は,前記第2の記述特定情報として,前記第2の問題箇所が記述されているサブルーチンの先頭から前記第2の問題箇所の記述を含む前記繰り返し制御記述の最後までの記述を特定する記述特定情報を生成する,開発支援方法。
(Appendix 10)
In Appendix 9,
In the step of generating the second description specifying information, when the description of the second problem location is repeatedly included in the control description, the second problem location is described as the second description specification information. A development support method for generating description specifying information for specifying a description from the top of a subroutine to the end of the repetitive control description including the description of the second problem portion.

(付記11)
第1のソースコードを更新して生成された第2のソースコードを解析して第2の問題箇所を検出する手段と,
前記第2の問題箇所が記述されているサブルーチンの先頭から少なくとも前記第2の問題箇所までの記述を特定する第2の記述特定情報を生成する手段と,
前記第2のソースコードを解析して検出した前記第2の問題箇所に対応する前記第2の記述特定情報が,前記第1のソースコードを解析して検出された第1の問題箇所に対応する第1の記述特定情報と一致する場合に,前記第2の問題箇所を,前記第2のソースコードの問題箇所としての出力の対象から除外する手段と,を有する開発支援装置。
(Appendix 11)
Means for analyzing the second source code generated by updating the first source code and detecting the second problem location;
Means for generating second description specifying information for specifying a description from the top of a subroutine in which the second problem part is described to at least the second problem part;
The second description specifying information corresponding to the second problem location detected by analyzing the second source code corresponds to the first problem location detected by analyzing the first source code. And a means for excluding the second problem part from the output target as the problem part of the second source code when the first description specifying information matches.

20:開発支援プログラム
21:第1のソースコード
22:第1のソースコードの問題箇所出力データ
24:第2のソースコード
26:第2のソースコードの問題箇所出力データ
30:問題箇所
32:問題指摘文
34:記述特定情報
20: Development support program 21: First source code 22: Problem portion output data of first source code 24: Second source code 26: Problem portion output data of second source code 30: Problem portion 32: Problem Indicator 34: Description specific information

Claims (8)

第1のソースコードを更新して生成された第2のソースコードを解析して第2の問題箇所を検出し,
前記第2の問題箇所が記述されているサブルーチンの先頭から少なくとも前記第2の問題箇所までの記述を特定する第2の記述特定情報を生成し,
前記第2のソースコードを解析して検出した前記第2の問題箇所に対応する前記第2の記述特定情報が,前記第1のソースコードを解析して検出された第1の問題箇所に対応する第1の記述特定情報と一致する場合に,前記第2の問題箇所を,前記第2のソースコードの問題箇所としての出力の対象から除外する,
処理をコンピュータに実行させるコンピュータ読み取り可能な開発支援プログラム。
Analyzing the second source code generated by updating the first source code to detect the second problem portion;
Generating second description specifying information for specifying a description from the top of a subroutine in which the second problem part is described to at least the second problem part;
The second description specifying information corresponding to the second problem location detected by analyzing the second source code corresponds to the first problem location detected by analyzing the first source code. The second problem location is excluded from the output target as the problem location of the second source code when the first description specifying information matches.
A computer-readable development support program that causes a computer to execute processing.
請求項1において,
前記第2の記述特定情報を生成する工程において,前記第2の問題箇所の記述が繰り返し制御記述内に含まれる場合は,前記第2の記述特定情報として,前記第2の問題箇所が記述されているサブルーチンの先頭から前記第2の問題箇所の記述を含む前記繰り返し制御記述の最後までの記述を特定する記述特定情報を生成する,開発支援プログラム。
In claim 1,
In the step of generating the second description specifying information, when the description of the second problem location is repeatedly included in the control description, the second problem location is described as the second description specification information. A development support program for generating description specifying information for specifying a description from the top of a subroutine to the end of the repetitive control description including a description of the second problem portion.
請求項1または2において,
さらに,
前記第2の問題箇所の問題を記述する第2の問題指摘文を生成し,
前記出力として,前記第2の問題箇所と前記第2の問題指摘文とを出力し,
前記出力の対象から除外する工程において,前記第2の記述特定情報が前記第1の記述特定情報と一致することに加えて,前記第2の問題箇所の第2の問題指摘文と前記第1の問題箇所に対応する第1の問題指摘文とが一致する場合に,前記第2の問題箇所を,前記出力の対象から除外する,開発支援プログラム。
In claim 1 or 2,
further,
Generating a second problem indication statement describing the problem of the second problem location;
As the output, the second problem location and the second problem indication sentence are output,
In the step of excluding from the output target, in addition to the second description specifying information being identical to the first description specifying information, the second problem indication sentence of the second problem location and the first description A development support program for excluding the second problem part from the output target when the first problem indication sentence corresponding to the problem part matches.
請求項3において,
前記出力の対象から除外する工程において,前記第2の記述特定情報が前記第1の記述特定情報と一致することと,前記第2の問題指摘文と前記第1の問題指摘文とが一致することに加えて,前記第2のソースコードのファイル名と前記第1のソースコードのファイル名が一致する場合に,前記第2の問題箇所を,前記出力の対象から除外する,開発支援プログラム。
In claim 3,
In the step of excluding from the output target, the second description specifying information matches the first description specifying information, and the second problem indicating sentence matches the first problem indicating sentence. In addition, when the file name of the second source code matches the file name of the first source code , the development support program excludes the second problem portion from the output target.
請求項1または2において,
前記第1,第2の記述特定情報は,特定対象であるソースコードの記述のハッシュ値,符号化コードのいずれかであり,且つ前記特定対象であるソースコードの記述よりもデータ量が少ない,開発支援プログラム。
In claim 1 or 2,
The first and second description specifying information is either a hash value or an encoded code of a description of a source code that is a specified target, and has a smaller data amount than a description of the source code that is the specified target Development support program.
請求項1または2において,
前記出力の対象から除外する工程において,前記第2の記述特定情報が,前記第1のソースコードを解析して検出された複数の第1の問題箇所に対応する第1の記述特定情報のいずれかと一致する場合に,当該一致した第2の問題箇所を,前記出力の対象から除外し,前記第2の記述特定情報が,前記複数の第1の問題箇所に対応する第1の記述特定情報の全てと不一致の場合に,前記出力の対象に含める,開発支援プログラム。
In claim 1 or 2,
In the step of excluding from the output target, the second description specifying information is any of the first description specifying information corresponding to the plurality of first problem points detected by analyzing the first source code. And the second description specifying information corresponding to the plurality of first problem locations is excluded from the output target, and the second description specifying information corresponding to the plurality of first problem locations is excluded. A development support program to be included in the output target when it does not match all of the above.
第1のソースコードを更新して生成された第2のソースコードを解析して第2の問題箇所を検出し,
前記第2の問題箇所が記述されているサブルーチンの先頭から少なくとも前記第2の問題箇所までの記述を特定する第2の記述特定情報を生成し,
前記第2のソースコードを解析して検出した前記第2の問題箇所に対応する前記第2の記述特定情報が,前記第1のソースコードを解析して検出された第1の問題箇所に対応する第1の記述特定情報と一致する場合に,前記第2の問題箇所を,前記第2のソースコードの問題箇所としての出力の対象から除外する,
処理を有する開発支援方法。
Analyzing the second source code generated by updating the first source code to detect the second problem portion;
Generating second description specifying information for specifying a description from the top of a subroutine in which the second problem part is described to at least the second problem part;
The second description specifying information corresponding to the second problem location detected by analyzing the second source code corresponds to the first problem location detected by analyzing the first source code. The second problem location is excluded from the output target as the problem location of the second source code when the first description specifying information matches.
Development support method having processing.
第1のソースコードを更新して生成された第2のソースコードを解析して第2の問題箇所を検出する手段と,
前記第2の問題箇所が記述されているサブルーチンの先頭から少なくとも前記第2の問題箇所までの記述を特定する第2の記述特定情報を生成する手段と,
前記第2のソースコードを解析して検出した前記第2の問題箇所に対応する前記第2の記述特定情報が,前記第1のソースコードを解析して検出された第1の問題箇所に対応する第1の記述特定情報と一致する場合に,前記第2の問題箇所を,前記第2のソースコードの問題箇所としての出力の対象から除外する手段と,を有する開発支援装置。
Means for analyzing the second source code generated by updating the first source code and detecting the second problem location;
Means for generating second description specifying information for specifying a description from the top of a subroutine in which the second problem part is described to at least the second problem part;
The second description specifying information corresponding to the second problem location detected by analyzing the second source code corresponds to the first problem location detected by analyzing the first source code. And a means for excluding the second problem part from the output target as the problem part of the second source code when the first description specifying information matches.
JP2014139439A 2014-07-07 2014-07-07 Development support program, development support method, and development support apparatus Expired - Fee Related JP6369177B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014139439A JP6369177B2 (en) 2014-07-07 2014-07-07 Development support program, development support method, and development support apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014139439A JP6369177B2 (en) 2014-07-07 2014-07-07 Development support program, development support method, and development support apparatus

Publications (2)

Publication Number Publication Date
JP2016018307A JP2016018307A (en) 2016-02-01
JP6369177B2 true JP6369177B2 (en) 2018-08-08

Family

ID=55233509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014139439A Expired - Fee Related JP6369177B2 (en) 2014-07-07 2014-07-07 Development support program, development support method, and development support apparatus

Country Status (1)

Country Link
JP (1) JP6369177B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6665576B2 (en) * 2016-02-23 2020-03-13 日本電気株式会社 Support device, support method, and program
JP7261101B2 (en) * 2019-06-20 2023-04-19 株式会社日立社会情報サービス Defect detection device, defect detection method, and defect detection program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004126866A (en) * 2002-10-01 2004-04-22 Mitsubishi Electric Corp Description output suppression program analysis system and description output suppression program analysis method
JP2013045307A (en) * 2011-08-24 2013-03-04 Nec Corp Static analysis system, static analysis result display method and program
JP5900193B2 (en) * 2012-06-29 2016-04-06 富士通株式会社 Update determination program and update determination apparatus

Also Published As

Publication number Publication date
JP2016018307A (en) 2016-02-01

Similar Documents

Publication Publication Date Title
US9389849B2 (en) Test case pattern matching
JP6287549B2 (en) Method and apparatus for porting source code
US9256419B2 (en) Dynamic software updates
US8230397B2 (en) Automated solution that detects configuration problems in an eclipse-based software application
US20140068559A1 (en) Annotation-based infrastructure for automatically generating "predictable" ids for visual components in a web-application
US8627286B2 (en) Fully declarative build system for build optimization
US9304893B1 (en) Integrated software development and test case management system
US8296254B2 (en) Data flow analyzing apparatus, data flow analyzing method and data flow analyzing program
US20020194579A1 (en) Code verification system and method
CN106406918B (en) Automatic source code merging method and automatic source code merging device
JP5845888B2 (en) Software correction apparatus, software correction system, software correction method, and software correction program
EP3177990B1 (en) Method for compiling a source code
KR20140050323A (en) Method and apparatus for license verification of binary file
JP6369177B2 (en) Development support program, development support method, and development support apparatus
US9557965B2 (en) Method for programming language dependent merging of program codes
JP5369565B2 (en) Program error information output device, error information output method, and error information output program
JP7384054B2 (en) automated software program repair
CN110286912B (en) Code detection method and device and electronic equipment
JP6451417B2 (en) Debug support device, debug support system, debug support method, and debug support program
JP6651974B2 (en) Information processing apparatus, compiling method and compiler program
JP2020129372A (en) Automated restoration of software program
US20050010895A1 (en) Software Specification Processing System
JP6665576B2 (en) Support device, support method, and program
CN109597638B (en) Method and device for solving data processing and equipment linkage based on real-time computing engine
JP2018018197A (en) Source code evaluation program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180124

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: 20180612

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180625

R150 Certificate of patent or registration of utility model

Ref document number: 6369177

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees