(57)【要約】【課題】記憶装置に記憶させる解析結果のデータの量を削減すると共に、作成者の解析結果にかかわる確認作業の負荷を軽減させること。【解決手段】本実施例にかかるプログラム解析装置６０は、確認結果抑制部１００が、新旧バージョンの確認結果情報を統合して、統合確認結果情報を作成し、構成管理部７０が、当該統合確認結果情報を記憶部８０に記憶させる。そして、プログラム解析部９０が、ユーザによって指定されたプログラムを解析し、確認結果抑制部１００が、統合確認結果情報と解析結果を基にして、表示装置５０に表示させる解析結果を選択する。【選択図】        図１
2006344145.tif 000002
【特許請求の範囲】
【請求項１】
プログラムのソースコードを解析し、当該ソースコードの解析結果を出力するソースコード解析プログラムであって、
ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させる確認結果情報記憶手順と、
前記確認結果情報記憶手順によって記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成する確認結果統合手順と、
前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する解析結果出力手順と、
をコンピュータに実行させることを特徴とするソースコード解析プログラム。
【請求項２】
前記解析結果出力手順は、前記統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力することを特徴とする請求項１に記載のソースコード解析プログラム。
【請求項３】
前記解析結果出力手順は、バージョンアップ前のソースコードにかかわる確認結果情報に対応付けられていない解析結果が存在する場合に、当該解析結果を出力することを特徴とする請求項１に記載のソースコード解析プログラム。
【請求項４】
プログラムのソースコードを解析し、当該ソースコードの解析結果を出力するソースコード解析方法であって、
ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させる確認結果情報記憶工程と、
前記確認結果情報記憶工程によって記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成する確認結果統合工程と、
前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する解析結果出力工程と、
を含んだことを特徴とするソースコード解析方法。
【請求項５】
前記解析結果出力工程は、前記統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力することを特徴とする請求項４に記載のソースコード解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラムのソースコードを解析し、当該ソースコードの解析結果を出力するソースコード解析プログラムおよびソースコード解析方法に関し、特に記憶装置に記憶させる解析結果のデータの量を削減すると共に、作成者の解析結果にかかわる確認作業の負荷を軽減させることができるソースコード解析プログラムおよびソースコード解析方法に関するものである。
【背景技術】
【０００２】
従来、プログラムの作成者など（以下、単に作成者と表記する）は、プログラムを作成した後に、当該プログラムに存在する問題箇所を検出し、プログラムを実行した際に発生する障害を未然に防ぐ必要があった。
【０００３】
そこで、作成者は、非特許文献１に公開されているプログラム解析ツール等を利用して、プログラムを解析し、解析した結果を利用して問題箇所を特定すると共に、当該問題箇所を修正していた。
【０００４】
しかし、非特許文献１に公開されているプログラム解析ツールは、全ての解析結果を選別することなく作成者に通知するため、作成者にかかる負担が大きいという問題があった。なぜなら、バージョンアップ前のプログラムにおいて問題ないと作成者が確認した解析結果であっても、作成者が確認した解析結果はバージョンアップ後のプログラムの解析結果に反映されないため、作成者は一度確認を行った解析結果をもう一度確認する必要があったからである。
【０００５】
そこで、特許文献１に記載された発明では、バージョンアップ前の各プログラムにかかわる解析結果をそれぞれ記憶装置に記憶させると共に、記憶させた各解析結果を基にして各解析結果の重複部分を省略し、当該重複部分を省略した解析結果を作成者に通知することによって作成者にかかる負担を軽減させている。
【０００６】
【特許文献１】特開２００４−１２６８６６号公報
【非特許文献１】富士通株式会社、[online]、[平成１７年５月１９日検索]、インターネット＜ＵＲＬ：http://www.ist.fujitsu.com/core/pgr＞
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、かかる従来の技術では、異なるバージョン毎のプログラムそれぞれに対応する解析結果を記憶装置に記憶させる必要があるため、記憶装置に記憶させるべきデータの量が膨大になってしまうという問題があった。
【０００８】
また、通常、プログラムのバージョンアップは頻繁に行われるので、この問題は更に深刻なものとなる。
【０００９】
すなわち、記憶装置に記憶させる解析結果のデータの量を削減すると共に、作成者の解析結果確認にかかわる作業の負荷を軽減させることが極めて重大な課題となっている。
【００１０】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、記憶装置に記憶させる解析結果のデータの量を削減すると共に、作成者の解析結果確認にかかわる作業の負荷を軽減させることができるソースコード解析プログラムおよびソースコード解析方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、請求項１の発明に係るソースコード解析プログラムは、プログラムのソースコードを解析し、当該ソースコードの解析結果を出力するソースコード解析プログラムであって、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させる確認結果情報記憶手順と、前記確認結果情報記憶手順によって記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成する確認結果統合手順と、前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する解析結果出力手順と、をコンピュータに実行させることを特徴とする。
【００１２】
この請求項１の発明によれば、ソースコード解析プログラムは、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させ、記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成し、前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する。
【００１３】
また、請求項２の発明に係るソースコード解析プログラムは、請求項１の発明において、前記解析結果出力手順は、前記統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力することを特徴とする。
【００１４】
この請求項２の発明によれば、ソースコード解析プログラムは、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させ、記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成し、生成した統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力する。
【００１５】
また、請求項３の発明に係るソースコード解析プログラムは、請求項１の発明において、前記解析結果出力手順は、バージョンアップ前のソースコードにかかわる確認結果情報に対応付けられていない解析結果が存在する場合に、当該解析結果を出力することを特徴とする。
【００１６】
この請求項３の発明によれば、ソースコード解析プログラムは、バージョンアップ前のソースコードにかかわる確認結果情報に対応付けられていない解析結果が存在する場合に、当該解析結果を出力することを特徴とする。
【００１７】
また、請求項４の発明に係るソースコード解析方法は、プログラムのソースコードを解析し、当該ソースコードの解析結果を出力するソースコード解析方法であって、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させる確認結果情報記憶工程と、前記確認結果情報記憶工程によって記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成する確認結果統合工程と、前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する解析結果出力工程と、を含んだことを特徴とする。
【００１８】
この請求項４の発明によれば、ソースコード解析方法は、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させ、記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成し、前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する。
【００１９】
また、請求項５の発明に係るソースコード解析方法は、請求項４の発明において、前記解析結果出力工程は、前記統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力することを特徴とする。
【００２０】
この請求項５の発明によれば、ソースコード解析方法は、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させ、記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成し、生成した統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力する。
【発明の効果】
【００２１】
請求項１の発明によれば、ソースコード解析プログラムは、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させ、記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成し、前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力するので、記憶装置に記憶させるデータ量を大幅に削減することができる。
【００２２】
また、請求項２の発明によれば、ソースコード解析プログラムは、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させ、記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成し、生成した統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力するので、記憶装置に記憶させるデータ量を大幅に削減できると共に、ユーザの解析結果確認作業にかかる負担を軽減することができる。
【００２３】
また、請求項３の発明によれば、ソースコード解析プログラムは、バージョンアップ前のソースコードにかかわる確認結果情報に対応付けられていない解析結果が存在する場合に、当該解析結果を出力するので、ユーザの解析結果確認作業にかかる負担を軽減させることができる。
【００２４】
また、請求項４の発明によれば、ソースコード解析方法は、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させ、記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成し、前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力するので、記憶装置に記憶させるデータ量を大幅に削減することができる。
【００２５】
また、請求項５の発明によれば、ソースコード解析方法は、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させ、記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成し、生成した統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力するので、記憶装置に記憶させるデータ量を大幅に削減できると共に、ユーザの解析結果確認作業にかかる負担を軽減することができる。
【発明を実施するための最良の形態】
【００２６】
以下に添付図面を参照して、この発明に係るソースコード解析プログラムおよびソースコード解析方法の好適な実施の形態を詳細に説明する。
【実施例】
【００２７】
まず、本実施例にかかるプログラム解析装置の概念について説明する。本実施例にかかるプログラム解析装置は、異なるバージョンごとのプログラム解析結果に対する確認情報を統合し、統合した確認結果情報（以下、統合確認結果情報と表記する）を記憶部に記憶させる。ここで、確認結果情報は、プログラム解析結果に問題があるか否かを示す情報である。
【００２８】
そして、プログラム解析装置は、新バージョンのプログラムの解析結果を出力する際に、記憶部に記憶された統合確認結果に基づいて、ユーザに必要な解析結果のみを選択し、選択した解析結果を出力する。
【００２９】
したがって、本実施例にかかるプログラム解析装置は、従来のように、異なるプログラムごとの解析結果を記憶部に記憶させる必要がなくなるので、記憶部に記憶させるデータの量を大幅に削減することができる。また、統合確認結果情報を基にして、ユーザに必要な解析結果を選択して出力するので、ユーザにかかる負担を軽減させることができる。
【００３０】
次に、本実施例にかかるプログラム解析装置の構成について説明する。図１は、本実施例にかかるプログラム解析装置の構成を示す機能ブロック図である。同図に示すように、このプログラム解析装置６０は、構成管理部７０、記憶部８０、プログラム解析部９０および確認結果抑制部１００を有する。また、プログラム解析装置６０は、キーボードやマウスなどの入力装置４０と、ディスプレイなどの表示装置５０に接続されている。
【００３１】
構成管理部７０は、記憶部８０に記憶された新旧（バージョンアップ後、バージョンアップ前）プログラムまたは統合確認結果情報をプログラム解析部９０および確認結果抑制部１００に渡す処理部である。具体的に、この構成管理部７０は、記憶部８０に記憶された解析対象プログラム群８０ａから解析対象となるプログラムを検索し、検索したプログラムをプログラム解析部９０および確認結果抑制部１００に渡す。検索対象となるプログラムは、入力装置４０を介してユーザによって指定される。
【００３２】
ここで、記憶部８０は、解析対象プログラム群８０ａおよび統合確認結果情報８０ｂを記憶する記憶部である。解析結果対象プログラム群８０ａは、解析対象となる複数のプログラムの集まりであり、統合確認結果情報８０ｂは、各バージョンのプログラム解析結果に対するそれぞれの確認結果を統合（各確認結果情報の重複部分を省略して統合）した情報と対応するプログラムの識別情報とを関連付けた情報である。
【００３３】
また、構成管理部７０は、確認結果抑制部１００から統合確認結果情報８０ｂに対する要求を受付けた場合には、記憶部８０に記憶された統合確認結果情報８０ｂおよび統合確認結果情報８０ｂに対応するバージョンアップ前のプログラムを確認結果抑制部１００に渡す。
【００３４】
プログラム解析部９０は、構成管理部７０から取得したプログラムを解析し、解析したプログラムの解析結果を確認結果抑制部１００に渡す処理部である。
【００３５】
確認結果抑制部１００は、プログラムの解析結果と統合確認結果情報８０ｂとを取得し、取得した各情報に基づいて、出力すべき解析結果を選択し、選択した解析結果を表示装置５０に出力する処理部である。
【００３６】
なお、出力すべき解析結果は、バージョンアップ前のプログラムにおいて問題無しと判定された解析結果以外の解析結果または、バージョンアップ前のプログラムにかかわる確認結果情報に対応付けられていない解析結果等を出力する。
【００３７】
このように、確認結果抑制部１００は、プログラム解析部９０からプログラムの解析結果を取得した場合に、取得した解析結果全てを表示装置５０に出力するのではなく、統合確認結果８０ｂを基にして、バージョンアップ前のプログラムにおいて問題無しと判定された解析結果以外の解析結果または、バージョンアップ前のプログラムにかかわる確認結果情報に対応付けられていない解析結果等を選択・出力するので、ユーザの解析結果確認作業にかかわる負担を大幅に軽減させることができる。
【００３８】
次に、図１に示した確認結果抑制部１００の構成について説明する。図２は、図１に示した確認結果抑制部１００の構成を示す機能ブロック図である。同図に示すように、この確認結果抑制部１００は、管理部１１０、位置情報テーブル作成部１２０、位置情報テーブル記憶部１３０、解析結果編集部１４０、解析結果表示部１５０、確認結果取得部１６０および確認結果統合部１７０を有する。
【００３９】
管理部１１０は、確認結果制御部１００全体を管理する処理部である。具体的に、この管理部１１０は、入力装置４０から所定のプログラムにかかわる解析要求を取得した場合に、当該解析要求に対応するプログラムの情報を構成管理部７０に通知する。そして、管理部１１０は、構成管理部７０から統合確認結果情報８０ｂ、バージョンアップ前のプログラムおよび解析対象となるプログラムを取得し、プログラム解析部９０から解析要求に対応するプログラムの解析結果を取得する。
【００４０】
管理部１１０は、取得した統合確認結果情報８０ｂを解析結果編集部１４０、確認結果統合部１７０に渡し、解析対象となったプログラムおよび当該解析対象のプログラムのバージョンアップ前にかかわるプログラムを位置情報テーブル作成部１２０に渡し、プログラムの解析結果を解析結果編集部１４０に渡す。
【００４１】
位置情報テーブル作成部１２０は、解析対象のプログラムと、当該解析対象プログラムのバージョンアップ前にかかわるプログラムとを基にして位置情報テーブルを作成し、作成した位置情報テーブルを位置情報テーブル記憶部１３０に記憶させる処理部である。ここで、位置情報テーブル記憶部１３０は、位置情報テーブルを記憶する記憶部である。図３は、位置情報テーブル作成部１２０が作成する位置情報テーブルの一例を示す図である。
【００４２】
図３に示すように、この位置情報テーブルは、「ファイル名」、「変更前の位置（行番号）」「変更後の位置（行番号）」からなる。具体的には、変更前「１」行目にあったファイル名「"/usr/home/a.c"」が変更後に「２」行目になった旨を示し、変更前「２」行目にあったファイル名「"/usr/home/a.c"」が変更後に「２」行目になった旨を示す。その他の位置情報テーブルに関する説明は省略する。
【００４３】
図２の説明に戻ると、解析結果編集部１４０は、管理部１１０から統合確認結果情報８０ｂとプログラムの解析結果とを取得すると共に、位置情報テーブル記憶部１３０から位置情報テーブルを取得して、最適な解析結果を選択し、選択した解析結果を解析結果表示部１５０に渡す処理部である。解析結果表示部１５０は、解析結果編集部１４０から取得した解析結果を表示装置５０に表示させる処理部である。
【００４４】
確認結果取得部１６０は、入力装置４０からプログラムの解析結果にかかわる確認結果を取得した場合に、取得した確認結果を確認結果情報として確認結果統合部１７０に渡す処理部である。
【００４５】
確認結果統合部１７０は、管理部１１０から取得する統合確認結果情報８０ｂと、確認結果取得部１６０から取得する確認結果情報を統合して新たな統合確認結果情報を作成する処理部である。また、確認結果統合部１７０は、作成した統合確認結果情報を管理部１１０に渡す。管理部１１０は、確認結果統合部７０から取得した統合確認結果情報と解析対象となったプログラムとを関連付けて構成管理部７０に渡し、構成管理部７０は統合確認結果情報８０ｂを更新する。
【００４６】
次に、本実施例にかかるプログラム解析装置６０が、初版のプログラムを解析する場合の処理について説明する。図４は、本実施例にかかるプログラム解析装置６０が、初版のプログラムを解析する場合の処理を示すフローチャートである。
【００４７】
同図に示すように、プログラム解析装置６０は、構成管理部７０が解析対象プログラム群８０ａから初版のプログラムを取得し（ステップＳ１０１）、取得したプログラムをプログラム解析部９０に渡す（ステップＳ１０２）。
【００４８】
そして、プログラム解析部９０が、取得したプログラムを解析し（ステップＳ１０３）、プログラムの解析結果を確認結果抑制部１００に渡し（ステップＳ１０４）、確認結果抑制部１００が取得した解析結果を表示装置５０に表示させる（ステップＳ１０５）。
【００４９】
続いて、確認結果抑制部１００は、入力装置４０から確認結果を受付け（ステップＳ１０６）、受付けた確認結果を統合確認結果情報として作成し（ステップＳ１０７）、作成した統合確認結果情報と、対応するプログラムとを構成管理部７０に渡し（ステップＳ１０８）、構成管理部７０は、統合確認結果情報と、プログラムとを関連付けて記憶部８０に登録する（ステップＳ１０９）。
【００５０】
図５は、図４のステップＳ１０５において、表示装置５０に表示される初版のプログラムの解析結果にかかわる表示画面の一例を示す図である。同図に示すように、当該表示画面には、「確」、「ファイル名」、「行番号」、「ＩＤ」、「メッセージ」、「パターン」、「コメント」、「更新日時」を有する。
【００５１】
ここで、「ファイル名」は、解析対象となったファイルの名称であり、「行番号」は、ファイル名に対応するファイルの行番号であり、「ＩＤ（Identification）」は、特定の解析結果を識別するための情報であり、「メッセージ」は、各ファイル名に対する解析結果のメッセージであり、「パターン」は、同ＩＤ中に存在する異なる引数に対して分類わけをするパターンＩＤである。例えば、上から一行目、三行目、四行目は同一のＩＤ「１０２」であるが、それぞれ引数が異なるため、パターンを「１０２＿３、１０２＿１、１０２＿２」に設定し、それぞれを区別している。
【００５２】
また、「コメント」は、各解析結果に対する確認結果の理由がユーザによって入力される欄であり、「更新日付」は、各情報が更新された日付を示す。「確」には、各解析結果に問題があるか否かの確認結果がユーザによって入力される。例えば、ファイル名「/usr/home/a.c」、行番号「１」、ＩＤ「１０２」、メッセージ「マクロ定義内で、引数”ｃ”が使用されていません」、パターン「１０２＿３」に関してユーザが問題ありと判断した場合には、ユーザによって「確」の欄に「×（問題あり）」が入力され、問題なしと判断した場合には、「確」の欄に「○（問題なし）」が入力される。なお、図５に示した表示画面は、図２に示した解析結果表示部１５０によって作成される。
【００５３】
次に、本実施例にかかるプログラム解析装置６０が改版後（バージョンアップ後）のプログラムを解析する場合の処理について説明する。図６は、本実施例にかかるプログラム解析装置６０が、改版後のプログラムを解析する場合の処理を示すフローチャートである。
【００５４】
図６に示すように、プログラム解析装置６０は、構成管理部７０が解析対象プログラム群８０ａからユーザによって指定された改版後のプログラムを取得し（ステップＳ２０１）、取得したプログラムをプログラム解析部９０に渡し（ステップＳ２０２）、プログラム解析部９０がプログラムを解析し（ステップＳ２０３）、プログラムの解析結果を確認結果抑制部１００に渡す（ステップＳ２０４）。
【００５５】
そして、確認結果抑制部１００が、入力装置４０から比較対象となる版データ（バージョンアップ前のプログラムの情報）を受付け（ステップＳ２０５）、当該版データを構成管理部７０に渡し（ステップＳ２０６）、構成管理部７０が版データに対応するプログラムおよび統合確認結果情報を記憶部８０から取得し、取得した情報を確認結果抑制部１００に渡す（ステップＳ２０７）。
【００５６】
続いて、位置情報テーブル作成部１２０が、改版前のプログラムと改版後のプログラムとを比較して、位置情報テーブルを作成し、作成した位置情報テーブルを位置情報テーブル記憶部１３０に記憶させ、（ステップＳ２０８）、解析結果編集部１４０が位置情報テーブルを基に統合確認結果情報の位置情報を変換する（ステップＳ２０９）。
【００５７】
そして、解析結果編集部１４０が解析結果編集処理を行い（ステップＳ２１０）、解析結果表示部１５０が解析結果表示処理を行い（ステップＳ２１１）、確認結果取得部１６０が入力装置から確認結果を受付け（ステップＳ２１２）、確認結果情報を作成し、作成した確認結果情報を確認結果統合部１７０に渡す（ステップＳ２１３）。
【００５８】
続いて、確認結果統合部１７０が、確認結果情報統合処理を行い（ステップＳ２１４）、統合した確認結果情報と対応するプログラムとを構成管理部７０に渡し（ステップＳ２１５）、構成管理部７０が統合した確認結果情報とプログラムとを関連付けて記憶部８０に記憶する（ステップＳ２１６）。
【００５９】
次に、図６のステップＳ２１０で示した解析結果編集処理について説明する。図７は、図６のステップＳ２１０で示した解析結果編集処理を示すフローチャートである。同図に示すように、確認結果抑制部１００は、解析結果編集部１４０が、全ての解析結果に対する比較が終了したか否かを判定し（ステップＳ３０１）、終了した場合には（ステップＳ３０２，Ｙｅｓ）、解析結果編集処理を終了する。
【００６０】
一方、終了していない場合には（ステップＳ３０２，Ｎｏ）、解析結果を選択し（ステップＳ３０３）、選択した解析結果に該当する統合確認結果情報が存在するか否かを判定する（ステップＳ３０４）。
【００６１】
そして、該当する統合確認結果情報が存在しない場合には（ステップＳ３０５，Ｎｏ）、解析結果の確認項目を空欄に設定し（ステップＳ３０６）、ステップＳ３０１に移行する。
【００６２】
一方、該当する統合確認結果情報が存在する場合には（ステップＳ３０５，Ｙｅｓ）、解析結果と確認結果情報とを比較し（ステップＳ３０７）、問題かあるか否かを判定する（ステップＳ３０８）。
【００６３】
そして、問題がある場合には（ステップＳ３０８，Ｎｏ）、解析結果の確認項目を×（問題あり）に設定し（ステップＳ３０９）、ステップＳ３０１に移行する。一方、問題が無い場合には（ステップＳ３０８，Ｙｅｓ）、解析結果の確認項目を○（問題なし）に設定し（ステップＳ３１０）、ステップＳ３０１に移行する。
【００６４】
次に、図６のステップＳ２１１で示した解析結果表示処理について説明する。図８は、図６のステップＳ２１１で示した解析結果表示処理を示すフローチャートである。同図に示すように、確認結果抑制部１００は、解析結果表示部１５０が、編集された解析結果および統合確認結果情報を解析結果編集部１４０から取得し（ステップＳ４０１）、取得した解析結果および統合確認結果情報を解析する（ステップＳ４０２）。
【００６５】
そして、解析結果表示部１５０は、解析結果に応じた確認結果（○、×、空欄）をフォームの確認情報欄に代入し（ステップＳ４０３）、ファイル名、行番号、コメント、日付をフォームの欄に代入する（ステップＳ４０４）。
【００６６】
続いて、解析結果表示部１５０は、ＩＤおよびメッセージをチェックし、過去のパターンにマッチするか否かを判定し（ステップＳ４０５）、過去のパターンにマッチする場合には（ステップＳ４０６，Ｙｅｓ）、フォームのパターン欄に該当するパターンを代入する（ステップＳ４０７）。
【００６７】
一方、過去のパターンにマッチしない場合には（ステップＳ４０６，Ｎｏ）、新しいパターンを作成し（ステップＳ４０８）、作成した新しいパターンをフォームのパターン欄に代入する（ステップＳ４０９）。
【００６８】
図９は、図６のＳ２１１に示した解析結果表示処理によって、解析結果表示部１５０が表示装置５０に表示させる表示画面の一例を示す図である。同図に示すように、この表示画面は、「旧Ｖｅｒ．」、「確」、「ファイル名」、「行番号」、「ＩＤ」、「メッセージ」、「パターン」、「コメント」、「更新日時」からなる。なお、「確」、「ファイル名」、「行番号」、「ＩＤ」、「メッセージ」、「パターン」、「コメント」に関する説明は、図５において行った説明と同様であるため説明を省略する。
【００６９】
ここで、「旧Ｖｅｒ．」は、バージョンアップ前の解析結果が、問題ありと判断されたか否かの情報が格納される。具体的に、上から１段目のファイル名「/usr/home/a.c」に関しては、バージョンアップ前には、「○（問題なし）」と、判定されていたことがわかる。
【００７０】
「確」には、表示装置５０によって表示された解析結果を基に、ユーザが、問題あるなしを判断し、判断した結果が入力装置４０から入力される。図９において、上から１段目では、「確」が、「×（問題あり）」になっている（バージョンアップ前は、問題無しであったが、バージョンアップ後に問題ありになっている）。
【００７１】
なお、解析結果表示部１５０は、プログラムの解析結果を全て表示してもよいし、例えば、「旧Ｖｅｒ．」において、「○（問題なし）」以外の解析結果を表示（図９の例では、１段目以外を表示）してもよいし、未確認の解析結果のみを表示（図９の例では、２，４，７，８，９段目を表示）してもよい。
【００７２】
このように、予め、解析結果表示部１５０に表示させる解析結果の条件を設定しておくことによって、ユーザは、過去に確認した解析結果を再度確認する必要がなくなるので、解析結果の確認作業にかかわる負担が軽減される。
【００７３】
次に、図６のステップＳ２１４で示した確認結果情報統合処理について説明する。図１０は、図６のステップＳ２１４で示した確認結果情報統合処理を示すフローチャートである。同図に示すように、確認結果抑制部１００は、確認結果統合部１７０が過去の統合確認結果情報と今回の確認結果情報との比較が全て終了したか否かを判定し（ステップＳ５０１）、終了した場合には（ステップＳ５０２，Ｙｅｓ）、確認結果情報統合処理を終了する。
【００７４】
一方、終了していない場合には（ステップＳ５０２，Ｎｏ）、未選択の確認結果情報を選択し（ステップＳ５０３）、選択した確認結果情報に該当する統合確認結果情報が存在するか否かを判定し（ステップＳ５０４）、該当する統合確認結果情報が存在しない場合には（ステップＳ５０５，Ｎｏ）、今回の確認結果情報を新たに統合確認結果情報に追加し（ステップＳ５０６）、ステップＳ５０１に移行する。
【００７５】
一方、該当する総合確認結果情報が存在する場合には（ステップＳ５０５，Ｙｅｓ）、統合確認結果情報と、今回の確認結果情報とを比較し（ステップＳ５０７）、確認結果が等しくない場合には（ステップＳ５０８，Ｎｏ）、今回の確認結果情報の該当箇所を上書きして（ステップＳ５０９）、ステップＳ５０１に移行する。
【００７６】
一方、確認結果が等しい場合には（ステップＳ５０８，Ｙｅｓ）、対応する統合確認結果情報をそのままにし（ステップＳ５１０）、ステップＳ５０１に移行する。
【００７７】
ここで、具体的に、ステップＳ５０６、５０９、５１０の説明を、図９を利用して説明する。同図の上から１段目のように、「旧Ｖｅｒ．」が「○」で、「確」に「×」が代入された場合には、パターン「１０２＿３」にかかわる確認結果を「×」に修正する。
【００７８】
また、上から２段目のように、「旧Ｖｅｒ．」が「空欄」で、「確」に「○」が代入された場合には、パターン「０＿１」にかかわる確認結果を「○」にする。上から３段目のように、「旧Ｖｅｒ．」が「×」で、「確」に「×」が代入された場合には、変更しない。
【００７９】
このように、確認結果統合部１７０が、過去の統合確認結果情報と、新たに入力された確認結果情報を統合するので、記憶部８０に記憶させるべきデータ量を大幅に削減することができる。
【００８０】
上述してきたように、本実施例にかかるプログラム解析装置６０は、確認結果統合部１７０が、新旧バージョンの確認結果情報を統合して、統合確認結果情報を作成し、構成管理部７０が、当該統合確認結果情報を記憶部８０に記憶させる。そして、プログラム解析部８０が、プログラムを解析し、解析結果編集部１４０が、統合確認結果情報と解析結果を基にして、表示装置５０に表示させる解析結果を選択するので、ユーザの解析結果確認作業にかかる負担を軽減させることができると共に、記憶部８０に記憶させるべきデータ量を大幅に削減することができる。
【００８１】
ところで、上記の実施例で説明したプログラム解析装置６０の各処理は、ソースコード解析処理に係るプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図１１を用いて、上記の実施例のプログラム解析装置６０と同様の機能を有するソースコード解析プログラムを実行するコンピュータの一例を説明する。図１１は、ソースコード解析プログラムを実行するコンピュータを示す図である。
【００８２】
同図に示すように、コンピュータ３０は、入力装置３１、表示装置３２、ＲＡＭ３３、ＨＤＤ３４、ＲＯＭ３５およびＣＰＵ３６をバス３７で接続して構成される。ここで、入力装置３１および表示装置３２は、図１で示した入力装置４０および表示装置５０に対応する。
【００８３】
そして、ＲＯＭ３５には、上記の実施例のプログラム解析装置６０と同様の機能を発揮するソースコード解析プログラム、つまり、図１１に示すように、ソースコード解析プログラム３５ａ、確認結果抑制プログラム３５ｂが予め記憶されている。なお、プログラム３５ａ、３５ｂは、図１に示したプログラム解析装置６０の各構成要素と同様、適宜統合または分散しても良い。
【００８４】
そして、ＣＰＵ３６が、これらのプログラム３５ａ、３５ｂをＲＯＭ３５から読み出して実行することで、図１１に示すように、各プログラム３５ａ、３５ｂは、ソースコード解析プロセス３６ａ、確認結果抑制処理プロセス３６ｂとして機能するようになる。各プロセス３６ａ、３６ｂは、図１に示したプログラム解析部９０、確認結果抑制部１００にそれぞれ対応する。
【００８５】
また、ＨＤＤ３４には、図１１に示すように、解析対象プログラム群３４ａ、確認結果データ３４ｂが設けられる。この解析対象プログラム群３４ａ、確認結果データ３４ｂは、図１に示した解析結果対象プログラム群８０ａ、統合確認結果情報８０ｂにそれぞれ対応する。そして、ＣＰＵ３６は、解析対象プログラム群３４ａ、確認結果データ３４ｂをＲＡＭ３３に読み出し、ソースコード解析処理を実行する。
【００８６】
ところで、上記した各プログラム３５ａ、３５ｂは、必ずしも最初からＲＯＭ３５に記憶させておく必要はなく、例えば、コンピュータ３０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬の物理媒体」、または、コンピュータ３０の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３０に接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておき、コンピュータ３０がこれらから各プログラムを読み出して実行するようにしてもよい。
【００８７】
（付記１）プログラムのソースコードを解析し、当該ソースコードの解析結果を出力するソースコード解析プログラムであって、
ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させる確認結果情報記憶手順と、
前記確認結果情報記憶手順によって記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成する確認結果統合手順と、
前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する解析結果出力手順と、
をコンピュータに実行させることを特徴とするソースコード解析プログラム。
【００８８】
（付記２）前記解析結果出力手順は、前記統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力することを特徴とする付記１に記載のソースコード解析プログラム。
【００８９】
（付記３）前記解析結果出力手順は、バージョンアップ前のソースコードにかかわる確認結果情報に対応付けられていない解析結果が存在する場合に、当該解析結果を出力することを特徴とする付記１に記載のソースコード解析プログラム。
【００９０】
（付記４）プログラムのソースコードを解析し、当該ソースコードの解析結果を出力するソースコード解析方法であって、
ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させる確認結果情報記憶工程と、
前記確認結果情報記憶工程によって記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成する確認結果統合工程と、
前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する解析結果出力工程と、
を含んだことを特徴とするソースコード解析方法。
【００９１】
（付記５）前記解析結果出力工程は、前記統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力することを特徴とする付記４に記載のソースコード解析方法。
【００９２】
（付記６）前記解析結果出力工程は、バージョンアップ前のソースコードにかかわる確認結果情報に対応付けられていない解析結果が存在する場合に、当該解析結果を出力することを特徴とする付記４に記載のソースコード解析方法。
【００９３】
（付記７）プログラムのソースコードを解析し、当該ソースコードの解析結果を出力するソースコード解析装置であって、
ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶する確認結果情報記憶手段と、
前記確認結果情報記憶手段によって記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成する確認結果統合手段と、
前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する解析結果出力手段と、
を備えたことを特徴とするソースコード解析装置。
【００９４】
（付記８）前記解析結果出力手段は、前記統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力することを特徴とする付記７に記載のソースコード解析装置。
【００９５】
（付記９）前記解析結果出力手段は、バージョンアップ前のソースコードにかかわる確認結果情報に対応付けられていない解析結果が存在する場合に、当該解析結果を出力することを特徴とする付記７に記載のソースコード解析装置。
【産業上の利用可能性】
【００９６】
以上のように、本発明にかかるソースコード解析プログラムおよびソースコード解析方法は、プログラム解析結果確認作業にかかわるユーザの負荷を軽減させる必要のあるプログラム解析装置等に対して有用である。
【図面の簡単な説明】
【００９７】
【図１】本実施例にかかるプログラム解析装置の構成を示す機能ブロック図である。
【図２】図１に示した確認結果抑制部の構成を示す機能ブロック図である。
【図３】位置情報テーブル作成部が作成する位置情報テーブルの一例を示す図である。
【図４】本実施例にかかるプログラム解析装置が、初版のプログラムを解析する場合の処理を示すフローチャートである。
【図５】図４のステップＳ１０５において、表示装置に表示される初版のプログラムの解析結果にかかわる表示画面の一例を示す図である。
【図６】本実施例にかかるプログラム解析装置が、改版後のプログラムを解析する場合の処理を示すフローチャートである。
【図７】図６のステップＳ２１０で示した解析結果編集処理を示すフローチャートである。
【図８】図６のステップＳ２１１で示した解析結果表示処理を示すフローチャートである。
【図９】図６のＳ２１１に示した解析結果表示処理によって、解析結果表示部が表示装置に表示させる表示画面の一例を示す図である。
【図１０】図６のステップＳ２１４で示した確認結果情報統合処理を示すフローチャートである。
【図１１】ソースコード解析プログラムを実行するコンピュータを示す図である。
【符号の説明】
【００９８】
３０    コンピュータ（プログラム解析装置）
３１    入力装置
３２    表示装置
３３    ＲＡＭ
３３ａ，３４ａ  解析対象プログラム群
３３ｂ，３４ｂ  確認結果データ
３４    ＨＤＤ
３５    ＲＯＭ
３５ａ  ソースコード解析プログラム
３５ｂ  確認結果抑制処理プログラム
３６    ＣＰＵ
３６ａ  ソースコード解析プロセス
３６ｂ  確認結果抑制処理プロセス
４０    入力装置
５０    表示装置
６０    プログラム解析装置
７０    構成管理部
８０    記憶部
８０ａ  解析対象プログラム群
８０ｂ  統合確認結果情報
９０    プログラム解析部
１００    確認結果抑制部
１１０    管理部
１２０    位置情報テーブル作成部
１３０    位置情報テーブル記憶部
１４０    解析結果編集部
１５０    解析結果表示部
１６０    確認結果取得部
１７０    確認結果統合部
【図１】
2006344145.tif 000003
【図２】
2006344145.tif 000004
【図３】
2006344145.tif 000005
【図４】
2006344145.tif 000006
【図５】
2006344145.tif 000007
【図６】
2006344145.tif 000008
【図７】
2006344145.tif 000009
【図８】
2006344145.tif 000010
【図９】
2006344145.tif 000011
【図１０】
2006344145.tif 000012
【図１１】
2006344145.tif 000013