JP5741265B2 - Program improvement support system - Google Patents

Program improvement support system Download PDF

Info

Publication number
JP5741265B2
JP5741265B2 JP2011154580A JP2011154580A JP5741265B2 JP 5741265 B2 JP5741265 B2 JP 5741265B2 JP 2011154580 A JP2011154580 A JP 2011154580A JP 2011154580 A JP2011154580 A JP 2011154580A JP 5741265 B2 JP5741265 B2 JP 5741265B2
Authority
JP
Japan
Prior art keywords
program
version
violation
static analysis
old
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
JP2011154580A
Other languages
Japanese (ja)
Other versions
JP2013020519A (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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co 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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2011154580A priority Critical patent/JP5741265B2/en
Publication of JP2013020519A publication Critical patent/JP2013020519A/en
Application granted granted Critical
Publication of JP5741265B2 publication Critical patent/JP5741265B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Description

本発明は、より品質の高いプログラムになるようにプログラム修正できるようにプログラマを支援するシステム等に関する。   The present invention relates to a system or the like that supports a programmer so that a program can be corrected so as to become a higher quality program.

一般に、プログラマが任意のプログラムを作成する際には、作成したプログラムを実際に動作させて、動作が正しいことを確認し、動作が正しくない場合にはプログラム修正を行って不具合を除去する作業(デバッグ作業)が行われている。   In general, when a programmer creates an arbitrary program, the created program is actually operated to confirm that the operation is correct. If the operation is not correct, the program is corrected to eliminate the defect ( Debugging work is being done.

しかし、一般に、このようにプログラムを実際に動作させて検証する方法では、全てのプログラム動作について確認を行うことは無理であるため、代表的な動作を選択して動作確認を実施する。このため、この方法では、確認していない動作に関して不具合が残っている可能性があるという欠点がある。   However, in general, in the method of verifying by actually operating the program in this way, it is impossible to check all the program operations. Therefore, the operation check is performed by selecting a representative operation. For this reason, this method has a drawback that there is a possibility that a defect remains regarding an unconfirmed operation.

このような検証方法の弱点を補って、プログラムの不具合の有無の確認作業を効率的に実行するための方法として、静的解析技術が用いられることがある。静的解析では、実装したプログラムを設計規約と照合し、設計規約に合わない形式で実装されているプログラムには欠陥の疑いがあるものとして警告を行う。この方法は、プログラムを実行せずに(動作させずに)確認を行うため、静的解析と呼ばれている。   A static analysis technique is sometimes used as a method for making up for such a weakness of the verification method and efficiently executing a check operation for the presence or absence of a program defect. In the static analysis, the implemented program is checked against the design rule, and a warning is given that the program implemented in a format that does not match the design rule is suspected of being defective. This method is called static analysis because confirmation is performed without executing (running) a program.

静的解析技術によれば、プログラムを実装した段階で確認ができるため、プログラムを動作させて確認するよりも早い段階で確認でき、確認作業を効率的に行うことにも繋がることになる。また、欠陥の疑いがある箇所を絞り込むこともできるので、ソースコードレビューを実施する際にも、効率的に作業を行うことができる。   According to the static analysis technique, since confirmation can be performed at the stage where the program is installed, confirmation can be performed at an earlier stage than confirmation by operating the program, which leads to efficient confirmation work. In addition, since it is possible to narrow down a portion suspected of being defective, it is possible to efficiently perform work even when performing a source code review.

また、組込みシステムにおいては、C言語のような比較的ハードウェアを意識した言語で実装されることが多いので、プログラム記述言語自身による欠陥排除の機構にはあまり依存することができないため、静的解析技術を用いることで品質レベルの向上も期待できる。   Also, since embedded systems are often implemented in a relatively hardware-aware language such as C language, they cannot rely much on the mechanism of defect elimination by the program description language itself. Improvement of quality level can be expected by using analysis technology.

このような理由より、静的解析は、プログラムを実行して確認する作業と合わせて、実施されることが多い。
静的解析技術は、例えば、下記の従来技術文献に開示されている。
For these reasons, static analysis is often performed together with the work of executing and confirming a program.
Static analysis techniques are disclosed in, for example, the following prior art documents.

特許文献3には、規約情報のデータベースに登録されている構文解析項目等に基づいてソースプログラムを静的に解析する技術が開示されている。
特許文献4には、プログラムを制御構造ツリーに展開し、リソースの確保と解放との対応の整合性を静的に確認する技術が開示されている。
Patent Document 3 discloses a technique for statically analyzing a source program based on syntax analysis items and the like registered in a convention information database.
Patent Document 4 discloses a technique for expanding a program into a control structure tree and statically confirming the consistency of correspondence between resource reservation and release.

特許文献6には、プログラム実行中に変化しないデータ等の不変情報に関連付けられている機能単位(変数または処理)の数などを、分割されたプログラム毎に分析することにより、機能的なまとまりの程度を示す凝集度を、静的に算出する技術が開示されている。   In Patent Document 6, the number of functional units (variables or processes) associated with invariant information such as data that does not change during program execution is analyzed for each divided program, so that A technique for statically calculating the degree of aggregation indicating the degree is disclosed.

特許文献7には、欠陥の可能性がある比較演算子と論理演算子との組み合わせパターンをあらかじめ作成し、これらのパターンへの一致を静的に検査することにより、欠陥の可能性があるプログラムを抽出する技術が開示されている。   In Patent Document 7, a combination pattern of a comparison operator and a logical operator having a possibility of a defect is created in advance, and a program having a possibility of a defect is obtained by statically inspecting a match to these patterns. A technique for extracting the above is disclosed.

ところで、静的解析の課題として、静的解析は通常、プログラム全体に対して解析を行うため、解析結果が膨大となることが多い。そこで、特許文献5においては、構成管理ツールと関連付けることにより、この課題を解決する技術が開示されている。すなわち、解析対象のソースコードを構成管理ツールで管理し、構成管理ツールにより付加される日時情報やラベル情報等の識別情報とともに、解析結果を解析対象毎にデータベースに蓄積することにより、分析を容易にしている。   By the way, as a problem of static analysis, since static analysis is usually performed on the entire program, the analysis result often becomes enormous. Therefore, Patent Document 5 discloses a technique for solving this problem by associating with a configuration management tool. In other words, the analysis source is managed by the configuration management tool, and the analysis results are stored in the database for each analysis target along with identification information such as date and time information and label information added by the configuration management tool. I have to.

また、特許文献2においては、ソースコード解析支援システム自身をリモートに配置し、各端末はソースコードを送信すると解析結果を受信できるようにして、端末側の作業者は静的解析についての多くの知識を必要とせずとも、静的解析を実行できるようにする技術が開示されている。   Further, in Patent Document 2, the source code analysis support system itself is remotely arranged so that each terminal can receive the analysis result when transmitting the source code. Techniques have been disclosed that allow static analysis to be performed without the need for knowledge.

また、静的解析の他の課題として、静的解析では欠陥の疑いがあることは示すことができるが、どのようにすれば解決することができるか、個別には指摘することはできないため、指摘があった場合には修正方法を個別に作業者が検討しなければならないという課題がある。   As another issue of static analysis, static analysis can show that there is a suspicion of defects, but it cannot be pointed out individually how it can be resolved, When there is an indication, there is a problem that the operator must examine the correction method individually.

この課題は、特許文献1でも指摘されている。そこで、特許文献1では、個々の開発担当者により行われたプログラムの解析結果を組織的に管理し、組織やプロジェクトの単位で有効かつ柔軟に活用するための技術や、ソースコード上の問題点を指摘することは可能であるが、その問題点をどのように解決すればよいかという情報は何ら提供されない、という課題を解決するための技術が開示されている。特にこの後者に対して、特許文献1では測定されたメトリクス情報を所定の統計量とともに出力したり、検出されたメトリクス情報の経時的な推移を表形式やグラフ形式で出力したりすることにより、プログラムの問題点を解決するために利用できるようにしている。   This problem is also pointed out in Patent Document 1. Therefore, in Patent Document 1, problems in the source code and techniques for systematically managing the analysis results of programs performed by individual developers and using them effectively and flexibly in units of organizations and projects It is possible to point out, but a technique for solving the problem that no information on how to solve the problem is provided is disclosed. In particular, in contrast to this latter, Patent Document 1 outputs the measured metrics information together with a predetermined statistic, or outputs the transition of the detected metrics information over time in a table format or a graph format. It can be used to solve program problems.

特開2002−091764号公報Japanese Patent Laid-Open No. 2002-091764 特開2004−240477号公報Japanese Patent Laid-Open No. 2004-240477 特開2006−236042号公報JP 2006-236042 A 特開2004−145381号公報JP 2004-145381 A 特開2005−202494号公報JP 2005-202494 A 特開2004−062452号公報JP 2004-062452 A 特開1999−134188号公報JP 1999-134188 A

しかしながら、“欠陥の可能性の指摘”(警告)に対して解決する方法としていくつかの方法があり、そのうちのいくつかは本質的に問題を解決するが(つまり、プログラムの欠陥を解消するが)、そのうちのほかのものは表面的には警告を受けないような形にできるが、本質的に問題を解決できるものではない場合には、統計量との比較や、表形式やグラフ形式で表示された経時的な推移のみでは、どの修正方法が本質的に問題を解決できる妥当なものか判断するのが難しいことがある。また、初級の作業者の場合には、欠陥の可能性の指摘があったとしても、具体的にどのように修正すれば良いか、判断が難しいことがある。   However, there are several ways to solve the “possibility of defect indication” (warning), some of which essentially solve the problem (that is, eliminate the defect in the program). ), Others can be superficially unwarned, but if they don't essentially solve the problem, you can compare them with statistics, It may be difficult to determine which correction methods are reasonable enough to essentially solve the problem based on the displayed time course alone. In addition, in the case of a beginner operator, even if there is an indication of the possibility of a defect, it may be difficult to determine how to correct it.

本発明の課題は、任意に作成されるプログラムに関する静的解析結果に基づいて、警告を解消し得る具体的なプログラム修正方法を、容易に、更に場合によっては適切な評価付きで、把握することができるようにし、以ってプログラムの修正を容易に的確に行えるようにするプログラム改善支援システム等を提供することにある。   An object of the present invention is to easily grasp a specific program correction method capable of eliminating a warning based on a static analysis result regarding an arbitrarily created program, and in some cases with an appropriate evaluation. Therefore, it is an object of the present invention to provide a program improvement support system and the like that can easily and accurately correct a program.

本発明のプログラム改善支援システムは、任意のプログラムが登録されるプログラム記憶手段と、予め設計規約が記憶されている設計規約記憶手段と、該プログラム記憶手段に初版または更新版の前記プログラムが新たに登録される毎に、該新たに登録されるプログラムに対して前記設計規約に基づいて静的解析を実行する静的解析実行手段と、該静的解析実行手段による前記静的解析結果として少なくとも設計規約違反箇所と違反内容が記憶される静的解析結果記憶手段と、前記プログラム記憶手段に登録されるプログラムのうち複数の版が存在するプログラムに関して、相対的な旧版・新版となる任意の2つの版毎に、該2つの版それぞれの前記静的解析結果に基づいて、旧版における前記設計規約違反箇所と、新版において該設計規約違反箇所に対応する箇所である該当箇所とで、前記違反内容が異なる場合には、該設計規約違反箇所と該当箇所に関する情報を新旧関連情報として記憶する新旧関連情報抽出・記憶手段と、該新旧関連情報抽出・記憶手段に記憶される新旧関連情報に基づいて、任意の設計規約に関して、前記設計規約違反箇所のプログラム文と前記該当箇所のプログラム文とを、その違反内容変化と共に表示する支援情報表示手段とを有する。   The program improvement support system according to the present invention includes a program storage means in which an arbitrary program is registered, a design rule storage means in which a design rule is stored in advance, and the first or updated version of the program is newly stored in the program storage means. Each time it is registered, a static analysis execution means for executing a static analysis on the newly registered program based on the design rules, and at least a design as the static analysis result by the static analysis execution means The static analysis result storage means for storing the violation part and contents of the violation, and the program having a plurality of versions among the programs registered in the program storage means, any two of the relative old and new versions For each version, based on the static analysis result of each of the two versions, the design rule violation part in the old version and the design rule in the new version If the content of the violation is different from the corresponding part that corresponds to the opposite part, the old and new related information extracting / storing means for storing information on the design rule violation part and the relevant part as old and new related information, and the old and new Support information for displaying a program sentence of the design rule violation part and a program sentence of the corresponding part together with the change of violation contents with respect to an arbitrary design rule based on the old and new related information stored in the related information extracting / storing means Display means.

上記プログラム改善支援システムでは、静的解析結果を用いて上記新旧関連情報を生成・登録することで、これを利用して任意の設計規約に関する違反を解消する為に参考となる情報を表示できる。特に、例えば旧版における任意の規約違反が、新版の上記該当箇所では“違反なし”となっている場合には、設計規約違反箇所のプログラム文と該当箇所のプログラム文の表示を参照することで、ユーザは違反を解消し得る具体的なプログラム文(修正前と修正後)を参照することになる。   In the program improvement support system, by generating and registering the old and new related information using the static analysis result, it is possible to display reference information for solving violations regarding an arbitrary design rule using this. In particular, for example, if an arbitrary rule violation in the old version is "No violation" in the relevant part of the new version, refer to the program sentence of the violation of the design rule and the display of the program sentence of the relevant part, The user refers to a specific program sentence (before and after modification) that can eliminate the violation.

また、例えば、上記新旧関連情報に基づく表示を、特定ユーザ(熟練者等)に対して行うことで、特定ユーザが任意の評価を行って、この評価結果を上記新旧関連情報に含めるようにしてもよい。これによって、上記プログラム文の表示の際には評価結果も表示することで、ユーザは、より適切な具体例(違反を解消し得るプログラム文(修正前と修正後))を選択的に参照することが可能となる。   In addition, for example, by performing display based on the old and new related information for a specific user (expert etc.), the specific user performs an arbitrary evaluation, and the evaluation result is included in the old and new related information. Also good. As a result, when the program text is displayed, the evaluation result is also displayed, so that the user selectively refers to a more appropriate specific example (program text that can eliminate the violation (before and after correction)). It becomes possible.

本発明のプログラム改善支援システム等によれば、任意に作成されるプログラムに関する静的解析結果に基づいて、警告を解消し得る具体的なプログラム修正方法を、容易に、更に場合によっては適切な評価付きで、把握することができるようにし、以ってプログラムの修正を容易に的確に行えるようにすることができる。   According to the program improvement support system and the like of the present invention, a specific program correction method capable of eliminating the warning based on the static analysis result regarding the arbitrarily created program can be easily and further appropriately evaluated. In addition, the program can be easily grasped, so that the program can be corrected easily and accurately.

プログラム改善支援システムの構成・機能ブロック図である。It is a configuration / function block diagram of a program improvement support system. (a)は設計規約例、(b)、(c)はこの設計規約例に係るプログラム例である。(A) is an example of a design rule, and (b) and (c) are program examples according to this example of the design rule. 警告箇所表示画面の一例である。It is an example of a warning location display screen. 静的解析結果変化要因分析部による分析処理フローチャート図である。It is an analysis process flowchart figure by a static analysis result change factor analysis part. (a)は修正データテーブル、(b)は規約データテーブルの一例である。(A) is an example of a correction data table, and (b) is an example of a convention data table. 差分表示入力画面の一例である。It is an example of a difference display input screen. 検索画面の一例である。It is an example of a search screen. 詳細表示画面の一例である。It is an example of a detailed display screen. プログラム改善支援システムのハードウェア構成図である。It is a hardware block diagram of a program improvement assistance system.

以下、図面を参照して本発明の実施の形態について説明する。
図1は、本例のプログラム改善支援システム10の構成・機能ブロック図である。
プログラムを作成する作業者(プログラマ)は、テキストエディタなどを使用して任意のプログラムを作成する。作成したプログラムは、プログラム登録部1を介してプログラム改善支援システム10に登録される(構成管理DB(データベース)2に格納される)。また、作業者が、後にこのプログラムの更新版(修正版/バージョンアップ版等)を作成したときにも、この更新版のプログラムは、プログラム登録部1を介して構成管理DB2に格納される。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a configuration / function block diagram of the program improvement support system 10 of this example.
An operator (programmer) who creates a program creates an arbitrary program using a text editor or the like. The created program is registered in the program improvement support system 10 via the program registration unit 1 (stored in the configuration management DB (database) 2). Also, when an operator later creates an updated version (modified version / upgraded version, etc.) of this program, the updated version of the program is stored in the configuration management DB 2 via the program registration unit 1.

尚、プログラム登録部1は、単に任意のデータ/プログラムを入力して記憶装置に記憶する機能を有するものであってよいが、この例に限らない。例えば、本システム10が、サーバ装置と複数のクライアント装置(端末と呼ぶ)とがネットワークに接続されてなるシステムの場合、例えば、各プログラマは端末側でプログラムを作成した後、ネットワークを介してサーバ装置に対してこのプログラムの登録を依頼することになる。この例の場合、例えば、プログラム登録部1はサーバ装置に設けられており、上記登録依頼を受けて登録許可するか否かを判定して、許可する場合にこのプログラムをサーバ装置内の記憶装置(構成管理DB2)に記憶する機能等を有する。尚、この例の場合、画面12は、端末のディスプレイ等であると考えても良い。   The program registration unit 1 may have a function of simply inputting arbitrary data / program and storing it in the storage device, but is not limited to this example. For example, when the system 10 is a system in which a server device and a plurality of client devices (referred to as terminals) are connected to a network, for example, each programmer creates a program on the terminal side, and then the server via the network The apparatus is requested to register this program. In the case of this example, for example, the program registration unit 1 is provided in the server device. Upon receiving the registration request, the program registration unit 1 determines whether to permit registration, and if so, this program is stored in a storage device in the server device. It has a function stored in the (configuration management DB 2). In this example, the screen 12 may be considered as a terminal display or the like.

尚、構成管理DB2は、単なるデータベース(記憶装置)だけでなく、当該データベースに記憶するデータの管理機能(例えば版数管理等)も含むものと考えても良い。構成管理DB2が高度な管理機能を備えている場合には、プログラム作成者は構成管理DB2にログインしたうえで、プログラムの登録を行うようにしても良い。   The configuration management DB 2 may be considered to include not only a simple database (storage device) but also a management function (for example, version number management) of data stored in the database. When the configuration management DB 2 has an advanced management function, the program creator may log in to the configuration management DB 2 and register the program.

図示の例のプログラム改善支援システム10は、上記プログラム登録部1及び構成管理DB(データベース)2に加えて更に、設計規約DB(データベース)5、静的解析DB(データベース)3等の各種データベースと、静的解析実行部4、変更差分抽出部6、静的解析結果変化要因分析部7、静的解析警告指摘箇所抽出部8、静的解析警告指摘対応検索部9、変化要因評価結果入力部11等の各種処理機能部を備えている。また、任意の画面12をディスプレイ上に表示する機能を備えている。   The program improvement support system 10 in the illustrated example includes various databases such as a design contract DB (database) 5 and a static analysis DB (database) 3 in addition to the program registration unit 1 and the configuration management DB (database) 2. , Static analysis execution unit 4, change difference extraction unit 6, static analysis result change factor analysis unit 7, static analysis warning indication part extraction unit 8, static analysis warning indication correspondence search unit 9, change factor evaluation result input unit 11 and the like. Moreover, it has a function of displaying an arbitrary screen 12 on the display.

上記のように構成管理DB(データベース)2に登録された任意のプログラムは、静的解析実行部4で静的解析され、この解析結果は静的解析DB(データベース)3に登録される。この静的解析処理は、予め設計規約DB(データベース)5に登録されている設計規約に基づいて実行される。この静的解析処理自体は、既に従来技術で述べたように既存技術であり、処理内容については特に説明しないが、設計規約DB5に登録された設計規約や静的解析結果については、後に具体例を用いて説明するものとする。   The arbitrary program registered in the configuration management DB (database) 2 as described above is statically analyzed by the static analysis execution unit 4 and the analysis result is registered in the static analysis DB (database) 3. This static analysis process is executed based on design rules registered in advance in the design rule DB (database) 5. This static analysis processing itself is an existing technology as already described in the prior art, and details of the processing will not be described. However, design rules and static analysis results registered in the design rule DB 5 will be described later in concrete examples. It shall be explained using.

上記静的解析実行部4による静的解析処理は、各プログラムの初版だけでなく更新版(バージョンアップ版等)に対しても実行される。つまり、任意のプログラムが新たに作成された際には、当然、この新規プログラム(初版)に対して静的解析処理が実行されるが、この解析によって何らかのエラー(設計規約違反等)が検出・警告されれば、プログラムを修正する必要が生じる。更に修正後も全ての警告が解消されずに何らかの警告が残っていれば、更に修正を行うことになる。   The static analysis processing by the static analysis execution unit 4 is executed not only on the first version of each program but also on an updated version (version-up version or the like). In other words, when an arbitrary program is newly created, naturally, static analysis processing is executed for this new program (first edition), but any errors (design rule violations, etc.) are detected and detected by this analysis. If warned, the program will need to be modified. Further, even if all warnings are not solved even after correction and some warnings remain, further corrections are made.

この様に、新規プログラム作成時だけでなく、このプログラムの更新版(2版、3版、・・・等)が作成されて構成管理DB2に格納される毎に、これら各更新版のプログラムに対しても静的解析処理が実行される。   In this way, not only when a new program is created, but every time an updated version of this program (2nd version, 3rd version,...) Is created and stored in the configuration management DB 2, the program of each updated version is stored. The static analysis process is also executed.

構成管理DB2には、上記のように複数の版のプログラムが逐次登録されて管理されているが、変更差分抽出部6は、これらの複数の版のプログラムのうち、任意の2つの版のプログラムの間の対応関係や差分(変更部分)を抽出する。これは、例えば後述するように上記静的解析実行部4による静的解析処理結果等に基づいて、2つの版のプログラムの間の対応関係や差分(変更部分)を抽出する。   In the configuration management DB 2, a plurality of versions of the program are sequentially registered and managed as described above. However, the change difference extraction unit 6 can select any two of the plurality of versions of the program. The correspondence and difference (changed part) are extracted. For example, as will be described later, based on the static analysis processing result by the static analysis execution unit 4 and the like, a correspondence relationship and a difference (changed part) between two versions of the program are extracted.

静的解析警告指摘箇所抽出部8は、上述した静的解析実行部4によって求められて静的解析DB3に登録された静的解析結果に基づいて、画面表示を行う。これは例えば、プログラムにおいて設計規約違反が指摘された箇所(警告箇所)と警告内容が分かるような画面表示を行う。尚、静的解析警告指摘箇所抽出部8は、上記プログラムにおいて規約違反が指摘された箇所(警告箇所)を抽出して、この警告箇所のプログラム文のみを画面表示等するものであってもよい。これについても後に説明する。   The static analysis warning indication part extraction unit 8 performs screen display based on the static analysis result obtained by the static analysis execution unit 4 described above and registered in the static analysis DB 3. In this case, for example, a screen display is made so that the location where the design rule violation is pointed out in the program (warning location) and the content of the warning can be understood. The static analysis warning indication part extraction unit 8 may extract a part (warning part) where a violation of the rules is pointed out in the above program and display only the program sentence of the warning part on the screen. . This will also be described later.

これらの差分(変更部分)や警告箇所は、必要に応じて作業者の端末の画面12に表示され、プログラムの状況を確認することができる。尚、プログラム改善支援システム10は、例えばサーバ装置単体で実現してもよいし、上記のようにサーバ装置と複数のクライアント装置(各作業者の端末)とがネットワークに接続された構成で実現してもよい。後者の場合、例えば画面12はクライアント装置のディスプレイに相当することになる。   These differences (changed parts) and warning parts are displayed on the screen 12 of the operator's terminal as necessary, and the status of the program can be confirmed. The program improvement support system 10 may be realized by, for example, a server device alone, or may be realized by a configuration in which a server device and a plurality of client devices (each worker's terminal) are connected to a network as described above. May be. In the latter case, for example, the screen 12 corresponds to the display of the client device.

