JP4200534B2 - データフロー異常検査装置 - Google Patents
データフロー異常検査装置 Download PDFInfo
- Publication number
- JP4200534B2 JP4200534B2 JP03261398A JP3261398A JP4200534B2 JP 4200534 B2 JP4200534 B2 JP 4200534B2 JP 03261398 A JP03261398 A JP 03261398A JP 3261398 A JP3261398 A JP 3261398A JP 4200534 B2 JP4200534 B2 JP 4200534B2
- Authority
- JP
- Japan
- Prior art keywords
- data flow
- path
- flow abnormality
- node
- graph
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
【発明の属する技術分野】
本発明は、作成したコンピュータプログラムのデバッグ作業を行う場合などに使用されるデータフロー異常検査装置に関する。
【0002】
【従来の技術】
コンピュータプログラムの作成は、人間の手によって行われる以上、種々の欠陥が生じうる。その一つに、データフロー異常がある。コンピュータプログラムのソースコードの中に異常なデータフローがあっても、これをコンパイルする際には検出されず、そのまま機械語のプログラムに翻訳される。しかし、このようなプログラムを実行すると、特定のパスを通る動作をするときに、実行が停止し、動作しなくなる場合がある。
【0003】
かかるデータフローの異常を予め検出して、プログラムから排除するための装置として、データフロー異常検査装置が知られている。このデータフロー異常検査装置は、一般にコンピュータに搭載した専用のソフトウェアによって実現される。作成したソースプログラムを予めデータフロー異常検査装置にかけて、データフローの異常を検出し、排除するという作業を行うことによって、作成されたプログラムの信頼性及び品質を向上させることができ、また、そのプログラムの稼働を開始した後に、あるいはそのプログラムを含んだ製品を出荷した後に、データフロー異常に基づく重大な欠陥が発生するという可能性が軽減される。
【0004】
【発明が解決しようとする課題】
従来のデータフロー異常検査装置は、検査対象となるソースプログラムが入力されると、「データフロー異常の検出」と「データフロー異常が起こるパスの探索」という二つの作業を行う。「データフロー異常の検出」とは、データフロー異常がプログラム上のどこに発生しているかを探し出す作業である。一方、「データフロー異常が起こるパスの探索」とは、データフロー異常がどのようなパスを通ったときにそれが発生するのかを知るために、ソースプログラムの中のパスを調べる作業である。
【0005】
ところで、データフロー異常検査装置によってソースプログラムのデータフロー異常を検査する場合、その検査対象とされるプログラムの規模が大きくなるに従ってデータフロー異常の検査に要する時間が急激に増大する。これは、データフロー異常検査のうち、特にデータフロー異常が起こるパスの探索を行う際にプログラム中にあるすべてのパスを辿るため、通常プログラムの規模が大きくなるとパスの数も急激に多くなるからである。一般的なワークステーション上で行うこのようなパスの探索は、プログラムの規模によっては数日から1週間程度かかる場合がある。
【0006】
このようにパスの探索に長い時間がかかると、その間プログラマーはいつになったらデータフロー異常の検査が終了するのかを知ることができず、ワークステーションがそのデータフロー異常の検査のためだけに専有された状態で、作業が終了するまで待つしかなかった。また、このようにデータフロー異常の検査に要する時間が長くかかると、途中でそのワークステーションを他の用途に使用する必要が生じた場合には、途中でデータフロー異常の検査を中止しなければならず、それまでに費やした時間が無駄になることがあった。
【0007】
本発明は、上記事情に基づいてなされたものであり、データフロー異常が起こるパスの探索を実行する際に自動的にそのソースプログラムのパス数を見積もって、データフロー異常の検査においてパスの探索も行うかどうかの判断を行いやすくすることができるようにしたデータフロー異常検査装置を提供することを目的とするものである。
【0008】
【課題を解決するための手段】
上記の課題を解決するために、本発明は、ソースプログラムに対してデータフロー異常の検出と、そのようなデータフロー異常が起こるパスの探索とを行うデータフロー異常検査手段を備えたデータフロー異常検査装置において、前記データフロー異常が起こるパスの探索を行うか否かを決定する閾値となるパス数を設定するためのパス数設定手段と、
前記検査対象のソースプログラムのフローグラフを作成するフローグラフ作成手段と、
前記フローグラフ作成手段により作成された前記フローグラフから制御依存グラフを作成する制御依存グラフ作成手段と、前記制御依存グラフ作成手段により作成された前記制御依存グラフのすべてのノードに数値1を付し、全ての分岐ノードについて、当該分岐ノードから分岐された二つのノードに付与された数値の合計を当該分岐ノードにおける数値として算出する処理を、開始ノードから最も遠い分岐ノードから開始ノードに向かって繰り返し行って分岐ノードにおける数値を算出し、前記フローグラフ上で最初のノードを実行してから終了のノードに到達する過程において必ず通過する前記フローグラフ上のノードと対応関係にある前記制御依存グラフ上のノードのうち、終了のノード以外のノードに付された全ての数値同士を乗算し、前記乗算した値と前記終了ノードの値を加算し、前記加算した値から一引いた値をパス数として算出するパス数見積もり手段と、前記パス数見積もり手段によって算出されたパス数と前記パス数設定手段により設定されたパス数の閾値とを比較するパス数比較手段と、前記パス数比較手段による比較の結果、前記パス数見積もり手段によって算出されたパス数が前記設定した閾値よりも小さい場合に、前記データフロー異常の検出及び前記データフロー異常が起こるパスの探索を実行するよう、前記データフロー異常検査手段の実行を制御する制御手段と、を具備することを特徴とする。
【0009】
本発明は、上記より、データフロー異常の検査を行う際に、検査対象であるソースプログラムのパス数を予め見積もり、このパス数によって、データフロー異常が起こるパスの探索を実行するかどうかを制御するので、例えば、データフロー異常の検査を実行する前に、その検査にかかる大体の時間が分かり、したがって、探索に非常に長い時間がかかることが分かった場合には探索を中止するなど、それぞれのソースプログラムについて柔軟な対応が可能となる。
【0010】
【発明の実施の形態】
以下に図面を参照して、本発明の一実施形態について説明する。
まず、データフロー異常について簡単に説明する。尚、ここでは、C言語で記述されたソースプログラムに基づいて説明するが、他の言語の場合も同様に考えることができる。一般に、ソースプログラムの中では、データに対しては、「定義(d)」、「未定義(u)」、「参照(r)」という三つのイベントが発生しうる。ここで、「定義(d)」には、データ宣言による明示的な定義あるいは“a=b”の左辺“a”に相当する代入式の左辺値として現れる定義、ファイルのオープンなどがある。「未定義(u)」には、参照不可能になった場合あるいは内容が不定になった場合がある。そして、「参照(r)」は、主に、計算の中で参照される場合と述語の中で参照される場合がある。
【0011】
すべてのデータは、「定義した上で参照し、最後に未定義にする」という一連の順序に従って状態が遷移するように使用しなければならない。あるデータのフローがこの規則に従っているかどうかを調べるために、そのデータのある時点での状態と、これに対するイベントを組み合わせたもの(これを「基本フロー」と称する。)に分解して考えることができる。図1は、データフローを状態遷移図として示した図である。この図で、各ノードは、プログラムによって指定されるデータの状態を示し、Uは未定義、Dは定義、Rは参照、Aはデータフロー異常である。また、各矢印は、ある状態が上記のイベントによって、別の状態(又は同じ状態)へ遷移することを示している。
【0012】
図1に示すように、Uの状態にあるデータに対してdというイベントが発生すると(これを基本フロー「Ud」と書く。以下同様。)、そのデータの状態はDとなる。Uの状態にあるデータに対して、r又はuというイベントが発生すると、そのデータはデータフロー異常Aとなる。また、Rという状態にあるデータに対して、uというイベントが発生すると、そのデータの状態はUとなる。Rという状態にあるデータに対して、dというイベントが発生すると、そのデータの状態はDとなる。Rという状態にあるデータに対して、rというイベントが発生すると、そのデータの状態はRのままである。Dという状態にあるデータに対して、rというイベントが発生すると、そのデータの状態はRとなる。Dという状態にあるデータに対して、d又はuというイベントが発生すると、そのデータの状態はデータフロー異常Aとなる。このように、基本フローは、全部で九種類ある。尚、データフロー異常の状態にあるデータに対しては、どのようなイベントが発生してもデータフロー異常のままであるが、かかる状態は基本フローには含めない。
【0013】
この九種類の基本フローの中で、Dr,Ud,Ru,Rr,Rdの五種類は正しい基本フローと考えられる。一方、Ur,Uu,Du,Ddという四種類は意味論的に考えたときにデータに対して不当な組み合わせでり、これらをデータフロー異常という。例えば「Ur」は、ある文で、変数に値が定義されない状態(未定義)のまま、参照されるというデータフロー異常を示している。
【0014】
図2は、データフロー異常が起こる実際のC言語によるプログラムの一例を示している。尚、ここでは説明の便宜上、各行の左側に行番号を付している。このプログラムにおいて、3行目のif文で、条件分岐があり、nが1より大きい場合だけ4行目で変数iに1というデータがセットされ(すなわち定義され)、6行目で1がセットされたこのiが、jに代入(すなわち参照)されている。これに対して、3行目で、nが1と等しいか又は1より小さい場合には、変数iには1はセットされないが、6行目で、このデータがセットされていないiがjに代入されることになる。これは、上記の「Ur」というデータフロー異常に該当する。
【0015】
「Ur」以外のデータフロー異常は、制御構造上意図的に記述されることもあり得るので、データフロー異常のすべてがプログラムの誤りに関連するものではない。たとえば、「Dd」は、データを参照しないで定義を二度繰り返した場合であり、「Uu」は、続けて未定義にする場合であり、「Du」は、定義してすぐに未定義する場合であり、これらは実際上は無害である。しかし、例えば「Du」の場合は、誤った変数名を参照しているといったプログラム上の誤りが潜んでいる可能性があり、また、これら三種類の組み合わせは、プログラム上必要となる記載でもない。したがって、ここでは「Ur」を含む上記の四種類の組み合わせをすべてデータフロー異常として取り扱う。
【0016】
データフロー異常検査器を用いてデータフロー異常検出を行うと、プログラムに対してデータフロー解析が実行され、まず、プログラムのどの文のどの変数についてどのような種類の異常があるかが検出される。本明細書では、これを「データフロー異常の検出」という。しかし、これだけだとデータフロー異常が起こっている場所が分かるだけである。実際のデバッグ作業等では、更に、このような異常がどのようなパスを通ったときに起こるかが分からなければならない。このため、一般のデータフロー異常検査器では、プログラムのどのようなパスを通ったときにそのようなデータフロー異常が起こるかを併せて調べる。本明細書では、これを「データフロー異常が起こるパスの探索」という。したがって、データフロー異常の検査といった場合には、通常「データフロー異常の検出」と「データフロー異常が起こるパスの探索」の両方を行う。
【0017】
しかし、このような仕方でデータフロー異常の検査を行うには、データフロー異常が起こるパスの探索の際にプログラム上のパスを一つずつ探さなければならない。例えば、ある文で変数に値が定義されないまま参照されるというデータフロー異常が起こった場合、データフロー異常検査器は、そのプログラムあるいは手続きの最初から、その文までのすべてのパスを調べて、異常が起こるパスを見つけ出す。このような作業を実行するのに要する時間は、検査対象となるプログラムの規模が大きくなるに従って、通常、急激に増大する。
【0018】
そこで、本実施形態のデータフロー異常検査装置では、検査対象であるソースプログラムを読み込むと、まず、後述する方法でそのパス数を計算で求め、この求めたパス数に基づいて、これ以降の動作を制御する。パス数が分かれば、そのソースプログラムについて行うデータフロー異常が起こるパスの探索に要する時間をある程度予測することができる。
【0019】
本実施形態では、パス数を計算するために、まず、読み込んだソースプログラムに基づいてフローグラフを作成する。フローグラフを自動的に描くソフトウェアは周知であり、本実施形態でもこのようなソフトウェアを使用する。図3は、C言語による簡単なソースプログラムの一例を示す図、図4はこのソースプログラムに対応するフローグラフを示した図である。フローグラフは、図4に示すように、ソースプログラムに含まれるif文のところで、パスが二つに分かれるように描かれる。尚、C言語には、if文以外にもソースプログラム中で分岐を生じさせる文が用意されているが、このような文はそれに等価なif文に変換してフローグラフを描く。図4に示したフローグラフは、元のソースプログラムが簡単なため、一見してパス数が三つであると分かるが、プログラムの規模が大きくなると、フローグラフだけからパス数を見積もることは困難である。
【0020】
そこで、フローグラフが描かれたら、図5に示すような制御依存グラフを作成し、この制御依存グラフを用いて所定の計算を行うことによって、パス数を見積もる。図5の制御依存グラフは、図4に示した各ノードについて、必ず通過するノードは、「関数f」という最初のノード51のすぐ下のレベルに描き、また、あるif文のノード、例えば図4のノード43の実行結果によって、ノード44或いはノード45が実行されるかどうかが決まる時は、図5の制御依存グラフ上でノード53からノード54,55へのパスが存在する。フローグラフ上でノード間に別のif文がないときは、制御依存グラフ上でノードとノードとの間に制御依存のパスを付ける。制御依存グラフのパスにはif文が真のときに実行されるのか、偽のときに実行されるのかというラベル、それぞれT,Fが付してある。
【0021】
制御依存グラフを描いたら、次の規則に従って、全体のパス数を見積もる。まず、すべてのノードに値1を付す。次に、条件文のノードを開始ノードから遠い順に並べる。具体的には、開始ノードから横形探索で順番付けしたノードの順番の逆順に並べかえる。図5では、条件文はノード53とノード55が存在しており、ノード55の方がノード53より開始ノードから遠いので、結果的には「ノード55」、「ノード53」、「ノード51」の順番に並べる。この順番で各条件文のノードに対して、その条件文のノードにラベルTで依存するすべてのノードの値を掛け算するとともに、ラベルFで依存するすべてのノードの値を掛け算し、その二つの値を加算して得られた値をその条件文のノードの値とする。ラベルTで依存するノードがなければラベルTに対する計算値は1とする。ラベルFも同様に行う。ノード55においては、ラベルTに値1(ノード56)が一つ、ラベルFにも値1(ノード57)が一つ存在するので、
1+1=2
となり、ノード55の値は2となる。同様に、ノード53では、ラベルTに値1(ノード54)が一つ、ラベルFには値2(ノード55)が一つ存在するので、1+2=3
となる。ついで、開始ノードであるノード51は、ラベルTに値1が二つ(ノード52、ノード58)、同じく値3(ノード53)が一つ、ラベルFには値1(ノード59)が一つ存在するので、
1×1×3+1=4
となる。
【0022】
すべての条件文のノードの処理が終わったら、開始ノードの値から1を引く。つまり、
4−1=3
となる。これがそのソースプログラムのパス数となる。図5では、このようにして得られた値は3であり、図4に示したフローグラフのパス数と一致する。
【0023】
このようにして各ノードにおける値を求めたら、制御依存グラフの開始ノードの値から1を引いた値が、そのソースプログラムのパス数となる。
次に、図6及び図7を参照して、本実施形態のデータフロー異常検査装置の動作について説明する。図6は、本実施形態のデータフロー異常検査装置のブロック図、図7は、この動作を示したフローチャートである。
【0024】
尚、図2に示したパス数設定手段21、パス数見積もり手段22、パス数比較手段23、データフロー異常検査手段24は、これらの機能をプログラムとして記憶媒体31に記録したものをコンピュータ30が読み取り、制御部30aの制御のもとでこれらのプログラムを実行することによって、コンピュータ30上で実現することができる。したがって、この記憶媒体31を例えばフレキシブルディスクやCD−ROM等の取り外し可能なものとすれば、この記憶媒体31を配付することによって、この記憶媒体31のプログラムを読み取って実行できる任意のコンピュータ上で本実施形態のデータフロー異常検査装置を実現することができる。
【0025】
図7のフローチャートにおいて、データフロー異常検査装置の動作を開始すると、まず、ユーザーがパス数設定手段21によって所望のパス数を設定する(step1)。このパス数は、データフロー異常が起こるパスの探索を行うかどうかを決定する閾値となる。次に、パス数見積もり手段22は、検査対象であるソースプログラム20を入力する(step2)。検査対象であるソースプログラム20が入力されると、まずこのソースプログラムに基づき、パス数見積もり手段22によってフローグラフが作成される(step3)。フローグラフが作成されると、更にこれに基づいて、パス数見積もり手段22が制御依存グラフを作成する(step4)。step4において制御依存グラフが作成されると、パス数見積もり手段22はこの制御依存グラフに基づいて所定の計算を行って、このソースプログラムのパス数を見積もる(step5)。
【0026】
次に、パス数比較手段23が、パス数見積もり手段22により見積もられたパス数と、パス数設定手段21により設定したパス数とを比較する(step6)。その結果、設定したパス数よりも少なければ、データフロー異常検査手段24は、データフロー異常を生じる変数の検出とデータフロー異常が起こるパスの探索の両方を実行し(step7)、その結果を出力する。一方、設定したパス数と等しいか又はこれよりも多ければ、データフロー異常検査手段24はデータフロー異常を生じる変数の検出は実行するが、データフロー異常が起こるパスの探索は実行しないで、そのプログラムのパス数及びデータフロー異常が起こるパスの探索を実行しない旨をディスプレー等のユーザーインターフェースに表示する(step8)。
【0027】
このように、予めデータフロー異常が起こるパスの探索を実行するかどうかを判定するためのパス数を設定し、検査対象であるプログラムのパス数がこれを超える場合にはデータフロー異常の検出は行うがデータフロー異常が起こるパスの探索は行わないようにすることによって、コンピュータが不必要にデータフロー異常の検査だけに専有されることを防止することができる。
【0028】
尚、本発明は、上記実施形態に限定されるものではなく、その要旨の範囲内で種々の変更が可能である。例えば、上記のように、予めパス数を設定してからプログラムのパス数を見積もる場合の他に、先に検査対象であるソースプログラムのパス数を見積もって、その値を見てから、オペレータがデータフロー異常が起こるパスの探索を実行するかどうかを判断するようにしてもよい。このようにすれば、検査対象であるソースプログラムのパス数が設定したパス数よりも多いが、その差がほんの僅かなため探索を実行する方が合理的であるという場合にも、柔軟に対応することができる。また、上記実施形態では、フローグラフからパス数を求める方法として、制御依存グラフを作成し、これに基づいてパス数を計算するという方法を採ったが、これ以外の周知の方法でパス数を見積もるようにしてもよい。
【0029】
更に、上記のように見積もったパス数を表示するだけでなく、得られたパス数から、そのパス数の場合にデータフロー異常の検査に要する時間を求め、その時間だけ、あるいはパス数と時間の両方を表示するようにしてもよい。
【0030】
また、本発明の各手段をコンピュータに行わせるように動作するプログラムを作成し、コンピュータに実行させることで、コンピュータを本発明のデータフロー異常検査装置として利用することができる。またこの場合、プログラムを記録媒体、例えば、CD−ROM、フロッピーディスク、光磁気ディスク、磁気テープなどに記録することにより、当該記録媒体を読み込むことのできるコンピュータを容易に本発明のデータフロー異常検査装置として利用できることは言うまでもない。
【0031】
【発明の効果】
以上説明したように、本発明によれば、ソースプログラムを読み込んだ後、データフロー異常の検査を実行する前に、パス数見積もり手段によって、そのソースプログラムのパス数を見積もり、その結果に基づいてデータフロー異常の検査手段の処理の実行を制御するので、例えばパス数が非常に多いためそのままパスの探索を実行すると、予定の時間を大幅に超えることが分かった場合には、例えばデータフロー異常の検出だけを行い、データフロー異常が起こるパスの探索を行わないようにしたり、または処理能力の高い別のワークステーションで検査を実行するなど、柔軟な対応が可能となり、作業を効率化することができる。
【0032】
また、予めオペレータが所定のパス数を設定しておき、パス数見積もり手段によって得られたパス数がこの所定の値以下の場合には前記データフロー異常検査手段によって前記ソースプログラムに対してデータフロー異常の検査を行うようにし、また、前記パス数が前記所定の値を超える場合にはデータフロー異常の検査のうちデータフロー異常の検出だけを行い、データフロー異常が起こるパスの探索は行わないように自動的に制御するようにしたことによって、パス数見積もり手段によるパス数の見積もりが終了した時点でオペレータが一々その後の動作を指示する必要がなくなり、操作性が向上する。
【0033】
更に、パス数見積もり手段によって前記ソースプログラムのパス数が得られたら、動作を一時停止し、そのパス数をユーザーインターフェースでオペレーターに知らせ、オペレータがこれを見てその後の動作を続行するかどうかを決定できるようにしたことによって、例えば、検査対象であるソースプログラムのパス数が設定したパス数よりも多いが、その差がほんの僅かなためデータフロー異常が起こるパスの探索を実行するのが合理的であるというような場合にも、柔軟に対応することができる。
【図面の簡単な説明】
【図1】ソースプログラムのデータフローを状態遷移図として示した図である。
【図2】データフロー異常が起こる実際のプログラムの一例を示した図である。
【図3】簡単なソースプログラムの一例を示した図である。
【図4】図3のソースプログラムに対応するフローグラフを示した図である。
【図5】制御依存グラフの一例を示した図である。
【図6】本発明の一実施形態であるデータフロー異常検査装置のブロック図である。
【図7】本発明の一実施形態であるデータフロー異常検査装置の動作を示したフローチャートである。
【符号の説明】
20 ソースプログラム
21 パス数設定手段
22 パス数見積もり手段
23 パス数比較手段
24 データフロー異常検査手段
30 コンピュータ
30a 制御部
31 記憶媒体
Claims (2)
- ソースプログラムに対してデータフロー異常の検出と、そのようなデータフロー異常が起こるパスの探索とを行うデータフロー異常検査手段を備えたデータフロー異常検査装置において、
前記データフロー異常が起こるパスの探索を行うか否かを決定する閾値となるパス数を設定するためのパス数設定手段と、
前記検査対象のソースプログラムのフローグラフを作成するフローグラフ作成手段と、
前記フローグラフ作成手段により作成された前記フローグラフから制御依存グラフを作成する制御依存グラフ作成手段と、
前記制御依存グラフ作成手段により作成された前記制御依存グラフのすべてのノードに数値1を付し、全ての分岐ノードについて、当該分岐ノードから分岐された二つのノードに付与された数値の合計を当該分岐ノードにおける数値として算出する処理を、開始ノードから最も遠い分岐ノードから開始ノードに向かって繰り返し行って分岐ノードにおける数値を算出し、前記フローグラフ上で最初のノードを実行してから終了のノードに到達する過程において必ず通過する前記フローグラフ上のノードと対応関係にある前記制御依存グラフ上のノードのうち、終了のノード以外のノードに付された全ての数値同士を乗算し、前記乗算した値と前記終了ノードの値を加算し、前記加算した値から一引いた値をパス数として算出するパス数見積もり手段と、
前記パス数見積もり手段によって算出されたパス数と前記パス数設定手段により設定されたパス数の閾値とを比較するパス数比較手段と、
前記パス数比較手段による比較の結果、前記パス数見積もり手段によって算出されたパス数が前記設定した閾値よりも小さい場合に、前記データフロー異常の検出及び前記データフロー異常が起こるパスの探索を実行するよう、前記データフロー異常検査手段の実行を制御する制御手段と、
を具備することを特徴とするデータフロー異常検査装置。 - 請求項1記載のデータフロー異常検査装置の前記各手段としてコンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03261398A JP4200534B2 (ja) | 1997-02-17 | 1998-02-16 | データフロー異常検査装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3241597 | 1997-02-17 | ||
JP9-32415 | 1997-02-17 | ||
JP03261398A JP4200534B2 (ja) | 1997-02-17 | 1998-02-16 | データフロー異常検査装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10289124A JPH10289124A (ja) | 1998-10-27 |
JP4200534B2 true JP4200534B2 (ja) | 2008-12-24 |
Family
ID=26370984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP03261398A Expired - Fee Related JP4200534B2 (ja) | 1997-02-17 | 1998-02-16 | データフロー異常検査装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4200534B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3997495B2 (ja) | 1998-02-05 | 2007-10-24 | 新日鉄ソリューションズ株式会社 | ソフトウェア解析装置及びソフトウェア解析方法 |
JP4947427B2 (ja) * | 2007-11-07 | 2012-06-06 | 日本電気株式会社 | 検査時間制御装置、方法、およびプログラム |
-
1998
- 1998-02-16 JP JP03261398A patent/JP4200534B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10289124A (ja) | 1998-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6658649B1 (en) | Method, apparatus and article of manufacture for debugging a user defined region of code | |
US8091075B2 (en) | Method and apparatus for breakpoint analysis of computer programming code using unexpected code path conditions | |
Korel et al. | Application of Dynamic Slicing in Program Debugging. | |
US7530056B1 (en) | Method and system for detecting runtime defects in a program by comparing correct and incorrect runs | |
US20060041867A1 (en) | Method, apparatus and computer program product for implementing enhanced compiled breakpoint analysis | |
JPH09305432A (ja) | バグ自動検出装置 | |
JP4200534B2 (ja) | データフロー異常検査装置 | |
JP3997495B2 (ja) | ソフトウェア解析装置及びソフトウェア解析方法 | |
JP2016164727A (ja) | テストケース選択装置 | |
JP2001273169A (ja) | プログラムテスト仕様書生成装置 | |
WO2022196219A1 (ja) | プログラム分析装置、プログラム分析方法およびトレース処理追加装置 | |
JPH0926897A (ja) | プログラム解析装置及びプログラム解析方法 | |
Horwitz | Tool support for improving test coverage | |
Khatun et al. | An automatic test suite regeneration technique ensuring state model coverage using UML diagrams and source syntax | |
JP4092750B2 (ja) | 冗長コード検査装置 | |
Cheng | The task dependence net in Ada software development | |
CN114153750B (zh) | 代码检查方法及装置、代码编写方法、电子设备 | |
JP2018151803A (ja) | コンピュータプログラムの検査装置および車両制御用コンピュータプログラムの検査を行う車載装置 | |
JPH01261737A (ja) | 言語プロセッサの検査自動管理方式 | |
JPH03294934A (ja) | 高級プログラム言語用デバッガ | |
Thongkum et al. | The Collaborative Identification of Design Flaws in Software Systems | |
Wendel et al. | FORTRAN error detection through static analysis | |
JP3903514B2 (ja) | 未定義変数検出の最適化コンパイラ装置 | |
JP2623554B2 (ja) | ベクトル計算機における動的ベクトル診断方式 | |
JPS62216047A (ja) | リグレツシヨン防止用テストケ−スの決定方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040913 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070514 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070517 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070713 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071031 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080618 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080812 |
|
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: 20080916 |
|
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: 20080929 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111017 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121017 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131017 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |