(57)【特許請求の範囲】
【請求項１】
ソースファイルの静的解析によって得られ、警告種別を示す識別子と、警告箇所を含むソースコードが記述された行の行番号を含む位置情報と、を有するデータ行から構成される警告テーブルに対し、前記位置情報を参照して前記ソースファイルから抽出したソースコード行を各データ行に追加する該当コード追加部と、
前記識別子と、前記ソースコード行と、を用いて、前記警告テーブルにおいて警告原因が関連するデータ行をグループ化するグループ化部と、
前記グループ化部によりグループ化された結果を表示する表示画面を出力する出力部と、を備える静的解析支援装置。
【請求項２】
前記グループ化部は、
前記警告テーブルの各データ行を、前記識別子が同一であるデータ行が隣り合うように並び変える第１ソート部と、
前記第１ソート部により前記識別子が同一とされたデータ行のうち、前記ソースコード行が互いに関連するデータ行が隣り合うように並び変える第２ソート部と、を備えることを特徴とする請求項１に記載の静的解析支援装置。
【請求項３】
前記第２ソート部は、前記第１ソート部により前記識別子が同一とされたデータ行のうち、前記ソースコード行が完全に同一であるデータ行を隣り合うように並び変えることを特徴とする請求項２に記載の静的解析支援装置。
【請求項４】
前記第２ソート部は、前記第１ソート部により前記識別子が同一とされたデータ行のうち、前記ソースコード行からスペース文字を取り除くと同一であるデータ行を隣り合うように並び変えることを特徴とする請求項２に記載の静的解析支援装置。
【請求項５】
前記出力部は、前記表示画面において、同一グループに属するデータ行の１つをハイライトして表示することを特徴とする請求項１乃至請求項４のいずれかに記載の静的解析支援装置。
【請求項６】
ソースファイルの静的解析によって得られ、警告種別を示す識別子と、警告箇所を含むソースコードが記述された行の行番号を含む位置情報と、を有するデータ行から構成される警告テーブルに対し、前記位置情報を参照して前記ソースファイルから抽出したソースコード行を各データ行に追加する該当コード追加ステップと、
前記識別子と、前記ソースコード行と、を用いて、前記警告テーブルにおいて警告原因が関連するデータ行をグループ化するグループ生成ステップと、
前記グループ化部によりグループ化された結果を表示する表示画面を出力する出力ステップと、を備える静的解析支援方法。
【請求項７】
前記グループ生成ステップは、
前記警告テーブルの各データ行を、前記識別子が同一であるデータ行が隣り合うように並び変える第１ソートステップと、
前記第１ソートステップにおいて前記識別子が同一とされたデータ行のうち、前記ソースコード行が互いに関連するデータ行が隣り合うように並び変えることにより前記グループ化処理を行う第２ソートステップと、を備えることを特徴とする請求項６に記載の静的解析支援方法。
【請求項８】
前記第２ソートステップでは、前記第１ソートステップにおいて前記識別子が同一とされたデータ行のうち、前記ソースコード行が完全に同一であるデータ行を隣り合うように並び変えることにより前記グループ化処理を行うことを特徴とする請求項７に記載の静的解析支援装置。
【請求項９】
前記第２ソートステップでは、前記第１ソートステップにおいて前記識別子が同一とされたデータ行のうち、前記ソースコード行からスペース文字を取り除くと同一であるデータ行を隣り合うように並び変えることにより前記グループ化処理を行うことを特徴とする請求項７に記載の静的解析支援方法。
【請求項１０】
コンピュータに、
ソースファイルの静的解析によって得られ、警告種別を示す識別子と、警告箇所を含むソースコードが記述された行の行番号を含む位置情報と、を有するデータ行から構成される警告テーブルに対し、前記位置情報を参照して前記ソースファイルから抽出したソースコード行を各データ行に追加する該当コード追加ステップと、
前記識別子と、前記ソースコード行と、を用いて、前記警告テーブルにおいて警告原因が関連するデータ行をグループ化するグループ生成ステップと、
前記グループ生成ステップにおいてグループ化された結果を表示する表示画面を出力する出力ステップと、を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は静的解析支援装置、静的解析支援方法、及びプログラムに関する。
【背景技術】
【０００２】
コンピュータソフトウェアの開発の際に、ソースコードの記述誤りがあると、ソフトウェアが正常に動作しない等の不具合が生じる。ソースコードの記述誤りを検出する手法として、静的解析ツールによるソースコードの静的解析が広く利用されている。ソースコードの静的解析ツールは、ソースコードを実際に実行することなく構文的、意味的に解析し、記述誤りの箇所（または記述誤りの可能性が高い箇所）を特定する警告を出力する。これにより、ソースコードの開発者は、作成したソースコードの記述誤りを把握し、ソースコードの修正を行うことができる。
【０００３】
以下に、静的解析に関連する技術を開示した例を挙げる。特許文献１には、静的解析の結果を分析し、当該分析を用いて各モジュールの品質指標値をグラフ化する静的解析結果分析システムが開示されている。特許文献２には、静的解析により検出された警告に対して、どの警告に対応する修正から行うべきかの優先度づけを行うソースコード修正優先度付けシステムが開示されている。特許文献３には、複数種類の静的解析ツールの出力した警告をマージする技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２０２４９４号公報
【特許文献２】特開２００８−０２１２４４号公報
【特許文献３】特開２００９−１６９５７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、システムの複雑化に伴い、コンピュータソフトウェアのソースコードのコード量が増加してきている。コード量の増加に伴い、静的解析ツールの出力する警告の量も増加してきている。そのため、ソフトウェアの開発者は、これらの膨大な警告を逐次確認し、ソースコードの修正を行う必要がある。
【０００６】
ここで、ソースコードでは、類似する動作を記述する箇所が多数存在する。ソフトウェアの開発者は、関数単位、行単位等の単位でこのような箇所をコピーしてソースコードを作成する場合が多くある。この場合、コピー元の記述に誤りがあった場合には、静的解析ツールによって同一の警告が多数出力されてしまう。また、コピーは行わない場合であっても、開発者は同様の誤った記述を多く行ってしまう場合があり、同様の警告が多数出力されてしまう。
【０００７】
この場合、同一内容の警告であるにもかかわらず、ソフトウェアの開発者は、全ての警告の内容を参照し、その内容を精査する必要があった。全ての警告の内容を精査すると、工数が多くかかってしまい、開発に支障をきたすという問題が生じていた。なお、上述の特許文献１〜３ではこの問題に対する何らの示唆等が無い。
【０００８】
すなわち、同一（または類似する）原因により生じた警告が整理されていないために、静的解析の警告の確認に手間がかかるという問題が生じていた。
【０００９】
本発明は、上記した問題を解決するためになされたものであり、同一（または類似する）原因により生じた警告を容易に把握できる静的解析支援装置、静的解析支援方法、及びプログラムを提供することを主たる目的とする。
【課題を解決するための手段】
【００１０】
本発明にかかる静的解析支援装置の一態様は、
ソースファイルの静的解析によって得られ、警告種別を示す識別子と、警告箇所を含むソースコードが記述された行の行番号を含む位置情報と、を有するデータ行から構成される警告テーブルに対し、前記位置情報を参照して前記ソースファイルから抽出したソースコード行を各データ行に追加する該当コード追加部と、
前記識別子と、前記ソースコード行と、を用いて、前記警告テーブルにおいて警告原因が関連するデータ行をグループ化するグループ化部と、
前記グループ化部によりグループ化された結果を表示する表示画面を出力する出力部と、を備えるものである。
【００１１】
本発明にかかる静的解析支援方法の一態様は、
ソースファイルの静的解析によって得られ、警告種別を示す識別子と、警告箇所を含むソースコードが記述された行の行番号を含む位置情報と、を有するデータ行から構成される警告テーブルに対し、前記位置情報を参照して前記ソースファイルから抽出したソースコード行を各データ行に追加する該当コード追加ステップと、
前記識別子と、前記ソースコード行と、を用いて、前記警告テーブルにおいて警告原因が関連するデータ行をグループ化するグループ生成ステップと、
前記グループ化部によりグループ化された結果を表示する表示画面を出力する出力ステップと、を備えるものである。
【００１２】
本発明にかかるプログラムの一態様は、
コンピュータに、
ソースファイルの静的解析によって得られ、警告種別を示す識別子と、警告箇所を含むソースコードが記述された行の行番号を含む位置情報と、を有するデータ行から構成される警告テーブルに対し、前記位置情報を参照して前記ソースファイルから抽出したソースコード行を各データ行に追加する該当コード追加ステップと、
前記識別子と、前記ソースコード行と、を用いて、前記警告テーブルにおいて警告原因が関連するデータ行をグループ化するグループ生成ステップと、
前記グループ生成ステップにおいてグループ化された結果を表示する表示画面を出力する出力ステップと、を実行させるためのものである。
【発明の効果】
【００１３】
本発明によれば、同一（または類似する）原因により生じた警告を容易に把握できる静的解析支援装置、静的解析支援方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１にかかる静的解析支援装置の構成を示すブロック図である。
【図２】実施の形態１にかかる静的解析ツールが出力した静的解析の全警告メッセージを示す図である。
【図３】実施の形態１にかかる警告テーブルを示す図である。
【図４】実施の形態１にかかる警告テーブルを示す図である。
【図５】実施の形態１にかかる警告テーブルを示す図である。
【図６】実施の形態１にかかる第２キーソート部の動作概念を説明するための図である。
【図７】実施の形態１にかかる的解析支援装置の動作を示すフローチャートである。
【図８】実施の形態１にかかる静的解析支援装置の構成概略を示すブロック図である。
【図９】実施の形態１にかかる静的解析支援装置を実現するためのコンピュータシステムのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１５】
＜実施の形態１＞
以下、図面を参照して本発明の実施の形態について説明する。図１は、本実施の形態にかかる静的解析支援装置の構成を示すブロック図である。静的解析支援装置１は、入力部１０と、該当コード追加部２０と、グループ化部３０と、出力部４０と、を備える。グループ化部３０は、第１キーソート部３１と、第２キーソート部３２と、を備える。
【００１６】
入力部１０には、静的解析ツール（図示せず）が出力した静的解析の全警告メッセージと、静的解析ツールが解析対象としたソースファイルと、が入力される。入力部１０は、入力された全警告メッセージと、ソースファイルと、を該当コード追加部２０に供給する。
【００１７】
図２は、静的解析ツールが出力した静的解析の全警告メッセージを示す図である。図示するように、全警告メッセージは、テーブル形式（すなわち、各警告の情報がデータ行となったテーブル）で表現できる。なお、以降の説明では、図２に示すようなデータを警告テーブルと記載する。警告テーブルには、カラムとしてファイル名、行番号、警告番号、及び警告メッセージが含まれる。
【００１８】
ファイル名の項目には、警告の存在するソースファイルのファイル名が記載される。行番号の項目には、警告箇所が存在するソースファイル内の行の行番号が記載される。警告番号の項目には、警告を識別するための識別子の情報が記載される。警告メッセージの項目には、警告内容を示すメッセージが記載される。
【００１９】
図１の説明に戻る。該当コード追加部２０は、警告テーブル（図２）に含まれる各データ行に対して、警告箇所にかかるソースコードを抽出する。ここで、該当コード追加部２０は、各データ行のファイル名及び行番号を参照してソースファイルからソースコードを抽出する。そして、該当コード行追加部２０は、各データ行と、抽出したソースコードと、を関連付ける。すなわち、該当コード行追加部２０は、各データ行に対して該当コード行の項目を追加する。図３は、該当コード行追加部２０がデータ列を追加した警告テーブルを示す図である。図示するように、各データ行に、警告箇所のソースコードが関連づけられる。該当コード追加部２０は、この警告テーブルをグループ化部３０に供給する。
【００２０】
グループ化部３０は、前述のように第１キーソート部３１と、第２キーソート部３２と、を備える。該当コード追加部２０から供給された警告テーブルは、第１キーソート部３１に入力される。
【００２１】
第１キーソート部３１は、警告番号を基に警告テーブルの各データ行をソートする処理部である。詳細には、第１キーソート部３１は、警告番号が同一である各データ行が隣り合うように、データ行をソートする。
【００２２】
図４は、図３に示す警告テーブルの各データ行を第１キーソート部３１がソートした場合の警告テーブルを示す図である。図示するように、第１キーソート部３１によりソートされた警告テーブルでは、同一の警告番号を持つデータ行が隣り合うように整列される。第１キーソート部３１は、ソートの後に、当該警告テーブルを第２キーソート部３２に供給する。
【００２３】
第２キーソート部３２は、警告テーブル内の警告番号が同一である各データ行のうち、該当コード行が同一であるデータ行が隣り合うようにデータ行をソートする処理部である。例えば、図４では 該当コード行に"ｉｆ（常時真）：ｉｆ（ｕｃｔ！＝０ｘ１００）"と設定されているデータ行が複数存在する。第２キーソート部３２は、このように該当コード行に同一文字列が設定されているデータ行が隣り合うようにデータ行の並び変えを行う。
【００２４】
図５は、図４に示す警告テーブル（第１キーソート部３１によるソートが終了した警告テーブル）の各データ行を第２キーソート部３２がソートした場合の警告テーブルを示す図である。図示するように、同一の警告番号を持ち、かつ同一の該当コード行をもつデータ行が隣り合うように整列される。第２キーソート部３２は、ソートの後に、当該警告テーブルを出力部４０に対して出力する。
【００２５】
なお、第２キーソート部３２は、同一の該当コード行をもつデータ行が隣り合うように整列してもよく、スペース文字を取り除いたら同一の該当コード行をもつデータ行が隣り合うように整列してもよい。図６は、当該動作の概念を示す図である。図６には、２つの条件文が記載されている。一般に、どのようなプログラミング言語であってもスペース文字は、コンパイル時に無視される。たとえば、図６に示す２つの条件文は、意味的には同じ条件文である。第２キーソート部３２は、ソートを行う前に警告テーブルの該当コード行のスペース文字を取り除き、その後に上述のデータ行の並び変えを行っても良い。これにより、スペース文字の有無によらず、意味的に同じ命令を示す該当コード行をもつデータ行が隣り合うように整列される。
【００２６】
出力部４０は、第２キーソート部３２が出力した警告テーブルを任意の表示装置に出力する処理部である。出力部４０は、第２キーソート部３２が並び変えたデータ行の順序のまま、ユーザが目視確認すべきデータ行が分かるような表示画面を表示装置に出力する。例えば、出力部４０は、図５に示すように同一警告番号を持ち、かつ同一の該当コード行をもつデータ行のうち、一番上に位置するデータ行について印を付けた表示画面を表示装置に出力する。なお、出力部４０は、同一警告番号を持ち、かつ同一の該当コード行をもつデータ行のうち、一番上に位置するデータ行の表示色を変更した表示画面を表示装置に出力しても良い。なお、出力部４０は、警告テーブルに含まれる情報を記載したファイルを作成しても良い。
【００２７】
次に、本実施の形態にかかる静的解析支援装置１の動作の流れを図７のフローチャートを参照して説明する。はじめに、該当コード追加部２０が入力部１０から供給された警告テーブルの各データ行に対して該当コード行をソースファイルから抽出して追加する（Ｓ１）。第１キーソート部３１は、警告テーブルの各データ行を、警告番号を基にソートする。そして、第２キーソート部３２は、第１キーソート部３１がソートした警告テーブルの各データ行を、該当コード行を用いてソートする（Ｓ２）。出力部４０は、ソートが終了した警告テーブルに含まれる情報を任意の形式で出力する（Ｓ３）。
【００２８】
続いて、本実施の形態にかかる静的解析支援装置１の効果について説明する。上述したように、該当コード追加部２０が各警告（警告テーブルに含まれる各データ行）と、当該警告の発生個所のコード行（該当コード）を関連付ける。グループ化部３０は、警告番号及び該当コードが同一となるデータ行が隣り合うように整列（グループ化）を行う。これにより、同一警告種別であり、同一のコード記述にかかるデータ行は、連続して表示される。そのため、ユーザは、同一警告種別であり、同一のコード記述にかかるデータ行のうち、先頭データ行のみを参照すればその内容の概略を把握することができ、静的解析結果の目視確認の時間を短縮することができる。
【００２９】
図８を用いて、本実施の形態にかかる静的解析支援装置１の概略を再度説明する。図８は、本実施の形態にかかる静的解析支援装置１の概略構成を示すブロック図である。本構成では、該当コード追加部２０が静的解析ツールの出力した全警告メッセージ、及びソースプログラムを直接読み出している。他の構成、動作については図１と同様である。当該構成であってもユーザによる静的解析結果の目視確認の時間を短縮することができる。
【００３０】
上記した静的解析支援装置１の各処理部（入力部１０、該当コード追加部２０、グループ化部３０、及び出力部４０）の処理は、任意のコンピュータ内で動作するプログラムとして実現することが可能である。プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００３１】
図９は、静的解析支援装置１を実現するためのコンピュータシステムのハードウェア構成例を示している。例えば、このシステムは、中央処理装置（ＣＰＵ）５１とメモリ５２とを含んでいる。ＣＰＵ５１とメモリ５２とは、バスを介して補助記憶装置としてのハードディスク装置（ＨＤＤ）５３に接続される。このシステムは、典型的には、ユーザ・インターフェース・ハードウェアを備える。ユーザ・インターフェース・ハードウェアとしては、例えば、入力をするためのポインティング・デバイス（マウス、ジョイスティック等）やキーボード等の入力装置５４や、視覚データをユーザに提示するための液晶ディスプレイなどの表示装置５５がある。ハードディスク装置５３等の記憶媒体にはオペレーティングシステムと共同してＣＰＵ５１等に命令を与え、このシステムの各部の機能を実施するためのコンピュータ・プログラムを記憶することができる。すなわち、プログラムがメモリ５２上に展開され、ＣＰＵ５１がプログラムに従って処理を行い、他のハードウェア構成と協働することによって、静的解析支援装置１の各ブロックが構成されている。そして、静的解析支援装置１による各処理は、ＣＰＵ５１において所定のプログラムが実行されることで実現されている。尚、これらのシステムは、単一のコンピュータでなくとも、複数のコンピュータによって構成することも可能である。
【００３２】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記した静的解析支援装置１は、主にＣ言語を想定してその動作を説明したが必ずしもこれに限られず、静的解析を必要とする任意のプログラム言語で記載されたソースコードに対して適用することができる。
【００３３】
上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００３４】
（付記１）
ソースファイルの静的解析によって得られ、警告種別を示す識別子と、警告箇所を含むソースコードが記述された行の行番号を含む位置情報と、を有するデータ行から構成される警告テーブルに対し、前記位置情報を参照して前記ソースファイルから抽出したソースコード行を各データ行に追加する該当コード追加部と、
前記識別子と、前記ソースコード行と、を用いて、前記警告テーブルにおいて警告原因が関連するデータ行をグループ化するグループ化部と、
前記グループ化部によりグループ化された結果を表示する表示画面を出力する出力部と、を備える静的解析支援装置。
【００３５】
（付記２）
前記グループ化部は、
前記警告テーブルの各データ行を、前記識別子が同一であるデータ行が隣り合うように並び変える第１ソート部と、
前記第１ソート部により前記識別子が同一とされたデータ行のうち、前記ソースコード行が互いに関連するデータ行が隣り合うように並び変える第２ソート部と、を備えることを特徴とする付記１に記載の静的解析支援装置。
【００３６】
（付記３）
前記第２ソート部は、前記第１ソート部により前記識別子が同一とされたデータ行のうち、前記ソースコード行が完全に同一であるデータ行を隣り合うように並び変えることを特徴とする付記２に記載の静的解析支援装置。
【００３７】
（付記４）
前記第２ソート部は、前記第１ソート部により前記識別子が同一とされたデータ行のうち、前記ソースコード行からスペース文字を取り除くと同一であるデータ行を隣り合うように並び変えることを特徴とする付記２に記載の静的解析支援装置。
【００３８】
（付記５）
前記出力部は、前記表示画面において、同一グループに属するデータ行の１つをハイライトして表示することを特徴とする付記１乃至付記４のいずれかに記載の静的解析支援装置。
【００３９】
（付記６）
ソースファイルの静的解析によって得られ、警告種別を示す識別子と、警告箇所を含むソースコードが記述された行の行番号を含む位置情報と、を有するデータ行から構成される警告テーブルに対し、前記位置情報を参照して前記ソースファイルから抽出したソースコード行を各データ行に追加する該当コード追加ステップと、
前記識別子と、前記ソースコード行と、を用いて、前記警告テーブルにおいて警告原因が関連するデータ行をグループ化するグループ生成ステップと、
前記グループ化部によりグループ化された結果を表示する表示画面を出力する出力ステップと、を備える静的解析支援方法。
【００４０】
（付記７）
前記グループ生成ステップは、
前記警告テーブルの各データ行を、前記識別子が同一であるデータ行が隣り合うように並び変える第１ソートステップと、
前記第１ソートステップにおいて前記識別子が同一とされたデータ行のうち、前記ソースコード行が互いに関連するデータ行が隣り合うように並び変えることにより前記グループ化処理を行う第２ソートステップと、を備えることを特徴とする付記６に記載の静的解析支援方法。
【００４１】
（付記８）
前記第２ソートステップでは、前記第１ソートステップにおいて前記識別子が同一とされたデータ行のうち、前記ソースコード行が完全に同一であるデータ行を隣り合うように並び変えることにより前記グループ化処理を行うことを特徴とする付記７に記載の静的解析支援装置。
【００４２】
（付記９）
前記第２ソートステップでは、前記第１ソートステップにおいて前記識別子が同一とされたデータ行のうち、前記ソースコード行からスペース文字を取り除くと同一であるデータ行を隣り合うように並び変えることにより前記グループ化処理を行うことを特徴とする付記７に記載の静的解析支援方法。
【００４３】
（付記１０）
前記出力ステップでは、前記表示画面において、同一グループに属するデータ行の１つをハイライトして表示することを特徴とする付記６乃至付記９のいずれかに記載の静的解析支援方法。
【００４４】
（付記１１）
コンピュータに、
ソースファイルの静的解析によって得られ、警告種別を示す識別子と、警告箇所を含むソースコードが記述された行の行番号を含む位置情報と、を有するデータ行から構成される警告テーブルに対し、前記位置情報を参照して前記ソースファイルから抽出したソースコード行を各データ行に追加する該当コード追加ステップと、
前記識別子と、前記ソースコード行と、を用いて、前記警告テーブルにおいて警告原因が関連するデータ行をグループ化するグループ生成ステップと、
前記グループ生成ステップにおいてグループ化された結果を表示する表示画面を出力する出力ステップと、を実行させるためのプログラム。
【００４５】
（付記１２）
前記グループ生成ステップは、
前記警告テーブルの各データ行を、前記識別子が同一であるデータ行が隣り合うように並び変える第１ソートステップと、
前記第１ソートステップにおいて前記識別子が同一とされたデータ行のうち、前記ソースコード行が互いに関連するデータ行が隣り合うように並び変えることにより前記グループ化処理を行う第２ソートステップと、を備えることを特徴とする付記１１に記載のプログラム。
【００４６】
（付記１３）
前記第２ソートステップでは、前記第１ソートステップにおいて前記識別子が同一とされたデータ行のうち、前記ソースコード行が完全に同一であるデータ行を隣り合うように並び変えることにより前記グループ化処理を行うことを特徴とする付記１２に記載のプログラム。
【００４７】
（付記１４）
前記第２ソートステップでは、前記第１ソートステップにおいて前記識別子が同一とされたデータ行のうち、前記ソースコード行からスペース文字を取り除くと同一であるデータ行を隣り合うように並び変えることにより前記グループ化処理を行うことを特徴とする付記１２に記載のプログラム。
【００４８】
（付記１５）
前記出力ステップでは、前記表示画面において、同一グループに属するデータ行の１つをハイライトして表示することを特徴とする付記１１乃至付記１４のいずれかに記載のプログラム。
【符号の説明】
【００４９】
１  静的解析支援装置
１０  入力部
２０  該当コード追加部
３０  グループ化部
３１  第１キーソート部
３２  第２キーソート部
４０  出力部
【図１】
0005665128.tif 000002
【図２】
0005665128.tif 000003
【図３】
0005665128.tif 000004
【図４】
0005665128.tif 000005
【図５】
0005665128.tif 000006
【図６】
0005665128.tif 000007
【図７】
0005665128.tif 000008
【図８】
0005665128.tif 000009
【図９】
0005665128.tif 000010