更に、上記静的解析結果変化要因分析部7は、上述した静的解析DB3に登録された静的解析結果で指摘されている設計規約違反の警告に対して、その後の版ではこの警告が消失している場合に(但し、後の説明のように“変化”している場合であってもよく、消失している場合に限らない)、この消失した警告と警告箇所等に関する情報を登録する(例えば後述するテーブル30に登録する)。   Furthermore, the static analysis result change factor analysis unit 7 eliminates the warning in the later version for the warning of design rule violation pointed out in the static analysis result registered in the static analysis DB 3 described above. (If it is “changed” as described later, but it is not limited to disappearing), information about the lost warning and the warning location is registered. (For example, it registers in the table 30 mentioned later).

これは、例えば、まず、任意の2つの版のプログラム(相対的に新版と旧版となる2つのプログラム;例えば後述する図5の例では3.0版と3.1版の2つのプログラム;よってプログラム・ファイル名は同一であってよい)を、静的解析DB3から取得する。   This is because, for example, any two versions of a program (two programs that are relatively new and old; for example, two programs of 3.0 and 3.1 in the example of FIG. 5 described later) The program file name may be the same) from the static analysis DB 3.

更に、これら取得した2つの版のプログラムの対応関係や差分を抽出する(これは、上記変更差分抽出部6の機能によって抽出してもよい)。そして、例えば典型例としては、これら各差分のうち、相対的に旧版となるプログラムでは警告箇所であったが、相対的に新版となるプログラムでは警告が消失しているものに関しては、例えば後述するテーブル30への登録を行う。つまり、この様な差分を上記消失した警告(設計規約違反の警告)等に関連付けて静的解析DB3に登録する(これを「修正前後関連情報」を登録するものと表現する場合もあるものとする)。但し、この様な典型例に限らず、例えば警告が消失していなくても警告内容が変わっていれば、例えば後述するテーブル30への登録を行うようにしてもよい。   Further, the correspondence relationship or difference between these two acquired programs is extracted (this may be extracted by the function of the change difference extraction unit 6). For example, as a typical example, among these differences, a warning part is used in a relatively old program, but a warning is lost in a relatively new program, for example, will be described later. Registration in the table 30 is performed. In other words, such a difference is registered in the static analysis DB 3 in association with the lost warning (design rule violation warning) or the like (this may be expressed as registering “related information before and after correction”). To do). However, the present invention is not limited to such a typical example. For example, if the content of the warning has changed even if the warning has not disappeared, registration in a table 30 described later may be performed.

上記登録内容(修正前後関連情報)の具体例を図5(a)のテーブル30に示し後に説明する。尚、図5(a)の例ではテーブル30に格納される各「修正前後関連情報」(新旧関連情報)は、複数の版が存在するプログラムに関して、例えば、相対的な旧版と新版となる任意の2つの版(修正前、修正後)に関して、旧版(修正前)における設計規約違反箇所(行番号等)と違反(警告)内容と、新版(修正後)において旧版の設計規約違反箇所に対応する箇所(行番号等)とこの対応箇所の違反(警告)内容(「警告なし」も含まれる)とが、関連付けられた情報である。更に、後述するように、後に、熟練した作業者による評価結果や補足説明等が追加される場合もある。   A specific example of the registration content (related information before and after correction) is shown in the table 30 of FIG. In the example of FIG. 5A, each “related information before and after correction” (new and old related information) stored in the table 30 is, for example, a relative old version and a new version of a program having a plurality of versions. Regarding the two editions (before and after revision) of the old version (before revision), the violations of the design rules (line numbers, etc.) and violations (warnings), and the new version (after revision) of the old version The location (line number or the like) to be performed and the violation (warning) content (including “no warning”) of this corresponding location are associated information. Further, as will be described later, an evaluation result or supplementary explanation by a skilled worker may be added later.

また、上記変化要因評価結果入力部11は、上記「修正前後関連情報」(例えば“消失した警告”と、これに関連付けられたプログラムの差分部分等)に基づく画面(例えば図6に示すような差分表示入力画面50)を、画面12等に出力する。   Further, the change factor evaluation result input unit 11 displays a screen (for example, as shown in FIG. 6) based on the “pre- and post-correction related information” (for example, “disappearing warning” and the difference portion of the program associated therewith). The difference display input screen 50) is output to the screen 12 or the like.

そして、変化要因評価結果入力部11は、この画面表示を熟練した作業者等が見る等して、上記差分部分の修正(警告を消失させた修正等)が妥当なものか否かを、熟練した作業者等が判定して、判定した結果(評価結果)や補足説明等を入力できるようにしている。この入力結果は、上記画面表示に用いた「修正前後関連情報」に対応付けて(修正前後関連情報に追加する形で)、静的解析DB3(そのテーブル30等)に登録される。   Then, the change factor evaluation result input unit 11 determines whether or not the correction of the difference portion (correction with the warning disappeared) is appropriate by seeing this screen display by a skilled worker or the like. The worker who made the determination can input the determination result (evaluation result), supplementary explanation, and the like. This input result is registered in the static analysis DB 3 (its table 30 or the like) in association with the “related information before and after correction” used for the screen display (in a form added to the related information before and after correction).

また、上記静的解析警告指摘対応検索部9は、任意に指定される設計規約に基づいて上記静的解析DB3に登録された「修正前後関連情報」の格納テーブル(後述するテーブル30等)を検索して、該当する情報を求める。そして、この検索結果、すなわち、指定された設計規約に違反した過去のケースに係る上記「修正前後関連情報」(修正前後の設計規約違反の警告(「警告なし」も含まれる)、それに関連した修正前後のプログラム文、(情報がある場合には)熟練した作業者の評価結果や補足説明等)を、作業者の端末の画面12に表示させる。   Also, the static analysis warning indication correspondence search unit 9 stores a storage table of “related information before and after correction” (table 30 and the like described later) registered in the static analysis DB 3 based on an arbitrarily designated design rule. Search for relevant information. And this search result, that is, the “related information before and after revision” related to the past case that violated the specified design rule (warning of design rule violation before and after correction (including “no warning”), and related The program text before and after the correction (when there is information, an evaluation result of a skilled worker and a supplementary explanation) are displayed on the screen 12 of the worker's terminal.

以下、上述したプログラム改善支援システム10の各構成について、更に詳しく説明する。
上記の通り、構成管理DB(データベース)2に格納されたプログラムは、(初版であっても更新版であっても)静的解析実行部4で静的解析される。この静的解析処理は、設計規約DB(データベース)5に予め記憶されている各種設計規約に基づき実行される。静的解析の結果は、静的解析DB(データベース)3に格納される。
Hereinafter, each structure of the program improvement assistance system 10 mentioned above is demonstrated in detail.
As described above, the program stored in the configuration management DB (database) 2 is statically analyzed by the static analysis execution unit 4 (whether it is the first version or the updated version). This static analysis process is executed based on various design rules stored in advance in the design rule DB (database) 5. The result of the static analysis is stored in a static analysis DB (database) 3.

設計規約DB(データベース)5の具体例については後に図5(b)を参照して説明するが、各種設計規約の一例を図2(a)に示す。
設計規約DB5に格納されている設計規約の具体例としては、例えばC言語を対象とした場合、図2(a)に示す例が考えられる。この例は、このプログラム改善支援システム10を使用する組織では、関数の仮引数の変数名により変数の意味を判別できるので可読性や保守性を向上できるという効果を見込んで、このような設計規約を作っているものとしている。
A specific example of the design rule DB (database) 5 will be described later with reference to FIG. 5B. An example of various design rules is shown in FIG.
As a specific example of the design rule stored in the design rule DB 5, for example, in the case of C language, the example shown in FIG. In this example, the organization using this program improvement support system 10 can determine the meaning of the variable by the variable name of the function parameter, so that the readability and maintainability can be improved. It is supposed to be made.

この例の場合、プログラムを図2(b)のように記述した場合、静的解析の結果、設計規約違反が警告されることになる(エラーが検出されて警告される)。一方、プログラムを図2(c)のように記述した場合には、設計規約違反は警告されない。   In the case of this example, when the program is described as shown in FIG. 2B, a design rule violation is warned as a result of static analysis (an error is detected and warned). On the other hand, when the program is described as shown in FIG. 2C, the design rule violation is not warned.

設計規約DB5には、例えばこの様な設計規約が複数登録されている。これらの設計規約は、プログラム改善支援システム10を使用する組織の設計方針に従って、その登録内容が任意に決められる。   In the design contract DB 5, for example, a plurality of such design contracts are registered. The registration contents of these design rules are arbitrarily determined according to the design policy of the organization that uses the program improvement support system 10.

但し、各設計規約は表示用とコンピュータ処理用とから成り、図2(b)には表示用を示している。表示用は、例えば後述する図3のように画面上に表示することで、ユーザが規約内容を認識できるようにする為のものである。一方、コンピュータ処理用は、上記静的解析実行部4が静的解析する際に参照するものであり、表示用の内容に相当するチェックを実行させる為のものである。コンピュータ処理用の具体例は特に示さないが、上記の一例では、図2(b)のように変数型‘int’の後に(変数名(引数名)の記述が無くて)カンマ(,)がある場合には、変数名の記述が無いものとして設計規約違反と判定させるような規約内容となっているものとする。尚、この例に限らず、通常は構文解析を行うのであるから、構文解析を行った結果、引数が無いことが検出された場合に、上記と同様の設計規約違反と判定するようにしてもよい。   However, each design rule consists of a display and a computer process, and FIG. 2B shows the display. The display is for displaying on the screen as shown in FIG. 3 described later, for example, so that the user can recognize the contents of the contract. On the other hand, the computer processing is referred to when the static analysis execution unit 4 performs a static analysis, and is for executing a check corresponding to the content for display. Although a specific example for computer processing is not particularly shown, in the above example, a comma (,) is present after the variable type “int” (no variable name (argument name) is described) as shown in FIG. In some cases, it is assumed that the contents of the rules are such that it is determined that there is no description of the variable name and that the design rules are violated. However, the present invention is not limited to this example. Normally, syntax analysis is performed. Therefore, when it is detected that there is no argument as a result of syntax analysis, it may be determined that the design rule violation is the same as described above. Good.

その後、上記静的解析警告指摘箇所抽出部8が、上記静的解析実行部4によって求められて静的解析DB3に登録された上記静的解析結果に基づいて、警告箇所(規約違反箇所)のプログラム文やその警告内容等を抽出してこれを画面12に表示する(例えば図3のような画面を表示する)。あるいは、プログラム全文を表示すると共に警告箇所や警告内容が分かるような表示を行うようにしてもよい。この表示画面を作業者等が参照することができる。更に作業者は、後述するように、この表示画面(図3の画面等)から“任意の警告への対処方法の参考となる情報が得られる画面”(後述する図7、図8の画面等)に移行させることで、警告に対する適切な対処方法(プログラム文の修正方法等)を知ることもできる。   Thereafter, the static analysis warning indication part extraction unit 8 determines the warning part (conformity violation part) based on the static analysis result obtained by the static analysis execution part 4 and registered in the static analysis DB 3. A program sentence and its warning contents are extracted and displayed on the screen 12 (for example, a screen as shown in FIG. 3 is displayed). Or you may make it display so that a warning location and warning content may be known while displaying the whole program text. An operator or the like can refer to this display screen. Further, as will be described later, the operator can use this display screen (the screen shown in FIG. 3 and the like) as a “screen for obtaining information that can be used as a reference for dealing with an arbitrary warning” (the screens shown in FIGS. 7 and 8 to be described later). ), It is possible to know an appropriate coping method (such as a program sentence correction method) for the warning.

