JP4973997B2 - ソースコード検証処理時間計算装置及び方法 - Google Patents

ソースコード検証処理時間計算装置及び方法 Download PDF

Info

Publication number
JP4973997B2
JP4973997B2 JP2007217334A JP2007217334A JP4973997B2 JP 4973997 B2 JP4973997 B2 JP 4973997B2 JP 2007217334 A JP2007217334 A JP 2007217334A JP 2007217334 A JP2007217334 A JP 2007217334A JP 4973997 B2 JP4973997 B2 JP 4973997B2
Authority
JP
Japan
Prior art keywords
verification
property information
property
source code
time
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
JP2007217334A
Other languages
English (en)
Other versions
JP2009053756A (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 JP2007217334A priority Critical patent/JP4973997B2/ja
Publication of JP2009053756A publication Critical patent/JP2009053756A/ja
Application granted granted Critical
Publication of JP4973997B2 publication Critical patent/JP4973997B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

ソースコードの検証システムおいて、検証処理時間を算出する装置及び方法に関する。
プログラミングのソースコードのコンパイル前や、プログラム実行前に、記述ミスや動作時の不具合を発見するソースコード検証処理としてモデル検査方式がある(例えば、非特許文献1及び2参照)。モデル情報とは、ソースコードを静的解析することで判明する、Control Flow Graph(値域情報)を論理化した論理式である。モデル検査方式とは前述モデル情報を利用してプログラムにおける全てのデータパターン、全ての処理パスを網羅する検証手段である。モデル検査方式を用いたソースコード検証処理は、データパターンや処理パスを全て網羅出来るため、人が想定出来なかった不具合を見つけ出すことが可能である。
ソースコード検証処理に要する時間の計算方法及びプロパティ抽出する方法として、特許文献1に記載の技術がある。これは、まずプログラムを構成している命令を、実行する処理部(計算機、入出力装置)ごとに分類集計する。さらに計算機システムの各部性能(機種)、入力したデータ量等動作環境条件に基づき、命令を実行する各処理部における処理時間を集計する。以上よりバッチジョブの処理時間を計算するという、バッチジョブの処理時間計算装置に関するものである。
ソースコードからプロパティを抽出する方法は、特許文献2に記載の技術がある。これは、まず半導体集積回路の仕様をグラフィカルに編集して得られた設計データに基づき、検証するべきプロパティを生成する。さらにプロパティをアサーション記述に変換するという、アサーション生成システムに関するものである。
特開平1−116845号公報 特開2006−99518号公報 「ソフトウエアは硬い」、日経エレクトロニクス、株式会社日経BP、2005年12月19日、P.8−43 "モデル検査"、[online]、2007年8月13日、ウィキメディア財団(the Wikimedia Foundation)、ウィキペディア (Wikipedia): フリー百科事典、[2007年8月23日検索]、インターネット<http://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%87%E3%83%AB%E6%A4%9C%E6%9F%BB>
モデル検査方式を用いたソースコード検証処理は、データパターンや処理パスを全て網羅する必要があるため、検証にかかるソースの規模が大きくなると、ソースコード検証処理時間が増大してしまう問題がある。ソースコード検証処理時間にタイムアウト時間を設定し、ソースコード検証処理をある程度の時間内で終わらせて、検証時間が増大し過ぎないようにすれば検証の効率が向上するのだが、モデル検査方式を用いたソースコード検証処理には適切なタイムアウト時間を設定する方法がない。よって、本発明は最適なソースコード検証処理のタイムアウト時間設定を可能にすることを目的とする。
本発明のソースコード検証処理時間計算装置は、プロパティ抽出部とプロパティカウント部とを備える。プロパティ抽出部は、ソースコードをモデル化したモデル情報からプロパティ情報を抽出する。プロパティカウント部は、プロパティ情報に基づいてソースコードのソースコード検証のタイムアウト時間を演算する。
ソースコードのモデル情報からプロパティ情報を抽出し、抽出したプロパティ情報からソースコード検証処理のタイムアウト時間を設定する。これによって、モデル検査方式でのソースコード検証処理に、タイムアウト時間が設定可能となり、適切なソースコード検証処理が可能となる。
以下、本発明のソースコード検証処理時間計算装置100の実施形態について、図面を参照し説明する。
図1は、ソースコード検証処理時間計算装置100の実施形態における、ハードウエア構成例を示すブロック図である。尚、ソースコード検証処理時間計算装置100は、ソースコード検証システム240内に配置する。
図1に示すように、本発明の実施形態に係るソースコード検証処理時間計算装置100は、CPU10(Central Processing Unit;中央演算処理装置)と、ハードディスクやメモリ等からなる記憶装置20と、キーボードやマウスからなる入力装置30と、ディスプレイなどの出力装置40と、各装置10〜40を接続するバス50とを備えるコンピュータシステムである。
CPU10は記憶装置20に保存された、本発明のソースコード検証処理時間計算装置、方法及びプログラムに係る演算処理および制御処理を行う。記憶装置20は、本発明に係る各機能、手段を、CD−ROMやDVD等のコンピュータ読み取り可能な記録媒体から読み取られたプログラムや、入力装置30から入力されたプログラム等の実行可能な形式で格納する。さらに記憶装置20は、CPU10の演算時に作業領域として使用される。入力装置30を用いて、ユーザーは本発明に係る命令や設定等を入力出来る。出力装置40は、本発明の各手段を実現したプログラムの実行経過や実行結果を表示する。
図2は、本発明のソースコード検証処理時間計算装置100及び、それを適用したソースコード検証システム240の実施形態の構成を示す図である。
ソースコード検証システム240は、ソースファイル310のソースコードをモデル化したモデル情報に基づいて、ソースコードの適否を検証するシステムである。ソースコード検証システム240では、ソースコード検証処理のタイムアウト時間を設定することが可能である。
ソースコード検証システム240は、モデル化処理部210と、ソースコード検証処理時間計算装置100と、検証設定情報部220と、ソースコード検証処理部230とを具備する。
モデル化処理部210は、ソースファイル310からのソースコードのモデル化を行い、モデル化されたソースコードのモデル情報をソースコード検証処理時間計算装置100へ提供する。モデル化方法は公知の方法を用いることが出来る(例えばPromela(Process Meta Language))。
本発明のソースコード検証処理時間計算装置100は、モデル化処理部210から提供されたモデル情報からプロパティ情報を抽出し、抽出したプロパティ情報に基づきソースコード検証処理のタイムアウト時間を演算する。演算したソースコード検証処理のタイムアウト時間は、検証設定情報部220へ提供する。また、モデル化処理部210から提供されたモデル情報を、ソースコード検証処理部230へ提供する。
ここで、プロパティ情報とはモデル情報から抽出された検査条件論理式である。プロパティ情報としては「ポインタの参照箇所」、「メモリ開放関数が呼ばれている箇所」、「エントリ関数の末尾」、「ポインタ・配列の参照箇所」、「"配列境界"関連の出現箇所」、「文字列操作関数の利用箇所」、「アサーションの記述箇所」を示す検査条件論理式などが例示される。これらプロパティ情報は検証するソースコードによって異なる。
検証設定情報部220は、ソースコード検証処理を実行する際に必要となる、ソースコード検証処理時間計算装置100から提供されるソースコード検証処理のタイムアウト時間や、検証結果のレポート出力方式などの検証設定情報を保持し、ソースコード検証処理部230へ検証設定情報を提供する。
ソースコード検証処理部230は、ソースコード検証処理時間計算装置100から提供されたプロパティ情報と、検証設定情報部220から提供されたソースコード検証処理のタイムアウト時間や検証結果のレポート出力方式などの検証設定情報とに基づき、ソースコード検証処理を実施する。ソースコード検証処理部230は、ソースコード検証処理結果の検証結果ファイル330を生成し、また入出力装置320に備わるディスプレイにソースコード検証処理結果を提供する。
ソースコード検証処理時間計算装置100は、プロパティ抽出部110と、プロパティカウント部120と、プロパティ解析部130とを備える。
プロパティ抽出部110は、モデル化処理部210が作成したモデル情報を取得し、プロパティ情報を抽出して、プロパティカウント部120及びプロパティ解析部130へプロパティ情報を提供する。
プロパティカウント部120は、プロパティ抽出部110から提供されたプロパティ情報と、プロパティ解析部130から提供されたプロパティ情報1個当たりの検証処理時間とに基づき、ソースコード検証処理のタイムアウト時間を算出する。ソースコード毎に算出することで、より適切なタイムアウト時間を求めることが出来る。さらに、プロパティカウント部120は、ソースコード検証処理のタイムアウト時間を検証設定情報部220へ提供し、プロパティ情報をソースコード検証設定処理部230へ提供する。
尚、プロパティ情報1個当たりの検証処理時間は、プロパティ解析部130からではなくプロパティカウント部120に予め定数で与えられていてもよい。この場合、定数で予め与えられることによって、タイムアウト時間の設定処理がより迅速に行える。
プロパティ解析部130は、プロパティ抽出部110から提供されたプロパティ情報に基づき、プロパティ情報1個当たりの検証処理時間を算出する。
図3は、ソースコード検証処理時間計算装置100における、プロパティ抽出部110の実施形態を示す図である。
プロパティ抽出部110は、モデル情報取得部111と、プロパティ抽出処理部112と、抽出情報提供部113とを含む。
モデル情報取得部111は、モデル化処理部210が作成したモデル情報を取得する。
プロパティ抽出処理部112は、モデル情報取得部111のモデル情報からプロパティ情報を抽出する。抽出方法は、予め抽出する検査条件論理式が登録されており、それに該当するものを抽出する。
抽出情報提供部113は、プロパティ抽出処理部112で抽出したプロパティ情報を、プロパティカウント部120及び、プロパティ解析部130へ提供する。
図4は、ソースコード検証処理時間計算装置100における、プロパティカウント部120の実施形態を示す図である。
プロパティカウント部120は、プロパティカウント処理部121と、検証処理時間演算部122と、検証設定情報提供部123とを含む。
プロパティカウント処理部121は、プロパティ抽出部110から提供されたプロパティ情報の個数をカウントし、検証処理時間演算部122へ提供する。
検証処理時間演算部122は、プロパティカウント処理部121から提供されたプロパティ情報の個数と、プロパティ解析部130から提供されたプロパティ情報1個当たりの検証処理時間、または定数として設定されたプロパティ情報1個当たりの検証処理時間とに基づき、ソースコード検証処理のタイムアウト時間を演算する。そしてソースコード検証処理のタイムアウト時間とプロパティ情報とを、検証設定情報提供部123へ提供する。
検証設定情報提供部123は、検証処理時間演算部122より提供されたソースコード検証処理のタイムアウト時間を検証設定情報部220へ提供し、プロパティ情報をソースコード検証処理部230へ提供する。
図5は、ソースコード検証処理時間計算装置100における、プロパティ解析部130の実施形態を示す図である。
プロパティ解析部130は、時間解析処理制御部131と、解析可否判定部132と、解析結果保持部133と、情報表示部134と、処理上限設定部135とを備える。
時間解析処理制御部131は、プロパティ抽出部110から提供されたプロパティ情報の適否を検証する。このプロパティ情報の検証は、ソースコードの検証における当該プロパティ情報に対応する部分の検証を意味する。そしてプロパティ情報の検証完了率を演算し、さらにプロパティ情報の検証完了率を演算する検証時間を演算する。プロパティ情報の検証完了率とは、プロパティ情報の適否の検証が完了したプロパティ情報の個数を、プロパティ情報の個数に対する割合で示したものである。プロパティ情報の検証完了率の演算は、プロパティ情報の検証期間中の任意に設定した時間間隔毎に行う。さらに、プロパティ情報の検証時間に対するプロパティ情報の検証完了率の変化率を演算する。
解析可否判定部132は、時間解析処理制御部131で実行する、プロパティ情報の検証完了率の変化率から、プロパティ情報の検証完了とする時間を判定し、プロパティ情報1個当たりに必要な検証処理時間とする。解析可否判定部132は、時間解析処理制御部131へプロパティ情報1個当たりに必要な検証処理時間を提供する。
解析結果保持部133は、時間解析処理制御部131から提供されるプロパティ情報の検証時間と、プロパティ情報の検証完了率と、プロパティ情報1個当たりに必要な検証処理時間とを解析結果情報として保持する。
情報表示部134は、解析結果保持部133の解析結果情報を入出力装置320に備わるディスプレイに提供する。
処理上限設定部135は、プロパティ情報1個当たりの検証処理時間を、解析結果情報から決定した値に設定する。設定方法は以下の方法が考えられる。1つ目は入出力装置320に備わるディスプレイに表示された結果に基づき、ユーザーが判断し入力した値に決定する方法である。この方法の場合、検証完了率と検証時間のバランスをユーザーが確認してから設定出来るため、より適切なプロパティ情報1個当たりの検証処理時間を設定することが可能となる。2つ目は、時間解析処理制御部131で予め設定された条件に従って、自動でプロパティ情報1個当たりの検証処理時間を決定する方法である。例えば、予め基準時間が設定されているとする。プロパティ情報1個当たりに必要な検証処理時間が、基準時間以上の場合、基準時間をプロパティ情報1個当たりの検証処理時間とする。また基準時間以内の場合、プロパティ情報1個当たりに必要な検証処理時間をプロパティ情報1個当たりの検証処理時間とする。この方法の場合は、検証を迅速に且つユーザー同士での誤差なく実行出来る点で優れている。
尚、本発明ソースコード検証処理時間計算装置100は、ソースコード検証システム240と一体でもよい。
本発明により、モデル検査方式のソースコード検証処理において、ソースコードをモデル化したモデル情報からプロパティ情報を抽出し、抽出したプロパティ情報の個数とプロパティ情報1個当たりの検証処理時間から、ソースコード検証処理のタイムアウト時間が設定可能となる。タイムアウト時間の設定により、従来よりも適切なソースコード検証処理が可能である。
次に、本発明ソースコード検証処理時間計算装置100の、ソースコード検証システム240での処理動作を示したフローチャート図6を参照して、動作の詳細について説明する。
ソースコード検証処理時間計算装置100は、モデル化処理部210からモデル情報が提供されると起動し、プロパティ抽出処理を開始する(図6;ステップS01)。
モデル情報取得部111はモデル情報を取得し、プロパティ抽出処理部112へモデル情報を提供する(図6;ステップS02)。
プロパティ抽出処理部112は、取得したモデル情報から、プロパティ情報を抽出し、プロパティ情報を抽出情報提供部113へ提供する。抽出情報提供部113は、抽出したプロパティ情報をプロパティカウント部120及びプロパティ解析部130に提供する(図6;ステップS03)。
プロパティカウント部120のプロパティカウント処理部121は、抽出したプロパティ情報に基づき、プロパティ情報の個数をカウントする(図6;ステップS04−1)。
プロパティ解析部130は、プロパティ情報に基づき、プロパティ情報1個当たりの検証処理時間を検証処理時間演算部122へ提供する(図6;ステップS04−2)。
検証処理時間演算部122は、プロパティカウント処理部121によってカウントされたプロパティ情報の個数と、プロパティ解析部130で算出されたプロパティ情報1個当たりの検証処理時間を掛けることにより、ソースコード検証処理のタイムアウト時間を演算する(図6;ステップS05)。
尚、プロパティ情報1個当たりの検証処理時間は、プロパティ解析部130からでなく予めプロパティカウント部120に定数で与えられていてもよい。
検証設定情報提供部123は、検証処理時間演算部122より提供されたソースコード検証処理のタイムアウト時間とプロパティ情報とを、検証設定情報部220へ提供する。
検証設定情報部220は、ソースコード検証処理のタイムアウト時間を、ソースコード検証時の設定情報として保存する。検証設定情報部220は、ソースコード検証処理を実行する際に必要となる、ソースコード検証処理のタイムアウト時間や検証結果のレポート出力方式などを検証設定情報として保存し、ソースコード検証処理部230へ検証設定情報を提供する(図6;ステップS06)。
ソースコード検証処理部230が、検証設定情報部220からソースコード検証処理の検証設定情報を受け取り、さらにプロパティカウント部120からプロパティ情報が提供されると本発明ソースコード検証処理時間計算装置100の動作は終了する(図6;ステップS07)。
本発明は、モデル検査方式のソースコード検証において、プロパティ情報の個数とプロパティ情報1個当たりの検証処理時間とによって、ソースコード検証処理のタイムアウト時間の設定を可能にしている。実際に検証するソースコードからプロパティ情報の一部を検証して求める場合と、プロパティ情報1個当たりの検証処理時間は定数として予め設定される場合との両方の対応が可能である。プロパティ情報1個当たりの検証処理時間を実際のソースコードから求めることは、実際の検証処理時間と設定したタイムアウト時間との演算誤差が小さくなる有効な方法である。プロパティ情報1個当たりの検証処理時間が予め定数として与えられた場合は、検証を迅速に且つユーザー同士の誤差なく実行出来る点で優れている。何れの方法も設定したタイムアウト時間によって、従来よりも適切なソースコード検証処理が可能となる。
次に、実際に検証するソースコードからプロパティ情報の一部を抽出して、プロパティ情報1個当たりの検証処理時間の設定する方法の詳細について説明する。
図7は、プロパティ解析部130において、プロパティ情報1個当たりの検証処理時間を設定する動作を示したフローチャートである。
図8は、時間解析処理制御部131の、プロパティ情報の検証完了率を演算する動作を示したものである。
図7及び図8を用いて、図6ステップS04−2での、プロパティ解析部130が、提供されたプロパティ情報に基づきプロパティ情報1個当たりの検証処理時間を演算する処理動作の詳細について説明する。但し、プロパティ情報の分類とは、検査条件論理式を示す情報毎の分類であって、「ポインタの参照箇所」、「メモリ開放関数が呼ばれている箇所」、「エントリ関数の末尾」、「ポインタ・配列の参照箇所」、「"配列境界"関連の出現箇所」、「文字列操作関数の利用箇所」、「アサーションの記述箇所」などの検査条件論理式が分類として例示される。これらプロパティ情報は検証するソースコードによって異なる。
時間解析処理制御部131は、プロパティ抽出部110から提供されたプロパティ情報を取得する(図7;ステップS11)。ここで仮に、分類1である「ポインタ参照箇所」のプロパティ情報α−1、α―2、α―3、α―4、分類2である「メモリ開放関数が呼ばれている箇所」のプロパティ情報β−1、β―2、β―3、β―4、分類3である「エントリ関数の末尾」のプロパティ情報γ−1、γ―2、γ―3、γ―4を取得した例を図8に示す(図8;ステップS11(例))。
時間解析処理制御部131は、プロパティ情報の一部を無作為にサンプリングする(図7;ステップS12)。図8においては、α―1、α−4、β―2、β―3、β―4、γ―1、γ―2が無作為にサンプリングされた場合を示す(図8;ステップS12(例))。
時間解析処理制御部131は、無作為にサンプリングしたプロパティ情報を予め指定したプロパティ分類毎に分類する(図7;ステップS13)。図8においては、分類1にプロパティ情報α―1、α―4が分類され、分類2にプロパティ情報β―2、β―3、β―4が分類され、分類3にプロパティ情報γ―1、γ―2が分類されたことを示す(図8;ステップS13(例))。
ユーザーはプロパティ情報の検証期間中における、プロパティ情報の検証完了率を演算する時間間隔を入出力装置320から任意に設定する。プロパティ情報の検証完了率とは、プロパティ情報の個数に対して、プロパティ情報の適否の検証が完了したプロパティ情報の個数を割合で示したものである(図7;ステップS14)。また、検証完了率を演算する時間間隔は、時間解析処理制御部131で予め任意設定されていてもよい。
時間解析処理制御部131は、分類したプロパティ情報を分類毎に検証し、プロパティ情報の検証期間中において任意設定した時間間隔毎にプロパティ情報の検証完了率を演算する(図7;ステップS15〜S17)。図8においては、分類1、分類2、分類3のそれぞれで検証完了率が演算されたことを示す(図8;ステップS15(例))。サンプリングされたプロパティ情報を分類1〜分類nに分類したとき、任意の検証時間tにおける任意のプロパティ分類i(1≦i≦n)の検証完了率は以下の式で表される。
式:サンプリングされた分類iのプロパティ情報の検証完了率
=(サンプリングされた分類iのプロパティ情報の検証が完了した個数)
/(サンプリングされた分類iのプロパティ情報の個数) ・・・・・(式1)
時間解析処理制御部131は、サンプリングされた分類1〜分類nのプロパティ情報の検証完了率を以下の式で集計する。任意の検証時間tにおける、サンプリングされた全てのプロパティ情報の検証完了率とする(図7;ステップS18)。図8においては、分類1〜分類3までの検証完了率が集計され、サンプリングされた全てのプロパティ情報の検証完了率になったことを示す(図8;ステップS18(例1))。
式:サンプリングされた全てのプロパティ情報の検証完了率=
(サンプリングされた分類1のプロパティ情報の検証完了率)*(サンプリングされた分類1のプロパティ情報の個数/サンプリングされた全てのプロパティ情報の個数)
+(サンプリングされた分類2のプロパティ情報の検証完了率)*(サンプリングされた分類2のプロパティ情報の個数/サンプリングされた全てのプロパティ情報の個数)
+(サンプリングされた分類3のプロパティ情報の検証完了率)*(サンプリングされた分類3のプロパティ情報の個数/サンプリングされた全てのプロパティ情報の個数)
+ ・・・
+(サンプリングされた分類nのプロパティ情報の検証完了率)*(サンプリングされた分類nのプロパティ情報の個数/サンプリングされた全てのプロパティ情報の個数)
・・・・・(式2)
時間解析処理制御部131は、検証期間中に任意設定した時間間隔毎、サンプリングされた全てのプロパティ情報の検証完了率を式2同様に演算する。図8においては、検証完了率を求める検証時間t、t、t、tにおいて、サンプリングされた全てのプロパティ情報の検証完了率を演算することを示す(図8;ステップS18(例2))。
図9は、サンプリングされた全てのプロパティ情報の検証時間と検証完了率との関係を表したものである。図9を用いて、図7のステップS19、S20を説明する。
図9において、サンプリングされた全てのプロパティ情報の検証時間を横軸、サンプリングされた全てのプロパティ情報の検証完了率(図7;ステップS18にて演算されたもの)を縦軸、時間間隔をTとする。傾き(K)はサンプリングされた全てのプロパティ情報検証完了率の変化率を表す。
図9におけるサンプリングされた全てのプロパティ情報の検証時間t〜t(時間間隔T)における、サンプリングされた全てのプロパティ情報の検証完了率の傾き(K)は次式で演算する。
式:サンプリングされた全てのプロパティ情報の検証完了率の傾き(K
=(検証時間tのサンプリングされた全てのプロパティ情報の検証完了率
−検証時間tのサンプリングされた全てのプロパティ情報の検証完了率)
/(サンプリングされた全てのプロパティ情報の検証時間t
−サンプリングされた全てのプロパティ情報の検証時間t;時間間隔T)
・・・・・(式3)
サンプリングされた全てのプロパティ情報の検証完了率を演算する毎に、前回の検証完了率との変化率を式3同様に求める。
解析可否判断部132は、時間間隔毎のサンプリングされた全てのプロパティ情報の検証完了率の傾き(K)から、サンプリングされたプロパティ情報の検証完了とする時間を判定し、検証完了とする時間と検証が完了したサンプリングされたプロパティ情報の数とに基づいて、プロパティ情報1個当たりに必要な検証処理時間を算出する。傾き(K)が一定値を下回る場合、サンプリングされた全てのプロパティ情報の検証完了率は収束したものとし、サンプリングされた全てのプロパティ情報の検証完了率の演算を終了する。傾き(K)が一定値を上回る場合、サンプリングされたプロパティ情報を検証する任意の時間間隔を再設定する。サンプリングされた全てのプロパティ検証完了率の傾き(K)の一定値とは、検証するソースファイル毎に異なる可能性があるため定義しない(図7;ステップS19、S20)。
傾き(K)が一定値を上回る場合は、検証成功率が大きく上昇中であることを示す。よって検証の時間間隔をT+T(T>0)と広げた値に再設定する。
解析結果保持部133は、時間解析処理制御部131から、サンプリングされたプロパティ情報の検証時間と、サンプリングされた全てのプロパティ情報検証完了率と、プロパティ情報1個当たりに必要な検証処理時間とを解析結果情報として取得する。
情報表示部134は、解析結果保持部133から提供された解析結果情報に基づき、横軸をサンプリングされたプロパティ情報の検証時間、縦軸をサンプリングされた全てのプロパティ情報検証率としたグラフ情報を入出力装置320に提供する。
入出力装置320は、情報表示部134から提供されたグラフ情報に基づき、解析結果情報を入出力装置320に備わるディスプレイに表示する(図7;ステップS21)。
処理上限設定部135には、プロパティ情報1個当たりの検証処理時間として決定した値が設定される(図7;ステップS22)。決定する値は、ディスプレイ表示された値からユーザーが判断し入力する値と、時間解析処理制御部131で自動演算された値とのどちらでもよい。ディスプレイ表示された解析結果情報から、ユーザーがプロパティ情報1個当たりの検証処理時間を決める場合は、検証完了率と検証時間のバランスをユーザーが判断出来るため、適切な検証時間が選択出来る。時間解析処理制御部131で自動演算する場合は、より迅速に且つユーザー同士の誤差なく検証を実行することが可能となる。
検証処理時間演算部122は、処理上限設定部135からのプロパティ情報1個当たりの検証処理時間と、プロパティカウント処理部121からのプロパティ情報の個数を掛けることで、ソースコード検証処理のタイムアウト時間を演算する。
以上より、本発明の機能を使用することで、ソースコードによって異なるプロパティ情報1個当たりの検証処理時間を、実際に検証するソースコードのプロパティ情報の一部から演算し求めることが出来る。本発明によって、ソースコード検証処理において、ソースコードに適応したタイムアウト時間設定が可能となる。
図1は、本発明のソースコード検証処理時間計算装置の実施形態におけるハードウエア構成例を示すブロック図である。 図2は、本発明のソースコード検証処理時間計算装置及びそれを適用したソースコード検証システムの実施形態を示す図である。 図3は、ソースコード検証処理時間計算装置における、プロパティ抽出部の実施形態を示す図である。 図4は、ソースコード検証処理時間計算装置における、プロパティカウント部の実施形態を示す図である。 図5は、ソースコード検証処理時間計算装置における、プロパティ解析部の実施形態を示す図である。 図6は、本発明のソースコード検証処理時間計算装置の処理動作を示すフローチャートである。 図7は、プロパティ解析部において、プロパティ情報1個当たりの検証処理時間を設定する動作を示したフローチャートである。 図8は、時間解析処理制御部において、プロパティ情報の検証完了率を演算する動作を示したものである。 図9は、サンプリングされた全てのプロパティ情報の検証時間と検証完了率との関係を表したものである。
符号の説明
10 CPU(Central Processing Unit;情報演算処理装置)
20 記憶装置
30 入力装置
40 出力装置
50 バス
100 ソースコード検証処理時間計算装置
110 プロパティ抽出部
111 モデル情報取得部
112 プロパティ抽出処理部
113 抽出情報提供部
120 プロパティカウント部
121 プロパティカウント処理部
122 検証処理時間演算部
123 検証設定情報提供部
130 プロパティ解析部
131 時間解析処理制御部
132 解析可否判定部
133 解析結果保持部
134 情報表示部
135 処理上限設定部
210 モデル化処理部
220 検証設定情報部
230 ソースコード検証処理部
240 ソースコード検証システム
310 ソースファイル
320 出力装置(ディスプレイ)
330 検証結果ファイル

Claims (12)

  1. ソースコードを静的解析することで判明する制御フローグラフに基づいて、前記ソースコードをモデル記述言語に変換したモデル情報から、予め登録された条件に基づいて検査条件を表す論理式をプロパティ情報として抽出するプロパティ抽出部と、
    前記プロパティ情報に基づいて、前記プロパティ情報1個当たりの検証処理時間を演算するプロパティ解析部と、
    前記プロパティ情報に基づいて、前記ソースコードのソースコード検証処理のタイムアウト時間を演算するプロパティカウント部と
    を具備し、
    前記プロパティ解析部は、
    前記モデル情報と、前記プロパティ情報から無作為にサンプリングされたプロパティ情報とを用いて前記ソースコードを検証し、前記サンプリングされたプロパティ情報の個数に対して、検証が完了した前記サンプリングされたプロパティ情報の個数の割合である検証完了率と、前記サンプリングされたプロパティ情報の検証時間との関係を算出する時間解析処理制御部と、
    前記検証完了率と前記検証時間との関係に基づいて、前記検証完了率が収束した時間を判定して、前記プロパティ情報1個当たりに必要な検証処理時間を算出する解析可否判定部と、
    前記プロパティ情報1個当たりに必要な検証処理時間が予め設定された基準時間以内の場合、前記プロパティ情報1個当たりに必要な検証処理時間を前記プロパティ情報1個当たりの検証処理時間として設定し、前記プロパティ情報1個当たりに必要な検証処理時間が前記基準時間より長い場合、前記基準時間を前記プロパティ情報1個当たりの検証処理時間として設定する処理上限設定部と
    を備え、
    前記プロパティカウント部は、
    前記プロパティ情報の個数をカウントするプロパティカウント処理部と、
    前記プロパティ情報の個数と、前記プロパティ情報1個当たりの検証処理時間とに基づいて、前記タイムアウト時間を演算する検証処理時間演算部と、
    前記タイムアウト時間を出力する検証設定情報提供部と
    を備える
    ソースコード検証処理時間計算装置。
  2. 請求項1に記載のソースコード検証処理時間計算装置であって、
    前記時間解析処理制御部は、
    設定された時間間隔毎に前記検証完了率を算出し、第1の時間における第1検証完了率と、前記第1の時間より後の第2の時間における第2検証完了率とに基づいて、前記検証完了率の変化率を算出し、
    解析可否判定部は、
    前記検証完了率の変化率が一定値を下回る場合、前記第2の時間を前記検証完了率が収束した時間として判定し、前記第2の時間と検証が完了した前記サンプリングされたプロパティ情報の個数とに基づいて、前記プロパティ情報1個当たりに必要な検証処理時間を算出する
    ソースコード検証処理時間計算装置。
  3. 請求項2に記載のソースコード検証処理時間計算装置であって、
    解析可否判定部は、
    前記検証完了率の変化率が一定値を上回る場合、前記設定された時間間隔を長くした再設定された時間間隔を生成し、
    前記時間解析処理制御部は、
    前記再設定された時間間隔毎に前記検証完了率を算出する
    ソースコード検証処理時間計算装置。
  4. 請求項2又は3に記載のソースコード検証処理時間計算装置であって、
    前記時間解析処理制御部は、
    前記サンプリングされたプロパティ情報を、前記検査条件を表す論理式の種類に基づいて第1プロパティ情報と第2プロパティ情報とに分類し、前記第1プロパティ情報又は前記第2プロパティと、前記モデル情報とを用いて前記ソースコードを検証し、前記第1プロパティ情報の個数に対して、検証が完了した前記第1プロパティ情報の個数の割合である第1プロパティ検証完了率と、前記第2プロパティ情報の個数に対して、検証が完了した前記第2プロパティ情報の個数の割合である第2プロパティ検証完了率とをそれぞれ前記設定された時間間隔毎に算出し、前記第1プロパティ検証完了率と前記第2プロパティ検証完了率とを集計して、前記第1検証完了率及び前記第2検証完了率とする
    ソースコード検証処理時間計算装置。
  5. (a)プロパティ抽出部が、ソースコードを静的解析することで判明する制御フローグラフに基づいて、前記ソースコードをモデル記述言語に変換したモデル情報から、予め登録された条件に基づいて検査条件を表す論理式をプロパティ情報として抽出するステップと、
    (b)プロパティ解析部が、前記プロパティ情報に基づいて、前記プロパティ情報1個当たりの検証処理時間を演算するステップと、
    (c)プロパティカウント部が、前記プロパティ情報に基づいて、前記ソースコードのソースコード検証処理のタイムアウト時間を演算するステップと
    を具備し、
    前記ステップ(b)は、
    (b1)前記モデル情報と、前記プロパティ情報から無作為にサンプリングされたプロパティ情報とを用いて前記ソースコードを検証し、前記サンプリングされたプロパティ情報の個数に対して、検証が完了した前記サンプリングされたプロパティ情報の個数の割合である検証完了率と、前記サンプリングされたプロパティ情報の検証時間との関係を算出するステップと、
    (b2)前記検証完了率と前記検証時間との関係に基づいて、前記検証完了率が収束した時間を判定して、前記プロパティ情報1個当たりに必要な検証処理時間を算出するステップと、
    (b3)前記プロパティ情報1個当たりに必要な検証処理時間が予め設定された基準時間以内の場合、前記プロパティ情報1個当たりに必要な検証処理時間を前記プロパティ情報1個当たりの検証処理時間として設定し、前記プロパティ情報1個当たりに必要な検証処理時間が前記基準時間より長い場合、前記基準時間を前記プロパティ情報1個当たりの検証処理時間として設定するステップと
    を備え、
    前記ステップ(c)は、
    (c1)前記プロパティ情報の個数をカウントするステップと、
    (c2)前記プロパティ情報の個数と、前記プロパティ情報1個当たりの検証処理時間とに基づいて、前記タイムアウト時間を演算するステップと、
    (c3)前記タイムアウト時間を出力するステップと
    を備える
    ソースコード検証処理時間計算方法。
  6. 請求項に記載のソースコード検証処理時間計算方法であって、
    前記ステップ(b1)は、
    (b1−1)設定された時間間隔毎に前記検証完了率を算出し、第1の時間における第1検証完了率と、前記第1の時間より後の第2の時間における第2検証完了率とに基づいて、前記検証完了率の変化率を算出するステップ
    を備え、
    前記ステップ(b2)は、
    (b2−1)前記検証完了率の変化率が一定値を下回る場合、前記第2の時間を前記検証完了率が収束した時間として判定し、前記第2の時間と検証が完了した前記サンプリングされたプロパティ情報の個数とに基づいて、前記プロパティ情報1個当たりに必要な検証処理時間を算出するステップ
    を備える
    ソースコード検証処理時間計算方法。
  7. 請求項に記載のソースコード検証処理時間計算方法であって、
    前記ステップ(b2)は、
    (b2−2)前記検証完了率の変化率が一定値を上回る場合、前記設定された時間間隔を長くした再設定された時間間隔を生成するステップ
    を備える
    ソースコード検証処理時間計算方法。
  8. 請求項6又は7に記載のソースコード検証処理時間計算方法であって、
    前記ステップ(b1−1)は、
    (b1−1−1)前記サンプリングされたプロパティ情報を、前記検査条件を表す論理式の種類に基づいて第1プロパティ情報と第2プロパティ情報とに分類するステップと、
    (b1−1−2)前記第1プロパティ情報又は前記第2プロパティと、前記モデル情報とを用いて前記ソースコードを検証し、前記第1プロパティ情報の個数に対して、検証が完了した前記第1プロパティ情報の個数の割合である第1プロパティ検証完了率と、前記第2プロパティ情報の個数に対して、検証が完了した前記第2プロパティ情報の個数の割合である第2プロパティ検証完了率とをそれぞれ前記設定された時間間隔毎に算出するステップと、
    (b1−1−3)前記第1プロパティ検証完了率と前記第2プロパティ検証完了率とを集計して、前記第1検証完了率及び前記第2検証完了率とするステップと
    を備える
    ソースコード検証処理時間計算方法。
  9. (a)ソースコードを静的解析することで判明する制御フローグラフに基づいて、前記ソースコードをモデル記述言語に変換したモデル情報から、予め登録された条件に基づいて検査条件を表す論理式をプロパティ情報として抽出するステップと、
    (b)前記プロパティ情報に基づいて、前記プロパティ情報1個当たりの検証処理時間を演算するステップと、
    (c)前記プロパティ情報に基づいて、前記ソースコードのソースコード検証処理のタイムアウト時間を演算するステップと
    をコンピュータに実行させるためのコンピュータプログラムであって、
    前記ステップ(b)は、
    (b1)前記モデル情報と、前記プロパティ情報から無作為にサンプリングされたプロパティ情報とを用いて前記ソースコードを検証し、前記サンプリングされたプロパティ情報の個数に対して、検証が完了した前記サンプリングされたプロパティ情報の個数の割合である検証完了率と、前記サンプリングされたプロパティ情報の検証時間との関係を算出するステップと、
    (b2)前記検証完了率と前記検証時間との関係に基づいて、前記検証完了率が収束した時間を判定して、前記プロパティ情報1個当たりに必要な検証処理時間を算出するステップと、
    (b3)前記プロパティ情報1個当たりに必要な検証処理時間が予め設定された基準時間以内の場合、前記プロパティ情報1個当たりに必要な検証処理時間を前記プロパティ情報1個当たりの検証処理時間として設定し、前記プロパティ情報1個当たりに必要な検証処理時間が前記基準時間より長い場合、前記基準時間を前記プロパティ情報1個当たりの検証処理時間として設定するステップと
    を含み、
    前記ステップ(c)は、
    (c1)前記プロパティ情報の個数をカウントするステップと、
    (c2)前記プロパティ情報の個数と、前記プロパティ情報1個当たりの検証処理時間とに基づいて、前記タイムアウト時間を演算するステップと、
    (c3)前記タイムアウト時間を出力するステップと
    を含む
    ソースコード検証処理時間計算プログラム。
  10. 請求項に記載のソースコード検証処理時間計算プログラムであって、
    前記ステップ(b1)は、
    (b1−1)設定された時間間隔毎に前記検証完了率を算出し、第1の時間における第1検証完了率と、前記第1の時間より後の第2の時間における第2検証完了率とに基づいて、前記検証完了率の変化率を算出するステップ
    を備え、
    前記ステップ(b2)は、
    (b2−1)前記検証完了率の変化率が一定値を下回る場合、前記第2の時間を前記検証完了率が収束した時間として判定し、前記第2の時間と検証が完了した前記サンプリングされたプロパティ情報の個数とに基づいて、前記プロパティ情報1個当たりに必要な検証処理時間を算出するステップ
    を備える
    ソースコード検証処理時間計算プログラム。
  11. 請求項10に記載のソースコード検証処理時間計算プログラムであって、
    前記ステップ(b2)は、
    (b2−2)前記検証完了率の変化率が一定値を上回る場合、前記設定された時間間隔を長くした再設定された時間間隔を生成するステップ
    を備える
    ソースコード検証処理時間計算プログラム。
  12. 請求項10又は11に記載のソースコード検証処理時間計算プログラムであって、
    前記ステップ(b1−1)は、
    (b1−1−1)前記サンプリングされたプロパティ情報を、前記検査条件を表す論理式の種類に基づいて第1プロパティ情報と第2プロパティ情報とに分類するステップと、
    (b1−1−2)前記第1プロパティ情報又は前記第2プロパティと、前記モデル情報とを用いて前記ソースコードを検証し、前記第1プロパティ情報の個数に対して、検証が完了した前記第1プロパティ情報の個数の割合である第1プロパティ検証完了率と、前記第2プロパティ情報の個数に対して、検証が完了した前記第2プロパティ情報の個数の割合である第2プロパティ検証完了率とをそれぞれ前記設定された時間間隔毎に算出するステップと、
    (b1−1−3)前記第1プロパティ検証完了率と前記第2プロパティ検証完了率とを集計して、前記第1検証完了率及び前記第2検証完了率とするステップと
    を備える
    ソースコード検証処理時間計算プログラム。
JP2007217334A 2007-08-23 2007-08-23 ソースコード検証処理時間計算装置及び方法 Expired - Fee Related JP4973997B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007217334A JP4973997B2 (ja) 2007-08-23 2007-08-23 ソースコード検証処理時間計算装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007217334A JP4973997B2 (ja) 2007-08-23 2007-08-23 ソースコード検証処理時間計算装置及び方法

Publications (2)

Publication Number Publication Date
JP2009053756A JP2009053756A (ja) 2009-03-12
JP4973997B2 true JP4973997B2 (ja) 2012-07-11

Family

ID=40504821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007217334A Expired - Fee Related JP4973997B2 (ja) 2007-08-23 2007-08-23 ソースコード検証処理時間計算装置及び方法

Country Status (1)

Country Link
JP (1) JP4973997B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012043010A (ja) * 2010-08-12 2012-03-01 Nec Corp 負荷分散システム、及び負荷分散方法
WO2019031627A1 (ko) * 2017-08-09 2019-02-14 주식회사 센스톤 가상코드제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드제공방법 및 가상코드제공프로그램
JP2019205897A (ja) * 2019-08-09 2019-12-05 ヘルスグリッド株式会社 生体情報の評価システム及び評価方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3277817B2 (ja) * 1996-08-09 2002-04-22 三菱電機株式会社 データ処理装置
JPH1063550A (ja) * 1996-08-23 1998-03-06 Fujitsu Ltd 実行性能解析表示方法およびその方法を実施するプログラムを記録した媒体
JP2002268879A (ja) * 2001-03-07 2002-09-20 Mitsubishi Electric Corp プログラム設計支援装置、プログラム設計支援方法及びプログラム設計支援方法をコンピュータに実行させるためのプログラム。

Also Published As

Publication number Publication date
JP2009053756A (ja) 2009-03-12

Similar Documents

Publication Publication Date Title
Reiss Testing the reliability of chatgpt for text annotation and classification: A cautionary remark
US9454466B2 (en) Explaining partially illegal combinations in combinatorial models
JP4275659B2 (ja) 遅延解析プログラム、遅延解析装置、および遅延解析方法
JP2011222017A (ja) 技術設計最適化における最も影響力のある設計変数の識別方法
JP4973997B2 (ja) ソースコード検証処理時間計算装置及び方法
US7984403B2 (en) Verification supporting system
WO2018109806A1 (ja) モデル学習装置及びモデル学習方法
JP2016149123A (ja) 未知のバイナリモジュールのための有効な入力を決定する方法及び非一時的なコンピュータ可読媒体
US8718998B2 (en) Identifying initial don't care memory elements for simulation
JP5018781B2 (ja) 信号選択装置、回路修正装置、回路シミュレータ、回路エミュレータ、信号選択方法およびプログラム
US20120291019A1 (en) Program verification apparatus based on model verifying and storage medium
JP4391540B2 (ja) 遅延解析プログラム、該プログラムを記録した記録媒体、遅延解析装置および遅延解析方法
JP5444939B2 (ja) ソフトウェアのテスト方法及びプログラム
JP6831307B2 (ja) 解算出装置、解算出方法及び解算出プログラム
JP5032286B2 (ja) フィルタリング処理方法、フィルタリング処理プログラムおよびフィルタリング装置
JP5755861B2 (ja) テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
CN114077884A (zh) 深度学习模型的模型转换优化装置、方法及可读存储介质
JP4835791B2 (ja) Gui評価システム、gui評価方法およびgui評価用プログラム
JP7420148B2 (ja) 学習装置、学習方法及びプログラム
Thule Verifying the co-simulation orchestration engine for INTO-CPS
JP4564914B2 (ja) アサーション自動生成装置および論理回路設計検証方法
JP5918102B2 (ja) 解析システム、解析装置、解析方法及び解析プログラム
JP6828812B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP5310397B2 (ja) 動作合成検証補助装置、動作合成検証補助方法、プログラム、及び記録媒体
JP7070328B2 (ja) テストデータ生成装置、テストデータ生成方法及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111102

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120224

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120301

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4973997

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150420

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees