JP2012033017A - Rule inspection device, rule inspection method and rule inspection program - Google Patents

Rule inspection device, rule inspection method and rule inspection program Download PDF

Info

Publication number
JP2012033017A
JP2012033017A JP2010172335A JP2010172335A JP2012033017A JP 2012033017 A JP2012033017 A JP 2012033017A JP 2010172335 A JP2010172335 A JP 2010172335A JP 2010172335 A JP2010172335 A JP 2010172335A JP 2012033017 A JP2012033017 A JP 2012033017A
Authority
JP
Japan
Prior art keywords
inspection
program
framework
rule
analysis
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010172335A
Other languages
Japanese (ja)
Other versions
JP5121891B2 (en
Inventor
Chizuru Morita
千鶴 森田
Hiroyuki Kato
寛之 加藤
Akihiko Kamimura
朋彦 上村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Marketing Ltd
Original Assignee
Fujitsu Marketing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Marketing Ltd filed Critical Fujitsu Marketing Ltd
Priority to JP2010172335A priority Critical patent/JP5121891B2/en
Publication of JP2012033017A publication Critical patent/JP2012033017A/en
Application granted granted Critical
Publication of JP5121891B2 publication Critical patent/JP5121891B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

PROBLEM TO BE SOLVED: To perform an inspection of a framework rule, targeting a whole system.SOLUTION: A rule inspection device comprises an analysis section and a framework inspection section. The analysis section analyzes the relations between a plurality of programs used for the generation of a business application and a general-purpose application etc. The framework inspection section inspects whether the relations between the plurality of programs analyzed by the analysis section represents the relations based on the framework rule as the specification rule of a framework.

Description

この発明は、規則検査装置、規則検査方法及び規則検査プログラムに関する。   The present invention relates to a rule inspection device, a rule inspection method, and a rule inspection program.

従来、ソフトウェアの開発では、作業効率の向上やプログラムソースコードの品質維持を目的として、フレームワークを用いた開発が行われている。フレームワークは、ソフトウェアの開発において標準的に用いられるプログラムソースコードや部品の利用規約などの枠組みである。例えば、フレームワークには、Java(登録商標)やVB.NETそれぞれにデータベースアクセス用のフレームワーク、画面動作記述用のフレームワーク、帳票処理用のフレームワークなどがある。   Conventionally, in the development of software, development using a framework is performed for the purpose of improving work efficiency and maintaining the quality of program source code. The framework is a framework such as a program source code or a part usage rule that is used as standard in software development. For example, the framework includes Java (registered trademark), VB. Each NET includes a database access framework, a screen operation description framework, a form processing framework, and the like.

ここで、ソフトウェアの開発においては、ソフトウェアの品質を向上させるために、品質診断が行われている。例えば、ソフトウェアの品質診断に用いられるツールとしては、プログラム検査システムが知られている。プログラム検査システムは、設計者によって作成されたプログラムソースコードが特定の方式設計に従って作成されているか否かを検査する。なお、特定の方式設計とは、例えば、プログラムソースコードの作成に用いられたプログラム言語ごとに規定された文法や規約などである。   Here, in software development, quality diagnosis is performed in order to improve software quality. For example, a program inspection system is known as a tool used for software quality diagnosis. The program inspection system inspects whether the program source code created by the designer is created according to a specific scheme design. The specific system design is, for example, a grammar or a rule defined for each program language used for creating a program source code.

また、プログラム検査システムは、ソフトウェアに含まれるプログラムソースコードの呼出先や継承元などを検査することで、フレームワークルールに従って作成されているか否かを検査する。   Further, the program inspection system inspects whether or not the program source code included in the software is created according to the framework rule by inspecting the call destination or inheritance source of the program source code.

特許3360635号公報Japanese Patent No. 3360635 特開2005−056183号公報JP 2005-056183 A 特開2009−99111号公報JP 2009-99111 A

しかしながら、上述した従来技術では、システム全体を対象としたフレームワークルールの検査を行うことが困難であった。具体的には、上述した従来技術では、プログラム単体を基準とした検査であることから、システム全体を対象としたフレームワークルールの検査を行うことが困難であった。   However, in the above-described conventional technology, it is difficult to inspect the framework rules for the entire system. Specifically, in the conventional technology described above, since the inspection is based on a single program, it is difficult to inspect the framework rules for the entire system.

そこで、本開示の技術は、上述した従来技術の問題を鑑みて、システム全体を対象としたフレームワークルールの検査を行うことを可能にする規則検査装置、規則検査方法及び規則検査プログラムを提供することを目的とする。   In view of the above-described problems of the related art, the technology of the present disclosure provides a rule inspection device, a rule inspection method, and a rule inspection program that enable inspection of framework rules for the entire system. For the purpose.

上述した課題を解決し、目的を達成するため、開示の装置は、解析部とフレームワーク検査部とを有する。解析部は、アプリケーションの作成に用いられた複数のプログラム間の関係を解析する。フレームワーク検査部は、解析部によって解析された複数のプログラム間の関係がフレームワークの仕様規定であるフレームワーク規定に則した関係であるか否かを検査する。   In order to solve the above-described problems and achieve the object, the disclosed apparatus includes an analysis unit and a framework inspection unit. The analysis unit analyzes a relationship between a plurality of programs used for creating an application. The framework inspection unit inspects whether or not the relationship between the plurality of programs analyzed by the analysis unit is a relationship in accordance with a framework rule that is a framework specification rule.

開示の装置は、システム全体を対象としたフレームワークルールの検査を行うことを可能にする。   The disclosed apparatus makes it possible to inspect framework rules for the entire system.

図1は、実施例1に係るプログラム規則検査装置の構成を説明するための図である。FIG. 1 is a diagram for explaining the configuration of the program rule inspection apparatus according to the first embodiment. 図2は、解析データ記憶部によって記憶される管理データの一例を説明するための図である。FIG. 2 is a diagram for explaining an example of management data stored in the analysis data storage unit. 図3は、解析データ記憶部によって記憶されるクラス解析結果の一例を説明するための図である。FIG. 3 is a diagram for explaining an example of the class analysis result stored by the analysis data storage unit. 図4は、解析データ記憶部によって記憶されるメソッド解析結果の一例を説明するための図である。FIG. 4 is a diagram for explaining an example of a method analysis result stored by the analysis data storage unit. 図5は、解析データ記憶部によって記憶されるインスタンス解析結果の一例を説明するための図である。FIG. 5 is a diagram for explaining an example of the instance analysis result stored by the analysis data storage unit. 図6は、解析データ記憶部によって記憶されるメソッド呼出し解析結果の一例を説明するための図である。FIG. 6 is a diagram for explaining an example of a method call analysis result stored by the analysis data storage unit. 図7−1は、画面処理に関するプログラムソースコードの一例(1)を説明するための図である。FIG. 7A is a diagram for explaining an example (1) of the program source code relating to the screen processing. 図7−2は、画面処理に関するプログラムソースコードの一例(2)を説明するための図である。FIG. 7B is a diagram for explaining an example (2) of the program source code regarding the screen processing. 図8−1は、業務処理に関するプログラムソースコードの一例(1)を説明するための図である。FIG. 8A is a schematic diagram illustrating an example (1) of a program source code related to business processing. 図8−2は、業務処理に関するプログラムソースコードの一例(2)を説明するための図である。FIG. 8-2 is a diagram for explaining an example (2) of the program source code related to the business process. 図8−3は、業務処理に関するプログラムソースコードの一例(3)を説明するための図である。FIG. 8C is a diagram for explaining an example (3) of the program source code related to the business process. 図9−1は、データベース処理に関するプログラムソースコードの一例(1)を説明するための図である。FIG. 9A is a schematic diagram illustrating an example (1) of a program source code related to database processing. 図9−2は、データベース処理に関するプログラムソースコードの一例(2)を説明するための図である。FIG. 9-2 is a diagram for explaining an example (2) of the program source code relating to the database processing. 図10−1は、プログラムの実装方法に関する検査に用いられるプログラムチェックルールの一例(1)を説明するための図である。FIG. 10A is a diagram for explaining an example (1) of the program check rule used for the inspection related to the program mounting method. 図10−2は、プログラムの実装方法に関する検査に用いられるプログラムチェックルールの一例(2)を説明するための図である。FIG. 10-2 is a diagram for explaining an example (2) of the program check rule used for the inspection related to the program mounting method. 図11は、プログラムの継承に関する検査に用いられるプログラムチェックルールの一例を説明するための図である。FIG. 11 is a diagram for explaining an example of a program check rule used for a check relating to program inheritance. 図12は、プログラムの呼出し方法に関する検査に用いられるプログラムチェックルールの一例を説明するための図である。FIG. 12 is a diagram for explaining an example of the program check rule used for the inspection related to the program calling method. 図13−1は、プログラムの呼出し順に関するフレームワークルールの一例(1)を説明するための図である。FIG. 13A is a diagram for explaining an example (1) of a framework rule regarding the calling order of programs. 図13−2は、プログラムの呼出し順に関するフレームワークルールの一例(2)を説明するための図である。FIG. 13-2 is a diagram for explaining an example (2) of the framework rule regarding the calling order of programs. 図13−3は、プログラムの呼出し順に関するフレームワークルールの一例(3)を説明するための図である。FIG. 13C is a diagram for explaining an example (3) of a framework rule regarding the calling order of programs. 図14−1は、検査結果レポートの一例(1)を説明するための図である。FIG. 14A is a diagram for explaining an example (1) of the inspection result report. 図14−2は、検査結果レポートの一例(2)を説明するための図である。FIG. 14-2 is a diagram for explaining an example (2) of the inspection result report. 図15は、実施例1に係るプログラム規則検査装置によるプログラムの事前解析処理の手順を説明するためのフローチャートである。FIG. 15 is a flowchart for explaining the procedure of the program pre-analysis process performed by the program rule inspection apparatus according to the first embodiment. 図16は、実施例1に係るプログラム規則検査装置による処理の手順を説明するためのフローチャートである。FIG. 16 is a flowchart for explaining the procedure of the process performed by the program rule inspection apparatus according to the first embodiment. 図17は、実施例1に係るプログラム規則検査装置によるフレームワーク検査処理の手順を説明するためのフローチャートである。FIG. 17 is a flowchart for explaining the procedure of the framework inspection process performed by the program rule inspection apparatus according to the first embodiment. 図18は、実施例1に係るプログラム規則検査装置によるフレームワーク検査の一例を模式的に示した図である。FIG. 18 is a diagram schematically illustrating an example of a framework inspection performed by the program rule inspection apparatus according to the first embodiment. 図19−1は、プログラムの処理順に関するフレームワークルールの一例(1)を説明するための図である。FIG. 19A is a diagram for explaining an example (1) of a framework rule regarding the processing order of a program. 図19−2は、プログラムの処理順に関するフレームワークルールの一例(2)を説明するための図である。FIG. 19-2 is a diagram for explaining an example (2) of the framework rule regarding the processing order of the program. 図20は、実施例2に係るプログラム規則検査装置によるフレームワーク検査処理の手順を説明するためのフローチャートである。FIG. 20 is a flowchart for explaining the procedure of the framework inspection process performed by the program rule inspection apparatus according to the second embodiment. 図21は、実施例2に係るプログラム規則検査装置によるフレームワーク検査の一例を模式的に示した図である。FIG. 21 is a diagram schematically illustrating an example of a framework inspection performed by the program rule inspection apparatus according to the second embodiment. 図22−1は、検査結果レポートの変形例(1)を説明するための図である。FIG. 22-1 is a diagram for explaining a modification (1) of the inspection result report. 図22−2は、検査結果レポートの変形例(2)を説明するための図である。FIG. 22-2 is a diagram for explaining a modification (2) of the inspection result report. 図23は、規則検査プログラムを実行するコンピュータを説明するための図である。FIG. 23 is a diagram for explaining a computer that executes a rule inspection program.

以下に添付図面を参照して、本願の開示する規則検査装置、規則検査方法及び規則検査プログラムの実施例を詳細に説明する。なお、本願の開示する規則検査装置、規則検査方法及び規則検査プログラムは、以下の実施例により限定されるものではない。   Hereinafter, embodiments of a rule inspection device, a rule inspection method, and a rule inspection program disclosed in the present application will be described in detail with reference to the accompanying drawings. The rule inspection device, the rule inspection method, and the rule inspection program disclosed in the present application are not limited to the following embodiments.

実施例1に係るプログラム規則検査装置は、アプリケーションの生成に用いられた複数のプログラム間の関係に基づいて、アプリケーションにおけるシステム全体を対象としたフレームワークルールの検査を行う。なお、ここでいうアプリケーションとは、例えば、企業などの要求により独自に開発された業務アプリケーションや、一般的な文章作成ソフト、表計算ソフトなどの汎用アプリケーションなどである。また、システム全体を対象としたフレームワークルールの検査とは、例えば、プログラムの呼出関係や継承関係、或いは、共通して用いられる部品の利用方法の適合性などである。   The program rule inspection apparatus according to the first embodiment inspects a framework rule for the entire system in an application based on a relationship between a plurality of programs used for generating an application. The application referred to here is, for example, a business application uniquely developed according to a request from a company or the like, or a general-purpose application such as general text creation software or spreadsheet software. The inspection of the framework rules for the entire system is, for example, program call relationship or inheritance relationship, or compatibility of commonly used parts usage methods.

具体的には、実施例1に係るプログラム規則検査装置は、アプリケーションの生成に用いられた複数のプログラムの関係を事前に解析する。そして、実施例1に係るプログラム規則検査装置は、事前に解析した複数のプログラム間の関係を検査対象として、各プログラムの呼出関係や継承関係、或いは、共通して用いられる部品の利用方法の適合性などがフレームワークの仕様規定であるフレームワーク規定に則しているか否かを検査する。従って、実施例1に係るプログラム規則検査装置は、例えば、画面処理プログラム、業務処理プログラム、データベース処理プログラムなどの複数階層に跨る処理が適切に実行されているか否かを判定することができ、システム全体を対象としたフレームワークルールの検査を行うことを可能にする。   Specifically, the program rule inspection apparatus according to the first embodiment analyzes in advance the relationship between a plurality of programs used for generating an application. Then, the program rule inspection apparatus according to the first embodiment uses a relationship between a plurality of programs analyzed in advance as an inspection target, and adapts a calling method or inheritance relationship of each program or a commonly used method of using parts. It is inspected whether or not the property conforms to the framework rules that are the framework specification rules. Therefore, the program rule inspection apparatus according to the first embodiment can determine whether or not processing across multiple hierarchies such as a screen processing program, a business processing program, and a database processing program is appropriately executed, for example. It is possible to inspect framework rules for the whole.

まず、実施例1に係るプログラム規則検査装置の構成を説明する。図1は、実施例1に係るプログラム規則検査装置の構成を説明するための図である。図1に示すように、プログラム規則検査装置100は、解析データ記憶部110と、プログラム解析処理部120と、プログラム検査処理部130と、プログラム検査規則140と、フレームワーク検査処理部150と、フレームワーク検査規則160と、検査結果記憶部170と、検査結果通知処理部180とを有する。そして、プログラム規則検査装置100は、図示しない入力部から入力された検査対象プログラムに対して各種処理を実行することで、プログラムの品質に係る検査を実行し、検査結果レポートを図示しない表示部に表示する。なお、ここでいう検査対象プログラムは、プログラムソースコードである。   First, the configuration of the program rule inspection apparatus according to the first embodiment will be described. FIG. 1 is a diagram for explaining the configuration of the program rule inspection apparatus according to the first embodiment. As shown in FIG. 1, the program rule inspection apparatus 100 includes an analysis data storage unit 110, a program analysis processing unit 120, a program inspection processing unit 130, a program inspection rule 140, a framework inspection processing unit 150, a frame A work inspection rule 160, an inspection result storage unit 170, and an inspection result notification processing unit 180 are included. Then, the program rule inspection apparatus 100 executes various processes on the inspection target program input from an input unit (not shown), thereby executing an inspection relating to the quality of the program and displaying an inspection result report on a display unit (not shown). indicate. The program to be inspected here is a program source code.

解析データ記憶部110、プログラム検査規則140、フレームワーク検査規則160及び検査結果記憶部170は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、又は、ハードディスク、光ディスクなどの記憶装置である。また、プログラム解析処理部120、プログラム検査処理部130、フレームワーク検査処理部150、及び検査結果通知処理部180は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、又は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。   The analysis data storage unit 110, the program inspection rule 140, the framework inspection rule 160, and the inspection result storage unit 170 are, for example, a semiconductor memory device such as a RAM (Random Access Memory) or a flash memory, a hard disk, or an optical disk. Storage device. Further, the program analysis processing unit 120, the program inspection processing unit 130, the framework inspection processing unit 150, and the inspection result notification processing unit 180 are integrated with, for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array). It is a circuit or an electronic circuit such as a CPU (Central Processing Unit) or MPU (Micro Processing Unit).

解析データ記憶部110は、アプリケーションの生成に用いられた複数のプログラム間の関係を記憶する。具体的には、解析データ記憶部110は、後述するプログラム解析処理部120の処理結果及び入力された検査対象プログラムを記憶する。図2は、解析データ記憶部110によって記憶される管理データの一例を説明するための図である。図2に示すように、解析データ記憶部110は、ファイル名、ファイル更新日時、言語、解析済みフラグ、ソースのハッシュコード及び解析対象フラグを連番に対応付けた管理データを記憶する。   The analysis data storage unit 110 stores a relationship between a plurality of programs used for generating an application. Specifically, the analysis data storage unit 110 stores the processing result of the program analysis processing unit 120 described later and the input inspection target program. FIG. 2 is a diagram for explaining an example of management data stored by the analysis data storage unit 110. As shown in FIG. 2, the analysis data storage unit 110 stores management data in which a file name, file update date / time, language, analyzed flag, source hash code, and analysis target flag are associated with serial numbers.

なお、図2の「連番」とは、プログラム解析処理部120によって解析されたプログラムに割当てられた番号を意味している。また、図2の「ファイル名」とは、プログラム解析処理部120によって解析されたプログラムのファイル名を意味している。また、図2の「ファイル更新日時」とは、ファイルが最後に修正された日時を意味している。また、図2の「言語」とは、プログラムの作成に用いられたプログラム言語を意味している。また、図2の「解析済みフラグ」とは、解析が行われたか否かを示すフラグである。また、図2の「ソースのハッシュコード」とは、プログラムを一意に特定し、ファイルが修正されたか否かを判定するためのハッシュコードである。例えば、ファイルが修正された場合にはハッシュコードが変化するため、ファイルが修正されたか否かを判定することに用いられる。また、図2の「解析対象フラグ」とは、後に実行されるフレームワークに関する解析の対象となるか否かを示すフラグである。   Note that “serial number” in FIG. 2 means a number assigned to the program analyzed by the program analysis processing unit 120. Further, “file name” in FIG. 2 means the file name of the program analyzed by the program analysis processing unit 120. Further, “file update date / time” in FIG. 2 means the date and time when the file was last modified. Further, “language” in FIG. 2 means a program language used for creating a program. The “analyzed flag” in FIG. 2 is a flag indicating whether or not analysis has been performed. The “source hash code” in FIG. 2 is a hash code for uniquely identifying a program and determining whether a file has been modified. For example, since the hash code changes when the file is modified, it is used to determine whether or not the file has been modified. Further, the “analysis target flag” in FIG. 2 is a flag indicating whether or not to be an analysis target related to a framework to be executed later.

例えば、解析データ記憶部110は、図2に示すように、「連番:001」に対応付けて、「ファイル名:M_SHAINView.vb、ファイル更新日時:2010/04/03 10:23:21、言語:VB.NET、解析済みフラグ:1、ソースのハッシュコード:948ad32e、解析対象フラグ:1」を記憶する。すなわち、上述した情報は、プログラム解析処理部120によって「2010/04/03 10:23:21」に解析されたプログラムは、ファイル名が「M_SHAINView.vb」であり、「VB.NET」を用いて作成されていることを示している。そして、上述した情報は、プログラムを特定するためのハッシュコードが「948ad32e」であり、後に実行されるフレームワークに関する解析対象となることを示している。同様に、解析データ記憶部110は、図2に示すように、後述するプログラム解析処理部120によって解析されたプログラムについて、他の解析状況の管理データを記憶する。   For example, as shown in FIG. 2, the analysis data storage unit 110 associates “serial number: 001” with “file name: M_SHAINView.vb, file update date: 2010/04/03 10:23:21, Language: VB.NET, analyzed flag: 1, source hash code: 948ad32e, and analysis target flag: 1 ”are stored. That is, the above-described information is that the program analyzed by the program analysis processing unit 120 on “2010/04/03 10:23:21” has the file name “M_SHAINView.vb” and uses “VB.NET”. It has been created. And the information mentioned above has shown that the hash code for specifying a program is "948ad32e", and becomes the analysis object regarding the framework performed later. Similarly, as shown in FIG. 2, the analysis data storage unit 110 stores management data of other analysis situations for the program analyzed by the program analysis processing unit 120 described later.

図3は、解析データ記憶部110によって記憶されるクラス解析結果の一例を説明するための図である。図3に示すように、解析データ記憶部110は、ファイルパス、パッケージ名、クラス名、開始行番号、終了行番号、メソッド数、修飾子及び継承元に識別IDを対応付けたクラス解析結果を記憶する。   FIG. 3 is a diagram for explaining an example of the class analysis result stored by the analysis data storage unit 110. As shown in FIG. 3, the analysis data storage unit 110 displays a class analysis result in which an identification ID is associated with a file path, a package name, a class name, a start line number, an end line number, a method number, a modifier, and an inheritance source. Remember.

なお、図3の「識別ID」とは、解析されたクラスを一意に識別するための識別子である。また、図3の「ファイルパス」とは、検査対象プログラムが格納されているフォルダの起点となるフォルダである解析ファイルパスからの相対パスを意味している。また、図3の「パッケージ名」とは、検査対象プログラムを含むソフトウェアの名称を意味している。また、図3の「クラス名」とは、検査対象プログラムのクラス名を意味している。また、図3の「開始行番号」とは、検査対象プログラムにおいて、クラスの開始行を示す行番号を意味している。また、図3の「終了行番号」とは、検査対象プログラムにおいて、クラスの終了行を示す行番号を意味している。また、図3の「メソッド数」とは、検査対象プログラムのクラスに含まれるメソッドの数を意味している。また、図3の「修飾子」とは、当該クラスを参照することが可能な領域を意味している。また、図3の「継承元」とは、当該クラスの元となるクラスを意味している。   The “identification ID” in FIG. 3 is an identifier for uniquely identifying the analyzed class. Further, “file path” in FIG. 3 means a relative path from an analysis file path that is a folder that is a starting point of a folder in which a program to be inspected is stored. Further, the “package name” in FIG. 3 means the name of software including the inspection target program. Further, “class name” in FIG. 3 means the class name of the program to be inspected. Further, the “starting line number” in FIG. 3 means a line number indicating the starting line of the class in the program to be inspected. Further, the “end line number” in FIG. 3 means a line number indicating the end line of the class in the inspection target program. Further, the “number of methods” in FIG. 3 means the number of methods included in the class of the inspection target program. Further, the “qualifier” in FIG. 3 means an area where the class can be referred to. Further, “inheritance source” in FIG. 3 means a class that is a source of the class.

例えば、解析データ記憶部110は、図3に示すように、クラス解析結果として「識別ID:1001」に対応付けて「ファイルパス:WebASMaster/M_SHAINView.vb、パッケージ名:WebAS、クラス名:M_SHAINView、開始行番号:6、終了行番号:91、メソッド数:5、修飾子:Partial、継承元:BasePage」を記憶する。同様に、解析データ記憶部110は、図3に示すように、他のクラス解析結果を記憶する。   For example, as shown in FIG. 3, the analysis data storage unit 110 associates “classification result as“ identification ID: 1001 ”with“ file path: WebAMaster / M_SHAINView.vb, package name: WebAS, class name: M_SHAINView, "Start line number: 6, end line number: 91, number of methods: 5, qualifier: Partial, inheritance source: BasePage" is stored. Similarly, the analysis data storage unit 110 stores other class analysis results as shown in FIG.

図4は、解析データ記憶部110によって記憶されるメソッド解析結果の一例を説明するための図である。図4においては、図3に示すクラス解析結果に含まれるメソッドについて解析された結果について示している。図4に示すように、解析データ記憶部110は、ファイル名、クラス名、メソッド名、パラメータ、戻り値型、開始行番号及び終了行番号に連番を対応付けたメソッド解析結果を記憶する。   FIG. 4 is a diagram for explaining an example of a method analysis result stored by the analysis data storage unit 110. FIG. 4 shows the result of analyzing the methods included in the class analysis result shown in FIG. As shown in FIG. 4, the analysis data storage unit 110 stores a method analysis result in which a serial number is associated with a file name, a class name, a method name, a parameter, a return value type, a start line number, and an end line number.

なお、図4の「連番」とは、メソッドごとに割当てられた番号を意味している。また、図4の「ファイル名」とは、メソッドが属するファイル名を意味している。また、図4の「クラス名」とは、メソッドが属するクラス名を意味している。また、図4の「パラメータ」とは、メソッドに定義された処理を実行させるために指定するパラメータを意味している。また、図4の「戻り値型」とは、パラメータに対して引数が指定された場合に、導出される値の型を意味している。また、図4の「開始行番号」とは、検査対象プログラムにおいて、メソッドの開始行を示す行番号を意味している。また、図4の「終了行番号」とは、検査対象プログラムにおいて、メソッドの終了行を示す行番号を意味している。   Note that “serial number” in FIG. 4 means a number assigned to each method. Further, “file name” in FIG. 4 means a file name to which the method belongs. Further, “class name” in FIG. 4 means the class name to which the method belongs. Further, the “parameter” in FIG. 4 means a parameter designated for executing the process defined in the method. Further, the “return value type” in FIG. 4 means a type of value derived when an argument is specified for a parameter. Further, the “starting line number” in FIG. 4 means a line number indicating the starting line of the method in the inspection target program. Further, the “end line number” in FIG. 4 means a line number indicating the end line of the method in the inspection target program.

例えば、解析データ記憶部110は、図4に示すように、メソッド解析結果として「連番:2001」に対応付けて「ファイル名:WebASMaster/M_SHAINView.vb、クラス名:M_SHAINView、メソッド名:Page_Load、パラメータ:Object,EventArgs、戻り値型:Nothing、開始行番号:9、終了行番号:25」を記憶する。同様に、解析データ記憶部110は、図4に示すように、他のメソッド解析結果を記憶する。   For example, as shown in FIG. 4, the analysis data storage unit 110 associates the method analysis result with “serial number: 2001” as “file name: WebASMaster / M_SHAINView.vb, class name: M_SHAINView, method name: Page_Load, Parameters: Object, EventArgs, return value type: Noting, start line number: 9, end line number: 25 "are stored. Similarly, the analysis data storage unit 110 stores other method analysis results as shown in FIG.

図5は、解析データ記憶部110によって記憶されるインスタンス解析結果の一例を説明するための図である。図5においては、図4に示すメソッドに定義されたインスタンスに関して解析された結果を示している。図5に示すように、解析データ記憶部110は、ファイル名、クラス名、メソッド名、引数、戻り値型、宣言変数名、宣言変数型及び宣言行番号に連番を対応付けたインスタンス解析結果を記憶する。   FIG. 5 is a diagram for explaining an example of the instance analysis result stored by the analysis data storage unit 110. FIG. 5 shows the result of analysis regarding the instance defined in the method shown in FIG. As illustrated in FIG. 5, the analysis data storage unit 110 includes an instance analysis result in which a serial number is associated with a file name, a class name, a method name, an argument, a return value type, a declaration variable name, a declaration variable type, and a declaration line number. Remember.

なお、図5の「連番」とは、インスタンスごとに割当てられた番号を意味している。また、図5の「ファイル名」とは、インスタンスが属するファイル名を意味している。また、図5の「クラス名」とは、インスタンスが属するクラス名を意味している。また、図5の「メソッド名」とは、インスタンスを定義するメソッド名を意味している。また、図5の「引数」とは、メソッドのパラメータに対して指定される値を意味している。また、図5の「戻り値型」とは、引数によって導出される値の型を意味している。また、図5の「宣言変数名」とは、設計者によって指定されたインスタンスの変数名を意味している。また、図5の「宣言変数型」とは、インスタンスとして宣言された変数のデータ型又はクラス型などを意味している。また、図5の「宣言行番号」とは、検査対象プログラムにおいて、インスタンス変数が記載された行番号を意味している。   The “serial number” in FIG. 5 means a number assigned to each instance. Further, “file name” in FIG. 5 means a file name to which the instance belongs. Further, “class name” in FIG. 5 means the class name to which the instance belongs. Further, “method name” in FIG. 5 means a method name defining an instance. Further, “argument” in FIG. 5 means a value specified for a method parameter. Further, the “return value type” in FIG. 5 means a type of a value derived by an argument. The “declared variable name” in FIG. 5 means the variable name of the instance designated by the designer. The “declared variable type” in FIG. 5 means the data type or class type of a variable declared as an instance. Further, “declared line number” in FIG. 5 means a line number in which an instance variable is described in the inspection target program.

例えば、解析データ記憶部110は、図5に示すように、インスタンス解析結果として「連番:3001」に対応付けて「ファイル名:WebASMaster/M_SHAINView.vb、クラス名:M_SHAINView、メソッド名:InsertButton_Click、引数:Object,EventArgs、戻り値型:Nothing、宣言変数名:param、宣言変数型:M_SHAINMANAGERParam、宣言行番号:39」を記憶する。同様に、解析データ記憶部110は、図5に示すように、他のインスタンス解析結果を記憶する。   For example, as shown in FIG. 5, the analysis data storage unit 110 associates “sequence number: 3001” as an instance analysis result with “file name: WebASMMaster / M_SHAINView.vb, class name: M_SHAINView, method name: InsertButton_Click, Argument: Object, EventArgs, return value type: Noting, declaration variable name: param, declaration variable type: M_SHAINMANAGERParam, declaration line number: 39 ”is stored. Similarly, the analysis data storage unit 110 stores other instance analysis results as shown in FIG.