尚、上記静的解析警告指摘箇所抽出部8は、上記静的解析実行部4によって新たな静的解析結果が求められると、自動的に起動して上記画面表示を行うものであってもよい。プログラマは、通常、(初版であるか更新版であるかは関係なく)新たに作成したプログラムを登録したら、その解析結果(設計規約違反等の警告がないかを)を知りたいものであり、これより上記のように自動的に起動して解析結果を画面表示するようにしてもよい。そして、更に、上記図7、図8等の画面表示に移行することで、効率的に的確にプログラムの警告箇所を修正することが可能となる。   The static analysis warning indication point extraction unit 8 may automatically start and display the screen when a new static analysis result is obtained by the static analysis execution unit 4. . Programmers usually want to know the analysis results (whether there are any warnings about violations of design rules, etc.) after registering a newly created program (regardless of whether it is the first version or an updated version) In this way, the analysis result may be automatically displayed and displayed on the screen as described above. Further, by shifting to the screen display shown in FIG. 7, FIG. 8, etc., it becomes possible to correct the warning part of the program efficiently and accurately.

図3は、静的解析警告指摘箇所抽出部8による画面12(警告箇所表示画面20と呼ぶ)の表示例である。
尚、ここで静的解析実行部4による静的解析結果について簡単に説明しておく。この静的解析結果の具体例は、特に図示しないが、例えば解析対象プログラム・ファイルのファイル名と版数(バージョン)、解析対象プログラムにおいて規約違反が検出された箇所(警告箇所)の行番号と、当該違反があった規約の識別番号(違反規約番号)等から成るものである。
FIG. 3 is a display example of a screen 12 (referred to as a warning location display screen 20) by the static analysis warning indication location extraction unit 8.
Here, the static analysis result by the static analysis execution unit 4 will be briefly described. Although a specific example of the static analysis result is not particularly illustrated, for example, the file name and version number (version) of the analysis target program file, the line number of the location where the violation of the rule is detected in the analysis target program (warning location), and , Which consists of the identification number (violation agreement number) of the agreement in which the violation has occurred.

例えばこの様な静的解析結果や構成管理DB2や設計規約DB5等に基づいて、静的解析警告指摘箇所抽出部8は例えば図3に示す警告箇所表示画面20を、例えば画面12に表示する。   For example, based on the static analysis result, the configuration management DB 2, the design rule DB 5, and the like, the static analysis warning indication location extraction unit 8 displays, for example, the warning location display screen 20 shown in FIG.

図3に示す警告箇所表示画面20において、図示の画面上の左上に示すファイル名25には、解析対象プログラムのファイル名が表示され、その下側に示す図示のプログラム表示領域21には、この解析対象のプログラムの内容(プログラム・リスト)が表示される。プログラム表示領域21には、例えば、解析対象のプログラムがスクロール表示される(図では解析対象のプログラムの一部のみが表示されている)。   In the warning location display screen 20 shown in FIG. 3, the file name 25 shown at the upper left of the screen shown in FIG. 3 displays the file name of the program to be analyzed, and the program display area 21 shown below shows this file display area 21. The contents (program list) of the program to be analyzed are displayed. In the program display area 21, for example, the analysis target program is scroll-displayed (only a part of the analysis target program is displayed in the figure).

但し、この例に限らず、例えば、静的解析警告指摘箇所抽出部8は、静的解析DB3(静的解析結果)や構成管理DB2や設計規約DB5等に基づいて、警告箇所(規約違反箇所)のプログラム文やその警告内容等を抽出して、当該警告箇所のプログラム文のみをプログラム表示領域21に表示させるようにしてもよい。   However, the present invention is not limited to this example. For example, the static analysis warning indication point extraction unit 8 may generate a warning point (a rule violation point) based on the static analysis DB 3 (static analysis result), the configuration management DB 2, the design rule DB 5, or the like. ) And the warning content thereof may be extracted, and only the program sentence at the warning location may be displayed in the program display area 21.

すなわち、上記静的解析結果における警告箇所の行番号により、構成管理DB2の解析対象プログラムからこの行番号のプログラム文を抽出することで、警告箇所のプログラム文のみをプログラム表示領域21に表示させることができる。同様に、設計規約DB5から上記静的解析結果における違反規約番号に該当する設計規約を抽出して、画面20に表示させることができる(後述する設計規約表示領域22に表示する)。   That is, by extracting the program sentence of this line number from the analysis target program of the configuration management DB 2 based on the line number of the warning part in the static analysis result, only the program sentence of the warning part is displayed in the program display area 21. Can do. Similarly, the design rule corresponding to the violation rule number in the static analysis result can be extracted from the design rule DB 5 and displayed on the screen 20 (displayed in the design rule display area 22 described later).

尚、本画面20は、例えば静的解析実行部4の処理後に自動的に表示されるものとし、上記ファイル名25には静的解析実行部4による解析対象のプログラム・ファイル名が自動的に設定されるものとしてもよいが、この例に限らない。例えば、ユーザが任意の解析対象プログラムのファイル名を、上記ファイル名25の入力領域に入力するようにしてもよい。尚、この場合、例えば図示のファイル名25の右側に示す所定ボタン(▽マーク)をユーザが操作すると、構成管理DB2に登録されているプログラム・ファイルのファイル名一覧が表示され、ユーザが任意のファイル名を選択・指定することで、ファイル名25が設定されるようにしてもよい。   This screen 20 is automatically displayed after the processing of the static analysis execution unit 4, for example, and the program name and the file name to be analyzed by the static analysis execution unit 4 are automatically displayed in the file name 25. Although it may be set, it is not limited to this example. For example, the user may input the file name of an arbitrary program to be analyzed into the input area for the file name 25. In this case, for example, when the user operates a predetermined button (▽ mark) shown on the right side of the file name 25 shown in the drawing, a list of file names of program files registered in the configuration management DB 2 is displayed. The file name 25 may be set by selecting and specifying the file name.

尚、図3に示す画面は一例であり、この例に限らない。例えば、構成管理DB2が上述したようにデータの管理機能(版数管理等)も有する場合には(版数も指定できるようにしている場合には)、図3と略同様の画面において更に版数の入力欄を設けてもよい。この場合には、ユーザにより指定された任意のファイル名の任意の版数のプログラムに関する静的解析結果が表示されることになる。   The screen shown in FIG. 3 is an example, and the present invention is not limited to this example. For example, when the configuration management DB 2 also has a data management function (version number management, etc.) as described above (when the version number can be specified), the version is further displayed on a screen substantially similar to FIG. A number input field may be provided. In this case, a static analysis result regarding an arbitrary version number program of an arbitrary file name designated by the user is displayed.

上記プログラム表示領域21に表示されるプログラム・リストにおいて、何らかの設計規約違反と判定されたプログラム文に対しては、プログラム表示領域21の図上左端の領域に所定のマーク(ここでは四角形のマーク)が表示される。これは、静的解析結果の上記“警告箇所の行番号”に基づいて表示できる。この例では、図示のfunc2()とfunc3()の行(プログラム文)に設計規約違反があるので、このことを示すために、これらfunc2()とfunc3()の行に対しては図上左端の領域にそれぞれ四角形のマーク(白四角□、黒四角■)が表示されている。   In the program list displayed in the program display area 21, a predetermined mark (in this case, a square mark) is displayed in the leftmost area of the program display area 21 for a program sentence that is determined to be in violation of some design rule. Is displayed. This can be displayed based on the above-mentioned “warning line number” of the static analysis result. In this example, the lines of func2 () and func3 () shown in the figure (program statements) violate the design rules. To show this, the lines of func2 () and func3 () are not shown in the figure. Square marks (white squares □, black squares ■) are displayed in the leftmost area.

尚、基本的には白四角□が表示されるが、ユーザ(作業者)が、四角形マークがある行(プログラム文)のなかから任意の行を指定すると、指定された行のマーク表示は、黒四角■に変わるようになっている。図示の例では現在、func3()の行(プログラム文)が指定されているものとしているので、func3()の行のマーク表示は黒四角■になっている。   Basically, a white square □ is displayed. However, if the user (operator) designates an arbitrary line from among the lines with a square mark (program sentence), the mark display of the designated line is as follows. It is designed to change to a black square. In the example shown in the drawing, it is assumed that the line (program sentence) of func3 () is currently designated, so the mark display of the line of func3 () is a black square.

また、警告箇所表示画面20の図上右上に示す設計規約表示領域22には、現在指定されている行(黒四角■の行)に関して“違反している設計規約”の内容が表示される。これは、上記「違反があった規約の識別番号(違反規約番号)」と設計規約DB5に基づいて表示できる(設計規約DB5については後に図5(b)を参照して説明する)。   In addition, the design rule display area 22 shown in the upper right of the figure of the warning location display screen 20 displays the contents of “violating design rule” with respect to the currently designated line (black square ■ line). This can be displayed based on the “identification number of violation rule (violation rule number)” and the design rule DB 5 (the design rule DB 5 will be described later with reference to FIG. 5B).

また、画面20の図上右下に示す指摘箇所表示領域23には、現在指定されている行(プログラム文)の関数名等が表示される。
プログラムの製作作業者は、例えば上述したような警告箇所表示画面20の表示内容を参照して、設計規約違反が警告されていれば、この警告に従って上記解析対象のプログラムを修正する(更新版のプログラムを作成する)。
Further, in the indication location display area 23 shown in the lower right of the screen 20, the function name of the currently designated line (program sentence) is displayed.
For example, referring to the display contents of the warning part display screen 20 as described above, the program production worker corrects the analysis target program according to the warning if the design rule violation is warned (update version) Create a program).

ここで、本手法では、ユーザが例えば警告箇所表示画面20内の図示の「修正候補の検索」ボタン24を操作することで、上記の現在指定されている行(黒四角■の行)の設計規約違反を解消する為に参考となる情報が得られる画面(後述する画面70、画面80等)の表示が行われる。これについては、後に詳細に説明するものとする。尚、この場合のユーザとは、主に上記「熟練した作業者」以外の作業者を想定している。   Here, in this method, for example, when the user operates the “revision candidate search” button 24 illustrated in the warning location display screen 20, the above-described currently designated row (black square ■ row) is designed. A screen (screen 70, screen 80, etc., which will be described later) on which reference information is obtained in order to resolve the violation of the rules is displayed. This will be described in detail later. The user in this case mainly assumes an operator other than the above “skilled worker”.

上記プログラムの修正が完了したら、更新版プログラムを、プログラム登録部1を使用して構成管理DB2に登録する。これより、上記初回(初版)のプログラムの場合と略同様に、構成管理DB2に登録された上記更新版プログラムに対して、静的解析実行部4により静的解析が実行され、その結果は静的解析DB3に格納される。   When the modification of the program is completed, the updated program is registered in the configuration management DB 2 using the program registration unit 1. From this, the static analysis is executed by the static analysis execution unit 4 on the updated program registered in the configuration management DB 2 in the same manner as in the case of the first (first edition) program, and the result is static. Stored in the dynamic analysis DB 3.

ここで、上記1回目(初版のプログラム)の登録の場合と異なり、2回目以降(更新版)のプログラムの登録後に関して、更に、上記変更差分抽出部6によって2つの版のプログラムの差分を抽出して(例えば前回(最新版の1つ前の版)のプログラムと今回(最新版)のプログラムとの差分(変更部分)を抽出して)、これを例えば画面12に表示することで、作業者等が画面12を参照してプログラムの修正部分の確認等を行うことができる。   Here, unlike the case of the first registration (first version program), after the second and subsequent (updated version) program registration, the change difference extraction unit 6 further extracts the difference between the two versions of the program. (For example, by extracting the difference (changed part) between the previous program (version one immediately before the latest version) and the current (latest version) program) and displaying this on the screen 12, for example, A person can refer to the screen 12 and check the corrected part of the program.

上記変更差分抽出部6による上記2つの版のプログラムの差分(変更部分)の抽出処理について、以下、説明する。但し、変更差分抽出部6による画面表示については、ここでは特に示さない。また、必ずしも変更差分抽出部6による画面表示を行う必要はない。但し、変更差分抽出部6の機能自体または処理結果は、後述するように、静的解析結果変化要因分析部7の処理の際に利用される。詳しくは後述する。   The process of extracting the difference (change part) between the two versions of the program by the change difference extraction unit 6 will be described below. However, the screen display by the change difference extraction unit 6 is not particularly shown here. Further, the screen display by the change difference extraction unit 6 is not necessarily performed. However, the function itself or the processing result of the change difference extraction unit 6 is used in the processing of the static analysis result change factor analysis unit 7 as described later. Details will be described later.

変更差分抽出部6の処理では、まず、対象となる2つの版のプログラム(ソースコード)同士の対応付けを行う。これは既存技術であり特に詳細には説明しないが、2つの版のプログラム(ソースコード)間で、例えば行単位(1行単位でも複数行単位でもよい)または関数単位等で対応付けを行う。例えば行単位の場合、例えば前回のプログラムの各行毎に、その行に対応する今回のプログラムの行を求めて、両者の行番号を対応付けて一時的に記憶する(前回プログラムの行番号:これに対応する今回プログラムの行番号)。   In the process of the change difference extraction unit 6, first, two target programs (source code) are associated with each other. Although this is an existing technique and will not be described in detail, the two versions of the program (source code) are associated with each other, for example, in units of lines (may be in units of one line or a plurality of lines) or in units of functions. For example, in the case of line units, for each line of the previous program, for example, the line of the current program corresponding to that line is obtained, and the line numbers of both are associated and temporarily stored (line number of the previous program: this This program's line number corresponding to).

これは、例えば前記プログラムにおける任意の行に関して、今回(最新版)においてたとえ行番号が変わっても内容が変わっていなければ(内容が完全一致する場合には)、当然、問題なく対応付けられることになる。尚、実際には、1行だけ一致しても完全一致とは見做さず、複数行連続して一致した場合に完全一致と見做す場合が多いが、この例に限らない。また、他にも例えば、コメント部分の変更は無視する方法もあり(コメント部分が変更されていても、本文部分に変更がなければ、完全一致と見做す)、様々な方法があってよい。   This means that, for example, for any line in the program, even if the line number changes in this time (latest version), if the content does not change (when the contents are completely matched), it can naturally be associated with no problem. become. Actually, even if only one line is matched, it is not regarded as a perfect match. When a plurality of lines are matched continuously, it is often regarded as a perfect match. However, the present invention is not limited to this example. In addition, for example, there is a method of ignoring the change of the comment part (even if the comment part is changed, if there is no change in the body part, it is regarded as an exact match), and there are various methods. .

対応付け結果は、上記の通り、例えば行単位の場合には、前回のプログラムにおける任意の行の行番号と、今回(最新版)のプログラムにおいて対応する行の行番号とを、対応付けたものとなる(これに、更に修正の有無を示す情報も付加されてもよい)。   As described above, for example, in the case of line unit, the association result is obtained by associating the line number of an arbitrary line in the previous program with the line number of the corresponding line in the current (latest version) program. (In addition to this, information indicating the presence or absence of correction may be added).

例えば、3.0版のプログラムと3.1版のプログラムとを例にして、例えば3.0版の110行目〜115行目に上記関数func2()に係る記述があり、3.1版では同一の記述が120行目〜125行目にあった場合には、“修正なし”の判定と共に3.0版の110行目〜115行目と3.1版の120行目〜125行目とが対応付けられて記憶されることになる。   For example, a 3.0 version program and a 3.1 version program are taken as an example. For example, the description of the function func2 () is described in the 110th to 115th lines of the 3.0 version. Then, if the same description is in the 120th to 125th lines, it is determined that there is no correction and the 110th to 115th lines in the 3.0 version and the 120th to 125th lines in the 3.1 version. The eyes are associated with each other and stored.

また、例えば、3.0版の200行目〜204行目に上記関数func3()に係る記述があり、3.1版ではその一部が修正された(例えば‘int’の後に変数名が記述された)記述が210行目〜214行目にあった場合には、“修正あり”の判定と共に、3.0版の200行目〜204行目と3.1版の210行目〜214行目とが対応付けられて記憶されることになる。尚、例えば、3.0版の200行目〜204行目と3.1版の210行目〜214行目とが完全一致する場合には、両者は対応付けられるべきものと判定することになる。   In addition, for example, the description of the function func3 () is described in the 200th to 204th lines of the 3.0 version. A part of the description is corrected in the 3.1 version (for example, the variable name is changed after 'int'. If the description is in the 210th to 214th lines, it is determined that there is “correction”, and the 200th to 204th lines in the 3.0 version and the 210th line in the 3.1 version The 214th line is associated and stored. In addition, for example, if the 200th to 204th lines in the 3.0 version and the 210th to 214th lines in the 3.1 version completely match, it is determined that they should be associated with each other. Become.

そして、例えば、“修正あり”となっているものだけを表示する。上記の例では、例えば、3.0版の200行目〜204行目と3.1版の210行目〜214行目とが、両者が対応付けられる形で表示されることになる。   For example, only those with “corrected” are displayed. In the above example, for example, the 200th to 204th lines of the 3.0 version and the 210th to 214th lines of the 3.1 version are displayed in a form in which they are associated with each other.

尚、上記2つのプログラムの差分に関しては、上述した前回と今回(最新版)との差分の例に限らず、更に前々回と今回(最新版)との差分や、初版と今回(最新版)との差分等を求めるものであってもよい。   Note that the difference between the above two programs is not limited to the example of the difference between the previous time and the current time (latest version), and the difference between the previous time and the current time (latest version), or the first version and the current time (latest version). It is also possible to obtain a difference between the two.

このように、更新版が存在するプログラムに関して、構成管理DB2に格納された各版同士の変更部分(差分)等を求めて表示等することができる。
尚、上記変更差分抽出部6の処理機能または処理結果は、上記のように単に画面表示する場合に限らず、例えば後述する図4の処理で用いることもできる。
In this way, regarding a program in which an updated version exists, a changed part (difference) between the versions stored in the configuration management DB 2 can be obtained and displayed.
Note that the processing function or processing result of the change difference extraction unit 6 is not limited to the simple screen display as described above, and can be used, for example, in the processing of FIG.

尚、構成管理DB2が高度な管理機能を備えている場合には、プログラム製作の作業者は構成管理DB2にログインし、修正対象のプログラムを構成管理DB2からチェックアウトした後、プログラムの修正を行い、その後、修正後のプログラムを構成管理DB2にチェックインするようにしてもよい。   When the configuration management DB 2 has an advanced management function, the program production operator logs in to the configuration management DB 2, checks out the program to be modified from the configuration management DB 2, and then corrects the program. Thereafter, the corrected program may be checked into the configuration management DB 2.

その際には、構成管理DB2には、修正後(更新版)のプログラムだけでなく、修正日時や修正作業者も登録されるようにしてもよい。また、作業者は必要に応じてベースライン番号(版数)を設定することも可能である。この場合には、変更差分の情報には、修正日時、修正作業者、ベースライン番号(版数)などの付帯情報を含めることができる。   At that time, not only the modified (updated version) program but also the modification date and the modification operator may be registered in the configuration management DB 2. Further, the operator can set a baseline number (version number) as necessary. In this case, the change difference information can include additional information such as the correction date and time, the correction operator, and the baseline number (version number).

更新版が存在するプログラムに関しては、さらに任意のときに(例えば最新版が登録されて静的解析が行われた後等であるが、この例に限らない)、静的解析結果変化要因分析部7によって、任意の2つの版同士の静的解析結果に係る差分(特に旧版では何らかの設計規約違反の警告があった箇所が、新版では警告が解消されている部分)が抽出・登録される。   For programs with an updated version, the static analysis result change factor analysis unit at any time (for example, after the latest version is registered and static analysis is performed, but not limited to this example) 7 is used to extract and register the difference between the static analysis results between any two versions (particularly where the warning for some design rule violations was found in the old version and where the warning was resolved in the new version).

この分析処理の一例を、図4に示すフローチャート図を参照して説明する。
図4は、静的解析結果変化要因分析部7による分析処理フローチャート図である。
尚、この処理の前に、ユーザが任意の解析対象プログラムを指定(そのファイル名の入力等)を行うようにしてもよい。また、本説明では、解析対象プログラムは、初版、2版、3版が作成・登録されているものとし(登録時に静的解析も実行済み)、3版(最新版)のプログラム登録後に本処理が行われる場合を例にして説明するものとする。
An example of this analysis process will be described with reference to the flowchart shown in FIG.
FIG. 4 is a flowchart of analysis processing performed by the static analysis result change factor analysis unit 7.
Prior to this processing, the user may designate an arbitrary analysis target program (input the file name, etc.). In this description, the analysis target program is assumed to have been created and registered as the first version, second version, and third version (static analysis has already been executed at the time of registration), and this processing is performed after the third version (latest version) program is registered. The case where the above is performed will be described as an example.

図4において、まず、解析対象プログラムの初版の静的解析結果をキーとして取得する(ステップS101)。これは、上記のように、静的解析結果は例えばファイル名と版数(バージョン)、“規約違反があった箇所(警告箇所)の行番号”と違反規約番号等から成るものであるので、そのなかでファイル名が解析対象プログラムのファイル名であり且つ版数が初版であるデータ全てを、上記キーとして取得すればよい。   In FIG. 4, first, the static analysis result of the first version of the analysis target program is acquired as a key (step S101). This is because, as described above, the static analysis result is composed of, for example, the file name and the version number (version), “the line number of the place where the rule was violated (warning part)”, the violation rule number, etc. Among them, all the data whose file name is the file name of the analysis target program and whose version number is the first version may be acquired as the key.

次に、キーとして取得した静的解析結果における全ての警告(規約違反)それぞれについて(各規約違反箇所を順次、処理対象として)、以下のステップS103〜S107の処理を実行する(S102−S102a間でループ)。   Next, for each of all warnings (rule violations) in the static analysis result acquired as a key (each rule violation point is sequentially processed), the following steps S103 to S107 are executed (between S102 and S102a) Loop in).

まず、初版における処理対象の規約違反箇所(上記“規約違反があった箇所(警告箇所)の行番号”;以下、違反箇所行番号と言う)と、上記変更差分抽出部6による上記2つの版のプログラム同士の対応付け結果もしくは差分の抽出処理結果とに基づいて、1つ後の版(最初は、初版の次の版;本例では2版)のプログラムにおける「該当箇所」の静的解析結果を取得する(ステップS103)。   First, the violation of the rules to be processed in the first edition (the above-mentioned “line number of the violation of the rule (warning part)”; hereinafter referred to as the violation part line number) and the two versions by the change difference extraction unit 6 Static analysis of the “corresponding part” in the program of the next version (first version is the next version after the first version; in this example, two versions) A result is acquired (step S103).

これは、上記変更差分抽出部6の対応付け結果によって、初版の各行毎に、その行に対応する2版の行が分かるので(例えば対応する行番号同士がペアで登録されているので)、上記各規約違反箇所(上記“違反箇所行番号”)毎に、その“違反箇所行番号”の行に対応する1つ後の版のプログラムにおける行の行番号(上記「該当箇所」の行番号)が分かる。これより、上記1つ後の版のプログラムに関する静的解析結果に、この「該当箇所」に関する情報がある場合にはこの情報を取得する。但し、もし、「該当箇所」に関する情報が無い場合には、警告は解消されたものと見做し、ステップS103では例えば“警告なし”が取得されたものとする。   This is because, by the association result of the change difference extraction unit 6, for each row of the first version, the two edition rows corresponding to the row are known (for example, the corresponding row numbers are registered in pairs) For each of the violations of the above-mentioned rules (above-mentioned “violation part line number”), the line number of the next version of the program corresponding to the line of the “violation part line number” (the line number of the “corresponding part”) ) As a result, if the static analysis result relating to the next version of the program includes information relating to the “corresponding location”, this information is acquired. However, if there is no information related to “corresponding location”, it is assumed that the warning has been eliminated, and “no warning” is acquired in step S103, for example.

ここで、上述した具体例において仮に3.0版が初版、3.1版が1つ後の版であるものとし、例えば上記「初版における処理対象の規約違反箇所」が3.0版の110行目〜115行目であったとするならば、上記例では3.1版における「該当箇所」は120行目〜125行目ということになる。よって、この場合には、3.1版に関する静的解析結果のなかに120行目〜125行目に関する警告があった場合には、この警告内容(違反があった設計規約の規約番号等)が、上記「該当箇所」の静的解析結果として取得されることになる。尚、もし、3.1版に関する静的解析結果のなかに120行目〜125行目に関する警告が無かった場合には、上記「該当箇所」の静的解析結果として“警告なし”が取得されることになる。   Here, in the above-described specific example, it is assumed that version 3.0 is the first version, version 3.1 is the next version, and for example, the above-mentioned “point of violation of the rules to be processed in the first version” is 110 of version 3.0. If it is assumed that the line is line 115 to line 115, in the above example, “corresponding part” in the 3.1 version is line 120 to line 125. Therefore, in this case, if there is a warning about the 120th to 125th lines in the static analysis result related to the 3.1 version, the content of this warning (such as the code number of the design rule in violation) Is acquired as a static analysis result of the “corresponding location”. If there are no warnings about the 120th to 125th lines in the static analysis results for version 3.1, “no warning” is acquired as the static analysis result for the “corresponding location”. Will be.

尚、上記一例では事前に変更差分抽出部6の処理(少なくとも対応付け処理)が行われているものとしたが、この例に限らない。例えば、事前ではなく本処理中に、変更差分抽出部6の処理を行うようにしてもよい。この場合には、ステップS103の処理は、例えば図中に点線で囲ったステップS103a〜S103cの処理を行う。   In the above example, the process of the change difference extraction unit 6 (at least the association process) is performed in advance, but the present invention is not limited to this example. For example, the process of the change difference extraction unit 6 may be performed during the process, not in advance. In this case, the process of step S103 performs the process of step S103a-S103c enclosed with the dotted line in the figure, for example.

すなわち、変更差分抽出部6の機能の一部(対応付け機能)によって、上記処理対象の規約違反箇所のプログラム文等に基づいて、上記1つ後の版のプログラムを検索して「該当箇所」を求める。すなわち、上記の例では2版のプログラムにおいて初版の上記違反箇所のプログラム文と同一(完全一致)のプログラム文がある箇所の行番号等を、上記「該当箇所」として抽出する(ステップS103a)。   That is, a part of the function of the change difference extraction unit 6 (association function) searches for the program of the next version on the basis of the program sentence or the like of the part to be processed that violates the rule, and reads “corresponding part”. Ask for. That is, in the above example, in the two-version program, the line number or the like of the part having the same (completely identical) program sentence as the program sentence in the first edition is extracted as the “corresponding part” (step S103a).

そして、この「該当箇所」の行番号等を用いて、上記の例では2版のプログラムに関する静的解析結果を検索して、「該当箇所」に関する警告があればこの警告情報(違反規約番号等)を取得し、警告が無ければ例えば“警告なし”が取得されるものとする(ステップS103b、S103c)。   In the above example, the static analysis result related to the two-version program is searched using the line number of the “corresponding part”, and if there is a warning regarding the “corresponding part”, the warning information (violation rule number, etc. If no warning is given, for example, “no warning” is obtained (steps S103b and S103c).

そして、上記初版の規約違反箇所と1つ後の版における「該当箇所」とで、解析結果に変化があるか否かを判定する(ステップS104)。これは、例えば、上記初版プログラムに係る(上記キーにおける)上記規約違反箇所の違反規約番号と、1つ後の版(ここでは2版)のプログラムに係る上記該当箇所に関する違反規約番号とが、一致するか否かを判定し、不一致の場合には解析結果に変化あり(ステップS104,YES)と判定する。尚、上記“警告なし”の場合には、違反規約番号が無いことになるので、必ず不一致となり解析結果に変化あり(ステップS104,YES)と判定されることになる。   Then, it is determined whether or not there is a change in the analysis result between the first violation version of the convention and the “corresponding location” in the next version (step S104). This is because, for example, the violation rule number of the violation of the rule (in the above key) related to the first edition program and the violation rule number related to the corresponding portion of the program of the next version (here, two versions) It is determined whether or not they match, and if they do not match, it is determined that there is a change in the analysis result (YES in step S104). In the case of “no warning”, since there is no violation rule number, there is always a mismatch and it is determined that there is a change in the analysis result (YES in step S104).

但し、この例に限らず、典型例としては例えば、1つ後の版(ここでは2版)のプログラムに係る上記「該当箇所」に関しては“警告なし”となっている場合にのみ(この様な変化があった場合のみ)、解析結果に変化あり(ステップS104,YES)と判定するようにしてもよい。   However, the present invention is not limited to this example, and a typical example is, for example, only when “no warning” is given for the “corresponding part” related to the program of the next version (here, two versions) (such as this Only when there is a significant change), it may be determined that there is a change in the analysis result (step S104, YES).

尚、上記の通り、1つ後の版(ここでは2版)のプログラムに関する静的解析結果も静的解析DB3に格納されている。この静的解析結果には上記の通り“規約違反があった箇所の行番号”(違反規約番号)が登録されているので、このなかに上記「該当箇所」の行番号が存在しなければ“警告なし”(規約違反なし)と見做すようにすればよい。   As described above, the static analysis result relating to the program of the next version (here, the second version) is also stored in the static analysis DB 3. In this static analysis result, as described above, “the line number of the place where the rule was violated” (violation rule number) is registered. If the line number of the “corresponding place” does not exist in the static analysis result, It can be assumed that there is no warning (no violation of the rules).

ステップS104がYESの場合、変更箇所に関する情報(差分情報)の取得を行い(ステップS106)、当該差分情報の登録を行う(ステップS107)。差分情報は、例えば、上記処理対象の新旧2つの版(ここでは初版と2版;本例では後に初版と3版、2版と3版の処理も行うことになる)の相互に対応する行の行番号とこれらの行の違反規約番号、版数等である。ステップS107は、例えば図5(a)に示す修正データテーブル30への差分情報の登録を行うものである。尚、修正データテーブル30も静的解析DB3に格納されるものであってよいが、この例に限らない。   When step S104 is YES, the information (difference information) regarding the changed part is acquired (step S106), and the difference information is registered (step S107). The difference information is, for example, the lines corresponding to each other between the old and new versions of the processing target (here, the first version and the second version; in this example, the first version, the third version, the second version, and the third version will be processed later) Line numbers, violation code numbers of these lines, version numbers, etc. In step S107, for example, the difference information is registered in the correction data table 30 shown in FIG. The correction data table 30 may also be stored in the static analysis DB 3, but is not limited to this example.

図5(a)には、上記修正データテーブル30の構成例を示す。
尚、本例における(修正前)、(修正後)とは、例えば相対的な旧版、新版を意味する。上記図4の処理例では、最初の方の処理では、初版が修正前、その1つ後の版(2版)が修正後として、修正データテーブル30への登録が行われることになる。更に続いて、初版が修正前、上記2版の更にその1つ後の版(3版)が修正後として、修正データテーブル30への登録が行われることになる。更に、2版が修正前、その1つ後の版(3版)が修正後として、修正データテーブル30への登録が行われることになる。尚、何れの場合も、ステップS104がYESの場合に、修正データテーブル30への登録が行われることになる。
FIG. 5A shows a configuration example of the correction data table 30.
In this example, (before correction) and (after correction) mean, for example, a relative old version and a new version. In the process example of FIG. 4, in the first process, the first version is registered in the correction data table 30 before correction and the next version (second version) is corrected. Subsequently, the first version is registered before the correction, and the version after the second version (the third version) is corrected, and registration into the correction data table 30 is performed. Further, registration in the correction data table 30 is performed with the second version before correction and the next version (third version) after correction. In either case, registration in the correction data table 30 is performed when step S104 is YES.

図5(a)に示す修正データテーブル30は、違反規約番号(修正前)31、プロジェクト名32、ファイル名33、行番号(修正前)34、行番号(修正後)35、違反規約番号(修正後)36、版数(修正前)37、版数(修正後)38、判定39、説明40の各データ項目より成る。   The modified data table 30 shown in FIG. 5A includes a violation rule number (before correction) 31, a project name 32, a file name 33, a line number (before correction) 34, a line number (after correction) 35, a violation rule number ( After correction) 36, the version number (before correction) 37, the version number (after correction) 38, the determination 39, and the description 40 are included.

ファイル名33には上記解析対象プログラムのファイル名が格納される。尚、プロジェクト名32には、ファイル名33のプログラムが含まれるプロジェクトのプロジェクト名が格納されるが、これは本説明には特に関係ないので、本説明ではプロジェクト名32に関しては省略して説明するものとする。   The file name 33 stores the file name of the analysis target program. Note that the project name 32 stores the project name of the project including the program with the file name 33, but this is not particularly relevant to the present description, so in the present description, the project name 32 is omitted. Shall.

そして、違反規約番号(修正前)31、行番号(修正前)34、版数(修正前)37には、それぞれ、ファイル名33のプログラムの旧版に関する情報が格納される。上記の例では初版プログラムの版数(初版)が版数(修正前)37に格納され、上記違反箇所行番号が行番号(修正前)34に格納され、上記規約違反箇所の違反規約番号が違反規約番号(修正前)31に格納されることになる。   The violation rule number (before correction) 31, the line number (before correction) 34, and the version number (before correction) 37 respectively store information on the old version of the program with the file name 33. In the above example, the version number (first version) of the first version program is stored in the version number (before correction) 37, the line number of the violation part is stored in the line number (before correction) 34, and the violation rule number of the rule violation part is The violation rule number (before correction) 31 is stored.

同様にして、上記行番号(修正後)35、違反規約番号(修正後)36、版数(修正後)38には、それぞれ、ファイル名33のプログラムの新版に関する情報が格納される。上記の例では2版プログラムの版数(2版)が版数(修正後)38に格納され、上記「該当箇所」の行番号が行番号(修正後)35に格納され、「該当箇所」に関する静的解析結果が違反規約番号(修正後)36に格納されることになる。   Similarly, the line number (after correction) 35, the violation rule number (after correction) 36, and the version number (after correction) 38 respectively store information regarding the new version of the program with the file name 33. In the above example, the version number (two versions) of the two-version program is stored in the version number (after correction) 38, the line number of the “corresponding part” is stored in the line number (after correction) 35, and “corresponding part” The static analysis result regarding the violation rule number (after correction) 36 is stored.

尚、上記典型例の場合には違反規約番号(修正後)36には必ず「規約違反なし(警告なし)」を意味する情報(図示の例では‘−’)が格納されることになる。これは、上記の通り、典型例では、1つ後の版のプログラムに係る「該当箇所」に関して“警告なし”となっている場合にのみ、ステップS104がYESとなってステップS107の処理が行われるからである。   In the case of the above typical example, the violation rule number (after correction) 36 always stores information (“−” in the illustrated example) that means “no rule violation (no warning)”. This is because, as described above, in the typical example, step S104 is YES and the process of step S107 is performed only when “no warning” is set for the “corresponding part” related to the next version of the program. Because it is.

尚、図4の処理の段階では、判定39と説明40には、未だデータは格納されないことになる(例えば判定39に関しては‘未判定’としておく)。判定39と説明40には、後述する処理によって任意の情報が格納され、更にその後、画面表示されることになる。詳しくは後述する。   In the processing stage of FIG. 4, data is not yet stored in the determination 39 and the description 40 (for example, the determination 39 is set as “not determined”). Arbitrary information is stored in the determination 39 and the description 40 by a process described later, and then displayed on the screen. Details will be described later.

違反規約番号(修正前)31には、修正前(相対的に旧版)のプログラムにおいて違反が指摘された設計規約を示す識別番号(この識別番号は、本例では図5(b)の“規約番号”)が格納される。   The violation rule number (before correction) 31 includes an identification number indicating a design rule in which a violation has been pointed out in the program before the correction (relatively old version) (this identification number is “Rule in FIG. 5B” in this example). Number ") is stored.

尚、逐一「相対的に旧版」、「相対的に新版」等と記すことなく、単に「旧版」、「新版」と記す場合もあるものとする。
プロジェクト名32には、ファイル名33のプログラム・ファイルが係るプロジェクトのプロジェクト名が格納される。
Note that “relatively old version”, “relatively new version”, etc. may not be written one by one, but simply “old version” or “new version”.
The project name 32 stores the project name of the project associated with the program file with the file name 33.

ファイル名33には、上記の通り解析対象のプログラム・ファイルの名称が格納される。
行番号(修正前)34には、修正前のプログラムにおける設計規約違反が指摘されている箇所を示す情報(行番号)が格納される。
As described above, the file name 33 stores the name of the program file to be analyzed.
The line number (before modification) 34 stores information (line number) indicating the location where the design rule violation in the program before modification is pointed out.

行番号(修正後)35には、修正後(相対的に新版)のプログラムにおいて、修正前のプログラムで設計規約違反が指摘されている箇所に該当する箇所(上記「該当箇所」)を示す行番号が格納される。つまり、上記行番号(修正前)34の行に対応する行の行番号が格納される。   The line number (after modification) 35 indicates a line (the above-mentioned "corresponding part") corresponding to the part where the violation of the design rule is pointed out in the program before the modification in the program after modification (relatively new version). A number is stored. That is, the row number of the row corresponding to the row number 34 (before correction) is stored.

違反規約番号(修正後)36には、上記行番号(修正後)35の行のプログラム文に関して、設計規約違反がある場合にはその規約番号が格納され、違反が無い場合には違反が無いことを示す記号等(本例では‘−’)が格納される。尚、図4の処理による場合、違反規約番号(修正前)31に‘−’が格納されることはない。また、上記一例のように違反規約番号が不一致の場合にステップS104がYESとなってステップS107の処理が行われる例では、違反規約番号(修正前)31と違反規約番号(修正後)36とは必ず異なることになる。また、上記典型例の場合、違反規約番号(修正後)36には必ず‘−’が格納されることになる(但し、図5(b)は典型例を示すものではない)。   The violation rule number (after correction) 36 stores the rule number when there is a design rule violation for the program statement in the line with the line number (after correction) 35, and there is no violation when there is no violation. A symbol or the like (“-” in this example) is stored. In the process of FIG. 4, “−” is not stored in the violation rule number (before correction) 31. In the example in which step S104 is YES and the process of step S107 is performed when the violation rule numbers do not match as in the above example, the violation rule number (before correction) 31 and the violation rule number (after correction) 36 Will always be different. In the case of the above typical example, “−” is always stored in the violation rule number (after correction) 36 (however, FIG. 5B does not show a typical example).

版数(修正前)37には、修正前のプログラムの版数が格納されている。
版数(修正後)38には、修正後のプログラムの版数が格納されている。
判定39には、特定ユーザ(熟練した作業者等)が入力した“プログラムの修正方法の評価結果”が格納される。
The version number (before correction) 37 stores the version number of the program before correction.
The version number (after correction) 38 stores the version number of the corrected program.
The determination 39 stores “an evaluation result of a program correction method” input by a specific user (skilled worker or the like).

説明40には、特定ユーザ(熟練した作業者等)が入力した任意の“補足説明”の内容が格納される。
上記の通り、判定39、説明40に関しては、後に説明する処理により後からデータが格納されることになる。
The description 40 stores the contents of an arbitrary “supplemental description” input by a specific user (skilled worker or the like).
As described above, with respect to the determination 39 and the description 40, data is stored later by a process described later.

尚、ここで、設計規約DB(データベース)5に格納される規約データテーブルについて、図5(b)に示す一例を用いて説明しておく。
図5(b)に示す規約データテーブル41は、規約番号42、設計規約43、有効/無効44の各データ項目より成る。
Here, the convention data table stored in the design convention DB (database) 5 will be described with reference to an example shown in FIG.
The rule data table 41 shown in FIG. 5B includes data items of a rule number 42, a design rule 43, and valid / invalid 44.

設計規約43には、各設計規約の内容が格納されている。尚、上述したように各設計規約は表示用とコンピュータ処理用とから成り、図では表示用のみ示すが、コンピュータ処理用も格納されている。   The design rule 43 stores the contents of each design rule. As described above, each design rule is composed of display and computer processing. In the figure, only the display is shown, but computer processing is also stored.

上記各設計規約43に対応して、規約番号42にはその設計規約に割り当てられた識別番号(ID)が格納される。また、有効/無効44にはその設計規約が静的解析実行部4で使用されるか否かを示す情報が格納されている(有効であれば使用され、無効であれば使用されない)。これは、組織毎に必要な設計規約が異なる場合に、その適用/非適用を切り替えるために使用されるが、ここでは特に関係ないので、これ以上は説明しない。   Corresponding to each design rule 43, the rule number 42 stores an identification number (ID) assigned to the design rule. The valid / invalid 44 stores information indicating whether or not the design rule is used by the static analysis execution unit 4 (used if valid, and not used if invalid). This is used to switch between application / non-application when the required design rules differ for each organization. However, since it is not particularly relevant here, it will not be described further.

再び図4の説明に戻る。
上記ステップS104で“解析結果に変化無し”と判定された場合(ステップS104,NO)、最新版まで参照したか否かを確認し(ステップS105)、未だ最新版まで参照していないときには(ステップS105,NO)、ステップS103に戻る。
Returning again to the description of FIG.
If it is determined in step S104 that “the analysis result has not changed” (NO in step S104), it is confirmed whether or not the latest version has been referred to (step S105). (S105, NO), the process returns to step S103.

この場合のステップS103,S104の処理は、上記最初の版の警告(規約違反)に関して更に次の版(本例では3版)のプログラムに関する静的解析結果を取得して、これを用いて上記判定を行うことになる。つまり、3版における上記「該当箇所」とその警告内容も、上記2版の場合と略同様にして分かるので、ステップS104では今度は、この3版の「該当箇所」の警告内容が、初版の警告内容と異なるか否かを判定することになる。あるいは、典型例では、3版の「該当箇所」が“警告なし”となっているか否かを判定し、“警告なし”の場合には解析結果に変化あり(ステップS104,YES)と判定することになる。   In this case, the processes in steps S103 and S104 are performed by obtaining a static analysis result regarding the program of the next version (in this example, the third version) regarding the warning of the first version (violating the rules), and using the result. Judgment will be made. In other words, since the “corresponding location” and its warning content in the 3rd edition can be understood in substantially the same manner as in the 2nd edition, in step S104, the warning content of this 3rd edition “corresponding location” is changed to the first edition. It is determined whether or not the warning content is different. Alternatively, in the typical example, it is determined whether or not the “corresponding portion” of the third edition is “no warning”, and if “no warning”, the analysis result is determined to be changed (YES in step S104). It will be.

そして、ステップS104がYESの場合、初版と3版との上記差分情報を取得して上記テーブル30に格納することになる(ステップS106,S107)。
一方、最新版(3版)まで参照済みの場合には(ステップS105,YES)、ループの処理の最後(ステップS102a)にジャンプすることで、未だ未処理の警告があった場合にはループの処理の最初(ステップS102)に戻り、次の処理対象の警告について上記ステップS103〜S107の処理を実行する。また、ステップS102aにおいて未処理の警告が残っていない場合には、ループを抜けて、ステップS108以降の処理へ移行する。
If step S104 is YES, the difference information between the first version and the third version is acquired and stored in the table 30 (steps S106 and S107).
On the other hand, when the latest version (3rd version) has been referenced (step S105, YES), jump to the end of the loop processing (step S102a), and if there is still an unprocessed warning, Returning to the beginning of the process (step S102), the processes of steps S103 to S107 are executed for the next warning to be processed. On the other hand, if no unprocessed warning remains in step S102a, the process exits the loop and proceeds to the processes in and after step S108.

また、上記ステップS106,S107の処理を実行した場合も、ループの処理の最後(ステップS102a)に移行することで、上記と同様の処理を行う。この場合には、特に上記典型例では警告(規約違反)が解消されているので、それより後の版を参照する必要性は少ないと考えられるからであるが、この例に限らず、例えばステップS107の後にステップS105を実行するようにしてもよい。   Also, when the processes of steps S106 and S107 are executed, the same process as described above is performed by shifting to the end of the loop process (step S102a). In this case, particularly in the above typical example, the warning (violation of the rules) has been resolved, so it is considered that there is little need to refer to a later version. Step S105 may be executed after S107.

ステップS108の処理では、初版(または前回のステップS108の処理で静的解析結果をキーとして取得した版)の次の版の静的解析結果を、キーとして取得する。
次に、これが最新版の静的解析結果をキーとして取得したものであるか否かを判定し(ステップS109)、最新版でなければ(ステップS109,NO)、ループの先頭(ステップS102)の処理に戻る。そして、今度は、上記ステップS101で得たキーではなく、ステップS108で得たキーを用いて、上記ステップS102−s102a間のループ処理を実行することになる。上記の例では、今度は2版をキーとして、2版と1つ後の版(3版)との間で上述した処理を行って、2版において警告を受けた各箇所毎に、3版において警告が変化していた(特に“警告なし”となった)場合には、テーブル30に登録する処理を行うことになる。
In the process of step S108, the static analysis result of the next version of the first version (or the version acquired using the static analysis result as a key in the previous process of step S108) is acquired as a key.
Next, it is determined whether or not this is obtained using the latest version of the static analysis result as a key (step S109). If it is not the latest version (step S109, NO), the top of the loop (step S102) is determined. Return to processing. This time, the loop processing between steps S102 and s102a is executed using the key obtained in step S108 instead of the key obtained in step S101. In the above example, this time, the second edition is used as a key and the above-described processing is performed between the second edition and the next edition (third edition). If the warning has changed (particularly, “No warning”), the process of registering in the table 30 is performed.

一方、キーが最新版のものであった場合には(ステップS109,YES)、ステップS102に戻って処理続行してもステップS103で「1つ後の版」が存在しないことになるので、本処理を終了する。   On the other hand, if the key is the latest version (step S109, YES), there is no “next version” in step S103 even if the processing is continued after returning to step S102. The process ends.

上述した図4の処理では、任意のプログラム・ファイル名のプログラムに関して、仮に初版、2版、3版(最新版)が作成されていた場合、最初は初版の静的解析結果(各警告)をキーとして取得して、これら各警告に関して2版、3版それぞれとの変化の有無をチェックする(変化があれば差分情報を登録する)。そして、初版の全警告について処理実行したら、ステップS108で2版の静的解析結果をキーとして取得すると共に、ステップS109がNOとなることからステップS102に戻り、今度は2版に係る各警告について3版における変化の有無をチェックすることになる。そして、2版の全警告について処理実行したら、ステップS108で今度は3版の静的解析結果をキーとして取得するが、ステップS109がYESとなることから、本処理を終了することになる。   In the process of FIG. 4 described above, if a first version, second version, third version (latest version) has been created for a program with an arbitrary program and file name, the first version of static analysis results (warnings) is first displayed. Acquired as a key, and checks whether there is a change between the second and third versions for each of these warnings (if there is a change, register difference information). When all the warnings of the first version are processed, the result of the static analysis of the second version is acquired as a key in step S108, and since step S109 is NO, the process returns to step S102. We will check for changes in the 3rd edition. Then, when the processing is executed for all the warnings of the second version, in step S108, the static analysis result of the third version is acquired as a key. However, since step S109 is YES, this processing ends.

なお、ステップS107の登録の際には、同じ情報が重複して保存されないように、警告の種別と、変更前の版と、変更後の版についての情報を合わせて保存し、ステップS107で登録する際に同じ情報が既に登録されていたときには重複登録しないようにする。   When registering in step S107, the warning type, the version before the change, and the information about the version after the change are stored together so that the same information is not stored redundantly, and is registered in step S107. When the same information is already registered, do not register it again.

以上の処理により、静的解析結果に基づく各版(バージョン)間の差分の分析結果(例えば図5(a)に示す修正データテーブル30)が、静的解析DB3に格納されることになる。典型例としては、(相対的に)旧版において任意の警告(規約違反)があった箇所について、(相対的に)新版における「該当箇所」では「警告なし」となった場合には、これら旧版と新版との差分情報(旧版の版数と違反規約番号と違反箇所の行番号、新版の版数と違反箇所に対応する箇所(上記「該当箇所」)の行番号等)が、修正データテーブル30に登録される。   As a result of the above processing, the analysis result of differences between versions (versions) based on the static analysis result (for example, the correction data table 30 shown in FIG. 5A) is stored in the static analysis DB 3. As a typical example, if a (relatively) old version has an arbitrary warning (violation of the rules), and (relatively) the "applicable part" in the new version is "no warning", these old versions Difference information between the old version and the new version (version number of the old version, violation rule number, line number of the violation part, version number of the new version and the line number corresponding to the violation part ("corresponding part"), etc.) 30.

このように、典型例としては、任意の警告(規約違反)があった版とこの警告が解消された版とに関して、違反箇所/「該当箇所」の行番号や、警告の種別を示す情報等が修正データテーブル30に格納されることになる。   In this way, as a typical example, the violation number / "corresponding location" line number, information indicating the type of warning, etc., for the version that had an arbitrary warning (violation of the rules) and the version in which this warning was resolved Is stored in the correction data table 30.

変化要因評価結果入力部11は、上述した静的解析結果変化要因分析部7による分析結果(修正データテーブル30)に基づいて、例えば図6に示すような差分表示入力画面50を表示すると共に、当該画面50上で特定ユーザ(熟練者等)による任意の評価結果(判定、説明)の入力を受け付ける。   The change factor evaluation result input unit 11 displays, for example, a difference display input screen 50 as shown in FIG. 6 based on the analysis result (corrected data table 30) by the static analysis result change factor analysis unit 7 described above, On the screen 50, an input of an arbitrary evaluation result (determination, explanation) by a specific user (expert etc.) is accepted.

変化要因評価結果入力部11は、例えば修正データテーブル30に新たなレコードが追加される毎に、この新規レコードの情報を用いて、例えば予め設定されている特定ユーザ(熟練者等)の端末のディスプレイに、例えば図6に示すような差分表示入力画面50を表示する。そして、特定ユーザ(熟練者等)に、任意の評価結果(判定、説明)を入力させる。勿論、これは一例であるが、基本的には、修正データテーブル30に格納される全てのレコードに関して、その判定39に(場合によっては説明40も)熟練者等による判定結果が格納されるようにすることが望ましい。それ故、未だ判定39に判定結果が格納されていないレコードに関しては、任意のときに当該レコード(判定対象レコードという)の情報を用いて上記差分表示入力画面50を表示させることになる。   For example, each time a new record is added to the correction data table 30, the change factor evaluation result input unit 11 uses, for example, information of the new record, for example, a terminal of a specific user (expert etc.) set in advance. For example, a differential display input screen 50 as shown in FIG. 6 is displayed on the display. Then, an arbitrary evaluation result (determination, explanation) is input to a specific user (skilled person or the like). Of course, this is an example, but basically, for all the records stored in the correction data table 30, the determination results by the skilled person or the like are stored in the determination 39 (in some cases also the explanation 40). It is desirable to make it. Therefore, regarding the record in which the determination result is not yet stored in the determination 39, the difference display input screen 50 is displayed at any time using information of the record (referred to as a determination target record).

図5の差分表示入力画面50の例では、まず、画面50の最上部には、表示対象とするプログラム・ファイル名の表示領域51がある(ここではfile_a.cが表示されている)。これは、例えば上記判定対象レコードのファイル名33が表示されるものである。   In the example of the difference display input screen 50 in FIG. 5, first, at the top of the screen 50, there is a display area 51 of the program / file name to be displayed (file_a.c is displayed here). For example, the file name 33 of the determination target record is displayed.

上記表示領域51の下の表示領域は、左と右に分割されていて、基本的には左側には“旧版に係る情報”、右側には“新版に係る情報”が表示される。尚、旧版とはテーブル30における“修正前”に相当し、新版は同“修正後”に相当する。   The display area below the display area 51 is divided into left and right, and basically “information related to the old version” is displayed on the left side and “information related to the new version” is displayed on the right side. The old version corresponds to “before correction” in the table 30, and the new version corresponds to “after correction”.

上記左右どちらも、版数と、該当箇所プログラム文と、警告内容とから成る。すなわち、まず左側の表示領域には、旧版に関する版数52と該当箇所プログラム文53と警告内容54とが表示される。同様に、右側の表示領域には、新版に関する版数55と該当箇所プログラム文56と警告内容57とが表示される。   Both the left and right are composed of a version number, a corresponding part program sentence, and a warning content. That is, first, the version number 52, the corresponding part program sentence 53, and the warning content 54 regarding the old version are displayed in the left display area. Similarly, in the display area on the right side, the version number 55 for the new version, the corresponding program sentence 56, and the warning content 57 are displayed.

これは、例えば、上記判定対象レコードの版数(修正前)37が上記版数52の表示領域に表示されると共に、版数(修正後)38が上記版数55の表示領域に表示される。
同様に、上記判定対象レコードの行番号(修正前)34のプログラム文が上記該当箇所プログラム文53の表示領域に表示されると共に、行番号(修正後)35のプログラム文が上記該当箇所プログラム文56の表示領域に表示される。
For example, the version number (before correction) 37 of the determination target record is displayed in the display area of the version number 52, and the version number (after correction) 38 is displayed in the display area of the version number 55. .
Similarly, the program sentence of line number (before correction) 34 of the determination target record is displayed in the display area of the corresponding part program sentence 53, and the program sentence of line number (after correction) 35 is the corresponding part program sentence. It is displayed in 56 display areas.

尚、これは、図6の例のように複数行のプログラム文が表示されるものであってもよい。すなわち、行番号(修正前)34や行番号(修正後)35の行だけでなく、その数行後までの複数行やその前後の複数行等も、表示されるものであってもよい。あるいは、該当箇所プログラム文53,56には、初期状態では行番号(修正前)34や行番号(修正後)35の行を中心として表示されるが、全プログラムがスクロール表示可能であるように表示されるものであってもよい。   Note that this may be one in which a plurality of lines of program statements are displayed as in the example of FIG. In other words, not only the line number (before correction) 34 and the line number (after correction) 35, but also a plurality of lines up to several lines after that, a plurality of lines before and after that, and the like may be displayed. Alternatively, in the corresponding part program statements 53 and 56, the line number (before correction) 34 and the line number (after correction) 35 are displayed in the initial state, but the entire program can be scroll-displayed. It may be displayed.

尚、これらの表示の際には、上記テーブル30だけでなく、対象プログラム・ファイル(ここではfile_a.cの3.0版と3.1版)も参照される。
同様に、判定対象レコードの違反規約番号(修正前)31に対応する設計規約43が、警告内容54の表示領域に表示されると共に、違反規約番号(修正後)36に対応する設計規約43が、警告内容57の表示領域に表示される。つまり、これらの表示の際には、上記テーブル30だけでなく、上記テーブル41も参照される。
In the display, not only the table 30 but also the target program file (here, version 3.0 and version 3.1 of file_a.c) are referred to.
Similarly, the design rule 43 corresponding to the violation rule number (before correction) 31 of the determination target record is displayed in the display area of the warning content 54 and the design rule 43 corresponding to the violation rule number (after correction) 36 is displayed. Are displayed in the display area of the warning content 57. That is, in the display, not only the table 30 but also the table 41 is referred to.

上記判定対象レコードは、例えばユーザが「次の警告」ボタン61を操作する毎に順次切り換わる。これは、例えば一例としては、テーブル30において判定39が「未判定」である各レコードを、順次、上記判定対象レコードとする。あるいは、判定39が「未判定」であるレコードだけでなく、説明40が空欄(NULL)となっているレコードも含めて、これらの各レコードを、順次、上記判定対象レコードとする。   The determination target record is sequentially switched every time the user operates the “next warning” button 61, for example. For example, as an example, each record whose determination 39 is “undecided” in the table 30 is sequentially set as the determination target record. Alternatively, not only the record whose determination 39 is “undetermined” but also the record whose description 40 is blank (NULL) is sequentially set as the determination target record.

但し、この様な例に限らない。例えば、上記表示領域51にはユーザが自由に任意のプログラム・ファイル名を入力できるようにして、このプログラムに関する各レコードを、順次、上記判定対象レコードとするようにしてもよい。   However, the present invention is not limited to such an example. For example, the user may freely input an arbitrary program / file name in the display area 51, and each record relating to the program may be sequentially set as the determination target record.

この様な例の場合、図示の例では表示領域51に設定されたファイルは「file_a.c」であるので、図5(a)のテーブル30の例では、1番目と2番目と3番目の3つのレコードが、「次の警告」ボタン61が操作される毎に、順次、判定対象レコードとなる。判定対象レコードが変わる毎に、新たな判定対象レコードの情報に基づいて、上記のように各表示領域52,53,54,55,56,57の表示を行うことになる。   In the case of such an example, the file set in the display area 51 is “file_a.c” in the example shown in the figure, and therefore the first, second, and third in the example of the table 30 in FIG. Each time the “next warning” button 61 is operated, the three records become sequential determination target records. Each time the determination target record changes, the display areas 52, 53, 54, 55, 56, and 57 are displayed as described above based on the information of the new determination target record.

例えば、最初は1番目のレコードが判定対象レコードとなって上記各表示領域の表示が行われることになる。そして、この状態でユーザが「次の警告」ボタン61を操作すると、今度は2番目のレコードが判定対象レコードとなって上記各表示領域の表示が行われることになる。この状態で更にユーザが「次の警告」ボタン61を操作すると、今度は3番目のレコードが判定対象レコードとなって上記各表示領域の表示が行われることになる。   For example, first, the first record becomes the determination target record, and the display of each display area is performed. When the user operates the “next warning” button 61 in this state, the second record becomes the determination target record and the display areas are displayed. When the user further operates the “next warning” button 61 in this state, the display of each display area is performed this time with the third record as the determination target record.

但し、既に判定39と説明40の両方とも情報が格納されているレコードは、判定対象レコードとはしないように制御してもよい。
尚、該当箇所プログラム文53、56の表示については、旧版と新版とで異なる部分が分かり易いように表示されるようにしてもよい。例えば、旧版と新版とで異なる部分については、灰色の背景色が塗られた状態で表示されている。これにより、プログラムの変更点がユーザに分かり易くなっている。
However, a record in which information is already stored in both the determination 39 and the description 40 may be controlled not to be a determination target record.
In addition, about the display of the applicable part program sentence 53 and 56, you may make it display so that a different part may be easy to understand with an old version and a new version. For example, different portions between the old version and the new version are displayed with a gray background color. This makes it easy for the user to understand the changes in the program.

また、警告内容54、57の表示部分については、プログラムの修正前後の警告内容(違反した設計規約の内容、または「警告なし(規約違反無し)」)が表示されているので、プログラムの修正に伴って警告内容が変化する様子が分かるようになっている。特に、修正後の警告内容57が「警告なし」となっている場合には、該当箇所プログラム文53、56の表示内容を参照することで、どの様な修正を行ったことで警告が解消されたのかが、分かることになる。   The warning contents 54 and 57 display the warning contents before and after the correction of the program (the contents of the violated design rule or “no warning (no rule violation)”). Along with this, you can see how the warning content changes. In particular, when the warning content 57 after correction is “no warning”, by referring to the display contents of the corresponding program sentences 53 and 56, the warning is resolved by making any corrections. You will know what happened.

図5の画面50では、上記表示領域(52〜57)の下側に、更に、判定の入力欄58と説明の入力欄59が設けられている。
ここで、これらの入力欄58、59に任意のデータを入力できるのは、予め決められた特定のユーザ(例えば熟練した作業者)のみであるように制限することが望ましい。
In the screen 50 of FIG. 5, a determination input field 58 and a description input field 59 are further provided below the display area (52 to 57).
Here, it is desirable to limit the input of arbitrary data in these input fields 58 and 59 to only a specific user (for example, a skilled worker) determined in advance.

その為に、例えば上述したように、図5の画面50は、予め設定された特定ユーザ(熟練者等)の端末の画面12にのみ自動的に表示させるようにするが、この例に限らない。例えば、画面50自体は任意に表示可能であり、更に上記表示領域51には任意のユーザが任意のプログラム・ファイル名を入力することができ、このファイル名のプログラムに関して上記表示領域(52〜57)の情報が表示されるようにしてもよい。但し、入力欄58、59への入力に関しては、例えばユーザIDを入力させることでこのユーザが上記特定ユーザであるか否かをチェックし、特定ユーザではない場合には入力を許可しないようにする。尚、勿論、特定ユーザのユーザIDは、予め登録されている。   For this purpose, for example, as described above, the screen 50 of FIG. 5 is automatically displayed only on the screen 12 of the terminal of a specific user (expert) or the like set in advance. However, the present invention is not limited to this example. . For example, the screen 50 itself can be arbitrarily displayed, and an arbitrary user can input an arbitrary program / file name in the display area 51, and the display area (52 to 57) regarding the program of this file name. ) Information may be displayed. However, regarding the input to the input fields 58 and 59, for example, by inputting a user ID, it is checked whether or not the user is the specific user, and if the user is not the specific user, the input is not permitted. . Of course, the user ID of the specific user is registered in advance.

