JP2008197731A - 静的解析結果の分析表示装置 - Google Patents

静的解析結果の分析表示装置 Download PDF

Info

Publication number
JP2008197731A
JP2008197731A JP2007029393A JP2007029393A JP2008197731A JP 2008197731 A JP2008197731 A JP 2008197731A JP 2007029393 A JP2007029393 A JP 2007029393A JP 2007029393 A JP2007029393 A JP 2007029393A JP 2008197731 A JP2008197731 A JP 2008197731A
Authority
JP
Japan
Prior art keywords
data
static analysis
analysis result
unit
display
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.)
Granted
Application number
JP2007029393A
Other languages
English (en)
Other versions
JP4920441B2 (ja
Inventor
Takuya Fujimoto
卓也 藤本
Michiyasu Hiramatsu
宙祥 平松
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2007029393A priority Critical patent/JP4920441B2/ja
Publication of JP2008197731A publication Critical patent/JP2008197731A/ja
Application granted granted Critical
Publication of JP4920441B2 publication Critical patent/JP4920441B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】利用者に静的解析の結果を図で分かりやすく表示させる手段を提供することで、指摘された問題の発生箇所およびそれらの関係等のソフトウェアの品質特性を把握し易くし、静的解析結果を効率良く分析させることを可能とする静的解析結果の分析表示装置を得ること。
【解決手段】記録部3は、静的解析結果データ20を装置内部に取り込んで記録すると共に、内部データ形式に変換して内部静的解析結果データ21を生成する。抽出加工部4は、内部静的解析結果データ21から表示に必要なデータを抽出、加工して加工データ22を生成する。問題箇所指摘部5は、問題点パターンデータ23を参照して、加工データ22からソフトウェアの問題点を抽出し、指摘する。表示部は、静的解析結果データを3次元グラフとして可視化し、問題箇所指摘部5で指摘された問題箇所を強調して表示する。
【選択図】 図1

Description

本発明は、ソフトウェアの静的解析結果を分析して表示する静的解析結果の分析表示装置に関するものであり、特に、ソフトウェアの静的解析結果として出力されるソフトウェアの問題点とその発生箇所の指摘、またはソフトウェアの品質の尺度となるメトリックスを分析して表示することにより、的確な問題点の指摘、効率的な問題点の把握を可能とする分析表示装置に関するものである。
従来、ソフトウェアの開発においては、ソフトウェアの実行前にソースコードを構文的または意味的に解析し、ソースコード上の記述誤りの可能性が高い問題箇所に対して警告を出力するソフトウェアの静的解析が利用されている。また、ソフトウェアの静的解析としては、ソフトウェアの品質を定量的に評価するメトリックスを定義し、ソフトウェアのメトリックス値を計測して出力することで、ソフトウェアの開発に役立てるものもある。
従来の静的解析結果の分析、表示においては、静的解析結果として出力される警告またはメトリックスを2次元グラフ化し、ソースコードのどの部分(例えば、ファイル、関数またはモジュール等)に問題点があるのかを指摘する支援を行っていた。例えば、特許文献1では、ソースコードの静的解析結果を分析し、数値、表、グラフ等の形式で出力することにより、静的解析結果の分析を容易にする静的解析結果分析システムが記載されている。静的解析結果は、例えば、モジュールの種類を横軸、ソフトウェアの品質指標値を縦軸として2次元グラフ化され、ユーザはこの2次元グラフから、どのモジュールに問題点があるのかを容易に判断することができる。
また、特許文献2では、静的解析結果を分析した分析結果を可視化して表示することにより見易さを向上させ、静的解析を行ったソフトウェアの問題の発見、および分析結果の集計作業を支援するソフトウェアの品質特性分析表示法が記載されている。すなわち、静的解析結果としてのメトリックス値を評価基準値と比較した後に色付けして表現し、どのような問題がどこで発生しているのかを見易くする支援を行っていた。例えば、プログラム単位の評価については、一覧表に表示したプログラム名称に色付けし、ユーザに色の違いにより品質を識別させる。また、ソースコードの行単位の評価については、ソースコード上に直接色付けし、問題箇所に対してユーザに注意を促している。
特開2005−202494号公報 特開平8−249172号公報
しかしながら、上記従来の技術には、以下に示すような問題がある。従来の静的解析結果の表示方法では、静的解析対象となるソフトウェアを構成する単位であるファイル、関数、または行等に対して、どの部分の品質にどのような問題があるのかを知ることはできるものの、指摘された問題が本当に問題なのかは明らかではなく、指摘の確実性については人が実際にソースコードを詳細に検査しなければ最終的な判断できなかった。このことは、特に静的解析結果が指摘する問題が膨大な数となった場合に顕著となる。また、指摘された複数の問題間の相互関係から得られる問題点の把握、分析が行われていなかった。
本発明は、上記に鑑みてなされたものであって、利用者に静的解析の結果を図で分かりやすく表示させる手段を提供することで、指摘された問題の発生箇所およびそれらの関係等のソフトウェアの品質特性を把握し易くし、静的解析結果を効率良く分析させることを可能とする静的解析結果の分析表示装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかる静的解析結果の分析表示装置は、ソフトウェアの静的解析ツールが出力する警告情報またはメトリックス情報としてのソフトウェアの品質特性情報を含む静的解析結果データを分析し、その分析結果を表示する静的解析結果の分析表示装置であって、ユーザからの指示が入力されるユーザ入力部と、前記ユーザ入力部を介して入力されたユーザからの指示に基づいて、分析および表示の対象となる静的解析結果データを装置内部に取り込み記録すると共に、内部データ形式に変換して内部静的解析結果データを生成する記録部と、前記ユーザ入力部を介して入力されたユーザからの指示に基づいて、前記内部静的解析結果データから、表示に必要なデータを抽出、加工して加工データを生成する抽出加工部と、前記抽出加工部が生成する前記加工データに基づいて、前記品質特性が計測されたソフトウェアの構成単位、前記品質特性の種類、および前記品質特性の評価値の3自由度を同時にグラフ化することにより、前記静的解析結果データを可視化する表示部と、前記ユーザ入力部、前記記録部、前記抽出加工部、および前記表示部を含む装置の制御を行う制御部と、を備えることを特徴とする。
本発明によれば、ソフトウェアの静的解析結果に基づき、警告が発生した箇所、発生した警告の種類、および発生した警告の数を同時にグラフに表示することにより、静的解析結果として出力された警告の発生箇所およびそれらの相互関係を把握し易くし、利用者に静的解析結果を効率良く分析させることができる、という効果を奏する。
以下に、本発明にかかる静的解析結果の分析表示装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、本発明にかかる静的解析結果の分析表示装置の実施の形態1の構成を示すブロック図である。図1に示すように、本実施の形態は、本実施の形態を制御する制御部2と、静的解析ツール(図示せず)が出力した静的解析結果データ20を装置内部に取り込んで記録すると共に、内部データ形式に変換して内部静的解析結果データ21を生成する記録部3と、内部静的解析結果データ21から表示に必要なデータを抽出、加工して加工データ22を生成する抽出加工部4と、内部静的解析結果データ21および加工データ22から、解析対象であるソフトウェアの問題点を抽出し、指摘する問題箇所指摘部5と、ユーザからのデータの入力およびユーザへのデータの出力を行う入出力装置10と、入出力装置10を介して入力されたユーザからの指示を受け取るユーザ入力部6と、抽出、加工したデータ等をユーザに表示する表示部7と、を備えて構成される。また、問題点パターンデータ23は、問題点指摘部5にて問題点を指摘するために使用される問題点パターン、および新たに抽出された問題点パターンであり、本装置内部に保持されている。なお、静的解析結果データ20は、本発明の範囲に含まれない。また、図1の実線矢印はデータの移動を示し、点線矢印は制御データの移動を示す。
図2〜図4は、図1に示した内部静的解析結果データ21の構成を示す図であり、図2は、ファイルパス名テーブルおよび関数名テーブルの構成を示す図、図3−1は、ファイルメトリックス値テーブルの構成を示す図、図3−2は、関数メトリックス値テーブルの構成を示す図、図4は、警告データテーブルの構成を示す図である。
図2に示すように、ファイルパス名テーブル211は、静的解析対象であるソフトウェアに含まれるファイル数2111と、各ファイルのファイルパス名2113と、それに一意に対応するファイルID2112と、を含むテーブルである。図示例では、ファイル数2111をn個としている。関数名テーブル212は、ファイルパス名テーブル211に含まれるファイルごとに作成され、ファイルID2121と、ファイルに含まれる関数の個数を表す関数数と、ファイルに含まれる各関数の関数名2123と、それに一意に対応する関数ID2122と、を含むテーブルである。図示例では、ファイルパス名テーブル211に含まれるn個のファイルにそれぞれ対応して、n個の関数名テーブル212が示されており、ファイルID1に相当するファイルに含まれる関数数はm個である。
図3−1に示すように、ファイルメトリックス値テーブル213は、ファイル単位で測定される複数のメトリックスに対するメトリックス値と測定されたファイルとを対応させたテーブルである。図示例では、メトリックス数2131はp個であり、ファイルID2132とメトリックス名2133に対して、それぞれメトリックス値2134が表示されている。また、図3−2に示すように、関数メトリックス値テーブル214は、関数単位で測定される複数のメトリックスに対するメトリックス値と、メトリックスが計測されたファイルと、を対応させたテーブルである。図示例では、メトリックス数2141はq個であり、ファイルID2142ごとに関数ID2143が示されており、ファイルごとの関数ID2143とメトリックス名2144とに対して、それぞれメトリックス値2134が表示されている。
図4に示すように、警告データテーブル215は、行単位で出力された警告と、警告が発生した箇所と、を対応付けたテーブルである。詳細には、ファイルID2151と関数ID2152ごとに、警告が発生した行を示す警告発生行番号2153と警告の内容を識別する警告番号2154とが表示されたテーブルである。
図2〜図4に示した内部静的解析結果データの構成は、内部静的解析結果データが含むべき情報を示した一例であり、入力として与える静的解析結果データ20に含まれる情報によってテーブルの個数は増減し、また、静的解析結果データ20に含まれる情報によって内容も異なる。つまり、図2〜図4に例として示したように適宜整理できれば、他の形式を利用するものであってもよい。
次に、図1に示した抽出加工部4により内部静的解析結果データから抽出、加工された加工データの構成について説明する。図5は、図1に示した加工データの構成を示す図である。図5に示すように、加工データ22は、データ項目数2211がa個、データ系列数2212がb個であり、データ項目名2215と、データ系列名2213とに対して、それぞれデータが表示されている。データ項目は、例えばメトリックスを計測する単位であり、データ系列は、例えばメトリックスの種類であり、データは、例えばメトリックス値である。なお、図5に示した加工データの構成は一例であって、図5に示した内容と同様のものであれば、どのようなものであってもよい。
図6は、本実施の形態の出力として表示部7により表示される3次元グラフの一例である。図示例では、x軸のデータ項目にメトリックスを計測する単位であるモジュールとしての例えば関数を、y軸のデータ項目に関数毎に計測された複数のメトリックスまたは種類別にグループ化された複数の警告を指定し、z軸にメトリックス値または警告の発生数を指定している。なお、図6では、x、y、z軸の方向をそれぞれ矢印で示している。また、以下では、図5とは異なり、データ項目、データ系列等の表現の区別を行わず、x、y、z軸に指定する変数をデータ項目として表記する。なお、表示部7は、入力された複数の静的解析結果データ20を同一の3次元グラフ上に表示し、相互に比較できるようにすることができる。
次に、本実施の形態にかかる静的解析結果の分析表示装置の動作について、図7を参照して説明する。図7は、本実施の形態にかかる静的解析結果の分析表示装置の動作の手順を示すフローチャートである。
先ず、手順S101において、制御部2は、表示部7および入出力装置10を介して、ユーザがグラフ表示をしたい静的解析結果データ20を指定させるための表示を行い、ユーザから表示をしたい静的解析結果データ20のファイルパス名を入出力装置10およびユーザ入力部6を介して入手する。静的解析結果データ20は、一般に複数存在しており、制御部3は、これらのデータが格納されている例えばディレクトリまたはファイル等のリストを表示することにより、ユーザに分析表示したい静的解析結果データ20を選択させる。
手順S102において、制御部2は、記録部3に指令を送り、記録部3は、指定された静的解析結果データ20を装置内部に取り込み、取り込まれた静的解析結果データ20を開き、以降の処理の実行に適するように、内部静的解析結果データ21に変換する。
手順S103において、制御部2は、内部静的解析結果データ21に含まれるデータ項目(x、yおよびz軸に指定するデータの種類、系列等)を、表示部7および入出力装置10を介して表示させ、ユーザから表示をしたいデータ項目を入出力装置10およびユーザ指定部6を介して入手する。
手順S104において、制御部2は、抽出加工部4に指令を送り、内部静的解析結果データ21から指定されたデータ項目についての静的解析結果データを抽出し、加工データ22を生成する。
手順S105において、制御部2は、加工データ22を、表示部7および入出力装置10を介して、3次元グラフとして表示させる。図6は、このようにして表示された3次元グラフの一例である。
手順S106において、制御部2は、表示されたグラフがユーザの求めるものになっているかどうかの確認を行うために、確認内容を表示部7および入出力装置10を介して表示させ、ユーザからの回答を入出力装置10およびユーザ指定部を介して入手する。ユーザからの回答が「求めるものである」となった場合には、処理を終了する。
ユーザからの回答が「求めるものでない」となった場合には、手順S108において、制御部2は、グラフの表示内容を変更するためのパラメータの表示、データ項目を再度選択させるための表示等を、表示部7および入出力装置10を介して行い、ユーザから上記パラメータの値、新しいデータ項目等を、入出力装置10およびユーザ指定部6を介して入手する。
そして、手順104に戻り、新しい3次元グラフを表示する処理を行う。但し、この場合に、データの抽出および加工において、手順108で入手したグラフのパラメータ、データ項目を使用する。
本実施の形態によれば、ソフトウェアの静的解析結果をもとに、警告が発生した箇所(またはメトリックスを計測する単位)、警告の種類(またはメトリックスの種類)、および、警告の数(またはメトリックス値)を3次元グラフとして表示させることにより、ソフトウェアの品質に関する問題の指摘の箇所およびそれらの相互関係を把握し易くし、ユーザに静的解析結果を効率良く分析させることができる。
なお、3次元グラフの表示において、x軸、y軸、およびz軸に指定するデータ項目としては、静的解析結果およびユーザの選択に応じて様々な形式のものが可能であり、警告が発生した箇所を示すためには、例えば、関数の行番号、アルファベット順の関数名等があり、発生した警告の種類を示すためには、例えば、警告に付されたユニークなID番号、警告のカテゴリ等がある。また、発生した警告の数の代わりに比率等を用いて表示することもできる。このように、3次元グラフの表示に指定されるデータ項目としては、静的解析結果の分析表示に好適な形式が適宜選択されるものとする。
実施の形態2.
図8は、本発明にかかる静的解析結果の分析表示装置の実施の形態2の出力として表示されるスペクトルの一例を示す図である。
図8では、図6と同様に、x軸のデータ項目にモジュールとしての関数を、y軸のデータ項目に関数毎に計測された複数のメトリックスまたは種類別にグループ化した複数の警告を指定し、メトリックス値または警告の発生数によって色付けを行い、これらの3つの自由度を平面図として図示している。すなわち、本実施の形態と実施の形態1との相違点は、実施の形態1では出力結果の表示形態が3次元グラフであるのに対して、本実施の形態ではスペクトルとなっている点である。このように、本実施の形態においては、静的解析結果を色分けしたスペクトルで表示することにより、ソフトウェアの品質特性を可視化し、ユーザに静的解析結果を効率良く分析させている。なお、実施の形態2のその他の構成および動作は、それぞれ実施の形態1の構成および動作と同じである。また、実施の形態2は、実施の形態1と同様の効果を奏する。
なお、実施の形態1および実施の形態2では、警告が発生した箇所(またはメトリックスを計測する単位)、警告の種類(またはメトリックスの種類)、および、警告の数(またはメトリックス値)の3自由度を、それぞれ、3次元グラフ、スペクトルとして表示させたが、2自由度を選択してグラフ化することもできる。例えば、警告の種類(またはメトリックスの種類)を一つ固定し、x軸を警告が発生した箇所(またはメトリックスを計測する単位)、y軸を警告の数(またはメトリックス値)として、2次元グラフを作成し、静的解析結果の分析に役立ててもよい。または、複数の警告の種類(または複数のメトリックスの種類)に対して、x軸を警告が発生した箇所(またはメトリックスを計測する単位)、y軸を警告の数(またはメトリックス値)として、2次元グラフを作成するなど、様々な表示形態が可能である。
実施の形態3.
図9は、本発明にかかる静的解析結果の分析表示装置の実施の形態3における問題点パターンの一例を示す図である。また、図10は、実施の形態3により表示された3次元グラフの一例であり、問題点を指摘している例を示す図である。本実施の形態の構成は、図1に示す実施の形態1の構成と同様であるが、問題点指摘部5の機能について詳細に説明する。
問題箇所指摘部5は、加工データ22を分析して問題箇所を指摘し、その結果を表示部7に表示させる。図9においては、複数のデータ項目に現れるピークの位置関係から指摘される問題点のパターンを示している。図9に示すパターンの意味は、(1)Point14、Point13、およびPoint10にそれぞれピーク値が存在することを意味し、(2)Point13およびPoint10のピーク値が存在する位置(x座標値)は、Point14のピーク値が存在する位置の1単位後方であることを意味する。なお、問題点パターンデータはこのような記述を集めたものであり、パターンの意味が機械的に解釈できる記述形式であれば、どのようなものであってもよい。
図10は、実施の形態3により表示された3次元グラフの一例であり、図中に問題点の指摘がなされている。図10では、ある関数を解析対象とし、x軸のデータ項目として、関数における行番号を、y軸のデータ項目として、種類別にグループ化した21種類の警告を、z軸に警告の発生数を、指定している。すなわち、ピーク箇所は、Point10(x3)、Point13(x3)、Point14(x2)となっており、各ピークを丸で囲むと共にこれらの丸を直線でつないでユーザに問題点となる箇所を指摘している。
このように、問題箇所指摘部5は、静的解析結果データ20を可視化した3次元グラフまたはスペクトル等に現れるパターン、特に問題箇所となるパターンを抽出し、その問題箇所を矢印、枠等を用いてユーザに強調して指摘する。問題箇所の抽出は、装置内部に格納されている問題点パターンデータ23と表示対象となる加工データ22とのグラフのマッチングで行うことができる。さらに、問題箇所指摘部5は、表示対象となる加工データ22のグラフから、新たなエラーが発生する可能性があるなどの、新たな問題点となる可能性があるパターンを抽出し、これを問題点パターンデータ23に保存して、以降の分析表示に役立てる。このとき、パターンの抽出は、グラフで見られる各ピークが発生している位置、ピークの大きさ、複数のピークの発生位置の相互関係、ピークの大小関係等を分析して行う。また、新たな問題点パターンデータとして登録するためには、抽出されたパターンと、例えばソフトウェアを実際に実行することにより発生・発見した不具合との関係付けを行い、実際に不具合との関係があったパターンを新たな問題点パターンとして登録することが好ましい。
次に、本実施の形態の動作について、図11を参照して説明する。図11は、本実施の形態にかかる静的解析結果の分析表示装置の動作の手順を示すフローチャートである。
先ず、手順S201において、図7に示した手順で3次元グラフを表示させる。
次に、手順S202において、制御部2は、問題点指摘部5に指令を送り、登録されている問題点パターンデータ23について、パターンの一覧を表示部7および入出力装置10を介して表示させ、ユーザからチェックしたい問題点パターンを入出力装置10およびユーザ指定部6を介して入手する。
手順S203において、制御部2は、指定された問題点パターンが3次元グラフに存在しているか否かを確認し、パターンが存在していない場合は処理を終了する。
パターンが存在している場合は、手順S205において、制御部2は問題点指摘部6に指令を送り、問題点パターンを取り出させ、そのパターンを解釈させる。
手順S206において、制御部2は、問題点指摘部6に指令を送り、機械的に探索ができるようになった問題点パターンと表示されているグラフの範囲内のデータとを検査させ、問題点パターンと合致する箇所があった場合は,その合致した箇所を表示部7および入出力装置10を介してグラフ上に強調表示する。
そして、次の問題点パターンの探索を行うため、手順S203に戻る。以降、ユーザがチェックしたいパターンすべてに対して探索を行う。
なお、上述の説明においては、1つの静的解析結果データの入力に対して、グラフ表示を行う場合を示しているが、複数の静的解析結果データを同時に1つの3次元グラフとして表示し、問題点指摘部5にて指摘された問題箇所を3次元グラフ上に表示することができる。特に、膨大なソフトウェアの静的解析結果または品質情報を1つの3次元グラフで表示することにより、ソフトウェアの品質分布を図として一覧可能とすることができる。
次に、1または複数の静的解析結果データ20を(同一の)グラフ上に表示し、問題点パターンデータ23と比較して問題箇所を指摘する際の、データの正規化方法について例を挙げて説明する。例えば、2つのソフトウェアの静的解析結果20を比較する場合、それぞれの構造は一般に異なり、行数、関数の数、ファイルの数等はそれぞれ異なる。そのため、2つの静的解析結果20を比較する場合には、比較できるように何らかの正規化を行うことによって、それらを同一の3次元グラフ上に表示することができる。つまり、相互に比較できるように、同一の指標で正規化された3次元グラフにて表示を行う。また、静的解析結果データ20と、問題点パターンデータ23の構造もそれぞれ異なるため、問題点パターンデータ23を静的解析結果データ20のグラフ上にマッピングして比較する場合には、同様に何らかの正規化が必要となる。
以下では、説明のため、3次元グラフ表示におけるx、y、z軸に対して、x軸を比較するソフトウェアの構成単位(行番号、モジュール名、ファイル名等)、y軸を静的解析ツールが出力する品質情報の種類(個々の警告、警告をグループ化したもの、メトリックス名称等)、z軸をy軸の各項目に対する値(警告(グループ)なら出力個数、メトリックスならメトリックス値等)、とする。なお、各軸に割り振った、ソフトウェアの構成単位(行番号、モジュール名、ファイル名)、品質情報の種類(個々の警告、警告をグループ化したもの、メトリックス名称)、y軸の各項目に対する値(警告(グループ)なら出力個数、メトリックスならメトリックス値)は例であり、ここで示した以外のソフトウェアの構成単位、静的解析ツールの品質情報、項目に対応する値を制限するものではない。
まず、それぞれのソフトウェアのモジュール(関数)同士を比較する場合について説明する。この場合は、x軸を行番号とする。そして、比較するモジュール(関数)に含まれる行数が異なる(軸データのサイズが異なる)場合には、グラフ化して2つの軸データが同じ長さになるように伸張又は伸縮を行う。これは、グラフ(図)化することにより、x軸の項目を離散値ではなく、連続値として取り扱うことに対応しており、この際、適当なデータ補間を用いて行う。なお、軸の伸張または伸縮を行うことによる比較については、以下でも同様である。
次に、それぞれのソフトウェアのファイル同士を比較する場合について説明する。この場合は、x軸として、2つの項目が考えられる。すなわち、一つは行番号、またはファイル内のモジュール(関数)である。x軸を行番号とする場合は、比較対象がモジュール(関数)からファイルとなるだけで、上記の説明と同様になるため省略する。x軸をモジュール(関数)とする場合は、モジュール(関数)をx軸に対して、例えば、次のように並べることができる。すなわち、ファイルに出現する順序に従って整列させる、モジュール(関数)名のアルファベット順に従って整列させる、モジュール(関数)の呼び出し関係階層図の上位から下位の順序で整列させる、または、中心にメイン部分を配置し、モジュール(関数)間の結合度が強くなるほど近くになるように配置する、等が挙げられる。いずれの並べ方を採用する場合も、軸のデータサイズが一致しない場合には、上記のように正規化を行う。また、ファイルにはモジュール(関数)が含まれていないものも存在するが、このようなファイルについては、例えば、行番号をx軸の項目として採用する。
次に、それぞれのソフトウェアの実行単位(例えば、ロードモジュール、タスク等)同士を比較する場合について説明する。この場合は、x軸として、2つの項目が考えられる。すなわち、一つはファイル内のモジュール(関数)、他はファイルである。x軸をモジュール(関数)とする場合は、比較対象がファイルから実行単位となるだけで、上記の説明と同様になるため省略する。ただし、モジュール(関数)の並べ方として、ファイルに出現する順序に従って整列させることはできないので、この場合は除く。x軸をファイルとする場合は、ファイルをx軸に対して、例えば、次のように並べることができる。すなわち、ファイル名のアルファベット順に従って整列させる、ファイルの呼び出し関係階層図の上位から下位の順序で整列させる、または、中心にメイン部分を配置し、ファイル間の結合度が強くなるほど近くになるように配置する、等が挙げられる。いずれの並べ方を採用する場合も、軸のデータサイズが一致しない場合には、上記のように正規化を行う。ただし、一般にモジュール(関数)が含まれていないファイル(例えば、マクロ、外部変数、型、関数プロトタイプの定義/宣言等のみを行うファイルが該当する)も存在し、このようなファイルについては、適宜比較対象から除外する等の操作を行うものとする。
上述のように、静的解析結果データ20、問題点パターンデータ23を正規化することにより、相互に比較することが可能となる。静的解析結果データ20から表示に必要とされる加工データ22を抽出、加工し、比較のために正規化した後には、例えば、従来の画像のパターンマッチング、類似性の検出手法等を利用することにより、パターンの同一性を判別し、問題点パターンの抽出等を行うことができる。その際、一般的な画像処理、統計処理の技術を適用し、加工データ20と問題点パターンデータ23との相関等の計算を行い、類似性を判定することができる。
本実施の形態によれば、静的解析結果データ20を過去の不具合発生データ等に基づいて登録された問題点パターンデータ20と比較し、静的解析結果データ20を可視化した3次元グラフにパターンが存在する場合には、そのパターンが問題点パターンであるか否かを判別することができる。そして3次元グラフに現れるパターンが、問題点パターンである場合には、その箇所を強調して表示することにより、ユーザに問題の発生箇所をより容易に把握させることができる。
また、本実施の形態によれば、複数の静的解析結果を同一の表示方法で表示または同一の計算による数値化により、パターンとして比較ができるようになり、異なるソフトウェア間であってもそのパターンの類似性から問題点の抽出、その後の解析の精度向上のために利用できる。特に、同一のソフトウェアの時系列的な比較(同じソフトウェアのバージョンが異なるもの同士の比較)に対しては、比較のためにマッピングされるモジュールそのものがほぼ同じであるため(バージョン更新後にそれほど大きな変化はない)、比較がより容易となり、本実施の形態をより好適に適用することができる。
また、過去に発生した障害を含む問題の再発防止のための要件を自動的に抽出し、組織のノウハウとして登録、活用するサイクルを構成することができるようになる。
以上のように、本発明にかかる静的解析結果の分析表示装置は、ソフトウェアの静的解析結果における問題点の発生箇所およびその関係を把握し、静的解析結果を効率よく分析するのに適している。
本発明にかかる静的解析結果の分析表示装置の実施の形態1の構成を示すブロック図である。 実施の形態1において、ファイルパス名テーブルおよび関数名テーブルの構成を示す図である。 実施の形態1において、ファイルメトリックス値テーブルの構成を示す図である。 実施の形態1において、関数メトリックス値テーブルの構成を示す図である。 実施の形態1において、警告データテーブルの構成を示す図である。 実施の形態1において、図1に示した加工データの構成を示す図である。 実施の形態1の出力として表示される3次元グラフの一例を示す図である。 実施の形態1の動作の手順を示すフローチャートである。 実施の形態2の出力として表示されるスペクトルの一例を示す図である。 実施の形態3における問題点パターンの一例を示す図である。 実施の形態3により表示された3次元グラフの一例であり、問題点を指摘している例を示す図である。 実施の形態3の動作の手順を示すフローチャートである。
符号の説明
1 静的解析結果の分析表示装置
2 制御部
3 記録部
4 抽出加工部
5 問題箇所指摘部
6 ユーザ入力部
7 表示部
10 入出力装置
20 静的解析結果データ
21 内部静的解析結果データ
22 加工データ
23 問題点パターンデータ

Claims (4)

  1. ソフトウェアの静的解析ツールが出力する警告情報またはメトリックス情報としてのソフトウェアの品質特性情報を含む静的解析結果データを分析し、その分析結果を表示する静的解析結果の分析表示装置であって、
    ユーザからの指示が入力されるユーザ入力部と、
    前記ユーザ入力部を介して入力されたユーザからの指示に基づいて、分析および表示の対象となる静的解析結果データを装置内部に取り込み、記録すると共に、内部データ形式に変換して内部静的解析結果データを生成する記録部と、
    前記ユーザ入力部を介して入力されたユーザからの指示に基づいて、前記内部静的解析結果データから、表示に必要なデータを抽出、加工して加工データを生成する抽出加工部と、
    前記抽出加工部が生成する前記加工データに基づいて、前記品質特性が計測されたソフトウェアの構成単位、前記品質特性の種類、および前記品質特性の評価値の3自由度を同時にグラフ化することにより、前記静的解析結果データを可視化する表示部と、
    前記ユーザ入力部、前記記録部、前記抽出加工部、および前記表示部を含む装置の制御を行う制御部と、
    を備えることを特徴とする静的解析結果の分析表示装置。
  2. 前記表示部は、前記3自由度を同時にグラフ化するために、3次元グラフ、または明度もしくは色相により色付けされたスペクトルを用いて表示することを特徴とする請求項1に記載の静的解析結果の分析表示装置。
  3. 前記表示部は、入力される複数の静的解析結果データに対して、前記複数の静的解析データを相互に比較できるように同一の指標で正規化された3次元グラフにて表示することを特徴とする請求項1または2に記載の静的解析結果の分析表示装置。
  4. 既存のソフトウェアにおける過去の不具合発生データに基づいて作成され、ソフトウェアに発生した問題箇所とそれらの相互関係をパターン化したデータである問題点パターンデータを参照し、前記加工データと前記問題点パターンデータとを同一の指標で正規化することによりグラフ上で相互に比較できるようにマッピングを行い、前記加工データに前記問題点パターンデータで表される問題点パターンが存在するか否かを、パターンの類似性を評価して判定し、前記加工データに問題箇所が存在すると判定されたときには、その問題箇所を指摘する表示を前記表示部にさせる問題箇所指摘部を備えることを特徴とする請求項1〜3のいずれか1つに記載の静的解析結果の分析表示装置。
JP2007029393A 2007-02-08 2007-02-08 静的解析結果の分析表示装置 Expired - Fee Related JP4920441B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007029393A JP4920441B2 (ja) 2007-02-08 2007-02-08 静的解析結果の分析表示装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007029393A JP4920441B2 (ja) 2007-02-08 2007-02-08 静的解析結果の分析表示装置

Publications (2)

Publication Number Publication Date
JP2008197731A true JP2008197731A (ja) 2008-08-28
JP4920441B2 JP4920441B2 (ja) 2012-04-18

Family

ID=39756645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007029393A Expired - Fee Related JP4920441B2 (ja) 2007-02-08 2007-02-08 静的解析結果の分析表示装置

Country Status (1)

Country Link
JP (1) JP4920441B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010147010A1 (ja) * 2009-06-17 2010-12-23 日本電気株式会社 モジュール分類解析システム、モジュール分類解析方法およびモジュール分類解析プログラム
JP2011129121A (ja) * 2009-12-18 2011-06-30 Korea Electronics Telecommun 静的分析道具統合管理装置及びシステム
JP2014059775A (ja) * 2012-09-18 2014-04-03 Fuji Electric Co Ltd プログラム構造評価システム、プログラム
KR20180065793A (ko) * 2016-12-08 2018-06-18 동국대학교 산학협력단 소프트웨어 품질 시각화 장치 및 방법
JP2019168753A (ja) * 2018-03-22 2019-10-03 三菱電機株式会社 ソースコード解析装置およびソースコード解析プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249172A (ja) * 1995-03-10 1996-09-27 Hitachi Ltd プログラム分析ツールの分析結果表示法
JP2004021864A (ja) * 2002-06-19 2004-01-22 Fuji Xerox Co Ltd 情報処理システムの問題点抽出装置、問題点抽出方法および問題点抽出プログラム
JP2005202494A (ja) * 2004-01-13 2005-07-28 Mitsubishi Electric Corp 静的解析結果分析システムおよび静的解析結果分析装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249172A (ja) * 1995-03-10 1996-09-27 Hitachi Ltd プログラム分析ツールの分析結果表示法
JP2004021864A (ja) * 2002-06-19 2004-01-22 Fuji Xerox Co Ltd 情報処理システムの問題点抽出装置、問題点抽出方法および問題点抽出プログラム
JP2005202494A (ja) * 2004-01-13 2005-07-28 Mitsubishi Electric Corp 静的解析結果分析システムおよび静的解析結果分析装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010147010A1 (ja) * 2009-06-17 2010-12-23 日本電気株式会社 モジュール分類解析システム、モジュール分類解析方法およびモジュール分類解析プログラム
JP2011129121A (ja) * 2009-12-18 2011-06-30 Korea Electronics Telecommun 静的分析道具統合管理装置及びシステム
JP2014059775A (ja) * 2012-09-18 2014-04-03 Fuji Electric Co Ltd プログラム構造評価システム、プログラム
KR20180065793A (ko) * 2016-12-08 2018-06-18 동국대학교 산학협력단 소프트웨어 품질 시각화 장치 및 방법
KR101940538B1 (ko) 2016-12-08 2019-01-21 동국대학교 산학협력단 소프트웨어 품질 시각화 장치 및 방법
JP2019168753A (ja) * 2018-03-22 2019-10-03 三菱電機株式会社 ソースコード解析装置およびソースコード解析プログラム
JP7068752B2 (ja) 2018-03-22 2022-05-17 三菱電機株式会社 ソースコード解析装置およびソースコード解析プログラム

Also Published As

Publication number Publication date
JP4920441B2 (ja) 2012-04-18

Similar Documents

Publication Publication Date Title
JP6076751B2 (ja) 異常診断方法およびその装置
US7853546B2 (en) Enhanced rule execution in expert systems
JP5830004B2 (ja) 3次元モデル生成装置、3次元モデル生成方法及び3次元モデル生成プログラム
JP2013143009A (ja) 設備状態監視方法およびその装置
JP4920441B2 (ja) 静的解析結果の分析表示装置
JPWO2017109903A1 (ja) 異常原因推定装置及び異常原因推定方法
JP2012151250A (ja) 基板検査システム
JP2011175437A (ja) プロセス解析システム
JP2019101549A (ja) 作業現場監視装置およびプログラム
JP2014085730A (ja) 機器の損傷解析支援システム及び損傷解析支援方法
JP2015011641A (ja) 画像処理フィルタの作成装置及びその方法
JP2006003345A (ja) 知識作成支援装置および表示方法
KR20130045584A (ko) 설계 충돌 검사 시스템 및 방법
TWI783400B (zh) 誤差因子的推定裝置及推定方法
WO2018158815A1 (ja) 点検支援装置、点検支援方法および記録媒体
JP6247777B2 (ja) 異常診断装置および異常診断方法
JP7181257B2 (ja) 原因分析システムおよび方法
CN110140024A (zh) 用于放置像素的方法
JP2000056825A (ja) プラント監視装置
US20070112816A1 (en) Information processing apparatus, information processing method and program
CN102053909A (zh) 测试程序生成装置
JP2014032466A (ja) 複雑度算出装置、複雑度算出方法および複雑度算出プログラム
Nayak et al. Requirement Defect Identification: An Early Stage Perspective
JP2001005522A (ja) データ表示装置
KR100738369B1 (ko) 엔진 부품의 손상을 디스플레이하는 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090730

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111115

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120111

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4920441

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

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees