(57)【特許請求の範囲】
【請求項１】
複数の設計工程を含むソフトウェア開発プロセスの第１設計工程において作成され、複数の要件が規定された第１設計書であって、規定された要件毎に異なる第１タグが割り当てられた第１設計書を入力装置により入力する第１設計書入力部と、
前記第１設計工程の下位の第２設計工程で作成された第２設計書であって、前記第１設計書で規定された要件に対応する記載に対して、その要件に割り当てられた第１タグが付された第２設計書を入力装置により入力する第２設計書入力部と、
前記第１設計書入力部が入力した前記第１設計書と、前記第２設計書入力部が入力した前記第２設計書とを記憶装置に記憶する成果物記憶部と、
前記記憶装置から前記第１設計書と前記第２設計書を読み出して、前記第１設計書で規定された要件に割り当てられた第１タグのうちいくつの第１タグが、前記第２設計書に付与されているかを示すヒット率を処理装置により計算するヒット率計算部と、
前記ヒット率計算部が計算したヒット率を出力する出力部と
を備えることを特徴とする成果物品質管理装置。
【請求項２】
前記成果物品質管理装置は、さらに、
前記第２設計工程の下位の第３設計工程で作成された第３設計書であって、前記第１設計書で規定された要件に対応する記載に対して、その要件に割り当てられた第１タグが付された第３設計書を入力装置により入力する第３設計書入力部
を備え、
前記ヒット率計算部は、前記第１タグのうちいくつの第１タグが、前記第２設計書と前記第３設計書との少なくともいずれかに付与されているかを示すヒット率を計算する
ことを特徴とする請求項１に記載の成果物品質管理装置。
【請求項３】
前記第２設計書は、複数の要件が規定され、規定された要件毎に異なる第２タグが割り当てられており、
前記第３設計書は、前記第２設計書で規定された要件に対応する記載に対して、その要件に割り当てられた第２タグが付されており、
前記ヒット率計算部は、前記第２設計書で規定された要件に割り当てられた第２タグのうちいくつの第２タグが、前記第３設計書に付与されているかを示すヒット率を計算することを特徴とする請求項２に記載の成果物品質管理装置。
【請求項４】
前記ソフトウェア開発プロセスには、各設計工程に対応したテスト工程が含まれ、
前記成果物品質管理装置は、さらに、
前記第１設計工程に対応した第１テスト工程で行うテスト内容を規定した第１テスト計画書であって、前記第１設計書で規定された要件に対応するテスト項目に対して、その要件に割り当てられた第１タグが付された第１テスト計画書を入力装置により入力する第１テスト計画書入力部
を備え、
前記ヒット率計算部は、前記第１設計書で規定された要件に割り当てられた第１タグのうちいくつの第１タグが、前記第１テスト計画書に付与されているかを示すヒット率を計算する
ことを特徴とする請求項１から３までのいずれかに記載の成果物品質管理装置。
【請求項５】
前記成果物品質管理装置は、さらに、
前記ヒット率が所定の閾値より低いか否かを処理装置により判定するヒット率判定部と、
前記ヒット率が所定の閾値より低いと前記ヒット率判定部が判定した場合、警告する警告部と
を備えることを特徴とする請求項１から４までのいずれかに記載の成果物品質管理装置。
【請求項６】
複数の設計工程を含むソフトウェア開発プロセスの第１設計工程において作成され、複数の要件が規定された第１設計書であって、規定された要件毎に異なる第１タグが割り当てられた第１設計書を入力する第１設計書入力処理と、
前記第１設計工程の下位の第２設計工程で作成された第２設計書であって、前記第１設計書で規定された要件に対応する記載に対して、その要件に割り当てられた第１タグが付された第２設計書を入力する第２設計書入力処理と、
前記第１設計書入力処理で入力した前記第１設計書と、前記第２設計書入力処理で入力した前記第２設計書とを記憶装置に記憶する成果物記憶処理と、
前記記憶装置から前記第１設計書と前記第２設計書を読み出して、前記第１設計書で規定された要件に割り当てられた第１タグのうちいくつの第１タグが、前記第２設計書に付与されているかを示すヒット率を計算するヒット率計算処理と、
前記ヒット率計算処理で計算したヒット率を出力する出力処理と
をコンピュータに実行させることを特徴とする成果物品質管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソフトウェア開発プロセスの各工程で生成された成果物の品質を管理する技術に関する。
【背景技術】
【０００２】
特許文献１には、ソフトウェア開発プロセスの各工程で生成された成果物の管理についての記載がある。
特許文献１では、各工程で作成された成果物が入力されると、入力された成果物から所定のキーワードを検索して、検索された文章や、ページ番号、ファイル名等の属性情報を抽出する。そして、同一のキーワードにより抽出された属性情報を関連付けたトレーサビリティマトリクスを作成する。これにより、成果物間の関連を管理することを可能としている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２５３３４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載された方法では、ソフトウェア開発プロセス全体で見た場合に、上位の設計書で規定された要件について、下位のいずれかの設計書でサポートされているか否かを把握することが難しい。そのため、各設計書の品質が妥当であるかを判定することが難しい。
【課題を解決するための手段】
【０００５】
この発明に係る成果物品質管理装置は、
複数の設計工程を含むソフトウェア開発プロセスの第１設計工程において作成され、複数の要件が規定された第１設計書であって、規定された要件毎に異なる第１タグが割り当てられた第１設計書を入力する第１設計書入力部と、
前記第１設計工程の下位の第２設計工程で作成された第２設計書であって、前記第１設計書で規定された要件に対応する記載に対して、その要件に割り当てられた第１タグが付された第２設計書を入力する第２設計書入力部と、
前記第１設計書で規定された要件に割り当てられた第１タグのうちいくつの第１タグが、前記第２設計書に付与されているかを示すヒット率を計算するヒット率計算部と、
前記ヒット率計算部が計算したヒット率を出力する出力部と
を備えることを特徴とする。
【発明の効果】
【０００６】
この発明に係る成果物品質管理装置では、上位の設計書で規定された要件に割り当てられたタグのうち、いくつのタグが下位の設計書に付与されているかを示すヒット率を計算する。これに基づき、下位の設計書の品質が妥当であるか判定することが可能である。
【図面の簡単な説明】
【０００７】
【図１】実施の形態１に係る要件定義書１１の例を示す図。
【図２】実施の形態１に係る外部設計書１２の例を示す図。
【図３】実施の形態１に係る内部設計書１３の例を示す図。
【図４】実施の形態１に係るソフトウェア設計書１４の例を示す図。
【図５】実施の形態１に係る単体テスト計画書１５の例を示す図。
【図６】実施の形態１に係る結合テスト計画書１６の例を示す図。
【図７】実施の形態１に係るシステムテスト計画書１７の例を示す図。
【図８】実施の形態１に係る設計書同士を比較した設計書比較表１８の例を示す図。
【図９】実施の形態１に係る設計書とその設計書に対応するテスト計画書とを比較した計画書比較表１９の例を示す図。
【図１０】実施の形態１に係るトレーサビリティマトリクス２０の例を示す図。
【図１１】実施の形態１に係る集計表２１の例を示す図。
【図１２】実施の形態１に係るＶ字シート２２の例を示す図。
【図１３】実施の形態１に係る成果物品質管理装置１００の構成図。
【図１４】実施の形態１に係る成果物品質管理装置１００の動作を示すフローチャート。
【図１５】上記実施の形態に係る表示制御装置１０、表示装置３０のハードウェア構成の一例を示す図。
【発明を実施するための形態】
【０００８】
実施の形態１．
ソフトウェア開発プロセスには、ウォーターフォールモデルやアジャイルソフトウェア開発等、様々なプロセスがある。また、例えば、ウォーターフォールモデルにも、工程をどの程度細分化するか等によって、様々なモデルがある。
ここでは、要件定義工程、外部設計工程、内部設計工程、ソフトウェア設計工程、開発単体テスト工程、結合テスト工程、システムテスト工程からなるウォーターフォールモデルを用いて説明を行う。しかし、以下に説明する成果物品質管理技術は、このウォーターフォールモデルに限らず、他のウォーターフォールモデルや、他の開発プロセスにも適用可能である。
【０００９】
ここでは、要件定義工程では要件定義書１１が作成され、外部設計工程では外部設計書１２が作成され、内部設計工程では内部設計書１３が作成され、開発工程ではソフトウェア設計書１４が作成され、単体テスト工程では単体テスト計画書１５が作成され、結合テスト工程では結合テスト計画書１６が作成され、システムテスト工程ではシステムテスト計画書１７が作成されるとする。
また、単体テスト工程はソフトウェア設計書１４に対応するテストを行う工程であり、結合テスト工程は内部設計書１３に対応するテストを行う工程であり、システムテスト工程は外部設計書１２に対応するテストを行う工程であるとする。
【００１０】
図１は、実施の形態１に係る要件定義書１１の例を示す図である。
要件定義書１１は、開発対象のソフトウェアに対する様々な要件が規定される。この要件には、ソフトウェアで実現する機能的な要件や、ソフトウェアが満たすべき性能的な要件が含まれる。
要件定義書１１は、ＩＤ１、ＩＤ２（例えば、ＩＤ１は章であり、ＩＤ２は節である）毎に、本文１が記載される。そして、本文１において要件が規定されている場合には、その要件に対して第１タグが割り当てられる。
【００１１】
図２は、実施の形態１に係る外部設計書１２の例を示す図である。
外部設計書１２は、開発対象のソフトウェアが提供する機能やデータの流れが規定される。外部設計書１２は、要求定義書で規定された要件を満たすように、機能やデータの流れが規定される。原則として、外部設計書１２は、要求定義書で規定された全ての要件をサポートするように記載されるが、一部の要件をサポートしない場合もある。外部設計書１２でサポートされていない要件がある場合、サポートされていない要件は内部設計書１３、あるいはソフトウェア設計書１４でサポートされる。
外部設計書１２は、ＩＤ１、ＩＤ２、ＩＤ３（例えば、ＩＤ３は項である）毎に、本文２が記載される。そして、要件定義書１１で規定された要件が、本文２でサポートされている場合には、その要件に対して割り当てられた第１タグが付される。また、本文２で要件が規定されている場合には、その要件に対して第２タグが割り当てられる。
【００１２】
図３は、実施の形態１に係る内部設計書１３の例を示す図である。
内部設計書１３は、外部設計工程で規定された機能やデータの流れのソフトウェアによる実現方法が規定される。内部設計書１３は、外部設計書１２（及び要件定義書１１）で規定された要件を満たすように、ソフトウェアによる実現方法が規定される。原則として、内部設計書１３は、外部定義書で規定された全ての要件をサポートするように記載されるが、一部の要件をサポートしない場合もある。内部設計書１３でサポートされていない要件がある場合、サポートされていない要件はソフトウェア設計書１４でサポートされる。
内部設計書１３は、ＩＤ１、ＩＤ２、ＩＤ３、ＩＤ４（例えば、ＩＤ４は条である）毎に、本文３が記載される。そして、要件定義書１１で規定された要件のうち、外部設計書１２でサポートされていない要件が、本文３でサポートされている場合には、その要件に対して割り当てられた第１タグが付される。同様に、外部設計書１２で規定された要件が、本文３でサポートされている場合には、その要件に対して割り当てられた第２タグが付される。また、本文３で要件が規定されている場合には、その要件に対して第３タグが割り当てられる。
【００１３】
図４は、実施の形態１に係るソフトウェア設計書１４の例を示す図である。
ソフトウェア設計書１４は、内部設計工程で規定された実現方法に従い、実際のプログラムの処理が規定される。ソフトウェア設計書１４は、内部設計書１３（及び外部設計書１２、要件定義書１１）で規定された要件を満たすように、プログラムの処理が規定される。原則として、ソフトウェア設計書１４は、内部定義書で規定された全ての要件をサポートするように記載される。
ソフトウェア設計書１４は、ＩＤ１、ＩＤ２、ＩＤ３、ＩＤ４、ＩＤ５（例えば、ＩＤ５は枝番である）毎に、本文４が記載される。そして、要件定義書１１で規定された要件のうち、外部設計書１２及び内部設計書１３でサポートされていない要件が、本文４でサポートされている場合には、その要件に対して割り当てられた第１タグが付される。同様に、外部設計書１２で規定された要件のうち、内部設計書１３でサポートされていない要件が、本文４でサポートされている場合には、その要件に対して割り当てられた第２タグが付される。同様に、内部設計書１３で規定された要件が、本文４でサポートされている場合には、その要件に対して割り当てられた第３タグが付される。また、本文４で要件が規定されている場合には、その要件に対して第４タグが割り当てられる。
【００１４】
図５は、実施の形態１に係る単体テスト計画書１５の例を示す図である。
単体テスト計画書１５は、各プログラム単体としての機能のテスト計画が規定される。単体テスト計画書１５は、ソフトウェア設計書１４で規定された要件を全て満たすように、テスト計画が規定される。
単体テスト計画書１５は、ソフトウェア設計書１４に合わせて、ＩＤ１、ＩＤ２、ＩＤ３、ＩＤ４、ＩＤ５毎に、テスト内容１が記載される。そして、ソフトウェア設計書１４で規定された要件が、テスト内容１でサポートされている場合には、その要件に対して割り当てられた第４タグが付される。
【００１５】
図６は、実施の形態１に係る結合テスト計画書１６の例を示す図である。
結合テスト計画書１６は、複数のプログラムを組み合わせたプログラム間のインタフェース機能のテスト計画が規定される。結合テスト計画書１６は、内部設計書１３で規定された要件を全て満たすように、テスト計画が規定される。
結合テスト計画書１６は、内部設計書１３に合わせて、ＩＤ１、ＩＤ２、ＩＤ３、ＩＤ４毎に、テスト内容２が記載される。そして、内部設計書１３で規定された要件が、テスト内容２でサポートされている場合には、その要件に対して割り当てられた第３タグが付される。
【００１６】
図７は、実施の形態１に係るシステムテスト計画書１７の例を示す図である。
システムテスト計画書１７は、全てのプログラムを組み合わせて、システム全体としての機能のテスト計画が規定される。システムテスト計画書１７は、外部設計書１２で規定された要件を全て満たすように、テスト計画が規定される。
システムテスト計画書１７は、外部設計書１２に合わせて、ＩＤ１、ＩＤ２、ＩＤ３毎に、テスト内容３が記載される。そして、外部設計書１２で規定された要件が、テスト内容３でサポートされている場合には、その要件に対して割り当てられた第２タグが付される。
【００１７】
図８は、実施の形態１に係る設計書同士を比較した設計書比較表１８の例を示す図である。図８では、要件定義書１１と外部設計書１２とを比較した設計書比較表１８を示す。
設計書同士を比較した設計書比較表１８では、上位の設計書で割り当てられたタグが全て抽出され、抽出されたタグ毎に、各設計書の記載内容が示される。図８では、上位の要件定義書１１に割り当てられた第１タグが全て抽出される。そして、第１タグ毎に、要件定義書１１の記載のうち、その第１タグが付されたＩＤ１，ＩＤ２，本文１と、外部設計書１２の記載のうち、その第１タグが付されたＩＤ１，ＩＤ２，ＩＤ３，本文２とが示される。
【００１８】
図９は、実施の形態１に係る設計書とその設計書に対応するテスト計画書とを比較した計画書比較表１９の例を示す図である。図９では、外部設計書１２とシステムテスト計画書１７とを比較した計画書比較表１９を示す。
設計書と、その設計書に対応するテスト計画書とを比較した計画書比較表１９では、設計書に割り当てられたタグが全て抽出され、抽出されたタグ毎に、設計書の記載内容と、テスト計画書の記載内容とが示される。図９では、外部設計書１２に割り当てられた第２タグが全て抽出される。そして、第２タグ毎に、その第２タグが付されたＩＤ１，ＩＤ２，ＩＤ３と、外部設計書１２の記載のうち、その第２タグが付された本文２と、システムテスト計画書１７の記載のうち、その第２タグが付されたテスト内容３とが示される。
【００１９】
図１０は、実施の形態１に係るトレーサビリティマトリクス２０の例を示す図である。図１０では、図８に示す設計書比較表１８に基づき生成された、要件定義書１１と外部設計書１２との間の記載を関連付けしたトレーサビリティマトリクス２０を示す。
トレーサビリティマトリクス２０は、設計書比較表１８から、必要な項目のみが抽出されて作成される。ここでは、トレーサビリティマトリクス２０は、図８に示す設計書比較表１８から、ＩＤ以外の項目が抽出されて作成されている。
計画書比較表１９からトレーサビリティマトリクス２０を生成する方法も、設計書比較表１８からトレーサビリティマトリクス２０を生成する方法と同様である。
【００２０】
図１１は、実施の形態１に係る集計表２１の例を示す図である。図１１では、図８に示す設計書比較表１８に基づき生成された、要件定義書１１で規定された各要件を、外部設計書１２でサポートしているか否かを集計した集計表２１を示す。
集計表２１では、設計書比較表１８に含まれる各タグについて、下位の設計書でサポートされた数であるヒット数が示される。図１１では、図８に示す各第１タグについて、下位の外部設計書１２でサポートされた数であるヒット数と、下位の設計書でサポートされていない数を表す残件とが示されている。
ヒット数には、１個のタグを、下位の設計書の複数箇所でサポートしている場合に、それぞれを独立してカウントした重複ありのヒット数と、全体として１とカウントした重複なしのヒット数とがある。例えば、第１タグ「Ｙ−０００１１」であれば、外部設計書１２のＩＤ１，ＩＤ２，ＩＤ３がそれぞれ「１１１」の箇所と、「１１３」の箇所との２箇所でサポートされている。したがって、重複ありのヒット数は２になり、重複なしのヒット数は１になる。
図１１では、ヒット数と残件との計は、重複ありのヒット数が５、重複なしのヒット数が３、残件が２となっている。つまり、要件定義書１１に記載された５個の要件のうち３個の要件について、外部設計書１２では５箇所でサポートされており、要件定義書１１に記載された５個の要件のうち２個の要件について、外部設計書１２ではサポートされていないことを示す。
計画書比較表１９から集計表２１を生成する方法も、設計書比較表１８から集計表２１を生成する方法と同様である。
【００２１】
図１２は、実施の形態１に係るＶ字シート２２の例を示す図である。
Ｖ字シート２２では、各設計書及び各テスト計画書についての情報が、Ｖ字型の開発工程に合わせてＶ字型に示される。つまり、要件定義書１１からソフトウェア設計書１４へ向かって徐々に階層が下がっていき、単体テスト計画書１５からシステムテスト計画書１７へ向かって徐々に階層が上がっていくように、各設計書及び各テスト計画書についての情報が示される。
Ｖ字シート２２では、各設計書で規定された要件の数（符号３１）と、上位の設計書で規定された要件について各設計書でサポートした数（重複ありのヒット数及び重複なしのヒット数）（符号３２）と、上位の設計書で規定された要件について、その設計書までにサポートされた割合を示すヒット率（符号３３）とが示される。また、Ｖ字シート２２では、対応する設計書で規定された要件について、テスト計画書でサポートした数（符号３４）と、対応する設計書で規定された要件について、テスト計画書でサポートされた割合を示すヒット率（符号３５）とが示される。
なお、図１２では、要件定義書１１で定義された要件に関する情報については符号の後にａを付し、外部設計書１２で定義された要件に関する情報については符号の後にｂを付し、内部設計書１３で定義された要件に関する情報については符号の後にｃを付し、ソフトウェア設計書１４で定義された要件に関する情報については符号の後にｄを付している。
【００２２】
図１２における要件定義書１１で規定された要件に関する記載について説明する。
要件定義書１１では、５個の要件が規定されている（符号３１ａの欄参照）。
外部設計書１２では、要件定義書１１で規定された５個の要件について、重複ありのヒット数が５、重複なしのヒット数が３となっている（外部設計書１２の符号３２ａの欄参照）。つまり、外部設計書１２では、要件定義書１１に記載された５個の要件のうち３個の要件について、５箇所でサポートされている。したがって、外部設計書１２でのヒット率は、６０％（３／５）であり、サポートされていない要件（残件）は２個である（外部設計書１２の左側の符号３３ａの欄参照）。
内部設計書１３では、残り２個の要件（残件）について、重複ありのヒット数が１、重複なしのヒット数が１となっている（内部設計書１３の符号３２ａの欄参照）。つまり、内部設計書１３では、残り２個の要件のうち１個の要件について、１箇所でサポートされている。したがって、外部設計書１２から内部設計書１３でのヒット率は、８０％（４／５）であり、サポートされていない要件（残件）は１個である（内部設計書１３の左側の符号３３ａの欄参照）。
ソフトウェア設計書１４では、残り１個の要件（残件）について、重複ありのヒット数が１、重複なしのヒット数が１となっている（ソフトウェア設計書１４の符号３２ａの欄参照）。つまり、ソフトウェア設計書１４では、残り１個の要件について、１箇所でサポートされている。したがって、外部設計書１２からソフトウェア設計書１４でのヒット率は、１００％（５／５）であり、サポートされていない要件（残件）はない（ソフトウェア設計書１４の左側の符号３３ａの欄参照）。
【００２３】
図１２における外部設計書１２で規定された要件に関する記載について説明する。
外部設計書１２では、１６個の要件が規定されている（符号３１ｂの欄参照）。
内部設計書１３では、外部設計書１２で規定された１６個の要件について、重複ありのヒット数が２０、重複なしのヒット数が８となっている（内部設計書１３の符号３２ｂの欄参照）。つまり、外部設計書１２では、要件定義書１１に記載された１６個の要件のうち８個の要件について、２０箇所でサポートされている。したがって、内部設計書１３でのヒット率は、５０％（８／１６）であり、サポートされていない要件（残件）は８個である（内部設計書１３の左側の符号３３ｂの欄参照）。
ソフトウェア設計書１４では、残り８個の要件（残件）について、重複ありのヒット数が９、重複なしのヒット数が４となっている（ソフトウェア設計書１４の符号３２ｂの欄参照）。つまり、ソフトウェア設計書１４では、残り８個の要件のうち４個の要件について、９箇所でサポートされている。したがって、内部設計書１３からソフトウェア設計書１４でのヒット率は、７５％（１２／１６）であり、サポートされていない要件（残件）は４個である（ソフトウェア設計書１４の左側の符号３３ｂの欄参照）。
また、外部設計書１２に対応するシステムテスト計画書１７では、外部設計書１２で規定された１６個の要件のうち、４個の要件についてサポートされている（符号３４ｂの欄参照）。したがって、システムテスト計画書１７でのヒット率は、２５％（４／１６）である（符号３５ｂの欄参照）。
ここで、符号３３ｂの欄、符号３３ｃの欄、符号３５ｂの欄、符号３５ｃの欄にハッチングが入れられているのは、ヒット率が所定の閾値よりも低いことを警告するためである。
【００２４】
残りの内部設計書１３、ソフトウェア設計書１４、単体テスト計画書１５、結合テスト計画書１６についても、上記説明にしたがって記載内容を確認することができる。
【００２５】
図１３は、実施の形態１に係る成果物品質管理装置１００の構成図である。
成果物品質管理装置１００は、成果物入力部１０１（第１設計書入力部、第２設計書入力部、第３設計書入力部、第１テスト計画書入力部の一例）、成果物記憶部１０２、比較部１０３、マトリクス生成部１０４、マトリクス記憶部１０５、ヒット率計算部１０６、出力部１０７、基準設定部１０８、ヒット率判定部１０９、警告部１１０を備える。
【００２６】
成果物入力部１０１は、入力装置により、ソフトウェア開発プロセスにおける各工程で作成された成果物を入力する。ここでは、成果物入力部１０１は、図１から図７に示す要件定義書１１、外部設計書１２、内部設計書１３、ソフトウェア設計書１４、単体テスト計画書１５、結合テスト計画書１６、システムテスト計画書１７を入力する。
成果物記憶部１０２は、成果物入力部１０１が入力した成果物を記憶装置に記憶する。
【００２７】
比較部１０３は、処理装置により、成果物入力部１０１が入力した設計書同士を比較して図８に基づき説明した設計書比較表１８を生成するとともに、設計書とその設計書に対応するテスト計画書とを比較して図９に基づき説明した計画書比較表１９を生成する。
つまり、比較部１０３は、要件定義書１１と外部設計書１２とを比較した設計書比較表１８ａ、要件定義書１１と内部設計書１３とを比較した設計書比較表１８ｂ、要件定義書１１とソフトウェア設計書１４とを比較した設計書比較表１８ｃ、外部設計書１２と内部設計書１３とを比較した設計書比較表１８ｄ、外部設計書１２とソフトウェア設計書１４とを比較した設計書比較表１８ｅ、内部設計書１３とソフトウェア設計書１４とを比較した設計書比較表１８ｆを生成する。また、比較部１０３は、外部設計書１２とシステムテスト計画書１７とを比較した計画書比較表１９ａ、内部設計書１３と結合テスト計画書１６とを比較した計画書比較表１９ｂ、ソフトウェア設計書１４と単体テスト計画書１５とを比較した計画書比較表１９ｃを生成する。
【００２８】
マトリクス生成部１０４は、処理装置により、比較部１０３が生成した設計書比較表１８ａ−ｆや計画書比較表１９ａ−ｃに基づき、要件毎に成果物間の記載を関連付けした、図１０に基づき説明したトレーサビリティマトリクス２０を生成する。
つまり、マトリクス生成部１０４は、設計書比較表１８ａに基づくトレーサビリティマトリクス２０ａ、設計書比較表１８ｂに基づくトレーサビリティマトリクス２０ｂ、設計書比較表１８ｃに基づくトレーサビリティマトリクス２０ｃ、設計書比較表１８ｄに基づくトレーサビリティマトリクス２０ｄ、設計書比較表１８ｅに基づくトレーサビリティマトリクス２０ｅ、設計書比較表１８ｆに基づくトレーサビリティマトリクス２０ｆ、計画書比較表１９ａに基づくトレーサビリティマトリクス２０ｇ、計画書比較表１９ｂに基づくトレーサビリティマトリクス２０ｈ、計画書比較表１９ｃに基づくトレーサビリティマトリクス２０ｉを生成する。
マトリクス記憶部１０５は、マトリクス生成部１０４が生成したトレーサビリティマトリクス２０を記憶装置に記憶する。
【００２９】
ヒット率計算部１０６は、処理装置により、比較部１０３が生成した設計書比較表１８ａ−ｆや計画書比較表１９ａ−ｃに基づき、上位の設計書で規定された各要件を、下位の設計書や対応するテスト計画書でサポートしているか否かを集計して、図１１に基づき説明した集計表２１を生成する。
つまり、ヒット率計算部１０６は、設計書比較表１８ａに基づく集計表２１ａ、設計書比較表１８ｂに基づく集計表２１ｂ、設計書比較表１８ｃに基づく集計表２１ｃ、設計書比較表１８ｄに基づく集計表２１ｄ、設計書比較表１８ｅに基づく集計表２１ｅ、設計書比較表１８ｆに基づく集計表２１ｆ、計画書比較表１９ａに基づく集計表２１ｇ、計画書比較表１９ｂに基づく集計表２１ｈ、計画書比較表１９ｃに基づく集計表２１ｉを生成する。
そして、ヒット率計算部１０６は、生成した集計表２１ａ−ｉそれぞれから、上位の設計書で規定された要件を、下位の設計書、又は、対応するテスト計画書でサポートしている割合を示すヒット率を計算する。
出力部１０７は、ヒット率計算部１０６が計算したヒット率等を図１２に基づき説明したＶ字シート２２に示して出力する。
【００３０】
基準設定部１０８は、入力装置により、設計書及びテスト計画書毎に、ヒット率の閾値を設定する。つまり、基準設定部１０８は、図１２に示す符号３３の欄及び符号３５の欄（図１２において楕円で示す欄）毎に、ヒット率の閾値を設定する。
ヒット率判定部１０９は、処理装置により、ヒット率計算部１０６が計算したヒット率が、基準設定部１０８が設定した閾値より低いか否かを判定する。
警告部１１０は、ヒット率が閾値よりも低いとヒット率判定部１０９が判定した場合に、警告（図１２においてはハッチング）をＶ字シート２２に示して出力する。
【００３１】
図１４は、実施の形態１に係る成果物品質管理装置１００の動作を示すフローチャートである。
（Ｓ１：成果物入力処理）
成果物入力部１０１は、成果物を入力する。
成果物記憶部１０２は、入力された成果物を記憶する。
【００３２】
（Ｓ２：比較処理）
比較部１０３は、Ｓ１で入力された成果物を、過去に入力された他の成果物と比較して、設計書比較表１８や計画書比較表１９を生成する。
例えば、Ｓ１で外部設計書１２が入力された場合、上位の工程の成果物は既に入力されているはずなので、比較部１０３は、Ｓ１で入力された外部設計書１２を、過去に入力された上位の工程の成果物である要件定義書１１と比較して、設計書比較表１８を生成する。また、外部設計書１２に追記等を行った場合等には、既に内部設計書１３やシステムテスト計画書１７等の下位の工程の成果物が入力されていることもある。この場合には、比較部１０３は、Ｓ１で入力された外部設計書１２を、過去に入力された下位の工程の成果物とも比較し、設計書比較表（１８ｄ、１８ｅ）を再生成する。
なお比較部１０３は、ＩＤ（ＩＤ１、ＩＤ２・・・ＩＤｎ）の数により、設計書及び計画書の上位／下位を判定する。つまり設計書及び設計書のＩＤの数が１つずつ多くなるにつれて、第１設計書、第２設計書、第３設計書というように、上位から下位に位置する。
【００３３】
（Ｓ３：マトリクス生成処理）
マトリクス生成部１０４は、Ｓ２で生成された設計書比較表１８や計画書比較表１９に基づき、トレーサビリティマトリクス２０を生成する。
例えば、Ｓ２で要件定義書１１と外部設計書１２とを比較した設計書比較表１８が生成された場合には、マトリクス生成部１０４は、要件定義書１１と外部設計書１２との間の記載を関連付けしたトレーサビリティマトリクス２０を生成する。Ｓ２で複数の設計書比較表１８や計画書比較表１９が生成された場合には、マトリクス生成部１０４は、各設計書比較表１８や各計画書比較表１９に対応したトレーサビリティマトリクス２０を生成する。
マトリクス記憶部１０５は、生成されたトレーサビリティマトリクス２０を記憶する。
【００３４】
（Ｓ４：ヒット率計算処理）
ヒット率計算部１０６は、Ｓ２で生成された設計書比較表１８や計画書比較表１９に基づき、集計表２１を生成してヒット率を計算する。
例えば、Ｓ２で要件定義書１１と外部設計書１２とを比較した設計書比較表１８が生成された場合には、ヒット率計算部１０６は、要件定義書１１で規定された各要件を、外部設計書１２でサポートしているか否かを集計した集計表２１を生成する。そして、ヒット率計算部１０６は、要件定義書１１で規定された要件を外部設計書１２でサポートしている割合を示すヒット率を計算する。Ｓ２で複数の設計書比較表１８や計画書比較表１９が生成された場合には、ヒット率計算部１０６は、各設計書比較表１８や各計画書比較表１９に対応した集計表２１を生成してヒット率を計算する。
なおヒット率計算部１０６は、３番目以降に位置する設計書でのヒット率を算出するとき、上位設計書でのヒット数を加算して算出する。例えば、要件定義書１１に対する内部設計書１３でのヒット率を算出するときは、内部設計書１３の上位設計書である外部設計書１２での要件定義書１１に対するヒット数を加算して、ヒット率を算出する。
【００３５】
（Ｓ５：ヒット率判定処理）
ヒット率判定部１０９は、基準設定部１０８によって予め設定された閾値よりもＳ４で計算されたヒット率が低いか否かを判定する。
例えば、Ｓ４で要件定義書１１で規定された要件を外部設計書１２でサポートしている割合を示すヒット率が計算された場合、要件定義書１１で規定された要件を外部設計書１２でサポートしている割合に対する閾値よりも、Ｓ４で計算されたヒット率が低いか否かが判定される。
【００３６】
（Ｓ６：出力処理）
出力部１０７は、Ｓ４で生成された集計表２１に記載されたヒット数や、Ｓ４で計算されたヒット率等を、Ｖ字シート２２に示して出力する。
例えば、Ｓ４で要件定義書１１で規定された要件を外部設計書１２でサポートしている割合を示すヒット率が計算された場合、Ｖ字シート２２の該当の欄に計算されたヒット率と、外部設計書１２では、要件定義書１１で規定された要件のうち何件の要件を何か所でサポートしているかを表す、重複ありのヒット数及び重複なしのヒット数とをＶ字シート２２に示す。なお、Ｖ字シート２２の他の欄に既にヒット率等が示されており、その欄に関して変更がない場合には、その欄の記載は消去等せずそのままにしておく。
また、警告部１１０は、Ｓ５で閾値よりもヒット率が低いと判定された場合には、Ｖ字シート２２の該当の欄に警告を示して出力する。
【００３７】
以上のように、成果物品質管理装置１００では、成果物が新たに入力される度に、Ｖ字シート２２が更新されて出力される。特に、新しい成果物が作成された場合だけでなく、成果物が追記等の修正を行われた場合にも、Ｖ字シート２２が更新されて出力される。
【００３８】
実施の形態１に係る成果物品質管理装置１００では、上位の設計書で規定された要件に割り当てられたタグのうち、いくつのタグが下位の設計書に付与されているかを計算することにより、上位の設計書で規定された要件が下位の設計書でサポートされている割合を示すヒット率を計算した。計算したヒット率に基づき、下位の設計書の品質が妥当であるか判定することが可能である。その結果、下位の設計書の品質を向上させることが可能である。
【００３９】
特に、実施の形態１に係る成果物品質管理装置１００では、上位の設計書（例えば、要件定義書１１）で規定された要件に割り当てられたタグのうち、いくつのタグがすぐ下位の設計書（外部設計書１２）に付与されているかを計算するだけはない。上位の設計書で規定された要件に割り当てられたタグに、すぐ下位の設計書に付与されていないタグが含まれる場合には、そのタグのうち、いくつのタグがさらに下位の設計書（内部設計書１３）に付与されているかを計算する。
例えば、要件定義書１１で規定された要件が全て外部設計書１２でサポートされず、一部が内部設計書１３でサポートされるような場合もある。このような場合に、外部設計書１２、内部設計書１３の品質が妥当であるか適切に判定することが可能である。
【００４０】
また、実施の形態１に係る成果物品質管理装置１００では、設計書で規定された要件に割り当てられたタグのうち、いくつのタグが、その設計書に対応するテスト計画書に付与されているかを計算することにより、設計書で規定された要件が対応するテスト計画書でサポートされている割合を示すヒット率を計算した。計算したヒット率に基づき、テスト計画書の品質が妥当であるか判定することが可能である。その結果、テスト計画書の品質を向上させることが可能である。
【００４１】
なお、上述した通り、ウォーターフォールモデルには、工程をどの程度細分化するか等によって、様々なモデルがある。上述した成果物品質管理技術は、上述したウォーターフォールモデルに限らず、他のウォーターフォールモデルにも同様に適用可能である。
【００４２】
また、上述した通り、ソフトウェア開発プロセスには、ウォーターフォールモデルだけでなく、アジャイルソフトウェア開発等、様々なプロセスがある。上述した成果物品質管理技術は、ウォーターフォールモデルに限らず、他の開発プロセスにも適用可能である。
【００４３】
また、上記説明では、設計書及びテスト計画書を表形式とした。しかし、これは、上記説明を分かり易くすうためのものであり、実際に用いる設計書は表形式になっている必要はない。
【００４４】
また、上記説明では、設計書の本文で要件が規定されている場合に、その部分にタグが割り当てられるとした。タグの割り当てを人手で行ってもよいが手間がかかるため、ＩＤからタグを自動生成するようにしてもよい。
例えば、要件定義書１１では、「Ｙ−０００」の後に、ＩＤ１とＩＤ２との値を追加して、第１タグを生成してもよい。つまり、ＩＤ１が１、ＩＤ２が２であれば、第１タグはＹ−０００１２となる。同様に、外部設計書１２では、「Ｇ−００」の後に、ＩＤ１とＩＤ２とＩＤ３との値を追加して、第２タグを生成してもよい。つまり、ＩＤ１が１、ＩＤ２が２、ＩＤ３が３であれば、第１タグはＹ−００１２３となる。以下同様に、内部設計書１３における第３タグ、ソフトウェア設計書１４における第４タグも、ＩＤから自動生成することが可能である。
しかし、上位の設計書に割り当てられたタグを、下位の設計書に自動的に付すことはできず、人手で行う必要がある。例えば、外部設計書１２における第１タグは、要件定義書１１で規定された要件が、本文２でサポートされている場合に付されるものである。そのため、要件定義書１１で規定された要件が、本文２でサポートされているかを確認する必要があり、外部設計書１２における第１タグを自動生成することはできない。同様に、内部設計書１３における第１タグと第２タグ、ソフトウェア設計書１４における第１タグと第２タグと第３タグは、自動生成することはできない。
【００４５】
図１５は、上記実施の形態に係る成果物品質管理装置１００のハードウェア構成の一例を示す図である。
図１５に示すように、成果物品質管理装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、ＬＣＤ９０１（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、キーボード９０２（Ｋ／Ｂ）、通信ボード９１５、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０（固定ディスク装置）の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置９２０は、所定の固定ディスクインタフェースを介して接続される。
【００４６】
磁気ディスク装置９２０又はＲＯＭ９１３などには、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００４７】
プログラム群９２３には、上記の説明において「成果物入力部１０１」、「比較部１０３」、「マトリクス生成部１０４」、「ヒット率計算部１０６」、「出力部１０７」、「基準設定部１０８」、「ヒット率判定部１０９」、「警告部１１０」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、上記の説明において「成果物記憶部１０２」、「マトリクス記憶部１０５」に格納される情報やデータや信号値や変数値やパラメータが、「データベース」の各項目として記憶される。「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵ９１１の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵ９１１の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００４８】
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、その他光ディスク等の記録媒体やＩＣチップに記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組合せ、さらには、ファームウェアとの組合せで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ＲＯＭ９１３等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
【符号の説明】
【００４９】
１１  要件定義書、１２  外部設計書、１３  内部設計書、１４  ソフトウェア設計書、１５  単体テスト計画書、１６  結合テスト計画書、１７  システムテスト計画書、１８  設計書比較表、１９  計画書比較表、２０  トレーサビリティマトリクス、２１  集計表、２２  Ｖ字シート、１００  成果物品質管理装置、１０１  成果物入力部、１０２  成果物記憶部、１０３  比較部、１０４  マトリクス生成部、１０５  マトリクス記憶部、１０６  ヒット率計算部、１０７  出力部、１０８  基準設定部、１０９  ヒット率判定部、１１０  警告部。
【要約】
【課題】ソフトウェア開発プロセスの各工程で作成される設計書等の品質が妥当であるか判定する。
【解決手段】成果物品質管理装置１００は、上位の工程で作成され、複数の要件が規定された設計書であって、規定された要件毎に異なるタグが割り当てられた第１設計書と、下位の工程で作成され、第１設計書で規定された要件に対応する記載に対して、その要件に割り当てられたタグが付された第２設計書とを入力し、第１設計書で規定された要件に割り当てられたタグのうち、いくつのタグが第２設計書に付与されているかを示すヒット率を計算して、出力する。
【選択図】図１３【図１】
0005449506.tif 000002
【図２】
0005449506.tif 000003
【図３】
0005449506.tif 000004
【図４】
0005449506.tif 000005
【図５】
0005449506.tif 000006
【図６】
0005449506.tif 000007
【図７】
0005449506.tif 000008
【図８】
0005449506.tif 000009
【図９】
0005449506.tif 000010
【図１０】
0005449506.tif 000011
【図１１】
0005449506.tif 000012
【図１２】
0005449506.tif 000013
【図１３】
0005449506.tif 000014
【図１４】
0005449506.tif 000015
【図１５】
0005449506.tif 000016