JP2006344145A - ソースコード解析プログラムおよびソースコード解析方法 - Google Patents

ソースコード解析プログラムおよびソースコード解析方法 Download PDF

Info

Publication number
JP2006344145A
JP2006344145A JP2005171159A JP2005171159A JP2006344145A JP 2006344145 A JP2006344145 A JP 2006344145A JP 2005171159 A JP2005171159 A JP 2005171159A JP 2005171159 A JP2005171159 A JP 2005171159A JP 2006344145 A JP2006344145 A JP 2006344145A
Authority
JP
Japan
Prior art keywords
analysis
source code
confirmation result
result information
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.)
Granted
Application number
JP2005171159A
Other languages
English (en)
Other versions
JP4904724B2 (ja
Inventor
Naoki Gunji
尚樹 郡司
Takahiro Murata
孝宏 村田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005171159A priority Critical patent/JP4904724B2/ja
Publication of JP2006344145A publication Critical patent/JP2006344145A/ja
Application granted granted Critical
Publication of JP4904724B2 publication Critical patent/JP4904724B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】記憶装置に記憶させる解析結果のデータの量を削減すると共に、作成者の解析結果にかかわる確認作業の負荷を軽減させること。
【解決手段】本実施例にかかるプログラム解析装置60は、確認結果抑制部100が、新旧バージョンの確認結果情報を統合して、統合確認結果情報を作成し、構成管理部70が、当該統合確認結果情報を記憶部80に記憶させる。そして、プログラム解析部90が、ユーザによって指定されたプログラムを解析し、確認結果抑制部100が、統合確認結果情報と解析結果を基にして、表示装置50に表示させる解析結果を選択する。
【選択図】 図1

Description

この発明は、プログラムのソースコードを解析し、当該ソースコードの解析結果を出力するソースコード解析プログラムおよびソースコード解析方法に関し、特に記憶装置に記憶させる解析結果のデータの量を削減すると共に、作成者の解析結果にかかわる確認作業の負荷を軽減させることができるソースコード解析プログラムおよびソースコード解析方法に関するものである。
従来、プログラムの作成者など(以下、単に作成者と表記する)は、プログラムを作成した後に、当該プログラムに存在する問題箇所を検出し、プログラムを実行した際に発生する障害を未然に防ぐ必要があった。
そこで、作成者は、非特許文献1に公開されているプログラム解析ツール等を利用して、プログラムを解析し、解析した結果を利用して問題箇所を特定すると共に、当該問題箇所を修正していた。
しかし、非特許文献1に公開されているプログラム解析ツールは、全ての解析結果を選別することなく作成者に通知するため、作成者にかかる負担が大きいという問題があった。なぜなら、バージョンアップ前のプログラムにおいて問題ないと作成者が確認した解析結果であっても、作成者が確認した解析結果はバージョンアップ後のプログラムの解析結果に反映されないため、作成者は一度確認を行った解析結果をもう一度確認する必要があったからである。
そこで、特許文献1に記載された発明では、バージョンアップ前の各プログラムにかかわる解析結果をそれぞれ記憶装置に記憶させると共に、記憶させた各解析結果を基にして各解析結果の重複部分を省略し、当該重複部分を省略した解析結果を作成者に通知することによって作成者にかかる負担を軽減させている。
特開2004−126866号公報 富士通株式会社、[online]、[平成17年5月19日検索]、インターネット<URL:http://www.ist.fujitsu.com/core/pgr>
しかしながら、かかる従来の技術では、異なるバージョン毎のプログラムそれぞれに対応する解析結果を記憶装置に記憶させる必要があるため、記憶装置に記憶させるべきデータの量が膨大になってしまうという問題があった。
また、通常、プログラムのバージョンアップは頻繁に行われるので、この問題は更に深刻なものとなる。
すなわち、記憶装置に記憶させる解析結果のデータの量を削減すると共に、作成者の解析結果確認にかかわる作業の負荷を軽減させることが極めて重大な課題となっている。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、記憶装置に記憶させる解析結果のデータの量を削減すると共に、作成者の解析結果確認にかかわる作業の負荷を軽減させることができるソースコード解析プログラムおよびソースコード解析方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、請求項1の発明に係るソースコード解析プログラムは、プログラムのソースコードを解析し、当該ソースコードの解析結果を出力するソースコード解析プログラムであって、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させる確認結果情報記憶手順と、前記確認結果情報記憶手順によって記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成する確認結果統合手順と、前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する解析結果出力手順と、をコンピュータに実行させることを特徴とする。
この請求項1の発明によれば、ソースコード解析プログラムは、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させ、記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成し、前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する。
また、請求項2の発明に係るソースコード解析プログラムは、請求項1の発明において、前記解析結果出力手順は、前記統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力することを特徴とする。
この請求項2の発明によれば、ソースコード解析プログラムは、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させ、記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成し、生成した統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力する。
また、請求項3の発明に係るソースコード解析プログラムは、請求項1の発明において、前記解析結果出力手順は、バージョンアップ前のソースコードにかかわる確認結果情報に対応付けられていない解析結果が存在する場合に、当該解析結果を出力することを特徴とする。
この請求項3の発明によれば、ソースコード解析プログラムは、バージョンアップ前のソースコードにかかわる確認結果情報に対応付けられていない解析結果が存在する場合に、当該解析結果を出力することを特徴とする。
また、請求項4の発明に係るソースコード解析方法は、プログラムのソースコードを解析し、当該ソースコードの解析結果を出力するソースコード解析方法であって、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させる確認結果情報記憶工程と、前記確認結果情報記憶工程によって記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成する確認結果統合工程と、前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する解析結果出力工程と、を含んだことを特徴とする。
この請求項4の発明によれば、ソースコード解析方法は、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させ、記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成し、前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する。
また、請求項5の発明に係るソースコード解析方法は、請求項4の発明において、前記解析結果出力工程は、前記統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力することを特徴とする。
この請求項5の発明によれば、ソースコード解析方法は、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させ、記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成し、生成した統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力する。
請求項1の発明によれば、ソースコード解析プログラムは、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させ、記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成し、前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力するので、記憶装置に記憶させるデータ量を大幅に削減することができる。
また、請求項2の発明によれば、ソースコード解析プログラムは、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させ、記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成し、生成した統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力するので、記憶装置に記憶させるデータ量を大幅に削減できると共に、ユーザの解析結果確認作業にかかる負担を軽減することができる。
また、請求項3の発明によれば、ソースコード解析プログラムは、バージョンアップ前のソースコードにかかわる確認結果情報に対応付けられていない解析結果が存在する場合に、当該解析結果を出力するので、ユーザの解析結果確認作業にかかる負担を軽減させることができる。
また、請求項4の発明によれば、ソースコード解析方法は、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させ、記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成し、前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力するので、記憶装置に記憶させるデータ量を大幅に削減することができる。
また、請求項5の発明によれば、ソースコード解析方法は、ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させ、記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成し、生成した統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力するので、記憶装置に記憶させるデータ量を大幅に削減できると共に、ユーザの解析結果確認作業にかかる負担を軽減することができる。
以下に添付図面を参照して、この発明に係るソースコード解析プログラムおよびソースコード解析方法の好適な実施の形態を詳細に説明する。
まず、本実施例にかかるプログラム解析装置の概念について説明する。本実施例にかかるプログラム解析装置は、異なるバージョンごとのプログラム解析結果に対する確認情報を統合し、統合した確認結果情報(以下、統合確認結果情報と表記する)を記憶部に記憶させる。ここで、確認結果情報は、プログラム解析結果に問題があるか否かを示す情報である。
そして、プログラム解析装置は、新バージョンのプログラムの解析結果を出力する際に、記憶部に記憶された統合確認結果に基づいて、ユーザに必要な解析結果のみを選択し、選択した解析結果を出力する。
したがって、本実施例にかかるプログラム解析装置は、従来のように、異なるプログラムごとの解析結果を記憶部に記憶させる必要がなくなるので、記憶部に記憶させるデータの量を大幅に削減することができる。また、統合確認結果情報を基にして、ユーザに必要な解析結果を選択して出力するので、ユーザにかかる負担を軽減させることができる。
次に、本実施例にかかるプログラム解析装置の構成について説明する。図1は、本実施例にかかるプログラム解析装置の構成を示す機能ブロック図である。同図に示すように、このプログラム解析装置60は、構成管理部70、記憶部80、プログラム解析部90および確認結果抑制部100を有する。また、プログラム解析装置60は、キーボードやマウスなどの入力装置40と、ディスプレイなどの表示装置50に接続されている。
構成管理部70は、記憶部80に記憶された新旧(バージョンアップ後、バージョンアップ前)プログラムまたは統合確認結果情報をプログラム解析部90および確認結果抑制部100に渡す処理部である。具体的に、この構成管理部70は、記憶部80に記憶された解析対象プログラム群80aから解析対象となるプログラムを検索し、検索したプログラムをプログラム解析部90および確認結果抑制部100に渡す。検索対象となるプログラムは、入力装置40を介してユーザによって指定される。
ここで、記憶部80は、解析対象プログラム群80aおよび統合確認結果情報80bを記憶する記憶部である。解析結果対象プログラム群80aは、解析対象となる複数のプログラムの集まりであり、統合確認結果情報80bは、各バージョンのプログラム解析結果に対するそれぞれの確認結果を統合(各確認結果情報の重複部分を省略して統合)した情報と対応するプログラムの識別情報とを関連付けた情報である。
また、構成管理部70は、確認結果抑制部100から統合確認結果情報80bに対する要求を受付けた場合には、記憶部80に記憶された統合確認結果情報80bおよび統合確認結果情報80bに対応するバージョンアップ前のプログラムを確認結果抑制部100に渡す。
プログラム解析部90は、構成管理部70から取得したプログラムを解析し、解析したプログラムの解析結果を確認結果抑制部100に渡す処理部である。
確認結果抑制部100は、プログラムの解析結果と統合確認結果情報80bとを取得し、取得した各情報に基づいて、出力すべき解析結果を選択し、選択した解析結果を表示装置50に出力する処理部である。
なお、出力すべき解析結果は、バージョンアップ前のプログラムにおいて問題無しと判定された解析結果以外の解析結果または、バージョンアップ前のプログラムにかかわる確認結果情報に対応付けられていない解析結果等を出力する。
このように、確認結果抑制部100は、プログラム解析部90からプログラムの解析結果を取得した場合に、取得した解析結果全てを表示装置50に出力するのではなく、統合確認結果80bを基にして、バージョンアップ前のプログラムにおいて問題無しと判定された解析結果以外の解析結果または、バージョンアップ前のプログラムにかかわる確認結果情報に対応付けられていない解析結果等を選択・出力するので、ユーザの解析結果確認作業にかかわる負担を大幅に軽減させることができる。
次に、図1に示した確認結果抑制部100の構成について説明する。図2は、図1に示した確認結果抑制部100の構成を示す機能ブロック図である。同図に示すように、この確認結果抑制部100は、管理部110、位置情報テーブル作成部120、位置情報テーブル記憶部130、解析結果編集部140、解析結果表示部150、確認結果取得部160および確認結果統合部170を有する。
管理部110は、確認結果制御部100全体を管理する処理部である。具体的に、この管理部110は、入力装置40から所定のプログラムにかかわる解析要求を取得した場合に、当該解析要求に対応するプログラムの情報を構成管理部70に通知する。そして、管理部110は、構成管理部70から統合確認結果情報80b、バージョンアップ前のプログラムおよび解析対象となるプログラムを取得し、プログラム解析部90から解析要求に対応するプログラムの解析結果を取得する。
管理部110は、取得した統合確認結果情報80bを解析結果編集部140、確認結果統合部170に渡し、解析対象となったプログラムおよび当該解析対象のプログラムのバージョンアップ前にかかわるプログラムを位置情報テーブル作成部120に渡し、プログラムの解析結果を解析結果編集部140に渡す。
位置情報テーブル作成部120は、解析対象のプログラムと、当該解析対象プログラムのバージョンアップ前にかかわるプログラムとを基にして位置情報テーブルを作成し、作成した位置情報テーブルを位置情報テーブル記憶部130に記憶させる処理部である。ここで、位置情報テーブル記憶部130は、位置情報テーブルを記憶する記憶部である。図3は、位置情報テーブル作成部120が作成する位置情報テーブルの一例を示す図である。
図3に示すように、この位置情報テーブルは、「ファイル名」、「変更前の位置(行番号)」「変更後の位置(行番号)」からなる。具体的には、変更前「1」行目にあったファイル名「"/usr/home/a.c"」が変更後に「2」行目になった旨を示し、変更前「2」行目にあったファイル名「"/usr/home/a.c"」が変更後に「2」行目になった旨を示す。その他の位置情報テーブルに関する説明は省略する。
図2の説明に戻ると、解析結果編集部140は、管理部110から統合確認結果情報80bとプログラムの解析結果とを取得すると共に、位置情報テーブル記憶部130から位置情報テーブルを取得して、最適な解析結果を選択し、選択した解析結果を解析結果表示部150に渡す処理部である。解析結果表示部150は、解析結果編集部140から取得した解析結果を表示装置50に表示させる処理部である。
確認結果取得部160は、入力装置40からプログラムの解析結果にかかわる確認結果を取得した場合に、取得した確認結果を確認結果情報として確認結果統合部170に渡す処理部である。
確認結果統合部170は、管理部110から取得する統合確認結果情報80bと、確認結果取得部160から取得する確認結果情報を統合して新たな統合確認結果情報を作成する処理部である。また、確認結果統合部170は、作成した統合確認結果情報を管理部110に渡す。管理部110は、確認結果統合部70から取得した統合確認結果情報と解析対象となったプログラムとを関連付けて構成管理部70に渡し、構成管理部70は統合確認結果情報80bを更新する。
次に、本実施例にかかるプログラム解析装置60が、初版のプログラムを解析する場合の処理について説明する。図4は、本実施例にかかるプログラム解析装置60が、初版のプログラムを解析する場合の処理を示すフローチャートである。
同図に示すように、プログラム解析装置60は、構成管理部70が解析対象プログラム群80aから初版のプログラムを取得し(ステップS101)、取得したプログラムをプログラム解析部90に渡す(ステップS102)。
そして、プログラム解析部90が、取得したプログラムを解析し(ステップS103)、プログラムの解析結果を確認結果抑制部100に渡し(ステップS104)、確認結果抑制部100が取得した解析結果を表示装置50に表示させる(ステップS105)。
続いて、確認結果抑制部100は、入力装置40から確認結果を受付け(ステップS106)、受付けた確認結果を統合確認結果情報として作成し(ステップS107)、作成した統合確認結果情報と、対応するプログラムとを構成管理部70に渡し(ステップS108)、構成管理部70は、統合確認結果情報と、プログラムとを関連付けて記憶部80に登録する(ステップS109)。
図5は、図4のステップS105において、表示装置50に表示される初版のプログラムの解析結果にかかわる表示画面の一例を示す図である。同図に示すように、当該表示画面には、「確」、「ファイル名」、「行番号」、「ID」、「メッセージ」、「パターン」、「コメント」、「更新日時」を有する。
ここで、「ファイル名」は、解析対象となったファイルの名称であり、「行番号」は、ファイル名に対応するファイルの行番号であり、「ID(Identification)」は、特定の解析結果を識別するための情報であり、「メッセージ」は、各ファイル名に対する解析結果のメッセージであり、「パターン」は、同ID中に存在する異なる引数に対して分類わけをするパターンIDである。例えば、上から一行目、三行目、四行目は同一のID「102」であるが、それぞれ引数が異なるため、パターンを「102_3、102_1、102_2」に設定し、それぞれを区別している。
また、「コメント」は、各解析結果に対する確認結果の理由がユーザによって入力される欄であり、「更新日付」は、各情報が更新された日付を示す。「確」には、各解析結果に問題があるか否かの確認結果がユーザによって入力される。例えば、ファイル名「/usr/home/a.c」、行番号「1」、ID「102」、メッセージ「マクロ定義内で、引数”c”が使用されていません」、パターン「102_3」に関してユーザが問題ありと判断した場合には、ユーザによって「確」の欄に「×(問題あり)」が入力され、問題なしと判断した場合には、「確」の欄に「○(問題なし)」が入力される。なお、図5に示した表示画面は、図2に示した解析結果表示部150によって作成される。
次に、本実施例にかかるプログラム解析装置60が改版後(バージョンアップ後)のプログラムを解析する場合の処理について説明する。図6は、本実施例にかかるプログラム解析装置60が、改版後のプログラムを解析する場合の処理を示すフローチャートである。
図6に示すように、プログラム解析装置60は、構成管理部70が解析対象プログラム群80aからユーザによって指定された改版後のプログラムを取得し(ステップS201)、取得したプログラムをプログラム解析部90に渡し(ステップS202)、プログラム解析部90がプログラムを解析し(ステップS203)、プログラムの解析結果を確認結果抑制部100に渡す(ステップS204)。
そして、確認結果抑制部100が、入力装置40から比較対象となる版データ(バージョンアップ前のプログラムの情報)を受付け(ステップS205)、当該版データを構成管理部70に渡し(ステップS206)、構成管理部70が版データに対応するプログラムおよび統合確認結果情報を記憶部80から取得し、取得した情報を確認結果抑制部100に渡す(ステップS207)。
続いて、位置情報テーブル作成部120が、改版前のプログラムと改版後のプログラムとを比較して、位置情報テーブルを作成し、作成した位置情報テーブルを位置情報テーブル記憶部130に記憶させ、(ステップS208)、解析結果編集部140が位置情報テーブルを基に統合確認結果情報の位置情報を変換する(ステップS209)。
そして、解析結果編集部140が解析結果編集処理を行い(ステップS210)、解析結果表示部150が解析結果表示処理を行い(ステップS211)、確認結果取得部160が入力装置から確認結果を受付け(ステップS212)、確認結果情報を作成し、作成した確認結果情報を確認結果統合部170に渡す(ステップS213)。
続いて、確認結果統合部170が、確認結果情報統合処理を行い(ステップS214)、統合した確認結果情報と対応するプログラムとを構成管理部70に渡し(ステップS215)、構成管理部70が統合した確認結果情報とプログラムとを関連付けて記憶部80に記憶する(ステップS216)。
次に、図6のステップS210で示した解析結果編集処理について説明する。図7は、図6のステップS210で示した解析結果編集処理を示すフローチャートである。同図に示すように、確認結果抑制部100は、解析結果編集部140が、全ての解析結果に対する比較が終了したか否かを判定し(ステップS301)、終了した場合には(ステップS302,Yes)、解析結果編集処理を終了する。
一方、終了していない場合には(ステップS302,No)、解析結果を選択し(ステップS303)、選択した解析結果に該当する統合確認結果情報が存在するか否かを判定する(ステップS304)。
そして、該当する統合確認結果情報が存在しない場合には(ステップS305,No)、解析結果の確認項目を空欄に設定し(ステップS306)、ステップS301に移行する。
一方、該当する統合確認結果情報が存在する場合には(ステップS305,Yes)、解析結果と確認結果情報とを比較し(ステップS307)、問題かあるか否かを判定する(ステップS308)。
そして、問題がある場合には(ステップS308,No)、解析結果の確認項目を×(問題あり)に設定し(ステップS309)、ステップS301に移行する。一方、問題が無い場合には(ステップS308,Yes)、解析結果の確認項目を○(問題なし)に設定し(ステップS310)、ステップS301に移行する。
次に、図6のステップS211で示した解析結果表示処理について説明する。図8は、図6のステップS211で示した解析結果表示処理を示すフローチャートである。同図に示すように、確認結果抑制部100は、解析結果表示部150が、編集された解析結果および統合確認結果情報を解析結果編集部140から取得し(ステップS401)、取得した解析結果および統合確認結果情報を解析する(ステップS402)。
そして、解析結果表示部150は、解析結果に応じた確認結果(○、×、空欄)をフォームの確認情報欄に代入し(ステップS403)、ファイル名、行番号、コメント、日付をフォームの欄に代入する(ステップS404)。
続いて、解析結果表示部150は、IDおよびメッセージをチェックし、過去のパターンにマッチするか否かを判定し(ステップS405)、過去のパターンにマッチする場合には(ステップS406,Yes)、フォームのパターン欄に該当するパターンを代入する(ステップS407)。
一方、過去のパターンにマッチしない場合には(ステップS406,No)、新しいパターンを作成し(ステップS408)、作成した新しいパターンをフォームのパターン欄に代入する(ステップS409)。
図9は、図6のS211に示した解析結果表示処理によって、解析結果表示部150が表示装置50に表示させる表示画面の一例を示す図である。同図に示すように、この表示画面は、「旧Ver.」、「確」、「ファイル名」、「行番号」、「ID」、「メッセージ」、「パターン」、「コメント」、「更新日時」からなる。なお、「確」、「ファイル名」、「行番号」、「ID」、「メッセージ」、「パターン」、「コメント」に関する説明は、図5において行った説明と同様であるため説明を省略する。
ここで、「旧Ver.」は、バージョンアップ前の解析結果が、問題ありと判断されたか否かの情報が格納される。具体的に、上から1段目のファイル名「/usr/home/a.c」に関しては、バージョンアップ前には、「○(問題なし)」と、判定されていたことがわかる。
「確」には、表示装置50によって表示された解析結果を基に、ユーザが、問題あるなしを判断し、判断した結果が入力装置40から入力される。図9において、上から1段目では、「確」が、「×(問題あり)」になっている(バージョンアップ前は、問題無しであったが、バージョンアップ後に問題ありになっている)。
なお、解析結果表示部150は、プログラムの解析結果を全て表示してもよいし、例えば、「旧Ver.」において、「○(問題なし)」以外の解析結果を表示(図9の例では、1段目以外を表示)してもよいし、未確認の解析結果のみを表示(図9の例では、2,4,7,8,9段目を表示)してもよい。
このように、予め、解析結果表示部150に表示させる解析結果の条件を設定しておくことによって、ユーザは、過去に確認した解析結果を再度確認する必要がなくなるので、解析結果の確認作業にかかわる負担が軽減される。
次に、図6のステップS214で示した確認結果情報統合処理について説明する。図10は、図6のステップS214で示した確認結果情報統合処理を示すフローチャートである。同図に示すように、確認結果抑制部100は、確認結果統合部170が過去の統合確認結果情報と今回の確認結果情報との比較が全て終了したか否かを判定し(ステップS501)、終了した場合には(ステップS502,Yes)、確認結果情報統合処理を終了する。
一方、終了していない場合には(ステップS502,No)、未選択の確認結果情報を選択し(ステップS503)、選択した確認結果情報に該当する統合確認結果情報が存在するか否かを判定し(ステップS504)、該当する統合確認結果情報が存在しない場合には(ステップS505,No)、今回の確認結果情報を新たに統合確認結果情報に追加し(ステップS506)、ステップS501に移行する。
一方、該当する総合確認結果情報が存在する場合には(ステップS505,Yes)、統合確認結果情報と、今回の確認結果情報とを比較し(ステップS507)、確認結果が等しくない場合には(ステップS508,No)、今回の確認結果情報の該当箇所を上書きして(ステップS509)、ステップS501に移行する。
一方、確認結果が等しい場合には(ステップS508,Yes)、対応する統合確認結果情報をそのままにし(ステップS510)、ステップS501に移行する。
ここで、具体的に、ステップS506、509、510の説明を、図9を利用して説明する。同図の上から1段目のように、「旧Ver.」が「○」で、「確」に「×」が代入された場合には、パターン「102_3」にかかわる確認結果を「×」に修正する。
また、上から2段目のように、「旧Ver.」が「空欄」で、「確」に「○」が代入された場合には、パターン「0_1」にかかわる確認結果を「○」にする。上から3段目のように、「旧Ver.」が「×」で、「確」に「×」が代入された場合には、変更しない。
このように、確認結果統合部170が、過去の統合確認結果情報と、新たに入力された確認結果情報を統合するので、記憶部80に記憶させるべきデータ量を大幅に削減することができる。
上述してきたように、本実施例にかかるプログラム解析装置60は、確認結果統合部170が、新旧バージョンの確認結果情報を統合して、統合確認結果情報を作成し、構成管理部70が、当該統合確認結果情報を記憶部80に記憶させる。そして、プログラム解析部80が、プログラムを解析し、解析結果編集部140が、統合確認結果情報と解析結果を基にして、表示装置50に表示させる解析結果を選択するので、ユーザの解析結果確認作業にかかる負担を軽減させることができると共に、記憶部80に記憶させるべきデータ量を大幅に削減することができる。
ところで、上記の実施例で説明したプログラム解析装置60の各処理は、ソースコード解析処理に係るプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図11を用いて、上記の実施例のプログラム解析装置60と同様の機能を有するソースコード解析プログラムを実行するコンピュータの一例を説明する。図11は、ソースコード解析プログラムを実行するコンピュータを示す図である。
同図に示すように、コンピュータ30は、入力装置31、表示装置32、RAM33、HDD34、ROM35およびCPU36をバス37で接続して構成される。ここで、入力装置31および表示装置32は、図1で示した入力装置40および表示装置50に対応する。
そして、ROM35には、上記の実施例のプログラム解析装置60と同様の機能を発揮するソースコード解析プログラム、つまり、図11に示すように、ソースコード解析プログラム35a、確認結果抑制プログラム35bが予め記憶されている。なお、プログラム35a、35bは、図1に示したプログラム解析装置60の各構成要素と同様、適宜統合または分散しても良い。
そして、CPU36が、これらのプログラム35a、35bをROM35から読み出して実行することで、図11に示すように、各プログラム35a、35bは、ソースコード解析プロセス36a、確認結果抑制処理プロセス36bとして機能するようになる。各プロセス36a、36bは、図1に示したプログラム解析部90、確認結果抑制部100にそれぞれ対応する。
また、HDD34には、図11に示すように、解析対象プログラム群34a、確認結果データ34bが設けられる。この解析対象プログラム群34a、確認結果データ34bは、図1に示した解析結果対象プログラム群80a、統合確認結果情報80bにそれぞれ対応する。そして、CPU36は、解析対象プログラム群34a、確認結果データ34bをRAM33に読み出し、ソースコード解析処理を実行する。
ところで、上記した各プログラム35a、35bは、必ずしも最初からROM35に記憶させておく必要はなく、例えば、コンピュータ30に挿入されるフレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカードなどの「可搬の物理媒体」、または、コンピュータ30の内外に備えられるハードディスクドライブ(HDD)などの「固定用の物理媒体」、さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ30に接続される「他のコンピュータ(またはサーバ)」などに各プログラムを記憶させておき、コンピュータ30がこれらから各プログラムを読み出して実行するようにしてもよい。
(付記1)プログラムのソースコードを解析し、当該ソースコードの解析結果を出力するソースコード解析プログラムであって、
ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させる確認結果情報記憶手順と、
前記確認結果情報記憶手順によって記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成する確認結果統合手順と、
前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する解析結果出力手順と、
をコンピュータに実行させることを特徴とするソースコード解析プログラム。
(付記2)前記解析結果出力手順は、前記統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力することを特徴とする付記1に記載のソースコード解析プログラム。
(付記3)前記解析結果出力手順は、バージョンアップ前のソースコードにかかわる確認結果情報に対応付けられていない解析結果が存在する場合に、当該解析結果を出力することを特徴とする付記1に記載のソースコード解析プログラム。
(付記4)プログラムのソースコードを解析し、当該ソースコードの解析結果を出力するソースコード解析方法であって、
ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させる確認結果情報記憶工程と、
前記確認結果情報記憶工程によって記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成する確認結果統合工程と、
前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する解析結果出力工程と、
を含んだことを特徴とするソースコード解析方法。
(付記5)前記解析結果出力工程は、前記統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力することを特徴とする付記4に記載のソースコード解析方法。
(付記6)前記解析結果出力工程は、バージョンアップ前のソースコードにかかわる確認結果情報に対応付けられていない解析結果が存在する場合に、当該解析結果を出力することを特徴とする付記4に記載のソースコード解析方法。
(付記7)プログラムのソースコードを解析し、当該ソースコードの解析結果を出力するソースコード解析装置であって、
ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶する確認結果情報記憶手段と、
前記確認結果情報記憶手段によって記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成する確認結果統合手段と、
前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する解析結果出力手段と、
を備えたことを特徴とするソースコード解析装置。
(付記8)前記解析結果出力手段は、前記統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力することを特徴とする付記7に記載のソースコード解析装置。
(付記9)前記解析結果出力手段は、バージョンアップ前のソースコードにかかわる確認結果情報に対応付けられていない解析結果が存在する場合に、当該解析結果を出力することを特徴とする付記7に記載のソースコード解析装置。
以上のように、本発明にかかるソースコード解析プログラムおよびソースコード解析方法は、プログラム解析結果確認作業にかかわるユーザの負荷を軽減させる必要のあるプログラム解析装置等に対して有用である。
本実施例にかかるプログラム解析装置の構成を示す機能ブロック図である。 図1に示した確認結果抑制部の構成を示す機能ブロック図である。 位置情報テーブル作成部が作成する位置情報テーブルの一例を示す図である。 本実施例にかかるプログラム解析装置が、初版のプログラムを解析する場合の処理を示すフローチャートである。 図4のステップS105において、表示装置に表示される初版のプログラムの解析結果にかかわる表示画面の一例を示す図である。 本実施例にかかるプログラム解析装置が、改版後のプログラムを解析する場合の処理を示すフローチャートである。 図6のステップS210で示した解析結果編集処理を示すフローチャートである。 図6のステップS211で示した解析結果表示処理を示すフローチャートである。 図6のS211に示した解析結果表示処理によって、解析結果表示部が表示装置に表示させる表示画面の一例を示す図である。 図6のステップS214で示した確認結果情報統合処理を示すフローチャートである。 ソースコード解析プログラムを実行するコンピュータを示す図である。
符号の説明
30 コンピュータ(プログラム解析装置)
31 入力装置
32 表示装置
33 RAM
33a,34a 解析対象プログラム群
33b,34b 確認結果データ
34 HDD
35 ROM
35a ソースコード解析プログラム
35b 確認結果抑制処理プログラム
36 CPU
36a ソースコード解析プロセス
36b 確認結果抑制処理プロセス
40 入力装置
50 表示装置
60 プログラム解析装置
70 構成管理部
80 記憶部
80a 解析対象プログラム群
80b 統合確認結果情報
90 プログラム解析部
100 確認結果抑制部
110 管理部
120 位置情報テーブル作成部
130 位置情報テーブル記憶部
140 解析結果編集部
150 解析結果表示部
160 確認結果取得部
170 確認結果統合部

Claims (5)

  1. プログラムのソースコードを解析し、当該ソースコードの解析結果を出力するソースコード解析プログラムであって、
    ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させる確認結果情報記憶手順と、
    前記確認結果情報記憶手順によって記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成する確認結果統合手順と、
    前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する解析結果出力手順と、
    をコンピュータに実行させることを特徴とするソースコード解析プログラム。
  2. 前記解析結果出力手順は、前記統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力することを特徴とする請求項1に記載のソースコード解析プログラム。
  3. 前記解析結果出力手順は、バージョンアップ前のソースコードにかかわる確認結果情報に対応付けられていない解析結果が存在する場合に、当該解析結果を出力することを特徴とする請求項1に記載のソースコード解析プログラム。
  4. プログラムのソースコードを解析し、当該ソースコードの解析結果を出力するソースコード解析方法であって、
    ソースコードの解析結果に対応付けられ、当該解析結果に対して問題があるか否かを示す確認結果情報を取得し、取得した確認結果情報を記憶装置に記憶させる確認結果情報記憶工程と、
    前記確認結果情報記憶工程によって記憶装置に記憶された確認結果情報と、バージョンアップ前のソースコードにかかわる確認結果情報とを統合し、統合した確認結果情報の重複部分を省略した統合確認結果情報を生成する確認結果統合工程と、
    前記統合確認結果情報に基づいて選択されたソースコードの解析結果を出力する解析結果出力工程と、
    を含んだことを特徴とするソースコード解析方法。
  5. 前記解析結果出力工程は、前記統合確認結果情報に基づいて、ソースコードの解析結果を出力する場合に、バージョンアップ前のソースコードにおいて問題無しと判定された解析結果以外の解析結果を出力することを特徴とする請求項4に記載のソースコード解析方法。
JP2005171159A 2005-06-10 2005-06-10 解析プログラム、解析方法および解析装置 Expired - Fee Related JP4904724B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005171159A JP4904724B2 (ja) 2005-06-10 2005-06-10 解析プログラム、解析方法および解析装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005171159A JP4904724B2 (ja) 2005-06-10 2005-06-10 解析プログラム、解析方法および解析装置

Publications (2)

Publication Number Publication Date
JP2006344145A true JP2006344145A (ja) 2006-12-21
JP4904724B2 JP4904724B2 (ja) 2012-03-28

Family

ID=37641045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005171159A Expired - Fee Related JP4904724B2 (ja) 2005-06-10 2005-06-10 解析プログラム、解析方法および解析装置

Country Status (1)

Country Link
JP (1) JP4904724B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013045307A (ja) * 2011-08-24 2013-03-04 Nec Corp 静的解析システム、静的解析結果表示方法及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002014880A (ja) * 2000-06-28 2002-01-18 Sony Corp 素材送出装置および素材送出方法
JP2004126866A (ja) * 2002-10-01 2004-04-22 Mitsubishi Electric Corp 記述出力抑制プログラム解析装置及び記述出力抑制プログラム解析方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002014880A (ja) * 2000-06-28 2002-01-18 Sony Corp 素材送出装置および素材送出方法
JP2004126866A (ja) * 2002-10-01 2004-04-22 Mitsubishi Electric Corp 記述出力抑制プログラム解析装置及び記述出力抑制プログラム解析方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013045307A (ja) * 2011-08-24 2013-03-04 Nec Corp 静的解析システム、静的解析結果表示方法及びプログラム

Also Published As

Publication number Publication date
JP4904724B2 (ja) 2012-03-28

Similar Documents

Publication Publication Date Title
JP2006244195A (ja) プログラムテスト支援装置およびその方法
JP4957017B2 (ja) 性能チューニング方法及び装置、プログラム及び記憶媒体
JP4826120B2 (ja) 業務仕様作成支援システム及び方法
JP2008004029A (ja) ソフトウェア修正漏れ確認システムおよび方法
JP2008217534A (ja) アプリケーション画面作成システム、方法及びアプリケーションプログラム
JP2009069973A (ja) 検索方法、検索プログラム、記憶媒体および情報処理装置
JP4904724B2 (ja) 解析プログラム、解析方法および解析装置
US20080071593A1 (en) Business process editor, business process editing method, and computer product
JP2008234552A (ja) プロジェクト管理支援装置およびその方法
JP4460248B2 (ja) 翻訳支援プログラム、翻訳支援装置および翻訳支援方法
JP4996262B2 (ja) プログラム部品化支援装置
JP4767309B2 (ja) 情報処理装置、情報処理方法、及びコンピュータプログラム
JP2009053767A (ja) プログラム解析装置、および、プログラム解析方法
JP2011128996A (ja) 情報処理装置、情報処理方法、及びコンピュータプログラム
JP2013142971A (ja) プログラム処理装置およびプログラム処理方法
JP2009146196A (ja) 翻訳支援システム、翻訳支援方法および翻訳支援用プログラム
JP6040055B2 (ja) データベースアクセス検証方法、データベースアクセス検証装置、及びプログラム
JP2006268777A (ja) ソースコード管理システム、ソースコード管理方法、およびソースコード管理プログラム
JP2011134270A (ja) 単体試験支援装置、方法及びプログラム
JP2004258848A (ja) プログラム作成支援方法およびシステム並びにプログラム
JP2009015394A (ja) 辞書構築支援装置
JP2006099349A (ja) Jsp試験システムおよびjsp試験プログラム
JP2005092519A (ja) オブジェクト指向プログラムの作成支援装置及び作成支援方法
JP2006277330A (ja) ソースコード編集装置及びソースコード編集方法
JP5581894B2 (ja) データ処理プログラム自動生成システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080317

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111121

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

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4904724

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees