(57)【要約】【課題】開発の早い(開発中)段階でソフトウェアの品質や性能を評価する。【解決手段】ソフトウェア評価装置は、開発中のリビジョンおよび過去に開発されたリビジョンの各々に対応してメトリクスが登録された開発情報データベースと入出力装置に接続され、各リビジョンについて、メトリクスが各リビジョンの前のリビジョンから変動した量を変動パターンとして算出する変動パターン算出部と、過去に開発された各々の変動パターンと開発中のリビジョンの変動パターンとの類似度を算出する類似度算出部と、過去に開発された各リビジョンから類似度が高いリビジョンを選択し、選択されたリビジョンのメトリクスを利用して評価予測モデルを作成し、作成した評価予測モデルと開発中のリビジョンのメトリクスからソフトウェアの評価予測値を算出する評価予測部と、算出された評価予測値を入出力装置に表示する結果出力部とを備える。【選択図】  図１
2014241021.tif 000002
【特許請求の範囲】
【請求項１】
開発中のソフトウェアを評価するソフトウェア評価装置であって、前記ソフトウェアの開発中のリビジョンおよび過去に開発されたリビジョンの各リビジョンに対応してソフトウェアメトリクスとプロセスメトリクスが登録された開発情報データベースと入出力装置に接続され、
前記ソフトウェアの前記開発中のリビジョンおよび前記過去に開発されたリビジョンの各リビジョンについて、前記ソフトウェアメトリクス及び前記プロセスメトリクスの少なくとも一方が前記各リビジョンの前のリビジョンから変動した量を変動パターンとして算出する変動パターン算出部と、
前記ソフトウェアの前記過去に開発された各リビジョンの前記変動パターンについて、前記ソフトウェアの前記開発中のリビジョンの前記変動パターンとの類似度を算出する類似度算出部と、
前記ソフトウェアの前記過去に開発された各リビジョンから前記類似度が高いリビジョンを選択し、選択された前記リビジョンの前記ソフトウェアメトリクスと前記プロセスメトリクスを利用して、前記ソフトウェアの評価予測値を予測する評価予測モデルを作成し、作成した前記評価予測モデルと前記ソフトウェアの前記開発中のリビジョンの前記ソフトウェアメトリクス及び前記プロセスメトリクスの少なくとも一方から前記ソフトウェアの前記評価予測値を算出する評価予測部と、
算出された前記評価予測値を前記入出力装置に表示する結果出力部とを備えることを特徴とするソフトウェア評価装置。
【請求項２】
前記ソフトウェアの前記各リビジョンの前記ソフトウェアメトリクスを算出して前記開発情報データベースに登録し、前記入出力装置から入力された前記ソフトウェアのプロセスメトリクスを前記開発情報データベースに登録するメトリクス登録部をさらに備えることを特徴とする請求項１に記載のソフトウェア評価装置。
【請求項３】
前記メトリクス登録部で登録される前記ソフトウェアメトリクスは、前記ソフトウェアの前記各リビジョンのソースコードから取得可能なメトリクス及び前記ソフトウェアの設計モデルから取得可能なメトリクスの少なくとも一方であることを特徴とする請求項２に記載のソフトウェア評価装置。
【請求項４】
前記変動パターン算出部が算出する変動パターンは、前記ソフトウェアメトリクス及び前記プロセスメトリクスの少なくとも一方の変動の有無を表すことを特徴とする請求項１から請求項３のいずれか１項に記載のソフトウェア評価装置。
【請求項５】
前記変動パターン算出部は、前記各リビジョンの前記変動パターンとして、前記ソフトウェアメトリクスと前記プロセスメトリクスが前記各リビジョンの直前のリビジョンからの変動した量を算出することを特徴とする請求項１から請求項４のいずれか１項に記載のソフトウェア評価装置。
【請求項６】
前記変動パターン算出部は、前記ソフトウェアメトリクス及び前記プロセスメトリクスに欠損値が存在する場合に、前記欠損値を補完することを特徴とする請求項１から請求項５のいずれか１項に記載のソフトウェア評価装置。
【請求項７】
前記結果出力部は、前記ソフトウェアの前記過去に開発されたリビジョンの評価値推移、前記類似度算出部が算出された前記類似度、前記評価予測部で作成された前記評価予測モデル、および算出された前記評価予測値の少なくとも一つの項目を前記入出力装置に表示することを特徴とする請求項１から請求項６のいずれか１項に記載のソフトウェア評価装置。
【請求項８】
前記評価予測部は、算出した前記評価予測値が、前記開発中のリビジョンの直前のリビジョンの前記評価予測値と比較して劣化する場合、および、予め指定された前記評価予測値を下回る場合に前記入出力装置に通知を出力することを特徴とする請求項１から請求項７のいずれか１項に記載のソフトウェア評価装置。
【請求項９】
前記ソフトウェア評価装置は、他プロジェクトデータベースに接続し、前記評価予測部は、前記評価予測モデルを作成するために選択された前記ソフトウェアの過去に開発されたリビジョンの数が予め定めた数より少ない場合に、前記他プロジェクトデータベースに格納された類似するプロジェクトの情報を利用して前記評価予測モデルを作成することを特徴とする請求項１から請求項８のいずれか１項に記載のソフトウェア評価装置。
【請求項１０】
開発中のソフトウェアを評価するソフトウェア評価装置におけるソフトウェア評価方法であって、前記ソフトウェア評価装置は、前記ソフトウェアの開発中のリビジョンおよび過去に開発されたリビジョンの各リビジョンに対応してソフトウェアメトリクスとプロセスメトリクスが登録された開発情報データベースと入出力装置に接続され、
前記ソフトウェア評価装置は、
前記ソフトウェアの前記開発中のリビジョンおよび前記過去に開発されたリビジョンの各リビジョンについて、前記ソフトウェアメトリクス及び前記プロセスメトリクスの少なくとも一方が前記各リビジョンの前のリビジョンから変動した量を変動パターンとして算出し、
前記ソフトウェアの前記過去に開発された各リビジョンの前記変動パターンについて、前記ソフトウェアの前記開発中のリビジョンの前記変動パターンとの類似度を算出し、
前記ソフトウェアの前記過去に開発された各リビジョンのうち、前記類似度が高いリビジョンを選択し、選択された前記リビジョンの前記ソフトウェアメトリクスと前記プロセスメトリクスを利用して、前記ソフトウェアの評価予測値を予測する評価予測モデルを作成し、作成した前記評価予測モデルと前記ソフトウェアの前記開発中のリビジョンの前記ソフトウェアメトリクス及び前記プロセスメトリクスの少なくとも一方から前記ソフトウェアの前記評価予測値を算出し、
算出された前記評価予測値を前記入出力装置に表示することを特徴とするソフトウェア評価方法。
【請求項１１】
前記ソフトウェア評価装置は、
前記ソフトウェアの前記各リビジョンの前記ソフトウェアメトリクスを算出して前記開発情報データベースに登録し、前記入出力装置から入力された前記ソフトウェアのプロセスメトリクスを前記開発情報データベースに登録することを特徴とする請求項１０に記載のソフトウェア評価方法。
【請求項１２】
開発中のソフトウェアを評価するソフトウェア評価装置を構成し、前記ソフトウェアの開発中のリビジョンおよび過去に開発されたリビジョンの各リビジョンに対応してソフトウェアメトリクスとプロセスメトリクスが登録された開発情報データベースと入出力装置に接続するコンピュータに、
前記ソフトウェアの前記開発中のリビジョンおよび前記過去に開発されたリビジョンの各リビジョンについて、前記ソフトウェアメトリクス及び前記プロセスメトリクスの少なくとも一方が前記各リビジョンの前のリビジョンから変動した量を変動パターンとして算出する変動パターン算出処理、
前記ソフトウェアの前記過去に開発された各リビジョンの前記変動パターンについて、前記ソフトウェアの前記開発中のリビジョンの前記変動パターンとの類似度を算出する類似度算出処理、
前記ソフトウェアの前記過去に開発された各リビジョンのうち、前記類似度が高いリビジョンを選択し、選択された前記リビジョンの前記ソフトウェアメトリクスと前記プロセスメトリクスを利用して、前記ソフトウェアの評価予測値を予測する評価予測モデルを作成し、作成した前記評価予測モデルと前記ソフトウェアの前記開発中のリビジョンの前記ソフトウェアメトリクス及び前記プロセスメトリクスの少なくとも一方から前記ソフトウェアの前記評価予測値を算出する評価予測処理、
算出された前記評価予測値を前記入出力装置に表示する結果出力処理を実行させるためのソフトウェア評価プログラム。
【請求項１３】
前記ソフトウェアの前記各リビジョンの前記ソフトウェアメトリクスを算出して前記開発情報データベースに登録し、前記入出力装置から入力された前記ソフトウェアのプロセスメトリクスを前記開発情報データベースに登録するメトリクス登録処理を前記コンピュータにさらに実行させるための請求項１２に記載のソフトウェア評価プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、開発中のソフトウェアを評価する技術に関する。
【背景技術】
【０００２】
今日、組込みシステムの高機能化と多機能化に伴い、組込みシステムの主たる構成要素である組込みプロセッサ上で動作する組込みソフトウェアの記述量は肥大化している。特に、既存製品をもとに機能の追加や不具合の修正を行う派生開発や保守開発では、組込みソフトウェアの規模と複雑性が増す傾向が強い。そのため、開発の現場ではソフトウェア全体の品質と性能の確保が重大な課題であり、品質評価や性能評価が求められている。品質や性能に起因する問題が開発の後期で発見されると、手戻りにより開発コストが増加するため、できるだけ開発の早い段階で評価することが有効である。
【０００３】
ソフトウェアの品質は、ソフトウェアの潜在欠陥数の予測や、開発工数やテスト工数の予測に基づいて評価することがある。潜在欠陥数を予測する技術として、特許文献１がある。特許文献１には、「試験開始後間もない時点で、ソフトウェア内に存在する潜在バグ数の推定値の上限を見積もり、それに伴い試験期間を多少長めに見積もることで、試験工程の正確な計画を立てることを可能にするソフトウェア信頼性予測方法、ソフトウェア信頼性予測プログラム及び当該予測プログラムを記録したコンピュータ読み取り可能な記録媒体、並びにソフトウェア信頼性予測装置を提供する。」と記載されている。また、開発工数を予測する技術として、ＣＯＣＯＭＯII（例えば、非特許文献１参照）が知られている。ＣＯＣＯＭＯIIでは、既存のソースコードを利用した開発における工数予測のモデルが提供されている。
【０００４】
性能の評価を行う技術として、特許文献２がある。特許文献２には、「ソフトウェアの実効性能評価システムは以下のように構成する。実行環境情報取得部は、ソフトウェアの実行環境の仕様及び性能を示す実行環境情報を取得する。実行環境情報記憶部は、前記実行環境情報を記憶する。プログラム解析部は、前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析する。解析結果記憶部は、解析部が解析したネスト性能情報を記憶する。選択部は、プログラムコードに含まれるネストから性能を評価するネストを選択する。性能取得部は、実行環境情報と、前記選択部が選択したネストのネスト性能情報と、に基づいて、ソフトウェアの実効性能を示す値を取得する。」と記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１４０９２９号公報
【特許文献２】特開２０１１−１８１０３４号公報
【非特許文献】
【０００６】
【非特許文献１】Barry Boehm et.al 「Software Cost Estimation with Cocomo II」, Prentice Hall, 2000年
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１では、試験工程に入るまで、すなわちソフトウェアの開発中の工程では、潜在欠陥数を見積もることができない。また、非特許文献１では、既存のソースコードを利用する場合のベースとなるモデルは提供されるが、ベースからの変動要因は組織ごと、あるいは、プロジェクトごとに算出する必要があり、変動要因について解析するために追加工数が発生する。
【０００８】
一般に、ソフトウェア全体の性能に影響する度合いは、修正や追加を行う部分によって異なる。特許文献２では、実行環境情報とネスト性能情報とに基づいて、ソフトウェアの実効性能を評価するので、修正や追加した部分は考慮されず、また、ソースコードの実装後でないと性能を評価することができない。
【０００９】
このように、既存製品をもとに機能の追加や不具合の修正を行う派生開発や保守開発におけるソフトウェアの品質や性能は、ソースコード実装前やソースコード実装中など開発中での評価が難しい。
【００１０】
そこで、派生開発や保守開発において、開発の早い(開発中)段階でソフトウェアの品質や性能を評価する装置および方法が必要とされている。
【課題を解決するための手段】
【００１１】
開示するソフトウェア評価装置は、開発中のソフトウェアを評価するために、ソフトウェアの開発中のリビジョンおよび過去に開発されたリビジョンの各リビジョンに対応してソフトウェアメトリクスとプロセスメトリクスが登録された開発情報データベースと入出力装置に接続され、ソフトウェアの開発中のリビジョンおよび過去に開発されたリビジョンの各リビジョンについて、ソフトウェアメトリクス及びプロセスメトリクスの少なくとも一方が各リビジョンの前のリビジョンから変動した量を変動パターンとして算出する変動パターン算出部と、ソフトウェアの過去に開発された各リビジョンの変動パターンについて、ソフトウェアの開発中のリビジョンの変動パターンとの類似度を算出する類似度算出部と、ソフトウェアの過去に開発された各リビジョンから類似度が高いリビジョンを選択し、選択されたリビジョンのソフトウェアメトリクスとプロセスメトリクスを利用して、ソフトウェアの評価予測値を予測する評価予測モデルを作成し、作成した評価予測モデルとソフトウェアの開発中のリビジョンのソフトウェアメトリクス及びプロセスメトリクスの少なくとも一方からソフトウェアの評価予測値を算出する評価予測部と、算出された評価予測値を入出力装置に表示する結果出力部とを備える。
【発明の効果】
【００１２】
本発明によれば、開発の早い段階でソフトウェアの品質や性能を評価できる。
【図面の簡単な説明】
【００１３】
【図１】実施例１におけるソフトウェア評価装置の構成図の例である。
【図２】実施例１におけるソフトウェアメトリクステーブルの例である。
【図３】プロセスメトリクステーブルの例である。
【図４】性能評価テーブルの例である。
【図５】実施例１において結果出力部が出力する表示画面の一例を示す図である。
【図６】実施例１における評価処理実行部の動作の一例を示すフロー図である。
【図７】実施例１におけるメトリクス登録部の動作の一例を示すフロー図である。
【図８】実施例１における変動パターン算出部の動作の一例を示すフロー図である。
【図９】実施例１における類似度算出部の動作の一例を示すフロー図である。
【図１０】実施例１における評価予測部の動作の一例を示すフロー図である。
【図１１】実施例２におけるソフトウェア評価装置の構成図の例である。
【図１２】実施例２における変動パターン算出部の動作（前半）の一例を示すフロー図である。
【図１３】実施例２における変動パターン算出部の動作（後半）の一例を示すフロー図である。
【図１４】実施例２における評価予測部の動作の一例を示すフロー図である。
【図１５】実施例３におけるソフトウェア評価装置の構成図の例である。
【図１６】実施例３におけるソフトウェアメトリクステーブルの例である。
【図１７】品質評価テーブルの例である。
【図１８】実施例３におけるメトリクス登録部の動作の一例を示すフロー図である。
【図１９】実施例３における変動パターン算出部の動作（後半）の一例を示すフロー図である。
【図２０】実施例３における類似度算出部の動作の一例を示すフロー図である。
【図２１】実施例３における評価予測部の動作の一例を示すフロー図である。
【図２２】実施例４におけるソフトウェア評価装置の構成図の例である。
【図２３】実施例４における評価予測部の動作（前半）の一例を示すフロー図である。
【図２４】実施例４における評価予測部の動作（後半）の一例を示すフロー図である。
【図２５】実施例４において結果出力部が出力する表示画面の一例を示す図である。
【図２６】各実施例のソフトウェア評価装置を実現するコンピュータの構成の例を示す図である。
【発明を実施するための形態】
【００１４】
以下、実施例を、図面を用いて説明する。
【実施例１】
【００１５】
図１は、本実施例のソフトウェア評価プログラムを実行するソフトウェア評価装置の構成図の例である。図１に示すソフトウェア評価装置１は、評価処理実行部２、記録部３を備え、入出力装置４と接続されているコンピュータや専用のハードウェアである。また、ソフトウェア評価装置１は、ネットワーク６を介して管理サーバ５に接続されている。なお、ネットワーク６は、有線、無線を問わず既存の公衆網、ＬＡＮ、ＷＡＮなどを用いることができる。ソフトウェア評価装置１は、開発中のソフトウェアの指定されたリビジョンの指定された評価項目の予測値を算出する。本実施例ではリビジョンを指定するが、リリースやバージョンなどを指定することとしてもよい。
【００１６】
管理サーバ５は、開発中のソフトウェアのソースコードを管理する構成管理システム７、ソフトウェアの開発情報を格納する開発情報データベース８１、ソフトウェアの評価結果を格納する評価データベース９１を備えている。構成管理システム７はリポジトリ７１を持ち、例えば、ＳｕｂｖｅｒｓｉｏｎというＯＳＳ(Open Source Software)がある。開発情報データベース８１には、ソフトウェアメトリクスが格納されているソフトウェアメトリクステーブルと、プロセスメトリクスが格納されているプロセスメトリクステーブルが含まれる。評価データベース９１には、性能評価テーブルが含まれる。
【００１７】
図２は、ソフトウェアメトリクステーブルを示す図である。ソフトウェアメトリクステーブルには、リポジトリ７１に格納された各リビジョンのソースコードのリビジョン番号、ファイル名、ファイルのソースコード行数、ファイルのソースコードの複雑度が登録されている。登録されるソフトウェアメトリクスには、各ファイルのソースコード行数と複雑度に限らず、呼び出し関係の数、クラスの数、属性の数、関数の行数、コードクローン(Code Clone)の数などを用いてもよい。また、複数ファイルにより構成される、開発中のソフトウェア全体のソースコード行数に対する各ファイルのソースコード行数などの統計値を算出して、ソフトウェアメトリクスとして用いてもよい。
【００１８】
図３は、プロセスメトリクステーブルを示す図である。プロセスメトリクステーブルには、リビジョン番号、ファイル名、ファイルの開発言語、ファイルの開発人数、ファイルの開発者のスキルレベルが登録されている。登録されるプロセスメトリクスには、開発言語、開発人数、開発者のスキルレベルに限らず、開発拠点の数、ＯＳの名称やバージョンなどを用いてもよい。
【００１９】
図４は、性能評価テーブルを示す図である。性能評価テーブルには、リビジョン番号、評価項目名、評価値が登録されている。
【００２０】
説明を図１に戻す。評価処理実行部２は、メトリクス登録部２０１、変動パターン算出部２０２、類似度算出部２０３、評価予測部２０４、結果出力部２０５を備えている。評価処理実行部２は、メトリクス登録部２０１、変動パターン算出部２０２、類似度算出部２０３、評価予測部２０４、結果出力部２０５以外に、入出力装置４、管理サーバ５、図示しない外部記録装置などの周辺機器とのやり取りの制御を行う。また、評価処理実行部２は、ＣＰＵやプログラマブルなデバイス（ＦＰＧＡ、ＰＬＤなど）によって実行される。
【００２１】
記録部３は、変動パターン３０１、類似度３０２、および評価予測モデル３０３を記録すると共に、入出力装置４から入力される入力データや、ドライバ、データベーススタブ、ネットワークスタブなども記録している。記録部３は、例えばＲＯＭ、ＲＡＭ、ハードディスクなどのメモリである。また、記録部３は、以下に説明する評価処理実行部２の各処理を実行するための変数値やパラメータ値などのデータを記録し、ワークエリアとしても用いられる。
【００２２】
メトリクス登録部２０１は、開発中のソフトウェアの評価予測の対象とするリビジョン以前のリビジョンに関して、リポジトリ７１から各リビジョンのソースコードを取得し、ソフトウェアメトリクスを算出して、算出したソフトウェアメトリクスを開発情報データベース８１に格納する。また、メトリクス登録部２０１は、入出力装置４から入力されたプロセスメトリクスを開発情報データベース８１に格納する。ソフトウェアメトリクスの算出には、例えば、ＣＣＣＣなどのオープンソースで開発されたツールを使用してもよい。
【００２３】
変動パターン算出部２０２は、評価予測の対象とするリビジョン以前の任意のリビジョンとその直前のリビジョンに関して、ソフトウェアメトリクスとプロセスメトリクスを開発情報データベース８１から取得し、取得した任意のリビジョンのソフトウェアメトリクスとプロセスメトリクスが、その直前のリビジョンから変動した量を変動パターン３０１として算出する。変動パターン算出部２０２は、算出した変動パターン３０１を記録部３に記録する。
【００２４】
式（１）は、変動パターン３０１の一例として、図２と図３におけるリビジョンＣからリビジョンＤへの変動パターン３０１を示すものである。これをリビジョンＤの変動パターン３０１と呼ぶ。例えば、図２に示すソフトウェアメトリクステーブルから、ファイル１のソースコード行数はリビジョンＣの３５０からリビジョンＤの３７０へと２０増加し、ファイル１の複雑度はリビジョンＣの１７からリビジョンＤの１５へと２減少する。式（１）で示す例では、変動量を数値で表現するため、数値で表されない開発言語は変動パターン３０１の項目に含めていない。変動パターン３０１は、数値の変動量を表すものに限らず、例えば、変化の有無を表現するものであってもよい。式（２）は、変化の有無を表現する変動パターン３０１の一例を示す。変動がある場合を「１」、変動がない場合を「０」とし、式（１）と同様に、リビジョンＣからリビジョンＤへの変動パターン３０１を表す。
変動パターン＝（ファイル１のソースコード行数変動量、
ファイル１の複雑度変動量、
ファイル１の開発人数変動量、
ファイル１の開発者のスキルレベル変動量、
ファイル２のソースコード行数変動量、
ファイル２の複雑度変動量、
ファイル２の開発人数変動量、
ファイル２の開発者のスキルレベル変動量）
＝（＋２０、−２、＋１、−１、＋１０、＋４、０、０）
・・・（１）
変動パターン＝（ファイル１のソースコード行数、
ファイル１の複雑度、
ファイル１の開発言語、
ファイル１の開発人数、
ファイル１の開発者のスキルレベル、
ファイル２のソースコード行数、
ファイル２の複雑度、
ファイル２の開発言語
ファイル２の開発人数、
ファイル２の開発者のスキルレベル）
＝（１、１、０、１、１、１、１、０、０、０）    ・・・（２）
類似度算出部２０３は、評価予測の対象とするリビジョンより前のリビジョンの変動パターン３０１について、評価予測の対象となるリビジョンの変動パターン３０１との類似度３０２を算出し、算出した類似度３０２を記録部３に記録する。類似度３０２は、例えば、各変動パターン３０１をベクトルと見なし、ベクトル間の距離（ユークリッド距離やマハラノビス距離等）とする。
【００２５】
評価予測部２０４は、評価予測の対象とするリビジョンの評価予測値を算出するための評価予測モデル３０３を作成し、作成した評価予測モデル３０３を記録部３に記録する。また、評価予測部２０４は、記録部３に記録された評価予測モデル３０３により、評価予測の対象とするリビジョンの評価予測値を算出する。結果出力部２０５は、結果を入出力装置４へ出力する。
【００２６】
図５は、結果出力部２０５が入出力装置４へ出力する表示画面の一例を示す図であり、表示画面は評価値推移表示部４０Ａ、予測解析概要表示部４０Ｂ、および予測結果表示部４０Ｃを含む構成である。評価値推移表示部４０Ａは、予測する評価項目の評価値の時間推移を表示し、予測解析概要表示部４０Ｂは、評価予測の設定などを含めたサマリを表示する。予測結果表示部４０Ｃは、評価予測部２０４で作成した評価予測モデル３０３と、評価予測モデル３０３により算出した評価予測値を表示する。図５に示す表示画面は一例であり、このうちの一部を表示する構成でもよい。
【００２７】
次に、ソフトウェア評価装置１の動作について説明する。図６は、評価処理実行部２の動作の一例を示すフロー図である。
【００２８】
評価処理実行部２は、開発中のソフトウェアの評価予測の対象とするリビジョンであるリビジョンＰを指定し、また、予測する評価項目である評価項目Ｑを指定する（Ｓ６０１）。評価処理実行部２は、リビジョンＰ以前のリビジョンに関して、ソフトウェアメトリクスとプロセスメトリクスを開発情報データベース８１に登録する（Ｓ６０２）。Ｓ６０２の詳細については、図７のメトリクス登録フローで説明する。
【００２９】
評価処理実行部２は、リビジョンＰ以前のリビジョンのうち、任意のリビジョンとその直前のリビジョンに関して、ソフトウェアメトリクスとプロセスメトリクスを開発情報データベース８１から取得し、ソフトウェアメトリクスとプロセスメトリクスの変動パターン３０１を算出する（Ｓ６０３）。Ｓ６０３の詳細については、図８の変動パターン算出フローで説明する。評価処理実行部２は、リビジョンＰの変動パターンとリビジョンＰより前の任意のリビジョンの変動パターンとの類似度３０２を算出する（Ｓ６０４）。Ｓ６０４の詳細については、図９の類似度算出フローで説明する。
【００３０】
評価処理実行部２は、Ｓ６０４で算出した類似度３０２が高い(類似している)、評価予測モデル３０３の作成に利用する過去のリビジョンを選択し、選択したリビジョンの情報を利用して評価予測モデル３０３を作成する（Ｓ６０５）。評価処理実行部２は、作成した評価予測モデル３０３を使用して評価予測値を算出する（Ｓ６０６）。Ｓ６０５とＳ６０６の詳細については、図１０の評価予測フローで説明する。
【００３１】
評価予測の結果を出力し（Ｓ６０７）、処理を終了する。
【００３２】
図７は、メトリクス登録部２０１の動作フローの一例を示す。本フローは、先に説明した図６のＳ６０２の詳細である。
【００３３】
メトリクス登録部２０１は、評価予測の対象とするリビジョンＰ以前のリビジョンに関して、ソフトウェアメトリクスが開発情報データベース８１に登録されていないリビジョンが存在するか判定する（Ｓ７０１）。ソフトウェアメトリクスが未登録のリビジョンが存在する場合はＳ７０２に移行し、存在しない場合はＳ７０３に移行する。メトリクス登録部２０１は、ソフトウェアメトリクスが未登録のリビジョンに関して、ソフトウェアメトリクスを算出し、開発情報データベース８１に登録する（Ｓ７０２）。
【００３４】
メトリクス登録部２０１は、入出力装置４から入力されたプロセスメトリクスが存在するか判定する（Ｓ７０３）。入力されたプロセスメトリクスが存在する場合はＳ７０４に移行し、存在しない場合は処理を終了する。入出力装置４から入力されたプロセスメトリクスを開発情報データベース８１に登録し（Ｓ７０４）、処理を終了する。本フローでは、ソフトウェアメトリクスを先に登録するが、プロセスメトリクスを先に登録しても構わない。
【００３５】
図８は、変動パターン算出部２０２の動作フローの一例を示す。本フローは、先に説明した図６のＳ６０３の詳細である。
【００３６】
変動パターン算出部２０２は、評価予測の対象とするリビジョンＰ以前の任意のリビジョンに関して、記録部３に変動パターン３０１が記録されていないリビジョンが存在するか判定する（Ｓ８０１）。変動パターン３０１が記録されていないリビジョンが存在する場合はＳ８０２に移行し、存在しない場合は処理を終了する。
【００３７】
変動パターン算出部２０２は、変動パターン３０１が記録されていないリビジョンに関して、そのリビジョンとその直前のリビジョンのソフトウェアメトリクスとプロセスメトリクスを開発情報データベース８１から取得する（Ｓ８０２）。変動パターン算出部２０２は、Ｓ８０２で取得したソフトウェアメトリクスとプロセスメトリクスから変動パターン３０１を算出する（Ｓ８０３）。変動パターン算出部２０２は、Ｓ８０３で算出した変動パターン３０１を記録部３に記録する（Ｓ８０４）。
【００３８】
図９は、類似度算出部２０３の動作フローの一例を示す。本フローは、先に説明した図６のＳ６０４の詳細である。
【００３９】
類似度算出部２０３は、記録部３に記録された各リビジョンの変動パターン３０１について、評価対象とするリビジョンＰの変動パターン３０１との類似度３０２が算出されていないリビジョンがあるかを判定する（Ｓ９０１）。類似度３０２が算出されていないリビジョンが存在する場合はＳ９０２に移行し、存在しない場合は処理を終了する。
【００４０】
類似度算出部２０３は、リビジョンＰの変動パターン３０１との類似度３０２が算出されていないリビジョンについて、リビジョンＰの変動パターン３０１との類似度３０２を算出する（Ｓ９０２）。類似度算出部２０３は、Ｓ９０２で算出した類似度３０２を記録部３に記録する（Ｓ９０３）。
【００４１】
図１０は、評価予測部２０４の動作フローの一例を示す。本フローは、先に説明した図６のＳ６０５とＳ６０６の詳細である。
【００４２】
評価予測部２０４は、類似度判断基準を設定する（Ｓ１００１）。類似度判断基準として、例えば、評価予測モデル３０３の作成に利用するリビジョンとして採用する類似度３０２の最小値を指定する。すなわち、最小値未満の類似度３０２のリビジョンを評価予測モデル３０３の作成に利用しない。または、評価予測モデル３０３の作成に利用するリビジョンの数を指定し、類似度３０２が高いリビジョンから順に指定された数のリビジョンが類似度判断基準を満たすとしてもよい。類似度判断基準は、開発者が指定してもよいし、システムのデフォルトで設定してもよい。
【００４３】
評価予測部２０４は、指定された類似度判断基準を満たすリビジョンがあるか判定する（Ｓ１００２）。類似度判断基準を満たすリビジョンが存在する場合はＳ１００３に移行し、存在しない場合はＳ１００９に移行する。
【００４４】
評価予測部２０４は、類似度判断基準を満たすリビジョンを、評価予測モデル３０３の作成に利用するリビジョンとして選択する（Ｓ１００３）。評価予測部２０４は、Ｓ１００３で選択したリビジョンのソフトウェアメトリクスとプロセスメトリクスを開発情報データベース８１から取得する（Ｓ１００４）。評価予測部２０４は、Ｓ１００３で選択したリビジョンの予測評価項目Ｑの値（評価値）を評価データベース９１から取得する（Ｓ１００５）。評価予測の対象とするリビジョンＰより前のリビジョンの予測評価項目Ｑの値（評価値）は、評価予測部２０４がそのリビジョンを評価予測の対象として動作したときに評価データベース９１に格納されている。
【００４５】
評価予測部２０４は、Ｓ１００４で取得したメトリクスとＳ１００５で取得した評価値を利用して、評価予測モデル３０３を作成する（Ｓ１００６）。評価予測モデル３０３は、例えば、Ｓ１００４で取得したメトリクスを説明変数とし、Ｓ１００５で取得した評価値を目的変数とする回帰分析を用いて作成する。
【００４６】
評価予測部２０４は、評価対象となるリビジョンＰのソフトウェアメトリクスとプロセスメトリクスを開発情報データベース８１から取得する（Ｓ１００７）。評価予測部２０４は、Ｓ１００７で取得したメトリクスをＳ１００６で作成した評価予測モデル３０３へ代入することにより、リビジョンＰの評価項目Ｑの予測値を算出し（Ｓ１００８）、算出したリビジョンＰの評価項目Ｑの予測値(評価値)を評価データベース９１に格納して、処理を終了する。なお、図示を省略するが、予め指定された評価予測値を下回る場合に入出力装置４に通知を出力する。
【００４７】
一方、Ｓ１００２で類似度判断基準を満たすリビジョンが存在しない場合は、評価予測部２０４は、指定された類似度判断基準では評価予測モデル３０３の作成ができない、すなわち評価予測の実行不可の通知を入出力装置４へ出力し（Ｓ１００９）、処理を終了する。
【実施例２】
【００４８】
実施例１では、変動パターン算出部２０２による変動パターン算出に必要な各種メトリクスデータには、欠損がないことを前提としていたが、本実施例では、各種メトリクスデータに欠損がある場合に、補完することを説明する。
【００４９】
図１１は、本実施例のソフトウェア評価プログラムを実行するソフトウェア評価装置１１の構成図を示す。ソフトウェア評価装置１１は、実施例１の変動パターン算出部２０２の代わりに変動パターン算出部２０６を備え、実施例１の評価予測部２０４の代わりに評価予測部２０７を備え、記録部３に補完情報３０４が記録されている点が、実施例１とは異なる。実施例１に示した同一の符号を付された構成と、同一の機能を有する部分については、説明を省略する。
【００５０】
変動パターン算出部２０６は、開発中のソフトウェアの評価予測に使用するメトリクスに欠損値が存在する場合は、欠損値を補完し、補完情報３０４として記録部３に記録する。変動パターン算出部２０６は、欠損値を補完できない場合は、通知を入出力装置４へ出力する。続いて、変動パターン算出部２０６は、開発中のソフトウェアの評価予測の対象とするリビジョン以前の任意のリビジョンとその直前のリビジョンに関して、ソフトウェアメトリクスとプロセスメトリクスを開発情報データベース８１から取得し、補完情報３０４が記録されている場合は記録部３から補完情報３０４を取得する。変動パターン算出部２０６は、取得したリビジョンのソフトウェアメトリクスとプロセスメトリクスが、その直前のリビジョンから変動した量を変動パターン３０１として算出する。変動パターン算出部２０６は、算出した変動パターン３０１を記録部３に記録する。
【００５１】
評価予測部２０７は、評価予測の対象とするリビジョンの評価予測値を算出するための評価予測モデル３０３を作成し、作成した評価予測モデル３０３を記録部３に記録する。また、評価予測部２０７は、記録部３に記録された評価予測モデル３０３により、評価予測の対象とするリビジョンの評価予測値を算出する。評価予測部２０７は、評価予測モデル３０３を作成する際には、評価予測モデル３０３の作成に利用するリビジョンのソフトウェアメトリクスとプロセスメトリクスを開発情報データベース８１から取得し、補完情報３０４がある場合は記録部３から取得する。
【００５２】
図１２および図１３は、本実施例の変動パターン算出部２０６の動作フローの一例を示す。実施例１の図８のステップと同一ステップには同一符号を付して重複する説明は省略する。
【００５３】
変動パターン算出部２０６は、開発情報データベース８１に格納されているメトリクスの中から、予測に使用するメトリクスを指定する（Ｓ１２０１）。変動パターン算出部２０６は、Ｓ１２０１で指定されたメトリクスの値に、欠損値が存在するか判定する（Ｓ１２０２）。本実施例では、測定不良などによる欠損値だけではなく、新規に追加したファイルなどが存在し、開発中のソフトウェアの過去のリビジョンではメトリクスの値が存在しない場合にも、欠損値として扱う。欠損値が存在する場合はＳ１２０３に移行し、存在しない場合はＳ８０１に移行する。
【００５４】
変動パターン算出部２０６は、任意の欠損値に対して、新たに算出することが可能であるかを判定する（Ｓ１２０３）。たとえば、新規に追加したファイルのソースコード行数などは、数えることができるので、新たに算出することが可能である。変動パターン算出部２０６は、新たにメトリクスの値を算出できる場合はメトリクスの値を算出し（Ｓ１２０４）、算出できない場合はＳ１２０５に移行する。
【００５５】
変動パターン算出部２０６は、Ｓ１２０３で算出不可能と判定した欠損値について、そのメトリクスの値を補完可能であるかを判定する（Ｓ１２０５）。補完できる場合はＳ１２０６に移行し、補完できない場合には、Ｓ１２０７に移行する。
【００５６】
変動パターン算出部２０６は、Ｓ１２０５で補完可能と判定したメトリクスの欠損値を補完し、補完情報３０４を記録部３に記録する（Ｓ１２０６）。例えば、新しくファイルが追加されたことでメトリクスの種類が増え、過去のリビジョンに追加されたファイルのメトリクスが存在しない場合に、その値を「ゼロ」とみなすことで補完する。または、過去のリビジョンの平均値で補完する。補完方法は、これらに限るものではない。
【００５７】
変動パターン算出部２０６は、Ｓ１２０５で補完不可能と判定した欠損値を持つメトリクスについて、このメトリクスを開発中のソフトウェアの評価予測に使用できないことの通知を入出力装置４へ出力する（Ｓ１２０７）。
【００５８】
変動パターン算出部２０６は、予測に使用できないメトリクスが存在する通知に対応する、入出力装置４からのオペレータによる指示に基づいて、予測を続けるかを判定し（Ｓ１２０８）、予測を終了する場合は、処理を終了する。
【００５９】
Ｓ１２０２でメトリクスの欠損値がない場合、図１３のＳ８０１を経て、変動パターン算出部２０６は、変動パターン３０１が記録されていないリビジョンに関して、そのリビジョンとその直前のリビジョンのソフトウェアメトリクスとプロセスメトリクスを開発情報データベース８１から取得し、両リビジョンの補完情報３０４が記録部３に記録されている場合には、補完情報３０４を取得し（Ｓ１３０２）、変動パターンを算出する。
【００６０】
図１４は、本実施例の評価予測部２０７の動作フローの一例を示す。実施例１の図１０におけるステップと同一ステップには同一符号を付して重複する説明は省略する。図１０のＳ１００４に替えて、図１４は次に説明するＳ１４０４の動作を含んでいる。
【００６１】
評価予測部２０７は、Ｓ１００３で選択されたリビジョンのソフトウェアメトリクスとプロセスメトリクスを開発情報データベース８１から取得し、補完情報３０４が記録部３に記録されている場合には、補完情報３０４を取得する（Ｓ１４０４）。
【００６２】
本実施例によれば、評価予測に使用するメトリクスの値がデータベースに登録されていない場合でも、補完することで、開発中のソフトウェアの評価が可能になる。
【実施例３】
【００６３】
実施例１および実施例２では、構成管理システム７のリポジトリ７１に格納されたソースコードから算出したソフトウェアメトリクスを使用したが、本実施例では、構成管理システム７を設けないで、モデルリポジトリ７２に格納されたモデル情報から算出したソフトウェアメトリクスを使用する。本実施例で算出する変動パターン３０１には、直前のリビジョンからの変動量ではなく、対象のリビジョンより前の任意のリビジョンからの変動量を用いる。
【００６４】
図１５は、本実施例のソフトウェア評価プログラムを実行するソフトウェア評価装置の構成図を示す。ソフトウェア評価装置１２は、実施例２のメトリクス登録部２０１、変動パターン算出部２０６、類似度算出部２０３、及び評価予測部２０７の各々の代わりに、メトリクス登録部２０８、変動パターン算出部２０９、類似度算出部２１０、及び評価予測部２１１の各々を備え、管理サーバ５にモデルリポジトリ７２、開発情報データベース８２、及び評価データベース９２を備えている点が実施例２と異なる。実施例２に示した同一の符号を付された構成と、同一の機能を有する部分については、説明を省略する。
【００６５】
管理サーバ５は、開発中のソフトウェアの設計モデルを管理するモデルリポジトリ７２、ソフトウェアの開発情報を格納する開発情報データベース８２、ソフトウェアの評価値を格納する評価データベース９２を備えている。モデルリポジトリ７２は、例えば、ＵＭＬ（Unified Modeling Language）やＭＡＴＬＡＢ（MATrix LABoratory）などで設計されたモデルの情報を、ＸＭＩ（XML Metadata Interchange）形式や独自のテキスト形式で格納することができる。本実施例におけるモデルリポジトリ７２は構成管理システムを使用しないが、モデルの情報を格納可能な構成管理システムを使用してもよい。開発情報データベース８２には、ソフトウェアメトリクスが格納されているソフトウェアメトリクステーブルが含まれる。評価データベース９２には、品質評価テーブルが含まれる。開発情報データベース８２に含まれるテーブルは、ソフトウェアメトリクステーブルに限らず、実施例１または実施例２と同様のプロセスメトリクステーブルを含めてもよい。また、評価データベース９２には、品質評価テーブルの代わりに性能評価テーブルが含まれるとしてもよく、品質評価テーブルと性能評価テーブルが含まれるとしてもよい。
【００６６】
図１６は、開発情報データベース８２に含まれるソフトウェアメトリクステーブルを示す図である。ソフトウェアメトリクステーブルには、モデルリポジトリ７２に格納された各リビジョンのモデルのリビジョン番号、クラス名、クラス名が示すクラスが属するパッケージ内の他のクラスとの関連の数、クラス名が示すクラスが属するパッケージ外の他のクラスとの関連の数、クラス名が示すクラスの汎化レベルが登録されている。登録されるソフトウェアメトリクスは、上記に限らず、設計モデルから算出可能な任意のメトリクスを用いることができる。また、統計値を算出して用いてもよい。
【００６７】
図１７は、評価データベース９２に含まれる品質評価テーブルを示す図である。品質評価テーブルには、リビジョン番号、評価項目名、評価値が登録されている。性能評価テーブルとは、評価項目名が示す評価項目が性能ではなく、工数や再利用性のような品質に係る項目である点が異なる。
【００６８】
説明を図１５に戻す。変動パターン算出部２０９は、評価予測に使用するメトリクスに欠損値が存在する場合は、欠損値を補完し、補完情報３０４として記録部３に記録する。変動パターン算出部２０９は、欠損値の補完ができない場合は、補完不可の通知を入出力装置４に出力する。変動パターン算出部２０９は、評価予測の対象とするリビジョンより前の任意の「リビジョンの組合せ」に関して、ソフトウェアメトリクスを開発情報データベース８２から取得し、補完情報３０４が記録されている場合は記録部３から補完情報３０４を取得する。変動パターン算出部２０９は、取得したリビジョンのソフトウェアメトリクスから、その変動量を変動パターン３０１として算出し、算出した変動パターン３０１を記録部３に記録する。
【００６９】
評価予測部２１１は、評価予測の対象とするリビジョンの評価予測値を算出するための評価予測モデル３０３を作成し、作成した評価予測モデル３０３を記録部３に記録する。評価予測部２１１は、記録部３に記録した評価予測モデル３０３を用いて、評価予測の対象とするリビジョンの評価予測値を算出する。評価予測部２１１は、評価予測モデル３０３を作成する際には、評価予測モデル３０３の作成に利用するリビジョンのソフトウェアメトリクスを開発情報データベース８２から取得し、補完情報３０４がある場合は記録部３から取得する。
【００７０】
図１８に、本実施例のメトリクス登録部２０８の動作フローの一例示す。図１８は、図７のプロセスメトリクスに関する処理（Ｓ７０３，Ｓ７０４）が省略されている点が図７と異なり、Ｓ７０１，Ｓ７０２は同様であるので説明を省略する。
【００７１】
図１９は、本実施例における変動パターン算出部２０９の動作フローの後半（図１３に対応）の一例を示す。実施例２の図１３におけるステップと同一ステップには同一符号を付して重複する説明は省略する。本実施例の変動パターン算出部２０９の動作フロー前半は、実施例２の図１２に示す動作フローと同様である。
【００７２】
変動パターン算出部２０９は、評価対象とするリビジョンＰより前のリビジョンＲを指定し、リビジョンＰとリビジョンＲのソフトウェアメトリクスを開発情報データベース８２から取得し、また、両リビジョンＰ、Ｒの補完情報３０４が記録部３に記録されている場合には、補完情報３０４を取得し、取得したソフトウェアメトリクスと補完情報３０４から、リビジョンＰの変動パターン３０１を算出する（Ｓ１９００）。
【００７３】
変動パターン算出部２０９は、リビジョンＰより前の任意のリビジョンに関して、記録部３に変動パターン３０１が記録されていない「リビジョンの組合せ」が存在するかを判定する（Ｓ１９０１）。リビジョンの組合せとは、リビジョンＰより前の任意のリビジョンと、それよりさらに前のリビジョンとの組合せを意味する。変動パターン３０１が記録されていない「リビジョンの組合せ」が存在する場合はステップＳ１９０２に移行し、存在しない場合は処理を終了する。
【００７４】
変動パターン算出部２０９は、変動パターン３０１が記録されていない任意の「リビジョンの組合せ」に関して、その「リビジョンの組合せ」に含まれるリビジョンのソフトウェアメトリクスを開発情報データベース８２から取得し、また、リビジョンの補完情報３０４が記録部３に記録されている場合には、補完情報３０４を取得する（Ｓ１９０２）。
【００７５】
図１９に示す本実施例の変動パターン算出部２０９の動作フローでは、「リビジョンの組合せ」の全てに関して変動パターン３０１が算出されるが、変動パターン３０１が記録されていない任意のリビジョンについて、その直前のリビジョンとの変動パターン３０１の算出から順に過去のリビジョンに向けて変動パターン３０１の算出を繰り返し、リビジョン間の変動量が予め指定した変動量を超えた時点で、その任意のリビジョンについての変動パターン３０１の算出を終了するとしてもよい。この場合、例えば、予め指定する変動量には、評価対象とするリビジョンＰの変動パターン３０１における変動量を用いることができる。
【００７６】
図２０は、本実施例における類似度算出部２１０の動作フローの一例を示す。実施例１の図９におけるステップと同一ステップには同一符号を付して重複する説明は省略する。
【００７７】
類似度算出部２１０は、記録部３に記録された変動パターン３０１について、評価対象とするリビジョンＰの変動パターン３０１との類似度３０２が算出されていない「リビジョンの組合せ」があるか判定する（Ｓ２００１）。類似度３０２が算出されていない「リビジョンに組合せ」が存在する場合はステップＳ２００２に移行し、存在しない場合は処理を終了する。
【００７８】
類似度算出部２１０は、リビジョンＰの変動パターン３０１との類似度３０２が算出されていない任意の「リビジョンの組合せ」について、変動パターン３０１の類似度３０２を算出する（Ｓ２００２）。
【００７９】
図２１は、本実施例の評価予測部２１１の動作フローの一例を示す。実施例２の図１４におけるステップと同一ステップには同一符号を付して重複する説明は省略する。
【００８０】
評価予測部２１１は、設定された類似度判断基準を満たす、リビジョンＰの変動パターン３０１との「リビジョンの組合せ」があるかを判定する（Ｓ２１０２）。類似度判断基準を満たす「リビジョンの組合せ」が存在する場合はＳ２１０３に移行し、存在しない場合はＳ１００９に移行する。
【００８１】
評価予測部２１１は、類似度判断基準を満たす「リビジョンの組合せ」に含まれる全てのリビジョンを、評価予測モデル３０３の作成に利用するリビジョンとして選択する（Ｓ２１０３）。
【００８２】
評価予測部２１１は、Ｓ２１０３で選択したリビジョンのソフトウェアメトリクスを開発情報データベース８２から取得し、補完情報３０４が記録部３に記録されている場合には、補完情報３０４を取得する（Ｓ２１０４）。
【００８３】
なお、図示を省略するが、評価予測部２１１は、評価予測値が、前記開発中のリビジョンの直前のリビジョンの評価予測値と比較して劣化する場合、および、予め指定された評価予測値を下回る場合に入出力装置に通知を出力する。
【００８４】
本実施例によれば、直前リビジョンからの変動量が小さい場合であっても、評価予測対象とするリビジョンより前の任意のリビジョンとの変動パターン３０１を指定し、開発中のソフトウェアを評価できる。また、実装前の設計モデルから算出可能なメトリクスを使用することにより、実装前の開発早期にソフトウェアを評価できる。
【実施例４】
【００８５】
実施例３では、評価する開発中のソフトウェアの情報を利用した。しかし、評価するソフトウェアのリビジョン数が少ない場合、また、評価するソフトウェアのリビジョン数は十分であっても、評価予測の対象とするリビジョンの変動パターン３０１との類似度３０２が高くなる変動パターン３０１を持つリビジョン数が少ない場合には、評価予測モデル３０３を作成できない場合がある。本実施例では、評価予測モデル３０３を作成するためのリビジョン数が十分ではない場合に、過去の類似プロジェクトの情報を利用する。
【００８６】
図２２は、本実施例のソフトウェア評価プログラムを実行するソフトウェア評価装置の構成図を示す。ソフトウェア評価装置１３は、実施例３の評価予測部２１１の代わりに評価予測部２１２を備え、管理サーバ５にはモデルリポジトリ７２、開発情報データベース８２、評価データベース９２に加えて過去プロジェクトデータベース７３が備えられている点が、実施例３とは異なる。既に説明した図１５に示された同一の符号を付された構成と、同一の機能を有する部分については、説明を省略する。
【００８７】
評価予測部２１２は、評価予測の対象とするリビジョンの評価予測値を算出するための評価予測モデル３０３を作成する。評価予測モデル３０３の作成に使用するリビジョン数が十分でない場合には、過去プロジェクトデータベース７３から類似パターン情報を取得し、取得した情報を利用して評価予測モデル３０３を作成する。作成した評価予測モデル３０３を記録部３に記録し、記録された評価予測モデル３０３により、評価予測の対象となるリビジョンの評価予測値を算出する。
【００８８】
図２３および図２４は、本実施例の評価予測部２１２の動作フローの一例を示す。実施例３の図２１におけるステップと同一ステップには同一符号を付して重複する説明は省略する。
【００８９】
評価予測部２１２は、Ｓ２１０３で選択されたリビジョンの数が、評価予測モデル３０３の作成に十分であるかを判定する（Ｓ２３１０）。判定するためのリビジョンの数は予め定めておく。十分である場合はＳ２１０４に移行し、十分ではない場合はＳ２３１１に移行する。
【００９０】
評価予測部２１２は、評価するソフトウェアの類似している過去のプロジェクトが存在するかを判定する（Ｓ２３１１）。ここで、「プロジェクトが類似する」とは、例えば、同種のシステムや装置を開発したプロジェクト、同種の機能を持つシステムや装置を開発したプロジェクトなどが考えられる。類似する過去のプロジェクトが存在する場合はＳ２４０１に移行し、存在しない場合はＳ１００９に移行する。
【００９１】
評価予測部２１２は、類似すると判定された過去プロジェクトの情報に、類似パターンとして使用できる情報が存在するか判定する（Ｓ２４０１）。存在する場合はＳ２４０２に移行し、存在しない場合は評価予測を実行不可の通知を入出力装置４に出力して（Ｓ２４０４）、処理を終了する。例えば、評価するソフトウェアと過去のプロジェクトとの両方から、同じ意味を表すメトリクスを取得できる場合に、類似パターンとして使用できる情報が存在すると判断することができる。ここで、類似パターンとして使用できると判定するためには、該当の過去プロジェクトについて、予測する評価項目の値が測定されている必要がある。
【００９２】
評価予測部２１２は、過去プロジェクトデータベース７３から、使用できると判定された類似パターンの情報を取得する（Ｓ２４０２）。評価予測部２１２は、Ｓ２４０２で取得した情報を利用して、評価予測モデル３０３を作成する（Ｓ２４０３）。
【００９３】
図２５は、本実施例の結果出力部２０５が入出力装置４に出力する表示画面の一例を示す図であり、評価値推移表示部４０Ａ、予測解析概要表示部４０Ｂ、過去プロジェクト情報４０Ｄ、予測結果表示部４０Ｅで構成される。既に説明した図５と同一符号を付された表示部については、説明を省略する。過去プロジェクト情報表示部４０Ｄでは、評価予測部２１２での評価予測において、類似する過去プロジェクトを使用した場合に、使用した過去プロジェクトの名称や概要などを表示する。予測結果表示部４０Ｅでは、評価予測部２１２で作成した評価予測モデル３０３と、評価予測モデル３０３により算出した評価予測値を表示する。図２５に示す表示画面は一例であり、このうちの一部を表示する構成でもよい。
【００９４】
本実施例によれば、評価する開発中のソフトウェアの開発期間が短く、評価値を予測するために必要なリビジョン数が蓄積されていない場合であっても、類似する過去のプロジェクト情報を利用して評価することが可能となる。
【００９５】
図２６は、各実施例のソフトウェア評価装置を実現するコンピュータの構成の一例を示す図である。
【００９６】
コンピュータ２６０は、ＣＰＵ２６１、通信インタフェース２６２、入出力インタフェース２６３、記録部２６４（ＲＯＭ、ＲＡＭ、ハードディスクドライブなど）、記録媒体読取装置２６５などを備えている。また、上記の各構成部は、バス２６６によってそれぞれ接続されている。
【００９７】
ＣＰＵ２６１は、記録部２６４に格納されている、前述の評価処理実行部２の各処理などを実行する。
【００９８】
通信インタフェース２６２は、必要に応じて、他のコンピュータやサーバとの間のＬＡＮ接続やインターネット接続や無線接続のためのインタフェースである。また、他の装置に接続され、外部装置からのデータの入出力を制御する。
【００９９】
入出力インタフェース２６３には、入出力装置２６３ａ（入出力装置４、マウス、キーボード、ディスプレイなど）が接続され、入出力装置２６３ａからの情報を入力し、バス２６６を介してＣＰＵ２６１に出力する。また、ＣＰＵ２６１からの命令に従って、入出力装置２６３ａの画面上に操作情報などを表示する。
【０１００】
記録部２６４には、ＣＰＵ２６１が実行するプログラムやデータが記録されている。また、ワークエリアなどとして使用される。
【０１０１】
記録媒体読取装置２６５は、ＣＰＵ２６１の制御にしたがった記録媒体２６５ａに対するデータの読み書きを制御する。そして、記録媒体２６５ａ、記録媒体読取装置２６５の制御で書き込まれたデータを記憶したり、記録媒体２６５ａに記憶されたデータを読み取らせたりする。また、着脱可能な記録媒体２６５ａは、コンピュータで読み取り可能な記録媒体として、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。
【０１０２】
このようなコンピュータを用いることによって、説明した各処理が実行される。その場合、システムが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、システムが有すべき機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体２６５ａに記録しておくことができる。
【０１０３】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータはサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１０４】
説明した実施形態によれば、派生開発や保守開発において、開発の早い(開発中)段階でソフトウェアの品質や性能を評価できる。また、修正や追加を行う部分による影響度合いを考慮したソフトウェアの品質や性能を評価できる。
【０１０５】
本発明は、上記した実施例に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１０６】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１０７】
１：ソフトウェア評価装置、２：評価処理実行部、３：記録部、４：入出力装置、５：管理サーバ、６：ネットワーク、７：構成管理システム、１１：ソフトウェア評価装置、１２：ソフトウェア評価装置、１３：ソフトウェア評価装置、４０Ａ：評価値推移表示部、４０Ｂ：予測解析概要表示部、４０Ｃ：予測結果表示部、７１：リポジトリ、７２：モデルリポジトリ、７３：過去プロジェクトデータベース、８１：開発情報データベース、８２：開発情報データベース、９１：評価データベース、９２：評価データベース、２０１：メトリクス登録部、２０２：変動パターン算出部、２０３：類似度算出部、２０４：評価予測部、２０５：結果出力部、２０６：変動パターン算出部、２０７：評価予測部、２０８：メトリクス登録部、２０９：変動パターン算出部、２１０：類似度算出部、２１１：評価予測部、２１２：評価予測部、２６０：コンピュータ、２６１：ＣＰＵ、２６２：通信インタフェース、２６３：入出力インタフェース、２６３ａ：入出力装置、２６４：記録部、２６５：記録媒体読取装置、２６５ａ：記録媒体、２６６：バス、３０１：変動パターン、３０２：類似度、３０３：評価予測モデル、３０４：補完情報。
【図１】
2014241021.tif 000003
【図２】
2014241021.tif 000004
【図３】
2014241021.tif 000005
【図４】
2014241021.tif 000006
【図５】
2014241021.tif 000007
【図６】
2014241021.tif 000008
【図７】
2014241021.tif 000009
【図８】
2014241021.tif 000010
【図９】
2014241021.tif 000011
【図１０】
2014241021.tif 000012
【図１１】
2014241021.tif 000013
【図１２】
2014241021.tif 000014
【図１３】
2014241021.tif 000015
【図１４】
2014241021.tif 000016
【図１５】
2014241021.tif 000017
【図１６】
2014241021.tif 000018
【図１７】
2014241021.tif 000019
【図１８】
2014241021.tif 000020
【図１９】
2014241021.tif 000021
【図２０】
2014241021.tif 000022
【図２１】
2014241021.tif 000023
【図２２】
2014241021.tif 000024
【図２３】
2014241021.tif 000025
【図２４】
2014241021.tif 000026
【図２５】
2014241021.tif 000027
【図２６】
2014241021.tif 000028