JP5757167B2 - 判定作業支援システム、判定作業支援方法、及びプログラム - Google Patents
判定作業支援システム、判定作業支援方法、及びプログラム Download PDFInfo
- Publication number
- JP5757167B2 JP5757167B2 JP2011129146A JP2011129146A JP5757167B2 JP 5757167 B2 JP5757167 B2 JP 5757167B2 JP 2011129146 A JP2011129146 A JP 2011129146A JP 2011129146 A JP2011129146 A JP 2011129146A JP 5757167 B2 JP5757167 B2 JP 5757167B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- indication
- function
- list information
- tool
- 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
以下に、本発明の実施形態について添付図面を参照して説明する。
図1を参照して、本発明に係る判定作業支援システムの構成例について説明する。
なお、初期処理部120は、ソースコード検証ツール210と連携して動作しても良い。例えば、初期処理部120は、ソースコード検証ツール210からツール指摘情報104を受信し、ツール指摘情報104に応じて(ツール指摘情報104の受信を動作開始要求の受信と判断して)動作を開始する。このとき、初期処理部120は、ソースコード検証ツール210からツール指摘情報104と共に、ソースファイル103を受信しても良い。更に、初期処理部120は、ソースコード検証ツール210において設定された検証ルールを参照し、この検証ルールを基に、精査対象外のルール情報を特定し、この精査対象外のルール情報をルール設定情報102としても良い。或いは、初期処理部120は、ルール設定情報102とソースファイル103をソースコード検証ツール210に提供し、検証結果としてソースコード検証ツール210からツール指摘情報104を受信しても良い。
図2を参照して、情報処理部110の構成例の詳細について説明する。
図3を参照して、初期処理部120の構成例の詳細について説明する。
図4を参照して、指摘判定処理部130の構成例の詳細について説明する。
以下に、本発明に係る判定作業支援システムを構成する具体的なハードウェアの例について説明する。
次に、本発明における初期処理の手順、及び、類似指摘の判定処理の手順の詳細について説明する。
先に、本発明における各手順の前提条件について説明する。
図5を参照して、本発明における初期処理の手順について説明する。
まず、情報処理部110において、情報入力部111は、ユーザ操作に応じてユーザ入力情報101を入力し、ユーザ入力情報101を基にルール設定情報102を出力する。情報出力部112は、情報入力部111からのルール設定情報102を入力し、初期処理部120に出力する。
次に、初期処理部120において、初期処理部120の情報取得部121は、ルール設定情報102を取得する。なお、情報取得部121は、情報処理部110からユーザ入力情報101を受信し、ユーザ入力情報101を基にルール設定情報102を作成しても良い。また、情報取得部121は、ソースコード検証ツール210から、ルール設定情報102と、ソースファイル103と、ツール指摘情報104を受信しても良い。
次に、指摘抽出部122は、ツール指摘情報104を読み取り、指摘一覧情報105を作成する。なお、指摘抽出部122は、ソースコード検証ツール210から出力されたツール指摘情報104を直接入力しても良い。
次に、ツール連携部123は、ソースファイル103を読み込む。なお、ツール連携部123は、ソースコード検証ツール210から出力されたソースファイル103を直接入力しても良い。また、ツール連携部123は、ソースコード検証ツール210と同時に、ソースファイル103を読み込んでも良い。或いは、ツール連携部123は、ソースコード検証ツール210に、ソースファイル103を提供しても良い。
次に、ツール連携部123は、ソースファイル103を関数情報抽出ツール220に提供し、関数情報抽出ツール220から実行結果(関数情報)を取得し、関数情報抽出ツール220の実行結果(関数情報)を、関数一覧作成部124に入力する。
関数一覧作成部124は、関数情報抽出ツール220の実行結果(関数情報)を基に、関数一覧情報106を生成する。
次に、ツール連携部123は、ソースファイル103をクローンコード抽出ツール220に提供し、クローンコード抽出ツール220から実行結果(類似コード情報)を取得し、クローンコード抽出ツール220の実行結果(類似コード情報)をクローンコード判定部125に入力する。
次に、クローンコード判定部125は、クローンコード抽出ツール220の実行結果(類似コード情報)を基に、関数一覧情報106に含まれる類似コードを持つ関数を判定する。
次に、ルール判定部126は、ルール設定情報102を参照して、指摘一覧情報105のうち、精査の必要がない指摘(精査対象外の指摘)の判定を行う。
図6を参照して、類似指摘を判定し、ユーザが精査作業をするまでの処理の手順について説明する。
まず、指摘判定処理部130において、変数抽出部131は、指摘一覧情報105、関数一覧情報106を取得し、指摘箇所の関数内のソースコードを抽出し、指摘箇所から、「問題となる変数」、「プログラムのプロセス上、問題となる変数に代入を行う変数」、及び「条件分岐に利用される変数」を抽出し、抽出された各変数の情報を関連処理抽出部132に提供する。
次に、関連処理抽出部132は、指摘判定処理部130により抽出された各変数の情報を基に、「関数内で各変数が実施された処理」と「宣言位置」を特定する。ここでは、関連処理抽出部132は、変数が実施された処理について、プログラム中で当該変数が利用された箇所を遡って全て抽出する。また、関連処理抽出部132は、ローカル変数(関数内で宣言)、関数の引数、グローバル変数の種別を判定し、各変数の宣言位置を特定する。なお、関連処理抽出部132は、対象となる変数が、ローカル変数、関数の引数のいずれでもない場合に、グローバル変数の宣言位置を特定する。
次に、関連処理抽出部132は、上記の変数、宣言位置、処理内容を一覧にまとめて(集約・統合して)、指摘関連変数一覧情報107を作成する。
次に、類似指摘判定部133は、指摘一覧情報105、関数一覧情報106、及び指摘関連変数一覧情報107を取得し、指摘一覧情報105中の同じルールで検証された2つの指摘の類似チェックを実施する。ここでは、類似指摘判定部133は、関数一覧情報106の類似情報と、指摘関連変数一覧情報107の情報の宣言位置及び処理内容の情報との2つの情報を基に、2つの指摘が類似であるか判定する。
次に、類似指摘判定部133は、類似と判定された指摘について、指摘一覧情報105に類似判定情報を追加する。
次に、ユーザ報告部134は、指摘一覧情報105と指摘関連変数一覧情報107を、情報処理部110の情報出力部112に提供し、ユーザ側の表示装置に一覧を表示する。
次に、ユーザは、指摘一覧情報105と指摘関連変数一覧情報107の情報を基に、指摘の実バグ、非バグについて精査を実施する。このとき、情報処理部110の情報入力部111は、ユーザ操作に応じてユーザ入力情報101を入力し、ユーザ入力情報101を基に精査結果を作成する。情報処理部110の情報出力部112は、精査結果をユーザ報告部134に提供する。ユーザ報告部134は、精査結果を、類似指摘判定部133に提供する。
次に、類似指摘判定部133は、ユーザ報告部134から受け取った情報(精査結果)と、指摘一覧情報105の類似フラグの情報を基に、精査された指摘と類似した指摘を、同じ精査結果に更新する。すなわち、類似指摘判定部133は、精査結果に応じて、指摘一覧情報105を更新する。
類似指摘判定部133は、指摘一覧情報105の更新後、精査されていない指摘が存在するか確認する。類似指摘判定部133は、精査されていない指摘が存在する場合、ユーザ報告部134での作業を再開する。ユーザ報告部134は、再度、指摘一覧情報105と指摘関連変数一覧情報107を、情報処理部110の情報出力部112に提供し、ユーザ側の表示装置に一覧を表示する。また、類似指摘判定部133は、精査されていない指摘が存在しない(全て精査されている)場合、作業を完了する。
以上のように、本発明に係る判定作業支援システムは、プログラムのソースコードの検証の際、ソースコード検証ツールが発見した指摘に対して精査を実施する作業を支援し、作業効率を向上するシステムである。
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
102… ルール設定情報
103… ソースファイル
104… ツール指摘情報
105… 指摘一覧情報
106… 関数一覧情報
107… 指摘関連変数一覧情報
110… 情報処理部
111… 情報入力部
112… 情報出力部
120… 初期処理部
121… 情報取得部
122… 指摘抽出部
123… ツール連携部
124… 関数一覧作成
125… クローンコード判定部
126… ルール判定部
130… 指摘判定処理部
131… 変数抽出部
132… 関連処理抽出部
133… 類似指摘判定部
134… ユーザ報告部
Claims (9)
- ソースコード検証ツールが確認しないルールの設定に関するルール設定情報を入力する情報処理部と、
関数情報抽出ツール及びクローンコード検出ツールと連携して動作し、クローンコードと推定されるコードの情報を基に、前記ソースコード検証ツールの検証結果の指摘の各々において、問題発生に係る代入処理および条件分岐処理を抽出し、コードの類似性と問題発生に関わる処理を利用し、前記検証結果の類似指摘を事前に統一する初期処理部と、
ユーザが指摘を精査した時に前記類似指摘の精査結果を同じにするための処理を行い、前記類似指摘に対する重複した精査作業を防ぎ、精査作業を削減する指摘判定処理部と
を具備する
判定作業支援システム。 - 請求項1に記載の判定作業支援システムであって、
前記初期処理部は、
前記ソースコード検証ツールにより指摘された内容に関するツール指摘情報を基に、指摘一覧情報を作成する指摘抽出部と、
ソースファイルを前記関数情報抽出ツール及び前記クローンコード抽出ツールに提供するツール連携部と、
前記関数情報抽出ツールから実行結果として取得した関数情報を基に、関数一覧情報を生成する関数一覧作成部と、
前記クローンコード抽出ツールから実行結果として取得した類似コード情報を基に、前記関数一覧情報に含まれる類似コードを持つ関数を判定するクローンコード判定部と、
前記ルール設定情報を参照して、前記指摘一覧情報のうち、精査の必要がない精査対象外の指摘の判定を行うルール自動判定部と
を具備する
判定作業支援システム。 - 請求項2に記載の判定作業支援システムであって、
前記指摘判定処理部は、
前記指摘一覧情報、及び前記関数一覧情報を取得し、指摘箇所の関数内のソースコードを抽出し、指摘箇所から、問題となる変数、プログラムのプロセス上で問題となる変数に代入を行う変数、及び条件分岐に利用される変数、を抽出する変数抽出部と、
前記抽出された各変数の情報を基に、関数内で各変数が実施された処理と宣言位置とを特定し、変数、宣言位置、及び処理内容を一覧に集約して、指摘関連変数一覧情報を作成する関連処理抽出部と、
前記関数一覧情報の類似情報と、前記指摘関連変数一覧情報の宣言位置及び処理内容の情報との2つの情報を基に、前記指摘一覧情報中の同じルールで検証された2つの指摘の類似チェックを実施し、前記2つの指摘が類似であるか判定し、類似と判定された指摘について、前記指摘一覧情報に類似判定情報を追加する類似指摘判定部と、
前記指摘一覧情報と前記指摘関連変数一覧情報とを一覧表示してユーザに通知し、前記ユーザによる精査結果を取得するユーザ報告部と、
を具備し、
前記類似指摘判定部は、前記ユーザによる精査結果を反映して前記指摘一覧情報を更新する
判定作業支援システム。 - ソースコード検証ツールによる判定作業を支援するために、計算機により実施される判定作業支援方法であって、
前記ソースコード検証ツールが確認しないルールの設定に関するルール設定情報を入力することと、
関数情報抽出ツール及びクローンコード検出ツールと連携して動作し、クローンコードと推定されるコードの情報を基に、前記ソースコード検証ツールの検証結果の指摘の各々において、問題発生に係る代入処理および条件分岐処理を抽出し、コードの類似性と問題発生に関わる処理を利用し、前記検証結果の類似指摘を事前に統一することと、
ユーザが指摘を精査した時に前記類似指摘の精査結果を同じにするための処理を行い、前記類似指摘に対する重複した精査作業を防ぎ、精査作業を削減することと
を含む
判定作業支援方法。 - 請求項4に記載の判定作業支援方法であって、
前記検証結果の類似指摘を事前に統一する際に、
前記ソースコード検証ツールにより指摘された内容に関するツール指摘情報を基に、指摘一覧情報を作成することと、
ソースファイルを前記関数情報抽出ツール及び前記クローンコード抽出ツールに提供することと、
前記関数情報抽出ツールから実行結果として取得した関数情報を基に、関数一覧情報を生成することと、
前記クローンコード抽出ツールから実行結果として取得した類似コード情報を基に、前記関数一覧情報に含まれる類似コードを持つ関数を判定することと、
前記ルール設定情報を参照して、前記指摘一覧情報のうち、精査の必要がない精査対象外の指摘の判定を行うことと
を更に含む
判定作業支援方法。 - 請求項5に記載の判定作業支援方法であって、
前記類似指摘に対する重複した精査作業を防ぎ、精査作業を削減する際に、
前記指摘一覧情報、及び前記関数一覧情報を取得し、指摘箇所の関数内のソースコードを抽出し、指摘箇所から、問題となる変数、プログラムのプロセス上で問題となる変数に代入を行う変数、及び条件分岐に利用される変数、を抽出することと、
前記抽出された各変数の情報を基に、関数内で各変数が実施された処理と宣言位置とを特定し、変数、宣言位置、及び処理内容を一覧に集約して、指摘関連変数一覧情報を作成することと、
前記関数一覧情報の類似情報と、前記指摘関連変数一覧情報の宣言位置及び処理内容の情報との2つの情報を基に、前記指摘一覧情報中の同じルールで検証された2つの指摘の類似チェックを実施し、前記2つの指摘が類似であるか判定し、類似と判定された指摘について、前記指摘一覧情報に類似判定情報を追加することと、
前記指摘一覧情報と前記指摘関連変数一覧情報とを一覧表示してユーザに通知し、前記ユーザによる精査結果を取得することと、
前記ユーザによる精査結果を反映して前記指摘一覧情報を更新することと
を更に含む
判定作業支援方法。 - ソースコード検証ツールが確認しないルールの設定に関するルール設定情報を入力するステップと、
関数情報抽出ツール及びクローンコード検出ツールと連携して動作し、クローンコードと推定されるコードの情報を基に、前記ソースコード検証ツールの検証結果の指摘の各々において、問題発生に係る代入処理および条件分岐処理を抽出し、コードの類似性と問題発生に関わる処理を利用し、前記検証結果の類似指摘を事前に統一するステップと、
ユーザが指摘を精査した時に前記類似指摘の精査結果を同じにするための処理を行い、前記類似指摘に対する重複した精査作業を防ぎ、精査作業を削減するステップと
を計算機に実行させるための
プログラム。 - 請求項7に記載のプログラムであって、
前記検証結果の類似指摘を事前に統一する際に、
前記ソースコード検証ツールにより指摘された内容に関するツール指摘情報を基に、指摘一覧情報を作成するステップと、
ソースファイルを前記関数情報抽出ツール及び前記クローンコード抽出ツールに提供するステップと、
前記関数情報抽出ツールから実行結果として取得した関数情報を基に、関数一覧情報を生成するステップと、
前記クローンコード抽出ツールから実行結果として取得した類似コード情報を基に、前記関数一覧情報に含まれる類似コードを持つ関数を判定するステップと、
前記ルール設定情報を参照して、前記指摘一覧情報のうち、精査の必要がない精査対象外の指摘の判定を行うステップと
を更に計算機に実行させるための
プログラム。 - 請求項8に記載のプログラムであって、
前記類似指摘に対する重複した精査作業を防ぎ、精査作業を削減する際に、
前記指摘一覧情報、及び前記関数一覧情報を取得し、指摘箇所の関数内のソースコードを抽出し、指摘箇所から、問題となる変数、プログラムのプロセス上で問題となる変数に代入を行う変数、及び条件分岐に利用される変数、を抽出するステップと、
前記抽出された各変数の情報を基に、関数内で各変数が実施された処理と宣言位置とを特定し、変数、宣言位置、及び処理内容を一覧に集約して、指摘関連変数一覧情報を作成するステップと、
前記関数一覧情報の類似情報と、前記指摘関連変数一覧情報の宣言位置及び処理内容の情報との2つの情報を基に、前記指摘一覧情報中の同じルールで検証された2つの指摘の類似チェックを実施し、前記2つの指摘が類似であるか判定し、類似と判定された指摘について、前記指摘一覧情報に類似判定情報を追加するステップと、
前記指摘一覧情報と前記指摘関連変数一覧情報とを一覧表示してユーザに通知し、前記ユーザによる精査結果を取得するステップと、
前記ユーザによる精査結果を反映して前記指摘一覧情報を更新するステップと
を更に計算機に実行させるための
プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011129146A JP5757167B2 (ja) | 2011-06-09 | 2011-06-09 | 判定作業支援システム、判定作業支援方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011129146A JP5757167B2 (ja) | 2011-06-09 | 2011-06-09 | 判定作業支援システム、判定作業支援方法、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012256220A JP2012256220A (ja) | 2012-12-27 |
JP5757167B2 true JP5757167B2 (ja) | 2015-07-29 |
Family
ID=47527725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011129146A Expired - Fee Related JP5757167B2 (ja) | 2011-06-09 | 2011-06-09 | 判定作業支援システム、判定作業支援方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5757167B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101568224B1 (ko) | 2014-12-26 | 2015-11-11 | 고려대학교 산학협력단 | 소프트웨어 취약점 분석방법 및 분석장치 |
JP6789844B2 (ja) * | 2017-02-22 | 2020-11-25 | 三菱電機株式会社 | 類似関数抽出装置および類似関数抽出プログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009169573A (ja) * | 2008-01-15 | 2009-07-30 | Fujitsu Ten Ltd | 解析結果出力装置、及び解析結果出力方法 |
JP2011113298A (ja) * | 2009-11-26 | 2011-06-09 | Canon Inc | 流用ソースコード解析システム及びプログラム並びに記録媒体 |
-
2011
- 2011-06-09 JP JP2011129146A patent/JP5757167B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012256220A (ja) | 2012-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140211021A1 (en) | Test system for evaluating mobile device and driving method thereof | |
US8719745B2 (en) | Method and system for automatically establishing hierarchical parameterized cell (PCELL) debugging environment | |
US9411711B2 (en) | Adopting an existing automation script to a new framework | |
KR20080050118A (ko) | 임베디드용 소프트웨어의 오류 검출 방법 | |
CN111475390A (zh) | 日志采集系统部署方法、装置、设备及存储介质 | |
US8799716B2 (en) | Heap dump occurrence detection | |
CN101699403A (zh) | 一种图形化安装分布式系统的方法 | |
WO2012080262A1 (en) | Software error code injection | |
JP5757167B2 (ja) | 判定作業支援システム、判定作業支援方法、及びプログラム | |
CN105550575A (zh) | 一种未导出的函数地址和数据结构偏移的获取方法及装置 | |
US9396239B2 (en) | Compiling method, storage medium and compiling apparatus | |
CN108885574B (zh) | 用于监视和报告设计、编译和运行时的性能和正确性问题的系统 | |
CN114116471A (zh) | 一种自动化代码扫描方法、系统、电子设备与存储介质 | |
Anand | Secure bootloader for connectivity mcu | |
CN110096888B (zh) | 一种加快验证及分析smm安全隐患的方法及系统 | |
CN110321171A (zh) | 开机检测装置、系统及其方法 | |
JP2018160047A (ja) | 携帯端末、サーバ装置、情報処理システム、制御方法、及びプログラム | |
US20120131569A1 (en) | Automated solaris container creation | |
CN113608996B (zh) | 一种镜像编译测试方法、系统、装置及可读存储介质 | |
CN112416695B (zh) | 一种全局变量监控方法、装置、设备及存储介质 | |
JP7328922B2 (ja) | 設定装置、設定方法、及びプログラム | |
CN115309642A (zh) | 一种代码测试方法、装置、电子设备及存储介质 | |
JP5949391B2 (ja) | 実行条件検査装置、実行条件検査システム、実行条件検査方法およびプログラム | |
CN117149874A (zh) | 构建和维护数据管道的方法、装置、电子设备及存储介质 | |
CN117785141A (zh) | 一种基于公共目录的项目开发方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140515 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150209 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150323 |
|
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: 20150507 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150520 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5757167 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |