"静的解析装置と、前記静的解析装置のユーザインタフェースとなるクライアント装置とを備える静的解析システムであって、前記静的解析装置は、変更有無によらずに、全てのソースコードファイルを静的解析する検証実行部と、前記ソースコードファイル及び前記検証実行部による検証結果を、リビジョン毎に保存するリポジトリと、前記検証結果において、各指摘項目を前記クライアント装置の画面に表示するかどうかを示す確認フラグを更新する確認フラグ更新部とを備え、前記クライアント装置は、前記静的解析装置から、前記検証結果を取得する検証結果アクセス部と、前記検証結果の指摘項目の一覧、及び、次の静的解析時では表示不要な前記指摘項目をユーザに選択させる画面を表示し、前記選択させた前記表示不要な指摘項目を含む前記検証結果を、前記確認フラグ更新部に送信する検証結果確認部とを備える静的解析システム。前記静的解析装置は、行差分情報を作成する差分取得部と、ここで、前記行差分情報は、前記ソースコードファイル毎に、前回の静的解析実行時のリビジョンの前記ソースコードファイルの行番号と、今回の静的解析実行時のリビジョンの前記ソースコードファイルの行番号との対応関係を記録し、前記行差分情報を参照して、前記表示不要な指摘項目に対応するソースコードの行番号が変更された場合であっても、対象の指摘項目が、前記表示不要な指摘項目であることを特定する検証結果更新部とを更に備える請求項1に記載の静的解析システム。前記差分取得部は、ファイル差分情報を更に作成し、ここで、前記ファイル差分情報は、前記ソースコードファイルのファイル名及び、追加、変更、削除のいずれかの状態を示すステータスを記録し、前記差分取得部は、前記ファイル差分情報において、前記ファイル名に対応する前記ステータスが、変更である前記ソースコードファイルに対してのみ、前記行差分情報を作成する請求項2に記載の静的解析システム。静的解析装置と、前記静的解析装置のユーザインタフェースとなるクライアント装置とを備える静的解析システムにおいて、前記静的解析装置の検証実行部が、変更有無によらずに、全てのソースコードファイルを静的解析するステップと、前記静的解析装置のリポジトリが、前記ソースコードファイル及び前記検証実行部による検証結果を、リビジョン毎に保存するステップと、前記静的解析装置の確認フラグ更新部が、前記検証結果において、各指摘項目を前記クライアント装置の画面に表示するかどうかを示す確認フラグを更新するステップとを備え、前記クライアント装置の検証結果アクセス部が、前記静的解析装置から、前記検証結果を取得するステップと、前記クライアント装置の検証結果確認部が、前記検証結果の指摘項目の一覧、及び、次の静的解析時では表示不要な前記指摘項目をユーザに選択させる画面を表示するステップと、前記クライアント装置の検証結果確認部が、前記選択させた前記表示不要な指摘項目を含む前記検証結果を、前記確認フラグ更新部に送信するステップとを含む静的解析結果表示方法。前記静的解析装置の差分取得部が、行差分情報を作成するステップと、ここで、前記行差分情報は、前記ソースコードファイル毎に、前回の静的解析実行時のリビジョンの前記ソースコードファイルの行番号と、今回の静的解析実行時のリビジョンの前記ソースコードファイルの行番号との対応関係を記録し、前記静的解析装置の検証結果更新部が、前記行差分情報を参照するステップと、前記静的解析装置の検証結果更新部が、前記表示不要な指摘項目に対応するソースコードの行番号が変更された場合であっても、対象の指摘項目が、前記表示不要な指摘項目であることを特定するステップとを更に含む請求項4に記載の静的解析結果表示方法。前記差分取得部が、ファイル差分情報を作成するステップと、ここで、前記ファイル差分情報は、前記ソースコードファイルのファイル名及び、追加、変更、削除のいずれかの状態を示すステータスを記録し、前記行差分情報を作成するステップは、前記ファイル差分情報において、前記ファイル名に対応する前記ステータスが、変更である前記ソースコードファイルに対してのみ、前記行差分情報を作成する請求項5に記載の静的解析結果表示方法。請求項4乃至6のいずれか1項に記載の静的解析結果表示方法をコンピュータに実行させるためのプログラム。本発明の目的は、解析結果を効率良く確認できる静的解析システムを提供することにある。本発明の静的解析システムは、静的解析装置と、前記静的解析装置のユーザインタフェースとなるクライアント装置とを備える。前記静的解析装置は、変更有無によらずに、全てのソースコードファイルを静的解析する検証実行部と、前記ソースコードファイル及び前記検証実行部による検証結果を、リビジョン毎に保存するリポジトリと、前記検証結果において、各指摘項目を前記クライアント装置の画面に表示するかどうかを示す確認フラグを更新する確認フラグ更新部とを備え、前記クライアント装置は、前記静的解析装置から、前記検証結果を取得する検証結果アクセス部と、前記検証結果の指摘項目の一覧、及び、次の静的解析時では表示不要な前記指摘項目をユーザに選択させる画面を表示し、前記選択させた前記表示不要な指摘項目を含む前記検証結果を、前記確認フラグ更新部に送信する検証結果確認部とを備える。本発明の静的解析結果表示方法は、静的解析装置と、前記静的解析装置のユーザインタフェースとなるクライアント装置とを備える静的解析システムにより実施される。前記静的解析装置の検証実行部が、変更有無によらずに、全てのソースコードファイルを静的解析するステップと、前記静的解析装置のリポジトリが、前記ソースコードファイル及び前記検証実行部による検証結果を、リビジョン毎に保存するステップと、前記静的解析装置の確認フラグ更新部が、前記検証結果において、各指摘項目を前記クライアント装置の画面に表示するかどうかを示す確認フラグを更新するステップとを備え、前記クライアント装置の検証結果アクセス部が、前記静的解析装置から、前記検証結果を取得するステップと、前記クライアント装置の検証結果確認部が、前記検証結果の指摘項目の一覧、及び、次の静的解析時では表示不要な前記指摘項目をユーザに選択させる画面を表示するステップと、前記クライアント装置の検証結果確認部が、前記選択させた前記表示不要な指摘項目を含む前記検証結果を、前記確認フラグ更新部に送信するステップとを含む。本発明によれば、解析結果を効率良く確認できる静的解析システムを提供することができる。添付図面を参照して、本発明の実施形態による静的解析システム10を以下に説明する。[構成の説明]はじめに、本実施形態における静的解析システム10の構成の説明を行う。図1は、本発明の実施形態における静的解析システム10のブロック図である。静的解析システム10は、クライアント装置1及び静的解析装置2を備えたクライアントサーバシステムである。クライアント装置1は、静的解析結果確認者が、静的解析装置2を利用するためのユーザインタフェースとなる装置である。クライアント装置1は、リポジトリアクセス部11、検証結果アクセス部12及び検証結果確認部13を備える。クライアント装置1は、複数あってもよい。また、クライアント装置1と静的解析装置2は、同一の装置により実現されていてもよい。静的解析装置2は、実行トリガ部21、ソースコードファイル取得部22、差分取得部23、検証実行部24、検証結果更新部25、ソースコードファイル格納部26、検証結果取得部27、確認フラグ更新部28及びリポジトリ51を備える。リポジトリアクセス部11は、ソースコードファイルをリポジトリ51に格納するためのソースコード格納要求をソースコードファイル格納部26に送信する。検証結果アクセス部12は、検証結果取得要求を検証結果取得部27に送信する。検証結果確認部13は、次の静的解析実行時からは、表示不要と判断した指摘項目を、表示させないようにするため、該当の指摘項目の確認フラグを確認済みに更新した検証結果確認用データ41を、確認フラグ更新部28に送信する。実行トリガ部21は、定期的例えば、毎日定時、又は、非定期的例えば、該当モジュール内のいずれかのソースコードファイルの更新時に、静的解析の処理の開始を、ソースコードファイル取得部22に指示する。ソースコードファイル取得部22は、今回静的解析の対象となるリビジョンのソースコードファイル31と、前回計測時リビジョン32のソースコードファイル31を、リポジトリ51から取得する。差分取得部23は、ソースコード取得部22によって取得した前回計測時リビジョン32のソースコードファイル31と、静的解析の対象となるリビジョンのソースコードファイル31との比較を行ない、ファイル差分情報及び行差分情報を作成する。ファイル差分情報及び行差分情報の詳細については、後述する。差分取得部23によるソースコードファイル31の比較機能は、例えば、UNIX登録商標のdiffプログラムと同様の機能を有する。静的解析の対象となるリビジョンは、最新のリビジョンとの他に、静的解析システム10のユーザが、特定のリビジョンを指定してもよい。検証実行部24は、ソースコード取得部22によって取得した全てのソースコードファイル31に対して、静的解析を実行して検証結果33を作成する。全てのソースコードファイルとは、あるソフトウェアを実現するために、必要となる複数の機能ブロック複数のモジュールのうち、1機能ブロック1モジュールを実現するためのソースコードファイル群であってもよい。検証実行部24による静的解析機能は、例えば、Java言語登録商標で記載されたソースコードであれば、オープンソースソフトウェアであるPMDやCheckstyle、C言語で記載されたソースコードであれば、同じくオープンソフトウェアであるCppCheckと同様のチェック機能を有する。検証結果更新部25は、今回の静的解析実行時に、検証実行部24により得られた未反映の検証結果に基づいて、前回静的解析時にリポジトリ51に保存した検証結果33を更新する。検証結果更新部25の処理の詳細については、後述する。ソースコード格納部26は、クライアント装置1のリポジトリアクセス部11からソースコード格納要求と、ソースコードファイルを受信すると、ソースコードファイル31として、リポジトリ51に格納する。検証結果取得部27は、クライアント装置1の検証結果アクセス部12から、検証結果取得要求を受信すると、リポジトリ51の検証結果33を参照する。検証結果取得部27は、検証結果33において、確認フラグが未確認の指摘項目を抽出し、検証結果確認用データ41を作成する。検証結果取得部27は、クライアント装置1に検証結果確認用データ41を送信する。確認フラグ更新部28は、クライアント装置1の検証結果確認部13から、検証結果確認用データ41を受信すると、リポジトリ51に格納されている検証結果33の各指摘項目の確認フラグの値を更新する。リポジトリ51は、ソースコードファイル31、前回計測時リビジョン32、検証結果33を、リビジョン毎に管理して記憶している。リポジトリ51は、外部装置に記憶されていてもよいし、静的解析装置2内の記憶装置に記憶されていてもよい。リポジトリ51によるリビジョン管理は、例えば、オープンソースソフトウェアのSubversion等のソフトウェアと同様の管理機能を有する。ソースコードファイル31は、静的解析の対象となるソースコードが記載されているファイルである。前回計測時リビジョン32は、前回静的解析を行なったソースコードファイル31のリビジョンである。前回計測時リビジョン32は、初期状態では何も格納されていないが、静的解析が実行される度に、静的解析時に指定されていたリビジョンで上書きされる。検証結果33は、静的解析による指摘項目のリストである。[動作方法の説明]次に、本実施形態における静的解析システム10において、静的解析結果表示方法の説明を行う。まず、本実施形態における静的解析システム10において、リポジトリ51にソースコードファイル31を格納する方法について説明する。図2は、本発明の実施形態における静的解析システム10において、リポジトリ51にソースコードファイル31を格納する方法を説明するためのフローチャートである。ステップS101クライアント装置1のリポジトリアクセス部11は、ソースコード格納要求と更新したソースコードファイルを、静的解析装置2のソースコードファイル格納部26に送信する。ステップS102静的解析装置2のソースコード格納部26は、リポジトリ51のソースコードファイル31を、ソースコード格納要求と同時に送信したソースコードファイルで更新する。次に、本実施形態における静的解析システム10において、静的解析方法について説明する。図3は、本発明の実施形態における静的解析システム10の静的解析方法のフローチャートである。ステップS201実行トリガ部21は、ソースコードファイル31の静的解析の実行を開始する。実行トリガ21は、静的解析実行対象のソースコードファイル31の指定リビジョンと、前回計測時リビジョン32を比較する。実行トリガ部21は、両リビジョンの値が異なっている場合には、指定リビジョンのソースコードファイル31と、前回計測時のソースコードファイル31の間に差分があると判定する。実行トリガ部21は、両リビジョンの値が等しい場合には、指定リビジョンのソースコードファイル31と前回計測時ソースコード31の間に差分がないと判定する。実行トリガ部21は、差分がなければ、静的解析を実行せず、差分がある場合には、ステップS202に進む。ただし、前回計測時リビジョン32がリポジトリ51に格納されていなかった場合は、初回の静的解析処理の実行と判断し、ステップS202に進む。ステップS202ソースコードファイル取得部22は、リポジトリ51から静的解析実行対象のリビジョンのソースコードファイル31、及び前回計測時リビジョン32のソースコードファイル31を取得する。ステップS203差分取得部23は、リポジトリ51から静的解析実行対象のリビジョンのソースコードファイル31と、前回計測時リビジョン32のソースコードファイル31を比較して、ファイル差分情報、及び行差分情報を作成する。図4は、本発明の実施形態における静的解析システム10のファイル差分情報である。ファイル差分情報は、ソースコードファイル31のファイル毎に、ファイル名、及び、追加、変更、削除のいずれかの状態を示すステータスを記録する。追加は、前回の静的解析実行時には、存在しなかったソースコードファイルであることを示す。変更は、前回の静的解析実行時から、変更されたソースコードファイルであることを示す。削除は、前回の静的解析実行時には、存在していたが、現在実行中の静的解析では、存在していないソースコードファイルであることを示す。初回の静的解析である場合には、静的解析実行対象の全てのソースコードファイル31に対して、ステータスを追加としたファイル差分情報を作成する。図5は、本発明の実施形態における静的解析システム10の行差分情報である。行差分情報は、ファイル名、ソースコード変更後の変更後行番号、及び、ソースコード変更前の変更前行番号を有するレコードを記録する。行差分情報により、ソースコードファイル31のファイル毎に、ソースコード変更前の行番号とソースコード変更後の行番号の対応を把握できる。差分取得部23は、ファイル差分情報において、ファイル名に対応する前記ステータスが、変更であるソースコードファイル31に対してのみ、差分情報を作成してもよい。図6は、本発明の実施形態における静的解析システム10の行差分情報の例である。図6では、ソースコードファイル31内で、前回静的解析実行時から変更のあったファイルの例としてSample.javaが記載されている。変更後Sample.javaは、変更前のSample.javaの9行目に対応するソースコードが削除されている。この変更に対応する行差分情報のレコードは、ファイル名,変更後行番号,変更前行番号=Sample.java,0,9となる。また、変更後Sample.javaは、変更前のSample.javaは、8行目と10行目のソースコードが追加されている。この変更に対応する行差分情報のレコードは、ファイル名,変更後行番号,変更前行番号=Sample.java,8,0と、ファイル名,変更後行番号,変更前行番号=Sample.java,10,0となる。ファイル名,変更後行番号,変更前行番号=Sample.java,9,8のように、変更後行番号の値と、変更前行番号の値が異なる行差分情報のレコードは、同一のソースコードであるが、変更により行番号がずれていることが示されている。ステップS204検証実行部24は、指定リビジョンの全ソースコードファイル31に対して、静的解析を行ない、検証結果33を作成する。図7は、本発明の実施形態における静的解析システム10の検証結果33である。検証結果33に含まれる各指摘項目は、検証ID、ファイル名、開始行、終了行、指摘ルール、指摘内容及び確認フラグを含む。検証IDは、指摘項目毎に一意に割り振られる識別子である。ファイル名は、指摘項目が発生しているソースコードファイル31のファイル名である。開始行は、ソースコードファイル31の指摘対象となっている箇所の開始行の行番号である。終了行は、ソースコードファイル31の指摘対象となっている箇所の終了行の行番号である。指摘ルールは、静的解析対象となるソースコード31に適用するルールのルール名である。指摘内容は、指摘ルールに基づくソースコードの該当箇所に対するメッセージ内容である。確認フラグは、未確認、確認済みのどちらかの値が設定されるが、検証結果33をリポジトリ51に初めて登録する時には未確認が設定される。ステップS205検証結果更新部25は、リポジトリ51に格納された検証結果33の確認フラグが、未確認の全ての指摘項目を削除する。検証結果更新部25は、以降のステップの処理で、検証結果33の未確認指摘項目を作成し直す。ステップS206検証結果更新部25は、ファイル差分情報及び行差分情報を参照して、変更されたファイルについての削除行に係る指摘項目を削除する。また、検証結果更新部25は、ファイル差分情報を参照して、削除されたファイルに係る指摘項目を削除する。ステップS207検証結果更新部25は、行差分情報を参照し、検証結果33の各指摘項目の開始行、終了行を更新、削除する。ステップS207の処理の詳細については、具体例を用いて後述する。ステップS208検証結果更新部25は、検証結果33の各指摘項目の確認フラグに未確認を設定し、リポジトリ51に各指摘項目を追加する。ただし、ファイル名、開始行、終了行、指摘ルールが全て一致する指摘項目が、既にリポジトリ51の検証結果33に存在する場合には、当該指摘項目については追加しない。ステップS209検証結果更新部25は、リポジトリ51の前回計測時リビジョン32の値を、今回計測時の指定リビジョンの値で更新する。次に、本発明の実施形態における静的解析システム10の静的解析結果確認方法について説明する。図8は、本発明の実施形態における静的解析システム10の静的解析結果確認方法のフローチャートである。ステップS301クライアント装置1の検証結果アクセス部12は、静的解析装置2の検証結果取得部27に検証結果格納要求を送信する。ステップS302静的解析装置2の検証結果取得部27は、リポジトリ51に格納された検証結果33から、確認フラグが未確認の指摘項目を全て抽出する。検証結果取得部27は、一覧の形式でクライアント装置1の画面に表示するための検証結果確認用データ41を作成して、クライアント装置1に返信する。ステップS303クライアント装置1の検証結果確認部13は、検証結果確認用データ41に基づいて、検証結果確認画面を表示する。図9は、本発明の実施形態における静的解析システム10の検証結果確認画面の例である。図9の一覧表の各行は、検証実行部24により作成された各指摘項目に対応している。図9の一覧表の各行は、確認フラグ、ファイル名、開始行、終了行、指摘ルール及び指摘内容から構成されている。確認フラグの列は、チェックボックスやプルダウンリストを備え、検証結果確認画面を閲覧するユーザが、各指摘項目に対するステータスを変更できる。ユーザが、クライアント装置1の検証結果確認画面に表示された各指摘項目に対して、確認フラグをチェックすると、検証結果確認部13は、確認フラグがチェックされた指摘項目については、次回の静的解析からは表示不要と判断する。検証結果確認部13は、確認フラグがチェックされた指摘項目に対して、検証結果確認用データ41の対応する指摘項目の確認フラグを確認済みに更新する。ステップS304クライアント装置1の検証結果確認部13は、ステップS303で更新した検証結果確認用データ41を静的解析装置2の確認フラグ更新部28に送信する。ステップS305静的解析装置2の確認フラグ更新部28は、ステップS304でクライアント装置1から送信された検証結果確認用データ41に基づいて、リポジトリ51の検証結果33の各指摘項目の確認フラグの値を更新する。次に、具体例を用いて、本発明の実施形態における静的解析システム10の静的解析結果表示方法を説明する。図10は、検証結果更新部25によって更新されたリポジトリ51の検証結果33の例である。図11は、図10の検証結果33に基づいて作成された検証結果確認画面である。図11では、静的解析システム10のユーザが、1行目、2行目及び4行目の指摘項目の確認フラグを確認済みとしてチェックしたことが示されている。クライアント装置1の検証結果確認部13は、検証結果確認用データ41を確認フラグ更新部28に送信する。図12は、本発明の実施形態における確認フラグ更新部28によって更新されたリポジトリ51の検証結果33の例である。リポジトリ51の検証結果33が図12の状態のときに、ユーザがソースコードを変更したとする。リポジトリアクセス部11により、変更されたソースコードファイルが、ソースコードファイル格納部26に送信される。ソースコードファイル格納部26は、ユーザにより変更されたソースコードファイルを、リポジトリ51のソースコードファイル31に上書きする。この上書きによる変更で、リポジトリ51のソースコードファイル31のリビジョンがインクリメントされる。次に、実行トリガ部21により、再度静的解析が実行される。図13は、本発明の実施形態における差分取得部23によって作成されたファイル差分情報及び行差分情報の例である。図14は、本発明の実施形態における検証実行部24により作成されたリポジトリ51保存前の検証結果である。次に、検証結果更新部25は、図12の検証結果33から、確認フラグが未確認の指摘項目を削除する。図12の例では、検証IDが0003及び0005の指摘項目が削除される。次に、検証結果更新部25は、図13のファイル差分情報を参照して、Sample1.javaが削除されていることを特定し、図12の検証結果33から、Sample1.javaに対する指摘項目である検証IDが0001の指摘項目を削除する。次に、検証結果更新部25は、図13のファイル差分情報を参照して、Sample2.javaが変更されていることを特定し、行差分情報のSample2.javaに関するレコードを参照する。検証結果更新部25は、行差分情報を参照して、検証ID0002の指摘項目の開始行100及び終了行101に係る変更有無を確認する。図13の例では、ファイル名、変更後行番号、変更前行番号=Sample2.java,0,100であるレコードが存在するため、図12の検証結果33から検証IDが0002の指摘項目を削除する。次に、検証結果更新部25は、行差分情報を参照して、検証ID0004の指摘項目の開始行300及び終了行301に係る変更有無を確認する。図13の例では、ファイル名、変更後行番号、変更前行番号=Sample2.java,400,300、ファイル名、変更後行番号、変更前行番号=Sample2.java,401,400であるレコードが存在するため、図12の検証結果33において、検証IDが0004の指摘項目の開始行を400、終了行を401に更新する。次に、検証結果更新部25は、図14のリポジトリ51保存前の検証結果の各指摘項目を、リポジトリ51の検証結果33に追加する。検証結果更新部25は、図14の検証結果の1行目の指摘事項を、検証ID0006として、リポジトリ51の検証結果33に保存する。検証結果更新部25は、図14の検証結果の2行目の指摘事項を、検証ID0007として、リポジトリ51の検証結果33に保存する。検証結果更新部25は、図14の検証結果の3行目の指摘事項については、検証ID0004と同一であるため、リポジトリ51の検証結果33に、新たに保存しない。図14の検証結果の4行目の指摘事項を、検証ID0008として、リポジトリ51の検証結果33に保存する。図14の検証結果の5行目の指摘事項を、検証ID0009として、リポジトリ51の検証結果33に保存する。以上をまとめると、図12で示されていたリポジトリ51の検証結果33は、図15に示される検証結果33に更新される。図16は、図15の検証結果33に基づいて、本発明の実施形態における検証結果確認部13が表示する検証結果確認画面の例である。検証ID0004の指摘項目は、ユーザにより、前回の静的検証時に、確認済みとしてチェックされていた。そのため、検証ID0004に対応する指摘項目は、検証結果確認画面に表示されていない。本実施形態では、検証ID0004のように、指摘項目の開始行及び終了行が、変更された場合であっても、ユーザが確認済みとしてチェックしていた指摘項目と、同一の指摘項目であると識別できる。本実施形態の静的解析システム10では、ユーザは、クライアント装置1の検証結果確認画面で確認済みとした指摘項目は、次回の静的解析で表示されない。そのため、ユーザによる検証結果33の指摘項目の確認作業が、煩雑さを低減することができる。ユーザは、必要な指摘項目のみを確認することができるため、効率よく指摘項目を確認できる。また、本実施形態の静的解析システム10では、変更有無によらずに、全てのソースコードファイル31を静的解析するため、ソースコードを変更した箇所が、ソースコードを変更していない箇所に影響を及ぼすことにより、新たに追加された指摘項目も、洩れなく表示することができる。本実施形態の静的解析システム10によれば、上述の2つの効果を同時に達成することができる。本実施形態の静的解析システム10は、ソフトウェア開発プロジェクトにおいて、製造工程以降のフェーズで、定期的例えば日次に、静的解析装置2の実行トリガ21を設定して利用する方法が考えられる。このようにすることで、開発モジュールのソースコードファイル31の静的解析処理を定期的に実行でき、ソフトウェア開発者が、逐次的確に指摘項目を確認することができる。また、レビューコードインスペクションのレビューアが、本実施形態の静的解析システム10を利用すれば、検証結果画面を参照することにより、指摘項目の一覧から、効率的に、当該ソースコードのバグの傾向をつかむことができる。以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。"