(57)【要約】【課題】仕様変更がもたらす影響に対応させて適切な検証量を決定できる構成を得る。【解決手段】検証項目選出部９は、複数の仕様項目のうち、記述される仕様が変更になる仕様項目である第１の仕様項目と関連付けられている仕様項目を第２の仕様項目として抽出する。また、検証項目選出部９は、第１の仕様項目における仕様変更の影響度に基づき、第２の仕様項目に記述される仕様に対する検証量を決定する。【選択図】図１
2015200988.tif 000002
【特許請求の範囲】
【請求項１】
各々に開発対象の仕様が記述される複数の仕様項目のうち、記述される仕様が変更になる仕様項目である第１の仕様項目と関連付けられている仕様項目を第２の仕様項目として抽出する抽出部と、
前記第１の仕様項目に記述される仕様の属性及び当該仕様から派生する事象の属性の少なくともいずれかを評価して算出された、前記第１の仕様項目における仕様変更の影響度に基づき、前記第２の仕様項目に記述される仕様に対する検証量を決定する検証量決定部とを有することを特徴とする開発支援装置。
【請求項２】
前記開発支援装置は、更に、
前記第１の仕様項目に記述される仕様の属性及び当該仕様から派生する事象の属性の少なくともいずれかを評価して前記影響度を算出する影響度算出部を有し、
前記検証量決定部は、
前記影響度算出部により算出された前記影響度に基づき、前記第２の仕様項目に記述される仕様に対する検証量を決定することを特徴とする請求項１に記載の開発支援装置。
【請求項３】
前記影響度算出部は、
前記第１の仕様項目に記述される仕様の属性として、当該仕様に対する要求品質、当該仕様の実装規模、当該仕様の検証容易性の少なくともいずれかを評価し、前記第１の仕様項目に記述される仕様から派生する事象の属性として、当該仕様の不具合実績、当該仕様の手戻り工数度合い、当該仕様の不具合密度の少なくともいずれかを評価して前記影響度を算出することを特徴とする請求項２に記載の開発支援装置。
【請求項４】
前記開発支援装置は、更に、
前記影響度を記憶する影響度記憶部を有し、
前記検証量決定部は、
前記影響度記憶部で記憶されている前記影響度に基づき、前記第２の仕様項目に記述される仕様に対する検証量を決定することを特徴とする請求項１に記載の開発支援装置。
【請求項５】
前記検証量決定部は、
前記第２の仕様項目に記述される仕様に対する検証量として、当該仕様に対する検証項目の数及び当該仕様に対する検証レビューのレビュー時間の少なくともいずれかを決定することを特徴とする請求項１に記載の開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばソフトウェアの開発を支援する開発支援装置に関する。
【背景技術】
【０００２】
ソフトウェア開発等において仕様変更等により仕様書を変更した場合、変更内容に基づいた検証（レビューやテスト）を実施する必要があるが、当該仕様書はもとより、影響を受ける仕様書に関しても変更内容に基づいた検証を実施する必要がある。
しかしながら、影響を受ける仕様書が多い場合は、実施すべき検証項目が多くなり、検証時間に多くの工数が掛かるという問題があった。
従来のソフトウェア開発支援装置では、変更する設計情報の上位の設計情報を検索し、再検証すべき検証項目を抽出して検証順番を提示するものがある（例えば、特許文献１参照）。
また、変更前後の仕様から影響を受ける仕様項目を探索し、検証の必要性をあらわす優先度を算出するものがある（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−５９２３６号公報
【特許文献２】特開２００９−２５２１６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の構成では、新たな検証項目の抽出の際、変更された仕様書の上流仕様書すべてから検証項目が抽出されるため、文書単位の検出となり、変更内容とは無関係の検証項目も抽出されるという課題がある。
また、優先度を算出する特許文献２の方法では、優先度を算出する方法として、起点となるシナリオ（仕様項目）から他の仕様項目へのリンクを逆方向へ辿ることで、各シナリオ（仕様項目）に辿り着くまでの遷移回数を計数し、その計数結果でもって優先度を決定している。
しかし、遷移回数が多い仕様項目が重要な仕様項目とは限らないため、特許文献２の方法では、遷移回数が少ないが重要な仕様項目に対して十分な数の検証項目が割り当てられないという課題、また、逆に遷移回数が多いが重要でない仕様項目に対して過剰な数の検証項目が割り当てられるといった課題がある。
【０００５】
本発明は、これらの課題を解決することを主な目的としており、仕様変更がもたらす影響に対応させて適切な検証量を決定できる構成を得ることを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る開発支援装置は、
各々に開発対象の仕様が記述される複数の仕様項目のうち、記述される仕様が変更になる仕様項目である第１の仕様項目と関連付けられている仕様項目を第２の仕様項目として抽出する抽出部と、
前記第１の仕様項目に記述される仕様の属性及び当該仕様から派生する事象の属性の少なくともいずれかを評価して算出された、前記第１の仕様項目における仕様変更の影響度に基づき、前記第２の仕様項目に記述される仕様に対する検証量を決定する検証量決定部とを有することを特徴とする。
【発明の効果】
【０００７】
本発明では、仕様の属性及び仕様から派生する事象の属性の少なくともいずれかを評価して算出された影響度に基づき検証量を決定するため、仕様変更がもたらす影響に対応させて適切な検証量を決定することができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るソフトウェア開発支援装置の構成例を示すブロック図。
【図２】実施の形態１に係る仕様書および仕様項目の関連を示す図。
【図３】実施の形態１に係る変更影響度の計算式の例を示す図。
【図４】実施の形態２における仕様書および仕様項目の関連を示す図。
【図５】実施の形態１に係るリンクごとの変更影響度の例を示す図。
【図６】実施の形態１に係るリンクごとの変更影響度の例を示す図。
【図７】実施の形態１に係るソフトウェア開発支援装置の動作例を示すフローチャート図。
【図８】実施の形態１及び２に係るソフトウェア開発支援装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【０００９】
実施の形態１．
本実施の形態では、変更内容の重要度を考慮して検証項目の数を効率的に決定できるソフトウェア開発支援装置を説明する。
本実施の形態では、仕様変更に伴い、影響を受ける下位仕様書の検証項目割合を算出する例を説明する。
【００１０】
図１は、本実施の形態に係るソフトウェア開発支援装置１００の全体構成例を示している。
ソフトウェア開発支援装置１００は、開発支援装置の例に相当する。
【００１１】
図書情報管理部１は、図書蓄積部２と図書間関連情報蓄積部３と図書項目別重要度蓄積部４で構成される。
【００１２】
図書蓄積部２は、開発対象のソフトウェアの仕様が記述される図書データ（以下、単に図書ともいう）を蓄積する。
図書データは、仕様書や設計書などである。
図書データには、通常、複数の仕様項目が含まれる。
各仕様項目には、開発対象の仕様が記述されている。
【００１３】
図書間関連情報蓄積部３は、つながり情報を蓄積する。
つながり情報は、図書データ間の関連を示す情報、仕様項目間の関連を示す情報である。
【００１４】
図書項目別重要度蓄積部４は、統計情報を蓄積する。
統計情報には、仕様項目に記述される仕様の属性、当該仕様から派生する事象の属性が示される。
例えば、統計情報には、仕様の属性として、品質要求度合が示され、また、仕様から派生する事象の属性として、不具合実績、手戻り工数度合いが示される。
【００１５】
検証情報管理部５は、検証項目蓄積部６で構成される。
【００１６】
検証項目蓄積部６は、図書データの仕様項目に対応した検証項目を蓄積する。
【００１７】
変更影響管理部７は、変更影響度計算部８と検証項目選出部９と検証項目提示部１０で構成される。
【００１８】
変更影響度計算部８は、仕様が変更になる仕様項目（第１の仕様項目）の統計情報を用いて、当該仕様項目における仕様変更によるインパクトを示す影響度（変更影響度）を計算する。
変更影響度計算部８は、影響度算出部の例に相当する。
【００１９】
検証項目選出部９は、仕様が変更になる仕様項目（第１の仕様項目）と関連付けられている仕様項目（第２の仕様項目）を抽出する。
また、検証項目選出部９は、変更影響度計算部８が算出した変更影響度を元に、抽出した仕様項目（第２の仕様項目）ごとに、検証項目の個数を算出し、算出した検証項目の個数分の検証項目を検証情報管理部５から選出する。
検証項目選出部９は、抽出部及び検証量決定部の例に相当する。
【００２０】
検証項目提示部１０は、検証項目選出部９により選出された検証項目をユーザに提示する。
【００２１】
次に、以上のように構成されたソフトウェア開発支援装置１００の動作を、図７を参照して説明する。
【００２２】
図２のように、仕様書Ｚにおいて、仕様項目ｘと仕様項目ｙが変更になった場合、変更の影響を受ける仕様書Ｘと仕様書Ｙの検証項目数比率を求める場合を考える。
図書間関連情報蓄積部３のつながり情報では、仕様書Ｚの仕様項目ｘと仕様書Ｘの仕様項目ｘ１とが関連付けられており、仕様書Ｚの仕様項目ｙと仕様書Ｙの仕様項目ｙ１とが関連付けられている。
まず、検証項目選出部９が、仕様が変更になる仕様項目ｘと関連付けられている仕様項目ｘ１を抽出し、また、仕様が変更になる仕様項目ｙと関連付けられている仕様項目ｙ１を抽出する（図７、Ｓ７０１）。
そして、変更影響度計算部８が、仕様項目ｘの統計情報を用いて、仕様項目ｘにおける仕様変更の変更影響度を計算し、また、仕様項目ｙの統計情報を用いて、仕様項目ｙにおける仕様変更の変更影響度を計算する（図７、Ｓ７０２）。
変更影響度計算部８は、例えば、図３の変更影響度の計算式により変更影響度を計算する。
図３では、要求品質、不具合実績、手戻り工数をパラメータとして変更影響度を計算する例を示す。
【００２３】
次に、検証項目選出部９が、仕様項目ｘの変更影響度に基づき、仕様項目ｘ１の検証に用いる検証項目の数を決定し、また、仕様項目ｙの変更影響度に基づき、仕様項目ｙ１の検証に用いる検証項目の数を決定する（図７、Ｓ７０３）。
例えば、図５に示すように、仕様項目ｘの方が、仕様項目ｙと比較して不具合発生実績が多い場合は、仕様書Ｙの中の仕様項目ｙ１とのリンクＬｙよりも仕様書Ｘの中の仕様項目ｘ１とのリンクＬｘの方が変更影響度が高くなる。
すなわち、仕様項目ｘ１に関する検証項目を、仕様項目ｙ１に関する検証項目よりも多くする必要がある。
同様に、図６に示すように、仕様項目ｘの方が、仕様項目ｙと比較して品質要求が高い場合は、仕様書Ｙの中の仕様項目ｙ１とのリンクＬｙよりも仕様書Ｘの中の仕様項目ｘ１とのリンクＬｘの方が変更影響度が高くなる。
すなわち、仕様項目ｘ１に関する検証項目を、仕様項目ｙ１に関する検証項目よりも多くする必要がある。
【００２４】
変更影響度から検証項目の数を決定する方法は、どのような方法でもよい。
例えば、変更影響度の数値に既定の単位数（例えば、１０）を乗算して、検証項目の数を決定してもよい。
例えば、検証項目選出部９は、変更影響度が２の仕様項目ｘ１に対しては、２×１０＝２０個の検証項目を割り当て、変更影響度が１の仕様項目ｙ１に対しては、１×１０＝１０個の検証項目を割り当てるようにする。
【００２５】
仕様項目ごとに検証項目の数が決定したら、検証項目選出部９は、いずれの検証項目を用いるかを決定する（図７、Ｓ７０４）。
検証項目を決定する方法は、どのような方法でもよい。
例えば、検証項目に優先順位を設けておき、検証項目選出部９は、決定した個数分の検証項目を優先順位の順に選出するようにする。
最後に、検証項目提示部１０が、検証項目選出部９により選出された検証項目をユーザに提示する。
【００２６】
以上、本実施の形態によれば、図書データ内の仕様項目の特性に着目し、仕様項目ごとに変更影響度を計算することで、効率よく検証項目比率を算出することが可能となる。
【００２７】
実施の形態２．
次に、実施の形態２を、図面を用いて説明する。
本実施の形態に係るソフトウェア開発支援装置１００の構成例は、図１に示したものと同じである。
また、変更影響度の計算式も図３に示したものと同じである。
また、ソフトウェア開発支援装置１００の動作例も、図７に示したものと同じである。
【００２８】
次に、本実施の形態に係るソフトウェア開発支援装置１００の動作について説明する。
本実施の形態では、図４のように、仕様書Ｚにおいて、仕様項目ｘと仕様項目ｙが変更になった場合、仕様書Ｚの入力となる上位仕様書Ｘ０と同じく上位仕様書Ｙ０の検証項目数比率を求める場合を考える。
図書間関連情報蓄積部３のつながり情報では、仕様書Ｚの仕様項目ｘと仕様書Ｘ０の仕様項目ｘ０とが関連付けられており、仕様書Ｚの仕様項目ｙと仕様書Ｙ０の仕様項目ｙ０とが関連付けられている。
まず、検証項目選出部９が、仕様が変更になる仕様項目ｘと関連付けられている仕様項目ｘ０を抽出し、また、仕様が変更になる仕様項目ｙと関連付けられている仕様項目ｙ０を抽出する。
そして、変更影響度計算部８が、仕様項目ｘの統計情報を用いて、仕様項目ｘにおける仕様変更が仕様項目ｘ０に与える変更影響度を計算し、また、仕様項目ｙの統計情報を用いて、仕様項目ｙにおける仕様変更が仕様項目ｙ０に与える変更影響度を計算する。
【００２９】
例えば、図５に示すように、仕様項目ｘの方が、仕様項目ｙと比較して不具合発生実績が多い場合は、仕様書Ｙ０の中の仕様項目ｙ０とのリンクＬｙよりも仕様書Ｘ０の中の仕様項目ｘ０とのリンクＬｘの方が変更影響度が高くなる。
すなわち、仕様項目ｘ０に関する検証項目を、仕様項目ｙ０に関する検証項目よりも多くする必要がある。
同様に、図６に示すように、仕様項目ｘの方が、仕様項目ｙと比較して品質要求が高い場合は、仕様書Ｙ０の中の仕様項目ｙ０とのリンクＬｙよりも仕様書Ｘ０の中の仕様項目ｘ０とのリンクＬｘの方が変更影響度が高くなる。
すなわち、仕様項目ｘ０に関する検証項目を、仕様項目ｙ０に関する検証項目よりも多くする必要がある。
【００３０】
以上では、品質要求、不具合実績、手戻り工数を用いて変更影響度を算出する例を説明したが、変更影響度の計算に他のパラメータを用いるようにしてもよい。
例えば、仕様の属性である実装規模、検証の容易性（工数、場所、時期など）、他の部位への影響度、仕様から派生する事象の属性である不具合密度等を用いて変更影響度を算出するようにしてもよい。
【００３１】
また、以上では、検証量として、検証項目の数を決定する例を説明したが、検証項目の数の代わりに、検証レビューのレビュー時間を決定するようにしてもよい。
つまり、変更影響度が低い仕様項目よりも高い仕様項目に対して、長い時間のレビュー時間を割り当てるようにしてもよい。
【００３２】
また、以上では、検証項目選出部９が仕様項目の対（例えば、図２の仕様項目ｘと仕様項目ｘ１との対）を抽出する度に、変更影響度計算部８が変更影響度を計算する例を説明した。
これに代えて、仕様項目の対ごと（リンクごと）に、予め変更影響度を計算しておき、計算した変更影響度を記憶領域に蓄積しておくようにしてもよい。
この場合は、予め計算された変更影響度を記憶している記憶領域が、影響度記憶部の例に相当する。
【００３３】
また、以上では、仕様項目単位でつながり情報を管理し、仕様項目単位で変更影響度を計算し、仕様項目単位で検証項目数を決定する例を説明した。
これに代えて、図書データ単位でつながり情報を管理し、図書データ単位で変更影響度を計算し、図書データ単位で検証項目数を決定するようにしてもよい。
例えば、複数の図書で一冊の図書を構成しているような場合は、各々の分冊が仕様項目に該当し、分冊の集合体が図書データに該当する。
【００３４】
以上の実施の形態１及び２に示したソフトウェア開発支援装置は、仕様変更に伴い、変更内容の重要性を考慮して効率的に検証項目を提示することが可能なため、仕様変更が頻繁に発生する開発現場において有用である。
【００３５】
また、実施の形態１及び２に示したソフトウェア開発支援装置によれば、変更された仕様書から影響を受ける仕様書の絞り込みが可能になるとともに、変更された内容に関連した比率で検証項目の絞り込みが可能となることで、重要な仕様書から効率的に検証項目の抽出が可能となる。
また、変更された仕様項目から影響を受ける仕様書に記載の仕様項目の絞り込みが可能になるとともに、変更された内容に関連した比率で検証項目の絞り込みが可能となることで、重要な仕様変更項目に関する検証項目を効率的に抽出することが可能になる。
【００３６】
また、変更された仕様書から影響を受ける仕様書の絞り込みが可能になるとともに、あらかじめ計算された変更影響度データを利用し、変更された内容に関連した比率で検証項目の絞り込みが可能となることで、変更影響度を都度計算する必要がなくなり、迅速に検証項目の抽出が可能となる。
また、変更された仕様項目から影響を受ける仕様書に記載の仕様項目の絞り込みが可能になるとともに、あらかじめ計算された変更影響度データを利用し、変更された内容に関連した比率で検証項目の絞り込みが可能となることで、変更影響度を都度計算する必要がなくなり、迅速に検証項目の抽出が可能となる。
【００３７】
また、あらかじめ用意した仕様書や設計書間のつながり情報でもって、変更された仕様書から影響を受ける仕様書の絞り込みが可能になるとともに、変更された内容に関連した比率で検証項目の絞り込みが可能となることで、仕様書や設計書がなくても、検証項目の抽出が可能となる。
また、あらかじめ用意した仕様項目間のつながり情報でもって、変更された仕様項目から影響を受ける仕様書に記載の仕様項目の絞り込みが可能になるとともに、変更された内容に関連した比率で検証項目の絞り込みが可能となることで、仕様書や設計書がなくても、検証項目の抽出が可能となる。
【００３８】
最後に、実施の形態１及び２に示したソフトウェア開発支援装置１００のハードウェア構成例を図８を参照して説明する。
ソフトウェア開発支援装置１００はコンピュータであり、ソフトウェア開発支援装置１００の各要素をプログラムで実現することができる。
ソフトウェア開発支援装置１００のハードウェア構成としては、バスに、演算装置９０１、外部記憶装置９０２、主記憶装置９０３、通信装置９０４、入出力装置９０５が接続されている。
【００３９】
演算装置９０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
外部記憶装置９０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ、ハードディスク装置である。
主記憶装置９０３は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
図１に示す「〜蓄積部」は、外部記憶装置９０２又は主記憶装置９０３で実現される。
通信装置９０４は、例えばＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
入出力装置９０５は、例えばマウス、キーボード、ディスプレイ装置等である。
【００４０】
プログラムは、通常は外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１に読み込まれ、実行される。
プログラムは、図１に示す「〜部」（但し、「〜蓄積部」を除く、以下も同様）として説明している機能を実現するプログラムである。
更に、外部記憶装置９０２にはオペレーティングシステム（ＯＳ）も記憶されており、ＯＳの少なくとも一部が主記憶装置９０３にロードされ、演算装置９０１はＯＳを実行しながら、図１に示す「〜部」の機能を実現するプログラムを実行する。
また、実施の形態１及び２の説明において、「〜の判断」、「〜の判定」、「〜の抽出」、「〜の決定」、「〜の選択」、「〜の選出」、「〜の計算」、「〜の算出」、「〜の評価」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置９０３にファイルとして記憶されている。
【００４１】
なお、図８の構成は、あくまでもソフトウェア開発支援装置１００のハードウェア構成の一例を示すものであり、ソフトウェア開発支援装置１００のハードウェア構成は図８に記載の構成に限らず、他の構成であってもよい。
【符号の説明】
【００４２】
１  図書情報管理部、２  図書蓄積部、３  図書間関連情報蓄積部、４  図書項目別重要度蓄積部、５  検証情報管理部、６  検証項目蓄積部、７  変更影響管理部、８  変更影響度計算部、９  検証項目選出部、１０  検証項目提示部、１００  ソフトウェア開発支援装置。
【図１】
2015200988.tif 000003
【図２】
2015200988.tif 000004
【図３】
2015200988.tif 000005
【図４】
2015200988.tif 000006
【図５】
2015200988.tif 000007
【図６】
2015200988.tif 000008
【図７】
2015200988.tif 000009
【図８】
2015200988.tif 000010