(57)【要約】  本発明は、ソフトウェアにクローンコードが存在する場合でも、ソフトウェアの変更影響範囲を正確に特定する技術を提供することを目的とする。本発明に係る変更影響分析装置（１１）は、ソフトウェアの過去開発および今回開発における変更要求と、自然言語で記述された変更仕様と、変更仕様のソースコードとが対応づけて記載された変更仕様書（４１，４２）に基づき、仕様の依存関係を表す仕様依存関係モデル（５０）を生成する仕様依存関係モデル構築部（２０）と、静的解析モデルによる解析で得られたソフトウェアのソースコードの依存関係を示すソースコード依存関係（６０）と、仕様依存関係モデル（５０）とに基づき、ソフトウェアのソースコードの一部に変更が加えられた場合に、変更が影響を及ぼすソフトウェアのソースコードの範囲である変更影響範囲を特定する変更影響範囲特定部（３０）と、を備える。
2021053783.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの過去開発および今回開発における変更要求と、自然言語で記述された変更仕様と、前記変更仕様のソースコードとが対応づけて記載された変更仕様書に基づき、仕様の依存関係を表す仕様依存関係モデルを生成する仕様依存関係モデル構築部と、
静的解析モデルによる解析で得られた前記ソフトウェアのソースコードの依存関係を示すソースコード依存関係と、前記仕様依存関係モデルとに基づき、前記ソフトウェアのソースコードの一部に変更が加えられた場合に、前記変更が影響を及ぼす前記ソフトウェアのソースコードの範囲である変更影響範囲を特定する変更影響範囲特定部と、を備える、
変更影響分析装置。
【請求項２】
前記ソフトウェアの過去開発のソースコードに基づき、前記ソフトウェアの過去開発の前記変更仕様書を作成し、前記ソフトウェアの今回開発のソースコードに基づき、前記ソフトウェアの今回開発の前記変更仕様書を作成する変更仕様書作成部を備える、
請求項１に記載の変更影響分析装置。
【請求項３】
前記変更仕様書作成部は、前記ソフトウェアの過去開発のコミットログおよびソースコードを管理する構成管理システムから取得した、前記ソフトウェアの過去開発のコミットログおよびソースコードに基づき、前記ソフトウェアの過去開発の前記変更仕様書を作成する、
請求項２に記載の変更影響分析装置。
【請求項４】
前記仕様依存関係モデルは、前記ソフトウェアの２つの仕様の共起度を示す情報を含み、
前記変更影響範囲特定部は、前記共起度が閾値以上である２つの仕様のソースコードの一方を、他方の前記変更影響範囲と特定する、
請求項１から請求項３のいずれか１項に記載の変更影響分析装置。
【請求項５】
前記変更影響範囲特定部は、共通する仕様との前記共起度が閾値以上である２つの仕様のソースコードの一方を、他方の前記変更影響範囲と特定する、
請求項４に記載の変更影響分析装置。
【請求項６】
前記変更影響範囲特定部は、前記変更影響範囲の分析結果である変更影響範囲分析結果を作成し、
前記変更影響範囲分析結果は、前記ソースコード依存関係から特定される前記変更影響範囲と、前記仕様依存関係モデルから特定される前記変更影響範囲とを、区別可能な態様で表す、
請求項５に記載の変更影響分析装置。
【請求項７】
請求項１から請求項６のいずれか１項に記載の変更影響分析装置と、
前記ソフトウェアの過去開発のコミットログおよびソースコードを管理する構成管理システムと、
前記ソフトウェアの今回開発のソースコードに基づき、今回開発のソースコードの依存関係を抽出する静的解析ツールと、
前記仕様依存関係モデルを記憶する仕様依存関係モデル記憶部と、
を備える、
変更影響分析システム。
【請求項８】
仕様依存関係モデル構築部が、ソフトウェアの過去開発および今回開発における変更要求と、自然言語で記述された変更仕様と、前記変更仕様のソースコードとが対応づけて記載された変更仕様書に基づき、仕様の依存関係を表す仕様依存関係モデルを生成し、
変更影響範囲特定部が、静的解析モデルによる解析で得られた前記ソフトウェアのソースコードの依存関係を示すソースコード依存関係と、前記仕様依存関係モデルとに基づき、前記ソフトウェアのソースコードの一部に変更が加えられた場合に、前記変更が影響を及ぼす前記ソフトウェアのソースコードの範囲である変更影響範囲を特定する、
変更影響分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソフトウェアまたはシステムの変更影響分析に関する。
【背景技術】
【０００２】
ソフトウェアの多機能化により、ソフトウェアの規模および複雑さが増大している。付加価値の高い機能を実現するため、複数のソフトウェアと装置が連動して一つのシステムを構築することも増えている。【０００３】
また、効率性のため、前機種のソースコードを流用して次機種のソースコードを開発することが多い。このようなソフトウェアの流用開発において、前機種のソースコードを複製して新たな処理または機能を実現することにより、クローン化されたソースコード（以下、「クローンコード」とも称する）が発生する。【０００４】
このような状況の中でソフトウェアを開発するために、あるソフトウェアに実施した変更がシステム全体に影響を及ぼす範囲（以下、「影響範囲」とも称する）を見極めることが重要である。開発者が影響範囲を正しく認識しないままソフトウェアを変更すれば、無関係と思われていた機能または装置が仕様の不整合に起因する誤作動を起こす可能性がある。【０００５】
一般的に、ソフトウェアの影響範囲は、ソフトウェアに関する設計文書から検討することができる。設計文書は自然言語で記述されるため、人手による調査が必要になる。そのため、設計文書から影響範囲を調査するには多くの時間を要する。【０００６】
別のアプローチとして、ソフトウェアのソースコードを解析して影響範囲を特定する取り組みが考えられる。特許文献１では、コンピュータがソースコードを解析し、実行パスまたは変数や関数の依存関係といった影響範囲を特定するための情報を、フローチャートまたは木構造でソフトウェア開発者に提示する技術が開示されている。【０００７】
特許文献２では、第１のソースコードに形式が類似する第２のソースコードを、第１のソースコードのクローンコードとして検出し、開発者が第１のソースコードを変更した場合に、そのクローンコードも併せて変更することを開発者に提示する技術が開示されている。【０００８】
特許文献３では、あるソースコードを変更することによってデータ値が変化する通信インタフェース項目を特定し、その通信インタフェース項目を介した他装置への影響伝搬をソフトウェア開発者に提示する技術が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１３−１５６７８６号公報
【特許文献２】特開２０１２−２２０９７９号公報
【特許文献３】国際公開第２０１８／１５４７８４号
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献２の技術によれば、第２のソースコードの形式が第１のソースコードの形式にある程度類似していなければ、第２のソースコードをクローンコードとして検出することができない。例えば、第２のソースコードが、第１のソースコードと実現する機能が同じであっても、形式が大きく異なる場合には、クローンコードとして検出することができない。また、仕様上同じ意味の変数が複数存在する場合は、ソースコードの形式は１行しか変わらないためクローンコードとして検出することができない。【００１１】
特許文献３の技術によれば、ある変数を変更した場合の、システム全体への影響範囲を特定することができる。しかし、ソースコードのクローン化により、仕様上同じ意味の変数が他に存在する場合には、影響範囲を漏らす可能性がある。【００１２】
本発明は、ソフトウェアにクローンコードが存在する場合でも、ソフトウェアの変更影響範囲を正確に特定する技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の変更影響分析装置は、ソフトウェアの過去開発および今回開発における変更要求と、自然言語で記述された変更仕様と、変更仕様のソースコードとが対応づけて記載された変更仕様書に基づき、仕様の依存関係を表す仕様依存関係モデルを生成する仕様依存関係モデル構築部と、静的解析モデルによる解析で得られたソフトウェアのソースコードの依存関係を示すソースコード依存関係と、仕様依存関係モデルとに基づき、ソフトウェアのソースコードの一部に変更が加えられた場合に、変更が影響を及ぼすソフトウェアのソースコードの範囲である変更影響範囲を特定する変更影響範囲特定部と、を備える。
【発明の効果】
【００１４】
本発明によれば、仕様依存関係とソースコード依存関係の両方から変更影響範囲を特定することによって、ソフトウェアにクローンコードが存在する場合でも変更影響範囲を正確に特定することができる。本発明の目的、特徴、態様、および利点は、以下の詳細な説明と添付図面とによって、より明白となる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１の変更影響分析装置の構成を示すブロック図である。
【図２】仕様依存関係モデル構築部が仕様依存関係モデルを生成する様子を示す図である。
【図３】過去変更仕様書の例を示す図である。
【図４】今回変更仕様書の例を示す図である。
【図５】仕様依存関係モデルの例を示す図である。
【図６】仕様依存関係モデルの生成手順を示すフローチャートである。
【図７】実施の形態１の変更影響分析装置における処理の流れを示す図である。
【図８】変更影響範囲分析結果の生成手順を示すフローチャートである。
【図９】ソースコード依存関係の例を示す図である。
【図１０】変更影響範囲分析結果の例を示す図である。
【図１１】仕様依存関係モデルの図５とは異なる例を示す図である。
【図１２】実施の形態２の変更影響分析装置の構成を示すブロック図である。
【図１３】実施の形態２の変更影響分析装置における処理の流れを示す図である。
【図１４】ソースコード（過去開発）の例を示す図である。
【図１５】ソースコード（今回開発）の例を示す図である。
【図１６】変更仕様書作成部による変更仕様書の生成手順を示すフローチャートである。
【図１７】実施の形態３の変更影響分析装置の構成を示すブロック図である。
【図１８】実施の形態３の変更影響分析装置における処理の流れを示す図である。
【図１９】仕様依存関係モデル記憶部に記憶されている仕様依存関係モデルを示す図である。
【図２０】仕様依存関係モデル記憶部による仕様依存関係モデルの記憶手順を示すフローチャートである。
【発明を実施するための形態】
【００１６】
＜Ａ．実施の形態１＞
図１は、実施の形態１の変更影響分析装置１１の構成を示すブロック図である。変更影響分析装置１１は、仕様依存関係モデル構築部２０と変更影響範囲特定部３０を備えている。
【００１７】
図２は、仕様依存関係モデル構築部２０が仕様依存関係モデル５０を生成する様子を示している。仕様依存関係モデル構築部２０は、過去変更仕様書４１と今回変更仕様書４２を入力として、仕様依存関係モデル５０を生成する。仕様依存関係モデル構築部２０への入力には、過去変更仕様書４１と今回変更仕様書４２の他、テスト仕様書、不具合分析データ、または取扱い説明書など、過去開発において自然言語で作成された文書が含まれても良い。
【００１８】
図３は、過去変更仕様書４１の例である。過去変更仕様書４１とは、ソフトウェアの過去開発において開発者が作成した変更仕様書のことである。過去変更仕様書４１には、変更要求（変更目的）４１１と、変更仕様およびソースコードの対応づけ４１２とが記載されている。
【００１９】
図３の例において、変更要求（変更目的）４１１は「露付きを防止する」である。また、変更仕様およびソースコードの対応づけ４１２として、圧縮機制御のソースファイルComp_ctrl.cにおける圧縮機起動制御の関数Comp_start_ctrl()における起動周波数start_hzを変更したことが記載されている。また、変更仕様およびソースコードの対応づけ４１２として、圧縮機制御のソースファイルComp_ctrl.cにおける露付き防止圧縮機制御の関数Comp_drop_ctrl()と、ファン制御のソースファイルFan_ctrl.cにおける露付き防止ファン制御の関数Fan_drop_ctrl()を追加したことが記載されている。
【００２０】
図４は、今回変更仕様書４２の例である。今回変更仕様書４２は、ソフトウェアの今回開発において開発者が新規に作成した変更仕様書のことである。今回変更仕様書４２には、変更要求（変更目的）４２１と、変更仕様とソースコードの対応づけ４２２が記載されている。
【００２１】
図４の例において、変更要求（変更目的）４２１は「霜取りの性能を改善する」である。また、変更仕様とソースコードの対応づけ４２２として、圧縮機制御のソースファイルComp_ctrl.cにおける圧縮機霜取り制御の関数Comp_frost_ctrl()と、圧縮機起動制御の関数Comp_start_ctrl()の起動周波数start_hzとを変更したことが記載されている。
【００２２】
図５は、仕様依存関係モデル５０の例を示している。仕様依存関係モデル５０は、仕様の依存関係を示す情報であり、図５の例では、仕様Ａと仕様Ｂの共起度を示している。仕様Ａと仕様Ｂの共起度とは、仕様Ａと仕様Ｂが同じ文に同時に出現する頻度である。図５の例では、仕様Ａ「起動周波数」と仕様Ｂ「霜取り制御」の共起度が２５０であり、仕様Ａ「起動周波数」と仕様Ｂ「露付き防止」の共起度が１３０である。共起度が大きいほど依存関係が強いため、例えば共起度が閾値以上となる２つの仕様は依存関係にあると判断することができる。図５の仕様依存関係モデル５０では、「起動周波数」と「霜取り制御」が依存関係にあり、「起動周波数」と「露付き防止」が依存関係にあると判断することができる。さらに、「霜取り制御」と「露付き防止」が、「起動周波数」を介して依存関係にあると判断することができる。すなわち、後述する変更影響範囲特定部３０は、共通する仕様と依存関係にある２つの仕様が依存関係にあり、一方が他方の変更影響範囲にあると判断する。
【００２３】
なお、過去変更仕様書４１と今回変更仕様書４２では、仕様とソースコードが対応づけられている。そのため、図５には示していないが、仕様依存関係モデル５０は、仕様の依存関係だけでなく、依存関係にある仕様のソースコードの情報も保持している。
【００２４】
図６は、仕様依存関係モデル構築部２０による仕様依存関係モデル５０の生成手順を示すフローチャートである。以下、図６に沿って仕様依存関係モデル５０の生成手順を説明する。
【００２５】
まず、仕様依存関係モデル構築部２０は、過去変更仕様書４１と今回変更仕様書４２から、自然言語で記述された「露付き防止」または「起動周波数」などの仕様を抽出する（ステップＳ２１）。次に、仕様依存関係モデル構築部２０は、ステップＳ２１で抽出した仕様の共起度を算出する（ステップＳ２２）。その後、仕様依存関係モデル構築部２０は、ステップＳ２２で算出した共起度を一覧化し、仕様依存関係モデル５０を生成する（ステップＳ２３）。
【００２６】
図７は、変更影響分析装置１１における処理の流れを示す図である。仕様依存関係モデル構築部２０は、過去変更仕様書４１と今回変更仕様書４２に基づき、仕様依存関係モデル５０を生成する。変更影響範囲特定部３０は、仕様依存関係モデル５０とソースコード依存関係６０に基づき、変更影響範囲分析結果７０を生成する。
【００２７】
図８は、変更影響範囲特定部３０による変更影響範囲分析結果７０の生成手順を示すフローチャートである。以下、図８に沿って変更影響範囲分析結果７０の生成手順を説明する。
【００２８】
まず、変更影響範囲特定部３０はソースコード依存関係６０を読み込む（ステップＳ３１）。ソースコード依存関係６０は、ソースコード（今回開発）に基づき静的解析ツールによって生成された、ソースコードの依存関係を示す情報である。次に、変更影響範囲特定部３０は仕様依存関係モデル５０を読み込む（ステップＳ３２）。その後、変更影響範囲特定部３０は、仕様依存関係モデル５０とソースコード依存関係６０を統合し、変更影響範囲分析結果７０を生成する（ステップＳ３３）。
【００２９】
図９はソースコード依存関係６０の例を示している。図９に示す表の第１行と第１列にはソースコードの関数が列挙されている。図９の黒丸は、黒丸が示されたセルと同一行の関数および同一列の関数に依存関係があることを示している。例えば、圧縮機起動制御の関数Comp_start_ctrl()と、露付き防止圧縮機制御の関数Comp_drop_ctrl()が交差するセルに黒丸があり、これらの関数に依存関係があることを示している。同様に、圧縮機起動制御の関数Comp_start_ctrl()と圧縮機霜取り制御の関数Comp_frost_ctrl()には依存関係がある。
【００３０】
図１０は変更影響範囲分析結果７０の例を示している。変更影響範囲特定部３０は、ソースコード依存関係６０に、仕様依存関係モデル５０から特定した依存関係を追加することによって、変更影響範囲分析結果７０を作成する。変更影響範囲特定部３０は、図５に示す仕様依存関係モデル５０から、起動周波数を介して「霜取り制御」と「露付き防止」に依存関係が存在することを特定している。従って、変更影響範囲特定部３０は、ソースコード依存関係６０において、圧縮機霜取り制御の関数Comp_frost_ctrl()と露付き防止圧縮機制御の関数Comp_drop_ctrl()が交わるセルに×印を追加し、変更影響範囲分析結果７０を作成する。すなわち、変更影響範囲分析結果７０において黒丸とバツ印が付された２つの関数には、依存関係があり、一方の関数が他方の関数の変更影響範囲に属している。このように、変更影響範囲分析結果７０では、ソースコード依存関係から特定される変更影響範囲が黒丸で示され、仕様依存関係モデル５０から特定される変更影響範囲が×印で示され、両者が区別可能な態様で表されている。
【００３１】
図１１は、仕様依存関係モデル５０の図５とは別の例を示している。図１１の例では、「外気温度」と「霜取り制御」の共起度が９５回であり、「外気温度」と「除霜制御」の共起度が３０回である。つまり、外気温度を介して「霜取り制御」と「除霜制御」が依存している。
【００３２】
「除霜制御」と「霜取り制御」のソースコードについて、一方が他方のクローンコードの関係にある場合、ソースコード依存関係６０からは両者の依存関係を検出できない。そのため、「霜取り制御」のソースコードに変更が加えられた場合、「除霜制御」のソースコードに対する変更を漏らしてしまう可能性がある。しかし、変更影響分析装置１１は、仕様依存関係モデル５０に一覧化された共起度に基づいて、「霜取り制御」と「除霜制御」が仕様上依存していることを把握することができる。そして、変更影響範囲特定部３０は「霜取り制御」と「除霜制御」の依存関係を変更影響範囲分析結果７０に表すことができる。そのため、開発者は、霜取り制御に変更が発生した場合、除霜制御を変更すべきことに気付くことができる。このように、変更影響分析装置１１によれば、クローンコードに対する変更の影響範囲を特定することが可能である。
【００３３】
上記で説明したように、実施の形態１の変更影響分析装置１１は、ソフトウェアの過去開発および今回開発における変更要求と、自然言語で記述された変更仕様と、前記変更仕様のソースコードとが対応づけて記載された過去変更仕様書４１と今回変更仕様書４２に基づき、仕様の依存関係を表す仕様依存関係モデル５０を生成する仕様依存関係モデル構築部２０と、静的解析モデルによる解析で得られた前記ソフトウェアのソースコードの依存関係を示すソースコード依存関係６０と、前記仕様依存関係モデル５０とに基づき、前記ソフトウェアのソースコードの一部に変更が加えられた場合に、前記変更が影響を及ぼす前記ソフトウェアのソースコードの範囲である変更影響範囲を特定する変更影響範囲特定部３０と、を備える。従って、変更影響分析装置１１によれば、仕様とソースコードの両面から変更影響範囲を特定することができるため、クローンコードに対する変更影響分析が可能となる。
【００３４】
また、実施の形態１の変更影響分析方法では、仕様依存関係モデル構築部２０が、ソフトウェアの過去開発および今回開発における変更要求と、自然言語で記述された変更仕様と、変更仕様のソースコードとが対応づけて記載された過去変更仕様書４１と今回変更仕様書４２に基づき、仕様の依存関係を表す仕様依存関係モデル５０を生成し、変更影響範囲特定部３０が、静的解析モデルによる解析で得られたソフトウェアのソースコードの依存関係を示すソースコード依存関係６０と、仕様依存関係モデル５０とに基づき、ソフトウェアのソースコードの一部に変更が加えられた場合に、変更が影響を及ぼすソフトウェアのソースコードの範囲である変更影響範囲を特定する。従って、実施の形態１の変更影響分析方法によれば、仕様とソースコードの両面から変更影響範囲を特定することができるため、クローンコードに対する変更影響分析が可能となる。
【００３５】
＜Ｂ．実施の形態２＞
図１２は、実施の形態２の変更影響分析装置１２を示すブロック図である。変更影響分析装置１２は、実施の形態１の変更影響分析装置１１の構成に加えて変更仕様書作成部８０を備えている。
【００３６】
図１３は、変更仕様書作成部８０の処理を示す図である。変更仕様書作成部８０は、変更影響分析装置１２の外部の構成管理システム９０からコミットログ９１、過去ソースコード９２、および今回ソースコード９３を取得し、これらに基づき、過去変更仕様書４１と今回変更仕様書４２を生成する。構成管理システム９０は、ソフトウェアの過去開発のコミットログおよびソースコードを管理する。なお、過去ソースコード９２とは、ソフトウェアの過去開発におけるソースコードであり、今回ソースコード９３とは、ソフトウェアの今回開発におけるソースコードである。
【００３７】
変更影響分析装置１２と、構成管理システム９０と、ソースコード依存関係６０を作成する静的解析ツールとをまとめて、実施の形態２の変更影響分析システムとしても良い。すなわち、実施の形態２の変更影響分析システムは、変更影響分析装置１２と、ソフトウェアの過去開発のコミットログおよびソースコードを管理する構成管理システム９０と、ソフトウェアの今回開発のソースコードに基づきソースコードの依存関係を抽出する静的解析ツールとを備える。
【００３８】
図１４は、過去ソースコード９２の例を示している。図１４に示す過去ソースコード９２では、圧縮機起動制御の関数Comp_start_ctrl()における起動周波数start_hzが変更され、露付き防止圧縮機制御の関数Comp_drop_ctrl()が追加されている。
【００３９】
図１５は、今回ソースコード９３の例を示している。図１５に示す今回ソースコード９３では、圧縮機起動制御の関数Comp_start_ctrl()における起動周波数start_hzが変更され、圧縮機霜取り制御の関数Comp_frost_ctrl()が追加されている。
【００４０】
図１６は、変更仕様書作成部８０による変更仕様書の生成手順を示すフローチャートである。以下、図１６に沿って変更仕様書の生成手順を説明する。まず、変更仕様書作成部８０は、構成管理システムからコミットログ９１、過去ソースコード９２、および今回ソースコード９３を読み込む（ステップＳ８１）。
【００４１】
次に、変更仕様書作成部８０は、コミットログ９１と、過去ソースコード９２および今回ソースコード９３の改訂内容とを抽出する（ステップＳ８２）。ここで、改訂とは、変更、追加、または削除である。
【００４２】
その後、変更仕様書作成部８０は、過去ソースコード９２および今回ソースコード９３のファイル名およびコメントを抽出する（ステップＳ８３）。
【００４３】
次に、変更仕様書作成部８０は、ステップＳ８２およびステップＳ８３で抽出したコミットログ、ソースコードの改定内容、ファイル名、およびコメントを、ソースコードと対応づけて、過去変更仕様書４１および今回変更仕様書４２として文書化する（ステップＳ８４）。例えば、図３の過去変更仕様書４１における、「露付きを防止する。」という文言は、コミットログから得られ、その他の部分は過去ソースコード９２の改訂内容から得られる。
【００４４】
熟練開発者は、改訂理由または改訂箇所を文書化せずにソースコードを改訂することがある。この場合、開発のノウハウは蓄積されず、非熟練開発者に伝承することができない。そのため、非熟練開発者が変更影響範囲を誤ってしまう可能性が高くなる。変更影響分析装置１２によれば、熟練開発者のノウハウを図１６の手順により変更仕様書として文書化することにより、上記の問題を解決する。
【００４５】
上述したように、実施の形態２の変更影響分析装置１２は、ソフトウェアの過去開発のソースコードに基づき、ソフトウェアの過去変更仕様書４１を作成し、ソフトウェアの今回開発のソースコードに基づき、ソフトウェアの今回変更仕様書４２を作成する変更仕様書作成部８０を備える。このように、変更影響分析装置１２は、変更仕様書作成部８０によりソフトウェアの変更仕様書を自動生成できるため、文書化されていない熟練技術者のノウハウを変更影響分析に活用することができる。
【００４６】
変更仕様書作成部８０は、ソフトウェアの過去開発のコミットログおよびソースコードを管理する構成管理システム９０から取得した、ソフトウェアの過去開発のコミットログ９１および過去ソースコード９２に基づき、過去変更仕様書４１を作成する。従って、変更影響分析装置１２は、構成管理システム９０に蓄積された熟練技術者のノウハウを変更影響分析に活用することができる。
【００４７】
＜Ｃ．実施の形態３＞
図１７は、実施の形態３の変更影響分析装置１３の構成を示すブロック図である。変更影響分析装置１３は、実施の形態２の変更影響分析装置１２の構成に加えて仕様依存関係モデル記憶部１００を備えている。
【００４８】
図１８は、仕様依存関係モデル記憶部１００を中心にして、変更影響分析装置１３による処理の流れを示している。仕様依存関係モデル記憶部１００は、仕様依存関係モデル構築部２０により生成された仕様依存関係モデル５０を読み込み、記憶する。仕様依存関係モデル記憶部１００が記憶した仕様依存関係モデル５０は、将来の開発において、仕様依存関係モデル構築部２０の入力として活用することができる。
【００４９】
図１９は、仕様依存関係モデル記憶部１００で記憶される仕様依存関係モデルの例を示している。仕様依存関係モデル記憶部１００は、仕様依存関係モデルを累積して記憶する。なお、図１９の仕様依存関係モデルにおける共起度の値は、図５の仕様依存関係モデルにおける共起度の値と比べて増加している。
【００５０】
図２０は、仕様依存関係モデル記憶部１００による仕様依存関係モデルの記憶手順を示すフローチャートである。以下、図２０に沿って仕様依存関係モデルの記憶手順を説明する。まず、仕様依存関係モデル記憶部１００は、仕様依存関係モデル構築部２０が生成した仕様依存関係モデルを読み込む（ステップＳ１０１）。次に、仕様依存関係モデル記憶部１００は、ステップＳ１０１で読み込んだ仕様依存関係モデルの共起度を、記憶済みの仕様依存関係モデルの共起度に累積する（ステップＳ１０２）。
【００５１】
上記で説明したように、変更影響分析装置１３は、仕様依存関係モデル５０を記憶する仕様依存関係モデル記憶部１００を備える。仕様依存関係モデル記憶部１００に仕様依存関係モデル５０を記憶することで、次開発に活用することができる。なお、上記では、仕様依存関係モデル記憶部１００が変更影響分析装置１３に設けられると説明したが、仕様依存関係モデル記憶部１００は、変更影響分析装置１３の外部にあっても良い。
【００５２】
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略したりすることが可能である。この発明は詳細に説明されたが、上記した説明は、すべての態様において、例示であって、この発明がそれに限定されるものではない。例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。
【符号の説明】
【００５３】
１１，１２，１３  変更影響分析装置、２０  仕様依存関係モデル構築部、３０  変更影響範囲特定部、４１  過去変更仕様書、４２  今回変更仕様書、５０  仕様依存関係モデル、６０  ソースコード依存関係、７０  変更影響範囲分析結果、８０  変更仕様書作成部、９０  構成管理システム、９１  コミットログ、９２  過去ソースコード、９３  今回ソースコード、１００  仕様依存関係モデル記憶部。
【図１】
2021053783.tif 000003
【図２】
2021053783.tif 000004
【図３】
2021053783.tif 000005
【図４】
2021053783.tif 000006
【図５】
2021053783.tif 000007
【図６】
2021053783.tif 000008
【図７】
2021053783.tif 000009
【図８】
2021053783.tif 000010
【図９】
2021053783.tif 000011
【図１０】
2021053783.tif 000012
【図１１】
2021053783.tif 000013
【図１２】
2021053783.tif 000014
【図１３】
2021053783.tif 000015
【図１４】
2021053783.tif 000016
【図１５】
2021053783.tif 000017
【図１６】
2021053783.tif 000018
【図１７】
2021053783.tif 000019
【図１８】
2021053783.tif 000020
【図１９】
2021053783.tif 000021
【図２０】
2021053783.tif 000022
【国際調査報告】
2021053783.tif 000023
2021053783.tif 000024