JP4915362B2 - 静的検証ツールのアノテーション自動挿入方法 - Google Patents

静的検証ツールのアノテーション自動挿入方法 Download PDF

Info

Publication number
JP4915362B2
JP4915362B2 JP2008033324A JP2008033324A JP4915362B2 JP 4915362 B2 JP4915362 B2 JP 4915362B2 JP 2008033324 A JP2008033324 A JP 2008033324A JP 2008033324 A JP2008033324 A JP 2008033324A JP 4915362 B2 JP4915362 B2 JP 4915362B2
Authority
JP
Japan
Prior art keywords
annotation
indication
source code
storage unit
static verification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008033324A
Other languages
English (en)
Other versions
JP2009193335A (ja
Inventor
宏樹 徳岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2008033324A priority Critical patent/JP4915362B2/ja
Publication of JP2009193335A publication Critical patent/JP2009193335A/ja
Application granted granted Critical
Publication of JP4915362B2 publication Critical patent/JP4915362B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、コンピュータプログラムの静的検証に関する。
プログラムの記述内容の適切さをチェックするために静的検証ツールが用いられている。静的検証ツールは、関数呼出においてなんらかの前提条件を置いた上でソースコードの検証を実施する。一般的に静的検証ツールは、アノテーションと呼ばれる特殊な記述を行う事で、この前提条件を変更する機能を備えている。
例えば、静的検証ツールSPlint(非特許文献1参照)であれば、/*@null@*/というアノテーションを指定する事で、「引数にはNULLが渡されない」という前提を無効化する事ができる。また同様に、/*@out@*/というアノテーションを指定する事で、「引数には未初期化の値が渡されない」という前提を無効化する事ができる。
アノテーションの効果を、図4を例として説明する。図4の4行目において、関数f2の第1引数に対して、/*@null@*/のアノテーションが挿入されている。この結果、12行目においてf2にNULLを渡しているという指摘は発生しない。関数f2にNULLを渡し得るが、それは4行目のアノテーション/*@null@*/により許可されているためである。逆に、21行目においてはNULLポインタ参照の指摘が発生し、この箇所において実行時エラーが発生しうる事がわかる。4行目のアノテーション/*@null@*/により、引数p1にNULLが渡される可能性が考慮されるからである。
同じ例の3行目において、関数f1の第1引数に対して、/*@out@*/のアノテーションが挿入されている。この結果、11行目においてf1に未初期化値を渡しているという指摘は発生しない。16行目から定義される関数f1においても、未初期化値を渡されても問題ないように作られており、指摘は発生しない。
以上のように、アノテーションを利用する事で関数呼出時の前提条件を変更することにより、関数呼出に関する前提条件に反する箇所における欠陥ではなく、実行時エラーが発生しうる箇所を静的検証ツールに指摘させる事ができる。
ここで、前提条件に反する箇所における欠陥ではなく、実行時エラーが発生しうる箇所の指摘が欲しいという視点に立って考える。この場合、静的検証ツール自身によって「その前提が守られない」旨が指摘された関数呼出の前提条件については、その前提条件が無効化された状態での検証結果が得られる事が望ましい。
例で説明すると、図3に示すソースコードを前述のSPlintで検証した場合、12行目においてf2の第1引数にNULLを渡す可能性があると指摘される。そうであるなら、関数f2の検証についてもNULLを「受け取る」という前提の上での検証結果が得られる事が望ましい。すなわち、図3の4行目に示す/*@null@*/が追加された上で、12行目においてf2の第1引数にNULLを渡す可能性があるという指摘が抑制され、21行目においてNULLポインタ参照という実行時エラーの指摘が発生する方が望ましい。
以下、出願人が知り得た文献公知発明について記載する。特許文献1には、ソフトウェア静的解析における問題箇所の検出精度を向上させることを目的とするソースコード問題予測技術が記載されている。
特許文献2には、プログラム言語の規則違反を、利用者が修正しなくても、自動的に修正可能なエラー検出装置、エラー検出方法およびエラー検出用プログラムを提供することを目的とする技術が記載されている。
特許文献3には、プログラムコードにおける1つ以上の動的なチェックに関する情報を静的に検証するステップであって、プログラムコードにおける1つ以上の動的なチェックの各々がプログラムコードにおけるオペレーションをチェックするようなステップを備えた、プログラムコードについてチェックを行う方法が記載されている。
特開2007−179488号公報 特開平11−296366号公報 特表2007−516538号公報 IEEE SOFTWARE January/February2002 Improving Security Using Extensible Lightweight Static Analysis
従来の静的検証ツールでは、上記のように、静的検証ツール自身の指摘に基づいて関数呼出の前提条件を変更し、その上での検証結果を得るには、前提条件を変更するアノテーションをユーザが手動で追加していた。
静的検証ツールとアノテーションを用いた実行時エラー発生箇所の検出作業を省力化することが望まれる。
本発明の実施の一形態によるアノテーション自動挿入プログラムは、ソースコードを読み込むソースコード入力手段と、静的検証ツールによってソースコードの静的検証を実行する静的検証実行手段と、静的検証によって警告が発せられた事項である指摘事項を記憶する指摘事項記憶手段と、指摘事項から関数呼出に関する事項を関数呼出指摘事項として抜き出す関数呼出指摘事項抽出手段と、関数呼出指摘事項の種類と、種類に対応するアノテーションとを対応づけるテーブルを記憶するアノテーションルール記憶手段と、テーブルにおいて、関数呼出指摘事項抽出手段によって抜き出された関数呼出指摘事項に対応するアノテーションを導出するアノテーション導出手段と、アノテーション導出手段が導出したアノテーションをソースコードに挿入してアノテーション挿入ソースコードを生成するアノテーション挿入手段と、アノテーション挿入ソースコードを出力する結果出力手段とを備える。
本発明の実施の一形態によるアノテーション自動挿入プログラムは、読み込まれたソースコードに対して静的検証ツールによって静的検証を実行する静的検証実行手段と、静的検証ツールによって警告が発せられた事項に対して静的検証ツールが警告を発することを止めるためのアノテーションをソースコードに挿入するアノテーション挿入手段とを備える。
本発明により、静的検証ツールとアノテーションを用いた実行時エラー発生箇所の検出作業を省力化することが可能となる。
次に、本発明の実施の一形態の構成について図面を参照して詳細に説明する。図1を参照すると、本実施の形態におけるシステムは、静的検証ツール1と、入力ソースコード2と、プログラム制御により動作する処理装置3と、情報を記憶する記憶装置4と、出力ソースコード5と、出力指摘事項6とを含む。静的検証ツール1はコンピュータによって実行されるソフトウェアプロダクトである。出力ソースコード5と出力指摘事項6とはコンピュータが出力するテキスト情報である。
静的検証ツール1としては、従来技術の静的検証ツールを適用することができる。本実施の形態ではhttp://www.splint.org/にて公開されているSPlintを想定する。
入力ソースコード2は、本システムを適用する対象であるソースコードである。図5にその一例を示す。
処理装置3は、ソースコード入力手段31と、静的検証実行手段32と、関数呼出指摘事項抽出手段33と、アノテーション導出手段34と、アノテーション挿入手段35と、結果出力手段36とを備えている。これらの手段は、記憶装置に格納され、演算制御装置によって読み出されて実行されるソフトウェアプロダクトである。
これらの手段は、それぞれ概略つぎのように動作する。ソースコード入力手段31は、入力ソースコード2を読み込み、ソースコード記憶部41に格納する。
静的検証実行手段32は、静的検証ツール1を利用してソースコード記憶部41に格納されたソースコードを検証する。静的検証ツール1が構文エラー等の箇所を発見して警告メッセージを発した場合、その警告の種類と警告の対象となったソースコードの場所とを含む指摘事項が指摘事項記憶部42に格納される。
関数呼出指摘事項抽出手段33は、指摘事項記憶部42に格納された指摘事項から、関数呼出に関係する指摘事項のみを抜き出し、関数呼出指摘事項記憶部43に格納する。
アノテーション導出手段34は、関数呼出指摘事項記憶部43に格納された指摘事項と、アノテーションルール記憶部44に格納されているルールを利用し、追加すべきアノテーションを導出し、追加アノテーション記憶部45に格納する。アノテーション挿入手段35は、追加アノテーション記憶部45に格納されたアノテーションを、ソースコード記憶部41に格納されたソースコードに挿入する。結果出力手段36は、ソースコード記憶部41に格納されたソースコードと、指摘事項記憶部42に格納された指摘事項を、出力ソースコード5及び出力指摘事項6として出力する。
記憶装置4は、ソースコード記憶部41と、指摘事項記憶部42と、関数呼出指摘事項記憶部43と、アノテーションルール記憶部44と、追加アノテーション記憶部45とを備えている。
これらの各記憶部は、概略次のような情報を保持する。ソースコード記憶部41は、ソースコード入力手段31により読み込まれた静的検証対象となる入力ソースコード2を保持する。
指摘事項記憶部42は、指摘箇所(静的検証ツール1が警告した問題箇所)の各々について、指摘事項を保持する。保持する内容は、ソースコード上の指摘位置、指摘内容、当該指摘事項が関数呼出に関するものか否か、呼び出された関数、引数である。例を図9に示す。
関数呼出指摘事項記憶部43は、静的検証ツールからの指摘事項のうち、関数呼出に関するもののみを保持する。保持する内容は、指摘位置、指摘内容、呼び出された関数、引数である。例を図10に示す。
アノテーションルール記憶部44は、指摘内容と、その指摘内容に対応して挿入すべきアノテーションを対応付けるルールを保持する。その内容の一例が図8に示されている。本実施の形態の説明を通じて、図8に示された例が用いられる。アノテーションルール記憶部44は、静的検証ツールが出力する可能性のある指摘内容のリストである。アノテーションルール記憶部44は、各指摘内容ごとにアノテーションを保持し、アノテーション挿入手段35が指摘内容に応じてソースコードに挿入すべきアノテーションを決定する際に利用される。この内容の一例が図8で、事前に人手により定義され、本実施の形態を通じて変更されない。
追加アノテーション記憶部45は、本システムにより挿入すべきと判断したアノテーションを保持する。追加アノテーション記憶部45は、アノテーションを追加する対象となる関数である追加対象関数と、各々の追加対象関数の引数のうちアノテーションが追加される対象となる引数と、追加アノテーションとの関係を格納する。例を図11に示す。
次に、図1及び図2を参照して、本実施の形態の動作について詳細に説明する。ソースコード入力手段31が、入力ソースコード2を読み込み、ソースコード記憶部41に格納する(図2のステップA1)。ソースコード記憶部41に格納されたソースコードの例を、図5に示す。
次に、静的検証実行手段32が、従来技術である静的検証ツール1を用いて、ソースコード記憶部41に格納されたソースコードを検証し、得られた指摘事項を指摘事項記憶部42に格納する(図2のステップA2)。この際、指摘位置(指摘事項の発生箇所)及び指摘内容を格納する。関数呼出箇所での指摘事項については、呼び出された関数及び指摘の対象となった引数についても記録する。
例として、この時点でソースコード記憶部41に格納されたソースコードの例が図5に示したものであるとするならば、指摘事項記憶部42に格納される指摘事項は図9に示された内容である。一例について説明すると、図9の指摘11は、図5のmain関数の11行目における関数呼出f1(&j)において、第1引数である&jに「未初期化値を渡している」旨の指摘である。これは関数呼出に関する指摘であるから、「関数呼出箇所での指摘」列はYesとなる。
次に、関数呼出指摘事項抽出手段33が、指摘事項記憶部42に格納された指摘事項のうち、「関数呼出箇所での指摘」列がYesであるものが存在するかを確認し(図2のステップA3)、存在する場合には関数呼出箇所での指摘事項のみを取り出し、関数呼出指摘事項記憶部43に格納する(図2のステップA4)。存在しない場合には、ステップA7へと進む。
例として、指摘事項記憶部42に図9に示されたような内容が格納されている場合、すべての項目が関数呼出箇所での指摘であるので、指摘11,12,13すべての項目が関数呼出指摘事項記憶部43に格納される。従って、関数呼出指摘事項記憶部43の内容は図10に示すものとなる。
次に、アノテーション導出手段34が、関数呼出指摘事項記憶部43の各指摘項目に対して、アノテーションルール記憶部44に格納されたルールから指摘内容の列が一致するものを取り出し、追加アノテーション記憶部45に対して格納する(図2のステップA5)。この際、関数呼出指摘事項記憶部43の「呼び出された関数」列及び「引数」列は、それぞれ追加アノテーション記憶部45の「追加対象関数」列及び「引数」列に格納される。また、アノテーションルール記憶部44のアノテーション列は、追加アノテーション記憶部45の「追加アノテーション」列に格納される。
例として、関数呼出指摘事項記憶部43に図10に示す内容が格納されており、アノテーションルール記憶部44に図8の内容が格納されていたとすれば、追加アノテーション記憶部45の内容は図11の内容となる。一例について説明すると、図10に示す指摘11は、「指摘内容」列が「未初期化値を渡している」となっている。図8において「指摘内容」列が「未初期化値を渡している」となっているのはルール1であるから、指摘11は、ルール1と対応付けられる。両者から生成されるのが図11の追加11である。
なお、このステップの主旨は、静的検証ツールによる指摘事項をもとに、静的検証ツールに与えるアノテーションを決定する事にある。この主旨について、ここで用いた例を利用して説明する。
本実施の形態で利用している静的検証ツール1であるSPlintは、特段の指定がなければ関数は未初期化値を受け取らない、という前提条件の上で検証を実施している。しかしながら、図10に示す指摘11のように、静的検証ツール1は、関数f1の第1引数に未初期化値を渡す、と結論付けている。従って、これ以降関数f1の検証を実施する際には、第1引数に関しては「未初期化値を受け取らない」という前提条件を無効とすべきであり、すなわち/*@out@*/というアノテーションを関数f1の第1引数に対して挿入すべきである。
これを実現するために、得られた指摘と対応するアノテーションの情報を図8に保持しておき、このステップで挿入するアノテーションを決める。
次に、アノテーション挿入手段35により、追加アノテーション記憶部45に示されたアノテーションを、ソースコード記憶部41に格納されたソースコードに挿入し、結果をソースコード記憶部41に書き戻す(図2のステップA6)。より具体的には、追加アノテーション記憶部45の「追加対象関数」列で指定された関数の、「引数」列で指定された引数に対し、「追加アノテーション」列で指定されたアノテーションが挿入される。
例として、追加アノテーション記憶部45に図11に示される内容が格納されており、ソースコード記憶部41に図5に示される内容が格納されている場合、アノテーションが挿入された内容は図6に示されるものとなり、この内容がソースコード記憶部41に書き戻される。一例について説明すると、追加アノテーション記憶部45のNo11により、関数f1の第1引数に対し、/*@out@*/というアノテーションを挿入する。この結果が図6の03行目における/*@out@*/である。
以上のように図2のステップA6が終了すると、処理は図2のステップA2に戻る。次に、図2のステップA2が再度実行される。例のみを説明すると、ソースコード記憶部41に図6の内容が格納されていた場合、指摘事項記憶部42に格納される内容は図12のようになる。一度目のステップA2実行とは違う内容が指摘事項記憶部42に格納される事になるが、これはアノテーション挿入の効果である。一例として、図12のNo21は、図6の21行目にて、未初期化値を参照している旨の指摘をうけている。これは、04行目において関数f2の第2引数に/*@out@*/というアノテーションが挿入された事により、静的検証ツールにより関数f2の第2引数に未初期化値が渡される可能性を考慮した検証が実施された結果、指摘されたものである。
次に、図2のステップA3,A4が再度実行される。例のみを説明すると、指摘事項記憶部42に図12に示されたような内容が格納されている場合、「関数呼出箇所での指摘」がYesであるのは指摘22であるので、指摘22のみが抽出され、関数呼出指摘事項記憶部43に格納される。この結果、関数呼出指摘事項記憶部43の内容は図13に示すように、指摘22のみを格納した内容となる。
次に、図2のステップA5が再度実行される。例のみを説明すると、関数呼出指摘事項記憶部43に図13に示す内容が格納されており、アノテーションルール記憶部44に図8の内容が格納されていたとすれば、追加アノテーション記憶部45の内容は図14の内容となる。一例について説明すると、図13に示す指摘22は、「指摘内容」列が「NULLを渡している」となっている。図8において「指摘内容」列が「NULLを渡している」となっているのはルール1であるから、指摘22は、ルール1と対応付けられる。両者から生成されるのが図14の追加22である。
次に、図2のステップA6が再度実行される。例のみを説明すると、追加アノテーション記憶部45に図14に示される内容が格納されており、ソースコード記憶部41に図6に示される内容が格納されている場合、アノテーションが挿入された内容は図7に示されるものとなり、ソースコード記憶部41に書き戻される。図14の追加22により、関数f3の第1引数に対し、/*@null@*/というアノテーションが挿入される。この結果が図7の05行目における/*@null@*/である。
図2のステップA6が終了したため、処理は再び図2のステップA2に戻る。次に、図2のステップA2が再度実行される。例のみを説明すると、ソースコード記憶部41に図7の内容が格納されていた場合、指摘事項記憶部42に格納される内容は図15のとおりとなる。
次に、図2のステップA3が再度実行される。例のみを説明すると、指摘事項記憶部42に図15に示されたような内容が格納されている場合、「関数呼出箇所での指摘」がYesであるものは存在しない。従って、ステップA7へと進む。
次に、結果出力手段36が、指摘事項記憶部42に格納された指摘事項を出力指摘事項6として出力し、またソースコード記憶部41に格納されたソースコードを出力ソースコード5として、特に加工せず、そのままの形で出力する(図2のステップA7)。
例として、指摘事項記憶部42に図15に示されたような内容が格納されており、ソースコード記憶部41に図7に示されたような内容が格納されていたとすると、そのままの内容が出力される。すなわち、出力指摘事項6として図15の内容を、出力ソースコード5として図7の内容が出力される。
図15に示された指摘事項すなわち指摘31,32は、双方とも関数呼出箇所での指摘ではなく、未初期化値が参照される(指摘31)、NULLが参照される(指摘32)といった、実行時にエラーが出る事に対する指摘である。また、図7の内容により、どのようなアノテーションが追加された結果として、指摘事項が得られたかを確認する事ができる。以上により、本システムのユーザは、アノテーション挿入作業を実施する事なく、実行時エラー発生箇所の指摘を得る事ができる。本発明の一実施形態の動作の説明は以上である。
アノテーション自動挿入プログラムが適用されるシステムの構成を示す。 アノテーション自動挿入プログラムの動作を示す。 静的検証が適用されるソースコードの一例である。 アノテーションを説明するためのソースコードの一例である。 アノテーション自動挿入プログラムが適用されるソースコードの一例である。 アノテーションが挿入されたソースコードの一例である。 アノテーションが挿入されたソースコードの一例である。 アノテーションルール記憶部に格納されるデータを示す。 指摘事項記憶部に格納される指摘事項を示す。 関数呼出指摘事項記憶部に格納されるデータを示す。 追加アノテーション記憶部に格納されるデータを示す。 指摘事項記憶部に格納されるデータを示す。 関数呼出指摘事項記憶部に格納されるデータを示す。 追加アノテーション記憶部に格納されるデータを示す。 指摘事項記憶部に格納されるデータを示す。
符号の説明
1 静的検証ツール
2 入力ソースコード
3 処理装置
4 記憶装置
5 出力ソースコード
6 出力指摘事項
31 ソースコード入力手段
32 静的検証実行手段
33 関数呼出指摘事項抽出手段
34 アノテーション導出手段
35 アノテーション挿入手段
36 結果出力手段

Claims (2)

  1. ソースコードを読み込むソースコード入力手段と、
    静的検証ツールによって前記ソースコードの静的検証を実行する静的検証実行手段と、
    前記静的検証によって警告が発せられた事項である指摘事項を記憶する指摘事項記憶手段と、
    前記指摘事項から関数呼出に関する事項を関数呼出指摘事項として抜き出す関数呼出指摘事項抽出手段と、
    前記関数呼出指摘事項の種類と、前記種類に対応するアノテーションとを対応づけるテーブルを記憶するアノテーションルール記憶手段と、
    前記テーブルにおいて、前記関数呼出指摘事項抽出手段によって抜き出された前記関数呼出指摘事項に対応する前記アノテーションを導出するアノテーション導出手段と、
    前記アノテーション導出手段が導出した前記アノテーションを前記ソースコードに挿入してアノテーション挿入ソースコードを生成するアノテーション挿入手段と、
    前記アノテーション挿入ソースコードを出力する結果出力手段
    してコンピュータを機能させるアノテーション自動挿入プログラム。
  2. 請求項1に記載されたアノテーション自動挿入プログラムであって、
    前記アノテーションは、前記静的検証ツールによって警告が発せられた事項に対して、
    前記静的検証ツールが警告を発することを止めるための記述である
    アノテーション自動挿入プログラム。
JP2008033324A 2008-02-14 2008-02-14 静的検証ツールのアノテーション自動挿入方法 Expired - Fee Related JP4915362B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008033324A JP4915362B2 (ja) 2008-02-14 2008-02-14 静的検証ツールのアノテーション自動挿入方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008033324A JP4915362B2 (ja) 2008-02-14 2008-02-14 静的検証ツールのアノテーション自動挿入方法

Publications (2)

Publication Number Publication Date
JP2009193335A JP2009193335A (ja) 2009-08-27
JP4915362B2 true JP4915362B2 (ja) 2012-04-11

Family

ID=41075289

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008033324A Expired - Fee Related JP4915362B2 (ja) 2008-02-14 2008-02-14 静的検証ツールのアノテーション自動挿入方法

Country Status (1)

Country Link
JP (1) JP4915362B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5343840B2 (ja) * 2009-12-22 2013-11-13 富士通株式会社 プログラムの解析装置及び解析方法
US8875093B2 (en) * 2012-06-13 2014-10-28 International Business Machines Corporation Instantiating a coding competition to develop a program module in a networked computing environment
KR102028663B1 (ko) 2012-07-24 2019-10-04 삼성전자주식회사 에러 검출 방법 및 장치
CN106681708A (zh) * 2016-11-16 2017-05-17 中国科学院软件研究所 一种基于数据挖掘的源代码注释自动生成方法
KR102269286B1 (ko) * 2020-11-24 2021-06-28 주식회사 비투엔 어노테이션 자동 진단 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3544462B2 (ja) * 1997-10-27 2004-07-21 富士通株式会社 ソースプログラム解析装置およびソースプログラム解析プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2006092475A (ja) * 2004-09-27 2006-04-06 Hitachi Software Eng Co Ltd ソースコードインスペクションシステム

Also Published As

Publication number Publication date
JP2009193335A (ja) 2009-08-27

Similar Documents

Publication Publication Date Title
US10019240B2 (en) Method and apparatus for detecting code change
US8694977B2 (en) Distributed compiling process with instruction signature support
JP4915362B2 (ja) 静的検証ツールのアノテーション自動挿入方法
JP2010097426A (ja) コンピュータプログラム、ソースプログラム入力受付装置及びソースプログラム入力受付方法
EP2778629A1 (en) Method and device for code change detection
JP2008191963A (ja) ソースコード検証システム、ソースコード検証方法、およびソースコード検証用プログラム
US20110202906A1 (en) Compiling method and compiling program
JP5369565B2 (ja) プログラムのエラー情報出力装置、エラー情報出力方法およびエラー情報出力プログラム
JP5188421B2 (ja) ソースコード解析方法およびソースコード解析支援システム
JP5170555B2 (ja) エラートレース簡略化システム、エラートレース簡略化方法、及びプログラム
JP2005339204A (ja) 情報処理装置およびプログラムのテスト方法
JP4929121B2 (ja) ソースプログラム解析装置、ソースプログラム解析方法及びコンピュータプログラム
JP5811859B2 (ja) ソースコードの静的解析装置、システム、方法、及びそのためのプログラム
JP5024252B2 (ja) トレース情報取得装置、トレース情報取得プログラム、および、トレース情報取得方法
JP4983027B2 (ja) チェックプログラム及びチェック方法
JP2007257397A (ja) 競合状態検出処理追加プログラム、競合状態検出処理追加装置、競合状態検出処理追加方法
JP5365846B2 (ja) プログラム検証装置、プログラム検証方法、及び検証機能実行用プログラム
JP6724673B2 (ja) テスト支援プログラム、テスト支援方法及びテスト支援装置
CN116361748B (zh) 一种软件供应链安全检测方法和装置
JP2022177585A (ja) エラーチェックプログラム、情報処理装置およびエラーチェック方法
JP2008129844A (ja) ストアドプロシージャジェネレート装置、方法、プログラム、及びシステム
JP2014154039A (ja) シーケンス監視自動プログラミング装置および自動プログラミング方法
JP2007041777A (ja) 言語処理方法
JP5343840B2 (ja) プログラムの解析装置及び解析方法
JP2012018641A (ja) ソフトウェア開発システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111020

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111207

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

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

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

Free format text: PAYMENT UNTIL: 20150203

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