JP2009140218A - 構造解析装置、構造解析方法及び構造解析プログラム。 - Google Patents

構造解析装置、構造解析方法及び構造解析プログラム。 Download PDF

Info

Publication number
JP2009140218A
JP2009140218A JP2007315710A JP2007315710A JP2009140218A JP 2009140218 A JP2009140218 A JP 2009140218A JP 2007315710 A JP2007315710 A JP 2007315710A JP 2007315710 A JP2007315710 A JP 2007315710A JP 2009140218 A JP2009140218 A JP 2009140218A
Authority
JP
Japan
Prior art keywords
data
structure data
storage unit
error
design data
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.)
Withdrawn
Application number
JP2007315710A
Other languages
English (en)
Inventor
Yukio Chiwata
幸雄 千綿
Ichiro Shiihara
一郎 椎原
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 Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2007315710A priority Critical patent/JP2009140218A/ja
Publication of JP2009140218A publication Critical patent/JP2009140218A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】擬似エラーについての再度の解析判断を抑制し、解析判断の工数を削減する。
【解決手段】設計データの構造解析を行う構造解析装置であって、設計データ又はユーザにより修正された修正後の設計データを構造解析し、所定の基準に従って記述されていない要素を検出する検出部と、設計データ又は修正後の設計データに基づいて、所定の基準に従って記述されていない要素の情報を含む構造体データを作成する作成部と、修正後の設計データに基づいて作成された構造体データが格納される第1の格納部と、設計データに基づいて作成された構造体データのうちユーザによって選択された構造体データが格納される第2の格納部と、第1の格納部に格納された構造体データのうち第2の格納部に格納された構造体データと一致する構造体データを第1の格納部から削除する比較部と、第1の格納部に格納されている構造体データを出力する出力部とを備える。
【選択図】図2

Description

