JP4905173B2 - Software verification apparatus, software verification method, and software verification program - Google Patents
Software verification apparatus, software verification method, and software verification program Download PDFInfo
- Publication number
- JP4905173B2 JP4905173B2 JP2007036532A JP2007036532A JP4905173B2 JP 4905173 B2 JP4905173 B2 JP 4905173B2 JP 2007036532 A JP2007036532 A JP 2007036532A JP 2007036532 A JP2007036532 A JP 2007036532A JP 4905173 B2 JP4905173 B2 JP 4905173B2
- Authority
- JP
- Japan
- Prior art keywords
- verification
- module
- software
- condition
- determination
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 55
- 238000012795 verification Methods 0.000 claims description 219
- 238000012545 processing Methods 0.000 claims description 66
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241000255777 Lepidoptera Species 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Description
本発明は、複数のモジュールに分割可能なソフトウェアを検証するソフトウェア検証装置、ソフトウェア検証方法およびソフトウェア検証プログラムに関する。 The present invention relates to a software verification apparatus, a software verification method, and a software verification program for verifying software that can be divided into a plurality of modules.
大規模なソフトウェアを対象にその動作の正しさを検証する際、部分的な検証から全体を検証する方法として、ホーアの提唱した理論(ホーア理論)(非特許文献1参照。)や、メイヤーにより提唱された契約によるプログラミング(非特許文献2参照。)が知られている。 When verifying the correctness of the operation of a large-scale software, as a method of verifying the whole from partial verification, the theory proposed by Hoare (Hoer theory) (see Non-Patent Document 1) and Meyer Programming based on a proposed contract (see Non-Patent Document 2) is known.
ホーア理論での複合文の規則によれば、プログラムを複数の部分プログラムに分割し、分割した部分プログラム間で満たすべき条件(前に処理される部分プログラムの後条件であり、かつ、次に処理される部分プログラムの前条件)を与えると、それらの条件を元に部分プログラムを検証することにより元のプログラムの検証ができる。また、契約によるプログラミングによれば、プログラムを構成するルーチンの前条件・後条件を表明として与えることにより、プログラム全体が適切に動作することを検証できる。いずれの場合もプログラムを適切な部分に分割し、分割した部分に対して処理前および処理後の条件を適切に与えることにより、プログラム全体を検証することができる。 According to the rules of compound statements in Hoer theory, a program is divided into a plurality of partial programs, and the conditions to be satisfied among the divided partial programs (the post-conditions of the previously processed partial program and the next processing) Given the preconditions of the partial program to be executed, the original program can be verified by verifying the partial program based on these conditions. Further, according to programming by contract, it is possible to verify that the entire program operates properly by giving pre-conditions and post-conditions of routines constituting the program as assertions. In any case, the entire program can be verified by dividing the program into appropriate parts and appropriately giving pre-processing and post-processing conditions to the divided parts.
非特許文献1,2に記載された方式では、検証作業者が対象ソフトウェアを複数のモジュールに分割し、呼び出し関係のあるモジュール間で満たすべき条件(呼び出す側の後条件であり、かつ、呼び出される側の前条件)を設定する。そして、その条件の下で、分割した個々のモジュールを次々と個別に検証し、すべてのモジュールの検証結果を得ることで、対象ソフトウェア全体を検証する。この場合、検証作業者は、あらかじめ、検証の際にメモリ使用量がシステムのメモリ容量を超えず、許容可能な時間内で検証が完了するよう、いくつかのモジュールに適切に分割して検証する範囲を定め、かつ、呼び出し関係のあるモジュール間で満たすべき条件を適切に設定しなければならない。
In the methods described in
そこで、本発明は、部分検証範囲の特定や、呼び出し関係があるモジュール間で満たすべき条件の設定を行うことなくソフトウェアの検証を行うことができるソフトウェア検証装置、ソフトウェア検証方法およびソフトウェア検証プログラムを提供することを目的とする。 Therefore, the present invention provides a software verification apparatus, a software verification method, and a software verification program capable of performing software verification without specifying a partial verification range and setting conditions to be satisfied between modules having a calling relationship. The purpose is to do.
本発明によるソフトウェア検証装置は、複数のモジュールに分割可能なソフトウェアを検証するソフトウェア検証装置であって、ソフトウェアを構成するモジュールを検証対象として、検証対象のモジュールについて前条件なしで所定の検証事項が成り立つか否かを判定する判定手段(例えば、中央処理装置111)と、判定手段が検証事項が成り立たない場合があると判定した場合に、検証対象のモジュールの開始時における検証事項が成り立たないための条件を算出する条件算出手段(例えば、中央処理装置111)と、モジュール間の呼び出し関係における最上位のモジュールから検証対象のモジュールの開始時までの処理結果において、条件算出手段が算出した条件が成り立つか否かを判定する条件判定手段(例えば、中央処理装置111)と、条件判定手段の判定に基づいて、検証対象のモジュールについて検証事項が成り立つか否かを判定し、条件判定手段が条件が成り立たないと判定した場合に、検証対象のモジュールについて検証事項が成り立つと判定するモジュール判定手段(例えば、中央処理装置111)と、モジュール判定手段の判定に基づいて、ソフトウェアについて所定の検証事項が成り立つか否かを判定するソフトウェア判定手段(例えば、中央処理装置111)とを備え、ソフトウェア判定手段が、条件算出手段が算出した条件が成り立つと条件判定手段が判定したことにより、モジュール判定手段が検証対象のモジュールについて検証事項が成り立たないと判定した場合に、ソフトウェアについて所定の検証事項が成り立たないと判定することを特徴とする。 A software verification apparatus according to the present invention is a software verification apparatus that verifies software that can be divided into a plurality of modules. The module constituting the software is a verification target, and the verification target module has a predetermined verification item without a precondition. When the determination means (for example, the central processing unit 111) for determining whether or not the verification item is satisfied and the determination means determine that the verification item may not be satisfied, the verification item at the start of the verification target module does not hold. The condition calculation means (for example, the central processing unit 111) for calculating the condition of the process and the processing result from the highest module in the calling relationship between modules to the start time of the module to be verified are the conditions calculated by the condition calculation means. Condition determining means for determining whether or not it is satisfied (for example, central processing unit) 11) and, based on the determination of the condition determination means, it is determined whether or not the verification item is satisfied for the verification target module. When the condition determination unit determines that the condition is not satisfied, the verification item is verified for the verification target module. And a module determination unit (for example, central processing unit 111) that determines that the predetermined verification items for the software are satisfied based on the determination by the module determination unit. 111), and when the module determination unit determines that the verification item does not hold for the verification target module because the condition determination unit determines that the condition calculated by the condition calculation unit is satisfied , Determining that certain verification items do not hold for software And butterflies.
判定手段は、検証対象のモジュールについて、検証事項が成り立つか否かを判定不能である場合に、検証事項を含むモジュールを呼び出す可能性のある下位モジュールを順次検証対象として、前条件なしで検証事項が成り立つか否かを判定し、モジュール判定手段は、判定手段またはモジュール判定手段がすべての下位モジュールについて検証事項が成り立つと判定した場合に、上位の検証対象のモジュールについて検証事項が成り立つと再帰的に判定することが望ましい。そのような構成によれば、正確かつ効率的に検証を行うことができる。 When it is impossible to determine whether the verification item is valid for the verification target module, the determination means sequentially sets the lower module that may call the module including the verification item as the verification target, without any preconditions. If the determination means or the module determination means determines that the verification items are satisfied for all the lower modules, the module determination unit recursively if the verification items are satisfied for the upper verification target module. It is desirable to make a judgment. According to such a configuration, verification can be performed accurately and efficiently.
判定手段は、モジュール間の呼び出し関係における最上位のモジュールを検証対象として検証事項が成り立つか否かを判定し、ソフトウェア判定手段は、判定手段またはモジュール判定手段がすべての下位モジュールについて検証事項が成り立つと判定した場合に、ソフトウェア全体について検証事項が成り立つと判定することが望ましい。そのような構成によれば、ソフトウェア全体について検証を行うことができる。 The determination means determines whether or not the verification item is valid with respect to the highest module in the calling relationship between the modules, and the software determination means is that the determination means or the module determination unit satisfies the verification item for all the lower modules. It is desirable to determine that the verification items hold for the entire software. According to such a configuration, the entire software can be verified.
ソフトウェア検証装置は、検証結果を出力する出力装置(例えば、出力装置112)または検証結果を記憶する記憶装置(例えば、二次記憶装置114)を備え、ソフトウェア判定手段は、判定した結果を出力装置または記憶装置に出力してもよい。そのような構成によれば、検証結果を出力または記憶することができる。 The software verification device includes an output device (for example, the output device 112) that outputs the verification result or a storage device (for example, the secondary storage device 114) that stores the verification result, and the software determination unit outputs the determined result to the output device. Or you may output to a memory | storage device. According to such a configuration, the verification result can be output or stored.
本発明によるソフトウェア検証方法は、複数のモジュールに分割可能なソフトウェアを検証するソフトウェア検証方法であって、ソフトウェアを構成するモジュールを検証対象として、検証対象のモジュールについて前条件なしで所定の検証事項が成り立つか否かを判定する判定ステップと、判定ステップで検証事項が成り立たない場合があると判定した場合に、検証対象のモジュールの開始時における検証事項が成り立たないための条件を算出する条件算出ステップと、モジュール間の呼び出し関係における最上位のモジュールから検証対象のモジュールの開始時までの処理結果において、条件算出ステップで算出した条件が成り立つか否かを判定する条件判定ステップと、条件判定ステップでの判定に基づいて、検証対象のモジュールについて検証事項が成り立つか否かを判定し、条件判定ステップで条件が成り立たないと判定した場合に、検証対象のモジュールについて検証事項が成り立つと判定するモジュール判定ステップと、モジュール判定ステップでの判定に基づいて、ソフトウェアについて所定の検証事項が成り立つか否かを判定するソフトウェア判定ステップとを含み、ソフトウェア判定ステップで、条件算出ステップで算出された条件が成り立つと条件判定ステップで判定されたことにより、モジュール判定ステップで検証対象のモジュールについて検証事項が成り立たないと判定された場合に、ソフトウェアについて所定の検証事項が成り立たないと判定することを特徴とする。 The software verification method according to the present invention is a software verification method for verifying software that can be divided into a plurality of modules. The module constituting the software is a verification target, and the verification target module has a predetermined verification item without a precondition. A determination step for determining whether or not the condition is satisfied, and a condition calculation step for calculating a condition for not verifying the verification item at the start of the verification target module when it is determined that the verification item may not be satisfied in the determination step. And a condition determination step for determining whether or not the condition calculated in the condition calculation step is satisfied in the processing result from the highest module in the calling relationship between the modules to the start time of the module to be verified. Based on the determination of In the module determination step and the module determination step, it is determined whether the verification items are satisfied for the verification target module when it is determined that the conditions are not satisfied in the condition determination step. And a software determination step for determining whether or not a predetermined verification item is satisfied for the software, and in the software determination step, the condition determination step determines that the condition calculated in the condition calculation step is satisfied , When it is determined in the module determination step that the verification item does not hold for the verification target module, it is determined that the predetermined verification item does not hold for the software.
本発明によるソフトウェア検証プログラムは、複数のモジュールに分割可能なソフトウェアを検証するためのソフトウェア検証プログラムであって、コンピュータに、ソフトウェアを構成するモジュールを検証対象として、検証対象のモジュールについて前条件なしで所定の検証事項が成り立つか否かを判定する判定処理と、判定処理で検証事項が成り立たない場合があると判定した場合に、検証対象のモジュールの開始時における検証事項が成り立たないための条件を算出する条件算出処理と、モジュール間の呼び出し関係における最上位のモジュールから検証対象のモジュールの開始時までの処理結果において、条件算出処理で算出した条件が成り立つか否かを判定する条件判定処理と、条件判定処理での判定に基づいて、検証対象のモジュールについて検証事項が成り立つか否かを判定し、条件判定処理で条件が成り立たないと判定した場合に、検証対象のモジュールについて検証事項が成り立つと判定するモジュール判定処理と、モジュール判定処理での判定に基づいて、ソフトウェアについて所定の検証事項が成り立つか否かを判定するソフトウェア判定処理とを実行させ、ソフトウェア判定処理で、条件算出処理で算出された条件が成り立つと条件判定処理で判定されたことにより、モジュール判定処理で検証対象のモジュールについて検証事項が成り立たないと判定された場合に、ソフトウェアについて所定の検証事項が成り立たないと判定させることを特徴とする。 A software verification program according to the present invention is a software verification program for verifying software that can be divided into a plurality of modules, and the module constituting the software is targeted for verification in a computer without any preconditions. The determination process for determining whether or not a predetermined verification item is satisfied, and the conditions for not verifying the verification item at the start of the module to be verified when it is determined that the verification process may not be satisfied in the determination process. A condition calculation process for calculating, and a condition determination process for determining whether or not the condition calculated in the condition calculation process is satisfied in the processing result from the highest module in the calling relationship between modules to the start time of the verification target module; Based on the determination in the condition determination process, The module determination process for determining whether the verification items are satisfied for the module to be verified, and the determination in the module determination processing when it is determined whether the verification items are satisfied for the rule and the condition determination processing determines that the conditions are not satisfied based on that, to execute a determining software determination process whether or not a predetermined verification item holds the software, the software determination process, it is determined by the condition determination processing and condition calculated by the condition calculating process is satisfied Thus, when it is determined in the module determination process that the verification item does not hold for the verification target module, it is determined that the predetermined verification item does not hold for the software.
本発明によれば、検証事項が成り立たない場合の前条件を求め、最上位モジュールからその前条件が成立するかどうか確認するため、分割して検証する際の前条件を作業者が設定することなく、容易にソフトウェアの検証を行うことができるという効果がある。また、最上位モジュールから再帰的に検証をおこない、検証事項が成り立たないと判定した場合にのみ、検証事項が成り立たないための条件を求めるため、不適切な条件設定を回避でき、正確にソフトウェアの検証を行うことができるいう効果がある。 According to the present invention, the operator sets the precondition when dividing and verifying in order to obtain the precondition when the verification item does not hold and to check whether the precondition is satisfied from the top module. There is an effect that the software can be easily verified. In addition, verification is performed recursively from the top module, and only when it is determined that the verification item does not hold, the condition for the verification item not being calculated is obtained. There is an effect that verification can be performed.
以下、本発明の実施の形態を図面を参照して説明する。図1は、本発明によるソフトウェア検証装置の構成例を示すブロック図である。図1に示すソフトウェア検証装置は、中央処理装置111と、出力装置112と、一次記憶装置113と、二次記憶装置114とを備える。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing a configuration example of a software verification apparatus according to the present invention. The software verification device shown in FIG. 1 includes a
中央処理装置111は、二次記憶装置114が記憶する検証対象ソフトウェアのソースコードを読み取って検証処理を行い、検証結果を出力装置112に出力する。
The
出力装置112は、ディスプレイ装置や印刷装置等である。一次記憶装置113は、ソフトウェア検証装置が検証を行うための検証用プログラムや、中央処理装置111がプログラムを実行する上で一時的に必要とされるデータなどの各種データを記憶する。二次記憶装置114は、検証対象ソフトウェアのソースコードを記憶する。
The
以下に説明する検証機能は、図1に示された中央処理装置111の一部として実装される。また、ソフトウェア検証装置がコンピュータで実現される場合には、中央処理装置111が、以下に説明する検証機能を実現するためのプログラムを実行することによって実現される。
The verification function described below is implemented as a part of the
図2は、検証対象ソフトウェアのモジュール構造の例を示す説明図である。m1〜m7は、モジュールである。矢印はモジュール間の呼び出し関係を示す。また、pは、検証すべき性質(検証事項)を示す。検証すべき性質とは、図2に示す例では、モジュールm7のある箇所で守られるべき条件である。破線で囲まれた部分は、モジュールmi(i=1,2,3,6)を起点とした検証範囲Miである。 FIG. 2 is an explanatory diagram illustrating an example of a module structure of the verification target software. m1 to m7 are modules. Arrows indicate call relationships between modules. Moreover, p shows the property (verification matter) which should be verified. In the example shown in FIG. 2, the property to be verified is a condition that should be observed at a certain location of the module m7. A portion surrounded by a broken line is a verification range Mi starting from the module mi (i = 1, 2, 3, 6).
図2を参照して、本実施の形態による検証方法を説明する。ソフトウェア全体で性質pが守られるか否かを検証するには、最初に最上位モジュールm1から検証を行う。検証を行ったモジュールにおいて、性質pが守られるか否かを判定できない場合には、pを含むモジュールm7を呼び出す可能性がある下位モジュールm2,m3に対して、性質pが守られるか否かの判定結果が出るまで前条件なしで検証することにより、再帰的にモジュールm1の検証を行う。 A verification method according to the present embodiment will be described with reference to FIG. In order to verify whether the property p is protected in the entire software, first, verification is performed from the highest module m1. If it is not possible to determine whether or not the property p is protected in the verified module, whether or not the property p is protected for the lower modules m2 and m3 that may call the module m7 including p. The module m1 is recursively verified by verifying without a precondition until the determination result is obtained.
下位モジュールのいずれかについて、性質pが守られないとの判定結果が出た場合には、当該下位モジュールでの検証開始時の前条件として、性質が守られないための条件を求める。そして、最上位モジュールから当該下位モジュールまで順に、前条件なしで性質pについて検証し、当該下位モジュールの検証開始時において、性質が守られないための条件が成り立つか否かを判定する。性質が守られないための条件が成り立つ場合、ソフトウェア全体でも性質が守られないとする。また、下位モジュールのすべてについて、性質pが守られるとの判定結果が出た場合には、ソフトウェア全体でも性質が守られるとする。 If a determination result that the property p is not observed is obtained for any of the lower modules, a condition for preventing the property is obtained as a precondition at the start of verification in the lower module. Then, the property p is verified in order from the highest module to the lower module without a precondition, and it is determined whether or not a condition for preventing the property from being satisfied at the start of verification of the lower module. Suppose that the property is not protected even in the whole software when the condition for not being protected is satisfied. In addition, when it is determined that the property p is protected for all the lower modules, the property is also protected for the entire software.
次に、図面を参照して本実施の形態の動作について説明する。図3は、本実施の形態における検証処理を示すフローチャートである。以下、中央処理装置111が性質pの検証処理を行う場合について説明する。
Next, the operation of the present embodiment will be described with reference to the drawings. FIG. 3 is a flowchart showing the verification processing in the present embodiment. Hereinafter, a case where the
中央処理装置111は、まず、最上位モジュールを検証の起点モジュールmsとする(ステップS1)。中央処理装置111は、起点モジュールmsから、前条件無しで性質pが守られるか否かを検証する(ステップS2)。
First, the
ステップS3において、中央処理装置111は、性質pが守られるか否かを判定する。ステップS3において、性質pが守られるか否か判定不能の場合、中央処理装置111は、起点モジュールmsから直接呼び出されるモジュールのうち、pを含むモジュールを呼び出す可能性があるモジュール(pを含むモジュールそのものも含む)の集合Mcを生成する(ステップS9)。中央処理装置111は、ステップS10において、Mcが空集合か否かを判定し、Mcが空集合である場合は(YES)、msの検証結果Rsを「判定不能」とする(ステップS11)。Mcが空集合でない場合は(NO)、集合Mcに含まれる各モジュールを起点モジュールmsとして、ステップS2からの処理を再帰的に繰り返し(ステップS12)、続く判定を行う。
In step S3, the
中央処理装置111は、ステップS3において、起点モジュールmsで性質pが守られると判定した場合(YES)、msの検証結果Rsを「性質pは守られる」とし(ステップS4)、ステップS18に移行する。
If the
中央処理装置111は、ステップS3において、性質pが守られないと判定した場合(NO)、起点モジュールmsでの検証開始時の条件Cfとして、性質pが守られないための条件を求める(ステップS5)。
If the
中央処理装置111は、モジュールmsから最上位モジュールまで呼び出し関係を逆向きに辿る経路上にあるモジュール群を検証範囲Muとする。中央処理装置111は、検証範囲Muにおいて、最上位モジュールを起点に、前条件なしで性質pについて検証し、msが呼び出される時点において、条件Cfが成り立つか検証する(ステップS6)。すなわち、中央処理装置111は、モジュール間の呼び出し関係における最上位のモジュールから検証対象のモジュールの開始時までの処理結果において、条件Cfが成り立つか否かを検証する。
The
ステップS7において、中央処理装置111は、msが呼び出される時点において条件Cfが成り立つか否かを判定し、成り立つと判定した場合(YES)、msの検証結果Rsを「性質pは守られない」とし(ステップS8)、ステップS18に移行する。
In step S7, the
ステップS7において、条件Cfが成り立たないと判定した場合(NO)、中央処理装置111は、msの検証結果Rsを「性質pは守られる」とし(ステップS4)、ステップS18に移行する。判定不能の場合、中央処理装置111は、msの検証結果Rsを「判定不能」とし(ステップS11)、ステップS18に移行する。ステップS18において、msが最上位モジュールか否かを判定し、msが最上位モジュールでない場合は(NO)、ステップS12に復帰する(ステップS19)。
When it is determined in step S7 that the condition Cf does not hold (NO), the
中央処理装置111は、集合Mcの全てのモジュールについて検証結果を算出した場合、ステップS13に移行する。ステップS13において、中央処理装置111は、Mc中の全てのモジュールに対して性質pが守られるか否かを判定する。Mc中の全てのモジュールに対して性質pが守られると判定した場合(YES)、中央処理装置111は、msの検証結果Rsを「性質pは守られる」とし(ステップS14)、ステップS18に移行する。
When the
ステップS13において、Mc中の全てのモジュールに対して性質pが守られるのではないと判定した場合(NO)、中央処理装置111は、ステップS15において、Mc中に性質pが守られないモジュールがあるか否かを判定する。中央処理装置111は、Mc中に性質pが守られないモジュールがあると判定した場合は(YES)、msの検証結果Rsを「性質pは守られない」とし(ステップS16)、ステップS18に移行する。そのいずれでもない場合、すなわち、Mc中に性質pが守られないモジュールがなく、いずれかのモジュールが判定不能の場合は(NO)、msの検証結果Rsを「判定不能」とし(ステップS17)、ステップS18に移行する。
If it is determined in step S13 that the property p is not protected for all the modules in Mc (NO), the
中央処理装置111は、ステップS18において、msが最上位モジュールか否かを判定し、msが最上位モジュールでない場合は(NO)、ステップS12に復帰する(ステップS19)。一方、msが最上位モジュールの場合(YES)、msの検証結果Rsをソフトウェア全体の性質pの検証結果Rとし(ステップS20)、一連の処理を終了する。
In step S18, the
また、中央処理装置111は、例えば、各モジュールの検証結果や、ソフトウェア全体の検証結果を、出力装置112に出力する。
Further, the
次に、図2〜図9を参照して、本実施の形態の動作の具体例について説明する。以下、図2に示す検証対象ソフトウェアのモジュール構造を例にして説明する。図4は、検証対象ソフトウェアの処理内容の例を示す説明図である。図4には、処理内容をC言語風に記述し、かつ、図2に示す各モジュールが、図4に示す同名の関数に対応するとする。また、検証する性質pは、「モジュールm7におけるa[idx]=−1;の処理で、配列上限を超えたメモリアクセスをしないこと」とする。また、リソースの制約から、モジュールm1、m2およびm3での性質pの検証はできない(判定不能になる)とする。 Next, a specific example of the operation of the present embodiment will be described with reference to FIGS. Hereinafter, the module structure of the verification target software shown in FIG. 2 will be described as an example. FIG. 4 is an explanatory diagram illustrating an example of processing contents of the verification target software. In FIG. 4, it is assumed that processing contents are described in a C language style, and each module shown in FIG. 2 corresponds to the function of the same name shown in FIG. Further, the property p to be verified is “do not perform memory access beyond the upper limit of the array in the process of a [idx] = − 1 in the module m7”. Further, it is assumed that the property p cannot be verified (cannot be determined) in the modules m1, m2, and m3 due to resource constraints.
m1を検証の起点モジュールmsとし(ステップS1)、起点モジュールmsから、前条件なしで性質pが守られるか検証する(ステップS2)。ステップS3において、検証結果は判定不能となるので、ms(=m1)から直接呼び出されるモジュールのうちpを含むm7を呼び出す可能性があるモジュールの集合としてMc={m2,m3}を生成する(ステップS9)。図5は、ms=m1の場合の検証範囲M1と、m1から呼び出され、pを含むモジュールを呼び出すモジュールの集合Mc={m2,m3}との例を示す説明図である。ステップS10において、Mcは空集合でないので(NO)、Mcの要素m2、m3に対し、ステップS2からの処理を再帰的に繰り返す(ステップS12)。 m1 is set as the verification starting module ms (step S1), and it is verified from the starting module ms whether the property p is protected without a precondition (step S2). In step S3, since the verification result cannot be determined, Mc = {m2, m3} is generated as a set of modules that may call m7 including p among modules called directly from ms (= m1) ( Step S9). FIG. 5 is an explanatory diagram showing an example of the verification range M1 when ms = m1 and a set Mc = {m2, m3} of modules called from m1 and calling a module including p. In Step S10, since Mc is not an empty set (NO), the processing from Step S2 is recursively repeated for the elements m2 and m3 of Mc (Step S12).
m2を起点モジュールmsとし(ステップS1)、起点モジュールmsから、前条件なしで性質pが守られるか検証する(ステップS2)。ステップS3において、検証結果は判定不能となるので、中央処理装置111は、集合Mcを生成する(ステップS9)。ここで、m2から直接呼び出されるモジュールのうちm7を呼び出す可能性があるm6のみが次のMcの要素となる。図6は、ms=m2の場合の検証範囲M2と、m2から呼び出され、pを含むモジュールm7を呼び出すモジュールの集合Mc=m6との例を示す説明図である。ms=m6に対して、ステップS2からの処理が繰り返される。
m2 is set as the starting module ms (step S1), and it is verified from the starting module ms whether the property p is protected without a precondition (step S2). Since the verification result cannot be determined in step S3, the
m6を起点として起点モジュールmsとし(ステップS1)、起点モジュールmsから、前条件なしで性質pが守られるか検証する(ステップS2)。ステップS3において、中央処理装置111は、性質pは必ずしも守られないと判断する(NO)。中央処理装置111は、ms(=m6)の検証開始時における、性質pが守られないための条件Cfをidx≧2と算出する(ステップS5)。図7は、ms=m6の場合の検証範囲M6と、最上位モジュールから条件Cfを検証する検証範囲Mu={m1,m2}との例を示す説明図である。
The starting point module ms is set starting from m6 (step S1), and it is verified from the starting point module ms whether the property p is protected without a precondition (step S2). In step S3, the
中央処理装置111は、条件Cfが成り立つかどうかを、最上位モジュールm1からMu={m1,m2}を検証範囲として、前条件無しで検証する(ステップS6)。m6が呼び出される時点では、idx=1となり、Cfが成立たないので(ステップS7におけるNO)、ms(=m6)の検証結果Rsは「性質pは守られる」となる(ステップS4)。
The
この時点でのms(=m6)は最上位モジュールm1ではないので、ステップS2に移行する(ステップS19)。集合Mc=m6について検証結果を算出したため、ステップS13に移行し、m2の下位モジュール群Mcの検証結果からm2の検証結果を求める。ここで、Mcに含まれるモジュールはm6のみであり、かつm6の検証結果は「性質pは守られる」である。したがって、m2の全下位モジュールの検証結果は「性質pは守られる」となり(ステップS13におけるYES)、ms(=m2)の検証結果Rsは「性質pは守られる」となる(ステップS14)。ステップS18において、ms(=m2)は最上位モジュールm1ではないので、ステップS12に移行する(ステップS19)。 Since ms (= m6) at this time is not the highest module m1, the process proceeds to step S2 (step S19). Since the verification result is calculated for the set Mc = m6, the process proceeds to step S13, and the verification result of m2 is obtained from the verification result of the lower module group Mc of m2. Here, the module included in Mc is only m6, and the verification result of m6 is “property p is protected”. Therefore, the verification result of all lower modules of m2 is “property p is protected” (YES in step S13), and the verification result Rs of ms (= m2) is “property p is protected” (step S14). In step S18, ms (= m2) is not the highest module m1, so the process proceeds to step S12 (step S19).
次に、m3を起点モジュールmsとし(ステップS1)、起点モジュールmsから、前条件なしで性質pが守られるか検証する(ステップS2)。ステップS3において、m3の検証結果も判定不能となるので、中央処理装置111は、集合Mcを生成する(ステップS9)。ステップS9において、中央処理装置111は、m3から直接呼び出されるモジュールm7のみを要素とするMcを生成する。図8は、ms=m3の場合の検証範囲M3と、m3から呼び出され、pを含むモジュールの集合Mc=m7との例を示す説明図である。ms=m7に対して、ステップS2からの処理が繰り返される。
Next, m3 is set as the starting module ms (step S1), and it is verified from the starting module ms whether the property p is protected without a precondition (step S2). In step S3, since the verification result of m3 cannot be determined, the
m7を起点モジュールmsとし(ステップS1)、前条件なしで性質pが守られるか検証する(ステップS2)。ステップS3において、中央処理装置111は、性質pは必ずしも守られないと判断する(NO)。中央処理装置111は、ms(=m7)の検証開始時における、性質pが守られないための条件Cfをidx≧4と算出する(ステップS5)。
m7 is set as the starting module ms (step S1), and it is verified whether the property p is protected without a precondition (step S2). In step S3, the
図9は、ms=m7の場合の検証範囲M7と、最上位モジュールから条件Cfを検証する検証範囲Mu={m1,m3}との例を示す説明図である。 FIG. 9 is an explanatory diagram illustrating an example of the verification range M7 when ms = m7 and the verification range Mu = {m1, m3} for verifying the condition Cf from the highest module.
中央処理装置111は、条件Cfが成り立つかどうかを、最上位モジュールm1からMu={m1,m3}を検証範囲として、前条件なしで検証する(ステップS6)。m7が呼び出される時点では、idx=4となり、Cfが成立つので(ステップS7におけるYES)、ms(=m7)の検証結果Rsは「性質pは守られない」となる(ステップS8)。
The
この時点でのms(=m7)は最上位モジュールm1ではないので、ステップS2に移行する(ステップS19)。集合Mc=m7について検証結果を算出したため、ステップS13に移行し、m3の下位モジュール群Mcの検証結果からm3の検証結果を求める。ここで、Mcに、「性質pが守られない」要素m7があるので(ステップS15におけるYES)、ms(=m3)の検証結果Rsは「性質pが守られない」となる(ステップS16)。ステップS18において、ms(=m3)は最上位モジュールm1ではないので、ステップS12に移行する(ステップS19)。 Since ms (= m7) at this time is not the highest module m1, the process proceeds to step S2 (step S19). Since the verification result is calculated for the set Mc = m7, the process proceeds to step S13, and the verification result of m3 is obtained from the verification result of the lower module group Mc of m3. Here, since there is an element m7 in Mc that “property p is not protected” (YES in step S15), the verification result Rs of ms (= m3) is “property p is not protected” (step S16). . In step S18, ms (= m3) is not the highest module m1, so the process proceeds to step S12 (step S19).
ms(=m1)の下位モジュール群Mc={m2,m3}の全ての検証結果を算出したため、ステップS13に移行し、m1の下位モジュール群Mc={m2,m3}の検証結果からm1の検証結果を求める。 Since all the verification results of the lower module group Mc = {m2, m3} of ms (= m1) are calculated, the process proceeds to step S13, and the verification of m1 is verified from the verification result of the lower module group Mc = {m2, m3} of m1. Find the result.
Mcに「性質pが守られない」要素m3があるので(ステップS15におけるYES)、ms(=m1)の検証結果Rsは「性質pが守られない」となる(ステップS16)。ms(=m1)は最上位モジュールm1なので、ms(=m1)の検証結果Rsをソフトウェア全体の性質pの検証結果Rとして、「性質pは守られない」とし(ステップS20)、一連の処理を終了する。 Since there is an element m3 that “property p is not protected” in Mc (YES in step S15), the verification result Rs of ms (= m1) becomes “property p is not protected” (step S16). Since ms (= m1) is the highest module m1, the verification result Rs of ms (= m1) is set as the verification result R of the property p of the entire software, and “property p is not protected” (step S20). Exit.
以上に説明したように、本実施の形態によれば、部分検証して性質pが守られない場合の前条件を求め、最上位モジュールからその前条件が成立するかどうか確認する。そのため、呼び出し関係があるモジュール間で満たすべき条件の設定作業を省略することができ、分割して検証する際の前条件を作業者が設定する場合に比べて、容易にソフトウェアの検証を行うことができる。 As described above, according to the present embodiment, partial verification is performed to obtain a precondition when the property p is not observed, and whether or not the precondition is satisfied from the highest module is confirmed. Therefore, it is possible to omit the setting work of the condition to be satisfied between the modules having the calling relationship, and the software can be easily verified as compared with the case where the operator sets the precondition when the divided verification is performed. Can do.
また、最上位モジュールから再帰的に検証をおこない、検証結果が得られた場合にのみ、その結果に基づいて条件を求めるため、不適切な条件設定を回避することができ、正確にソフトウェアの検証を行うことができる。 In addition, recursive verification is performed from the top module, and only when a verification result is obtained, a condition is obtained based on the result, so inappropriate condition setting can be avoided, and software verification can be performed accurately. It can be performed.
さらに、ソフトウェアを構成するモジュールの呼び出し関係に基づいて、検証の起点を呼び出し関係の上位モジュールから下位モジュールに変えながら、最上位モジュールから再帰的に検証を行い、判定不能の場合にのみ再帰的にモジュールを下降して検証を行う。すなわち、検証対象モジュールの検証結果が判定不能になった場合に下位モジュールの検証を行い、下位モジュールの検証結果から上位モジュールの検証結果を求める処理を再帰的に繰り返す。したがって、特定の性質について検証するために大規模ソフトウェアを適切に分割でき、検証作業者が人手で行っていた部分検証範囲の特定作業を省略することができるため、正確かつ効率的に検証を行うことができる。 Furthermore, based on the calling relationship of the modules that make up the software, the verification starting point is recursively verified from the highest module while changing the calling origin from the higher module to the lower module. Verify by lowering the module. That is, when the verification result of the verification target module becomes indeterminate, the lower module is verified, and the process of obtaining the verification result of the upper module from the verification result of the lower module is recursively repeated. Therefore, large-scale software can be properly divided to verify specific characteristics, and verification work can be omitted accurately because the verification work performed by the verification operator manually can be omitted. be able to.
例えば、検証対象モジュールの検証結果が判定不能になった場合にのみ、モジュールを下降して検証(すなわち、部分的な検証)を行うことから、大きなコンテキストでの検証が可能となり、小さなコンテキストでの検証を積み重ねる(その度に誤差が入る可能性がある)場合に比べて正確に検証を行うことができる。また、必要な部分だけ分割して検証することから、分割によるオーバヘッドが少なくて済むため、効率的に検証を行うことができる。 For example, only when the verification result of the verification target module becomes indeterminate, the verification is performed by lowering the module (that is, partial verification), so verification in a large context is possible, and in a small context The verification can be performed more accurately than when verification is repeated (an error may occur each time). In addition, since only necessary portions are divided and verified, overhead due to the division can be reduced, so that verification can be performed efficiently.
なお、上記の実施の形態では、中央処理装置111が、各モジュールの検証結果やソフトウェア全体の検証結果を、出力装置112に出力する場合を例にしたが、出力装置112はなくてもよい。その場合、中央処理装置111は、例えば、最終的な処理結果を二次記憶装置114に出力してもよい。
In the above embodiment, the
本発明は、呼び出し関係がある複数のモジュールを含むソフトウェアを検証する場合に効果的に適用できる。 The present invention can be effectively applied to verifying software including a plurality of modules having a calling relationship.
111 中央処理装置
112 出力装置
113 一次記憶装置
114 二次記憶装置
111
Claims (6)
ソフトウェアを構成するモジュールを検証対象として、検証対象のモジュールについて前条件なしで所定の検証事項が成り立つか否かを判定する判定手段と、
前記判定手段が検証事項が成り立たない場合があると判定した場合に、前記検証対象のモジュールの開始時における検証事項が成り立たないための条件を算出する条件算出手段と、
モジュール間の呼び出し関係における最上位のモジュールから前記検証対象のモジュールの開始時までの処理結果において、前記条件算出手段が算出した条件が成り立つか否かを判定する条件判定手段と、
前記条件判定手段の判定に基づいて、前記検証対象のモジュールについて検証事項が成り立つか否かを判定し、前記条件判定手段が条件が成り立たないと判定した場合に、前記検証対象のモジュールについて検証事項が成り立つと判定するモジュール判定手段と、
前記モジュール判定手段の判定に基づいて、前記ソフトウェアについて所定の検証事項が成り立つか否かを判定するソフトウェア判定手段とを備え、
前記ソフトウェア判定手段は、前記条件算出手段が算出した条件が成り立つと前記条件判定手段が判定したことにより、前記モジュール判定手段が前記検証対象のモジュールについて検証事項が成り立たないと判定した場合に、前記ソフトウェアについて所定の検証事項が成り立たないと判定する
ことを特徴とするソフトウェア検証装置。 A software verification device for verifying software that can be divided into a plurality of modules,
A determination unit that determines whether or not a predetermined verification item is satisfied without a precondition for a verification target module, with a module constituting the software as a verification target;
Condition determining means for calculating a condition for not verifying the verification items at the start of the verification target module when the determination unit determines that the verification items may not be satisfied; and
Condition determination means for determining whether the condition calculated by the condition calculation means is satisfied in the processing result from the highest module in the calling relationship between modules to the start time of the module to be verified;
Based on the determination of the condition determination means, it is determined whether or not a verification item is satisfied for the verification target module, and when the condition determination unit determines that the condition is not satisfied, a verification item for the verification target module is determined. Module determination means for determining that
Software determination means for determining whether or not a predetermined verification item holds for the software based on the determination of the module determination means ;
The software determination means determines that the condition determination means determines that the condition calculated by the condition calculation means is satisfied, so that the module determination means determines that the verification item does not hold for the verification target module. A software verification device that determines that a predetermined verification item does not hold for software.
モジュール判定手段は、前記判定手段または前記モジュール判定手段がすべての下位モジュールについて検証事項が成り立つと判定した場合に、上位の検証対象のモジュールについて検証事項が成り立つと再帰的に判定する
請求項1記載のソフトウェア検証装置。 When it is impossible to determine whether the verification item is valid for the verification target module, the determination means sequentially sets the lower module that may call the module including the verification item as the verification target, without any preconditions. Determine whether or not
The module determination unit recursively determines that the verification item holds for the higher verification target module when the determination unit or the module determination unit determines that the verification item holds for all the lower modules. Software verification equipment.
ソフトウェア判定手段は、前記判定手段またはモジュール判定手段がすべての下位モジュールについて検証事項が成り立つと判定した場合に、ソフトウェア全体について検証事項が成り立つと判定する
請求項2記載のソフトウェア検証装置。 The determination means determines whether or not the verification item is satisfied with the highest module in the calling relationship between modules as the verification target,
The software verification apparatus according to claim 2, wherein the software determination unit determines that the verification item holds for the entire software when the determination unit or the module determination unit determines that the verification item holds for all the lower modules.
ソフトウェア判定手段は、判定した結果を前記出力装置または前記記憶装置に出力する
請求項1から請求項3のうちのいずれか1項に記載のソフトウェア検証装置。 The software verification device includes an output device that outputs a verification result or a storage device that stores the verification result,
The software verification device according to any one of claims 1 to 3, wherein the software determination unit outputs the determined result to the output device or the storage device.
ソフトウェアを構成するモジュールを検証対象として、検証対象のモジュールについて前条件なしで所定の検証事項が成り立つか否かを判定する判定ステップと、
前記判定ステップで検証事項が成り立たない場合があると判定した場合に、前記検証対象のモジュールの開始時における検証事項が成り立たないための条件を算出する条件算出ステップと、
モジュール間の呼び出し関係における最上位のモジュールから前記検証対象のモジュールの開始時までの処理結果において、前記条件算出ステップで算出した条件が成り立つか否かを判定する条件判定ステップと、
前記条件判定ステップでの判定に基づいて、前記検証対象のモジュールについて検証事項が成り立つか否かを判定し、前記条件判定ステップで条件が成り立たないと判定した場合に、前記検証対象のモジュールについて検証事項が成り立つと判定するモジュール判定ステップと、
前記モジュール判定ステップでの判定に基づいて、前記ソフトウェアについて所定の検証事項が成り立つか否かを判定するソフトウェア判定ステップとを含み、
前記ソフトウェア判定ステップで、前記条件算出ステップで算出された条件が成り立つと前記条件判定ステップで判定されたことにより、前記モジュール判定ステップで前記検証対象のモジュールについて検証事項が成り立たないと判定された場合に、前記ソフトウェアについて所定の検証事項が成り立たないと判定する
を含むことを特徴とするソフトウェア検証方法。 A software verification method for verifying software that can be divided into a plurality of modules,
A determination step for determining whether or not a predetermined verification item is satisfied without a precondition for a verification target module with a module constituting the software as a verification target;
A condition calculating step for calculating a condition for not satisfying the verification item at the start of the verification target module when it is determined that the verification item may not be satisfied in the determination step;
A condition determination step for determining whether or not the condition calculated in the condition calculation step is satisfied in the processing result from the highest module in the calling relationship between modules to the start time of the verification target module;
Based on the determination in the condition determination step, it is determined whether verification items are satisfied for the verification target module, and if it is determined that the condition is not satisfied in the condition determination step, the verification target module is verified. A module determination step for determining that the matter is satisfied;
A software determination step for determining whether or not a predetermined verification item holds for the software based on the determination in the module determination step,
In the software determination step, when it is determined in the module determination step that the verification item does not hold because the condition determination step determines that the condition calculated in the condition calculation step is satisfied. And determining that a predetermined verification item does not hold for the software.
コンピュータに、
ソフトウェアを構成するモジュールを検証対象として、検証対象のモジュールについて前条件なしで所定の検証事項が成り立つか否かを判定する判定処理と、
前記判定処理で検証事項が成り立たない場合があると判定した場合に、前記検証対象のモジュールの開始時における検証事項が成り立たないための条件を算出する条件算出処理と、
モジュール間の呼び出し関係における最上位のモジュールから前記検証対象のモジュールの開始時までの処理結果において、前記条件算出処理で算出した条件が成り立つか否かを判定する条件判定処理と、
前記条件判定処理での判定に基づいて、前記検証対象のモジュールについて検証事項が成り立つか否かを判定し、前記条件判定処理で条件が成り立たないと判定した場合に、前記検証対象のモジュールについて検証事項が成り立つと判定するモジュール判定処理と、
前記モジュール判定処理での判定に基づいて、前記ソフトウェアについて所定の検証事項が成り立つか否かを判定するソフトウェア判定処理とを実行させ、
前記ソフトウェア判定処理で、前記条件算出処理で算出された条件が成り立つと前記条件判定処理で判定されたことにより、前記モジュール判定処理で前記検証対象のモジュールについて検証事項が成り立たないと判定された場合に、前記ソフトウェアについて所定の検証事項が成り立たないと判定させる
ためのソフトウェア検証プログラム。 A software verification program for verifying software that can be divided into a plurality of modules,
On the computer,
A determination process for determining whether or not a predetermined verification item is satisfied without a precondition for a verification target module with a module constituting the software as a verification target;
A condition calculation process for calculating a condition for not verifying at the start of the verification target module when it is determined that the verification process may not be satisfied in the determination process;
Condition determination processing for determining whether or not the condition calculated in the condition calculation processing is satisfied in the processing result from the highest module in the calling relationship between modules to the start time of the verification target module;
Based on the determination in the condition determination process, it is determined whether verification items are satisfied for the verification target module, and if it is determined that the condition is not satisfied in the condition determination process, the verification target module is verified. A module determination process for determining that the matter is satisfied;
Based on the determination in the module determination process, to execute a software determination process to determine whether or not a predetermined verification item holds for the software,
In the software determination process, when it is determined in the module determination process that the condition calculated in the condition calculation process is satisfied, it is determined in the module determination process that verification items do not hold for the verification target module And a software verification program for determining that a predetermined verification item does not hold for the software.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007036532A JP4905173B2 (en) | 2007-02-16 | 2007-02-16 | Software verification apparatus, software verification method, and software verification program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007036532A JP4905173B2 (en) | 2007-02-16 | 2007-02-16 | Software verification apparatus, software verification method, and software verification program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2008203977A JP2008203977A (en) | 2008-09-04 |
| JP4905173B2 true JP4905173B2 (en) | 2012-03-28 |
Family
ID=39781455
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007036532A Expired - Fee Related JP4905173B2 (en) | 2007-02-16 | 2007-02-16 | Software verification apparatus, software verification method, and software verification program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4905173B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6248008B2 (en) * | 2014-07-29 | 2017-12-13 | 日立オートモティブシステムズ株式会社 | Software verification system and control device |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2735698B2 (en) * | 1991-01-21 | 1998-04-02 | 富士通株式会社 | Interface verification processing method |
| JP2004326366A (en) * | 2003-04-23 | 2004-11-18 | Matsushita Electric Ind Co Ltd | Program verification generation device and program verification generation method |
-
2007
- 2007-02-16 JP JP2007036532A patent/JP4905173B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2008203977A (en) | 2008-09-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9846637B2 (en) | Machine learning based software program repair | |
| CN108446535B (en) | Source code reinforcement method and device based on code execution sequence | |
| US9116771B2 (en) | Merging weighted recommendations for installation and configuration of software products | |
| US20200201741A1 (en) | Identification of software program fault locations | |
| CN110597611A (en) | Task scheduling method and device | |
| CN111949553A (en) | Rule engine-based scene case testing method and device | |
| JP4905173B2 (en) | Software verification apparatus, software verification method, and software verification program | |
| EP3220218A1 (en) | Program development support device, program development support method, and program development support program | |
| CN111984624A (en) | Method and system for data migration through correction migration model | |
| CN110717315B (en) | System data batch modification method and device, storage medium and electronic equipment | |
| CN112286910B (en) | Data verification method and device | |
| CN115114136B (en) | Test data generation method and device, electronic equipment and program product | |
| US20150220425A1 (en) | Test context generation | |
| CN114327673A (en) | Task starting method and device, electronic equipment and storage medium | |
| JP5811859B2 (en) | Source code static analysis device, system, method, and program therefor | |
| CN108132799B (en) | Interprocess static program analysis information extraction method, device and device | |
| CN114675948A (en) | A DAG data model dynamic scheduling method and system | |
| JP2020038586A (en) | Determination device, determination method, and determination program | |
| CN114185943A (en) | Data verification system and method and electronic equipment | |
| CN113468564A (en) | Data processing method and device, electronic equipment and storage medium | |
| US9519887B2 (en) | Self-service data importing | |
| CN111488403A (en) | Data editing method and device, auxiliary editing equipment and storage medium | |
| US20100293018A1 (en) | Test Model Abstraction For Testability in Product Line Engineering | |
| CN110109833A (en) | Automatic test cases acquisition methods and equipment based on the interface UI | |
| CN112905485B (en) | A method and device for generating test scripts |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110328 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110621 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110715 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110927 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111125 |
|
| 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: 20111213 |
|
| 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: 20111226 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150120 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |