JP6117760B2 - 静的解析警告のユーザインタフェース使用可能レビューを促進するシステム及び方法 - Google Patents

静的解析警告のユーザインタフェース使用可能レビューを促進するシステム及び方法 Download PDF

Info

Publication number
JP6117760B2
JP6117760B2 JP2014220658A JP2014220658A JP6117760B2 JP 6117760 B2 JP6117760 B2 JP 6117760B2 JP 2014220658 A JP2014220658 A JP 2014220658A JP 2014220658 A JP2014220658 A JP 2014220658A JP 6117760 B2 JP6117760 B2 JP 6117760B2
Authority
JP
Japan
Prior art keywords
change points
software code
variable
user
program
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.)
Active
Application number
JP2014220658A
Other languages
English (en)
Other versions
JP2015088191A5 (ja
JP2015088191A (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.)
Tata Consultancy Services Ltd
Original Assignee
Tata Consultancy Services 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 Tata Consultancy Services Ltd filed Critical Tata Consultancy Services Ltd
Publication of JP2015088191A publication Critical patent/JP2015088191A/ja
Publication of JP2015088191A5 publication Critical patent/JP2015088191A5/ja
Application granted granted Critical
Publication of JP6117760B2 publication Critical patent/JP6117760B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Description

本願は、2013年10月31日出願の印度仮特許出願番号第3461/MUM/2013号(特許文献1)の優先権を主張するものであり、その全体は参照の上本明細書に組み込まれる。
本明細書に記載の本主題は、概略、ソフトウエアコードのユーザインタフェース使用可能検証を促進するシステム及び方法に関する。
静的解析(若しくは静的解析ツール)は、ゼロ除算、バッファオーバフロー、アレイインデクスアウトオブバウンド、及び、ポインタのヌル/イリーガル逆参照などの、一般的なプログラミングのバグを検出するのに有用且つ実効的であることが知られている。それは、これらツールにより十分な情報が利用可能である若しくは計算可能であるとき、安全である若しくは安全でないとして、対象のプログラムポイントをレポートする。別の場合、十分な情報が静的には利用可能で無い若しくは計算可能で無いならば、それは、警告/アラームとしてそれらプログラムポイントをレポートする。対象のプログラムポイントは、そのような一般的なプログラミングの欠陥の存在がチェックされる/検出されるべき、コード内のロケーション/ポイントに対応する。
静的解析は、通常、複数の警告の結果となる。ユーザは、個々の警告を手作業で解析することが想定されている。個々の警告は最高度の注意で取り扱うことが要求される。警告の解析はソフトウエアアプリケーションを検証することが要求されるからである。警告のレビューにより、システム障害、即ち、一般的なプログラミングのエラーにより発生するランタイム時のエラーが無いことの保証が与えられる。この警告の手作業によるレビューは、コストが掛かり、時間も消費し、更に退屈である。更に、警告の手作業によるレビューの繰り返し及び単調さにより、ユーザの解析作業はよりつまらないものとなる。
最近の研究領域は、静的解析を実際により正確にし、生成される警告を少なくすることに焦点を当てている。現在利用可能な静的解析ツールは、対象のプログラムポイントが安全であるか安全で無いかをユーザに知らせるに過ぎず、それらはユーザに何ら有用な情報を提供する助けとならず、又、ユーザにとって警告のレビューがより簡単になるように助けをするものではない。更に、警告のレビューの間、ユーザは、多数のコードを詳しく検討し、警告を安全として若しくは安全で無いとして判別するのに要求される必要情報を収集することが想定される。このコードトラバースは、概略、手作業のレビューの間に費やされる時間の半分以上掛かってしまう。また、ユーザは非常に大きいサイズのアプリケーションに関して要求される情報を正確に特定し得ないので、要求される情報を収集する手作業のプロセスでは間違いが生じやすい。
印度仮特許出願番号第3461/MUM/2013号
この概要は、ソフトウエアコードの検証を促進するシステム及び方法に関する形態を導入すべく示されており、コンセプトは以下の詳細な説明に更に記載されている。この概要は、発明の主題の本質的特徴を特定することを意図するものでは無く、発明の主題の範囲を判別したり限定したりするのに用いることを意図するものでも無い。
一つの実装では、ソフトウエアコードの検証を促進するシステムが開示される。システムはプロセッサ及びプロセッサに結合されるメモリを含む。プロセッサは、メモリ内に格納される複数のモジュールを含む。複数のモジュールは、選択モジュール、判別モジュール、及びユーザインタフェースモジュールを含む。選択モジュールは、検証されるソフトウエアコードに対して生成される警告を示す第1のプログラムポイントを選択し得る。第1のプログラムポイントは、変数のセットを含むプログラミング表現を有する。更に、警告は、変数のセットのうちの、少なくとも一つの変数値が静的に判別されないとき、生成される。更に判別モジュールは、少なくとも一つの変数に関する値が第1のプログラミングポイントを安全な条件に導くのか、安全で無い条件に導くのか、ユーザが判定するために、レビュー支援情報を判別し得る。レビュー支援情報は、少なくとも一つの変数に値を割り当てる、ソフトウエアコードからの、変更ポイントのセットを推移的に配置することにより判別され得る。レビュー支援情報は更に、変更ポイントのセットにて割り当てられる値が、第1のプログラムポイントについて安全な条件であるか安全で無い条件であるか、ユーザに提示できないときに、ソフトウエアコードからの、少なくとも一つの変数に関する第2のプログラムポイントにより示される制御条件を推移的に配置することにより判別され得る。更に、制御条件は、第1のプログラムポイントについて安全な条件であるか安全で無い条件であるかについて、ユーザが判別する助けとなり得る。レビュー支援情報は更に、変更ポイントのセット、制御条件、及び、第1のプログラムポイントの間の、パスを推移的に配置することにより判別され得る。更に、ユーザインタフェースモジュールは、一つ以上の関連する変更ポイントを特定するために、変更ポイントのセットから非有用な変更ポイントを除外することにより、ユーザにレビュー支援情報を提示し得る。ユーザインタフェースモジュールは更に、一つ以上の関連する変更ポイント若しくは制御条件をユーザに表示し得る。一つ以上の関連する変更ポイント若しくは制御条件は、生成される警告に対する根本的原因を示し、これによりソフトウエアコードの検証を促進し得る。
別の実装では、ソフトウエアコードの検証を促進する方法が開示される。方法は、検証されるソフトウエアコードに対して生成される警告を示す第1のプログラムポイントを選択するステップを含み得る。第1のプログラムポイントは、変数のセットを含むプログラミング表現を有する。更に、警告は、変数のセットのうちの、少なくとも一つの変数値が静的に判別されないとき、生成される。方法は、少なくとも一つの変数に関する値が第1のプログラミングポイントを安全な条件に導くのか、安全で無い条件に導くのか、ユーザが判定するために、レビュー支援情報を判別するステップを含み得る。レビュー支援情報は、少なくとも一つの変数に値を割り当てる、ソフトウエアコードからの、変更ポイントのセットを推移的に配置することにより判別され得る。レビュー支援情報は更に、変更ポイントのセットにて割り当てられる値が、第1のプログラムポイントについて安全な条件であるか安全で無い条件であるか、ユーザに提示できないときに、ソフトウエアコードからの、少なくとも一つの変数に関する第2のプログラムポイントにより示される制御条件を推移的に配置することにより判別され得る。更に、制御条件は、第1のプログラムポイントについて安全な条件であるか安全で無い条件であるかについて、ユーザが判別する助けとなり得る。レビュー支援情報は、変更ポイントのセット、制御条件、及び、第1のプログラムポイントの間の、パスを推移的に配置することにより判別され得る。更に方法は、ユーザにレビュー支援情報を提示するステップを含み得る。レビュー支援情報は、一つ以上の関連する変更ポイントを特定するために、変更ポイントのセットから非有用な変更ポイントを除外することにより、提示され得る。レビュー支援情報は更に、一つ以上の関連する変更ポイント若しくは制御条件をユーザに表示することにより、提示され得る。一つ以上の関連する変更ポイント若しくは制御条件は生成される警告に対する根本的原因を示し、これによりソフトウエアコードの検証を促進し得る。前記選択するステップ、前記判別するステップ、及び前記提示するステップからなる前記方法は、プロセッサにより実行される。
更に別の実装では、ソフトウエアコードの検証を促進するコンピュータ装置内で実行可能なプログラムを具体化する持続性コンピュータ読み取り可能媒体が、開示される。プログラムは、検証されるソフトウエアコードに対して生成される警告を示す第1のプログラムポイントを選択するプログラムコードを含み得る。第1のプログラムポイントは、変数のセットを含むプログラミング表現を有する。更に、警告は、変数のセットのうちの、少なくとも一つの変数値が静的に判別されないとき、生成される。更に、プログラムは、少なくとも一つの変数に関する値が第1のプログラミングポイントを安全な条件に導くのか、安全で無い条件に導くのか、ユーザが判定するために、レビュー支援情報を判別するプログラムコードを含み得る。レビュー支援情報は、少なくとも一つの変数に値を割り当てる、ソフトウエアコードからの、変更ポイントのセットを推移的に配置することにより判別される。レビュー支援情報は更に、変更ポイントのセットにて割り当てられる値が、第1のプログラムポイントについて安全な条件であるか安全で無い条件であるか、ユーザに提示できないときに、ソフトウエアコードからの、少なくとも一つの変数に関する第2のプログラムポイントにより示される制御条件を推移的に配置することにより判別され得る。制御条件は、第1のプログラムポイントについて安全な条件であるか安全で無い条件であるかについて、ユーザが判別する助けとなり得る。レビュー支援情報は更に、変更ポイントのセット、制御条件、及び、第1のプログラムポイントの間の、パスを配置することにより判別され得る。更に、プログラムは、ユーザにレビュー支援情報を提示するプログラムコードを含み得る。レビュー支援情報は、一つ以上の関連する変更ポイントを特定するために、変更ポイントのセットから非有用な変更ポイントを除外することにより、提示され得る。レビュー支援情報は更に、一つ以上の関連する変更ポイント若しくは制御条件をユーザに表示することにより、提示され得る。一つ以上の関連する変更ポイント若しくは制御条件は生成される警告に対する根本的原因を示し、これによりソフトウエアコードの検証を促進し得る。
発明の詳細な説明は、添付の図面を参照して記載されている。図面では、参照番号の最左の数字が、参照番号が最初に現れる図を特定する。同じ特徴及びコンポーネントを参照するのに、同じ数字が図面全体を通して用いられる。
図1は、本発明の実施形態に係る、ソフトウエアコードの検証を促進するシステムのネットワーク実装を示す。 図2は、本発明の実施形態に係る、システムを示す。 図3A−図3Bは、本発明の実施形態に係る、詳細なソフトウエアコードの検証を促進する種々の例を示す。 図3A−図3Bは、本発明の実施形態に係る、詳細なソフトウエアコードの検証を促進する種々の例を示す。 図3C−図3Dは、本発明の実施形態に係る、詳細なソフトウエアコードの検証を促進する種々の例を示す。 図3C−図3Dは、本発明の実施形態に係る、詳細なソフトウエアコードの検証を促進する種々の例を示す。 図3E−図3Fは、本発明の実施形態に係る、詳細なソフトウエアコードの検証を促進する種々の例を示す。 図3E−図3Fは、本発明の実施形態に係る、詳細なソフトウエアコードの検証を促進する種々の例を示す。 図4は、本発明の実施形態に係る、ソフトウエアコードの検証を促進する方法を示す。
ソフトウエアコードの検証を促進するシステム及び方法を記載する。これらのプログラムコードは、概略、埋め込まれたシステム内に実装される。しかし、埋め込まれたシステムの展開若しくは始動の前に、ランタイムの間にこれら埋め込まれたシステムの障害を回避するために、ソフトウエアコードの検証が要求される。検証の行うための第1のステップは、市場で入手可能な静的解析ツールの助けにより、複数のプログラムポイントを有するソフトウエアを解析することである。解析の後、これらのツールは、安全なもの、安全でないもの、若しくは警告として、ソフトウエアコードのプログラムポイントをレポートする。安全なものとしてレポートされたプログラムポイントは、これらのプログラムポイントにてソフトウエアコード内には欠陥/バグは無いことを示し、他方、安全でないものとしてレポートされたプログラムポイントは、これらのプログラムポイントにてソフトウエアコード内に存在するプログラミングバグに関してユーザに明確に示す。一方で、警告としてレポートされたプログラムポイントは、プログラムポイントが安全である状態にあるか若しくは安全でない状態にあるか、解析ツールが不確かであるということをユーザに示す。
生成された警告は、警告としてレポートされたプログラムポイントが安全である状態に該当するか若しくは安全でない状態に該当するか、を判別するのに手作業の注意を必要とするほど、通常、多い数である。これを手作業で解析するために、ユーザは、ソフトウエアコードから警告としてレポートされたプログラムポイントの各々を、チェックしなければならない。手作業の解析の間、ユーザは、警告としてレポートされたプログラムポイントが安全であるか安全で無いかを判別するために、ソフトウエアコード内の多数を詳しく検討しなければならないことがある。解析を行う間、ユーザが自分の焦点を維持することが、退屈となることがある。この手作業の解析の間、ユーザの注意をガイドし集中させるのに利用可能な、助けとなるような情報は無い。そんな状態を回避するために、本開示では、警告の実効的なレビューのために、レビューの助けとなる情報を判別してユーザに提示する、ユーザインタフェース使用可能システム及び方法が、提供される。
本開示の実施形態によると、レビューの助けとなる情報は、レビュープロセスを促進するために、二つのカテゴリ、即ち、変更ポイントと制御条件とのセットで、判別され得る。レビューの助けとなる情報(変更ポイントのセットと制御条件)は、警告をレビューするのにユーザに要求する労力と時間とが少なくなるように、体系的に示され得る。更に、システムは、変更ポイントと、ソフトウエアのための警告を示すプログラムポイント若しくはレビュープロセスの間に取得される任意の他の変更ポイントとの間の、パスを判別し得る。レビューの助けとなる情報を提示する間、パスは、ソフトウエアコードから他の情報/ステートメント(例えば、代入文、不適切な関数呼び出し)を除去することにより、制御条件及びコールポイントの観点で表示される。このろ過(除去)により、システムでは、ユーザへ有用な/関連のレビューの助けとなる情報のみをディスプレイする時間がより少なくなり得る。よって、ユーザインタフェース上へ有用な/関連のレビューの助けとなる情報をディスプレイするに当たり、システムは非常に実効的に作動する。ソフトウエアコードの検証のために警告をユーザがレビューするに当たり、このことは今度は容易な経験となる。
ソフトウエアコードの検証を促進する記載のシステム及び方法の形態は、任意の数の様々なコンピュータシステム、環境、及び/又は、構成にて実装可能であるが、実施形態は、以下の例示のシステムの文脈で記載される。
図1を参照すると、本発明の実施形態に係る、ソフトウエアコードの検証を促進するシステム200のネットワーク実装100が示される。システム102はコンピュータシステムとして実装されると想定して本発明は説明されるが、当然ながら、ラップトップコンピュータ、デスクトップコンピュータ、ノートブック、ワークステーション、メインフレームコンピュータ、サーバ、ネットワークサーバ、タブレット、携帯電話などの、様々なコンピュータシステムとして、システム102は実装され得る。一つの実装では、システム102は、クラウドベース環境で実装され得る。当然ながら、システム102は、以降、まとめてユーザデバイス104として参照される一つ以上のユーザデバイス104−1、104−2・・・104−Nを介して、又は、ユーザデバイス104上に駐在するアプリケーションを介して、多数のユーザによりアクセスされ得る。ユーザデバイス104の例は、ポータブルコンピュータ、パーソナルデジタルアシスタント、ハンドヘルドデバイス、及びワークステーションを含み得るが、これらに限定されない。ユーザデバイス104は、ネットワーク106を介してシステム102に通信結合する。
一つの実施形態では、ネットワーク106は、無線ネットワークでも、有線ネットワークでも、若しくはそれらの組み合わせでもよい。ネットワーク106は、イントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネットなどの、様々なタイプのネットワークの一つとして、実装され得る。ネットワーク106は、専用ネットワークでも、共有ネットワークでもいずれでもよい。共有ネットワークは、相互の通信のための、例えば、ハイパートランスファープロトコル(HTTP)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ワイアレスアクセスプロトコル(WAP)などの、様々なプロトコルを利用する様々なタイプのネットワークの接続を表す。更に、ネットワーク106は、ルータ、ブリッジ、サーバ、コンピュータ装置、記憶装置などの、種々のネットワークデバイスを含み得る。
図2を参照して、本発明の実施形態に係るシステム102が示される。一つの実施形態では、システム102は、少なくとも一つのプロセッサ202、インプット/アウトプット(I/O)インタフェース204、及びメモリ206を含み得る。少なくとも一つのプロセッサ202は、一つ以上のマイクロプロセッサ、ミクロコンピュータ、マイクロコントローラ、デジタルシグナルプロセッサ、中央処理装置、ステートマシン、論理回路、及び/又は、演算命令に基づいて信号を操作する任意のデバイスとして、実装され得る。他の機能のうちでも、少なくとも一つのプロセッサ202は、メモリ206内に格納されたコンピュータ読み取り可能命令、若しくはモジュールをフェッチして実行するように構成される。
I/Oインタフェース204は、種々のソフトウエア及びハードウエアインタフェース、例えば、ウェブインタフェース、グラフィカルユーザインタフェースなどを、含み得る。I/Oインタフェース204により、システム102はユーザと直接に若しくはクライアントデバイス104を介して相互作用し得る。更に、I/Oインタフェース204により、システム102は、ウェブサーバや外部データサーバ(図示せず)などの、他のコンピュータ装置と通信することができる。I/Oインタフェース204は、例えば、LAN、ケーブルなどの有線ネットワークや、WLAN、セルラー若しくは衛星などの無線ネットワークを含む、広範なネットワーク及びプロトコルタイプの範囲内で多重通信を促進することができる。I/Oインタフェース204は、多数のデバイスを相互に、若しくは別のサーバに接続するための一つ以上のポートを含み得る。
メモリ206は、例えば、スタティックランダムアクセスメモリ(SRAM)やダイナミックランダムアクセスメモリ(DRAM)などの揮発性メモリ、及び/又は、リードオンリメモリ(ROM)、消去可能PROM(EPROM)、フラッシュメモリ、ハードディスク、光学ディスク、コンパクトディスク(CD)、デジタル多用途ディスク即ちデジタルビデオディスク(DVD)及び磁気テープなどの不揮発性メモリを含む、当業者に秀知の任意のコンピュータ読み取り可能媒体若しくはコンピュータプログラムプロダクトを含み得る。
モジュール208は、特定のタスクを実行する、若しくは特定の抽象データタイプを実装する、ルーティン、プログラム、オブジェクト、コンポーネント、データストラクチャなどを含む。一つの実装では、モジュール208は、選択モジュール210、判別モジュール212、ユーザインタフェースモジュール214,及び他のモジュール216を含み得る。他のジュール216は、システム102のアプリケーション及び関数を補完するプログラム若しくはコード化命令を含み得る。
データ218は、とりわけ、一つ以上のモジュール208により処理され、受信され、及び生成されるデータを格納するリポジトリとして作用する。データ218は、ルール及びレビュー支援情報データベース220、並びに他のデータ222も含んでもよい。
本発明の実施形態に係る、システム102により実装されるソフトウエアコードの検証を促進する様々な例を詳細に示す、図3A〜図3B、図3C〜図3D、及び図3E〜図3Fを参照する。第1の例は、変更ポイントのセットのレポートの要求を示す図3A〜図3Bに示される。この例では、検証されるソフトウエアコードは、図3Aに302として示される。ソフトウエアコード302は、複数のプログラムポイント(ライン1−19)を含む。本開示の実施形態によると、システム102の選択モジュール210は、検証されるソフトウエアコード302に対して生成される警告を示す、第1のプログラムポイント304を選択し得る。図3Aから、第1のプログラムポイント304は「a」、「b」、及び「c」の変数のセットを有するプログラミング表現「c=b/a」を有する。変数「a」(分母)の値は静的には決定し得ないので、ゼロ除算(ゼロによる除算)検証のための警告が生成される。生成される警告は、図3Bのテーブル306に示される。
更に、生成された警告が安全であるか安全で無いか判定するために、ユーザは、ソフトウエアコード302から手作業でレビュー支援情報を収集しなければならない、というものであってもよい。レビュー支援情報を収集するために、ユーザは、ソフトウエアコード302を介して大量に詳しく検討しなければならない、というものであってもよい。変数「a」は分母変数であり、ソフトウエアコード302の関数「func」内に割り当てられないので、ユーザは値を変数「a」に割り当てる変更ポイントを全て検索しなければならない。この例では、ユーザは、(ソフトウエアコード302のライン7及び14にある)関数「func」のコールポイントを特定/検索して、変数「a」が変更されるこれらのプログラムポイントに向かって逆方向にトレースしなければならない。そのようなユーザの介入を回避するために、システム102の判別モジュール212は、ユーザのためのレビュー支援情報として、ライン6及び13における変更ポイントのセットを自動的に判別してもよい。更に、システム102のユーザインタフェースモジュール214は、図3Bのテーブル308に示されるレビュー支援情報を表示してもよい。
テーブルの「パス情報」カラム下の「パスを示す」ボタンをクリックすると、変更ポイント(ライン6及び13)から第1のプログラムポイントへのパス、即ち警告が、ユーザに表示され得る。生成されるパスは、別のウインドウで、又は、同じ若しくは独立のポップアップフォームで、示され得る。更に、「変更ポイント位置詳細」カラム下の「File.c#13」をクリックすると、File.cを表示する独立のウインドウがポップアップされ、ライン13が独立のソースコードウインドウで高輝度化され得る。更に、このソースコードウインドウでは、「パスを示す」ボタンをクリックした後に示されるパス内に含まれるステートメント/コードも、高輝度化され得る。更に、テーブル308の「推移性変数」カラム下のV1、V2をクリックすると、カラム「変更ポイント位置詳細」下で示される位置における変数「V1」及び「V2」の変更ポイントを表示する、独立のポップアップウインドウが生成され得る。このように、ユーザインタフェースモジュール214は、ソフトウエアコード302の検証のためにユーザにレビュー支援情報を表示し得る。
制御条件のレポートの要求を示す図3C〜図3Dに、第2の例が示される。この例によると、検証されるソフトウエアコード302は、図3Cの310として示される。ソフトウエアコード310は、複数のプログラムポイント(ライン1−17)を含む。システム102の選択モジュール210は、ソフトウエアコード310に対して生成される警告を示す、第1のプログラムポイントを選択し得る。この例では、選択される第1のプログラムポイントは、図3Cの312(ライン15)として示される。第1のプログラムポイント312は「a」、「tempVar」、及び「c」の変数のセットを含むプログラミング表現「c=tempVar/a」を有する。この例では、変数「a」(即ち、分母)の値は、静的には決定し得ず、故に、ゼロ除算検証のための警告が生成される。生成される警告は、図3Dのテーブル314に示される。
ところで、このケースでは、判別モジュール212は、二つのカテゴリ、即ち、「変更ポイントのセット」及び「制御条件」にてレビュー支援情報を判別してもよい。最初に、判別モジュール212は、変数「a」に値を割り当てる変更ポイントのセットを判別してもよい。この例では、一つのみの変更ポイントが、ソフトウエアコード302のライン5にて判別される。しかし、この時点にて、判別される変更ポイント(即ち、ライン5)は、生成される警告が安全であるか安全で無いかを判定することをユーザに対して、提示する助けとならない/提示することができない。
この状況では、ユーザは、ソフトウエアコード310内を手作業でチェックして、警告(ゼロ除算)を回避するため制御条件をけんさくしなければならない、というものであってもよい。第1のインスタンスでは、制御条件はソフトウエアコード310のライン13にて特定され得る。ライン13において変数「a」がポインタ「*ptr」と比較されることがわかる。この制御条件、即ち「if(a==*ptr)」から、「*ptr」が非ゼロである場合のみ、変数「a」はライン15にて「非ゼロ」であるとわかり得る。このために、ユーザは、更に「*ptr」の値をチェックせねばならず、このため彼/彼女はソフトウエアコード310のライン8にてポインタ割り当てを検索しなければならない。ライン8では、ポインタ割り当ては、「*ptr」値が変数「b」の値であることを示す。ここで、ユーザの焦点は、変数「a」から変数「b」へシフトする。次のインスタンスでは、変数「b」に係る変更ポイント、即ちソフトウエアコード310のライン7が、判別される。
ユーザは、ライン5からライン13−ライン8−ライン7へ詳しく検討しなければならないことが、上記2段落からわかる。これらのラインを介して詳しく検討することは、ユーザに多くの努力と時間を課すものである。よって、この例によると、判別モジュール212は、レビュー支援情報として、変数「a」に関する制御条件を判別し得る。更に、両方のカテゴリ、即ち、変更ポイント及び制御条件におけるレビュー支援情報は、ユーザインタフェースモジュール214によりユーザに提示され得る。更に、判別されたレビュー支援情報は、図3Dのテーブル316に示され得る。制御条件「a==*ptr」と共に変更ポイント「fscanf(“%d”,&a);」は、「変更ポイント」カラム及び「制御条件」カラム下に、夫々示される。更に、「変更ポイント位置詳細」カラム下の「File1.c#5」をクリックすると、独立のソースコードウインドウ内に対応するソースコードが表示され得る。更に、ユーザは、テーブル316の「制御条件」カラム下の「a==*ptr」をクリックすることにより、「*ptr」に関するより詳細(即ち、ポインタ情報、*ptrに関する変更ポイントの全て、など)も得ることができる。この情報は、別のポップアップウインドウに表示し得る。このように、レビュー支援情報(変更ポイント及び制御条件)は、ソフトウエアコード310の検証を促進するためにユーザに表示され得る。
ところで、変更ポイント/制御条件、及び、レビュー支援情報内の推移性をオンデマンドでレポートする要求を示す図3E〜図3Fにて、第3の例が示される。この例で検証されるソフトウエアコードは、図3Eの318として示される。ソフトウエアコード318は、複数のプログラムポイント(ライン1〜28)を含む。システム102の選択モジュール210は、ソフトウエアコード318のために生成される警告を示す(ライン27における)第1のプログラムポイント320を選択し得る。生成される警告は、図3Fのテーブル322内で見られる。更に、選択される第1のプログラムポイントは変数「a」及び「c」のセットを有するプログラミング表現「c==arr[a]」を有する。このケースでは、警告は、アレイインデクスアウトオブバウンド(AIOB)検証のために生成される。AIOB検証では、インデクス値(変数「a」の値)が常にアレイのサイズ/境界の範囲(即ち、10)内であるかどうかインデクス値がチェックされる。変数「a」の値は静的に判別され得ないので警告としてレポートされる。よって、変数「a」の値が0と9の間の値(両方を含む)を取るかどうかチェックすることが、要求される。
この例で実行されるプロセスは、変数「a」に値を割り当てる変更ポイントのセットの特定で開始する。第1のインスタンスでは、変数「a」に対応する、特定される変更ポイントは、ソフトウエアコード318のライン26におけるものである。ライン26は、値が変数「b」から取られること、即ち、値が「b」から推移的に取られることを示す。ここで、値をチェックするための、対象の変数は「a」の代わりに「b」になる。よって、変数「b」に関する変更ポイントを特定することが要求される。変数「b」のために特定される変更ポイントは、ソフトウエアコード318のライン21及び15である。ライン21における変更ポイントは、値5を変数「b」に常に割り当てることを示す。更に、ライン15における変更ポイントは、変数「c」を変数「b」に割り当てることを示す。
よって、推移性により、ここで変数「c」が対象の変数であり、値を変数「c」に割り当てる変更ポイントの全てを特定するために、手作業の解析が要求され得る。ここで変数「c」のために特定される次の変更ポイントは、ソフトウエアコード318のライン8におけるものである。よって、変更ポイント(ライン8)に基づいて、ユーザは、変数に対して割り当てられる値は0〜9であることを特定できる。このような深い解析とコードトラバースにより、第1のプログラムポイント(即ち、ライン27)における警告は、「安全である」とレビューされ得る。
よって、上記パラグラフで説明した、変更ポイントのセット(即ち、ライン26、ライン21、ライン15及びライン8)を特定するために実行される全体のプロセスは、ユーザの相当量の努力と時間を必要とし得る。このような問題を回避するため、システム102の判別モジュール212は、レビュー支援情報として、ソフトウエアコード318から変更ポイントのセット(ライン26、ライン21、ライン15及びライン8)を判別し得る。この例では、判別される変更ポイントのセットが、生成される警告が安全であるか安全で無いかを、ユーザに提示できるので、判別モジュール212は、制御条件を判別しなかったことがわかる。
変更ポイントのセットの特定の後、システム102のユーザインタフェースモジュール214により実行される次のステップは、ユーザにレビュー支援情報を示すことである。本開示の実施形態によると、ユーザインタフェースモジュール214は、変更ポイントのセット(ライン26、ライン21、ライン15及びライン8)から、非有用な変更ポイントを除外し得る。この除外は、警告のタイプ、及び変更ポイントにより割り当てられる値に拠って、実行される。例えば、ユーザインタフェースモジュール214は、ライン27の警告ポイントが常に安全であるので、ライン21を除外し得る。更に、この例では、ユーザインタフェースモジュール214は、ライン26及びライン15を非有用な変更ポイントであると考えて、それらを除外し得る。これらのポイントは値割り当て内の推移性を示すからである。除外後、ユーザインタフェースモジュール214は、ユーザインタフェース上にて、関連する変更ポイントのみ、即ち、ライン8をユーザに表示し得る。更に、ユーザにレビュー支援情報を示す間、テーブル324内に示す非有用な変更ポイント(即ち、ライン26、21及び15)はユーザインタフェースモジュール214によって表示されることはない。図3Fのテーブル324に示す、関連する変更ポイントは、生成される警告に対する根本的原因を示す。更に、テーブル324の「パス情報」カラム下の「パスを示す」ボタンをクリックすると、変更ポイントのセットから、生成される警告(即ち、第1のプログラムポイント)へのパスが、ユーザに表示され得る。生成されるパスは、独立のウインドウ若しくはポップアップフォーム内で、又は、同じフォーム内で、ユーザに示され得る。また、ユーザの要求に基づいて、非有用な変更ポイントがユーザインタフェース上に表示され得る。本開示の実施形態によると、非有用な変更ポイントが、ユーザに対して独立のウインドウ内で識別色により表示され得る。よって、ソフトウエアコード318の検証を促進するために、関連する変更ポイント(ライン8)のみがユーザに表示され得る。更に、上記の例で説明したレビュー支援情報(変更ポイントと制御条件のセット)は、レビュー支援情報データベース220内に格納され得る。
ここで図4を参照して、本発明の実施形態に係る、ソフトウエアコードの検証を促進する方法が示される。方法400は、コンピュータ実行可能命令の一般コンテキストで記載され得る。概略、コンピュータ実行可能命令は、特定の関数を実行し、若しくは特定の抽象データタイプを実装する、ルーティン、プログラム、オブジェクト、コンポーネント、データストラクチャ、プロシジュアなどを含み得る。方法400は、通信ネットワークを介してリンクする遠隔処理デバイスにより関数が実行される、分散コンピュータ環境内でも実施され得る。分散コンピュータ環境内では、コンピュータ実行可能命令は、メモリ格納デバイスを含む、ローカルとリモートとの両方のコンピュータ格納媒体に配置され得る。
方法400が記載される順序は、限定として解釈されることを意図するものでは無く、記載の方法のブロックの幾つでも、方法を実装するため若しくは方法を交互に入れ替えるため、どの順序で組み合わされてもよい。更に、個別のブロックは、方法400から削除可能であり、本明細書に記載の本発明の精神及び範囲から乖離することも無い。更に、方法は、適切なハードウエア、ソフトウエア、ファームウエア、若しくはそれらの組み合わせで実装され得る。しかしながら、方法400は、前述のシステム200で実装されることが想定され得る。
ブロック402では、警告を示す第1のプログラムポイントが、検証されるソフトウエアコードから選択され得る。更に、第1のプログラミングポイントは、変数のセットを含むプログラミング表現を有する。変数のセットのうちの、少なくとも一つの変数値が静的に判別されないとき、警告は生成される。
ブロック404では、少なくとも一つの変数に関する値が第1のプログラミングポイントを安全な条件に導くのか、安全で無い条件に導くのか、ユーザが判定するために、レビュー支援情報が判別され得る。
ブロック406では、判別されるレビュー支援情報は、少なくとも一つの変数に値を割り当てる、ソフトウエアコードからの、変更ポイントのセットを、含み得る。
ブロック408では、判別されるレビュー支援情報は、ソフトウエアコードからの、少なくとも一つの変数に関する第2のプログラムポイントにより示される制御条件を、含み得る。更に、変更ポイントのセットにて割り当てられる値が、第1のプログラムポイントについて安全な条件であるか安全で無い条件であるか、ユーザに提示できないときに、制御条件が判別される。更に、制御条件は、第1のプログラムポイントについて安全な条件であるか安全で無い条件であるかについて、即ち、警告について、ユーザが判別する助けとなり得る。
ブロック410では、一つ以上の関連する変更ポイントを特定するために、変更ポイントのセットから非有用な変更ポイントを除外することにより、レビュー支援情報がユーザに提示され得る。両方とも生成される警告に対する根本的原因を示す、一つ以上の関連する変更ポイントと制御条件とを表示することにより、レビュー支援情報が更に提示され得る。提示されるレビュー支援情報は更に、ユーザにより特定される二つのプログラムポイント間で計算されるパスから、構成され得る。よって、ユーザに表示されるそれらレビュー支援情報の助けにより、ソフトウエアコードの検証を促進する。
ソフトウエアコードの検証を促進する方法及びシステムの実装を、構造上の特徴及び/又は方法に特有の言語で記載してきたが、当然ながら添付の請求項は、記載された具体的な特徴若しくは方法に必ずしも限定されない。寧ろ、具体的特徴及び方法は、データセットから抽出されるルール及び例外の可視化を提供するための実装の例として、開示される。
102・・・システム、202・・・プロセッサ、204・・・I/Oインタフェース、206・・・メモリ、208・・・モジュール、210・・・選択モジュール、212・・・判別モジュール、214・・・ユーザインタフェースモジュール、216・・・他のモジュール、218・・・データ、220・・・レビュー支援情報データベース、222・・・他のデータ。

Claims (9)

  1. ソフトウエアコードの検証を促進する方法において、
    選択モジュールを介して、検証されるソフトウエアコードに対して生成される警告を示す第1のプログラムポイントを選択するステップであって、第1のプログラムポイントは、変更ポイントのセットに関する変数のセットを含むプログラミング表現を有し、警告は、変数のセットのうちの、少なくとも一つの変数値が静的に判別されないとき、生成される、ステップと、
    判別モジュールを介して、少なくとも一つの変数に関する値が第1のプログラミングポイントを安全な条件に導くのか、安全で無い条件に導くのか、判別するために、レビュー支援情報を判別するステップであって、レビュー支援情報を判別するステップは、
    少なくとも一つの変数に値を割り当てる、ソフトウエアコードからの、変更ポイントのセット、及び、
    変数のセットからの、少なくとも一つの変数に関するプログラミング表現を有する第2のプログラムポイントを含む、ソースコード制御条件
    のうちの少なくとも一つを配置するステップを含み、
    レビュー支援情報を判別するステップは更に、
    変更ポイントのセットから第1のプログラムポイントのパスを表示するステップを含む、レビュー支援情報を判別するステップと、並びに、
    ユーザインタフェースモジュールを介して、ユーザにレビュー支援情報を提示するステップと
    を含み、
    ユーザインタフェースモジュールを介して、前記ユーザにレビュー支援情報を提示するステップは、
    少なくとも一つの変数に割り当てられ一つ以上の関連する変更ポイントを特定する値に基づいて、一つ以上の関連する変更ポイントを特定するために、変更ポイントのセットから非有用な変更ポイントを除外するステップと、並びに、
    一つ以上の関連する変更ポイント若しくは制御条件、及び、変更ポイントのセットとソースコードのために生成される警告を示す第1のプログラムポイントとの間のパスを、表示するステップであって、一つ以上の関連する変更ポイント若しくは制御条件は生成される警告に対する根本的原因を示し、これによりソフトウエアコードの検証を促進する、ステップと
    で構成され、
    前記選択するステップ、前記判別するステップ、及び前記提示するステップは、プロセッサにより実行される、方法。
  2. 警告は、ソフトウエアコードに関して実行される静的解析に基づいて生成され、静的解析はソフトウエアコードに対する安全な条件及び安全で無い条件を示す
    請求項1に記載の方法。
  3. 除外された後の非有用な変更ポイントがユーザの要求に基づいて表示され、非有用な変更ポイントがユーザへ識別表現で表示される、
    請求項1に記載の方法。
  4. ソフトウエアコードの制御条件と関数コールポイントを推移的に表示するステップを、更に含む、
    請求項1に記載の方法。
  5. ソフトウエアコードの検証を促進するシステム102において、
    前記システム102は、プロセッサ202とメモリ206とを含み、
    前記プロセッサ202は前記メモリ206に格納された複数のモジュール208を実行するものであり、
    前記複数のモジュール208は、
    検証されるソフトウエアコードに対して生成される警告を示す第1のプログラムポイントを選択する選択モジュール210であって、第1のプログラムポイントは、変更ポイントのセットに関する変数のセットを含むプログラミング表現を有し、警告は、変数のセットのうちの、少なくとも一つの変数値が静的に判別されないとき、生成される、選択モジュール210と、
    少なくとも一つの変数に関する値が第1のプログラミングポイントを安全な条件に導くのか、安全で無い条件に導くのか、判別するために、レビュー支援情報を判別する判別モジュール212であって、レビュー支援情報を判別することは、
    少なくとも一つの変数に値を割り当てる、ソフトウエアコードからの、変更ポイントのセット、及び、
    変数のセットからの、少なくとも一つの変数に関するプログラミング表現を有する第2のプログラムポイントを含む、ソースコード、制御条件
    のうちの少なくとも一つを配置することを含み、
    レビュー支援情報を判別することは更に、
    変更ポイントのセットから第1のプログラムポイントのパスを表示することを含む、判別モジュール212と、並びに、
    ユーザにレビュー支援情報を提示するユーザインタフェースモジュール214と
    を含み、
    前記ユーザにレビュー支援情報を提示するユーザインタフェースモジュール214は、
    少なくとも一つの変数に割り当てられ一つ以上の関連する変更ポイントを特定する値に基づいて、変更ポイントのセットから非有用な変更ポイントを除外するステップと、並びに、
    一つ以上の関連する変更ポイント若しくは制御条件、及び、変更ポイントのセットとソースコードのために生成される警告を示す第1のプログラムポイントとの間のパスを、表示するステップであって、一つ以上の関連する変更ポイント若しくは制御条件は生成される警告に対する根本的原因を示し、これによりソフトウエアコードの検証を促進する、ステップと
    を行う、
    システム。
  6. 警告は、ソフトウエアコードに関して実行される静的解析に基づいて生成され、静的解析はソフトウエアコードに対する安全な条件及び安全で無い条件を示す
    請求項5に記載のシステム102
  7. 除外された後の非有用な変更ポイントがユーザの要求に基づいて表示され、非有用な変更ポイントがユーザへ識別色で表示される、
    請求項5に記載のシステム102
  8. 判別モジュール212は更に、ソフトウエアコードの制御条件と関数コールポイントを推移的に表示する、
    請求項5に記載のシステム102
  9. ソフトウエアコードの検証を促進するコンピュータ装置内で実行可能なプログラムを具体化する持続性コンピュータ読み取り可能媒体において、
    プログラムは、
    検証されるソフトウエアコードに対して生成される警告を示す第1のプログラムポイントを選択するプログラムコードであって、第1のプログラムポイントは、変更ポイントのセットに関する変数のセットを含むプログラミング表現を有し、警告は、変数のセットのうちの、少なくとも一つの変数値が静的に判別されないとき、生成される、プログラムコードと、
    少なくとも一つの変数に関する値が第1のプログラミングポイントを安全な条件に導くのか、安全で無い条件に導くのか、判別するために、レビュー支援情報を判別するプログラムコードであって、レビュー支援情報を判別することは、
    少なくとも一つの変数に値を割り当てる、ソフトウエアコードからの、変更ポイントのセット、及び、
    変数のセットからの、少なくとも一つの変数に関するプログラミング表現を有する第2のプログラムポイントにより示される制御条件
    のうちの少なくとも一つを配置することを含み、
    レビュー支援情報を判別することは更に、
    変更ポイントのセットから第1のプログラムポイントのパスを表示すること含む、判別するプログラムコードと、並びに、
    ユーザにレビュー支援情報を提示するプログラムコードと
    を含み、
    前記ユーザにレビュー支援情報を提示するプログラムコードは、
    少なくとも一つの変数に割り当てられ一つ以上の関連する変更ポイントを特定する値に基づいて、一つ以上の関連する変更ポイントを特定するために、変更ポイントのセットから非有用な変更ポイントを除外するステップと、並びに、
    一つ以上の関連する変更ポイント若しくは制御条件、及び、変更ポイントのセットとソースコードのために生成される警告を示す第1のプログラムポイントとの間のパスを、表示するステップであって、一つ以上の関連する変更ポイント若しくは制御条件は生成される警告に対する根本的原因を示し、これによりソフトウエアコードの検証を促進する、ステップと
    を行うものである、
    持続性コンピュータ読み取り可能媒体。
JP2014220658A 2013-10-31 2014-10-29 静的解析警告のユーザインタフェース使用可能レビューを促進するシステム及び方法 Active JP6117760B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN3461/MUM/2013 2013-10-31
IN3461MU2013 IN2013MU03461A (ja) 2013-10-31 2013-10-31

Publications (3)

Publication Number Publication Date
JP2015088191A JP2015088191A (ja) 2015-05-07
JP2015088191A5 JP2015088191A5 (ja) 2017-02-16
JP6117760B2 true JP6117760B2 (ja) 2017-04-19

Family

ID=52996979

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014220658A Active JP6117760B2 (ja) 2013-10-31 2014-10-29 静的解析警告のユーザインタフェース使用可能レビューを促進するシステム及び方法

Country Status (3)

Country Link
US (1) US9201765B2 (ja)
JP (1) JP6117760B2 (ja)
IN (1) IN2013MU03461A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10474555B2 (en) * 2016-03-03 2019-11-12 Synopsys, Inc. Detecting errors for function calls with an implicit receiver object
EP3285171B1 (en) * 2016-08-11 2021-11-24 Tata Consultancy Services Limited System and method for cause point analysis for effective handling of static analysis alarms
CN108897678B (zh) * 2018-06-20 2021-10-15 中国联合网络通信集团有限公司 静态代码检测方法和静态代码检测系统、存储设备
EP3588272B1 (en) * 2018-06-25 2021-03-10 Tata Consultancy Services Limited Method and system for repositioning of a plurality of static analysis alarms
JP7469999B2 (ja) 2020-09-10 2024-04-17 株式会社日立製作所 検索装置、検索方法、および検索プログラム
US11861389B2 (en) 2021-03-09 2024-01-02 Red Hat, Inc. Compiling a specified instruction from a first virtual application to a second virtual application
CN116342332B (zh) * 2023-05-31 2023-08-01 合肥工业大学 基于互联网的辅助审判方法、装置、设备及存储介质

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313616A (en) * 1990-09-18 1994-05-17 88Open Consortium, Ltd. Method for analyzing calls of application program by inserting monitoring routines into the executable version and redirecting calls to the monitoring routines
JPH08272623A (ja) * 1995-04-03 1996-10-18 Toshiba Corp プログラム解析装置及びプログラム解析方法
US6128774A (en) * 1997-10-28 2000-10-03 Necula; George C. Safe to execute verification of software
JP3533098B2 (ja) * 1998-12-18 2004-05-31 富士通株式会社 プログラム解析装置および記録媒体
US6560774B1 (en) * 1999-09-01 2003-05-06 Microsoft Corporation Verifier to check intermediate language
US7140004B1 (en) * 2000-06-13 2006-11-21 Tellme Networks, Inc. Method and apparatus for zero-footprint phone application development
US6993751B2 (en) * 2001-05-14 2006-01-31 Microsoft Corporation Placing exception throwing instructions in compiled code
US7913232B2 (en) * 2003-02-21 2011-03-22 The Math Works, Inc. Certifying software for safety-critical systems
US7596778B2 (en) * 2003-07-03 2009-09-29 Parasoft Corporation Method and system for automatic error prevention for computer software
US7383541B1 (en) * 2003-08-07 2008-06-03 Cisco Technology, Inc. Method and apparatus providing interoperation of execution images of different versions
FR2864654B1 (fr) * 2003-12-30 2007-02-23 Trusted Logic Procede de determination de caracteristiques operationnelles d'un programme
US20070016894A1 (en) * 2005-07-15 2007-01-18 Sreedhar Vugranam C System and method for static analysis using fault paths
US8079037B2 (en) * 2005-10-11 2011-12-13 Knoa Software, Inc. Generic, multi-instance method and GUI detection system for tracking and monitoring computer applications
JP2008102831A (ja) * 2006-10-20 2008-05-01 Hitachi Ltd 情報提供装置、プログラム及び情報提供方法
WO2008092162A2 (en) * 2007-01-26 2008-07-31 The Trustees Of Columbia University In The City Of New York Systems, methods, and media for recovering an application from a fault or attack
US8122436B2 (en) * 2007-11-16 2012-02-21 Microsoft Corporation Privacy enhanced error reports
US8387015B2 (en) * 2008-01-31 2013-02-26 Microsoft Corporation Scalable automated empirical testing of media files on media players
WO2009095741A1 (en) 2008-02-01 2009-08-06 The Mathworks, Inc Selective code instrumentation for software verification
JP5170555B2 (ja) * 2008-10-14 2013-03-27 日本電気株式会社 エラートレース簡略化システム、エラートレース簡略化方法、及びプログラム
US8453116B2 (en) 2008-11-24 2013-05-28 Microsoft Corporation Efficient invariant inference for program verification
US8782607B2 (en) * 2009-02-20 2014-07-15 Microsoft Corporation Contract failure behavior with escalation policy
US8302086B2 (en) * 2009-12-18 2012-10-30 Oracle America, Inc. System and method for overflow detection using symbolic analysis
JP5556655B2 (ja) * 2010-12-28 2014-07-23 富士通株式会社 解析支援プログラム,解析支援装置および解析支援方法
EP2718820B1 (en) * 2011-06-08 2017-10-11 The MathWorks, Inc. Identifying and triaging software bugs through backward propagation of under-approximated values and empiric techniques
US8997065B2 (en) * 2011-12-06 2015-03-31 The Mathworks, Inc. Automatic modularization of source code
JP5335885B2 (ja) * 2011-12-26 2013-11-06 みずほ情報総研株式会社 解析結果評価システム、解析結果評価方法及び解析結果評価プログラム

Also Published As

Publication number Publication date
US20150121345A1 (en) 2015-04-30
IN2013MU03461A (ja) 2015-07-17
US9201765B2 (en) 2015-12-01
JP2015088191A (ja) 2015-05-07

Similar Documents

Publication Publication Date Title
JP6117760B2 (ja) 静的解析警告のユーザインタフェース使用可能レビューを促進するシステム及び方法
CN109376166B (zh) 脚本转换方法、装置、计算机设备及存储介质
US10642608B2 (en) Associating a visualization of user interface with source code
US10761974B2 (en) Cognitive manufacturing systems test repair action
US8769501B2 (en) Method for analyzing changes in a software code and software analysis system
US20140053125A1 (en) Determining project status in a development environment
US9946630B2 (en) Efficiently debugging software code
US9733906B2 (en) User interface area coverage
US11113137B2 (en) Error incident fingerprinting with unique static identifiers
JP2015088191A5 (ja)
US20150113008A1 (en) Providing automatable units for infrastructure support
US20230123573A1 (en) Automatic detection of seasonal pattern instances and corresponding parameters in multi-seasonal time series
CN113014445A (zh) 用于服务器的运维方法、装置、平台及电子设备
KR20130097252A (ko) 소스 코드 분석에 의한 응용 프로그램 분석을 위한 방법 및 장치
US10467206B2 (en) Data sampling in a storage system
CN107077394B (zh) 用于监视对代码集的请求的方法和系统
CN116668407A (zh) 一种终端位置的显示方法、装置、设备及介质
KR20170071825A (ko) It 서비스의 애플리케이션 장애 추적 지원 방법 및 이를 적용한 관리 시스템
US8761515B2 (en) Electronic device and method for creating measurement codes
JP2017129970A (ja) 管理装置,管理方法および管理プログラム
US11734299B2 (en) Message templatization for log analytics
CN114721638A (zh) 一种查询逻辑代码生成方法及装置
US9792202B2 (en) Identifying a configuration element value as a potential cause of a testing operation failure
CN110866492A (zh) 一种基线分支的识别方法、装置及计算机系统
EP3282404A1 (en) System and method for analyzing and prioritizing issues for automation

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160502

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160927

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20161227

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170323

R150 Certificate of patent or registration of utility model

Ref document number: 6117760

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250