図6は、解析データ記憶部110によって記憶されるメソッド呼出し解析結果の一例を説明するための図である。図6においては、図5に示すインスタンスごとの呼出しメソッドについて解析された結果を示している。図6に示すように、解析データ記憶部110は、ファイル名、クラス名、メソッド名、引数、戻り値型、呼出し先クラス、呼出し先メソッド名、呼出し先メソッドパラメータ及び呼出し行番号に識別IDを対応付けたメソッド呼出し解析結果を記憶する。   FIG. 6 is a diagram for explaining an example of a method call analysis result stored by the analysis data storage unit 110. FIG. 6 shows the analysis result of the calling method for each instance shown in FIG. As shown in FIG. 6, the analysis data storage unit 110 assigns an identification ID to a file name, a class name, a method name, an argument, a return value type, a call destination class, a call destination method name, a call destination method parameter, and a call line number. Stores the associated method call analysis result.

なお、図6の「識別ID」とは、インスタンスを一意に特定するための識別子を意味している。また、図6の「ファイル名」とは、インスタンスが属するファイル名を意味している。また、図6の「クラス名」とは、インスタンスが属するクラス名を意味している。また、図6の「メソッド名」とは、インスタンスを定義するメソッド名を意味している。また、図6の「引数」とは、メソッドのパラメータに対して指定される値を意味している。また、図6の「戻り値型」とは、引数によって導出される値の型を意味している。また、図6の「呼出し先クラス」とは、各インスタンスにおいて呼出されるクラスを意味している。また、図6の「呼出し先メソッド名」とは、各インスタンスにおいて呼出されるメソッド名を意味している。また、図6の「呼出し先メソッドパラメータ」とは、呼出し先メソッドのパラメータを意味している。また、図6の「呼出し行番号」とは、検査対象プログラムにおいて、メソッドの呼出しが記載された行番号を意味している。   Note that the “identification ID” in FIG. 6 means an identifier for uniquely identifying an instance. Further, “file name” in FIG. 6 means a file name to which the instance belongs. Further, “class name” in FIG. 6 means a class name to which the instance belongs. Further, “method name” in FIG. 6 means a method name defining an instance. Further, “argument” in FIG. 6 means a value designated for a method parameter. Further, the “return value type” in FIG. 6 means a value type derived by an argument. Further, the “call destination class” in FIG. 6 means a class called in each instance. Further, “invocation method name” in FIG. 6 means a method name to be called in each instance. Further, “call destination method parameter” in FIG. 6 means a parameter of the call destination method. Further, the “call line number” in FIG. 6 means a line number in which a method call is described in the program to be inspected.

例えば、解析データ記憶部110は、図6に示すように、メソッド呼出し解析結果として「識別ID:4001」に対応付けて「ファイル名:WebASMaster/M_SHAINView.vb、クラス名:M_SHAINView、メソッド名:InsertButton_Click、引数:Object,EventArgs、戻り値型:Nothing、呼出し先クラス:Validator、呼出し先メソッド名:ServerValidate、呼出し先メソッドパラメータ:なし、呼出し行番号:34」を記憶する。同様に、解析データ記憶部110は、図6に示すように、他のメソッド呼出し解析結果を記憶する。   For example, as shown in FIG. 6, the analysis data storage unit 110 associates “file name: WebASMMaster / M_SHAINView.vb, class name: M_SHAINView., Method name: InsertButton_Click” in association with “identification ID: 4001” as a method call analysis result. , Argument: Object, EventArgs, return value type: Nothing, call destination class: Validator, call destination method name: ServerValidate, call destination method parameter: none, call line number: 34 ”. Similarly, the analysis data storage unit 110 stores other method call analysis results as shown in FIG.

図1に戻って、プログラム検査規則140は、プログラム単体のチェックルールであるプログラムチェックルールを記憶する。フレームワーク検査規則160は、フレームワークのチェックルールであるフレームワークルールを記憶する。検査結果記憶部170は、後述するプログラム検査処理部130及びフレームワーク検査処理部150の処理結果である検査結果を記憶する。なお、プログラムチェックルール、フレームワークルール及び検査結果については、後に詳述する。   Returning to FIG. 1, the program checking rule 140 stores a program check rule that is a check rule of a single program. The framework inspection rule 160 stores framework rules that are framework check rules. The inspection result storage unit 170 stores inspection results that are processing results of the program inspection processing unit 130 and the framework inspection processing unit 150 described later. The program check rule, framework rule, and inspection result will be described in detail later.

プログラム解析処理部120は、アプリケーションの作成に用いられた複数のプログラム間の関係を解析する。具体的には、プログラム解析処理部120は、フレームワークルールの規則検査を実行する事前解析として、アプリケーションの作成に用いられた複数のプログラム間の関係を解析する。より具体的には、プログラム解析処理部120は、利用者によって指定された全てのプログラムを事前解析の対象とし、対象としたプログラムの記載内容、参照関係などを解析して、解析結果を解析データ記憶部110に格納する。以下では、プログラム解析処理部120による解析処理について、図7−1〜図9−2を用いて説明する。   The program analysis processing unit 120 analyzes relationships between a plurality of programs used for creating an application. Specifically, the program analysis processing unit 120 analyzes a relationship between a plurality of programs used for creating an application as a pre-analysis for executing a rule check of a framework rule. More specifically, the program analysis processing unit 120 targets all programs designated by the user for prior analysis, analyzes the description contents, reference relationships, etc. of the targeted programs, and analyzes the analysis results as analysis data. Store in the storage unit 110. Below, the analysis process by the program analysis process part 120 is demonstrated using FIGS. 7-1 to FIG. 9-2.

ここで、まず、図7−1〜図9−2に示すプログラムソースコードについて説明する。図7−1及び図7−2は、画面処理に関するプログラムソースコードの一例を説明するための図である。なお、図7−1及び図7−2は、画面処理に関する1つのプログラムソースコードを示している。図7−1及び図7−2においては、図示しない表示部が所定の画面を表示する際の処理について示されている。例えば、図7−1に示すように、画面処理に関するプログラムソースコードには、「コメント:’表示メッセージのクリア」に対応する「プログラム文:Me.ResultMessage.Text=String.Empty」などが記載されている。   First, the program source code shown in FIGS. 7-1 to 9-2 will be described. FIG. 7A and FIG. 7B are diagrams for explaining an example of a program source code related to screen processing. FIG. 7A and FIG. 7B show one program source code related to screen processing. FIGS. 7A and 7B illustrate processing when a display unit (not shown) displays a predetermined screen. For example, as shown in FIG. 7A, the program source code related to the screen processing includes “program text: Me.ResultMessage.Text = String.Empty” corresponding to “comment: clear display message”. ing.

図8−1〜図8−3は、業務処理に関するプログラムソースコードの一例を説明するための図である。なお、図8−1〜図8−3は、業務処理に関する1つのプログラムソースコードを示している。図8−1〜図8−3においては、トランザクションの各種処理について示されている。業務処理に関するプログラムソースコードには、画面処理に関するプログラムソースコードと同様に、コメントが付された各種処理のプログラム文が記載されている。   8A to 8C are diagrams for explaining an example of a program source code related to business processing. FIG. 8A to FIG. 8C show one program source code related to business processing. 8A to 8C show various types of transaction processing. Similar to the program source code related to screen processing, the program source code related to business processing contains program sentences for various processes with comments.

図9−1及び図9−2は、データベース処理に関するプログラムソースコードの一例を説明するための図である。なお、図9−1及び図9−2は、業務処理に関する1つのプログラムソースコードを示している。図9−1及び図9−2においては、データベースに対するアクセス処理などについて示されている。データベース処理に関するプログラムソースコードには、画面処理に関するプログラムソースコードと同様に、コメントが付された各種処理のプログラム文が記載されている。   FIG. 9A and FIG. 9B are diagrams for explaining an example of a program source code related to database processing. FIG. 9A and FIG. 9B show one program source code related to business processing. 9A and 9B illustrate access processing for the database. Similar to the program source code related to screen processing, the program source code related to database processing includes program statements for various processes with comments.

例えば、プログラム解析処理部120は、図7−1〜図9−2に示すようなプログラムソースコードを事前解析に用いる。プログラム解析処理部120は、利用者によって指定された全てのプログラムソースコードを事前解析の対象とし、対象としたプログラムの記載内容、参照関係などを解析する。例えば、複数階層に跨ってプログラムが格納されている場合に、利用者によって起点フォルダである解析ファイルパスが指定されると、プログラム解析処理部120は、まず、指定された解析ファイルパスの配下にある全てのプログラムソースコードを検査対象プログラムとし、検査対象プログラムのファイルパスを取得する。なお、解析ファイルパスはプロジェクトごとに一意に設定されており、利用者は、事前解析の解析対象として所望する解析ファイルを一意に特定し、指定することが可能である。   For example, the program analysis processing unit 120 uses program source code as shown in FIGS. The program analysis processing unit 120 sets all program source codes designated by the user as targets of prior analysis, and analyzes the description content, reference relationship, and the like of the target program. For example, when a program is stored across multiple hierarchies and the analysis file path that is the origin folder is specified by the user, the program analysis processing unit 120 first subordinates the specified analysis file path. All program source codes are set as inspection target programs, and file paths of the inspection target programs are acquired. The analysis file path is uniquely set for each project, and the user can uniquely specify and specify a desired analysis file as an analysis target of the prior analysis.

例えば、事前解析として、図7−1及び図7−2に示す画面処理に関するプログラムソースコードを解析する場合には、プログラム解析処理部120は、以下のような解析処理を実行して、解析結果を解析データ記憶部110に格納する。プログラム解析処理部120は、まず、プログラムソースコードのパッケージ名が宣言された箇所からパッケージ名を取得する。例えば、プログラム解析処理部120は、図7−1の「4行目」に示すパッケージ名「WebAS」を取得して、取得した「WebAS」を解析データ記憶部110に格納する。   For example, in the case of analyzing the program source code related to the screen processing shown in FIGS. 7-1 and 7-2 as a prior analysis, the program analysis processing unit 120 executes the following analysis processing, and the analysis result Is stored in the analysis data storage unit 110. First, the program analysis processing unit 120 acquires a package name from a location where the package name of the program source code is declared. For example, the program analysis processing unit 120 acquires the package name “WebAS” shown in “line 4” in FIG. 7A and stores the acquired “WebAS” in the analysis data storage unit 110.

そして、プログラム解析処理部120は、プログラムソースコードのクラス解析を実行して、解析結果を解析データ記憶部110に格納する。具体的には、プログラム解析処理部120は、プログラムソースコードにおけるクラスの判定と、クラス内のメソッド数のカウントと、クラスの修飾子及び継承元の取得とを、正規表現を用いて実行する。なお、ここでいう「正規表現」とは、任意の文字列の中から特定の文字列を抽出するために予め定められたパターンである。例を挙げると、「"((Public|Private|Protected|Partial)(¥s))*((Shared)( ¥s))*(Class) ¥s(¥[?)(¥w+)(¥]?)(.*)"」などがクラス開始行の正規表現として用いられ、「"^End¥sClass?"」などがクラス終了行の正規表現として用いられる。例えば、「"((Public|Private|Protected|Partial)(¥s))*((Shared)( ¥s))*(Class) ¥s(¥[?)(¥w+)(¥]?)(.*)"」は、「Private Class」や「Pertial Class」などを検索対象の文字列とした正規表現である。すわなち、プログラム解析処理部120は、プログラムソースコードを参照して、予め定められた正規表現とのパターンマッチングを実行することにより、クラスの判定やメソッド数のカウントなどを行う。例えば、正規表現は、図示しない記憶部によって記憶されている。   Then, the program analysis processing unit 120 executes class analysis of the program source code and stores the analysis result in the analysis data storage unit 110. Specifically, the program analysis processing unit 120 executes class determination in the program source code, count of the number of methods in the class, and acquisition of class modifiers and inheritance sources using regular expressions. Note that the “regular expression” referred to here is a pattern predetermined for extracting a specific character string from an arbitrary character string. For example, "" ((Public | Private | Protected | Partial) (¥ s)) * ((Shared) (¥ s)) * (Class) ¥ s (¥ [?) (¥ w +) (¥] ?) (. *) "" Is used as a regular expression for the class start line, and "" ^ End \ sClass? " "" Etc. are used as regular expressions for class end lines. For example, "" ((Public | Private | Protected | Partial) (¥ s)) * ((Shared (¥ s)) * (Class) ¥ s (¥ [?) (¥ w +) (¥]?) ( . *) "" Is a regular expression that uses "Private Class", "Personal Class", etc. as a search target character string. In other words, the program analysis processing unit 120 refers to the program source code and executes pattern matching with a predetermined regular expression to perform class determination, count the number of methods, and the like. For example, the regular expression is stored in a storage unit (not shown).

例えば、プログラム解析処理部120は、図7−1及び図7−2を参照して、正規表現のパターンと一致する「6行目」の「Partial Class M_SHAINView」から「91行目」の「End Class」までをクラスと判定する。そして、プログラム解析処理部120は、クラスにおける「Private Sub」と「End Sub」との間を1つのメソッドとして判定して、クラス内のメソッド数をカウントする。上記した場合には、「"^((Public|Private|Protected|Friend|Overridable)(¥s))*((Shared|Shadows|Overrides|Overloads)(¥s))*(Function|Sub)¥s(¥w+?)¥((.*)¥)((¥s(As)¥s(.+))*)?"」及び「"^End¥s(Sub|Function)$"」が、それぞれ「メソッドの開始行」及び「メソッドの終了行」の正規表現として、例えば、図示しない記憶部に予め記憶されている。例えば、正規表現「"^((Public|Private|Protected|Friend|Overridable)(¥s))*((Shared|Shadows|Overrides|Overloads)(¥s))*(Function|Sub)¥s(¥w+?)¥((.*)¥)((¥s(As)¥s(.+))*)?"」は、「Private Sub」や「Private Function」などを検索対象の文字列とした正規表現である。さらに、プログラム解析処理部120は、クラスの修飾子及び継承元を、正規表現を用いて取得する。具体的には、プログラム解析処理部120は、正規表現を用いてクラスの開始行を取得し、クラスの開始行に含まれるクラス修飾子や継承元クラスを取得する。例えば、プログラム解析処理部120は、クラスの修飾子「Partial」及び継承元「BasePage」を、正規表現を用いて取得する。   For example, referring to FIG. 7A and FIG. 7B, the program analysis processing unit 120 converts “Partial Class M_SHAINView” in “Line 6” that matches the regular expression pattern to “End” in “Line 91”. Class up to “Class” is determined as a class. Then, the program analysis processing unit 120 determines that one method is between “Private Sub” and “End Sub” in the class, and counts the number of methods in the class. In the above case, "" ^ ((Public | Private | Protected | Friendend | Overridable) (\ s)) * ((Shared | Shadows | Overrides | Overloads) (\ s)) * (Function | Sub) | s (\ W +?) \ ((. *) \) ((\ S (As) \ s (. +)) *)? "" And "" ^ End \ s (Sub | Function) $ "" are stored in advance in, for example, a storage unit (not shown) as regular expressions of "method start line" and "method end line", respectively. . For example, the regular expression "" ^ ((Public | Private | Protected | Friendend | Overridable) (\ s)) * ((Shared | Shadows | Overrides | Overloads) (\ s)) * (Function | Sub) \ s (\ w +?) \ ((. *) \) ((\ s (As) \ s (. +)) *)? “” Is a regular expression that uses “Private Sub”, “Private Function”, or the like as a search target character string. Further, the program analysis processing unit 120 acquires the class modifier and the inheritance source using a regular expression. Specifically, the program analysis processing unit 120 acquires a class start line using a regular expression, and acquires a class qualifier and an inheritance source class included in the class start line. For example, the program analysis processing unit 120 acquires the class modifier “Partial” and the inheritance source “BasePage” using regular expressions.

