(57)【要約】【課題】ソフトウェア管理におけるバグ密度の指標値および管理限界を適正化する。【解決手段】各過去開発ソフトウェアのバグ密度の基礎指標値および基礎管理限界の上下限値をそれぞれ算出して基礎Ｕ管理図に描画し、過去開発ソフトウェアの開発難易度と新規開発ソフトウェアの開発難易度の比から補正後の開発規模を算出し、先の基礎Ｕ管理図から当該補正後の開発規模に対応する基礎指標値および基礎管理限界の上下限値を新規開発ソフトウェア用の指標値および管理限界の上下限値として算出する。これにより、新規開発ソフトウェアの難易度に応じた指標値および管理限界を求めることができる。【選択図】図１
2016035615.tif 000002
【特許請求の範囲】
【請求項１】
新規開発ソフトウェアと当該新規開発ソフトウェアに類似した過去開発ソフトウェアのそれぞれについて、開発者のスキルと開発者に割り当てた業務に必要なスキルとのマッチング結果から開発スキルレベルを算出し、開発対象ソフトウェアの機能総量に対する工数、開発期間、および前記開発スキルレベルの比で開発難易度を表した式を用いて開発難易度を算出する開発難易度算出手段と、
前記過去開発ソフトウェアの開発難易度と前記新規開発ソフトウェアの開発難易度の差に基づいて前記新規開発ソフトウェアの開発規模を補正する補正手段と、
過去開発ソフトウェアのバグ数と開発規模から算出した開発規模に対するバグ数であるバグ密度の指標値および管理限界の上下限値を用いて、前記新規開発ソフトウェアの補正後の開発規模に対応するバグ密度の指標値および管理限界の上下限値を算出する指標値・管理限界算出手段と、
を有することを特徴とするソフトウェア品質基準計算装置。
【請求項２】
前記補正手段は、前記過去開発ソフトウェアの開発難易度と前記新規開発ソフトウェアの開発難易度の比を前記新規開発ソフトウェアの開発規模に積算することにより、前記新規開発ソフトウェアの開発規模を補正することを特徴とする請求項１に記載のソフトウェア品質基準計算装置。
【請求項３】
コンピュータによって実行されるソフトウェア品質基準計算方法であって、
各過去開発ソフトウェアのバグ数と開発規模から開発規模に対するバグ数であるバグ密度の指標値および管理限界の上下限値をそれぞれ算出するステップと、
新規開発ソフトウェアと当該新規開発ソフトウェアに類似した過去開発ソフトウェアそれぞれについて、各開発者のスキルと各開発者に割り当てた業務に必要なスキルとのマッチング結果から開発スキルレベルを算出し、開発対象ソフトウェアの機能総量に対する工数、開発期間、および前記開発スキルレベルの比で開発難易度を表した式を用いて開発難易度を算出するステップと、
前記過去開発ソフトウェアの開発難易度と前記新規開発ソフトウェアの開発難易度の差に基づいて前記新規開発ソフトウェアの開発規模を補正するステップと、
過去開発ソフトウェアのバグ数と開発規模から算出した開発規模に対するバグ数であるバグ密度の指標値および管理限界の上下限値を用いて、前記新規開発ソフトウェアの補正後の開発規模に対応するバグ密度の指標値および管理限界の上下限値を算出するステップと、
を有することを特徴とするソフトウェア品質基準計算方法。
【請求項４】
前記新規開発ソフトウェアの開発規模を補正するステップは、前記過去開発ソフトウェアの開発難易度と前記新規開発ソフトウェアの開発難易度の比を前記新規開発ソフトウェアの開発規模に積算することにより、前記新規開発ソフトウェアの開発規模を補正することを特徴とする請求項３に記載のソフトウェア品質基準計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの品質基準を計算する技術に関する。
【背景技術】
【０００２】
開発したソフトウェアの品質を分析する場合、開発規模やステップ数に対するバグ数であるバグ密度が一般的に用いられる。バグ密度の指標値を設定し、その指標値の上方と下方に管理限界をそれぞれ設け、バグ密度がその範囲内か範囲外かにより品質の良し悪しを判断する。
【０００３】
このような指標値および管理限界は、過去の実績や担当者の経験により感覚的に設定されることが多い。例えば、特許文献１では過去開発の実績から設定する方法を開示し、特許文献２では設計書の難易度から設定する方法を開示している。また、Ｕ管理図を用いた管理方法も考えられる。Ｕ管理図とは、一般的にはサンプルサイズが変動する場合に単位時間当りの発生数を評価する計数値管理図である。ソフトウェア管理の場合、バグ密度の平均値や指標値に対して管理限界から外れる確率が約０．３％（＝係数ｋ）であるという考え方で作成する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２２５２２７号公報
【特許文献２】特開２０１２−１７３８２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、新たな開発内容は過去の開発内容と異なるため、過去開発の実績のみに基づいて新規開発用の指標値および管理限界を設定することは適切ではない。また、ソフトウェア開発の難易度を考慮する場合、開発規模が小さい際には難易度が概ね低くなり、それにより指標値が低く設定されるが、管理限界を考慮していないため、１件のバグによるバグ密度の変動幅が大きくなってしまう。更に、Ｕ管理図を用いる場合、開発規模のみが考慮されているため、単純な開発内容が複数ある場合にはバグを検出することが難しい。
【０００６】
さらに、ソフトウェア開発の難易度は、開発規模だけでなく、ソフトウェア複雑性、品質、生産性、工数、開発期間、担当者スキル等が互いに複雑に関連する。ソフトウェア開発時の見積り方法としては、「類推法」「積み上げ法」「パラメトリックス法」の３つの方法が一般的である。ソフトウェア開発の難易度に関する要素を考慮する方法として、パラメトリックス法をベースにソフトウェアの規模をＦＰ（Ｆｕｎｃｔｉｏｎ  Ｐｏｉｎｔ）試算法で見積もるＳＬＩＭ（Ｓｏｆｔｗａｒｅ  Ｌｉｆｅ  Ｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔ）がある。しかしながら、ＳＬＩＭでは、ソフトウェア開発に影響の高い担当者スキルに関する考慮が抜けてしまっている。
【０００７】
本発明は、上記事情を鑑みてなされたものであり、ソフトウェア管理におけるバグ密度の指標値および管理限界を適正化することを目的とする。
【課題を解決するための手段】
【０００８】
第１の本発明に係るソフトウェア品質基準計算装置は、新規開発ソフトウェアと当該新規開発ソフトウェアに類似した過去開発ソフトウェアのそれぞれについて、開発者のスキルと開発者に割り当てた業務に必要なスキルとのマッチング結果から開発スキルレベルを算出し、開発対象ソフトウェアの機能総量に対する工数、開発期間、および前記開発スキルレベルの比で開発難易度を表した式を用いて開発難易度を算出する開発難易度算出手段と、前記過去開発ソフトウェアの開発難易度と前記新規開発ソフトウェアの開発難易度の差に基づいて前記新規開発ソフトウェアの開発規模を補正する補正手段と、過去開発ソフトウェアのバグ数と開発規模から算出した開発規模に対するバグ数であるバグ密度の指標値および管理限界の上下限値を用いて、前記新規開発ソフトウェアの補正後の開発規模に対応するバグ密度の指標値および管理限界の上下限値を算出する指標値・管理限界算出手段と、を有することを特徴とする。
【０００９】
上記ソフトウェア品質基準計算装置において、前記補正手段は、前記過去開発ソフトウェアの開発難易度と前記新規開発ソフトウェアの開発難易度の比を前記新規開発ソフトウェアの開発規模に積算することにより、前記新規開発ソフトウェアの開発規模を補正することを特徴とする。
【００１０】
第２の本発明に係るソフトウェア品質基準計算方法は、コンピュータによって実行されるソフトウェア品質基準計算方法であって、各過去開発ソフトウェアのバグ数と開発規模から開発規模に対するバグ数であるバグ密度の指標値および管理限界の上下限値をそれぞれ算出するステップと、新規開発ソフトウェアと当該新規開発ソフトウェアに類似した過去開発ソフトウェアそれぞれについて、各開発者のスキルと各開発者に割り当てた業務に必要なスキルとのマッチング結果から開発スキルレベルを算出し、開発対象ソフトウェアの機能総量に対する工数、開発期間、および前記開発スキルレベルの比で開発難易度を表した式を用いて開発難易度を算出するステップと、前記過去開発ソフトウェアの開発難易度と前記新規開発ソフトウェアの開発難易度の差に基づいて前記新規開発ソフトウェアの開発規模を補正するステップと、過去開発ソフトウェアのバグ数と開発規模から算出した開発規模に対するバグ数であるバグ密度の指標値および管理限界の上下限値を用いて、前記新規開発ソフトウェアの補正後の開発規模に対応するバグ密度の指標値および管理限界の上下限値を算出するステップと、を有することを特徴とする。
【００１１】
上記ソフトウェア品質基準計算方法において、前記新規開発ソフトウェアの開発規模を補正するステップは、前記過去開発ソフトウェアの開発難易度と前記新規開発ソフトウェアの開発難易度の比を前記新規開発ソフトウェアの開発規模に積算することにより、前記新規開発ソフトウェアの開発規模を補正することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ソフトウェア管理におけるバグ密度の指標値および管理限界を適正化することができる。
【図面の簡単な説明】
【００１３】
【図１】品質基準計算装置の機能ブロック構成を示す図である。
【図２】品質基準計算装置の処理フローを示す図である。
【図３】基礎Ｕ管理図の例を示す図である。
【図４】技術者のスキルレベルの定義の例を示す図である。
【図５】技術者のスキルレベルと割り当て状況に応じた開発者スキル値を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施する一実施の形態について図面を用いて説明する。
【００１５】
図１は、ソフトウェア開発で用いる品質基準計算装置１の機能ブロック構成を示す図である。この品質基準計算装置１は、開発者のスキルレベルを含む、過去開発内容と新規開発内容を考慮して新規開発ソフトウェア用の指標値および管理限界を計算する。なお、本実施例においてソフトウェアとは、コンピュータの動作に関するプログラムをいう。
【００１６】
本実施例において、品質基準計算装置１は、過去開発データ記憶部１１と、新規開発データ記憶部１２と、基礎Ｕ管理図生成部１３と、過去開発難易度算出部１４と、新規開発難易度算出部１５と、補正後開発規模算出部１６と、指標値・管理限界算出部１７と、を備える。品質基準計算装置１が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは品質基準計算装置１が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。
【００１７】
過去開発データ記憶部１１は、過去に開発された各ソフトウェアの分析実績データおよびプログラム関連データを記憶しておく機能部である。本実施例では、過去の開発時に発生したバグ数、過去の開発規模、過去にソフトウェアを開発したときの工数（人月）、開発時間（月）、機能総量（ＦＰ）、およびソフトウェア開発者のスキルを記憶する。工数、開発時間、機能総量は、既存のＳＬＩＭを用いるときに利用するものと同様である。ソフトウェア開発者のスキルについては後述する。
【００１８】
新規開発データ記憶部１２は、新規に開発されたソフトウェアのプログラム関連データを記憶しておく機能部である。本実施例では、新規の開発規模、新規にソフトウェアを開発したときの工数、開発時間、機能総量、およびソフトウェア開発者のスキルを記憶する。
【００１９】
基礎Ｕ管理図生成部１３は、過去に開発された各ソフトウェアの開発規模およびバグ数を用いてバグ密度の指標値および管理限界の上下限値をそれぞれ算出し、Ｕ管理図に描画して基礎Ｕ管理図としてメモリに記憶する機能部である。なお、Ｕ管理図とは、ソフトウェアの開発規模に応じたバグ密度を管理するための管理図である。
【００２０】
過去開発難易度算出部１４は、過去にソフトウェアを開発したときの工数、開発時間、機能総量、およびソフトウェア開発者のスキルから、過去の開発難易度を算出する機能部である。
【００２１】
新規開発難易度算出部１５は、新規にソフトウェアを開発したときの工数、開発時間、機能総量、およびソフトウェア開発者のスキルから、新規開発ソフトウェアの開発難易度を算出する機能部である。
【００２２】
補正後開発規模算出部１６は、過去に開発されたソフトウェアの開発難易度と新規に開発されたソフトウェアの開発難易度の差から、新規開発ソフトウェア用の補正後の開発規模を算出する機能部である。ここで補正後と表現している理由は、新規開発ソフトウェア用の開発規模は新規開発データ記憶部１２に保存しており、既存の開発規模を補正前として位置付けているからである。
【００２３】
指標値・管理限界算出部１７は、上記メモリから基礎Ｕ管理図を読み出して、上記補正後の開発規模に対応する指標値および管理限界の上下限値を新規開発ソフトウェア用として算出する機能部である。
【００２４】
次に、本実施の形態に係る品質基準計算装置１の動作について説明する。図２は、品質基準計算装置１の処理フローを示す図である。
【００２５】
最初に、ステップＳ１において、開発社，ＯＳ，プログラム種別，利用されたＡＰＩおよび関数等に基づき、複数の過去開発ソフトウェアの中から新規開発ソフトウェアに類似するものを選定する。
【００２６】
続いて、ステップＳ２において、基礎Ｕ管理図生成部１３は、過去開発データ記憶部１１から、各過去開発ソフトウェアｉの開発規模ｎｉとバグ数ｃｉを取得し、過去開発の実績に基づく基礎Ｕ管理図を生成する。具体的には、式（１）から基礎指標値ｕ（ｕの上に“−”）を算出し、式（２）から基礎管理限界ｕｌ（ｕの上に“−”）を算出する。そして、横軸を開発規模とし縦軸をバグ密度とするＵ管理図上にプロットすることにより基礎Ｕ管理図を生成する。
【００２７】
【数１】
2016035615.tif 000003
【００２８】
【数２】
2016035615.tif 000004
ｋは、上限・下限の幅を決定するための係数であり、開発内容に応じて任意に設定する。また、過去の開発規模ｎとは、例えば設計桁数である。なお、Ｕ管理図，指標値，管理限界の定義等については、日本工業規格のJIS Z9020-1：2011(ISO 7870-1：2007)（http://kikakurui.com/z9/Z9020-1-2011-01.html）、同規格のJIS Z9021 : 1998（http://kikakurui.com/z9/Z9021-1998-01.html）に詳しい。
【００２９】
続いて、ステップＳ３において、過去開発難易度算出部１４は、過去開発データ記憶部１１から、新規開発ソフトウェアに類似した過去開発ソフトウェアの工数、開発時間、機能総数、およびソフトウェア開発者のスキルを取得し、以下の式（３）を用いて過去開発ソフトウェアの開発難易度を算出する。βは定数である。
【００３０】
【数３】
2016035615.tif 000005
なお、過去開発ソフトウェアが複数の場合には、各過去開発ソフトウェアの開発難易度の平均値を過去開発ソフトウェアの開発難易度とする。
【００３１】
続いて、ステップＳ４において、新規開発難易度算出部１５は、新規開発データ記憶部１２から、新規開発ソフトウェアの工数、開発時間、機能総数、およびソフトウェア開発者のスキルを取得し、上記の式（３）を用いて新規開発ソフトウェアの開発難易度を算出する。
【００３２】
続いて、ステップＳ５において、補正後開発規模算出部１６は、以下の式（４）を用いて新規開発ソフトウェア用の補正後の開発規模を算出する。具体的には、新規開発ソフトウェア用の開発難易度を過去開発ソフトウェアの開発難易度で除した値を新規開発ソフトウェアの開発規模に積算した値を補正後の開発規模とする。
【００３３】
【数４】
2016035615.tif 000006
また、比を計算するのに代えて差分を計算してもよい。
【００３４】
最後に、ステップＳ６において、指標値・管理限界算出部１７は、ステップＳ２の基礎Ｕ管理図を参照し、図３に示すように、補正後の開発規模に対応する基礎指標値および基礎管理限界の上下限値を新規開発ソフトウェア用の指標値および管理限界の上下限値として決定する。
【００３５】
次に、開発スキルレベルの指標化について説明する。
【００３６】
本実施の形態では、過去開発ソフトウェア及び新規開発ソフトウェアの開発難易度を算出する際に、技術者のスキルレベルを指標化した開発スキルレベルを用いる。
【００３７】
まず、開発スキルレベルの指標化に際して、ソフトウェア開発における技術者のスキルレベルを定義しておく。図４に、技術者のスキルレベルの定義の例を示す。スキルレベルの定義には、例えば、独立行政法人情報処理推進機構のソフトウェア・エンジニアリング・センターのスキル基準を用いることができる。
【００３８】
定義したスキルレベルを用いて技術者のスキルレベルとその技術者に割り当てた担当業務に必要なスキルレベルを特定し、技術者のスキルレベルと割り当てた担当業務に必要なスキルレベルのマッチング結果から担当者単位で開発スキル値を算出し、各担当者ごとに算出した開発スキル値の平均を求めて開発スキルレベルとする。具体的には、技術者のスキルレベルをｘ、担当業務に必要なスキルレベルをｙとすると、次式（５）により、開発スキルレベルＳを算出する。
【００３９】
【数５】
2016035615.tif 000007
ここで、Ｔ１，Ｔ２は定数である。例えば、Ｔ１＝１．０、Ｔ２＝１０とすると、技術者のスキルレベルと割り当て状況に応じた開発者スキル値は図５に示すようになる。
【００４０】
以上より、本実施の形態によれば、各過去開発ソフトウェアのバグ密度の基礎指標値および基礎管理限界の上下限値をそれぞれ算出して基礎Ｕ管理図に描画し、過去開発ソフトウェアの開発難易度と新規開発ソフトウェアの開発難易度の比から補正後の開発規模を算出し、先の基礎Ｕ管理図から当該補正後の開発規模に対応する基礎指標値および基礎管理限界の上下限値を新規開発ソフトウェア用の指標値および管理限界の上下限値として算出することにより、新規開発ソフトウェアの難易度に応じた指標値および管理限界を求めることができる。
【００４１】
本実施の形態によれば、過去開発ソフトウェア及び新規開発ソフトウェアの開発難易度を求めるときに、開発者のスキルと開発者に割り当てた業務に必要なスキルとのマッチング結果から開発スキルレベルを算出し、工数、開発期間、機能総量、および開発スキルレベルから開発難易度を算出することにより、ソフトウェア開発に影響の高い開発者スキルを考慮してソフトウェアの開発難易度が算出されるので、より精度よく指標値および管理限界を求めることができる。
【符号の説明】
【００４２】
１…品質基準計算装置
１１…過去開発データ記憶部
１２…新規開発データ記憶部
１３…基礎Ｕ管理図生成部
１４…過去開発難易度算出部
１５…新規開発難易度算出部
１６…補正規模算出部
１７…指標値・管理限界算出部
【図１】
2016035615.tif 000008
【図２】
2016035615.tif 000009
【図３】
2016035615.tif 000010
【図４】
2016035615.tif 000011
【図５】
2016035615.tif 000012