本発明は、所定の記述言語で記述され、複数の要素から構成されるデータの構造解析装置に関する。
C言語、VHDL(VHSIC Hardware Description Lang
uage)、Verilog(登録商標) HDL等のソフトウェア/ハードウェア記述
言語の記述スタイルや記述構造を所定のルールに従って、設計データの問題点を検出するツールがある。このような検出ツールは、所定のルールに従って静的にチェックするため、機能的に問題とならない箇所があっても、その箇所はエラーとして検出される。設計者は、検出ツールによって検出されたエラーが、機能的に問題とならない擬似エラーか、修正が必要である真性エラーかを解析判断し、設計データの修正を行う。そして、検出ツールにて、修正後の設計データのエラーチェックを再び行う。設計データからエラーが検出されなくなるまで、検出ツールによる検出処理及び設計者による解析判断が行われる。
特開平8−137922号公報
修正後の設計データから検出されたエラーが擬似エラーか真性エラーかの解析判断には、多くの工数を必要とする。修正後の設計データについてのエラーチェックでも同じ原因の擬似エラーが検出された場合、再度の解析判断が必要となる。しかし、同じ原因の擬似エラーについての再度の解析判断は必ずしも必要ではなく、一度解析判断した同じ原因の擬似エラーについては再度の解析判断を無くしたいという要望が大きい。本発明は、擬似エラーについての再度の解析判断を抑制し、解析判断の工数を削減する技術の提供を目的とする。
本発明は前記課題を解決するために、以下の手段を採用した。すなわち、本発明は、所定の記述言語で記述され、複数の要素を含むデータから構成される設計データの構造解析を行う構造解析装置であって、前記設計データ又はユーザにより修正された修正後の前記設計データを構造解析し、所定の基準に従って記述されていない要素を検出する検出部と、前記設計データ又は前記修正後の前記設計データに基づいて、所定の基準に従って記述されていない要素の情報を含む構造体データを作成する作成部と、前記修正後の前記設計データに基づいて作成された前記構造体データが格納される第1の格納部と、前記設計データに基づいて作成された前記構造体データのうちユーザによって選択された前記構造体データが格納される第2の格納部と、前記第1の格納部に格納された前記構造体データと前記第2の格納部に格納された前記構造体データとを比較し、前記第1の格納部に格納された前記構造体データのうち前記第2の格納部に格納された前記構造体データと一致する前記構造体データを、前記第1の格納部から削除する比較部と、前記第1の格納部に格納されている前記構造体データを出力する出力部と、を備える。
本発明によれば、第1の格納部には、修正後の設計データに基づいて作成された構造体データが格納され、第2の格納部には、設計データに基づいて作成された構造体データのうちユーザによって選択された構造体データが格納される。そして、第1の格納部に格納された構造体データと、第2の格納部に格納された構造体データとが比較され、第1の格納部に格納された構造体データのうち第2の格納部に格納された構造体データと一致する構造体データが、第1の格納部から削除される。その結果、ユーザによって一度解析判断
された所定の基準に従って記述されていない要素について検出した擬似エラーについては、ユーザに報告されることが無くなり、ユーザの再度の解析判断を不要とすることが可能となる。
上記構造解析装置において、前記第2の格納部は、前記修正後の前記設計データに基づいて作成された前記構造体データのうちユーザによって選択された前記構造体データが更に格納されてもよい。また、上記構造解析装置において、前記構造体データは、前記所定の基準に従って記述されていない要素の情報を起点として、当該要素を一意に特定できるようにその内容が階層化されていてもよい。
また、本発明は、コンピュータその他の装置、機械等が上記いずれかの処理を実行する方法であってもよい。また、本発明は、コンピュータその他の装置、機械等に、以上のいずれかの機能を実現させるプログラムであってもよい。また、本発明は、そのようなプログラムをコンピュータ等が読み取り可能な記録媒体に記録したものでもよい。
本発明によれば、擬似エラーについての再度の解析判断を抑制し、解析判断の工数を削減することができる。
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
本実施形態に係る構造解析システムは、例えば、ハードウェア記述言語で記述された設計データ(ソースコード)の構造解析を行うコンピュータ1によって実現できる。図1は、本実施形態に係る構造解析システムを実現するコンピュータ1の説明図である。
図1に示すように、コンピュータ1は、コンピュータプログラムを実行し、コンピュータ1を制御するCPU2と、CPU2で実行されるコンピュータプログラムやCPU2が処理するデータを記憶するメモリ3と、CPU2を各種の装置に接続するインターフェース4と、ハードディスク駆動装置5と、可搬媒体駆動装置6と、入力装置7と、表示装置8とを有している。
メモリ3は、CPU2で実行されるプログラムやCPU2で処理されるデータを記憶する。メモリ3は、揮発性のRAM(Random Access Memory)と、不揮発性のROM(Read Only Memory)を含む。
インターフェース4は、USB等のシリアルインターフェース、あるいは、PCI(Peripheral Component Interconnect)等のパラレルインターフェースのいずれでもよい。なお、CPU2と各装置とをインターフェース4で接続しているが、CPU2と各装置との間を異なるインターフェースで接続してもよい。また、複数のインターフェースをブリッジ接続してもよい。
ハードディスク駆動装置5は、メモリ3にロードされるプログラムを格納する。また、ハードディスク駆動装置5は、CPU2で処理されるデータを記憶する。可搬媒体駆動装置6は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、HD−DVD、ブルーレイディスク等の駆動装置である。また、可搬媒体駆動装置6は、フラッシュメモリ等の不揮発性メモリを有するカード媒体の入出力装置であってもよい。可搬媒体駆動装置6が駆動する媒体は、例えば、ハードディスク駆動装置5にインストールされるコンピュータプログラム、入力データ等を保持する
。入力装置7は、例えば、キーボード、マウス、ポインティングデバイス、ワイヤレスリモコン等である。
表示装置8は、CPU2で処理されるデータやメモリ3に記憶されるデータを表示する。表示装置8は、例えば、液晶表示装置、プラズマディスプレイパネル、CRT(Cathode Ray Tube)、エレクトロルミネッセンスパネル等である。
図2は、本実施形態に係るコンピュータ1の機能構成図である。図2に示すコンピュータは、ユーザの操作を受け付けてコンピュータを操作する操作部10と、設計データが格納される設計データベース(以下、設計DBという)11と、チェックルールデータベース(以下、チェックルールDBという)12を参照し、設計DB11に格納されている設計データの検証を行う検証部13と、設計DB11を参照し、設計データと所定の構造ルール(基準)に従って記述されていない要素とに基づいて構造体データを作成する作成部14と、作成部14によって作成された構造体データが格納されるエラーデータベース(以下、エラーDBという)15(本発明の第1の格納部に相当)と、特定の構造体データが格納される擬似エラーデータベース(以下、擬似エラーDBという)16(本発明の第2の格納部に相当)と、擬似エラーDB16への特定の構造体データの格納を制御する制御部17と、エラーDB15に格納されている構造体データと擬似エラーDB16に格納されている構造体データとの比較を行う比較部18と、エラーDB15に格納されている構造体データを出力する出力部19と、メッセージ等を表示させる表示部20とを備える。構造体データとは、所定の構造ルールに従って記述されていない要素の情報及び当該要素を一意に特定するための情報が入力されたデータであり、構造体データの詳細については後述する。
これらの各機能部は、CPU2、メモリ3等を含むコンピュータ1とコンピュータ1上で実行されるプログラムによって実現することができる。
操作部10は、ユーザからの入力を受け付け、所定のコマンドや必要なデータを入力するときなどに操作される。
設計DB11には、設計者ユーザによって作成された設計データが格納される。例えば、設計データは、操作部10が操作されることにより作成され、設計DB11に格納される。また、設計データを記録した記録媒体が可搬媒体駆動装置6に装着され、記録媒体から設計データが読み出され、設計DB11に設計データを格納してもよい。チェックルールDB12には、所定の構造ルールのデータが格納されている。エラーDB15には、検証部13が検出したエラーに基づいて作成部14によって作成された構造体データが格納される。
擬似エラーDB16には、検証部13によって検出されたエラーのうち本質的でないエラーが存在する構造体データが格納される。本質的でないエラーとは、検証部13により検出されるエラーのうち、設計者ユーザによって解析判断され、設計データに存在することが許容されるエラーである。すなわち、本質的でないエラーとは、設計者ユーザが、設計データに意図的に存在させているエラーである。
検証部13は、チェックルールDB12を参照し、設計DB11に格納されている設計データが、所定の構造ルールに従って記述されている否かの検証を行い、設計データに構造上のエラーがあるか否かを検出する。この場合、検証部13は、所定の構造ルールに従って記述されているか否かを、設計データに記述されている要素ごとに行う。
ここで、図3を参照して、設計データについて説明する。図3は、ハードウェア記述言
語で記述された設計データ50の例を示している。図3に示す設計データ50は、モジュール宣言、ポート宣言及び構造・動作記述部等により構成されている。例えば、図3では、構造・動作記述部に含まれる「X<=1'b0」、「Y<=1'b0」、「X<=B」、「
X<=A」、「X=B│A」、「Y=A|C」が要素である。本実施形態では、ハードウ
ェア記述言語はVerilog(登録商標) HDLとして説明するが、VHDLやC言
語等の他の言語を用いてもよい。
作成部14は、所定の構造ルールに従って記述されていない要素(以下、エラー要素という)を起点とする構造体データを作成し、作成した構造体データをエラーDB15に格納する。作成部14は、設計DB11に格納されている設計データを参照することにより、エラー要素を起点とする構造体データを作成する。
例えば、図3に示す設計データ50に基づいて、構造体データを作成した場合、図4に示す構造体メンバ30−34により構成される構造体データ60が作成される。ここでは、図3の100で示す「X=B|A」が所定の構造ルールに従って記述されていないとし
て、検証部13によって検出されていることを前提とする。
以下において、図4を詳細に説明する。図4の構造体メンバ30の「Str0」は、構造体メンバ30を特定するための識別番号であり、構造体メンバ30がエラーDB15に格納された場合のアドレス番号に該当する。また、図4の構造体メンバ31の「Str1」、構造体メンバ32の「Str2」、構造体メンバ33の「Str3」、構造体メンバ34の「Str4」は、それぞれ構造体メンバ31、32、33、34を特定するための識別番号であり、構造体メンバ31、32、33、34がエラーDB15に格納された場合のアドレス番号に該当する。
〈図4の構造体メンバ30の説明〉
図4の構造体メンバ30の「Type」フィールドには、エラー要素の種類が入力される。図3の100で示す「X=B|A」は「=」が使用されているので、図4の構造体メ
ンバ30の「Type」フィールドに「Blocking代入」が入力されている。
図4の構造体メンバ30の「左辺値」「右辺値」「遅延値」の各フィールドには、エラー要素を構成する変数が入力される。図3の100で示す「X=B|A」の左辺値は「X
」であるので、図4の構造体メンバ30の「左辺値」フィールドに「X」が入力されている。また、図4の構造体メンバ30の「右辺値」フィールドには、「Str1」が入力されている。図4の構造体メンバ30の「右辺値」フィールドに構造体メンバ31のアドレス番号である「Str1」を入力することで、構造体メンバ30と構造体メンバ31とを関連付けている。
図4の構造体メンバ30の「遅延値」フィールドには、エラー要素の遅延値が入力される。所定の構造ルールが遅延値をエラーの判断対象としない場合、図4の構造体メンバ30の「遅延値」フィールドには「NULL」が入力される。
図3の100で示す「X=B|A」はIF構文内に記述されており、「X=B|A」を起点とした場合、IF構文は「X=B|A」の上位構文であり、「X=B|A」はIF構文に従属しているといえる。図4の構造体メンバ30の「従属」フィールドに構造体メンバ32のアドレス番号である「Str2」を入力することで、構造体メンバ30と構造体メンバ32とを関連付けている。
〈図4の構造体メンバ31の説明〉
図4の構造体メンバ31の「Type」フィールドには、エラー要素で使用される構文
の種類が入力される。図3の100で示す「X=B|A」の右辺値はOR構文が使用され
ているので、図4の構造体メンバ31の「Type」フィールドに「OR」が入力されている。図3の100で示す「X=B|A」の右辺値の変数の数は二つであるので、図4の
構造体メンバ31の「変数数」フィールドには、「2」が入力されている。図3の100で示す「X=B|A」の右辺値の変数のうちの一つは「B」であり、もう一つは「A」で
あるので、図4の構造体メンバ31の「値1」フィールドには「B」が入力され、「値2」フィールドには「A」が入力されている。図3の100で示す「X=B|A」の右辺値
である「B|A」については、更に階層化することはできないので、図4の構造体メンバ31の「従属」フィールドに「NULL」が入力されている。
〈図4の構造体メンバ32の説明〉
図4の構造体メンバ32の「Type」フィールドには、エラー要素の上位構文の種類が入力される。図3の100で示す「X=B|A」の上位構文は、IF構文であるので、
図4の構造体メンバ32の「Type」フィールドに「IF」が入力されている。図4の構造体メンバ32の「条件」フィールドには、IF構文の条件が入力される。図3の100で示す「X=B|A」についてのIF構文の条件は「RST」かつ「!MODE」であ
るので、図4の構造体メンバ32の「条件」フィールドに「RST&!MODE」が入力されている。図3の100で示す「X=B|A」についてのIF構文はAlways構文
内に記述されており、Always構文はIF構文の上位構文であり、IF構文はAlways構文に従属しているといえる。図4の構文表32の「従属」フィールドに構造体メンバ33のアドレス番号である「Str3」を入力することで、構造体メンバ32と構造体メンバ33とを関連付けている。
〈図4の構造体メンバ33の説明〉
図4の構造体メンバ33の「Type」フィールドには、IF構文の上位構文の種類が入力される。図3の100で示す「X=B|A」についてのIF構文の上位構文は、Al
ways構文であるので、図4の構造体メンバ33の「Type」フィールドに「Always_ff」が入力されている。また、図4の構造体メンバ33の「Type」フィールドの「ff」は、フリップフロップ推定であることを意味している。図4の構造体メンバ33の「Clok信号」「Clok Edge」「Reset信号」「Reset Edge」の各フィールドには、Always構文のイベント式の内容である「posedge CLK or negedge RST」として、「CLK」「Posedge」「RST」「Negedge」が入力されている。所定の構造ルールがSet信号及びSetシーケンスをエラーの判断対象としない場合、図4の構造体メンバ33の「Set信号」「Set Seq.」の各フィールドには「NULL」が入力される。
図3の100で示す「X=B|A」についてのAlways構文はModule構文(
宣言)内に記述されており、Module構文はAlways構文の上位構文であり、Always構文はModule構文に従属しているといえる。図4の構文表33の「従属」フィールドに構造体メンバ34のアドレス番号である「Str4」を入力することで、構造体メンバ33と構造体メンバ34とを関連付けている。
〈図4の構造体メンバ34の説明〉
図4の構造体メンバ34の「Type」フィールドには、Always構文の上位構文の種類が入力される。図3の100で示す「X=B|A」についてのAlways構文の
上位構文は、Module構文であるので、図4の構造体メンバ34の「Type」フィールドに「Module」が入力されている。図4の構造体メンバ34の「Mod名」フィールドには、Module構文のモジュール名である「mod」が入力されている。図3の100で示す「X=B|A」についてのModule構文には、上位構文がないため
、図4の構文表34の「従属」フィールドには「NULL」が入力されている。
このように、構造体データは、複数の構造体メンバにより構成され、複数の構造体メンバは相互に関係付けられている。そして、構造体データが作成されることにより、エラー要素をユニークに特定することができる。すなわち、構造体データは、エラー要素の構造体メンバを起点として、エラー要素を一意に特定できるように構造体データの内容が階層化して作成されている。本実施形態では、エラー要素の構造体メンバを起点として作成されている構造体データを、エラー要素を起点とする構造体データという。
図5を参照して、エラー要素を起点とする構造体データを作成する処理(以下、構造体データ作成処理という)を具体的に説明する。図5は、構造体データ作成処理の流れを示すフローチャートである。また、必要に応じて、図3及び図4を参照する。
まず、作成部14は、検証部13によって検出されたエラー要素が記述されている設計データを設計DB11から取得する(S501)。次に、作成部14は、設計DB11から取得した設計データに基づいて、エラー要素の構造体メンバの作成を開始する(S502)。具体的には、作成部14は、エラー要素の構造体メンバの各フィールドに、エラー要素のType、エラー要素の変数、エラー要素の構造体メンバと関連付けられている構造体メンバのアドレス番号等を入力する。例えば、作成部14は、図3に示す設計データ50に基づいて、図5におけるS502の処理を行う場合、図4の構造体メンバ30の作成を開始する。
次に、作成部14は、エラー要素に所定の構文が含まれているか否かを判定する(S503)。エラー要素に所定の構文が含まれている場合(S503の処理でYES)、作成部14は、所定の構文の構造体メンバの作成を開始する(S504)。所定の構文の一例として、図3の100で示す「X=B|A」ではOR構文であり、設計者ユーザは予めメ
モリ3等に所定の構文を記録させておけばよい。
例えば、作成部14は、図3に示す設計データに基づいて、図5におけるS503の処理を行う場合、図4の構造体メンバ31の作成を開始する。作成部14は、所定の構文の構造体メンバを階層化できる場合(すなわち、所定の構文の構造体メンバに更に上位の構文の構造体メンバを作成できる場合)には更に構造体メンバを作成するが、所定の構文の構造体メンバを階層化できない場合には、所定の構造体メンバの従属フィールドにNULLを入力する。そして、作成部14は、エラー要素の構造体メンバに所定の構文の構造体メンバのアドレス番号を入力することにより、エラー要素の構造体メンバと所定の構文の構造体メンバとを関連付ける。図4に示すように、構造体メンバ30の右辺値フィールドに、構造体メンバ31のアドレス番号「Str1」が入力されることで、構造体メンバ31と構造体メンバ32とが関連付けられている。
次に、作成部14は、エラー要素に上位構文が存在するか否かを判定する(S505)。すなわち、作成部14は、エラー要素の構造体メンバを起点として上位構造体メンバを作成することで、構造体データを構成する構造体メンバを階層化できるか否かを判定する。
エラー要素に上位構文が存在しない場合(S505の処理でNO)、作成部14は、エラー要素の構造体メンバの従属フィールドにNULLを入力する(S506)。そして、作成部14は、S506の処理を行った後、構造体データ作成処理を終了する。
一方、エラー要素に上位構文が存在する場合(S505の処理でYES)、作成部14は、上位構文の構造体メンバの作成を開始する(S507)。そして、作成部14は、設計DB11から取得した設計データの最上位の構文まで、構文ごとに構造体メンバの作成
を開始する(S508)。すなわち、構造体メンバを階層化した場合において、最上位の構造体メンバが作成できるまで、各構文の構造体メンバを作成する。作成部14は、上位の構造体メンバのアドレス番号を下位の構造体メンバの従属フィールドに入力することにより、上位の構造体メンバと下位の構造体メンバとを関連付ける。そして、作成部14は、S508の処理を行った後、構造体データ作成処理を終了する。
例えば、作成部14は、図3に示す設計データに基づいて、図5におけるS507及びS508の処理を行う場合、図4の構造体メンバ32−34の作成を開始する。図4に示すように、構造体メンバ32の従属フィールドに、構造体メンバ33のアドレス番号「Str3」が入力され、構造体メンバ33の従属フィールドに、構造体メンバ34のアドレス番号「Str4」が入力されているため、構造体メンバ30−34が階層的に関連付けられている。
また、S503の処理において、エラー要素に所定の構文が含まれていない場合(S503の処理でNO)、作成部14は、S505に処理を進める。
出力部19は、エラーDB15に格納されている構造体データを取得する。出力部19は、設計DB11を参照し、検証部13によって検出されたエラー要素が設計データに存在する旨のメッセージを表示部20に表示させる。例えば、図3に示す設計データであれば、出力部19は、「X=B|A」について「=」が使用されているため、所定の構造ル
ールに従っていない旨のメッセージを表示部20に表示させる。検証部13によって検出されたエラー要素が設計データに存在する旨のメッセージが表示部20に表示されることにより、設計者ユーザは、設計データに所定の構造ルールに従っていない要素が存在することを認識することができる。
設計者ユーザは、設計データを解析判断し、検証部13によって検出されたエラーが、真性エラー又は擬似エラーのいずれかであるかを判断する。検証部13によって検出されたエラーが擬似エラーであると設計者ユーザが判断した場合、設計者ユーザは、操作部10を介してエラー要素を指定(選択)する。例えば、設計者ユーザは、表示部20に表示されている設計データにおけるエラー要素のうち、擬似エラーであると判断するエラー要素を指定(選択)する。
検証部13によって検出されたエラーが真性エラーであると設計者ユーザが判断した場合、設計者ユーザは設計データを修正する。例えば、設計者ユーザによって操作部10が操作されることにより、設計DB11に格納されている設計データの修正が行われる。また、修正後の設計データを記録した記録媒体が可搬媒体駆動装置8に装着され、記録媒体から修正後の設計データが読み出され、設計DB11に格納されている設計データを更新することにより、設計DB11に格納されている設計データを修正してもよい。また、コンピュータ1に外部インターフェースを接続することにより、外部インターフェースを介して修正後の設計データをコンピュータ1に入力し、設計DB11に格納されている設計データを更新することにより、設計DB11に格納されている設計データを修正してもよい。
設計DB11に格納されている設計データの修正が行われた後、検証部13によって設計DB11に格納されている修正後の設計データの検証が行われる。そして、作成部14は、修正後の設計データに基づいて構造体データを作成する。この場合、修正前の設計データに基づいて作成された構造体データをエラーDB15から削除し、修正後の設計データに基づいて作成された構造体データをエラーDB15に格納する。
制御部17は、設計者ユーザにより指定されたエラー要素を起点とする構造体データを
エラーDB16に格納する。具体的には、制御部17は、エラーDB16に格納されているエラー要素を起点とする構造体データのうち、設計者ユーザにより指定されたエラー要素を起点とする構造体データをエラーDB15から抽出し、擬似エラーDB16に格納する。
図6を参照して、擬似エラー構造体データを擬似エラーDB16に格納する処理を具体的に説明する。図6は、擬似エラー構造体データを擬似エラーDB16に格納する処理の流れを示すフローチャートである。
まず、制御部17は、操作部10を介して設計者ユーザから入力されるエラー要素の解析判断の結果を受け取る(S601)。具体的には、制御部17は、操作部10を介してエラー要素の指定(選択)を受け付ける。
次に、制御部17は、指定されたエラー要素を起点とする構造体データをエラーDB15から抽出し、抽出した構造体データを抽出データベース(以下、抽出DB)に格納する(S602)。そして、制御部17は、擬似エラーDB16が作成されているか否かを判定する(S603)。
擬似エラーDB16が作成されている場合(S603の処理でYES)、制御部17は、抽出DBに格納されている構造体データを擬似エラーDB16に格納する(S604)。一方、擬似エラーDB16が作成されていない場合(S603の処理でNO)、制御部17は、抽出DBを擬似エラーDB16に変更する(S605)。
擬似エラーDB16が作成されている場合には、抽出DBに格納された構造体データを擬似エラーDB16に格納されている構造体データに追加して、擬似エラーDB16に格納することになる。擬似エラーDB16が作成されていない場合には、抽出DBが擬似エラーDB16に変更されることにより、抽出DBが擬似エラーDB16となる。
上記説明したように、指定されたエラー要素を起点とする構造体データがエラーDB15から抽出され、抽出された構造体データが抽出DBに格納されるが、抽出DBを介さずに、指定されたエラー要素を起点とする構造体データを擬似エラーDB16に直接格納するようにしてもよい。すなわち、図6のS601の処理の後、制御部17は、指定されたエラー要素を起点とする構造体データをエラーDB15から抽出し、擬似エラーDB16に格納するようにしてもよい。擬似エラーDB16が作成されていない場合は、制御部17は、擬似エラーDB16を作成し、作成した擬似エラーDB16に抽出した構造体データを格納するようにすればよい。
比較部18は、エラーDB15に格納されている構造体データと、擬似エラーDB16に格納されている構造体データとを比較する。図7を参照して、比較部18によるエラーDB15に格納されている構造体データと、擬似エラーDB16に格納されている構造体データとを比較する処理(以下、構造体データ比較処理という)を具体的に説明する。図7は、構造体データ比較処理の流れを示すフローチャートである。
まず、比較部18は、エラーDB15に格納されている構造体データをエラーDB15から1件抽出する(S701)。この場合、比較部18は、構造体データをエラーDB15から抽出するのみで、エラーDB15に格納されている構造体データの削除は行わない。
次に、比較部18は、エラーDB15から抽出した構造体データが、擬似エラーDB16に格納されている構造体データと一致するか否かを判定する(S702)。エラーDB
15から抽出した構造体データが、擬似エラーDB16に格納されている構造体データと一致する場合(S702の処理でYES)、比較部18は、当該一致する構造体データをエラーDB15から削除する(S703)。
そして、比較部18は、エラーDB15に格納されている構造体データの全件について、擬似エラーDB16に格納されている構造体データと一致するか否かの処理が終了したかを判定する(S704)。エラーDB15に格納されている構造体データの全件について、擬似エラーDB16に格納されている構造体データと一致するか否かの処理が終了している場合(S704の処理でYES)、比較部18は、エラーDB15に格納されている構造体データの全件について構造体データの比較が終了した信号を出力部19に送り、構造体データ比較処理を終了する。
一方、エラーDB15に格納されている構造体データの全件について、エラーDB15に格納されている構造体データと一致するか否かの処理が終了していない場合(S704の処理でNO)、比較部18は、構造体データの次の1件をエラーDB15から抽出する(S705)。そして、比較部18は、S702の処理に進む。
エラーDB15から抽出した構造体データが、擬似エラーDB16に格納されている構造体データと一致しない場合(S702の処理でNO)、比較部18は、当該一致しない構造体データについては、エラーDB15に格納した状態を保持する。すなわち、比較部18は、擬似エラーDB16に格納されている構造体データと一致しない当該構造体データについては、エラーDB15から削除しない。そして、比較部18は、S704の処理に進む。
ここで、図2に示す出力部19の処理について説明する。出力部19は、エラーDB15に格納されている構造体データの全件について構造体データの比較が終了した信号を比較部18から受け取った場合、エラーDB15に格納されている構造体データを取得する。そして、設計DB11を参照し、検証部13によって検出されたエラー要素が設計データに存在する旨のメッセージを表示部20に表示させる。
エラーDB15から抽出した構造体データが、擬似エラーDB16に格納されている構造体データと一致する場合、その一致する構造体データに含まれるエラー要素は、設計者ユーザによって一度解析判断されている。そして、設計者ユーザによって擬似エラーであると判断されたエラー要素を起点とする構造体データが擬似エラーDB16に格納されている。そのため、エラーDB15及び擬似エラーDB16の双方に格納されている構造体データについては、エラーDB15から削除する。エラーDB15及び擬似エラーDB16の双方に格納されている構造体データがエラーDB15から削除されることにより、一度解析判断された擬似エラーについては設計者ユーザに再度の報告が行われない。そのため、一度解析判断した擬似エラーについては、設計者ユーザは再度の解析判断を行わないため、一度解析判断した擬似エラーについての再度の解析判断の工数が削減される。
本実施形態に係る構造解析システムを実行した場合に作成される構造体データを、図8及び図9を参照して説明する。図8の設計データ51を検証部13が検証した場合、図8の200で示す「X=B」は「=」が使用されており、所定の構造ルールに従っていないとしてエラーが検出される。図8の構造体データ61は、図8の200で示すエラー要素「X=B」を起点として作成された構造体データである。そして、図8の構造体データ61は、設計者ユーザの解析判断により擬似エラーであるとの結果に基づき、擬似エラーDB16に格納されているものとする。
図9の設計データ52は、図8の設計データ51が設計者ユーザにより修正された後の
設計データである。図9の設計データ52を検証部13が検証した場合、図9の300で示す「X=B」は「=」が使用されており、所定の構造ルールに従っていないとしてエラーが検出される。また、図9の400で示す「X=#10B」は「=」が使用されており、所定の構造ルールに従っていないとしてエラーが検出される。
図9の構造体データ62は、図9の300で示すエラー要素「X=B」を起点として作成された構造体データである。図9の構造体データ63は、図9の400で示すエラー要素「X=#10B」を起点として作成された構造体データである。図9の構造体データ62は、一度エラーDB15に格納され、擬似エラーDB16に格納されている図8の構造体データ61と比較される。図8の構造体データ61の構造体メンバ36の条件フィールドに入力されている「RST&!MODE」と、図9の構造体データ62の構造体メンバ38の条件フィールドに入力されている「RST&MODE」とは一致しない。すなわち、擬似エラーDB16に格納されている図8の構造体データ61と、エラーDB15に格納されている図9の構造体データ62とは一致しないので、図9の構造体データ62はエラーDB15からは削除されない。すなわち、図9の構造体データ62は、エラーDB15に格納された状態が保持される。そして、図9の300で示す「X=B」は、所定の構造ルールに従っていないとして設計者ユーザに報告され、設計者ユーザによる解析判断が行われる。
図9の構造体データ63は、一度エラーDB15に格納され、比較部18により擬似エラーDB16に格納されている図8の構造体データ61と比較される。エラーDB15に格納されている図9の構造体データ63は、擬似エラーDB16に格納されている図8の構造体データ61と一致するので、エラーDB15から削除される。そのため、図9の400で示すエラー要素「X=#10B」は、設計者ユーザに報告されず、設計者ユーザによる解析判断は行われない。したがって、一度解析判断した擬似エラーについて、設計者ユーザは再度の解析判断を行わないため、一度解析判断した擬似エラーについての再度の解析判断の工数が削減される。
図10は、所定の構造ルールの判断条件が遅延値に依存している場合において、設計データ53に基づいて作成された構造体データ64の説明図である。例えば、所定の構造ルールの判断条件が遅延値に依存している場合、図10の設計データ53を検証部13が検証した場合、図10の500で示す「X=B」は「=」が使用されており、所定の構造ルールに従っていないとしてエラーが検出される。図10に示すように、構造体データ64の構造体メンバ41の遅延値フィールドには、「0」が入力される。図10の構造体データ64は、設計者ユーザの解析判断により擬似エラーであるとの結果に基づき、擬似エラーDB16に格納されているものとする。
図11の設計データ54は、図10に示す設計データ53が設計者ユーザにより修正された後の設計データである。図11の設計データ54を検証部13が検証した場合、図11の600で示す「X=#10B」は「=」が使用されており、所定の構造ルールに従っていないとしてエラーが検出される。図11の構造体データ65は、図11の600で示すエラー要素「X=#10B」を起点として作成された構造体データである。図11に示すように、構造体データ65の構造体メンバ43の遅延値フィールドには、「10」が入力される。図11の構造体データ65はエラーDB15に格納される。図10の構造体データ64の構造体41と、図11の構造体データ65の構造体43とは、遅延値フィールドに入力された値が一致しない。すなわち、擬似エラーDB16に格納されている図10の構造体データ64と、エラーDB15に格納されている図11の構造体データ65とは一致しないので、図11の構造体データ65はエラーDB15からは削除されない。すなわち、図11の構造体データ65は、エラーDB15に格納された状態が保持される。そして、図11の600で示す「X=#10B」は、エラーとして設計者ユーザに報告され
、設計者ユーザによる解析判断が行われる。
〈コンピュータ読み取り可能な記録媒体〉
コンピュータに上記いずれかの機能を実現させるプログラムをコンピュータが読み取り可能な記録媒体に記録することができる。そして、コンピュータに、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。ここで、コンピュータ読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータから読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータから取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、DAT、8mmテープ、メモリカード等がある。また、コンピュータに固定された記録媒体としてハードディスクやROM等がある。
以下に本発明の諸態様を付記としてまとめる。
(付記1)
所定の記述言語で記述され、複数の要素を含むデータから構成される設計データの構造解析を行う構造解析装置であって、
前記設計データ又はユーザにより修正された修正後の前記設計データを構造解析し、所定の基準に従って記述されていない要素を検出する検出部と、
前記設計データ又は前記修正後の前記設計データに基づいて、所定の基準に従って記述されていない要素の情報を含む構造体データを作成する作成部と、
前記修正後の前記設計データに基づいて作成された前記構造体データが格納される第1の格納部と、
前記設計データに基づいて作成された前記構造体データのうちユーザによって選択された前記構造体データが格納される第2の格納部と、
前記第1の格納部に格納された前記構造体データと前記第2の格納部に格納された前記構造体データとを比較し、前記第1の格納部に格納された前記構造体データのうち前記第2の格納部に格納された前記構造体データと一致する前記構造体データを、前記第1の格納部から削除する比較部と、
前記第1の格納部に格納されている前記構造体データを出力する出力部と、を備える構造解析装置。
(付記2)
前記第2の格納部は、前記修正後の前記設計データに基づいて作成された前記構造体データのうちユーザによって選択された前記構造体データが更に格納される付記1に記載の構造解析装置。
(付記3)
前記構造体データは、前記所定の基準に従って記述されていない要素の情報を起点として、当該要素を一意に特定できるようにその内容が階層化されている付記1または2に記載の構造解析装置。
(付記4)
所定の記述言語で記述され、複数の要素を含むデータから構成される設計データの構造解析をコンピュータが行う構造解析方法であって、
前記設計データ又はユーザにより修正された修正後の前記設計データを構造解析し、所定の基準に従って記述されていない要素を検出する検出ステップと、
前記設計データ又は前記修正後の前記設計データに基づいて、所定の基準に従って記述されていない要素の情報を含む構造体データを作成する作成ステップと、
前記修正後の前記設計データに基づいて作成された前記構造体データを第1の格納部に格納するステップと、
前記設計データに基づいて作成された前記構造体データのうちユーザによって選択された前記構造体データを第2の格納部に格納するステップと、
前記第1の格納部に格納された前記構造体データと前記第2の格納部に格納された前記構造体データとを比較し、前記第1の格納部に格納された前記構造体データのうち前記第2の格納部に格納された前記構造体データと一致する前記構造体データを、前記第1の格納部から削除する比較ステップと、
前記第1の格納部に格納されている前記構造体データを出力する出力ステップと、を備える構造解析方法。
(付記5)
前記第2の格納部は、前記修正後の前記設計データに基づいて作成された前記構造体データのうちユーザによって選択された前記構造体データが更に格納される付記4に記載の構造解析方法。
(付記6)
前記構造体データは、前記所定の基準に従って記述されていない要素の情報を起点として、当該要素を一意に特定できるようにその内容が階層化されている付記4または5に記載の構造解析方法。
(付記7)
所定の記述言語で記述され、複数の要素を含むデータから構成される設計データの構造解析を行う構造解析プログラムであって、
前記設計データ又はユーザにより修正された修正後の前記設計データを構造解析し、所定の基準に従って記述されていない要素を検出する検出ステップと、
前記設計データ又は前記修正後の前記設計データに基づいて、所定の基準に従って記述されていない要素の情報を含む構造体データを作成する作成ステップと、
前記修正後の前記設計データに基づいて作成された前記構造体データを第1の格納部に格納するステップと、
前記設計データに基づいて作成された前記構造体データのうちユーザによって選択された前記構造体データを第2の格納部に格納するステップと、
前記第1の格納部に格納された前記構造体データと前記第2の格納部に格納された前記構造体データとを比較し、前記第1の格納部に格納された前記構造体データのうち前記第2の格納部に格納された前記構造体データと一致する前記構造体データを、前記第1の格納部から削除する比較ステップと、
前記第1の格納部に格納されている前記構造体データを出力する出力ステップと、をコンピュータに実行させる構造解析プログラム。
(付記8)
前記第2の格納部は、前記修正後の前記設計データに基づいて作成された前記構造体データのうちユーザによって選択された前記構造体データが更に格納される付記7に記載の構造解析プログラム。
(付記9)
前記構造体データは、前記所定の基準に従って記述されていない要素の情報を起点として、当該要素を一意に特定できるようにその内容が階層化されている付記7または8に記載の構造解析プログラム。
本実施形態に係る構造解析システムを実現するコンピュータの説明図である。 本実施形態に係るコンピュータの機能構成図である。 ハードウェア記述言語で記述された設計データの一例を示す図である。 本実施形態に係る構造体データの説明図である。 本実施形態に係る構造体データ作成処理の流れを示すフローチャートである。 擬似エラー構造体データを擬似エラーDBに格納する処理の流れを示すフローチャートである。 本実施形態に係る構造体データ比較処理の流れを示すフローチャートである。 ハードウェア記述言語で記述された設計データ及び設計データに基づいて作成された構造体データの説明図である。 ハードウェア記述言語で記述された設計データ及び設計データに基づいて作成された構造体データの説明図である。 ハードウェア記述言語で記述された設計データ及び設計データに基づいて作成された構造体データの説明図である。 ハードウェア記述言語で記述された設計データ及び設計データに基づいて作成された構造体データの説明図である。
符号の説明
1 コンピュータ
2 CPU
3 メモリ
4 インターフェース
5 ハードディスク駆動装置
6 可搬媒体駆動装置
7 入力装置
8 表示装置
10 操作部
11 設計データベース
12 チェックルールデータベース
13 検証部
14 作成部
15 エラーデータベース
16 擬似エラーデータベース
17 制御部
18 比較部
19 出力部
20 表示部