そして、プログラム解析処理部120は、プログラムソースコードから取得したクラス情報に識別IDを付与して、解析データ記憶部110に格納する。例えば、プログラム解析処理部120は、図3に示すように、「識別ID:1001、ファイルパス:WebASMaster/M_SHAINView.vb、パッケージ名:WebAS、クラス名:M_SHAINView、開始行番号:6、終了行番号:91、メソッド数:5、修飾子:Partial、継承元:BasePage」をクラス解析結果として解析データ記憶部110に格納する。   Then, the program analysis processing unit 120 assigns an identification ID to the class information acquired from the program source code and stores it in the analysis data storage unit 110. For example, as illustrated in FIG. 3, the program analysis processing unit 120 displays “identification ID: 1001, file path: WebAMaster / M_SHAINView.vb, package name: WebAS, class name: M_SHAINView, start line number: 6, end line number. : 91, number of methods: 5, modifier: Partial, inheritance source: BasePage ”is stored in the analysis data storage unit 110 as a class analysis result.

同様に、プログラム解析処理部120は、図8−1〜図8−3に示す業務処理に関するプログラムソースコードや、図9−1及び図9−2に示すデータベース処理に関するプログラムソースコードなど、事前解析の対象プログラムとして利用者に指定されたプログラムソースコードをクラス解析して、解析結果を解析データ記憶部110に格納する(図3参照)。   Similarly, the program analysis processing unit 120 pre-analyzes the program source code related to the business process shown in FIGS. 8-1 to 8-3 and the program source code related to the database process shown in FIGS. 9-1 and 9-2. The program source code designated by the user as the target program is subjected to class analysis, and the analysis result is stored in the analysis data storage unit 110 (see FIG. 3).

そして、プログラム解析処理部120は、クラスに含まれた各メソッドの解析を実行する。具体的には、プログラム解析処理部120は、正規表現を用いて判定したメソッドごとに、メソッドの開始行に含まれるメソッド名、パラメータ、戻り値型などを、正規表現を用いて取得する。例えば、プログラム解析処理部120は、図7−1の「9行目」に示す「Private Sub Page_Load」と「25行目」に示す「End Sub」との間に記載されたメソッドの解析を実行する。そして、プログラム解析処理部120は、解析結果「ファイル名:WebASMaster/M_SHAINView.vb、クラス名:M_SHAINView、メソッド名:Page_Load、パラメータ:Object,EventArgs、戻り値型:Nothing、開始行番号:9、終了行番号:25」を「連番:2001」に対応付けてメソッド解析結果として解析データ記憶部110に格納する(図4参照)。同様に、プログラム解析処理部120は、各クラスに含まれる全てのメソッドを解析して、解析結果を解析データ記憶部110に格納する。例えば、メソッドの解析に用いられる正規表現は、図示しない記憶部によって記憶されている。   Then, the program analysis processing unit 120 analyzes each method included in the class. Specifically, the program analysis processing unit 120 acquires, for each method determined using the regular expression, the method name, parameter, return value type, and the like included in the method start line using the regular expression. For example, the program analysis processing unit 120 executes the analysis of the method described between “Private Sub Page_Load” shown in “9th line” and “End Sub” shown in “25th line” in FIG. To do. Then, the program analysis processing unit 120 analyzes the analysis result “file name: WebASMMaster / M_SHAINView.vb, class name: M_SHAINView, method name: Page_Load, parameter: Object, EventArgs, return value type: Nothing, start line number: 9, and end. “Line number: 25” is associated with “serial number: 2001” and stored in the analysis data storage unit 110 as a method analysis result (see FIG. 4). Similarly, the program analysis processing unit 120 analyzes all the methods included in each class and stores the analysis results in the analysis data storage unit 110. For example, regular expressions used for method analysis are stored in a storage unit (not shown).

さらに、プログラム解析処理部120は、メソッドに定義されたインスタンスの解析を実行する。具体的には、プログラム解析処理部120は、メソッドの開始行と終了行との間に定義されたインスタンスの宣言行番号、インスタンスの変数名、宣言データ型又はクラス型を、正規表現を用いて取得する。例えば、プログラム解析処理部120は、図7−1の「31行目」に示す「Private Sub InsertButton_Click」と「59行目」に示す「End Sub」との間に記載されたメソッドに定義されたインスタンスの解析を実行する。そして、プログラム解析処理部120は、インスタンス解析結果として、図5の「連番:3001」及び「連番:3001」に示す各種情報を解析データ記憶部110に格納する。同様に、プログラム解析処理部120は、各メソッドに定義されたインスタンスを解析して、解析結果を解析データ記憶部110に格納する(図5参照)。例えば、インスタンスの解析に用いられる正規表現は、図示しない記憶部によって記憶されている。   Further, the program analysis processing unit 120 executes analysis of the instance defined in the method. Specifically, the program analysis processing unit 120 uses a regular expression to express an instance declaration line number, an instance variable name, a declaration data type, or a class type defined between the start line and end line of a method. get. For example, the program analysis processing unit 120 is defined in a method described between “Private Sub InsertButton_Click” shown in “Line 31” and “End Sub” shown in “59th line” in FIG. Perform instance analysis. Then, the program analysis processing unit 120 stores various types of information shown in “serial number: 3001” and “serial number: 3001” in FIG. 5 in the analysis data storage unit 110 as the instance analysis result. Similarly, the program analysis processing unit 120 analyzes the instance defined in each method, and stores the analysis result in the analysis data storage unit 110 (see FIG. 5). For example, a regular expression used for instance analysis is stored in a storage unit (not shown).

また、さらに、プログラム解析処理部120は、メソッドごとの呼出し先の解析を実行する。具体的には、プログラム解析処理部120は、メソッドごとに、呼出し先クラス、呼出し先メソッド、呼出し先メソッドパラメータ、呼出し行番号などを、正規表現を用いて取得する。例えば、プログラム解析処理部120は、図7−1の「31行目」に示す「Private Sub InsertButton_Click」と「59行目」に示す「End Sub」との間に記載されたメソッドの呼出し先の解析を実行する。そして、プログラム解析処理部120は、メソッド呼出し解析結果として、図6の「識別ID:4001」〜「識別ID:4004」に示す各種情報を解析データ記憶部110に格納する。同様に、プログラム解析処理部120は、各メソッドの呼出し先を解析して、解析結果を解析データ記憶部110に格納する(図6参照)。例えば、呼出し先の解析に用いられる正規表現は、図示しない記憶部によって記憶されている。   Furthermore, the program analysis processing unit 120 performs analysis of a call destination for each method. Specifically, the program analysis processing unit 120 acquires a call destination class, a call destination method, a call destination method parameter, a call line number, and the like for each method using a regular expression. For example, the program analysis processing unit 120 may call the destination of the method described between “Private Sub InsertButton_Click” shown in “Line 31” and “End Sub” shown in “59th line” in FIG. Run the analysis. Then, the program analysis processing unit 120 stores various types of information shown in “identification ID: 4001” to “identification ID: 4004” in FIG. 6 in the analysis data storage unit 110 as a method call analysis result. Similarly, the program analysis processing unit 120 analyzes the call destination of each method and stores the analysis result in the analysis data storage unit 110 (see FIG. 6). For example, a regular expression used for analysis of a call destination is stored in a storage unit (not shown).

プログラム解析処理部120は、利用者によって指定された解析ファイルパスの配下にある全てのプログラムソースコードについて、上述した各解析を実行して、解析結果を解析データ記憶部110に格納する。また、同時に、プログラム解析処理部120は、解析したプログラムソースコードを解析データ記憶部110に格納する。   The program analysis processing unit 120 executes each analysis described above for all program source codes under the analysis file path specified by the user, and stores the analysis result in the analysis data storage unit 110. At the same time, the program analysis processing unit 120 stores the analyzed program source code in the analysis data storage unit 110.

図1に戻って、プログラム検査処理部130は、複数のプログラムそれぞれが、当該複数のプログラムそれぞれの作成規定であるプログラム規定に則しているか否かを検査する。具体的には、プログラム検査処理部130は、プログラム検査規則140によって記憶されたプログラムチェックルールを用いて、解析データ記憶部110に記憶された検査対象プログラムを検査する。そして、プログラム検査処理部130は、検査結果を検査結果記憶部170に格納する。   Returning to FIG. 1, the program inspection processing unit 130 inspects whether each of the plurality of programs conforms to a program rule that is a creation rule of each of the plurality of programs. Specifically, the program inspection processing unit 130 inspects the inspection target program stored in the analysis data storage unit 110 using the program check rule stored by the program inspection rule 140. Then, the program inspection processing unit 130 stores the inspection result in the inspection result storage unit 170.

ここで、プログラム検査規則140によって記憶されるプログラムチェックルールについて、図10−1〜図12を用いて説明する。なお、プログラムチェックルールは、設計者による処理によって予めプログラム検査規則140に記憶されている。図10−1及び図10−2は、プログラムの実装方法に関する検査に用いられるプログラムチェックルールの一例を説明するための図である。なお、図10−1及び図10−2は、プログラムの実装方法に関する検査に用いられる1つのプログラムチェックルールを示している。例えば、プログラムの実装方法に関する検査に用いられるプログラムチェックルールには、図10−1及び図10−2に示すように、「IF句のネストが閾値を越えていないか」が規定されている。例を挙げると、プログラムの実装方法に関する検査に用いられるプログラムチェックルールには、「IF句のネストが3階層以下であるか否か」などが規定される。   Here, the program check rule stored by the program inspection rule 140 will be described with reference to FIGS. Note that the program check rule is stored in the program inspection rule 140 in advance by processing by the designer. FIG. 10A and FIG. 10B are diagrams for explaining an example of a program check rule used for inspection related to a program mounting method. FIGS. 10A and 10B show one program check rule used for the inspection related to the program mounting method. For example, as shown in FIGS. 10A and 10B, “whether the nesting of the IF phrase exceeds the threshold” is defined in the program check rule used for the inspection related to the program implementation method. For example, in the program check rule used for the inspection related to the program implementation method, “whether the IF clause is nested in three or less layers” or the like is defined.

図11は、プログラムの継承に関する検査に用いられるプログラムチェックルールの一例を説明するための図である。例えば、プログラムの継承元の検査に用いられるプログラムチェックルールには、図11に示すように、「プログラム種別に応じた親クラスを継承しているか」が規定されている。例を挙げると、プログラムの継承元の検査に用いられるプログラムチェックルールには、「Logic層のプログラムがBaseLogicClassを継承しているか否か」などが規定される。   FIG. 11 is a diagram for explaining an example of a program check rule used for a check relating to program inheritance. For example, in the program check rule used for checking the inheritance source of the program, as shown in FIG. 11, “whether the parent class corresponding to the program type is inherited” is defined. For example, in the program check rule used for the inspection of the inheritance source of the program, “whether the program in the Logic layer inherits the BaseLogicClass” or the like is defined.

図12は、プログラムの呼出し方法に関する検査に用いられるプログラムチェックルールの一例を説明するための図である。例えば、プログラムの呼出し方法に関する検査に用いられるプログラムチェックルールには、図12に示すように、「ループ内でSQLを実行している箇所が無いか」が規定されている。例を挙げると、プログラムの呼出し方法に関する検査に用いられるプログラムチェックルールには、「For句の中にSQL発行処理が記載されているか否か」などが規定される。   FIG. 12 is a diagram for explaining an example of the program check rule used for the inspection related to the program calling method. For example, in the program check rule used for the inspection relating to the program calling method, as shown in FIG. 12, “whether there is no place where SQL is executed in the loop” is defined. For example, in the program check rule used for the inspection relating to the program calling method, “whether or not the SQL issuing process is described in the For phrase” is defined.

例えば、プログラム検査処理部130は、図10−1〜図12に示すプログラムチェックルールを用いて、図7−1〜図9−2に示すプログラムソースコードを検査する。ここで、プログラム検査処理部130は、検査内容に応じて、図3〜図6に示す解析結果を参照して、プログラムソースコードの検査を実行する。例えば、図10−1及び図10−2に示すプログラムの実装方法に関する検査を実行する場合には、プログラム検査処理部130は、図4に示すメソッド解析結果を参照して、メソッドごとにIF句内のネストの検査を実行する。   For example, the program inspection processing unit 130 inspects the program source code shown in FIGS. 7-1 to 9-2 using the program check rules shown in FIGS. Here, the program inspection processing unit 130 executes the inspection of the program source code with reference to the analysis results shown in FIGS. For example, when executing the inspection relating to the program mounting method shown in FIGS. 10A and 10B, the program inspection processing unit 130 refers to the method analysis result shown in FIG. Performs a check for nested within.

図1に戻って、フレームワーク検査処理部150は、プログラム解析処理部120によって解析された複数のプログラム間の関係がフレームワークの仕様規定であるフレームワーク規定に則した関係であるか否かを検査する。具体的には、フレームワーク検査処理部150は、解析データ記憶部110によって記憶された事前解析の解析結果を用いて、各プログラムの呼出関係や継承関係、或いは、共通して用いられる部品の利用方法の適合性などがフレームワーク規定に則しているか否かを検査する。例えば、フレームワーク検査処理部150は、複数のプログラムの呼出し順が、アプリケーションが実行される際の呼出し順であるか否かを検査する。なお、どのような検査を実行するかについては、利用者が任意に決定することができる。例えば、予め設定された全てのフレームワーク規定について検査を実行する場合であってもよいし、利用者によって任意に選択されたフレームワーク規定について検査を実行する場合であってもよい。また、利用者が新たに定義したフレームワーク規定について検査を実行する場合であってもよい。   Returning to FIG. 1, the framework inspection processing unit 150 determines whether the relationship between a plurality of programs analyzed by the program analysis processing unit 120 is a relationship in accordance with a framework rule that is a framework specification rule. inspect. Specifically, the framework inspection processing unit 150 uses the analysis result of the pre-analysis stored in the analysis data storage unit 110 to use the calling relationship or inheritance relationship of each program or use of commonly used components. Check whether the conformity of the method conforms to the framework regulations. For example, the framework inspection processing unit 150 inspects whether or not the calling order of a plurality of programs is the calling order when the application is executed. Note that the user can arbitrarily determine what kind of inspection is performed. For example, it may be a case where inspection is performed for all the framework rules set in advance, or a case where inspection is performed for a framework rule arbitrarily selected by the user. Moreover, it may be a case where an inspection is executed for a framework rule newly defined by the user.

