(57)【要約】【課題】設計書の複雑さに応じた品質目標値を算出する。【解決手段】設計書の品質目標値を算出する品質目標値算出装置であって、設計書を解析し、当該設計書に関する基本データを抽出する基本データ抽出手段３０と、基本データに基づいて設計書の複雑さを示す指標値である複雑度の複数の要素を算出する要素算出手段４０と、複数の要素を用いて設計書の複雑度を算出する複雑度算出手段５０と、複雑度算出手段が算出した複雑度を用いて、設計書の品質目標値を算出する目標値算出手段６０と、を有する。【選択図】図１
2012173829.tif 000002
【特許請求の範囲】
【請求項１】
設計書の品質目標値を算出する品質目標値算出装置であって、
前記設計書を解析し、当該設計書に関する基本データを抽出する基本データ抽出手段と、
前記基本データに基づいて、前記設計書の複雑さを示す指標値である複雑度の複数の要素を算出する要素算出手段と、
前記複数の要素を用いて前記設計書の複雑度を算出する複雑度算出手段と、
前記複雑度算出手段が算出した複雑度を用いて、前記設計書の品質目標値を算出する目標値算出手段と、を有すること
を特徴とする品質目標値算出装置。
【請求項２】
請求項１記載の品質目標値算出装置であって、
前記複数の要素は、前記設計書の読み難さを示す指標値である難読度と、前記設計書の理解し難さを示す指標値である難解度であり、
前記要素算出手段は、
前記基本データを用いて前記難読度を算出する難読度算出手段と、
前記基本データを用いて前記難解度を算出する難解度算出手段と、を有し、
前記複雑度算出手段は、前記難読度および前記難解度を用いて前記複雑度を算出すること、
を特徴とする品質目標値算出装置。
【請求項３】
請求項１または請求項２記載の品質目標値算出装置であって、
前記品質目標値には、前記設計書に対する目標バグ密度と、前記設計書のレビューに要する目標レビュー密度とを含み、
複雑度と目標バグ密度との関係を示す第１の関数と、複雑度と目標レビュー密度との関係を示す第２の関数とを記憶する記憶手段を、さらに有し、
前記目標値算出手段は、前記第１の関数を用いて前記複雑度算出手段が算出した複雑度に対応する目標バグ密度を算出するとともに、前記第２の関数を用いて前記複雑度算出手段が算出した複雑度に対応する目標レビュー密度を算出すること
を特徴とする品質目標値算出装置。
【請求項４】
設計書の品質目標値を算出する品質目標値算出方法であって、
情報提示装置は、
前記設計書を解析し、当該設計書に関する基本データを抽出し、基本データ記憶部に記憶する基本データ抽出ステップと、
前記基本データに基づいて、前記設計書の複雑さを示す指標値である複雑度の複数の要素を算出する要素算出ステップと、
前記複数の要素を用いて前記設計書の複雑度を算出する複雑度算出ステップと、
前記複雑度算出ステップが算出した複雑度を用いて、前記設計書の品質目標値を算出する目標値算出ステップと、を行うこと
を特徴とする品質目標値算出方法。
【請求項５】
請求項４記載の品質目標値算出方法であって、
前記複数の要素は、前記設計書の読み難さを示す指標値である難読度と、前記設計書の理解し難さを示す指標値である難解度であり、
前記要素算出ステップは、前記基本データを用いて前記難読度を算出するとともに、前記基本データを用いて前記難解度を算出し、
前記複雑度算出ステップは、前記難読度および前記難解度を用いて前記複雑度を算出すること、
を特徴とする品質目標値算出方法。
【請求項６】
請求項４または請求項５記載の品質目標値算出方法であって、
前記品質目標値には、前記設計書に対する目標バグ密度と、前記設計書のレビューに要する目標レビュー密度とを含み、
複雑度と目標バグ密度との関係を示す第１の関数と、複雑度と目標レビュー密度との関係を示す第２の関数とを記憶する記憶部を、さらに有し、
前記目標値算出ステップは、前記第１の関数を用いて前記複雑度算出ステップで算出した複雑度に対応する目標バグ密度を算出するとともに、前記第２の関数を用いて前記複雑度算出ステップで算出した複雑度に対応する目標レビュー密度を算出すること
を特徴とする品質目標値算出方法。
【請求項７】
請求項１から請求項３のいずれか一項に記載の品質目標値算出装置としてコンピュータを機能させるための品質目標値算出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計書の品質目標値を算出する品質目標値算出装置、品質目標値算出方法、および品質目標値算出プログラムに関する。
【背景技術】
【０００２】
従来から、ソフトウェアの開発では、設計工程で作成した設計書に対して、設計の不具合（エラー、バグ等）を次工程以降で発生させないようにするために、有識者による設計レビューが行われている。また、設計段階で十分にレビューを行い、不具合を早期に摘出するために、設計レビューおける品質目標値の研究がなされている（例えば、非特許文献１）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“設計レビュー指標値の算出”、日本科学技術連盟、ソフトウェア品質シンポジウム2008（SQiPシンポジウム)、［online］、［2011年1月7日検索］、インターネット＜http://www.juse.or.jp/software/pdf/sqip2008/ippan_01_1.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の品質目標値の決定には、有識者の経験則に基づくものや、過去の開発実績の踏襲、過去の開発実績から品質目標値を算出する方法などがある。
【０００５】
しかしながら、有識者の経験則に基づいて定めた品質目標値は、有識者毎に目標値のブレが大きく、実態と合わない品質目標値が設定されてしまう可能性がある。また、過去の開発実績から品質目標値を算出する場合であっても、設計書の内容や複雑さが考慮されていないため、実態とかけ離れた品質目標値が設定されてしまい、目標値として有効に機能しない場合がある。
【０００６】
本発明は、上記事情に鑑みてなされたものであり、本発明の目的は、設計書の複雑さに応じた品質目標値を算出する品質目標値算出装置、品質目標値算出方法、および品質目標値算出プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明は、設計書の品質目標値を算出する品質目標値算出装置であって、前記設計書を解析し、当該設計書に関する基本データを抽出する基本データ抽出手段と、前記基本データに基づいて、前記設計書の複雑さを示す指標値である複雑度の複数の要素を算出する要素算出手段と、前記複数の要素を用いて前記設計書の複雑度を算出する複雑度算出手段と、前記複雑度算出手段が算出した複雑度を用いて、前記設計書の品質目標値を算出する目標値算出手段と、を有する。
【０００８】
本発明は、設計書の品質目標値を算出する品質目標値算出方法であって、情報提示装置は、前記設計書を解析し、当該設計書に関する基本データを抽出し、基本データ記憶部に記憶する基本データ抽出ステップと、前記基本データに基づいて、前記設計書の複雑さを示す指標値である複雑度の複数の要素を算出する要素算出ステップと、前記複数の要素を用いて前記設計書の複雑度を算出する複雑度算出ステップと、前記複雑度算出ステップが算出した複雑度を用いて、前記設計書の品質目標値を算出する目標値算出ステップと、を行う。
【０００９】
また、本発明は、前記品質目標値算出装置としてコンピュータを機能させるための品質目標値算出プログラムである。
【発明の効果】
【００１０】
本発明によれば、設計書の複雑さに応じた品質目標値を算出する品質目標値算出装置、品質目標値算出方法、および品質目標値算出プログラムを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係る品質目標値算出装置の構成図である。
【図２】本実施形態の動作を示すフローチャートである。
【図３】基本データの一例を示す図である。
【図４】難読度算出規則の一例を示す図である。
【図５】難解度算出規則の一例を示す図である。
【図６】品質目標値変換規則の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１３】
図１は、本発明の実施形態に係る品質目標値算出装置の構成を示す構成図である。本実施形態の品質目標値算出装置は、設計書入力部１０と、設計書蓄積部２０と、設計書本文解析部３０と、複雑度要素解析部４０と、複雑度算出部５０と、品質目標値算出部６０と、品質目標値出力部７０とを備える。
【００１４】
設計書入力部１０は、当該品質目標値算出装置に対する入力インタフェースである。設計書蓄積部２０には、設計書入力部１０から入力された設計書が記憶される。
【００１５】
設計書本文解析部３０は、基本データ抽出部３１と、基本データ蓄積部３２とを備える。基本データ抽出部３１は  設計書蓄積部２０に記憶された設計書を解析し、当該設計書に関する基本データを抽出し、基本データ蓄積部３２に記憶する。
【００１６】
複雑度要素解析部４０は、基本データ蓄積部３２に記憶された基本データに基づいて、設計書の複雑さを示す指標値である複雑度（難易度）の複数の要素を算出する。本実施形態では、複数の要素として、設計書の読み難さを示す指標値である難読度と、設計書の理解し難さを示す指標値である難解度とを用いるものとする。図示する複雑度要素解析部４０は、基本データを用いて難読度を算出する難読度算出部４１と、基本データを用いて難解度を算出する難解度算出部４２と、変換規則管理部４３とを備える。
【００１７】
複雑度算出部５０は、複雑度要素解析部４０が算出した複数の要素（難読度、難解度）を用いて設計書の複雑度を算出する。
【００１８】
品質目標値算出部６０は、複雑度算出部５０が算出した複雑度を用いて、設計書の品質目標値を算出する。図示する品質目標値算出部６０は、品質目標値変換部６１と、品質目標値変換規則管理部６２とを備え、品質目標値変換部６１は、複雑度算出部５０が算出した複雑度を、品質目標値変換規則管理部６２の情報を用いて品質目標値に変換・算出する。
【００１９】
品質目標値出力部７０は、品質目標値算出部６０が算出した品質目標値を、ディスプレイなどの出力装置に出力する。
【００２０】
以上説明した品質目標値算出装置は、例えば、ＣＰＵと、メモリと、ＨＤＤ等の外部記憶装置と、入力装置と、出力装置とを備えた汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、ＣＰＵがメモリ上にロードされた品質目標値算出装置用のプログラムを実行することにより、品質目標値算出装置の各機能が実現される。また、品質目標値算出装置のプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【００２１】
次に、本実施形態の動作について説明する。
【００２２】
図２は、本実施形態の品質目標値算出装置の動作を示すフローチャートである。
【００２３】
まず、設計書入力部１０は、利用者が入力した設計書（ワードなどの電子ファイル）を受け付け（Ｓ１）、入力された設計書を設計書蓄積部２０に蓄積・記憶する（Ｓ２）。
【００２４】
基本データ抽出部３１は、設計書蓄積部２０に記憶された設計書を読み出し、当該設計書のページ数、文字数などの基本データを抽出し、基本データ蓄積部３２に蓄積・記憶する（Ｓ３）。基本データ抽出部３１は、形態素解析、構文解析などの自然言語処理技術を用いて、Ｓ１で入力された設計書の基本データを抽出する。
【００２５】
図３は、基本データの一例を示す。基本データは、後述する難読度および難解度の算出に用いられるものであって、設計書の内容の複雑さや難易度を推定するための定量的なドキュメント情報である。図示する例では、基本データ（データ項目）として、ページ数、文字数、文の数、見出し数、句点数、読点数、文節数（句中）、図表数、用語集の用語数、漢字数、カナ数、語彙の集中度（Ｋ特性値）、連体修飾詞（埋め込み文）の数、受動態数を用いることとする。しかしながら、基本データは、これらに限定されるものではない。
【００２６】
なお、語彙の集中度（Ｋ特性値）の一例として、本実施形態ではユールのＫを用いるものとする。この場合、文章中にｎ回表れた後の個数をｆ[ｎ]で表すと、以下のようになる。
【数１】
2012173829.tif 000003
【００２７】
ここで、ＳとＴは、以下とする。
【数２】
2012173829.tif 000004
【００２８】
基本データ抽出部３１は、抽出した各基本データを、図３に示す基本データの対応する項目・変数名の値の欄に設定する。
【００２９】
複雑度要素解析部４０の難読度算出部４１は、設計書本文解析部３０が抽出した基本データを基本データ蓄積部３２から読み出し、変換規則管理部４３を参照して難読度を算出する。また、難解度算出部４２も、基本データ蓄積部３２から基本データを読み出し、変換規則管理部４３を参照して難解度を算出する（Ｓ４）。
【００３０】
変換規則管理部４３には、難読度算出部４１が難読度を算出するためのルール（難読度算出規則）と、難解度算出部４２が難解度を算出するためのルール（難解度算出規則）とが記憶されている。
【００３１】
図４は、変換規則管理部４３で管理されている難読度算出規則の一例を示すものである。難読度算出規則は、項目と、難読度基本データと、算出方法とを備える。なお、算出方法は、図３に示す基本データの変数名を用いて表している。図４に示す例では、１ページ当たりの文字数、平均文長、平均句長、句中における文節数、漢字/文字数の割合などを、難読度を算出するための基本データとして示している。
【００３２】
難読度算出部４１は、基本データ蓄積部３２の基本データと、変換規則管理部４３の難読度算出規則とを用いて難読度基本データr1, r2, r3, r4, r5,・・・,rnを算出する。例えば、図３に示す基本データを用いた場合、難読度基本データは以下のとおりとなる。
【００３３】
r1=n_char/n_page≒676.9
r2=n_char/n_sentence≒80.0
r3=n_char/n_comma≒20.0
r4=n_phrase/n_comma≒4.9
r5=n_kanji/n_char≒0.006
次に、難読度算出部４１は、難読度基本データr1, r2, r3, r4, r5,・・・,rnから、難読度dr_allを、例えば以下の式により算出する。
【００３４】
難読度dr_all=a1×r1＋a2×r2＋a3×r3＋a4×r4＋a5×r5＋・・・＋an×rn
ここで、a1, a2, a3, a4, a5,・・・,anは、正または負の所定の値であって、変換規則管理部４３に記憶されている。a1, a2, a3, a4, a5,・・・,anの値は、事前に、多数の文章サンプルを解析して得たr1, r2, r3, r4, r5,・・・,rnを説明変数とし、各文章サンプルに予め設定されている評価値dr_all（0〜1の範囲の値）を従属変数として重回帰分析を行うことで得られたものである。
【００３５】
例えば、a1=0.0004, a2=0.002, a3=0.002, a4=0.001, a5=0.35とし、図３に示す基本データと、図４に示す難解度算出規則の算出方法とを用いた場合（すなわち、上記r1〜r5を用いた場合）、難読度dr_allとして以下の値が算出される。
【００３６】
難読度dr_all=0.0004×676.9＋0.002×80.0＋0.002×20.0＋0.001×4.9＋0.35×0.006≒0.48
図５は、変換規則管理部４３で管理されている難解度算出規則の一例を示すものである。難解度算出規則は、項目と、難解度基本データと、算出方法とを備える。なお、算出方法は、図３に示す基本データの変数名を用いて表している。図５に示す例では、１ページ当たりの図表数、用語集の用語数、見出し当たりの説明文字数、語彙の集中度、１文当たりの連体修飾詞の数、１ページ当たりの受動態数などを、難解度を算出するための基本データとして示している。
【００３７】
難解度算出部４２は、基本データ蓄積部３２の基本データと、変換規則管理部４３の難解度算出規則とを用いて難解度基本データu1, u2, u3, u4, u5, u6,・・・,unを算出する。例えば、図３に示す基本データを用いた場合、難解度基本データは以下のとおりとなる。
【００３８】
u1=n_fig/n_page≒0.25
u2=n_term≒20
u3=n_char/n_index≒268
u4=k≒97.5
u5=n_umekomi/n_sentence≒0.75
u6=n_passive/n_page≒3
次に、難解度算出部４２は、難解度基本データu1, u2, u3, u4, u5, u6,・・・,unから、難解度du_allを、例えば以下の式により算出する。
【００３９】
難解度du_all=b1×ru＋b2×u2＋b3×u3＋b4×u4＋b5×u5＋b6×u6＋・・・＋bn×un
ここで、b1, b2, b3, b4, b5, b6,・・・,bnは、正または負の所定の値であって、変換規則管理部４３に記憶されている。b1, b2, b3, b4, b5, b6,・・・,bnの値は、事前に、多数の文章サンプルを解析して得たu1, u2, u3, u4, u5, u6,・・・,unを説明変数とし、各文章サンプルに予め設定されている評価値du_all（0〜1の範囲の値）を従属変数として重回帰分析を行うことで得られたものである。
【００４０】
例えば、b1=0.001, b2=0.0001, b3=0.0025, b4=-0.001, b5=0.01, b6=0.01とし、図３に示す基本データと、図５に示す難解度算出規則の算出方法とを用いた場合（すなわち、上記u1〜u6を用いた場合）、難解度du_allとして以下の値が算出される。
【００４１】
難解度du _all=0.001×0.25＋0.0001×20＋0.0025×268-0.001×97.5＋0.01×0.75＋0.01×3≒0.61
複雑度算出部５０は、難読度算出部４１が算出した難読度dr_allと、難解度算出部４２が算出した難解度du_allとを用いて、複雑度complexを算出する（Ｓ５）。例えば以下の式により複雑度を算出することとする。
【００４２】
複雑度complex=dr_all×du_all
具体的には、前述の難読度dr_allおよび難解度du_allを用いた場合、複雑度complexは以下の通りとなる。
【００４３】
複雑度complex=dr_all×du_all=0.48×0.61≒0.29
品質目標値算出部６０の品質目標値変換部６１は、複雑度算出部５０が算出した複雑度から、品質目標値変換規則管理部６２の情報を用いて、Ｓ１で入力した設計書に対する品質目標値を算出（変換）する（Ｓ６）。本実施形態では、品質目標値として、目標バグ密度と、目標レビュー密度とを用いる。目標バグ密度は、目標とする、設計書１ページ当たりのバグ指摘件数（件/ページ）である。目標レビュー密度は、目標とする、設計書１ページ当たりのレビューに要する時間（人時/ページ）ある。
【００４４】
品質目標値変換規則管理部６２には、品質目標値変換規則として、複雑度と目標バグ密度との関係を示す第１の関数と、複雑度と目標レビュー密度との関係を示す第２の関数とが記憶されているものとする。品質目標値変換部６１は、第１の関数を用いて複雑度算出部５０が算出した複雑度に対応する目標バグ密度を算出し、第２の関数を用いて複雑度算出部５０が算出した複雑度に対応する目標レビュー密度を算出する。
【００４５】
図６は、品質目標値変換規則の一例を示すものである。図６（ａ）には、複雑度を目標バグ密度に変換するための第１の関数が記載され、図６（ｂ）には、複雑度を目標レビュー密度に変換するための第２の関数が記載されている。図示する第１の関数および第２の関数は、以下のとおりである。
【００４６】
第１の関数：ｙｂ＝ａｂ×complex＋ｂｂ
第２の関数：ｙｒ＝ａｒ×complex＋ｂｒ
なお、ａｂ、ｂｂ、ａｒ、ｂｒは、多数の文章サンプルから回帰分析して得られた値を用いる。例えば、ａｂ=1.1, ｂｂ=0.019, ａｒ=0.8, ｂｒ=0.032とし、複雑度complex=0.29とした場合、目標バグ密度および目標レビュー密度は以下のとおりとなる。
【００４７】
目標バグ密度ｙｂ＝ａｂ×complex＋ｂｂ＝1.1×0.29＋0.019≒0.34（件/ページ）
目標レビュー密度ｙｒ＝ａｒ×complex＋ｂｒ＝0.8×0.29＋0.032≒0.26（人時/ページ）
品質目標値出力部７０は、品質目標値算出部６０が算出した品質目標値を、ディスプレイ、プリンタなどの出力装置に出力する（Ｓ７）。
【００４８】
なお、図６では、第１の関数および第２の関数として、１次関数（直線）を用いているが、２次関数（曲線）などであってもよい。
【００４９】
以上説明した本実施形態では、設計書の基本データに基づいて、設計書の複雑さを示す複雑度（難易度）の複数の要素（難読度、難解度）を算出し、この複数の要素を用いて設計書の複雑度を算出し、複雑度から設計書の品質目標値を算出する。これにより、本実施形態では、設計書の内容の複雑度（難易度）に応じた、適切な品質目標値を算出することができる。
【００５０】
なお、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【符号の説明】
【００５１】
１０：設計書入力部
２０：設計書蓄積部
３０：設計書本文解析部
３１：基本データ抽出部
３２：基本データ蓄積部
４０：複雑度要素解析部
４１：難読度算出部
４２：難解度算出部
４３：変換規則管理部
５０：複雑度算出部
６０：品質目標値算出部
６１：品質目標値変換部
６２：品質目標値変換規則管理部
７０：品質目標値出力部
【図１】
2012173829.tif 000005
【図２】
2012173829.tif 000006
【図３】
2012173829.tif 000007
【図４】
2012173829.tif 000008
【図５】
2012173829.tif 000009
【図６】
2012173829.tif 000010