Claims (7)

  1. 所定の記述言語で記述され、複数の要素を含むデータから構成される設計データの構造解析を行う構造解析装置であって、
    前記設計データ又はユーザにより修正された修正後の前記設計データを構造解析し、所定の基準に従って記述されていない要素を検出する検出部と、
    前記設計データ又は前記修正後の前記設計データに基づいて、所定の基準に従って記述されていない要素の情報を含む構造体データを作成する作成部と、
    前記修正後の前記設計データに基づいて作成された前記構造体データが格納される第1の格納部と、
    前記設計データに基づいて作成された前記構造体データのうちユーザによって選択された前記構造体データが格納される第2の格納部と、
    前記第1の格納部に格納された前記構造体データと前記第2の格納部に格納された前記構造体データとを比較し、前記第1の格納部に格納された前記構造体データのうち前記第2の格納部に格納された前記構造体データと一致する前記構造体データを、前記第1の格納部から削除する比較部と、
    前記第1の格納部に格納されている前記構造体データを出力する出力部と、を備える構造解析装置。
  2. 前記第2の格納部は、前記修正後の前記設計データに基づいて作成された前記構造体データのうちユーザによって選択された前記構造体データが更に格納される請求項1に記載の構造解析装置。
  3. 前記構造体データは、前記所定の基準に従って記述されていない要素の情報を起点として、当該要素を一意に特定できるようにその内容が階層化されている請求項1または2に記載の構造解析装置。
  4. 所定の記述言語で記述され、複数の要素を含むデータから構成される設計データの構造解析をコンピュータが行う構造解析方法であって、
    前記設計データ又はユーザにより修正された修正後の前記設計データを構造解析し、所定の基準に従って記述されていない要素を検出する検出ステップと、
    前記設計データ又は前記修正後の前記設計データに基づいて、所定の基準に従って記述されていない要素の情報を含む構造体データを作成する作成ステップと、
    前記修正後の前記設計データに基づいて作成された前記構造体データを第1の格納部に格納するステップと、
    前記設計データに基づいて作成された前記構造体データのうちユーザによって選択された前記構造体データを第2の格納部に格納するステップと、
    前記第1の格納部に格納された前記構造体データと前記第2の格納部に格納された前記構造体データとを比較し、前記第1の格納部に格納された前記構造体データのうち前記第2の格納部に格納された前記構造体データと一致する前記構造体データを、前記第1の格納部から削除する比較ステップと、
    前記第1の格納部に格納されている前記構造体データを出力する出力ステップと、を備える構造解析方法。
  5. 前記第2の格納部は、前記修正後の前記設計データに基づいて作成された前記構造体データのうちユーザによって選択された前記構造体データが更に格納される請求項4に記載の構造解析方法。
  6. 前記構造体データは、前記所定の基準に従って記述されていない要素の情報を起点として、当該要素を一意に特定できるようにその内容が階層化されている請求項4または5に
    記載の構造解析方法。
  7. 所定の記述言語で記述され、複数の要素を含むデータから構成される設計データの構造解析を行う構造解析プログラムであって、
    前記設計データ又はユーザにより修正された修正後の前記設計データを構造解析し、所定の基準に従って記述されていない要素を検出する検出ステップと、
    前記設計データ又は前記修正後の前記設計データに基づいて、所定の基準に従って記述されていない要素の情報を含む構造体データを作成する作成ステップと、
    前記修正後の前記設計データに基づいて作成された前記構造体データを第1の格納部に格納するステップと、
    前記設計データに基づいて作成された前記構造体データのうちユーザによって選択された前記構造体データを第2の格納部に格納するステップと、
    前記第1の格納部に格納された前記構造体データと前記第2の格納部に格納された前記構造体データとを比較し、前記第1の格納部に格納された前記構造体データのうち前記第2の格納部に格納された前記構造体データと一致する前記構造体データを、前記第1の格納部から削除する比較ステップと、
    前記第1の格納部に格納されている前記構造体データを出力する出力ステップと、をコンピュータに実行させる構造解析プログラム。
