(57)【要約】【課題】ソフトウェア開発におけるバグ摘出数を計画値および過去プロジェクトのバグ摘出実績をもとに予測し、実績値と比較することでソフトウェア開発に発生する変調を検出するプロジェクト変調検出方法およびプロジェクト変調検出装置を提供すること。【解決手段】過去プロジェクトを使って計画値を達成するバグ摘出数の予測を行い、実績と比較する事でプロジェクトに起こる予兆を検出する。【選択図】図１
2009187288.tif 000002
【特許請求の範囲】
【請求項１】
過去プロジェクトを使って計画値を達成するバグ摘出数の予測を行い、実績と比較する事でプロジェクトに起こる予兆を検出することを特徴とするプロジェクト変調検出方法。
【請求項２】
プロジェクト変調検出装置におけるプロジェクト変調検出方法であって、
第一のバグ摘出データから予測したい時点より前のバグ摘出データを入力するステップと、
過去プロジェクト情報と計画情報を読み込むステップと、
計画情報に従った今後のバグ摘出数を予測するステップと、
第二のバグ摘出データを入力し、前記予測するステップで計算された予測値と入力された実績値を比較して変調の検出を行なうステップと、
その結果を出力するステップと
を有することを特徴とする請求項１記載のプロジェクト変調検出方法。
【請求項３】
前記第一のバグ摘出データは、監視対象のプロジェクトの所定の時点から予測を行うまでに得られているバグ摘出数に関するデータであり、
前記第二のバグ摘出データは、第一のバグ摘出データ以降の監視対象のデータであり、
前記過去プロジェクト情報は、過去プロジェクトデータのバグ摘出数に関する情報であり、
前記計画情報は、プロジェクト立案時に計画された、あるいは途中で修正されたバグ摘出計画値であり、
前記第一のバグ摘出データ、前記過去プロジェクト情報、前記計画情報を利用して、計画値に従ったバグの摘出数の予測を行うことを特徴とする請求項２記載のプロジェクト変調検出方法。
【請求項４】
過去プロジェクトのデータを一度適合するモデルにフィットさせてから利用することを特徴とする請求項１から３のいずれか１項に記載のプロジェクト変調検出方法。
【請求項５】
予測の際に複数の過去プロジェクトを組み合わせることを特徴とする請求項１から４のいずれか１項に記載のプロジェクト変調検出方法。
【請求項６】
過去プロジェクトを使って計画値を達成するバグ摘出数の予測を行い、実績と比較する事でプロジェクトに起こる予兆を検出することを特徴とするプロジェクト変調検出装置。
【請求項７】
第一のバグ摘出データから予測したい時点より前のバグ摘出データを入力する手段と、
過去プロジェクト情報と計画情報を読み込む手段と、
計画情報に従った今後のバグ摘出数を予測する手段と、
第二のバグ摘出データを入力し、前記予測する手段で計算された予測値と入力された実績値を比較して変調の検出を行なう手段と、
その結果を出力する手段と
を備えることを特徴とする請求項６記載のプロジェクト変調検出装置。
【請求項８】
前記第一のバグ摘出データは、監視対象のプロジェクトの所定の時点から予測を行うまでに得られているバグ摘出数に関するデータであり、
前記第二のバグ摘出データは、第一のバグ摘出データ以降の監視対象のデータであり、
前記過去プロジェクト情報は、過去プロジェクトデータのバグ摘出数に関する情報であり、
前記計画情報は、プロジェクト立案時に計画された、あるいは途中で修正されたバグ摘出計画値であり、
前記第一のバグ摘出データ、前記過去プロジェクト情報、前記計画情報を利用して、計画値に従ったバグの摘出数の予測を行うことを特徴とする請求項７記載のプロジェクト変調検出装置。
【請求項９】
過去プロジェクトのデータを一度適合するモデルにフィットさせてから利用することを特徴とする請求項６から８のいずれか１項に記載のプロジェクト変調検出装置。
【請求項１０】
予測の際に複数の過去プロジェクトを組み合わせることを特徴とする請求項６から９のいずれか１項に記載のプロジェクト変調検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発におけるプロジェクト変調検出方法、ソフトウェア開発におけるプロジェクト変調検出装置に関する。特に、テスト工程におけるバグ摘出数の予測と実績の差から開発に発生する変調を検出するためのソフトウェア開発におけるプロジェクト変調検出方法、ソフトウェア開発におけるプロジェクト変調検出装置に関する。
【背景技術】
【０００２】
大規模・複雑化するソフトウェア開発において、プロジェクトに発生する変調（特に問題の発生など負の変調）をより早く検出し、早期に対策を講じる事は、対策コストの削減、プロジェクト失敗リスクの軽減などの観点から重要である。これは、ソフトウェア開発における開発工程とテスト工程（期間が重複する事もある）の両工程に通じる。
【０００３】
テスト工程の役割のひとつに、開発したソフトウェアに対して試験を行い、バグを抽出し修正する作業をバグ抽出が収束するまで行うという事がある。これは、バグの摘出数の収束が品質管理の観点から重要なためである。
【０００４】
横軸にテスト日数やテスト工数、縦軸にバグの摘出総数をとった曲線は、一般に信頼度成長曲線（例えば、非特許文献１参照）などと呼ばれ、テスト工程における信頼性の重要な１つとして利用されている。信頼度成長曲線は、一般にはバグの収束の判定に利用され、バグ摘出の実績値を信頼度成長曲線モデルへフィットさせ、曲線が収束している場合にはバグの摘出が完了したとみなす。
【０００５】
信頼度成長曲線から、テスト工程に発生する変調を検出する技術が公知技術から容易に類推される。
【０００６】
まず、テスト工程の途中で実績値とモデルをフィットさせて今後の摘出数を予測する事で、計画通りに収束しそうかを判定する技術が考えられる。
【０００７】
次に、計画値と実績値を比較して、その差が大きな場合に変調として検出する技術が考えられる。
【０００８】
関連技術として、ソフトウェアの試験工程および出荷時における信頼度を評価する上で、信頼性評価結果を有効に活用する技術が提案されている。その構成は、情報処理装置に日々得られる合格試験項目数、検出バグ数などを入力する。バグの累積曲線を信頼性評価し、最適な評価モデルを算出してその時点における予測バグ総数、バグの検出率などの信頼度指標を表示する。試験項目数に関しても信頼性評価して、潜在的な予測バグ総数とそれらを検出するための試験項目数の関係を提示する（例えば、特許文献１参照）。
【特許文献１】特開平０８−０７６９９１号公報
【非特許文献１】山田茂．ソフトウェア信頼性モデル−基礎と応用−．日科技連出版社，１９９４．
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述の関連技術は、現在までのデータから予測（基準値）を計算し、計画値を基準値の生成に利用するという考え方は無く、計画値・過去情報・現在までのデータの全てが基準値を作成するために利用され，実績値と比較する事で予測をすることは困難であった。
【００１０】
そして、テスト工程序盤のデータから信頼度成長曲線モデルをフィットさせて予測をした場合には、予測精度が悪いという問題点があった。その理由は、テスト工程序盤だけでは十分なデータが得られていないために、曲線がデータに過適合してしまうためである。十分なデータを得るためには、テスト工程終盤まで待つ必要があるため、バグの摘出実績から早期に変調を検出することが難しくなるからである。
【００１１】
また、計画値と実績値を比較する場合、検出が遅くなってしまう可能性があるという問題点があった。その理由は、計画値は工程の途中の値を設定する事は難しく、一般にテスト工程の各部分工程終了毎にしか設定されないため、工程の途中で変調を検出する事ができないためである。
【００１２】
本発明は、以上のような課題を解決するためになされたもので、ソフトウェア開発におけるバグ摘出数を計画値および過去プロジェクトのバグ摘出実績をもとに予測し、実績値と比較することでソフトウェア開発に発生する変調を検出するプロジェクト変調検出方法およびプロジェクト変調検出装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明のプロジェクト変調検出方法は、過去プロジェクトを使って計画値を達成するバグ摘出数の予測を行い、実績と比較する事でプロジェクトに起こる予兆を検出することを特徴とする。
【００１４】
また、本発明のプロジェクト変調検出装置は、過去プロジェクトを使って計画値を達成するバグ摘出数の予測を行い、実績と比較する事でプロジェクトに起こる予兆を検出することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、過去情報を利用する事で曲線の過適合を避け、さらに計画からのずれを逐次的に監視することによって、早期にプロジェクトの変調を検出することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
［第１の実施の形態］
図１を参照すると、本発明の第１の実施の形態に関わるプロジェクト変調検出装置１００は、過去プロジェクト情報記憶装置１１０と、計画情報記憶装置１２０と、バグ摘出数予測手段１３０と、変調検出手段１４０と変調出力手段１５０とを備えている。また、プロジェクト変調検出装置１００は、バグ摘出データ１６０とバグ摘出データ１７０を入力し、プロジェクト変調検出手段で検出された変調検出結果１８０を出力する。プロジェクト変調検出装置１００は、一般の情報処理装置と同様なＣＰＵ、メモリ、入出力部を備える。ＣＰＵにより装置を制御し、メモリにデータを展開、記憶し、入出力部でデータの取得や出力を行う。
【００１７】
バグ摘出データ１６０は、監視対象のプロジェクトのテスト工程開始から予測を行うまでに得られているバグ摘出数に関するデータで、[xi, ti] であり、tiはテスト日数やテスト工数を表し、xiは対応するバグ摘出総数を表す。xiは、単純にバグ摘出総数である必要は無く、例えばプロジェクトの規模で割った、規模辺りのバグ摘出総数であったり、バグ摘出総数に何らかの演算を施して得られる量であってもかまわない。
【００１８】
バグ摘出データ１７０は、バグ摘出データ１６０と同様の形式のデータであるが、バグ摘出データ１６０が予測を行うための学習に用いられるのと比較して、バグ摘出データ１７０はバグ摘出データ１６０以降の監視対象のデータである点で異なる。バグ摘出データ１７０は、テスト日数やテスト工数毎に逐次的に入力して監視を行う事も可能である。
【００１９】
過去プロジェクト情報記憶装置１１０には、過去プロジェクトデータのバグ摘出数に関する情報が記憶されている。以下では、j番目の過去プロジェクトのデータを、[dji, tji]と表記する。
【００２０】
計画情報記憶装置１２０には、プロジェクト立案時に計画された、あるいは途中で修正されたバグ摘出計画値が記憶されている。計画値とは、例えばテスト工程の部分工程の終り毎に、どの程度の期間や工数でどの程度のバグを摘出しているかという値の事である。
【００２１】
バグ摘出数予測手段１３０には、バグ摘出データ１６０、過去プロジェクト情報、計画情報を利用して、計画値に従ったバグの摘出数の予測を行うための手段が記憶されている。これは、例えば過去プロジェクトにおけるバグ摘出データのうち、バグ摘出データ１６０とよくフィットし、計画情報付近へ収束する過去プロジェクトをひとつ選択し、バグ摘出データ１６０以降の摘出数は、過去プロジェクトの実績値をもとに予測する方法が考えられる。
【００２２】
変調検出手段１４０は、バグ摘出数予測手段１３０で予測された予測値およびバグ摘出データ１７０を比較して変調を検出するための手段である。これは、例えば予測値と実測値のずれがある閾値を超えた場合に変調を検出する方法が考えられる。また例えば、予測値と実測値の残差時系列に対して、時系列変化点検出技術を適用し、変化点を変調として検出する方法も考えられる。
【００２３】
計画に従った予測値と実績値が異なる場合、実績値が小さい場合には、例えばテスト不足によるバグ摘出漏れが懸念され、実績値が大きい場合には、例えば開発工程における品質が悪かった事が懸念される。また、両者とも計画段階におけるバグ摘出計画に不備があった可能性があり、この場合には計画へフィードバックを返す事が可能となる。
【００２４】
変調出力手段１５０は、変調検出手段１４０で検出された変調を出力する。出力先は、プロジェクト変調検出装置１００に接続されたディスプレイ等の出力装置であっても良いし、ネットワークを介して接続された出力装置や端末装置であってもよい。
【００２５】
図２を参照すると、プロジェクト変調検出装置１００は、まずバグ摘出データ１６０から予測したい時点より前のバグ摘出データを入力し（Ｓ１００）、また過去プロジェクト情報記憶装置１１０および計画情報記憶装置１２０から、過去プロジェクト情報と計画情報を読み込む（Ｓ１０１）。
【００２６】
次に、バグ摘出数予測手段１３０によって、計画情報に従った今後のバグ摘出数を予測する（Ｓ１０２）。予測は逐次的に行ってもよいし、例えばテスト工程の部分工程が終了する毎など、事前に決められたルールに従って予測を修正してもよい。
【００２７】
次に、バグ摘出データ１７０を入力し（Ｓ１０３）、上記のステップＳ１０２で計算された予測値と入力された実績値を変調検出手段１４０によって比較して変調の検出を行ない（Ｓ１０４）、その結果を変調出力手段１５０によって出力する（Ｓ１０５）。プロジェクトが終了した場合には処理は終了し、プロジェクトが続いている場合には、変調検出の流れ（Ｓ１０３からＳ１０５）を逐次的に行なう。
【００２８】
［第２の実施の形態］
図３を参照すると、本発明の第２の実施の形態に関わるプロジェクト変調検出装置２００は、図１に示した第１の実施の形態に関わるプロジェクト変調検出装置１００と比較して、過去プロジェクト情報記憶装置１１０に代えて過去プロジェクト情報記憶装置２１０を有する点および過去プロジェクトモデル学習装置２２０が接続されている点で相違する。
【００２９】
過去プロジェクトモデル学習装置２２０は、過去プロジェクトに対して適合する信頼度成長曲線モデルを学習する装置である。
【００３０】
信頼度成長曲線モデルは、例えば（１）で示される指数形非同次ポアソン過程モデル、（２）で示されるロジスティック曲線モデル、（３）で示されるゴンペルツ曲線モデルなど様々なモデルおよびそのパラメータの学習方法が提案されている。
【００３１】
【数１】
2009187288.tif 000003
【００３２】
【数２】
2009187288.tif 000004
【００３３】
【数３】
2009187288.tif 000005
【００３４】
過去プロジェクト情報記憶装置２１０には、過去プロジェクトモデル学習装置２２０で学習されたモデルのパラメータおよびプロジェクト規模、テスト日数あるいは工数などが記憶される。記憶された過去プロジェクトモデルを（４）で表記する。pは記憶されている過去プロジェクトモデルのインデックスとする。
【００３５】
【数４】
2009187288.tif 000006
【００３６】
本実施の形態のプロジェクト変調検出装置２００の動作は、図２のステップＳ１０１において読み込まれる過去プロジェクト情報が、過去プロジェクトモデル学習装置２２０で学習されたモデルに関する情報である事を除き、図１に示した第１の実施の形態に関わるプロジェクト変調検出装置１００の動作と同じである。
【００３７】
過去のプロジェクトは様々な要因によって、信頼度成長曲線モデルからはずれが生じているが、本実施の形態のように一度モデルを適合させる事によって、過去プロジェクトに特有のノイズを除去し、モデルに沿った予測をする事が可能である。
【００３８】
［第３の実施の形態］
図４を参照すると、本発明第２の実施の形態に関わるプロジェクト変調検出装置３００は、図３に示した第２の実施の形態に関わるプロジェクト変調検出装置２００と比較して、バグ摘出数予測手段１３０に代えてバグ摘出数予測手段３１０を有する点で相違する。過去プロジェクトの重ね合わせとして現在のプロジェクトを予測する。
【００３９】
バグ摘出数予測手段３１０は、バグ摘出データ１６０を入力し、また計画値情報記憶装置１２０から計画値情報を読み込みんで、バグ摘出データ１６０に適合しつつ計画値を達成するように、過去プロジェクトから学習されたモデルを複数組み合わせる事で予測を行う。組み合わせ方は、例えば（４）のように記憶された過去プロジェクトモデルの加算および減算で表現される曲線の組み合わせを網羅的に計算し、最も計画値およびバグ摘出データ１６０と適合する組み合わせを選ぶ方法が考えられる。また、別の一例を示すと、予測曲線を（５）のように過去プロジェクトモデルの線形結合として表現し、結合係数wpを計算する方法も考えられる。結合係数の計算方法の一例としては、バグ摘出データ１６０および計画値情報と（５）で表現される曲線の間に任意の損失関数（例えば２乗誤差など）を定義し、それが最小となるようにwpを求める事で計算可能である。
【００４０】
【数５】
2009187288.tif 000007
【００４１】
本実施の形態のプロジェクト変調検出装置３００の動作は、図２のステップＳ１０１において読み込まれる過去プロジェクト情報が、過去プロジェクトモデル学習装置２２０で学習されたモデルに関する情報である事および、ステップＳ１０２で計算される予測がバグ摘出数予測手段３１０で計算される事を除き、図１に示した第１の実施の形態に関わるプロジェクト変調検出装置１００の動作と同じである。
【００４２】
なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々変更実施が可能である。例えば、プロジェクト変調検出装置の機能を実現するためのプログラムをプロジェクト変調検出装置に読込ませて実行することによりプロジェクト変調検出装置の機能を実現する処理を行ってもよい。さらに、そのプログラムは、コンピュータ読み取り可能な記録媒体であるＣＤ−ＲＯＭまたは光磁気ディスクなどを介して、または伝送媒体であるインターネット、電話回線などを介して伝送波により他のコンピュータシステムに伝送されてもよい。また、追加の装置により機能が分散されて実現される形態も本発明の範囲内である。
【図面の簡単な説明】
【００４３】
【図１】本発明の第１の実施の形態に関わるプロジェクト変調検出装置の構成を示すブロック図である。
【図２】本発明の第１の実施の形態に関わるプロジェクト変調検出装置の処理例を示すフローチャートである。
【図３】本発明の第２の実施の形態に関わるプロジェクト変調検出装置の構成を示すブロック図である。
【図４】本発明の第３の実施の形態に関わるプロジェクト変調検出装置の構成を示すブロック図である。
【符号の説明】
【００４４】
１００    プロジェクト変調検出装置
１１０    過去プロジェクト情報記憶装置
１２０    計画情報記憶装置
１３０    バグ摘出数予測手段
１４０    変調検出手段
１５０    変調出力手段
１６０、１７０    バグ摘出データ
１８０    変調検出結果
【図１】
2009187288.tif 000008
【図２】
2009187288.tif 000009
【図３】
2009187288.tif 000010
【図４】
2009187288.tif 000011