ここで、フレームワーク検査処理部150は、プログラム検査処理部130の検査結果に応じて、フレームワーク規定に基づく検査の内容を決定する。具体的には、フレームワーク検査処理部150は、プログラム検査処理部130による検査において、プログラム規定に則して作成されていると判定されたプログラム数の全プログラム数に対する割合が所定の閾値を超えていることを条件に、フレームワーク規定に基づく検査を実行する。   Here, the framework inspection processing unit 150 determines the content of the inspection based on the framework rules according to the inspection result of the program inspection processing unit 130. Specifically, in the inspection by the program inspection processing unit 130, the framework inspection processing unit 150 has a ratio of the number of programs determined to be created in accordance with the program rules exceeding the predetermined threshold. On the condition that the inspection is based on the framework regulations.

例えば、フレームワーク検査処理部150は、検査結果記憶部170によって記憶されたプログラム検査処理部130の処理結果を参照して、プログラム規定に則して作成されていると判定されたプログラム数の全プログラム数に対する割合が80%を超えていた場合に、検査を実行する。すなわち、フレームワーク検査処理部150は、全プログラムにおいて、品質がNGである(不良である)プログラムの割合が所定の閾値を超えた場合には、プログラムのコーディングレベルが低いと判定して、フレームワークに関する検査を実行しない。   For example, the framework inspection processing unit 150 refers to the processing result of the program inspection processing unit 130 stored in the inspection result storage unit 170, and the total number of programs determined to be created in accordance with the program rules. The inspection is executed when the ratio to the number of programs exceeds 80%. That is, the framework inspection processing unit 150 determines that the coding level of the program is low when the ratio of the programs whose quality is NG (bad) exceeds a predetermined threshold in all the programs, Do not perform work inspection.

フレームワークに関する検査を実行する場合には、フレームワーク検査処理部150は、フレームワーク検査規則によって記憶されたフレームワークルールを用いて、検査を実行する。ここで、フレームワーク検査規則160によって記憶されたフレームワークルールについて、図13−1〜図13−3を用いて説明する。図13−1〜図13−3は、プログラムの呼出し順に関するフレームワークルールの一例を説明するための図である。なお、図13−1〜図13−3は、プログラムの呼出し順に関する検査に用いられる1つのフレームワークルールを示している。なお、フレームワークルールは、設計者による処理によって予めフレームワーク検査規則160に記憶されている。   When executing the inspection related to the framework, the framework inspection processing unit 150 executes the inspection using the framework rule stored by the framework inspection rule. Here, the framework rules stored by the framework inspection rules 160 will be described with reference to FIGS. 13-1 to 13-3. FIG. 13A to FIG. 13C are diagrams for explaining an example of the framework rule regarding the calling order of programs. FIG. 13A to FIG. 13C show one framework rule used for checking the program call order. The framework rules are stored in advance in the framework inspection rules 160 by processing by the designer.

例えば、プログラムの呼出し順に関するフレームワークルールには、図13−1に示すように、「画面クラス一覧の取得」、「画面クラス内メソッド一覧の取得」、「メソッド内インスタンス一覧の取得」及び「呼出メソッド取得」を順次、再帰的に実行することが定義されている。そして、プログラムの呼出し順に関するフレームワークルールには、図13−2及び図13−3に示すように、「呼出し先クラスが正しいかチェック」することが定義されている。呼出し先クラスのチェックとしては、例えば、図13−2に示すように、「View(画面処理)クラスのメソッドからはManager(業務処理)クラスか部品クラスのメソッドのみ呼出可能」とするチェック項目が定義されている。   For example, as shown in FIG. 13A, framework rules relating to the calling order of programs include “obtain screen class list”, “obtain screen class method list”, “obtain method instance list”, and “ It is defined that “call method acquisition” is executed sequentially and recursively. The framework rules relating to the calling order of programs define that “check whether the call destination class is correct” as shown in FIGS. 13-2 and 13-3. For example, as shown in FIG. 13-2, a check item that “only a Manager (business process) class or a component class method can be called from a View (screen processing) class method” is available. Is defined.

例えば、フレームワーク検査処理部150は、図13−1〜図13−3に示すフレームワークルールを用いて、複数のプログラム間の呼出し順を検査する。例を挙げると、フレームワーク検査処理部150は、まず、フレームワーク検査規則160から図13−1〜図13−3に示すフレームワークルールを読み出す。そして、フレームワーク検査処理部150は、フレームワークルールに定義されているように、画面処理のクラス一覧を解析データ記憶部110から取得する。例えば、フレームワーク検査処理部150は、解析データ記憶部110から、図3に示すクラス解析結果から、画面処理のクラス「M_SHAINView」を取得する。   For example, the framework inspection processing unit 150 uses the framework rules shown in FIGS. 13-1 to 13-3 to inspect the calling order between a plurality of programs. For example, the framework inspection processing unit 150 first reads out the framework rules shown in FIGS. 13-1 to 13-3 from the framework inspection rules 160. The framework inspection processing unit 150 acquires a screen processing class list from the analysis data storage unit 110 as defined in the framework rules. For example, the framework inspection processing unit 150 acquires the screen processing class “M_SHAINView” from the analysis data storage unit 110 from the class analysis result illustrated in FIG. 3.

そして、フレームワーク検査処理部150は、取得したクラスのメソッド一覧を取得する。例えば、フレームワーク検査処理部150は、図4に示すメソッド解析結果から、取得したクラス「M_SHAINView」のメソッド「Page_Load」、「InsertButton_Click」、「UpdateButton_Click」「DeleteButton_Click」及び「ClearButton_Click」を取得する。   Then, the framework inspection processing unit 150 acquires a method list of the acquired class. For example, from the method analysis result shown in FIG.

その後、フレームワーク検査処理部150は、取得したメソッド内のインスタンス一覧を取得する。例えば、フレームワーク検査処理部150は、図5に示すインスタンス解析結果から、取得したメソッド「InsertButton_Click」のインスタンスである「連番:3001」及び「連番:3002」を取得する。   Thereafter, the framework inspection processing unit 150 acquires a list of instances in the acquired method. For example, the framework inspection processing unit 150 acquires “serial number: 3001” and “serial number: 3002” that are instances of the acquired method “InsertButton_Click” from the instance analysis result shown in FIG.

そして、フレームワーク検査処理部150は、取得したインスタンスの呼出し先メソッドを順番に取得して、呼出し先が正しいか否かを検査する。例えば、フレームワーク検査処理部150は、図6に示すメソッド呼出し解析結果から、取得したインスタンスの呼出し先クラス及び呼出し先メソッドを順次取得する。すなわち、フレームワーク検査処理部150は、図6に示す識別ID「4001」〜「4004」それぞれに対応付けられた呼出し先クラス及び呼出し先メソッドを順次取得して、呼出し先が正しいか否かを検査する。   Then, the framework inspection processing unit 150 sequentially acquires the call destination methods of the acquired instances, and checks whether the call destination is correct. For example, the framework inspection processing unit 150 sequentially acquires the call destination class and the call destination method of the acquired instance from the method call analysis result illustrated in FIG. That is, the framework inspection processing unit 150 sequentially acquires the call destination class and the call destination method associated with each of the identification IDs “4001” to “4004” illustrated in FIG. 6 to determine whether the call destination is correct. inspect.

例を挙げると、フレームワーク検査処理部150は、図6に示す「識別ID:4003」において「クラス:M_SHAINView、メソッド:InsertButton_Click」の呼出し先が「クラス:M_SHAINManager、メソッド:Entryshain」となっていることから、呼出し順が正しいと判定する。ここで、仮に、「クラス:M_SHAINView、メソッド:InsertButton_Click」の呼出し先が「クラス:M_SHAINLogic」であった場合には、フレームワーク検査処理部150は、呼出し順が正しくないと判定する。   For example, in the “identification ID: 4003” illustrated in FIG. 6, the framework inspection processing unit 150 calls “class: M_SHAINView, method: InsertButton_Click” as “class: M_SHAINManager, method: Entrychain”. Therefore, it is determined that the calling order is correct. Here, if the call destination of “class: M_SHAINView, method: InsertButton_Click” is “class: M_SHAINLogic”, the framework inspection processing unit 150 determines that the calling order is not correct.

そして、フレームワーク検査処理部150は、次に、取得した呼出し先メソッド「Entryshain」のインスタンス一覧を取得して、上述した処理と同様の処理を実行して、呼出し先が正しいか否かを検査する。すなわち、フレームワーク検査処理部150は、図5のインスタンス解析結果から連番「3003」〜「3006」のインスタンスを取得して、図6に示す識別ID「4005」〜「4012」それぞれの呼出し先クラス及び呼出し先メソッドを取得し、それぞれの呼出し先が正しいか否かを検査する。このようにして、フレームワーク検査処理部150は、画面処理のメソッドから順次呼出される全ての呼出しメソッドの呼出し順がフレームワークルールに則しているか否かを検査する。フレームワーク検査処理部150は、上述した一連の処理を、取得したクラスの全てのメソッドに対して実行し、検査結果を検査結果記憶部170に格納する。   Then, the framework inspection processing unit 150 acquires an instance list of the acquired call destination method “Entrychain”, performs the same processing as the above-described processing, and checks whether the call destination is correct. To do. That is, the framework inspection processing unit 150 acquires the instances of the serial numbers “3003” to “3006” from the instance analysis result of FIG. 5 and calls each of the identification IDs “4005” to “4012” illustrated in FIG. Get class and callee method and check whether each callee is correct. In this way, the framework inspection processing unit 150 inspects whether the calling order of all the calling methods sequentially called from the screen processing method is in accordance with the framework rule. The framework inspection processing unit 150 executes the above-described series of processing for all the methods of the acquired class, and stores the inspection result in the inspection result storage unit 170.

図1に戻って、検査結果通知処理部180は、検査結果記憶部170によって記憶されたプログラムの検査結果又はフレームワークの検査結果を図示しない表示部に検査結果レポートとして表示させる。図14−1及び図14−2は、検査結果レポートの一例を説明するための図である。   Returning to FIG. 1, the inspection result notification processing unit 180 displays the inspection result of the program or the inspection result of the framework stored in the inspection result storage unit 170 as an inspection result report on a display unit (not shown). 14A and 14B are diagrams for explaining an example of the inspection result report.

例えば、検査結果通知処理部180は、図14−1に示すように、ファイル、行、ルールID、指摘内容、カテゴリ、重要度、分類及び結果を対応付けた検査結果の一覧をチェック結果レポートとして図示しない表示部に表示させる。また、検査結果通知処理部180は、図14−2に示すように、全ての検査結果を総合した総合品質評価を検査結果レポートして表示部に表示させる。図14−2においては、検査結果が重大な欠陥か又は軽度な欠陥か、或いは、指摘程度であるのかを判定したレポートを示している。また、図14−2においては、プログラムのカテゴリ別に検査結果を集約したレポートを示している。このような検査結果レポートを表示部に表示させることによって、設計者が以後に施すべき措置を的確に判断することが可能になる。   For example, as shown in FIG. 14A, the inspection result notification processing unit 180 uses a list of inspection results associating files, lines, rule IDs, indication contents, categories, importance levels, classifications, and results as a check result report. It is displayed on a display unit (not shown). Further, as shown in FIG. 14B, the inspection result notification processing unit 180 reports an overall quality evaluation obtained by integrating all the inspection results, and displays it on the display unit. FIG. 14B shows a report that determines whether the inspection result is a serious defect, a minor defect, or an indication level. Further, FIG. 14-2 shows a report in which the inspection results are aggregated by program category. By displaying such an inspection result report on the display unit, it is possible to accurately determine measures to be taken by the designer thereafter.

次に、図15〜図17を用いて、実施例1に係るプログラム規則検査装置100の処理の手順を説明する。図15は、実施例1に係るプログラム規則検査装置100によるプログラムの事前解析処理の手順を説明するためのフローチャートである。   Next, a processing procedure of the program rule inspection apparatus 100 according to the first embodiment will be described with reference to FIGS. FIG. 15 is a flowchart for explaining the procedure of the program pre-analysis process performed by the program rule inspection apparatus 100 according to the first embodiment.

図15に示すように、実施例1に係るプログラム規則検査装置100においては、プログラム解析処理部120が検査対象プログラムから、ソース情報を取得する(ステップS101)。そして、プログラム解析処理部120は、取得したソースごとのクラス情報を取得する(ステップS102)。その後、プログラム解析処理部120は、取得したクラスごとのメソッド情報を取得する(ステップS103)。   As shown in FIG. 15, in the program rule inspection apparatus 100 according to the first embodiment, the program analysis processing unit 120 acquires source information from the inspection target program (step S101). And the program analysis process part 120 acquires the class information for every acquired source (step S102). Thereafter, the program analysis processing unit 120 acquires method information for each acquired class (step S103).

さらに、プログラム解析処理部120は、取得したメソッドに呼出されるメソッドの情報を取得して(ステップS104)、各メソッドの処理内容を取得する(ステップS105)。そして、さらに、プログラム解析処理部120は、取得した各情報を解析データ記憶部110に保存して(ステップS106)、処理を終了する。   Further, the program analysis processing unit 120 acquires information on a method called by the acquired method (Step S104), and acquires processing contents of each method (Step S105). Further, the program analysis processing unit 120 stores the acquired information in the analysis data storage unit 110 (step S106), and ends the process.

図16は、実施例1に係るプログラム規則検査装置100による処理の手順を説明するためのフローチャートである。なお、図16においては、プログラム解析処理部120による事前解析処理が終了した後の処理について示している。   FIG. 16 is a flowchart for explaining the procedure of the process performed by the program rule inspection device 100 according to the first embodiment. Note that FIG. 16 shows processing after the pre-analysis processing by the program analysis processing unit 120 is completed.

図16に示すように、実施例1に係るプログラム規則検査装置100においては、検査対象プログラムが入力されると(ステップS201肯定)、プログラム検査処理部130が図示しない記憶部からフレームワークルール一覧を取得し(ステップS202)、検査対象プログラムにフレームワークルールが存在するか否かを判定する(ステップS203)。ここで、検査対象プログラムにフレームワークルールが存在しなかった場合には(ステップS203否定)、プログラム検査処理部130は、結果を検査結果記憶部170に保存して(ステップS213)、処理を終了する。   As shown in FIG. 16, in the program rule inspection apparatus 100 according to the first embodiment, when a program to be inspected is input (Yes at Step S201), the program inspection processing unit 130 creates a framework rule list from a storage unit (not shown). It is acquired (step S202), and it is determined whether or not a framework rule exists in the inspection target program (step S203). Here, when the framework rule does not exist in the inspection target program (No at Step S203), the program inspection processing unit 130 stores the result in the inspection result storage unit 170 (Step S213), and ends the processing. To do.