上記特定のユーザ(例えば熟練した作業者)は、上記表示領域(52〜57)の表示内容を参照することで、プログラムの修正内容やその結果(警告内容の変化;特に修正後に「警告なし」となったか否か)を確認する。そして、修正内容について評価し、評価結果を判定の入力欄58で入力する。   The specific user (for example, a skilled worker) refers to the display content of the display area (52 to 57), so that the correction content of the program and the result (change of the warning content; especially “no warning” after the correction) Confirm whether or not. Then, the contents of the correction are evaluated, and the evaluation result is input in the determination input field 58.

尚、本例では、判定の入力欄58において所定のマーク(▽マーク)を操作することで所定の評価結果選択肢が表示され、この中から任意の評価結果を選択する。選択肢は、「3:良い」、「2:問題なし」、「1:悪い」の3つであり、この中から任意の評価結果を選択することになる。   In this example, a predetermined evaluation result option is displayed by operating a predetermined mark (▽ mark) in the determination input field 58, and an arbitrary evaluation result is selected from these. There are three options: “3: good”, “2: no problem”, and “1: bad”, and an arbitrary evaluation result is selected from these.

尚、「1:悪い」とは、例えば修正を行っても警告が解消されない場合であるが、この例に限らず、修正によって警告が解消されても「1:悪い」と判定される場合に有り得る。すなわち、例えば上記従来の課題で説明した「表面的には警告を受けないような形にできるが、本質的に問題を解決できるものではない場合」等に対しては、「1:悪い」と評価される場合も有り得る。一方、(表面的ではなく)実質的に警告を解消させた修正に関しては、「3:良い」または「2:問題なし」と評価されることになる。   Note that “1: bad” is, for example, a case where the warning is not resolved even if correction is made. However, the present invention is not limited to this example, and the case where “1: bad” is determined even if the warning is resolved by correction. It is possible. That is, for example, in the case of “when it is possible to make a form that does not receive a warning on the surface but cannot solve the problem essentially” described in the above conventional problem, “1: bad” It may be evaluated. On the other hand, a correction that substantially eliminates the warning (not superficial) is evaluated as “3: good” or “2: no problem”.