JP2007315710A 2007-12-06 2007-12-06 構造解析装置、構造解析方法及び構造解析プログラム。 Withdrawn JP2009140218A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007315710A JP2009140218A (ja) 2007-12-06 2007-12-06 構造解析装置、構造解析方法及び構造解析プログラム。

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007315710A JP2009140218A (ja) 2007-12-06 2007-12-06 構造解析装置、構造解析方法及び構造解析プログラム。

Publications (1)

Publication Number Publication Date
JP2009140218A true JP2009140218A (ja) 2009-06-25

Family

ID=40870766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007315710A Withdrawn JP2009140218A (ja) 2007-12-06 2007-12-06 構造解析装置、構造解析方法及び構造解析プログラム。

Country Status (1)

Country Link
JP (1) JP2009140218A (ja)

Similar Documents

Publication Publication Date Title
US9734214B2 (en) Metadata-based test data generation
US20080027916A1 (en) Computer program, method, and apparatus for detecting duplicate data
US10261884B2 (en) Method for correcting violation of source code and computer readable recording medium having program performing the same
JP5911878B2 (ja) 双方向テキストチェッカー
KR101554424B1 (ko) 테스트 케이스 생성 자동화 방법 및 장치
US10255047B2 (en) Source code analysis and adjustment system
US20140104182A1 (en) Method for character correction
US10108590B2 (en) Comparing markup language files
JP2017041171A (ja) テストシナリオ生成支援装置およびテストシナリオ生成支援方法
CN110874364B (zh) 一种查询语句处理方法、装置、设备及存储介质
US20100169760A1 (en) Apparatus for displaying instance data, method, and computer program product
KR101419759B1 (ko) 언두 실행이 가능한 전자 문서 구동 장치 및 방법
KR101523206B1 (ko) 기호 입력 기반의 자동 합계가 가능한 스프레드시트 구동 장치 및 방법
KR20190024072A (ko) 가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치 및 방법
US9679092B1 (en) Constraint handling for parameterizable hardware description language
KR101563494B1 (ko) 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치 및 방법
KR101582155B1 (ko) 문자 수정이 용이한 문자 입력 방법과 시스템, 그리고 기록 매체 및 파일 배포 시스템
CN108536576B (zh) 用于对应用程序的测试脚本进行优化的方法和装置
JP2009140218A (ja) 構造解析装置、構造解析方法及び構造解析プログラム。
KR101534493B1 (ko) 구조 변환에 기초한 소스코드 보안 약점 탐지 장치 및 방법
JP5808264B2 (ja) コード生成装置及びコード生成方法及びプログラム
US8843896B2 (en) Metamodeling contextual navigation of computer software applications
JP2016040707A (ja) ソフトウェア検証プログラム、ソフトウェア検証方法及びソフトウェア検証装置
JP6766611B2 (ja) 修正支援プログラム、修正支援方法、および修正支援装置
JP5273057B2 (ja) モジュール更新検出プログラム、モジュール更新検出方法及びモジュール更新検出装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100726

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20101208