一方、検査対象プログラムにフレームワークルールが存在した場合には(ステップS203肯定)、プログラム検査処理部130は、プログラムチェックルール一覧をプログラム検査規則140から取得して(ステップS204)、チェックルールが存在するか否かを判定する(ステップS205)。ここで、チェックルールが存在しなかった場合には(ステップS205否定)、フレームワーク検査処理部150が、フレームワークチェックモジュールを実行する(ステップS210)。   On the other hand, when the framework rule exists in the inspection target program (Yes at Step S203), the program inspection processing unit 130 acquires the program check rule list from the program inspection rule 140 (Step S204), and the check rule exists. It is determined whether or not to perform (step S205). Here, when the check rule does not exist (No at Step S205), the framework inspection processing unit 150 executes the framework check module (Step S210).

一方、チェックルールが存在した場合には(ステップS205肯定)、プログラム検査処理部130は、プログラムチェックモジュールを実行して(ステップS206)、結果を検査結果記憶部170に保存する(ステップS207)。そして、全てのチェックルールについてチェックされると(ステップS208肯定)、フレームワーク検査処理部150がプログラム単体のNGが所定の割合以下か否かを判定する(ステップS209)。   On the other hand, when the check rule exists (Yes at Step S205), the program inspection processing unit 130 executes the program check module (Step S206) and stores the result in the inspection result storage unit 170 (Step S207). When all the check rules are checked (Yes at Step S208), the framework inspection processing unit 150 determines whether or not NG of a single program is equal to or less than a predetermined ratio (Step S209).

ここで、プログラム単体のNGが所定の割合を越えていた場合には(ステップS209否定)、フレームワーク検査処理部150は、フレームワークに関する処理を実行していない旨の結果を検査結果記憶部170に保存して(ステップS214)、処理を終了する。一方、プログラム単体のNGが所定の割合以下であった場合には(ステップS209肯定)、フレームワーク検査処理部150は、フレームワークチェックモジュールを実行して(ステップS210)、結果を検査結果記憶部170に保存する(ステップS211)。   Here, when NG of a single program exceeds a predetermined ratio (No at Step S209), the framework inspection processing unit 150 indicates a result indicating that the processing related to the framework is not executed as the inspection result storage unit 170. (Step S214), and the process ends. On the other hand, when the NG of the single program is equal to or less than the predetermined ratio (Yes at Step S209), the framework inspection processing unit 150 executes the framework check module (Step S210), and the result is stored in the inspection result storage unit. It is stored in 170 (step S211).

そして、全てのフレームワークルールについてチェックされると(ステップS212肯定)、実施例1に係るプログラム規則検査装置100は、処理を終了する。なお、実施例1に係るプログラム規則検査装置100は、検査対象プログラムが入力されるまで待機状態である(ステップS201否定)。また、実施例1に係るプログラム規則検査装置100は、ステップS208の判定において、全てのチェックルールについてチェックが終了するまで、プログラムの検査を実行する(ステップS208否定)。また、実施例1に係るプログラム規則検査装置100は、ステップS212の判定において、全てのフレームワークルールについてチェックが終了するまで、フレームワークの検査を実行する(ステップS212否定)。   When all the framework rules are checked (Yes at step S212), the program rule inspection apparatus 100 according to the first embodiment ends the process. The program rule inspection apparatus 100 according to the first embodiment is in a standby state until an inspection target program is input (No at Step S201). Further, the program rule inspection apparatus 100 according to the first embodiment executes the program inspection until all the check rules are checked in the determination of step S208 (No in step S208). In addition, the program rule inspection apparatus 100 according to the first embodiment performs the framework inspection until all the framework rules are checked in the determination in step S212 (No in step S212).

図17は、実施例1に係るプログラム規則検査装置100によるフレームワーク検査処理の手順を説明するためのフローチャートである。なお、図17に示すフレームワーク検査処理の手順は、図16に示すステップS210に対応する。図17に示すように、実施例1に係るプログラム規則検査装置100においては、フレームワーク検査処理部150が、解析データ記憶部110から検査対象プログラムのクラス一覧を取得して(ステップS301)、クラス内のメソッド一覧を取得する(ステップS302)。そして、フレームワーク検査処理部150は、取得したメソッド内のインスタンス一覧を取得して(ステップS303)、インスタンスごとの呼出し先メソッドを取得する(ステップS304)。   FIG. 17 is a flowchart for explaining the procedure of the framework inspection process performed by the program rule inspection apparatus 100 according to the first embodiment. The procedure of the framework inspection process shown in FIG. 17 corresponds to step S210 shown in FIG. As shown in FIG. 17, in the program rule inspection apparatus 100 according to the first embodiment, the framework inspection processing unit 150 acquires a class list of inspection target programs from the analysis data storage unit 110 (step S301). A method list is acquired (step S302). The framework inspection processing unit 150 acquires an instance list in the acquired method (step S303), and acquires a call destination method for each instance (step S304).

その後、フレームワーク検査処理部150は、取得した呼出し先メソッドの呼出し先が正しいか否かを検査して(ステップS305)、検査結果を検査結果記憶部170に保存する(ステップS306)。さらに、フレームワーク検査処理部150は、呼出し先メソッドのインスタンス一覧を取得して(ステップS307)、呼出すメソッドがあるか否かの判定を行う(ステップS308)。   Thereafter, the framework inspection processing unit 150 checks whether or not the call destination of the acquired call destination method is correct (step S305), and stores the test result in the test result storage unit 170 (step S306). Further, the framework inspection processing unit 150 acquires an instance list of the called method (step S307), and determines whether there is a method to be called (step S308).

ここで、呼出すメソッドがある場合には(ステップS308肯定)、フレームワーク検査処理部150は、ステップS304に戻って、インスタンスごとの呼出し先メソッドを取得する。一方、呼出すメソッドがない場合には(ステップS308否定)、フレームワーク検査処理部150は、処理を終了する。   If there is a method to be called (Yes at Step S308), the framework inspection processing unit 150 returns to Step S304 and acquires a called method for each instance. On the other hand, when there is no method to call (No at Step S308), the framework inspection processing unit 150 ends the process.

上述したように、実施例1によれば、プログラム解析処理部120が複数の検査対象プログラム間の関係を解析する。そして、フレームワーク検査処理部150が、プログラム解析処理部120によって解析された複数の検査対象プログラム間の関係がフレームワークの仕様規定であるフレームワーク規定に則した関係であるか否かを検査する。従って、実施例1に係るプログラム規則検査装置100は、複数のプログラム間の関連について検査を行うことで、複数階層に跨る処理が適切に実行されているか否かを判定することができ、システム全体を対象としたフレームワークルールの検査を行うことを可能にする。さらに、実施例1に係るプログラム規則検査装置100は、システム全体を対象としたフレームワークルールの検査を行うことにより、結果として、販売されるソフトウェアの品質を向上させることを可能にする。   As described above, according to the first embodiment, the program analysis processing unit 120 analyzes the relationship between a plurality of inspection target programs. Then, the framework inspection processing unit 150 inspects whether or not the relationship between the plurality of inspection target programs analyzed by the program analysis processing unit 120 is a relationship in accordance with a framework rule that is a framework specification rule. . Therefore, the program rule inspection apparatus 100 according to the first embodiment can determine whether or not processing across multiple hierarchies is appropriately executed by checking the association between a plurality of programs, and the entire system It is possible to inspect framework rules for the target. Furthermore, the program rule inspection apparatus 100 according to the first embodiment makes it possible to improve the quality of software to be sold as a result by inspecting framework rules for the entire system.

また、実施例1によれば、フレームワーク検査処理部150は、アプリケーションが実行される際に複数の検査対象プログラムが呼出される順番を、フレームワークルールとして用いる。従って、実施例1に係るプログラム規則検査装置100は、複数のプログラム間に跨る呼出し関係、参照関係、及び継承関係が適切かどうかを判定することができる。   Further, according to the first embodiment, the framework inspection processing unit 150 uses the order in which a plurality of inspection target programs are called when an application is executed as a framework rule. Therefore, the program rule inspection apparatus 100 according to the first embodiment can determine whether the calling relationship, the reference relationship, and the inheritance relationship across a plurality of programs are appropriate.

また、実施例1によれば、プログラム検査処理部130が、複数の検査対象プログラムそれぞれが、当該プログラムそれぞれの作成規定であるプログラムチェックルールに則しているか否かを検査する。そして、フレームワーク検査処理部150は、プログラム検査処理部130の検査結果に応じて、複数の検査対象プログラムに対する処理の内容を決定する。従って、実施例1に係るプログラム規則検査装置100は、プログラム単体の品質に応じて、臨機応変に処理を変更することができる。   Further, according to the first embodiment, the program inspection processing unit 130 inspects whether or not each of the plurality of inspection target programs conforms to a program check rule that is a creation rule of each of the programs. Then, the framework inspection processing unit 150 determines the contents of processing for a plurality of inspection target programs according to the inspection result of the program inspection processing unit 130. Therefore, the program rule inspection apparatus 100 according to the first embodiment can change the process flexibly according to the quality of a single program.

また、実施例1によれば、フレームワーク検査処理部150は、プログラム検査処理部130による検査において、プログラム規定に則して作成されていると判定されたプログラム数の全プログラム数に対する割合が所定の閾値を超えていることを条件に、フレームワーク規定に基づく検査を実行する。従って、実施例1に係るプログラム規則検査装置100は、検査対象プログラムに対して高精度の検査を実行することができる。また、実施例1に係るプログラム規則検査装置100は、効率のよい検査を実行することができる。   Further, according to the first embodiment, the framework inspection processing unit 150 has a predetermined ratio of the number of programs determined to be created according to the program rules in the inspection by the program inspection processing unit 130 to the total number of programs. The inspection based on the framework rule is executed on the condition that the threshold value is exceeded. Therefore, the program rule inspection apparatus 100 according to the first embodiment can execute a highly accurate inspection on the inspection target program. Further, the program rule inspection device 100 according to the first embodiment can execute an efficient inspection.

例えば、従来技術では、「プログラム記述の変数名が規約通りの命令になっているか否かの検査」、「プログラム記述の文法記述が規約に則しているか否かの検査」、「プログラム記述の繰り返し処理記述の階層が規定数以下になっているか否かの検査」、「規約上、使用が許可されていない外部プログラムが使用されていないかの検査」、「他プログラムの処理メソッドの呼出方法の記述に誤りがないかの検査」などについて、プログラム単体を対象として検査されていたため、システム全体の検査が困難であった。   For example, in the prior art, “inspection of whether or not the variable name of the program description is a command according to the convention”, “inspection of whether or not the grammar description of the program description conforms to the convention”, “ "Check whether the hierarchy of repeated processing description is less than the specified number", "Check whether an external program that is not allowed to be used by convention is used", "How to call processing methods of other programs As for "inspection of whether there is an error in the description of", etc., since the program itself was inspected, the entire system was difficult to inspect.

本実施例に係るプログラム規則検査装置100では、プログラム解析処理部120が検査対象のプログラム間の関係を事前に解析する。そして、フレームワーク検査処理部150が、プログラム解析処理部120によって解析されたプログラム間の関係を対象としてフレームワークに関する検査を行う。このことにより、本実施例に係るプログラム規則検査装置100では、ソフトウェアに含まれるプログラムソースコードの呼出関係や継承関係、或いは、共通して用いられる部品の利用方法の適合性など、従来技術では行えなかったシステム全体を対象としたフレームワークルールの検査を行うことが可能となる。   In the program rule inspection apparatus 100 according to the present embodiment, the program analysis processing unit 120 analyzes in advance the relationship between programs to be inspected. Then, the framework inspection processing unit 150 performs an inspection related to the framework for the relationship between programs analyzed by the program analysis processing unit 120. As a result, in the program rule inspection apparatus 100 according to the present embodiment, it is possible to perform in the prior art, such as the calling relationship or inheritance relationship of the program source code included in the software, or the suitability of the commonly used component usage method. It is possible to inspect framework rules for the entire system that did not exist.

図18は、実施例1に係るプログラム規則検査装置100によるフレームワーク検査の一例を模式的に示した図である。図18に示すように、実施例1に係るプログラム規則検査装置100は、画面処理に係るプログラムと、業務処理に係るプログラムと、データベース処理に係るプログラムとに跨る一連の処理において、その呼出し順を検査して、各階層に跨る処理が適切に実行されているか否かを判定することができ、ソフトウェア品質を向上させることが可能となる。   FIG. 18 is a diagram schematically illustrating an example of a framework inspection performed by the program rule inspection apparatus 100 according to the first embodiment. As illustrated in FIG. 18, the program rule inspection device 100 according to the first embodiment changes the calling order in a series of processes spanning a program related to screen processing, a program related to business processing, and a program related to database processing. It is possible to determine whether or not the processing across the layers is appropriately executed by checking, and it is possible to improve the software quality.

上述した実施例1では、フレームワークルールとして、プログラムの呼出し順を用いる場合について説明した。実施例2では、フレームワークルールとして、プログラムの処理順を用いる場合について説明する。   In the first embodiment described above, the case where the calling order of programs is used as the framework rule has been described. In the second embodiment, a case where the processing order of programs is used as a framework rule will be described.

実施例2においては、フレームワーク検査処理部150による処理の内容と、フレームワーク検査規則160によって記憶される内容とが実施例1とは異なる。以下、これらを中心に説明する。実施例2に係るプログラム規則検査装置100のフレームワーク検査処理部150は、プログラム解析処理部120によって解析された複数のプログラムの処理順が、アプリケーションが実行される際の処理順であるか否かを検査する。   In the second embodiment, the contents of processing by the framework inspection processing unit 150 and the contents stored by the framework inspection rule 160 are different from those in the first embodiment. Hereinafter, these will be mainly described. The framework inspection processing unit 150 of the program rule inspection device 100 according to the second embodiment determines whether the processing order of the plurality of programs analyzed by the program analysis processing unit 120 is the processing order when the application is executed. Inspect.

ここで、実施例2に係るフレームワーク検査処理部150によって用いられるフレームワークルールについて、図19−1及び図19−2を用いて説明する。図19−1及び図19−2は、プログラムの処理順に関するフレームワークルールの一例を説明するための図である。なお、図19−1及び図19−2は、プログラムの処理順に関する検査に用いられる1つのフレームワークルールを示している。なお、フレームワークルールは、設計者による処理によって予めフレームワーク検査規則160に記憶されている。   Here, the framework rules used by the framework inspection processing unit 150 according to the second embodiment will be described with reference to FIGS. 19A and 19B. FIG. 19A and FIG. 19B are diagrams for explaining an example of a framework rule regarding the processing order of programs. FIGS. 19A and 19B show one framework rule used for the inspection relating to the processing order of the program. The framework rules are stored in advance in the framework inspection rules 160 by processing by the designer.