また、説明の入力欄59には、任意の補足説明等が入力できるようになっており、具体例としては例えば図5(a)の上から3番目のレコードにおける説明40の欄に示す文章等があるが、勿論、この例に限らない(上記特定のユーザが自由に所望の補足説明文章を入力すればよい)。   Also, any supplementary explanation can be entered in the explanation input field 59. As a specific example, for example, the text shown in the explanation 40 field in the third record from the top in FIG. Of course, the present invention is not limited to this example (the specific user may freely input a desired supplementary explanation text).

そして、ユーザが図示の「登録」ボタン60を操作すると、上記各入力欄58,59に入力された情報は、上記判定対象レコードにおける上記判定39、説明40の各フィールドに、それぞれ、格納される。尚、本例では表示していないが、これら入力欄58,59の入力情報が、どの特定ユーザ(熟練した作業者)により入力されたものであるのかを記録しても良い。   When the user operates the “Register” button 60 shown in the figure, the information input in the input fields 58 and 59 is stored in the fields of the determination 39 and the description 40 in the determination target record, respectively. . Although not displayed in this example, it may be recorded by which specific user (skilled worker) the input information in these input fields 58 and 59 is input.

上述したようにして作成された修正データテーブル30を用いて、例えば図7や図8に示す画面を表示させることができる。これにより、各ユーザ(基本的には上記特定ユーザ以外のユーザ;特に熟練度が低いユーザ(初心者等))は、任意の警告(設計規約違反)に関して、特にその警告を(表面的ではなく)実質的に解消させた修正を、熟練者などによる評価によって知ることができ、その修正内容を参考にして的確な(警告を実質的に解消させる)修正を行うことができる。また、熟練者等によって更に補足説明が成されていた場合には、より的確な修正を行える(あるいは的確な修正が行える可能性が高まる)ことになる。   For example, the screens shown in FIGS. 7 and 8 can be displayed using the correction data table 30 created as described above. As a result, each user (basically a user other than the specific user described above; a user with a low level of skill (such as a beginner)) particularly warns (not superficially) about any warning (design rule violation). The correction that has been substantially eliminated can be known by evaluation by an expert or the like, and an appropriate correction (to substantially eliminate the warning) can be performed with reference to the contents of the correction. In addition, if the supplementary explanation is made by a skilled person or the like, more accurate correction can be performed (or the possibility that the correct correction can be performed increases).

上記のように、本システムでは、例えば各ユーザの端末のディスプレイに、例えば図7や図8に示す画面を表示させることができるので、特に熟練者以外の各ユーザは、自己が作成したプログラムであって1以上の警告があったプログラムの修正に役立てることができる。すなわち、より的確な修正を手間/時間が掛かることなく行えるようになる。これについて、以下、図7や図8を参照しながら説明する。   As described above, in this system, for example, the screens shown in FIGS. 7 and 8 can be displayed on the display of each user's terminal, for example. It can be used to fix programs that have more than one warning. That is, more accurate correction can be performed without taking time and effort. This will be described below with reference to FIG. 7 and FIG.

まず、静的解析警告指摘対応検索部9は、例えば図7に示すような検索画面70を表示し、修正データテーブル30を参照することで図示の検索結果表示領域73に検索結果を表示できる。   First, the static analysis warning indication correspondence search unit 9 can display a search result in the search result display area 73 shown in the drawing by displaying a search screen 70 as shown in FIG. 7 and referring to the correction data table 30, for example.

図7の検索画面70では、初期状態では図示の検索結果表示領域73には何も表示されていない。初期状態では図示の設計規約指定領域71、「検索」ボタン72、「内容表示」ボタン74、「終了」ボタン75が表示される。   In the search screen 70 of FIG. 7, nothing is displayed in the illustrated search result display area 73 in the initial state. In the initial state, a design rule designation area 71, a “search” button 72, a “content display” button 74, and an “end” button 75 are displayed.

設計規約指定領域71における所定マーク(▽)を操作すると、例えば上記規約データテーブル41の全てのレコードの設計規約43の内容が、一覧表示される(不図示のドロップダウンメニューが表示される)。ユーザが、この一覧のなかから所望の設計規約を選択すると、選択された設計規約に対応する規約番号41(図示の例では規約番号=‘1’)を用いて修正データテーブル30を検索することで、該当レコード(ここでは違反規約番号(修正前)31=‘1’であるレコード)が全て抽出される。   When a predetermined mark (▽) in the design rule specification area 71 is operated, for example, the contents of the design rules 43 of all records in the rule data table 41 are displayed in a list (a drop-down menu (not shown) is displayed). When the user selects a desired design rule from the list, the correction data table 30 is searched using the rule number 41 (the rule number = '1' in the illustrated example) corresponding to the selected design rule. Thus, all the corresponding records (here, records where the violation rule number (before correction) 31 = '1') are extracted.

そして、全ての該当レコードが上記検索結果表示領域73に一覧表示される(但し、予め任意に決められている所定のデータ項目のみが表示される)。本例では、該当レコードのファイル名33、行番号(修正前)34、判定39、説明40の内容が、それぞれ、図7に示す検索結果表示領域73におけるファイル名73b、行番号73c、判定73d、説明73eに表示されることになるが、これは一例であり、この例に限らない。   All corresponding records are displayed in a list in the search result display area 73 (however, only predetermined data items arbitrarily determined in advance are displayed). In this example, the file name 33, the line number (before correction) 34, the determination 39, and the description 40 of the corresponding record are the file name 73b, the line number 73c, and the determination 73d in the search result display area 73 shown in FIG. Will be displayed in the explanation 73e, but this is an example, and the present invention is not limited to this example.

尚、図5(a)に示す例では全レコードが違反規約番号(修正前)31=‘1’であるので、全レコードが該当レコードとなり、図7の検索結果表示領域73に示すような表示が行われることになる。   In the example shown in FIG. 5 (a), all records are violation rule numbers (before correction) 31 = '1', so all the records become the corresponding records and are displayed as shown in the search result display area 73 of FIG. Will be done.

そして、ユーザは、マウス等を操作することで、上記検索結果表示領域73に一覧表示されるレコードのなかから任意のレコードを選択指定する。尚、図示の選択73aに三角矢印マークが表示されているレコードが、現在指定されているレコードである。   Then, the user selects and designates an arbitrary record from the records displayed in a list in the search result display area 73 by operating a mouse or the like. Note that the record in which the triangular arrow mark is displayed in the selection 73a shown in the figure is the record currently designated.

そして、任意のレコードが選択指定された状態でユーザが図示の「内容表示」ボタン74を操作すると、選択指定されているレコードについての詳細情報を表示する画面(図8の詳細表示画面80)が表示される(静的解析警告指摘対応検索部9が、画面80を表示する)。   Then, when the user operates the “content display” button 74 shown in the state where an arbitrary record is selected and specified, a screen (detail display screen 80 in FIG. 8) for displaying detailed information about the selected and specified record is displayed. Is displayed (the static analysis warning indication correspondence search unit 9 displays the screen 80).

図8の詳細表示画面80において、ファイル名81には上記選択指定されたレコードのファイル名33が表示される。
また、ファイル名81の下側には、左と右それぞれに各種情報表示領域がある。左側には修正前に関する情報、右側には修正後に関する情報が表示される。
In the detailed display screen 80 of FIG. 8, the file name 81 displays the file name 33 of the record that has been selected and specified.
Below the file name 81, there are various information display areas on the left and right. Information on the left side is displayed on the left side, and information on the right side is displayed on the right side.

すなわち、まず、上記選択指定されたレコードの版数(修正前)37が、図示の版数の表示領域82に表示されると共に、版数(修正後)38が図示の版数の表示領域85に表示される。   That is, first, the version number (before correction) 37 of the selected and specified record is displayed in the illustrated version number display area 82, and the version number (after correction) 38 is displayed in the illustrated version number display area 85. Is displayed.

同様に、選択指定されたレコードの行番号(修正前)34のプログラム文が、図示の該当箇所プログラム文の表示領域83に表示されると共に、行番号(修正後)35のプログラム文が図示の該当箇所プログラム文の表示領域86に表示される。尚、これは、図6の例と同様に、複数行のプログラム文が表示されるものであってもよく、また、これらの表示の際には、上記テーブル30だけでなく、対象プログラム・ファイル(ここではfile_a.cの3.0版と3.1版)も参照される。   Similarly, the program sentence of the line number (before modification) 34 of the record that has been selected and displayed is displayed in the display area 83 of the corresponding program sentence in the figure, and the program sentence of line number (after modification) 35 is shown in the figure. It is displayed in the display area 86 of the corresponding part program sentence. As in the example of FIG. 6, this may be one in which a plurality of lines of program statements are displayed. When these are displayed, not only the table 30 but also the target program file (Here, file_a.c version 3.0 and version 3.1) are also referenced.

同様に、選択指定されたレコードの違反規約番号(修正前)31に対応する設計規約43が、警告内容の表示領域84に表示されると共に、違反規約番号(修正後)36に対応する設計規約43が、警告内容の表示領域87に表示される。尚、これらの表示の際には、上記テーブル30だけでなく、上記テーブル41も参照する。つまり、テーブル41から違反規約番号に該当するレコード(その規約番号42が違反規約番号と同一であるレコード)の設計規約43を取得して、これを表示することになる。尚、違反規約番号(修正後)36が“−”となっている場合には、例えば図示のように「警告なし」と表示する。   Similarly, a design rule 43 corresponding to the violation rule number (before correction) 31 of the selected record is displayed in the warning content display area 84 and the design rule corresponding to the violation rule number (after correction) 36. 43 is displayed in the warning content display area 87. In these displays, not only the table 30 but also the table 41 is referred to. That is, the design rule 43 of the record corresponding to the violation rule number (the record whose rule number 42 is the same as the violation rule number) is obtained from the table 41 and displayed. When the violation rule number (after correction) 36 is “−”, for example, “no warning” is displayed as shown in the figure.

更に、選択指定されたレコードの判定39が判定結果表示領域88に表示されると共に、説明40が補足説明表示領域89に表示される。
上記のように詳細表示画面80を表示させることで、ユーザは、所望の警告に係る他者のプログラム文修正例(修正前と修正後)を、熟練した作業者等による評価結果と共に参照することができる。
Further, the determination 39 of the selected record is displayed in the determination result display area 88 and the explanation 40 is displayed in the supplementary explanation display area 89.
By displaying the detailed display screen 80 as described above, the user can refer to the other person's program sentence modification examples (before and after modification) related to the desired warning together with the evaluation results by skilled workers or the like. Can do.

これにより、静的解析の結果、作成したプログラムに対して設計規約への違反を警告された作業者が、適切な修正方法が分からない場合にも、過去に行われた修正方法が熟練者の評価付き(場合によっては更に説明付き)で蓄積されて且つ容易に検索可能となっている本システムを用いれば、適切な修正方法を容易に見出し易くなる。   As a result, even if an operator who has been warned of violation of the design rules for the created program as a result of static analysis does not know the appropriate correction method, the correction method performed in the past is Use of this system, which is accumulated with evaluation (and in some cases with further explanation) and is easily searchable, makes it easy to find an appropriate correction method.

ここで、図6の検索画面70は、例えば図3に示す警告箇所表示画面20からジャンプして表示させることもできる。そして、この場合には、上記設計規約指定領域71による指定と「検索」ボタン72の操作を行わなくても、最初から検索結果表示領域73に検索結果が表示された状態で表示させることができる。これについて以下、説明する。   Here, the search screen 70 of FIG. 6 can be displayed by jumping from the warning location display screen 20 shown in FIG. 3, for example. In this case, the search result can be displayed in the search result display area 73 from the beginning without specifying the design rule specifying area 71 and operating the “search” button 72. . This will be described below.

まず、上述した図3に関する説明で、ユーザが、プログラム表示領域21において任意の行を選択したうえで(黒四角■の行)「修正候補の検索」ボタン24を操作すると、現在選択されている行(黒四角■の行)の設計規約違反を解消する為に参考となる情報が得られる表示が行われる旨、説明した。当該参考となる情報が得られる表示が、上記図7、図8の表示である。   First, in the description related to FIG. 3 described above, when the user selects an arbitrary line in the program display area 21 (black square ■ line) and operates the “search for correction candidates” button 24, the currently selected line is selected. It was explained that the display that can be used as reference information to resolve the design rule violation in the line (black square ■ line) was performed. The display from which the reference information is obtained is the display shown in FIGS.

上述したように、黒四角■の行のプログラム文が違反している設計規約は分かるので(設計規約表示領域22に表示される)、「修正候補の検索」ボタン24が操作された場合には、この違反している設計規約を、そのまま、上記設計規約指定領域71による指定と見做すと共に、「検索」ボタン72が操作されたものと見做して、上述した検索処理と検索結果に基づく検索結果表示領域73の表示処理を行う。   As described above, since the design rule in violation of the program text in the black square ■ line is known (displayed in the design rule display area 22), when the “correction candidate search” button 24 is operated, The design rule in violation is regarded as the designation by the design rule designation area 71 as it is, and the “search” button 72 is regarded as operated, and the search process and the search result described above are considered. Based on the search result display area 73, display processing is performed.

尚、他の例としては、例えば警告箇所表示画面20上において、ユーザがマウス操作等によって設計規約表示領域22の部分を指定すると共に「検索」ボタン72を操作する場合でも、上記と同様に、検索画面70へジャンプして検索済みの状態で表示させることができる。   As another example, for example, on the warning part display screen 20, even when the user designates a part of the design rule display area 22 by a mouse operation or the like and operates the “search” button 72, as described above, It is possible to jump to the search screen 70 and display it in a searched state.

尚、上記図6の画面50上の領域58,59に関して、もし熟練した作業者等による入力がなければ、テーブル30における判定39には「−:未判定」が格納され、説明40は空欄となる。   In addition, regarding the areas 58 and 59 on the screen 50 in FIG. 6, if there is no input by a skilled worker or the like, “−: not determined” is stored in the determination 39 in the table 30, and the description 40 is blank. Become.

なお、図7の画面70における検索方法に関して、図7には示していないが、例えば検索条件に判定のレベルや、ファイル名、日付などの条件を指定して、絞り込んで検索を行うようにすることも可能である。   Although the search method on the screen 70 in FIG. 7 is not shown in FIG. 7, for example, a search level is specified by specifying conditions such as a determination level, a file name, and a date, and the search is narrowed down. It is also possible.

最後に、図9に、プログラム改善支援システム10のハードウェア構成例を示す。
本例のプログラム改善支援システム10は、汎用的なコンピュータシステム上に構築することができる。これより、図9は、汎用的なコンピュータシステム(一般的なパソコン、サーバ装置等)のハードウェア構成例と見做すこともできる。
Finally, FIG. 9 shows a hardware configuration example of the program improvement support system 10.
The program improvement support system 10 of this example can be constructed on a general-purpose computer system. Accordingly, FIG. 9 can also be regarded as a hardware configuration example of a general-purpose computer system (general personal computer, server device, etc.).

図9に示すコンピュータ90は、演算装置91、主記憶装置92、ディスプレイ装置93、補助記憶装置94、入力装置95等を備えており、これらがバス96に接続されて相互に信号を送受信可能な構成となっている。   A computer 90 shown in FIG. 9 includes an arithmetic device 91, a main storage device 92, a display device 93, an auxiliary storage device 94, an input device 95, and the like, which are connected to a bus 96 and can transmit and receive signals to and from each other. It has a configuration.

