(57)【特許請求の範囲】
【請求項１】
変更前の仕様書と変更後の前記仕様書の差分を抽出すると共に、前記仕様書に対して解析処理を行うことにより、前記抽出した前記差分に関連するキーワードを抽出する仕様書差分解析手段と、
前記仕様書に基づいて作成される、変更前のソースコードと変更後の前記ソースコードの差分を抽出すると共に、前記ソースコードに対して解析処理を行うことにより、前記抽出した前記差分に関連するキーワードを抽出するソースコード差分解析手段と、
前記抽出された前記仕様書の前記差分に関連する前記キーワードと、前記抽出された前記ソースコードの前記差分に関連する前記キーワードとの関連度に基づいて、前記仕様書の前記差分と前記ソースコードの前記差分とを対応付けると共に、当該対応付けの結果を提示する差分対応付け手段と
を備えた情報処理装置。
【請求項２】
前記差分対応付け手段は、前記抽出された前記仕様書の前記差分に関連する前記キーワードと、前記抽出された前記ソースコードの前記差分に関連する前記キーワードが一致する割合に基づいて、前記仕様書の前記差分と前記ソースコードの前記差分との前記関連度を算出し、当該関連度が所定の基準を満たす前記仕様書の前記差分と前記ソースコードの前記差分とを対応付ける
請求項１記載の情報処理装置。
【請求項３】
前記差分対応付け手段は、前記対応付けられる前記仕様書の前記差分がない前記ソースコードの前記差分、または前記対応付けられる前記ソースコードの前記差分がない前記仕様書の前記差分を、対応なし情報として提示する
請求項１または請求項２記載の情報処理装置。
【請求項４】
前記仕様書差分解析手段は、前記仕様書に対して文書構造解析処理および自然言語解析処理を行うことにより、前記仕様書に含まれる語の、当該仕様書における重要度に基づく重み付けを与えたスコアを算出すると共に、前記スコアが所定の基準を満たす語を前記キーワードとして抽出する
請求項１乃至請求項３のいずれか１項記載の情報処理装置。
【請求項５】
前記ソースコード差分解析手段は、前記ソースコードに対して構文解析処理を行うことにより、前記差分に関連する関数名、データ名およびコメントの少なくともいずれかを、前記キーワードとして抽出する
請求項１乃至請求項４のいずれか１項記載の情報処理装置。
【請求項６】
前記差分対応付け手段は、前記抽出された前記仕様書の前記差分に関連する前記キーワードと前記抽出された前記ソースコードの前記差分に関連する前記キーワードが一致する割合と、前記スコアとに基づいて、前記関連度を算出する
請求項４記載の情報処理装置。
【請求項７】
変更前の仕様書と変更後の前記仕様書の差分を抽出すると共に、前記仕様書に対して解析処理を行うことにより、前記抽出した前記差分に関連するキーワードを抽出し、
前記仕様書に基づいて作成される、変更前のソースコードと変更後の前記ソースコードの差分を抽出すると共に、前記ソースコードに対して解析処理を行うことにより、前記抽出した前記差分に関連するキーワードを抽出し、
前記抽出された前記仕様書の前記差分に関連する前記キーワードと、前記抽出された前記ソースコードの前記差分に関連する前記キーワードとの関連度に基づいて、前記仕様書の前記差分と前記ソースコードの前記差分とを対応付けると共に、当該対応付けの結果を提示する
差分対応付け方法。
【請求項８】
変更前の仕様書と変更後の前記仕様書の差分を抽出すると共に、前記仕様書に対して解析処理を行うことにより、前記抽出した前記差分に関連するキーワードを抽出する処理と、
前記仕様書に基づいて作成される、変更前のソースコードと変更後の前記ソースコードの差分を抽出すると共に、前記ソースコードに対して解析処理を行うことにより、前記抽出した前記差分に関連するキーワードを抽出する処理と、
前記抽出された前記仕様書の前記差分に関連する前記キーワードと、前記抽出された前記ソースコードの前記差分に関連する前記キーワードとの関連度に基づいて、前記仕様書の前記差分と前記ソースコードの前記差分とを対応付けると共に、当該対応付けの結果を提示する処理とを、
コンピュータに実行させる差分対応付けプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソースコードおよび仕様書に対する変更の妥当性を確認する技術に関する。
【背景技術】
【０００２】
ソフトウェア開発において、ソースコードと仕様書に対する変更の妥当性の確認を、効率的かつ見落としなく行うことは、重要な課題である。そして、ソースコードと仕様書の対応関係を明確にすると共に、ソースコードと仕様書とを乖離なくかつ保守性を高く保つことも、また、重要な課題である。
【０００３】
変更内容の把握にあたって、互いに因果関係にあるソースコードおよび仕様書それぞれの変更前後の差分を抽出することは、バージョン管理システム等を利用すれば容易に行うことができる。
【０００４】
例えば、ソースコード間のコードの相違（修正）を識別するために、ＵＮＩＸ（登録商標）のｄｉｆｆコマンドを利用して、修正前後のソースコードを行単位でテキスト比較してソースコードの差分を抽出する方法が用いられている。
【０００５】
しかしながら、上記のように抽出されたソースコードの差分が、仕様書のどの要件に対応しているかの判断は、開発者等の人が行っている。例えば、上記のようにソースコードの差分を抽出し、その差分を元に、開発者が順に変更理由の記載を仕様書と照合することにより、ソースコードの差分とそれに対応する要件との対応付けを確認していくという方法がとられている。この場合、最終的に仕様書の変更が全て網羅されたかを確認できないので、仕様書に対して行われた変更のソースコードへの反映漏れを見落とす虞がある。
【０００６】
一方、仕様書の差分を元に、開発者が順に、変更内容が反映されているかをソースコードと照合することにより確認していくという方法も考えられる。この場合、最終的にソースコードの変更を全て確認できないので、仕様書に記載のないソースコードの変更の混在を見落とす虞がある。
【０００７】
そこで、上記のような仕様書に対して行われた変更のソースコードへの反映漏れ、または仕様書に記載のないソースコードの変更の混在の見落としを防ぐために、通常は、ソースコードの差分ベースと仕様書の差分ベースで開発者が確認を行っている。あるいは、仕様と実装の全体像をよく把握している有識者が、仕様書およびソースコードの変更の妥当性の確認を行っている。
【０００８】
例えば、特許文献１には、修正前のソースコードと修正後のソースコードとを比較して差分を抽出すると共に、その差分と機能との対応付けを正確かつ簡易に行うソースコード比較装置が開示されている。
【０００９】
また、特許文献２には、ソースコードの変更があった場合、当該変更に関連するコードを網羅的に実行するテストケースを作成し、適切なテストケース識別子を付して、変更したソースコードの機能ユニットに対応付けて登録する情報処理装置が開示されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１３−０６５２６７号公報
【特許文献２】特開２０１０−０６７１８８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上述のように、仕様書およびソースコードの変更の妥当性を正確に確認するには、ソースコードの差分ベースと仕様書の差分ベースでの二重の確認や、有識者による確認といった、時間や高度な知識が必要となるという課題がある。
【００１２】
特許文献１に記載のソースコード比較装置では、ソースコードの修正について、その修正箇所と機能との対応付けを行っているが、仕様書の変更が正しくソースコードに反映されているかを確認することは開示されていない。
【００１３】
また、特許文献２に記載の情報処理装置では、機能ごとにテストケースを実行した際の実行トレースにより機能とソースコードを対応付けている。したがって、対応付けにはプログラムの実行が必要であるので、やはり確認には時間がかかる。
【００１４】
本願発明は、上記課題を鑑みてなされたものであり、ソースコードと仕様書の変更の妥当性の確認を、効率的かつ正確に行うことが可能な情報処理装置等を提供することを主要な目的とする。
【課題を解決するための手段】
【００１５】
本発明の第１の情報処理装置は、変更前の仕様書と変更後の前記仕様書の差分を抽出すると共に、前記仕様書に対して解析処理を行うことにより、前記抽出した前記差分に関連するキーワードを抽出する仕様書差分解析手段と、前記仕様書に基づいて作成される、変更前のソースコードと変更後の前記ソースコードの差分を抽出すると共に、前記ソースコードに対して解析処理を行うことにより、前記抽出した前記差分に関連するキーワードを抽出するソースコード差分解析手段と、前記抽出された前記仕様書の前記差分に関連する前記キーワードと、前記抽出された前記ソースコードの前記差分に関連する前記キーワードとの関連度に基づいて、前記仕様書の前記差分と前記ソースコードの前記差分とを対応付けると共に、当該対応付けの結果を提示する差分対応付け手段とを備える。
【００１６】
本発明の第１の差分対応付け方法は、変更前の仕様書と変更後の前記仕様書の差分を抽出すると共に、前記仕様書に対して解析処理を行うことにより、前記抽出した前記差分に関連するキーワードを抽出し、前記仕様書に基づいて作成される、変更前のソースコードと変更後の前記ソースコードの差分を抽出すると共に、前記ソースコードに対して解析処理を行うことにより、前記抽出した前記差分に関連するキーワードを抽出し、前記抽出された前記仕様書の前記差分に関連する前記キーワードと、前記抽出された前記ソースコードの前記差分に関連する前記キーワードとの関連度に基づいて、前記仕様書の前記差分と前記ソースコードの前記差分とを対応付けると共に、当該対応付けの結果を提示する。
【００１７】
なお同目的は、上記の各構成を有する差分対応付け方法を、コンピュータによって実現するコンピュータ・プログラム、およびそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【００１８】
本願発明によれば、情報処理装置において、ソースコードと仕様書の変更の妥当性の確認を、効率的かつ確実に行うことできるという効果が得られる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態に係る情報処理装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態に係る情報処理装置が取得する変更前ソースコードおよび変更後ソースコードの一例を示す図である。
【図３】本発明の第１の実施形態に係る情報処理装置が取得する変更前仕様書および変更後仕様書の一例を示す図である。
【図４】本発明の第１の実施形態に係る情報処理装置の差分対応推定部による対応付け動作の詳細について説明するフローチャートである。
【図５】本発明の第１の実施形態に係る情報処理装置が抽出した差分と差分に関連するキーワード示す図である。
【図６】本発明の第１の実施形態に係る情報処理装置が抽出したキーワードに関するスコアの算出について説明する図である。
【図７】本発明の第１の実施形態に係る情報処理装置によるソースコード差分と仕様書差分との関連度の算出結果の例（ａ）と、ソースコード差分と仕様書差分との対応関係を模式的に示す例（ｂ）である。
【図８】本発明の第１の実施形態に係る情報処理装置が提示する対応情報付き差分一覧の例（ａ）と、対応なし差分一覧の例（ｂ）である。
【図９】本発明の第２の実施形態に係る情報処理装置の構成を示すブロック図である。
【図１０】各実施形態に係る情報処理装置のハードウエア構成を例示する図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【００２１】
第１の実施形態
図１は、本発明の第１の実施形態に係る情報処理装置１００の構成を示すブロック図である。図１に示すように、情報処理装置１００は、ソースコード比較部１１０、ソースコード差分解析部１２０、仕様書比較部１３０、仕様書差分解析部１４０および差分対応推定部１５０を備える。
【００２２】
情報処理装置１００は、仕様書の変更とソースコードの変更が妥当であるか、すなわち、仕様書の各変更箇所とソースコードの各変更箇所とが、互いに対応付けられるかを判断する。そして、情報処理装置１００は、上記対応付けられる変更に関する情報（対応情報付き差分一覧）と、対応付けのない変更に関する情報（対応なし差分一覧）とを含む情報１８０を、表示部（不図示）を介して提示する。
【００２３】
対応情報付き差分一覧は、変更前後のソースコードの差分の一覧と、変更前後の仕様書の差分の一覧とを含む。対応情報付き差分一覧は、さらに、ソースコードの各差分に対応付けられる仕様書の差分を、仕様書の各差分に対応付けられるソースコードの差分を、それぞれ辿ることのできる情報を含んでもよい。
【００２４】
対応なし差分一覧は、対応付けられる仕様書の差分がないソースコードの差分の一覧、および対応付けられるソースコードの差分がない仕様書の差分の一覧を含む。対応けられる仕様書の差分がないソースコードの差分は、要件にないソースコードの変更あるいは仕様書の記載漏れ等の虞がある。対応付けられるソースコードの差分がない仕様書の差分は、ソースコードの変更漏れあるいは仕様書の記載誤り等の虞がある。情報処理装置１００は、これらの一覧を、警告として提示してもよい。
【００２５】
情報処理装置１００は、ソースコード比較部１１０において、変更前ソースコード１６１と変更後ソースコード１６２とを取得する。また、情報処理装置１００は、仕様書比較部１３０において、変更前仕様書１７１と変更後仕様書１７２とを取得する。変更前ソースコード１６１と変更前仕様書１７１、および変更後ソースコード１６２と変更後仕様書１７２とは、それぞれ互いに因果関係を有する。すなわち、変更前ソースコード１６１および変更後ソースコード１６２は、それぞれ変更前仕様書１７１および変更後仕様書１７２に基づいて作成される。
【００２６】
図１に示す情報処理装置１００の各構成要素の概要を説明する。
【００２７】
ソースコード比較部１１０は、変更前ソースコード１６１および変更後ソースコード１６２を取得し、通常のテキスト比較処理により、変更前後のソースコードの差分を抽出する。
【００２８】
ソースコード差分解析部１２０は、変更後ソースコード１６２に対して構文解析処理を行い、各変更箇所に関連する関数名、データ名、コメントなどの情報を、キーワードとして抽出する。
【００２９】
仕様書比較部１３０は、変更前仕様書１７１および変更後仕様書１７２を取得し、通常の文書比較処理により、変更前後の仕様書の差分を抽出する。
【００３０】
仕様書差分解析部１４０は、変更後仕様書１７２に対して文書構造解析処理および自然言語解析処理を行い、章節見出しや段落等の文書構造を検出し、各変更箇所の章節見出しや本文からキーワードを抽出する。
【００３１】
差分対応推定部１５０は、上述のように抽出されたソースコードの各変更箇所と仕様書の各変更箇所の対について、抽出されたキーワードの突き合わせを行い、ソースコードの変更箇所と仕様書の変更箇所の関連度を算出する。そして、差分対応推定部１５０は、算出した関連度が所定の基準より高い場合、そのソースコードの変更箇所と仕様書の変更箇所は、対応付けられる（対応関係にある）と推定する。
【００３２】
図２は、変更前ソースコード１６１および変更後ソースコード１６２の一例を示す図である。また、図３は、変更前ソースコード１６１および変更後ソースコード１６２とそれぞれ因果関係をもつ変更前仕様書１７１および変更後仕様書１７２の一例を示す図である。
【００３３】
図２、図３に示す例において、「機能Ａ」の処理および「機能Ｂ」の「処理１」と「処理２」の内容が変更されたと仮定する。またこの例では、「機能Ｂ」の「処理１」と「処理２」には、いずれも、「○○テーブル」が関わっている。ソースコードにおける「ｆｕｎｃＡ」は仕様書における「機能Ａ」に、「ｆｕｎｃＢ」は「機能Ｂ」に、「ＸＸＸＴａｂｌｅ」は「○○テーブル」に、それぞれ対応する。また、「ｆｕｎｃＢ」に関するソースコードにはふたつのブロックがあり、ひとつ目のブロック（図２において「ａ」で示す）は「処理１」に、ふたつ目のブロック（図２において「ｂ」で示す）は処理２に、それぞれ対応する（ただし、本実施形態では、これらの対応関係を単なるテキスト情報から機械的に判断するのは困難であることを前提としている）。
【００３４】
したがって、情報処理装置１００により、以下のような対応付けが行われることが、本実施形態の求める結果である。すなわち、仕様書の「機能Ａ」に対する変更とソースコードの「ｆｕｎｃＡ」に対する変更とが対応付けられる。また、仕様書の「機能Ｂ」の「処理１」に対する変更と、ソースコードの「ＸＸＸＴａｂｌｅ」に対する変更および「ｆｕｎｃＢ」のひとつ目のブロックに対する変更と、が対応付けられる。さらに、仕様書の「機能Ｂ」の「処理２」に対する変更と、ソースコードの「ＸＸＸＴａｂｌｅ」に対する変更および「ｆｕｎｃＢ」のふたつ目のブロックに対する変更と、が対応付けられる。
【００３５】
図４は、情報処理装置１００が上記対応付けを行う動作の詳細について説明するフローチャートである。図２乃至図４を参照して、情報処理装置１００における上記対応付けの動作について説明する。
【００３６】
図２に示すように、変更前ソースコード１６１において、ｃ，ｄ，ｅ，ｆに示す４か所が変更されたと仮定する。また、図３に示すように、変更前仕様書１７１において、ｇ，ｈ，ｉに示す３か所が変更されたと仮定する。
【００３７】
ソースコード比較部１１０は、変更前ソースコード１６１および変更後ソースコード１６２を取得して、通常のテキスト比較処理により、図２のｃ，ｄ，ｅ，ｆに示す変更を検出すると共に、それぞれを番号１，２，３，４を有するソースコード差分（以降、それぞれソースコード差分１，２，３，４と称する）として抽出する（Ｓ１０１）。
【００３８】
続いて、ソースコード差分解析部１２０は、変更後ソースコード１６２に対して構文解析処理を行い、変更箇所が属しているデータ、関数、ブロックの情報およびその前後に挿入されているコメント等を、キーワードとして抽出する（Ｓ１０２）。
【００３９】
図２には、ソースコード差分解析部１２０による構文解析処理の結果、変更箇所ｃ，ｄ，ｅ，ｆに関して抽出されたキーワードを破線で囲むことで示している。例えば、変更箇所ｃに関して、「／＊○○テーブル＊／」、「ＸＸＸＴａｂｌｅ」がキーワードとして抽出されている。ソースコード差分解析部１２０は、これら抽出したキーワードをソースコード差分１と関連付けて保持する。
【００４０】
同様に、ソースコード差分解析部１２０は、変更箇所ｄに関して、「ｆｕｎｃＡ（）」をキーワードとして抽出すると共に、そのキーワードをソースコード差分２と関連付けて保持する。また、ソースコード差分解析部１２０は、変更箇所ｅに関して、「ｆｕｎｃＢ（）」、「／／機能Ｂ」、「／＊処理１＊／」をキーワードとして抽出すると共に、それらキーワードをソースコード差分３と関連付けて保持する。
【００４１】
さらに、ソースコード差分解析部１２０は、変更箇所ｆに関して、その変更箇所ｆが属する「ｆｕｎｃＢ（）」、「／／機能Ｂ」と、「／＊処理２＊／」をキーワードとして抽出すると共に、それらキーワードをソースコード差分４と関連付けて保持する。
【００４２】
図５に、ソースコード比較部１１０が抽出したソースコード差分１乃至４と、それらソースコード差分１乃至４に関連してソースコード差分解析部１２０が抽出したキーワードとを示す。
【００４３】
一方、仕様書比較部１３０は、変更前仕様書１７１および変更後仕様書１７２を取得して、通常の文書比較処理により、図３のｇ，ｈ，ｉに示す変更を検出すると共に、それぞれを番号１，２，３を有する仕様書差分（以降、それぞれ仕様書差分１，２，３と称する）として抽出する（Ｓ１０３）。
【００４４】
続いて、仕様書差分解析部１４０は、変更後仕様書１７２に対して、仕様書の文書構造に基づき、変更箇所が属している章節の見出しおよび本文に対して自然言語解析処理を行うことより、関連するキーワードを抽出する（Ｓ１０４）。
【００４５】
図３には、仕様書差分解析部１４０による自然言語解析処理の結果、変更箇所ｇ，ｈ，ｉに関して抽出されたキーワードを破線で囲むことで示している。例えば、変更箇所ｇに関して、「機能Ｂ」、「処理１」、「○○テーブル」がキーワードとして抽出されている。仕様書差分解析部１４０は、これら抽出したキーワードを仕様書差分１と関連付けて保持する。
【００４６】
同様に、仕様書差分解析部１４０は、変更箇所ｈに関して、その変更箇所ｈが属する「機能Ｂ」と、「処理２」、「ＸＸＸＴａｂｌｅ」をキーワードとして抽出すると共に、それらキーワードを仕様書差分２と関連付けて保持する。また、仕様書差分解析部１４０は、変更箇所ｉに関して、「機能Ａ」、「ｆｕｎｃＡ」をキーワードとして抽出すると共に、そのキーワードを仕様書差分３と関連付けて保持する。
【００４７】
図５には、仕様書比較部１３０が抽出した仕様書差分１乃至３と、それら仕様書差分１乃至３に関連して仕様書差分解析部１４０が抽出したキーワードとを示す。
【００４８】
なお、変更と関連性の少ない単語をキーワードとして抽出してしまうことを防ぐため、仕様書差分解析部１４０は、変更と関連度が高いと判断されるキーワードを抽出してもよい。図６は、キーワードに関するスコアの算出について説明する図である。仕様書差分解析部１４０は、仕様書における各語の重要度、例えば、図６に示すように、仕様書における見出し中の語、ソースコード中の識別子と考えられる語、出現頻度の高い語に対して、重み付けを与えたスコアを算出する。そして、仕様書差分解析部１４０は、所定の基準よりも高いスコアを有する語を、キーワードとして抽出してもよい。ここでは、仕様書差分解析部１４０は、例えばスコアが、「４０」以上の語をキーワードとして抽出している。
【００４９】
続いて、差分対応推定部１５０は、ソースコード差分解析部１２０により抽出されたキーワードと、仕様書差分解析部１４０により抽出されたキーワードとを突き合わせることにより、ソースコード差分および仕様書差分の対応関係を推定する（Ｓ１０５）。
【００５０】
図７は、差分対応推定部１５０によるソースコード差分と仕様書差分との関連度の算出結果の例を示す図７（ａ）と、ソースコード差分と仕様書差分との対応関係を模式的に示す図７（ｂ）である。差分対応推定部１５０は、ソースコード差分１乃至４それぞれに含まれるキーワードと、仕様書差分１乃至３それぞれに含まれるキーワードとの突き合わせを行い、一致するキーワードの割合に基づいて関連度を算出する。さらに、差分対応推定部１５０は、図６に示したスコア等を用いてキーワードに重み付けを与えて関連度を算出してもよい。
【００５１】
図７（ｂ）では、対応関係にある仕様書差分とソースコード差分とを実線で結んで示す。図７（ｂ）に示すように、例えば仕様書差分１とソースコード差分１とでは、「○○テーブル」というキーワードが一致している。また、図６に示すように、「○○テーブル」というキーワードのスコアは「４０」である。これらを元に、差分対応推定部１５０は、図７（ａ）に示すように、仕様書差分１とソースコード差分１との関連度を「８０」と算出している。
【００５２】
同様に、例えば、仕様書差分３とソースコード差分２とでは、「ｆｕｎｃＡ」というキーワードが一致している。また、図６に示すように、「ｆｕｎｃＡ」というキーワードのスコアは「６６」である。これらを元に、差分対応推定部１５０は、図７（ａ）に示すように、仕様書差分３とソースコード差分２との関連度を「９５」と算出している。
【００５３】
差分対応推定部１５０は、上述のように、図７（ａ）に示す仕様書差分とソースコード差分のすべての対について関連度を算出する。
【００５４】
ここで、「処理１」と「処理２」については、いずれも機能Ｂに含まれる。よって、ソースコードにおける「処理１」と仕様書における「処理２」の対や、ソースコードにおける「処理２」と仕様書における「処理１」の対は、それぞれ対応付けは薄いが、関連が発生している。すなわち、ソースコード差分３と仕様書差分２との対、ソースコード差分４と仕様書差分１との対には、関連度が「３０」と算出されている。そこで、差分対応推定部１５０は、関連度について、対応付けられるとみなす所定の基準を設け、基準を満たさない関連度を有する対は、対応関係から除外してもよい。
【００５５】
図８は、差分対応推定部１５０が提示する対応情報付き差分一覧（ａ）と、対応なし差分一覧（ｂ）示す図である。図８に示すように、差分対応推定部１５０は、対応情報付き差分一覧として、仕様書差分の一覧とソースコード差分の一覧に加えて、ソースコードの各差分から対応している仕様書の差分を、仕様書の各差分から対応しているソースコードの差分を、それぞれ辿ることのできる情報（対応関係）を提示する（Ｓ１０６）。
【００５６】
上記例では、すべての仕様書差分とソースコード差分が、それぞれ対応関係のあるソースコード差分と仕様書差分を有する場合について説明したが、対応関係のあるソースコード差分または仕様書差分がない場合、差分対応推定部１５０は、警告を提示する。すなわち、差分対応推定部１５０は、対応付けられるソースコード差分のない仕様書差分、または対応付けられる仕様書差分のないソースコード差分を、対応なし差分一覧として提示する。図８（ｂ）は、仕様書差分４が、対応付けられるソースコード差分なしとして、「要確認」の警告と共に提示される例を示す。
【００５７】
ここで、実装に関する記載が仕様書に少ない場合や、ソースコードへの適切なコメントの記載が少ない場合、仕様書の差分とソースコードの差分との対応付けの精度が悪くなり、本来対応関係にある差分同士が対応なし差分一覧に含まれてしまう虞がある。これを防ぐため、開発者は、仕様と実装を結び付ける記載やコメントを追加することで、対応付けの精度を上げることができる。対応付けの精度の向上のために対応付けに用いられる情報を追加することは、開発者にとっても変更内容の把握に際し有効である。
【００５８】
また、情報処理装置１００に適用される仕様書やソースコードは、特定のコーディングルールや仕様書フォーマットに限定されない。ただし、コーディングルールや、仕様書フォーマットを定めることにより、仕様書差分とソースコード差分の対応付けの精度をより高めることができる。
【００５９】
以上のように、本第１の実施形態によれば、情報処理装置１００は、ソースコードの変更箇所（差分）に関連するキーワードを抽出すると共に、仕様書の変更箇所（差分）に関連するキーワードを抽出する。そして、情報処理装置１００は、ソースコードの変更箇所に関連するキーワードと、仕様書の変更箇所に関連するキーワードとを突き合わせることにより、各差分の関連度を算出すると共に、関連度が高いと判定される差分の対応関係を示す情報を提示する。情報処理装置１００は、また、対応付けられるソースコード差分または仕様書差分がない差分については、警告として提示する。
【００６０】
上記構成を採用することにより、本第１の実施形態によれば、仕様書に対して行われた変更のソースコードへの反映漏れ、または仕様書に記載のないソースコードの変更の混在を、効率的かつ確実に（見落としなく）確認できるという効果が得られる。
【００６１】
また、対応付けに用いられる情報が仕様書またはソースコードに少ない場合、仕様書やソースコードの変更漏れや誤り等と共にこれらの情報を開発者に提示する。これにより、必要なコメント等の仕様書またはソースコードへの追加を促すこととなるので、開発者にとってより保守性の高い仕様書またはソースコードを作成することができるという効果が得られる。
【００６２】
第２の実施形態
図９は、本発明の第２の実施形態に係る情報処理装置２００の構成を示すブロック図である。上述の第１の実施形態における情報処理装置１００は、第２の実施形態における情報処理装置１００を基本としている。
【００６３】
図９に示すように、情報処理装置２００は、仕様書差分解析部２１０、ソースコード差分解析部２２０および差分対応付け部２３０を備える。
【００６４】
仕様書差分解析部２１０は、変更前の仕様書と変更後の仕様書の差分を抽出すると共に、仕様書に対して解析処理を行うことにより、抽出した差分に関連するキーワードを抽出する。
【００６５】
ソースコード差分解析部２２０は、仕様書に基づいて作成される、変更前のソースコードと変更後のソースコードの差分を抽出すると共に、ソースコードに対して解析処理を行うことにより、抽出した差分に関連するキーワードを抽出する。
【００６６】
差分対応付け部２３０は、抽出された仕様書の差分に関連するキーワードと、抽出されたソースコードの差分に関連するキーワードとの関連度に基づいて、仕様書の差分とソースコードの差分とを対応付けると共に、当該対応付けの結果を提示する。なお、差分対応付け部２３０は、上記第１の実施形態における差分対応推定部１５０に相当する。
【００６７】
上記構成を採用することにより、本第１の実施形態によれば、差分対応付け部２３０が、変更前後のソースコード差分と仕様書差分とを突き合わせることより対応付けを行うので、ソースコードと仕様書の変更の妥当性の確認を、効率的かつ正確に行うことができるという効果が得られる。
【００６８】
なお、図１等に示した情報処理装置の各部は、図１０に例示するハードウエア資源において実現される。すなわち、図１０に示す構成は、プロセッサ５０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５２、外部接続インタフェース５３および記憶装置５４を備える。
【００６９】
図１等に示した情報処理装置における各ブロックに示す機能は、図１０に示すプロセッサ５０がＲＯＭ５２または記憶装置５４に記憶された各種ソフトウエア・プログラム（コンピュータ・プログラム）を、ＲＡＭ５１に読み出して実行することにより、実現されてもよい。あるいは、図１等に示した各ブロックに示す機能は、一部または全部を、ハードウエアとして実現してもよい。
【００７０】
また、各実施形態を例に説明した本発明は、情報処理装置に対して、上記説明した機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、プロセッサ５０がＲＡＭ５１に読み出して実行することによって達成される。
【００７１】
係る供給されたコンピュータ・プログラムは、読み書き可能なメモリ（一時記憶媒体）またはハードディスク装置等のコンピュータ読み取り可能な記憶デバイスに格納すればよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムを表すコード或いは係るコンピュータ・プログラムを格納した記憶媒体によって構成されると捉えることができる。
【符号の説明】
【００７２】
５０  プロセッサ
５１  ＲＡＭ
５２  ＲＯＭ
５３  外部接続インタフェース
５４  記憶装置
１００、２００  情報処理装置
１１０  ソースコード比較部
１２０  ソースコード差分解析部
１３０  仕様書比較部
１４０  仕様書差分解析部
１５０  差分対応推定部
１６１  変更前ソースコード
１６２  変更後ソースコード
１７１  変更前仕様書
１７２  変更後仕様書
１８０  情報
２００  情報処理装置
２１０  仕様書差分解析部
２２０  ソースコード差分解析部
２３０  差分対応付け部
【図１】
0006524827.tif 000002
【図２】
0006524827.tif 000003
【図３】
0006524827.tif 000004
【図４】
0006524827.tif 000005
【図５】
0006524827.tif 000006
【図６】
0006524827.tif 000007
【図７】
0006524827.tif 000008
【図８】
0006524827.tif 000009
【図９】
0006524827.tif 000010
【図１０】
0006524827.tif 000011