例えば、プログラムの処理順に関するフレームワークルールには、図19−1に示すように、「画面クラス一覧の取得」、「画面クラス内メソッド一覧の取得」、「メソッド内インスタンス一覧の取得」及び「呼出メソッド取得」を順次、再帰的に実行することが定義されている。ここで、プログラムの処理順に関するフレームワークルールでは、図19−1に示すように、「呼出インスタンスを順に保持する」ことが定義されている。   For example, as shown in FIG. 19-1, the framework rules regarding the processing order of the program include “obtain screen class list”, “obtain screen class method list”, “obtain method instance list”, and “ It is defined that “call method acquisition” is executed sequentially and recursively. Here, in the framework rule regarding the processing order of the program, as shown in FIG. 19A, “hold call instances in order” is defined.

そして、プログラムの処理順に関するフレームワークルールには、図19−2に示すように、順に保持していた呼出インスタンスの「呼出し順序をチェック」することが定義されている。すなわち、プログラムの処理順の検査においては、呼出しインスタンスを呼出した順に保持しておき、その呼出し順序をチェックすることによって、プログラムの処理順の検査を実行する。   Further, as shown in FIG. 19-2, the framework rule relating to the processing order of the program defines that “check the calling order” of the calling instances held in order. That is, in the checking of the program processing order, the calling instances are held in the calling order, and the calling order is checked to check the processing order of the program.

例えば、フレームワーク検査処理部150は、図19−1〜図19−2に示すフレームワークルールを用いて、複数のプログラム間の処理順を検査する。ここで、フレームワーク検査処理部150は、呼出し順の検査時と同様に、クラス、メソッド及びインスタンスの一覧を順に取得する。例えば、フレームワーク検査処理部150は、画面処理のクラス「M_SHAINView」からメソッド「InsertButton_Click」のインスタンスである「連番:3001」及び「連番:3002」を取得する(図5参照)。   For example, the framework inspection processing unit 150 uses the framework rules shown in FIGS. 19A to 19B to inspect the processing order between a plurality of programs. Here, the framework inspection processing unit 150 sequentially obtains a list of classes, methods, and instances in the same manner as in the invocation order inspection. For example, the framework inspection processing unit 150 acquires “serial number: 3001” and “serial number: 3002” which are instances of the method “InsertButton_Click” from the class “M_SHAINView” of the screen processing (see FIG. 5).

そして、フレームワーク検査処理部150は、図6に示す識別ID「4001」〜「4004」に対応付けられた呼出し先クラス及び呼出し先メソッドを順次取得しながら、順に呼出しメソッドのチェックを実行する。ここで、識別ID「4003」において、呼出し先が「クラス:M_SHAINManager、メソッド:Entryshain」となっていることから、フレームワーク検査処理部150は、次に、識別ID「4005」」〜「4012」の呼出し先のメソッドを順にチェックすることとなる。   Then, the framework inspection processing unit 150 sequentially executes the call method check while sequentially obtaining the call destination class and the call destination method associated with the identification IDs “4001” to “4004” illustrated in FIG. Here, in the identification ID “4003”, since the call destination is “class: M_SHAINManager, method: Entrychain”, the framework inspection processing unit 150 next receives the identification IDs “4005” to “4012”. The methods to be called are checked in order.

実施例2に係るフレームワーク検査処理部150は、呼出し先のメソッドを順にチェックしながら順番を保持する。すなわち、実施例2に係るフレームワーク検査処理部150は、識別ID「4005」及び「4006」でログ出力処理が実行された後、識別ID「4007」でトランザクション処理が開始されることを識別する。このようにして、実施例2に係るフレームワーク検査処理部150は、画面処理から派生する一連の処理の処理順がフレームワークルールに則しているか否かを検査する。実施例2に係るフレームワーク検査処理部150は、上述した処理順の検査を、取得したクラスの全てのメソッドに対して実行し、検査結果を検査結果記憶部170に格納する。   The framework inspection processing unit 150 according to the second embodiment maintains the order while sequentially checking the method of the call destination. That is, the framework inspection processing unit 150 according to the second embodiment identifies that the transaction processing is started with the identification ID “4007” after the log output processing is executed with the identification IDs “4005” and “4006”. . In this way, the framework inspection processing unit 150 according to the second embodiment inspects whether or not the processing order of a series of processes derived from the screen processing conforms to the framework rules. The framework inspection processing unit 150 according to the second embodiment executes the above-described inspection in the processing order for all the methods of the acquired class, and stores the inspection result in the inspection result storage unit 170.

図20は、実施例2に係るプログラム規則検査装置100によるフレームワーク検査処理の手順を説明するためのフローチャートである。なお、図20に示すフレームワーク検査処理の手順は、図15に示すステップS111に対応する。図20に示すように、実施例2に係るプログラム規則検査装置100においては、フレームワーク検査処理部150が、解析データ記憶部110から検査対象プログラムのクラス一覧を取得して(ステップS401)、クラス内のメソッド一覧を取得する(ステップS402)。そして、フレームワーク検査処理部150は、取得したメソッド内のインスタンス一覧を取得して(ステップS403)、インスタンスごとの呼出し先メソッドを呼出す順番に対応付けて取得する(ステップS404)。   FIG. 20 is a flowchart for explaining the procedure of the framework inspection process performed by the program rule inspection apparatus 100 according to the second embodiment. The procedure of the framework inspection process shown in FIG. 20 corresponds to step S111 shown in FIG. As illustrated in FIG. 20, in the program rule inspection apparatus 100 according to the second embodiment, the framework inspection processing unit 150 acquires a class list of inspection target programs from the analysis data storage unit 110 (step S401), and class A method list is acquired (step S402). Then, the framework inspection processing unit 150 acquires an instance list in the acquired method (step S403), and acquires it in association with the calling order of the call destination method for each instance (step S404).

その後、フレームワーク検査処理部150は、呼出し先メソッドのインスタンス一覧を取得して(ステップ405)、呼出すメソッドがあるか否かを判定する(ステップS406)。ここで、呼出すメソッドがある場合には(ステップS406肯定)、フレームワーク検査処理部150は、ステップS404に戻って、呼出し先メソッドを呼出す順番に対応付けて取得する。   Thereafter, the framework inspection processing unit 150 obtains an instance list of the called method (step 405), and determines whether there is a method to be called (step S406). If there is a method to be called (Yes at step S406), the framework inspection processing unit 150 returns to step S404 and acquires the callee method in association with the calling order.

一方、呼出すメソッドがない場合には(ステップS406否定)、フレームワーク検査処理部150は、メソッドの呼出し順番を検査して(ステップS407)、検査結果を検査結果記憶部170に保存して(ステップS408)、処理を終了する。   On the other hand, when there is no method to be called (No at Step S406), the framework inspection processing unit 150 checks the method calling order (Step S407), and stores the inspection result in the inspection result storage unit 170 (Step S407). S408), the process ends.

上述したように、実施例2によれば、フレームワーク検査処理部150は、アプリケーションが実行される際に複数のプログラムによって実行される処理の順番を、フレームワーク規定として用いる。従って、実施例2に係るプログラム規則検査装置100は、プログラムの詳細な検査を実行することを可能にする。   As described above, according to the second embodiment, the framework inspection processing unit 150 uses the order of processes executed by a plurality of programs when an application is executed as a framework rule. Therefore, the program rule inspection apparatus 100 according to the second embodiment makes it possible to execute a detailed inspection of a program.

図21は、実施例2に係るプログラム規則検査装置100によるフレームワーク検査の一例を模式的に示した図である。図21に示すように、実施例2に係るプログラム規則検査装置100は、画面処理に係るプログラムの処理、業務処理に係るプログラムの処理及びデータベース処理に係るプログラムの処理の処理順を検査することができる。例えば、実施例2に係るプログラム規則検査装置100は、図21に示すように、入力チェック処理、ログ出力処理、トランザクション開始処理、登録処理、トランザクション終了処理、画面表示処理が順番に実行されるか否かを検査することができる。すなわち、実施例2に係るプログラム規則検査装置100は、各階層に跨る処理が適切に実行されているか否かを詳細に検査することができ、システム全体を対象としたフレームワークルールの高精度な検査を行うことを可能にする。   FIG. 21 is a diagram schematically illustrating an example of a framework inspection performed by the program rule inspection apparatus 100 according to the second embodiment. As illustrated in FIG. 21, the program rule inspection apparatus 100 according to the second embodiment can inspect the processing order of program processing related to screen processing, program processing related to business processing, and program processing related to database processing. it can. For example, as illustrated in FIG. 21, the program rule inspection apparatus 100 according to the second embodiment performs input check processing, log output processing, transaction start processing, registration processing, transaction end processing, and screen display processing in order. It can be inspected. That is, the program rule inspection apparatus 100 according to the second embodiment can inspect whether or not the processing across each hierarchy is appropriately executed, and the framework rule for the entire system is highly accurate. Allows inspection to be performed.

さて、これまで実施例1及び2について説明したが、上述した実施例1及び2以外にも、種々の異なる形態にて実施されてよいものである。   Although the first and second embodiments have been described so far, the present invention may be implemented in various different forms other than the first and second embodiments described above.

(1)検査結果レポート
上述した実施例1及び2では、検査結果通知処理部180が表示部に表示させる検査結果レポートとして、検査結果の一覧や全ての検査結果を総合した総合品質評価を表示させる場合について説明した。しかしながら、本実施例はこれに限定されるものではなく、例えば、検査者が任意のパラメータを用いて、チェックしたい項目を選択する場合であってもいい。
(1) Inspection Result Report In the above-described first and second embodiments, a list of inspection results and a comprehensive quality evaluation that combines all inspection results are displayed as inspection result reports that the inspection result notification processing unit 180 displays on the display unit. Explained the case. However, the present embodiment is not limited to this. For example, the inspector may select an item to be checked using an arbitrary parameter.

図22−1及び図22−2は、検査結果レポートの変形例を説明するための図である。図22−1に示すように、検査結果通知処理部180は、種々の解析設定を有したGUI(Grafical User Interface)を表示部に表示させるようにしてもよい。解析設定としては、例えば、図22−1に示すように、納品前チェックに用いる各種設定や、開発時のチェックに用いる各種設定などが設けられてもよい。そして、検査結果通知処理部180は、図22−1に示すように、プロジェクトごとに詳細な検査結果を一覧で示した検査結果レポートを表示部に表示させてもよい。   FIG. 22-1 and FIG. 22-2 are diagrams for explaining a modification of the inspection result report. As illustrated in FIG. 22A, the test result notification processing unit 180 may display a GUI (Graphical User Interface) having various analysis settings on the display unit. As analysis settings, for example, as shown in FIG. 22-1, various settings used for a pre-delivery check, various settings used for a check during development, and the like may be provided. Then, as illustrated in FIG. 22-1, the inspection result notification processing unit 180 may cause the display unit to display an inspection result report showing a list of detailed inspection results for each project.

そして、図22−1に示す検査結果レポートにおいては、図22−2に示すように、各種設定及び検査結果の表示領域が、検査者によって任意で変更可能であり、検査者の要求に応じた情報提供を可能にする。   And in the inspection result report shown in FIG. 22-1, as shown in FIG. 22-2, the display area of various settings and inspection results can be arbitrarily changed by the inspector, and according to the request of the inspector. Enable information provision.

(2)プログラム検査処理
上述した実施例1及び2では、フレームワークの検査を実行する前にプログラムの検査を実行する場合について説明した。しかしながら、本実施例はこれに限定されるものではなく、例えば、プログラムの検査を実行せずに、フレームワークの検査だけを実行する場合であってもよい。
(2) Program Inspection Processing In the first and second embodiments described above, the case where the program inspection is executed before the framework inspection has been described. However, the present embodiment is not limited to this. For example, only the framework inspection may be executed without executing the program inspection.

(3)フレームワーク検査処理
上述した実施例1及び2では、フレームワーク検査処理として、プログラムの呼出し順と処理順とを別々に実行する場合について説明した。しかしながら、本実施例はこれに限定されるものではなく、例えば、フレームワーク検査処理としてプログラムの呼出し順と処理順とを同時に実行する場合であってもよい。
(3) Framework Inspection Processing In the first and second embodiments described above, the case has been described in which the program calling order and the processing order are executed separately as the framework inspection processing. However, the present embodiment is not limited to this. For example, the program calling order and the processing order may be executed simultaneously as the framework inspection process.

(4)フレームワーク検査処理の実行
上述した実施例1及び2では、プログラム検査の検査結果において、品質にNGが多い場合に、フレームワーク検査処理を実行しない場合について説明した。しかしながら、本実施例はこれに限定されるものではなく、例えば、プログラムの呼出し順と処理順とを同時に検査する規則検査装置において、プログラム検査の検査結果に応じて、どちらか一方の検査を実行するようにしてもよい。
(4) Execution of Framework Inspection Process In the above-described first and second embodiments, the case where the framework inspection process is not executed when the quality of NG in the inspection result of the program inspection is large has been described. However, the present embodiment is not limited to this. For example, in a rule inspection device that simultaneously checks the calling order and processing order of a program, one of the inspections is executed according to the inspection result of the program inspection. You may make it do.

(5)事前解析
上述した実施例1及び2では、アプリケーションの作成に用いられた複数のプログラム間の関係を事前解析する場合について説明した。しかしながら、本実施例はこれに限定されるものではなく、例えば、フレームワークルールの規則検査を実行するごとに、アプリケーションの作成に用いられた複数のプログラム間の関係を解析する場合であってもよい。
(5) Prior Analysis In the first and second embodiments described above, the case where the relationship between a plurality of programs used for creating an application is analyzed in advance has been described. However, the present embodiment is not limited to this. For example, each time a framework rule rule check is executed, the relationship between a plurality of programs used to create an application may be analyzed. Good.

(6)システム構成等
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示された構成要素と同一であることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図1に示すプログラム検査規則140とフレームワーク検査規則160とを一つの記憶部として統合してもよい。また、一方で、図1に示す検査結果通知処理部180を、検査結果を用いた演算処理を実行する演算部と、表示部を制御する表示制御部とに分散してもよい。
(6) System Configuration Each component of each illustrated device is functionally conceptual and does not necessarily need to be the same as the physically illustrated component. In other words, the specific form of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured. For example, the program inspection rule 140 and the framework inspection rule 160 shown in FIG. 1 may be integrated as one storage unit. On the other hand, the test result notification processing unit 180 illustrated in FIG. 1 may be distributed to a calculation unit that executes a calculation process using the test result and a display control unit that controls the display unit.

また、本実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。例えば、図16における検査対象プログラムの入力処理を自動で行ってもよい。かかる場合には、プログラムが作成されると、自動的にプログラム規則検査装置100に入力されるように設定されればよい。また、フレームワーク検査処理部150をプログラム規則検査装置100の外部装置としてネットワーク経由で接続するようにしてもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。   In addition, all or a part of the processes described as being manually performed among the processes described in the present embodiment can be manually performed. For example, the inspection target program input process in FIG. 16 may be automatically performed. In such a case, the program may be set to be automatically input to the program rule inspection apparatus 100 when the program is created. Further, the framework inspection processing unit 150 may be connected as an external device of the program rule inspection device 100 via a network. Further, all or any part of each processing function performed in each device may be realized by a CPU and a program analyzed and executed by the CPU, or may be realized as hardware by wired logic.

(7)規則検査プログラム
ところで、上記実施例1では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本実施例はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行するようにしてもよい。そこで、以下では、図23を用いて上記実施例1に示したプログラム規則検査装置100と同様の機能を有する規則検査プログラムを実行するコンピュータの一例を説明する。図23は、規則検査プログラムを実行するコンピュータを説明するための図である。
(7) Rule Inspection Program In the first embodiment, the case where various processes are realized by hardware logic has been described. However, the present embodiment is not limited to this, and a program prepared in advance is stored in a computer. May be executed. Therefore, in the following, an example of a computer that executes a rule inspection program having the same function as the program rule inspection apparatus 100 shown in the first embodiment will be described with reference to FIG. FIG. 23 is a diagram for explaining a computer that executes a rule inspection program.

図23に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU(Central Processing Unit)1020と、ハードディスクドライブインタフェース1030とを有する。また、図23に示すように、コンピュータ1000は、例えば、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。   As shown in FIG. 23, the computer 1000 includes, for example, a memory 1010, a CPU (Central Processing Unit) 1020, and a hard disk drive interface 1030. As shown in FIG. 23, the computer 1000 includes, for example, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. These units are connected by a bus 1080. .

メモリ1010は、図23に示すように、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図23に示すように、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、図23に示すように、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、図23に示すように、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、図23に示すように、例えばディスプレイ1130に接続される。   The memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM (Random Access Memory) 1012 as shown in FIG. The ROM 1011 stores a boot program such as BIOS (Basic Input Output System). The hard disk drive interface 1030 is connected to the hard disk drive 1090 as shown in FIG. The disk drive interface 1040 is connected to the disk drive 1100 as shown in FIG. For example, a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1100. As shown in FIG. 23, the serial port interface 1050 is connected to, for example, a mouse 1110 and a keyboard 1120. The video adapter 1060 is connected to a display 1130, for example, as shown in FIG.

ここで、図23に示すように、ハードディスクドライブ1090は、例えば、OS(Operating System)、アプリケーションプログラム、プログラムモジュール、プログラムデータを記憶する。すなわち、解析プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクに記憶される。具体的には、上述した実施例で説明したプログラム解析処理部120と同様の解析処理を実行する解析手順と、フレームワーク検査処理部150と同様の検査処理を実行するフレームワーク検査手順とが記述されたプログラムモジュールが、ハードディスクに記憶される。   Here, as shown in FIG. 23, the hard disk drive 1090 stores, for example, an OS (Operating System), application programs, program modules, and program data. That is, the analysis program is stored, for example, on a hard disk as a program module in which a command executed by the computer 1000 is described. Specifically, an analysis procedure for executing analysis processing similar to that of the program analysis processing unit 120 described in the above-described embodiment and a framework inspection procedure for executing inspection processing similar to that of the framework inspection processing unit 150 are described. The programmed program module is stored in the hard disk.

また、上述した実施例で説明した解析データ記憶部110に記憶されるデータのように、規則検査プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えばハードディスクに記憶される。そして、CPU1020が、ハードディスクに記憶されたプログラムモジュールやプログラムデータを必要に応じてRAM1012に読み出し、解析手順、フレームワーク検査手順を実行する。   Moreover, like the data stored in the analysis data storage unit 110 described in the above-described embodiment, data used for information processing by the rule inspection program is stored as, for example, a hard disk. Then, the CPU 1020 reads program modules and program data stored in the hard disk to the RAM 1012 as necessary, and executes analysis procedures and framework inspection procedures.

なお、規則検査プログラムに係るプログラムモジュールやプログラムデータは、ハードディスクに記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、解析プログラムに係るプログラムモジュールやプログラムデータは、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。   Note that the program module and program data related to the rule inspection program are not limited to being stored in the hard disk, but may be stored in, for example, a removable storage medium and read out by the CPU 1020 via the disk drive 1100 or the like. Alternatively, the program module and program data relating to the analysis program are stored in another computer connected via a network (LAN (Local Area Network), WAN (Wide Area Network), etc.), and the CPU 1020 via the network interface 1070. May be read.

100 プログラム規則検査装置
110 解析データ記憶部
120 プログラム解析処理部
130 プログラム検査処理部
140 プログラム検査規則
150 フレームワーク検査処理部
160 フレームワーク検査規則
170 検査結果記憶部
180 検査結果通知処理部
DESCRIPTION OF SYMBOLS 100 Program rule inspection apparatus 110 Analysis data storage part 120 Program analysis processing part 130 Program inspection processing part 140 Program inspection rule 150 Framework inspection processing part 160 Framework inspection rule 170 Inspection result storage part 180 Inspection result notification processing part

Claims (7)

アプリケーションの作成に用いられた複数のプログラム間の関係を解析する解析部と、
前記解析部によって解析された前記複数のプログラム間の関係がフレームワークの仕様規定であるフレームワーク規定に則した関係であるか否かを検査するフレームワーク検査部と、
を有することを特徴とする規則検査装置。
An analysis unit that analyzes the relationship between multiple programs used to create the application;
A framework inspection unit that inspects whether the relationship between the plurality of programs analyzed by the analysis unit is a relationship in accordance with a framework specification that is a framework specification;
A rule inspection device characterized by comprising:
前記フレームワーク検査部は、前記アプリケーションが実行される際に前記複数のプログラムが呼出される順番を、前記フレームワーク規定として用いることを特徴とする請求項1に記載の規則検査装置。   The rule checking apparatus according to claim 1, wherein the framework checking unit uses, as the framework definition, an order in which the plurality of programs are called when the application is executed. 前記フレームワーク検査部は、前記アプリケーションが実行される際に前記複数のプログラムによって実行される処理の順番を、前記フレームワーク規定として用いることを特徴とする請求項1又は2に記載の規則検査装置。   The rule inspection device according to claim 1, wherein the framework inspection unit uses, as the framework definition, an order of processing executed by the plurality of programs when the application is executed. . 前記複数のプログラムそれぞれが、当該複数のプログラムそれぞれの作成規定であるプログラム規定に則しているか否かを検査するプログラム検査部をさらに有し、
前記フレームワーク検査部は、前記プログラム検査部の検査結果に応じて、前記フレームワークの規定に基づく検査の内容を決定することを特徴とする請求項1〜3のいずれか1つに記載された規則検査装置。
Each of the plurality of programs further includes a program inspection unit that inspects whether or not each of the plurality of programs conforms to a program rule that is a creation rule of the plurality of programs.
The said framework test | inspection part determines the content of the test | inspection based on the prescription | regulation of the said framework according to the test result of the said program test | inspection part, It was described in any one of Claims 1-3 characterized by the above-mentioned. Rule inspection device.
前記フレームワーク検査部は、前記プログラム検査部による検査において、前記プログラム規定に則して作成されていると判定されたプログラム数の全プログラム数に対する割合が所定の閾値を超えていることを条件に、前記フレームワーク規定に基づく検査を実行することを特徴とする請求項4に記載の規則検査装置。   In the inspection by the program inspection unit, the framework inspection unit is provided on the condition that the ratio of the number of programs determined to be created in accordance with the program rules exceeds the predetermined threshold. The rule inspection device according to claim 4, wherein an inspection based on the framework rule is executed. アプリケーションの作成に用いられた複数のプログラム間の関係を解析する解析ステップと、
前記解析ステップによって解析された前記複数のプログラム間の関係がフレームワークの仕様規定であるフレームワーク規定に則した関係であるか否かを検査するフレームワーク検査ステップと、
を含んだことを特徴とする規則検査方法。
An analysis step for analyzing the relationship between multiple programs used to create the application;
A framework inspection step for inspecting whether the relationship between the plurality of programs analyzed in the analysis step is a relationship in accordance with a framework specification that is a framework specification; and
The rule inspection method characterized by including.
アプリケーションの作成に用いられた複数のプログラム間の関係を解析する解析手順と、
フレームワークの仕様規定であるフレームワーク規定を記憶した記憶部から当該フレームワーク規定を読み出し、前記解析手順によって解析された前記複数のプログラム間の関係が読み出したフレームワーク規定に則した関係であるか否かを検査するフレームワーク検査手順と、
をコンピュータに実行させることを特徴とする規則検査プログラム。
An analysis procedure for analyzing the relationship between multiple programs used to create the application;
Whether the relationship between the plurality of programs analyzed by the analysis procedure is a relationship in accordance with the read framework specification, by reading the framework specification from the storage unit that stores the framework specification that is the specification specification of the framework A framework inspection procedure to inspect whether or not,
A rule inspection program for causing a computer to execute.
JP2010172335A 2010-07-30 2010-07-30 Rule inspection device, rule inspection method and rule inspection program Expired - Fee Related JP5121891B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010172335A JP5121891B2 (en) 2010-07-30 2010-07-30 Rule inspection device, rule inspection method and rule inspection program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010172335A JP5121891B2 (en) 2010-07-30 2010-07-30 Rule inspection device, rule inspection method and rule inspection program

Publications (2)

Publication Number Publication Date
JP2012033017A true JP2012033017A (en) 2012-02-16
JP5121891B2 JP5121891B2 (en) 2013-01-16

Family

ID=45846347

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010172335A Expired - Fee Related JP5121891B2 (en) 2010-07-30 2010-07-30 Rule inspection device, rule inspection method and rule inspection program

Country Status (1)

Country Link
JP (1) JP5121891B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014059775A (en) * 2012-09-18 2014-04-03 Fuji Electric Co Ltd Program structure evaluation system and program
JP2014134962A (en) * 2013-01-10 2014-07-24 Fujitsu Marketing Ltd Source code conversion device, source code conversion method, and source code conversion program
WO2019021424A1 (en) * 2017-07-27 2019-01-31 三菱電機株式会社 Electromagnetic field measurement device and electromagnetic field measurement method

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000298586A (en) * 1999-04-12 2000-10-24 Fujitsu Ltd Method and system for improving quality of object- oriented program
JP2001290645A (en) * 2000-01-31 2001-10-19 Fujitsu Ltd Device, system and method for checking protocol, recording medium having protocol check program recorded thereon and the same program
JP2002333992A (en) * 2001-05-09 2002-11-22 Denso Corp Execution order inspecting device and its program
JP2003058373A (en) * 2001-08-21 2003-02-28 Mitsubishi Electric Corp Software tool for supporting program creation
JP2003316615A (en) * 2002-04-26 2003-11-07 Nissan Motor Co Ltd Operation order checking device and method therefor
JP2007304980A (en) * 2006-05-12 2007-11-22 Sharp Corp Design verification device, design verification program, and recording medium for recording design verification program
JP2008102831A (en) * 2006-10-20 2008-05-01 Hitachi Ltd Information providing device, program and information providing method
JP2009099111A (en) * 2007-09-28 2009-05-07 Fujitsu Business Systems Ltd Rule inspection program, rule inspection method, and rule inspection device
JP2009238040A (en) * 2008-03-27 2009-10-15 Hitachi Ltd Support method, support program, and support system for inter-module cooperation

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000298586A (en) * 1999-04-12 2000-10-24 Fujitsu Ltd Method and system for improving quality of object- oriented program
JP2001290645A (en) * 2000-01-31 2001-10-19 Fujitsu Ltd Device, system and method for checking protocol, recording medium having protocol check program recorded thereon and the same program
JP2002333992A (en) * 2001-05-09 2002-11-22 Denso Corp Execution order inspecting device and its program
JP2003058373A (en) * 2001-08-21 2003-02-28 Mitsubishi Electric Corp Software tool for supporting program creation
JP2003316615A (en) * 2002-04-26 2003-11-07 Nissan Motor Co Ltd Operation order checking device and method therefor
JP2007304980A (en) * 2006-05-12 2007-11-22 Sharp Corp Design verification device, design verification program, and recording medium for recording design verification program
JP2008102831A (en) * 2006-10-20 2008-05-01 Hitachi Ltd Information providing device, program and information providing method
JP2009099111A (en) * 2007-09-28 2009-05-07 Fujitsu Business Systems Ltd Rule inspection program, rule inspection method, and rule inspection device
JP2009238040A (en) * 2008-03-27 2009-10-15 Hitachi Ltd Support method, support program, and support system for inter-module cooperation

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014059775A (en) * 2012-09-18 2014-04-03 Fuji Electric Co Ltd Program structure evaluation system and program
JP2014134962A (en) * 2013-01-10 2014-07-24 Fujitsu Marketing Ltd Source code conversion device, source code conversion method, and source code conversion program
WO2019021424A1 (en) * 2017-07-27 2019-01-31 三菱電機株式会社 Electromagnetic field measurement device and electromagnetic field measurement method

Also Published As

Publication number Publication date
JP5121891B2 (en) 2013-01-16

Similar Documents

Publication Publication Date Title
JP6916403B2 (en) Specifying and applying logical validation rules to data
Novak et al. Taxonomy of static code analysis tools
US8516443B2 (en) Context-sensitive analysis framework using value flows
US8954930B2 (en) System and method for reducing test effort by object risk analysis
US8589884B2 (en) Method and system for identifying regression test cases for a software
Miller Using dependency structures for prioritization of functional test suites
CN111722839B (en) Code generation method and device, electronic equipment and storage medium
Barbour et al. An empirical study of faults in late propagation clone genealogies
US20080148235A1 (en) Runtime inspection of user interfaces
US10740713B2 (en) Generation of WBS model data
JP2018026135A (en) System and method for cause point analysis for effective handling of static analysis alarms
Venkatasubramanyam et al. Prioritizing code clone detection results for clone management
EP2199905A1 (en) Lifecycle management and consistency checking of object models using application platform tools
JP6419667B2 (en) Test DB data generation method and apparatus
JP5121891B2 (en) Rule inspection device, rule inspection method and rule inspection program
US20160110191A1 (en) Staged points-to analysis for large code bases
Jaafar et al. On the analysis of co-occurrence of anti-patterns and clones
JP2012181666A (en) Information processing device, information processing method and information processing program
US20220292136A1 (en) Method and system for generating a digital representation of asset information in a cloud computing environment
US12039297B2 (en) Code inspection interface providing method and apparatus for implementing the method
JP2009099111A (en) Rule inspection program, rule inspection method, and rule inspection device
JP6191290B2 (en) File evaluation program, file identification device, and file evaluation method
US9600245B2 (en) Computer-implemented method for generating control unit program code and message management environment relating thereto
KR102217092B1 (en) Method and apparatus for providing quality information of application
CN113961475B (en) Protocol-oriented error processing defect detection method and system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120529

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120807

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120926

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121023

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151102

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5121891

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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