プログラム改善支援システム10の上記各種処理機能を実現させるアプリケーションプログラムは、例えば予め補助記憶装置94(ハードディスク等)に記憶されている。実行時には、このプログラムが補助記憶装置94から主記憶装置92(メモリ等)にロードされ、演算装置91(CPU/MPU等)上で実行されることにより、上記各種処理機能を実現させることができる。すなわち、上述したプログラム登録部1、静的解析実行部4、変更差分抽出部6、静的解析結果変化要因分析部7、静的解析警告指摘箇所抽出部8、静的解析警告指摘対応検索部9、変化要因評価結果入力部11等の各種処理機能を実現させることができる。   Application programs for realizing the various processing functions of the program improvement support system 10 are stored in advance in an auxiliary storage device 94 (hard disk or the like), for example. At the time of execution, this program is loaded from the auxiliary storage device 94 to the main storage device 92 (memory or the like) and executed on the arithmetic device 91 (CPU / MPU or the like), thereby realizing the above various processing functions. . That is, the program registration unit 1, static analysis execution unit 4, change difference extraction unit 6, static analysis result change factor analysis unit 7, static analysis warning indication part extraction unit 8, static analysis warning indication correspondence search unit described above 9. Various processing functions such as the change factor evaluation result input unit 11 can be realized.

また、上述した構成管理DB(データベース)2、設計規約DB(データベース)5、静的解析DB(データベース)3等の各種データベースは、例えば補助記憶装置94(ハードディスク等)に記憶されるものであってよいが、この例に限らない。   Various databases such as the configuration management DB (database) 2, the design rules DB (database) 5, and the static analysis DB (database) 3 described above are stored in the auxiliary storage device 94 (hard disk or the like), for example. However, the present invention is not limited to this example.

尚、入力装置95は例えばキーボード、マウス等である。
以上説明したように、本例のプログラム改善支援システム10によれば、プログラムを作成した後に静的解析を行うシステムにおいて、ユーザが静的解析結果に応じてプログラムを修正する際に(設計規約違反部分の修正)、この設計規約違反に対する過去の他者による修正結果(修正内容、修正後に警告が解消されたか否か等)を、熟練者等の評価/説明付きで参照することができる。これにより、ユーザは、より具体的に修正方法を知ったり、より適切な修正方法を知ることができるようになるため、プログラムの設計規約違反部分の修正を、効率的・高品質に行うことができるようになる。
The input device 95 is, for example, a keyboard or a mouse.
As described above, according to the program improvement support system 10 of the present example, in a system that performs static analysis after creating a program, when the user modifies the program according to the static analysis result (violation of design rules). Correction of the part), and the past correction result (correction content, whether or not the warning has been canceled after the correction, etc.) for this design rule violation can be referred to with an evaluation / explanation of an expert or the like. As a result, the user can know the correction method more specifically or know a more appropriate correction method, so that the violation of the design rule violation of the program can be performed efficiently and with high quality. become able to.

本システムを活用することにより、より高品質のプログラムを効率的に作成することができるようになる。   By utilizing this system, it becomes possible to efficiently create higher quality programs.

1 プログラム登録部
2 構成管理DB(データベース)
3 静的解析DB(データベース)
4 静的解析実行部
5 設計規約DB(データベース)
6 変更差分抽出部
7 静的解析結果変化要因分析部
8 静的解析警告指摘箇所抽出部
9 静的解析警告指摘対応検索部
10 プログラム改善支援システム
11 変化要因評価結果入力部
12 画面
20 警告箇所表示画面
21 プログラム表示領域
22 設計規約表示領域
23 指摘箇所表示領域
24 「修正候補の検索」ボタン
25 ファイル名
30 修正データテーブル
31 違反規約番号(修正前)
32 プロジェクト名
33 ファイル名
34 行番号(修正前)
35 行番号(修正後)
36 違反規約番号(修正後)
37 版数(修正前)
38 版数(修正後)
39 判定
40 説明
41 規約データテーブル
42 規約番号
43 設計規約
44 有効/無効
50 差分表示入力画面
51 ファイル名表示領域
52 版数(旧版)
53 該当箇所プログラム文(旧版)
54 警告内容(旧版)
55 版数(新版)
56 該当箇所プログラム文(新版)
57 警告内容(新版)
58 判定の入力欄
59 説明の入力欄
60 「登録」ボタン
61 「次の警告」ボタン
70 検索画面
71 設計規約指定領域
72 「検索」ボタン
73 検索結果表示領域
73a 選択
73b ファイル名
73c 行番号
73d 判定
73e 説明
74 「内容表示」ボタン
75 「終了」ボタン
80 詳細表示画面
81 ファイル名
82 版数(修正前)の表示領域
83 該当箇所プログラム文(修正前)の表示領域
84 警告内容(修正前)の表示領域
85 版数(修正後)の表示領域
86 該当箇所プログラム文(修正後)の表示領域
87 警告内容(修正後)の表示領域
88 判定結果表示領域
89 補足説明表示領域
90 コンピュータ
91 演算装置
92 主記憶装置
93 ディスプレイ装置
94 補助記憶装置
95 入力装置
96 バス
1 Program registration unit 2 Configuration management DB (database)
3 Static analysis DB (database)
4 Static analysis execution unit 5 Design rules DB (database)
6 Change difference extraction part 7 Static analysis result change factor analysis part 8 Static analysis warning indication part extraction part 9 Static analysis warning indication correspondence search part 10 Program improvement support system 11 Change factor evaluation result input part 12 Screen 20 Warning part display Screen 21 Program display area 22 Design rule display area 23 Pointed part display area 24 “Search for correction candidates” button 25 File name 30 Correction data table 31 Violation rule number (before correction)
32 Project name 33 File name 34 Line number (before correction)
35 Line number (after correction)
36 Violation Code Number (after correction)
37 editions (before revision)
38 editions (after correction)
39 Judgment 40 Description 41 Rule data table 42 Rule number 43 Design rule 44 Valid / invalid 50 Difference display input screen 51 File name display area 52 Version number (old version)
53 Applicable program text (old version)
54 Warning content (old version)
55 editions (new edition)
56 Corresponding program text (new edition)
57 Warning content (new edition)
58 Determination input field 59 Description input field 60 “Registration” button 61 “Next warning” button 70 Search screen 71 Design rule specification area 72 “Search” button 73 Search result display area 73 a Selection 73 b File name 73 c Line number 73 d Determination 73e Description 74 “Display contents” button 75 “End” button 80 Detailed display screen 81 File name 82 Version number (before correction) display area 83 Corresponding program sentence (before correction) display area 84 Warning contents (before correction) Display area 85 Version (after correction) display area 86 Corresponding program text (after correction) display area 87 Warning content (after correction) display area 88 Judgment result display area 89 Supplementary explanation display area 90 Computer 91 Computing device 92 Main storage device 93 Display device 94 Auxiliary storage device 95 Input device 96 Bus

Claims (7)

任意のプログラムが登録されるプログラム記憶手段と、
予め設計規約が記憶されている設計規約記憶手段と、
該プログラム記憶手段に初版または更新版の前記プログラムが新たに登録された後に、該新たに登録されたプログラムに対して前記設計規約に基づいて静的解析を実行する静的解析実行手段と、
該静的解析実行手段による前記静的解析結果として少なくとも設計規約違反箇所と違反内容が記憶される静的解析結果記憶手段と、
前記プログラム記憶手段に登録されるプログラムのうち複数の版が存在するプログラムに関して、相対的な旧版・新版となる任意の2つの版毎に、該2つの版それぞれの前記静的解析結果に基づいて、旧版における前記設計規約違反箇所と、新版において該設計規約違反箇所に対応する箇所である該当箇所とで、前記違反内容が異なる場合には、該設計規約違反箇所と該当箇所に関する情報を新旧関連情報として記憶する新旧関連情報抽出・記憶手段と、
該新旧関連情報抽出・記憶手段に記憶される新旧関連情報に基づいて、任意の設計規約に関して、前記設計規約違反箇所のプログラム文と前記該当箇所のプログラム文とを、その違反内容変化と共に表示する支援情報表示手段とを有し、
前記新旧関連情報抽出・記憶手段は、前記該当箇所に関しては違反が無い場合に前記違反内容が異なる場合と見做して、前記設計規約違反箇所と該当箇所に関する情報を新旧関連情報として記憶することを特徴とするプログラム改善支援システム。
Program storage means for registering an arbitrary program;
Design rule storage means for storing design rules in advance;
Static analysis execution means for performing static analysis on the newly registered program based on the design rules after the first version or the updated version of the program is newly registered in the program storage means;
Static analysis result storage means for storing at least design rule violation locations and violation contents as the static analysis results by the static analysis execution means;
With respect to a program in which a plurality of versions exist among programs registered in the program storage means, any two versions that are relatively old and new versions are based on the static analysis results of the two versions. If the content of the violation is different between the location that violates the design rule in the old version and the location that corresponds to the location that violates the design rule in the new version, New and old related information extraction / storage means for storing as information,
Based on the old and new related information stored in the new and old related information extracting / storing means, with respect to an arbitrary design rule, the program statement at the design rule violation part and the program sentence at the corresponding part are displayed together with the violation content change. Support information display means ,
The old and new related information extracting / storing means considers that the violation content is different when there is no violation with respect to the relevant part, and stores information on the design rule violation part and the relevant part as old and new relevant information. A program improvement support system characterized by
前記新旧関連情報抽出・記憶手段に記憶される前記新旧関連情報に基づいて、前記設計規約違反箇所のプログラム文と前記該当箇所のプログラム文とを、その違反内容と共に表示し、該表示内容に対する任意の評価結果入力を受け付け、入力された評価結果を前記新旧関連情報に対応付けて前記新旧関連情報抽出・記憶手段に追加記憶する変化要因評価結果入力手段を更に有し、
前記支援情報表示手段は、前記設計規約違反箇所のプログラム文と前記該当箇所のプログラム文とを、その違反内容変化と前記評価結果と共に表示することを特徴とする請求項記載のプログラム改善支援システム。
Based on the old and new related information stored in the old and new related information extracting / storing means, the program text of the design rule violation part and the program sentence of the relevant part are displayed together with the violation contents, and the display contents are arbitrarily selected. And a change factor evaluation result input means for additionally storing the input evaluation result in the old and new related information extracting and storing means in association with the old and new related information,
2. The program improvement support system according to claim 1, wherein the support information display means displays the program statement of the design rule violation part and the program sentence of the corresponding part together with the violation content change and the evaluation result. .
前記違反内容変化の表示は、設計規約違反箇所に係る規約違反が、前記該当箇所では違反なしとなっていることを表示するものであることを特徴とする請求項1または2に記載のプログラム改善支援システム。 3. The program improvement according to claim 1, wherein the display of the violation content change is to display that the violation of the rules related to the design rule violation is not violated in the corresponding location. 4. Support system. 前記変化要因評価結果入力手段は、予め登録されている特定ユーザに対してのみ、前記評価結果入力を許可することを特徴とする請求項2記載のプログラム改善支援システム。   3. The program improvement support system according to claim 2, wherein the change factor evaluation result input means permits the evaluation result input only to a specific user registered in advance. 前記変化要因評価結果入力手段は、前記評価結果入力に加えて更に任意の補足説明の入力も受け付け、入力された評価結果と補足説明を前記新旧関連情報に対応付けて前記新旧関連情報抽出・記憶手段に記憶し、
前記支援情報表示手段は、前記表示の際に該評価結果と補足説明も表示することを特徴とする請求項記載のプログラム改善支援システム。
In addition to the evaluation result input, the change factor evaluation result input means also accepts an input of arbitrary supplementary explanation, and the inputted evaluation result and supplementary explanation are associated with the old and new related information to extract and store the old and new related information. Memorize in the means,
3. The program improvement support system according to claim 2, wherein the support information display means also displays the evaluation result and supplementary explanation at the time of the display.
前記支援情報表示手段は、
任意に指定される設計規約に基づいて、旧版に係る設計規約違反が該指定される設計規約に対する違反である新旧関連情報を、前記新旧関連情報抽出・記憶手段を検索して求めて一覧表示すると共に、該一覧表示中から任意の新旧関連情報を選択させる検索・選択手段と、
該検索手段で選択された新旧関連情報を用いて、前記設計規約違反箇所のプログラム文と前記該当箇所のプログラム文とその違反内容変化の表示を行う表示手段と、
を有することを特徴とする請求項1記載のプログラム改善支援システム。
The support information display means includes
Based on the arbitrarily specified design rules, the old and new related information in which the violations of the design rules related to the old version are violations of the specified design rules are searched and searched for and displayed in a list. And search / selection means for selecting arbitrary old and new related information from the list display,
Using the old and new related information selected by the search means, a display means for displaying a program sentence of the design rule violation part, a program sentence of the corresponding part, and a change in violation contents thereof,
The program improvement support system according to claim 1, further comprising:
前記静的解析結果記憶手段に記憶された静的解析結果に基づいて、任意のプログラムの任意の版に関する設計規約違反箇所と違反内容を抽出して表示すると共に、該表示から任意の設計規約違反が指定されると、前記支援情報表示手段を起動する静的解析警告指摘箇所抽出手段を更に有し、
前記支援情報表示手段は、該静的解析警告指摘箇所抽出手段で指定された設計規約違反に関して、前記検索と一覧表示を行うことを特徴とする請求項記載のプログラム改善支援システム。
Based on the static analysis result stored in the static analysis result storage means, the design rule violation part and the violation content for any version of any program are extracted and displayed, and any design rule violation is displayed from the display. Is further included, static analysis warning indication point extraction means for activating the support information display means,
7. The program improvement support system according to claim 6, wherein the support information display means performs the search and list display for violations of design rules designated by the static analysis warning indication point extraction means.
JP2011154580A 2011-07-13 2011-07-13 Program improvement support system Expired - Fee Related JP5741265B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011154580A JP5741265B2 (en) 2011-07-13 2011-07-13 Program improvement support system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011154580A JP5741265B2 (en) 2011-07-13 2011-07-13 Program improvement support system

Publications (2)

Publication Number Publication Date
JP2013020519A JP2013020519A (en) 2013-01-31
JP5741265B2 true JP5741265B2 (en) 2015-07-01

Family

ID=47691880

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011154580A Expired - Fee Related JP5741265B2 (en) 2011-07-13 2011-07-13 Program improvement support system

Country Status (1)

Country Link
JP (1) JP5741265B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6430036B2 (en) * 2016-01-05 2018-11-28 三菱電機株式会社 Display control apparatus and display control method
CN109753610A (en) 2019-01-29 2019-05-14 百度在线网络技术(北京)有限公司 The sharing method and device of technical ability
JP6713118B1 (en) * 2019-08-23 2020-06-24 Psp株式会社 PDI-compliant compliance analysis program, PDI-compliant compliance analyzer and PDI-compliant compliance analysis method

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
WO2008129619A1 (en) * 2007-04-09 2008-10-30 Fujitsu Limited Source program review program, source program review method and source program review device
JP2011081496A (en) * 2009-10-05 2011-04-21 Toshiba Corp Result product review support device

Also Published As

Publication number Publication date
JP2013020519A (en) 2013-01-31

Similar Documents

Publication Publication Date Title
Sadowski et al. Lessons from building static analysis tools at ***
Ogheneovo On the relationship between software complexity and maintenance costs
US8490054B2 (en) Software and related software tracking during software modification
US8627290B2 (en) Test case pattern matching
Corley et al. Recovering traceability links between source code and fixed bugs via patch analysis
US20160378647A1 (en) Development supporting system
Behnamghader et al. Towards better understanding of software quality evolution through commit-impact analysis
KR20130135271A (en) Code clone notification and architectural change visualization
US10747852B1 (en) License compliance analysis platform
US10901699B2 (en) Data analysis process assistance device and data analysis process assistance method
Santos et al. Remodularization analysis using semantic clustering
Göde et al. Oops!... I changed it again
US10871951B2 (en) Code correction
Mahajan et al. Xfix: an automated tool for the repair of layout cross browser issues
JP5741265B2 (en) Program improvement support system
EP3113016A1 (en) Tracing dependencies between development artifacts in a development project
JP2018005535A (en) Software development assist method and system
JP2009146207A (en) Source code analysis support device
Brito et al. RAID: Tool support for refactoring-aware code reviews
Rio et al. PHP code smells in web apps: Evolution, survival and anomalies
CN110618926A (en) Source code analysis method and source code analysis device
JP4502535B2 (en) Software quality inspection support system and method
JP6310865B2 (en) Source code evaluation system and method
Ramkisoen et al. Pareco: patched clones and missed patches among the divergent variants of a software family
JP2014137748A (en) Document data management system, document data management method and document data management program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150313

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150413

R150 Certificate of patent or registration of utility model

Ref document number: 5741265

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees