JP2014241021A - ソフトウェア評価装置および方法 - Google Patents

ソフトウェア評価装置および方法 Download PDF

Info

Publication number
JP2014241021A
JP2014241021A JP2013122647A JP2013122647A JP2014241021A JP 2014241021 A JP2014241021 A JP 2014241021A JP 2013122647 A JP2013122647 A JP 2013122647A JP 2013122647 A JP2013122647 A JP 2013122647A JP 2014241021 A JP2014241021 A JP 2014241021A
Authority
JP
Japan
Prior art keywords
software
revision
evaluation
metrics
development
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013122647A
Other languages
English (en)
Inventor
早苗 中尾
Sanae Nakao
早苗 中尾
知彦 茂岡
Tomohiko Shigeoka
知彦 茂岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2013122647A priority Critical patent/JP2014241021A/ja
Priority to US14/300,812 priority patent/US20140365990A1/en
Priority to DE102014008551.1A priority patent/DE102014008551A1/de
Publication of JP2014241021A publication Critical patent/JP2014241021A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】開発の早い(開発中)段階でソフトウェアの品質や性能を評価する。【解決手段】ソフトウェア評価装置は、開発中のリビジョンおよび過去に開発されたリビジョンの各々に対応してメトリクスが登録された開発情報データベースと入出力装置に接続され、各リビジョンについて、メトリクスが各リビジョンの前のリビジョンから変動した量を変動パターンとして算出する変動パターン算出部と、過去に開発された各々の変動パターンと開発中のリビジョンの変動パターンとの類似度を算出する類似度算出部と、過去に開発された各リビジョンから類似度が高いリビジョンを選択し、選択されたリビジョンのメトリクスを利用して評価予測モデルを作成し、作成した評価予測モデルと開発中のリビジョンのメトリクスからソフトウェアの評価予測値を算出する評価予測部と、算出された評価予測値を入出力装置に表示する結果出力部とを備える。【選択図】 図1

Description

本発明は、開発中のソフトウェアを評価する技術に関する。
今日、組込みシステムの高機能化と多機能化に伴い、組込みシステムの主たる構成要素である組込みプロセッサ上で動作する組込みソフトウェアの記述量は肥大化している。特に、既存製品をもとに機能の追加や不具合の修正を行う派生開発や保守開発では、組込みソフトウェアの規模と複雑性が増す傾向が強い。そのため、開発の現場ではソフトウェア全体の品質と性能の確保が重大な課題であり、品質評価や性能評価が求められている。品質や性能に起因する問題が開発の後期で発見されると、手戻りにより開発コストが増加するため、できるだけ開発の早い段階で評価することが有効である。
ソフトウェアの品質は、ソフトウェアの潜在欠陥数の予測や、開発工数やテスト工数の予測に基づいて評価することがある。潜在欠陥数を予測する技術として、特許文献1がある。特許文献1には、「試験開始後間もない時点で、ソフトウェア内に存在する潜在バグ数の推定値の上限を見積もり、それに伴い試験期間を多少長めに見積もることで、試験工程の正確な計画を立てることを可能にするソフトウェア信頼性予測方法、ソフトウェア信頼性予測プログラム及び当該予測プログラムを記録したコンピュータ読み取り可能な記録媒体、並びにソフトウェア信頼性予測装置を提供する。」と記載されている。また、開発工数を予測する技術として、COCOMOII(例えば、非特許文献1参照)が知られている。COCOMOIIでは、既存のソースコードを利用した開発における工数予測のモデルが提供されている。
性能の評価を行う技術として、特許文献2がある。特許文献2には、「ソフトウェアの実効性能評価システムは以下のように構成する。実行環境情報取得部は、ソフトウェアの実行環境の仕様及び性能を示す実行環境情報を取得する。実行環境情報記憶部は、前記実行環境情報を記憶する。プログラム解析部は、前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析する。解析結果記憶部は、解析部が解析したネスト性能情報を記憶する。選択部は、プログラムコードに含まれるネストから性能を評価するネストを選択する。性能取得部は、実行環境情報と、前記選択部が選択したネストのネスト性能情報と、に基づいて、ソフトウェアの実効性能を示す値を取得する。」と記載されている。
特開2003−140929号公報 特開2011−181034号公報
Barry Boehm et.al 「Software Cost Estimation with Cocomo II」, Prentice Hall, 2000年
特許文献1では、試験工程に入るまで、すなわちソフトウェアの開発中の工程では、潜在欠陥数を見積もることができない。また、非特許文献1では、既存のソースコードを利用する場合のベースとなるモデルは提供されるが、ベースからの変動要因は組織ごと、あるいは、プロジェクトごとに算出する必要があり、変動要因について解析するために追加工数が発生する。
一般に、ソフトウェア全体の性能に影響する度合いは、修正や追加を行う部分によって異なる。特許文献2では、実行環境情報とネスト性能情報とに基づいて、ソフトウェアの実効性能を評価するので、修正や追加した部分は考慮されず、また、ソースコードの実装後でないと性能を評価することができない。
このように、既存製品をもとに機能の追加や不具合の修正を行う派生開発や保守開発におけるソフトウェアの品質や性能は、ソースコード実装前やソースコード実装中など開発中での評価が難しい。
そこで、派生開発や保守開発において、開発の早い(開発中)段階でソフトウェアの品質や性能を評価する装置および方法が必要とされている。
開示するソフトウェア評価装置は、開発中のソフトウェアを評価するために、ソフトウェアの開発中のリビジョンおよび過去に開発されたリビジョンの各リビジョンに対応してソフトウェアメトリクスとプロセスメトリクスが登録された開発情報データベースと入出力装置に接続され、ソフトウェアの開発中のリビジョンおよび過去に開発されたリビジョンの各リビジョンについて、ソフトウェアメトリクス及びプロセスメトリクスの少なくとも一方が各リビジョンの前のリビジョンから変動した量を変動パターンとして算出する変動パターン算出部と、ソフトウェアの過去に開発された各リビジョンの変動パターンについて、ソフトウェアの開発中のリビジョンの変動パターンとの類似度を算出する類似度算出部と、ソフトウェアの過去に開発された各リビジョンから類似度が高いリビジョンを選択し、選択されたリビジョンのソフトウェアメトリクスとプロセスメトリクスを利用して、ソフトウェアの評価予測値を予測する評価予測モデルを作成し、作成した評価予測モデルとソフトウェアの開発中のリビジョンのソフトウェアメトリクス及びプロセスメトリクスの少なくとも一方からソフトウェアの評価予測値を算出する評価予測部と、算出された評価予測値を入出力装置に表示する結果出力部とを備える。
本発明によれば、開発の早い段階でソフトウェアの品質や性能を評価できる。
実施例1におけるソフトウェア評価装置の構成図の例である。 実施例1におけるソフトウェアメトリクステーブルの例である。 プロセスメトリクステーブルの例である。 性能評価テーブルの例である。 実施例1において結果出力部が出力する表示画面の一例を示す図である。 実施例1における評価処理実行部の動作の一例を示すフロー図である。 実施例1におけるメトリクス登録部の動作の一例を示すフロー図である。 実施例1における変動パターン算出部の動作の一例を示すフロー図である。 実施例1における類似度算出部の動作の一例を示すフロー図である。 実施例1における評価予測部の動作の一例を示すフロー図である。 実施例2におけるソフトウェア評価装置の構成図の例である。 実施例2における変動パターン算出部の動作(前半)の一例を示すフロー図である。 実施例2における変動パターン算出部の動作(後半)の一例を示すフロー図である。 実施例2における評価予測部の動作の一例を示すフロー図である。 実施例3におけるソフトウェア評価装置の構成図の例である。 実施例3におけるソフトウェアメトリクステーブルの例である。 品質評価テーブルの例である。 実施例3におけるメトリクス登録部の動作の一例を示すフロー図である。 実施例3における変動パターン算出部の動作(後半)の一例を示すフロー図である。 実施例3における類似度算出部の動作の一例を示すフロー図である。 実施例3における評価予測部の動作の一例を示すフロー図である。 実施例4におけるソフトウェア評価装置の構成図の例である。 実施例4における評価予測部の動作(前半)の一例を示すフロー図である。 実施例4における評価予測部の動作(後半)の一例を示すフロー図である。 実施例4において結果出力部が出力する表示画面の一例を示す図である。 各実施例のソフトウェア評価装置を実現するコンピュータの構成の例を示す図である。
以下、実施例を、図面を用いて説明する。
図1は、本実施例のソフトウェア評価プログラムを実行するソフトウェア評価装置の構成図の例である。図1に示すソフトウェア評価装置1は、評価処理実行部2、記録部3を備え、入出力装置4と接続されているコンピュータや専用のハードウェアである。また、ソフトウェア評価装置1は、ネットワーク6を介して管理サーバ5に接続されている。なお、ネットワーク6は、有線、無線を問わず既存の公衆網、LAN、WANなどを用いることができる。ソフトウェア評価装置1は、開発中のソフトウェアの指定されたリビジョンの指定された評価項目の予測値を算出する。本実施例ではリビジョンを指定するが、リリースやバージョンなどを指定することとしてもよい。
管理サーバ5は、開発中のソフトウェアのソースコードを管理する構成管理システム7、ソフトウェアの開発情報を格納する開発情報データベース81、ソフトウェアの評価結果を格納する評価データベース91を備えている。構成管理システム7はリポジトリ71を持ち、例えば、SubversionというOSS(Open Source Software)がある。開発情報データベース81には、ソフトウェアメトリクスが格納されているソフトウェアメトリクステーブルと、プロセスメトリクスが格納されているプロセスメトリクステーブルが含まれる。評価データベース91には、性能評価テーブルが含まれる。
図2は、ソフトウェアメトリクステーブルを示す図である。ソフトウェアメトリクステーブルには、リポジトリ71に格納された各リビジョンのソースコードのリビジョン番号、ファイル名、ファイルのソースコード行数、ファイルのソースコードの複雑度が登録されている。登録されるソフトウェアメトリクスには、各ファイルのソースコード行数と複雑度に限らず、呼び出し関係の数、クラスの数、属性の数、関数の行数、コードクローン(Code Clone)の数などを用いてもよい。また、複数ファイルにより構成される、開発中のソフトウェア全体のソースコード行数に対する各ファイルのソースコード行数などの統計値を算出して、ソフトウェアメトリクスとして用いてもよい。
図3は、プロセスメトリクステーブルを示す図である。プロセスメトリクステーブルには、リビジョン番号、ファイル名、ファイルの開発言語、ファイルの開発人数、ファイルの開発者のスキルレベルが登録されている。登録されるプロセスメトリクスには、開発言語、開発人数、開発者のスキルレベルに限らず、開発拠点の数、OSの名称やバージョンなどを用いてもよい。
図4は、性能評価テーブルを示す図である。性能評価テーブルには、リビジョン番号、評価項目名、評価値が登録されている。
説明を図1に戻す。評価処理実行部2は、メトリクス登録部201、変動パターン算出部202、類似度算出部203、評価予測部204、結果出力部205を備えている。評価処理実行部2は、メトリクス登録部201、変動パターン算出部202、類似度算出部203、評価予測部204、結果出力部205以外に、入出力装置4、管理サーバ5、図示しない外部記録装置などの周辺機器とのやり取りの制御を行う。また、評価処理実行部2は、CPUやプログラマブルなデバイス(FPGA、PLDなど)によって実行される。
記録部3は、変動パターン301、類似度302、および評価予測モデル303を記録すると共に、入出力装置4から入力される入力データや、ドライバ、データベーススタブ、ネットワークスタブなども記録している。記録部3は、例えばROM、RAM、ハードディスクなどのメモリである。また、記録部3は、以下に説明する評価処理実行部2の各処理を実行するための変数値やパラメータ値などのデータを記録し、ワークエリアとしても用いられる。
メトリクス登録部201は、開発中のソフトウェアの評価予測の対象とするリビジョン以前のリビジョンに関して、リポジトリ71から各リビジョンのソースコードを取得し、ソフトウェアメトリクスを算出して、算出したソフトウェアメトリクスを開発情報データベース81に格納する。また、メトリクス登録部201は、入出力装置4から入力されたプロセスメトリクスを開発情報データベース81に格納する。ソフトウェアメトリクスの算出には、例えば、CCCCなどのオープンソースで開発されたツールを使用してもよい。
変動パターン算出部202は、評価予測の対象とするリビジョン以前の任意のリビジョンとその直前のリビジョンに関して、ソフトウェアメトリクスとプロセスメトリクスを開発情報データベース81から取得し、取得した任意のリビジョンのソフトウェアメトリクスとプロセスメトリクスが、その直前のリビジョンから変動した量を変動パターン301として算出する。変動パターン算出部202は、算出した変動パターン301を記録部3に記録する。
式(1)は、変動パターン301の一例として、図2と図3におけるリビジョンCからリビジョンDへの変動パターン301を示すものである。これをリビジョンDの変動パターン301と呼ぶ。例えば、図2に示すソフトウェアメトリクステーブルから、ファイル1のソースコード行数はリビジョンCの350からリビジョンDの370へと20増加し、ファイル1の複雑度はリビジョンCの17からリビジョンDの15へと2減少する。式(1)で示す例では、変動量を数値で表現するため、数値で表されない開発言語は変動パターン301の項目に含めていない。変動パターン301は、数値の変動量を表すものに限らず、例えば、変化の有無を表現するものであってもよい。式(2)は、変化の有無を表現する変動パターン301の一例を示す。変動がある場合を「1」、変動がない場合を「0」とし、式(1)と同様に、リビジョンCからリビジョンDへの変動パターン301を表す。
変動パターン=(ファイル1のソースコード行数変動量、
ファイル1の複雑度変動量、
ファイル1の開発人数変動量、
ファイル1の開発者のスキルレベル変動量、
ファイル2のソースコード行数変動量、
ファイル2の複雑度変動量、
ファイル2の開発人数変動量、
ファイル2の開発者のスキルレベル変動量)
=(+20、−2、+1、−1、+10、+4、0、0)
・・・(1)
変動パターン=(ファイル1のソースコード行数、
ファイル1の複雑度、
ファイル1の開発言語、
ファイル1の開発人数、
ファイル1の開発者のスキルレベル、
ファイル2のソースコード行数、
ファイル2の複雑度、
ファイル2の開発言語
ファイル2の開発人数、
ファイル2の開発者のスキルレベル)
=(1、1、0、1、1、1、1、0、0、0) ・・・(2)
類似度算出部203は、評価予測の対象とするリビジョンより前のリビジョンの変動パターン301について、評価予測の対象となるリビジョンの変動パターン301との類似度302を算出し、算出した類似度302を記録部3に記録する。類似度302は、例えば、各変動パターン301をベクトルと見なし、ベクトル間の距離(ユークリッド距離やマハラノビス距離等)とする。
評価予測部204は、評価予測の対象とするリビジョンの評価予測値を算出するための評価予測モデル303を作成し、作成した評価予測モデル303を記録部3に記録する。また、評価予測部204は、記録部3に記録された評価予測モデル303により、評価予測の対象とするリビジョンの評価予測値を算出する。結果出力部205は、結果を入出力装置4へ出力する。
図5は、結果出力部205が入出力装置4へ出力する表示画面の一例を示す図であり、表示画面は評価値推移表示部40A、予測解析概要表示部40B、および予測結果表示部40Cを含む構成である。評価値推移表示部40Aは、予測する評価項目の評価値の時間推移を表示し、予測解析概要表示部40Bは、評価予測の設定などを含めたサマリを表示する。予測結果表示部40Cは、評価予測部204で作成した評価予測モデル303と、評価予測モデル303により算出した評価予測値を表示する。図5に示す表示画面は一例であり、このうちの一部を表示する構成でもよい。
次に、ソフトウェア評価装置1の動作について説明する。図6は、評価処理実行部2の動作の一例を示すフロー図である。
評価処理実行部2は、開発中のソフトウェアの評価予測の対象とするリビジョンであるリビジョンPを指定し、また、予測する評価項目である評価項目Qを指定する(S601)。評価処理実行部2は、リビジョンP以前のリビジョンに関して、ソフトウェアメトリクスとプロセスメトリクスを開発情報データベース81に登録する(S602)。S602の詳細については、図7のメトリクス登録フローで説明する。
評価処理実行部2は、リビジョンP以前のリビジョンのうち、任意のリビジョンとその直前のリビジョンに関して、ソフトウェアメトリクスとプロセスメトリクスを開発情報データベース81から取得し、ソフトウェアメトリクスとプロセスメトリクスの変動パターン301を算出する(S603)。S603の詳細については、図8の変動パターン算出フローで説明する。評価処理実行部2は、リビジョンPの変動パターンとリビジョンPより前の任意のリビジョンの変動パターンとの類似度302を算出する(S604)。S604の詳細については、図9の類似度算出フローで説明する。
評価処理実行部2は、S604で算出した類似度302が高い(類似している)、評価予測モデル303の作成に利用する過去のリビジョンを選択し、選択したリビジョンの情報を利用して評価予測モデル303を作成する(S605)。評価処理実行部2は、作成した評価予測モデル303を使用して評価予測値を算出する(S606)。S605とS606の詳細については、図10の評価予測フローで説明する。
評価予測の結果を出力し(S607)、処理を終了する。
図7は、メトリクス登録部201の動作フローの一例を示す。本フローは、先に説明した図6のS602の詳細である。
メトリクス登録部201は、評価予測の対象とするリビジョンP以前のリビジョンに関して、ソフトウェアメトリクスが開発情報データベース81に登録されていないリビジョンが存在するか判定する(S701)。ソフトウェアメトリクスが未登録のリビジョンが存在する場合はS702に移行し、存在しない場合はS703に移行する。メトリクス登録部201は、ソフトウェアメトリクスが未登録のリビジョンに関して、ソフトウェアメトリクスを算出し、開発情報データベース81に登録する(S702)。
メトリクス登録部201は、入出力装置4から入力されたプロセスメトリクスが存在するか判定する(S703)。入力されたプロセスメトリクスが存在する場合はS704に移行し、存在しない場合は処理を終了する。入出力装置4から入力されたプロセスメトリクスを開発情報データベース81に登録し(S704)、処理を終了する。本フローでは、ソフトウェアメトリクスを先に登録するが、プロセスメトリクスを先に登録しても構わない。
図8は、変動パターン算出部202の動作フローの一例を示す。本フローは、先に説明した図6のS603の詳細である。
変動パターン算出部202は、評価予測の対象とするリビジョンP以前の任意のリビジョンに関して、記録部3に変動パターン301が記録されていないリビジョンが存在するか判定する(S801)。変動パターン301が記録されていないリビジョンが存在する場合はS802に移行し、存在しない場合は処理を終了する。
変動パターン算出部202は、変動パターン301が記録されていないリビジョンに関して、そのリビジョンとその直前のリビジョンのソフトウェアメトリクスとプロセスメトリクスを開発情報データベース81から取得する(S802)。変動パターン算出部202は、S802で取得したソフトウェアメトリクスとプロセスメトリクスから変動パターン301を算出する(S803)。変動パターン算出部202は、S803で算出した変動パターン301を記録部3に記録する(S804)。
図9は、類似度算出部203の動作フローの一例を示す。本フローは、先に説明した図6のS604の詳細である。
類似度算出部203は、記録部3に記録された各リビジョンの変動パターン301について、評価対象とするリビジョンPの変動パターン301との類似度302が算出されていないリビジョンがあるかを判定する(S901)。類似度302が算出されていないリビジョンが存在する場合はS902に移行し、存在しない場合は処理を終了する。
類似度算出部203は、リビジョンPの変動パターン301との類似度302が算出されていないリビジョンについて、リビジョンPの変動パターン301との類似度302を算出する(S902)。類似度算出部203は、S902で算出した類似度302を記録部3に記録する(S903)。
図10は、評価予測部204の動作フローの一例を示す。本フローは、先に説明した図6のS605とS606の詳細である。
評価予測部204は、類似度判断基準を設定する(S1001)。類似度判断基準として、例えば、評価予測モデル303の作成に利用するリビジョンとして採用する類似度302の最小値を指定する。すなわち、最小値未満の類似度302のリビジョンを評価予測モデル303の作成に利用しない。または、評価予測モデル303の作成に利用するリビジョンの数を指定し、類似度302が高いリビジョンから順に指定された数のリビジョンが類似度判断基準を満たすとしてもよい。類似度判断基準は、開発者が指定してもよいし、システムのデフォルトで設定してもよい。
評価予測部204は、指定された類似度判断基準を満たすリビジョンがあるか判定する(S1002)。類似度判断基準を満たすリビジョンが存在する場合はS1003に移行し、存在しない場合はS1009に移行する。
評価予測部204は、類似度判断基準を満たすリビジョンを、評価予測モデル303の作成に利用するリビジョンとして選択する(S1003)。評価予測部204は、S1003で選択したリビジョンのソフトウェアメトリクスとプロセスメトリクスを開発情報データベース81から取得する(S1004)。評価予測部204は、S1003で選択したリビジョンの予測評価項目Qの値(評価値)を評価データベース91から取得する(S1005)。評価予測の対象とするリビジョンPより前のリビジョンの予測評価項目Qの値(評価値)は、評価予測部204がそのリビジョンを評価予測の対象として動作したときに評価データベース91に格納されている。
評価予測部204は、S1004で取得したメトリクスとS1005で取得した評価値を利用して、評価予測モデル303を作成する(S1006)。評価予測モデル303は、例えば、S1004で取得したメトリクスを説明変数とし、S1005で取得した評価値を目的変数とする回帰分析を用いて作成する。
評価予測部204は、評価対象となるリビジョンPのソフトウェアメトリクスとプロセスメトリクスを開発情報データベース81から取得する(S1007)。評価予測部204は、S1007で取得したメトリクスをS1006で作成した評価予測モデル303へ代入することにより、リビジョンPの評価項目Qの予測値を算出し(S1008)、算出したリビジョンPの評価項目Qの予測値(評価値)を評価データベース91に格納して、処理を終了する。なお、図示を省略するが、予め指定された評価予測値を下回る場合に入出力装置4に通知を出力する。
一方、S1002で類似度判断基準を満たすリビジョンが存在しない場合は、評価予測部204は、指定された類似度判断基準では評価予測モデル303の作成ができない、すなわち評価予測の実行不可の通知を入出力装置4へ出力し(S1009)、処理を終了する。
実施例1では、変動パターン算出部202による変動パターン算出に必要な各種メトリクスデータには、欠損がないことを前提としていたが、本実施例では、各種メトリクスデータに欠損がある場合に、補完することを説明する。
図11は、本実施例のソフトウェア評価プログラムを実行するソフトウェア評価装置11の構成図を示す。ソフトウェア評価装置11は、実施例1の変動パターン算出部202の代わりに変動パターン算出部206を備え、実施例1の評価予測部204の代わりに評価予測部207を備え、記録部3に補完情報304が記録されている点が、実施例1とは異なる。実施例1に示した同一の符号を付された構成と、同一の機能を有する部分については、説明を省略する。
変動パターン算出部206は、開発中のソフトウェアの評価予測に使用するメトリクスに欠損値が存在する場合は、欠損値を補完し、補完情報304として記録部3に記録する。変動パターン算出部206は、欠損値を補完できない場合は、通知を入出力装置4へ出力する。続いて、変動パターン算出部206は、開発中のソフトウェアの評価予測の対象とするリビジョン以前の任意のリビジョンとその直前のリビジョンに関して、ソフトウェアメトリクスとプロセスメトリクスを開発情報データベース81から取得し、補完情報304が記録されている場合は記録部3から補完情報304を取得する。変動パターン算出部206は、取得したリビジョンのソフトウェアメトリクスとプロセスメトリクスが、その直前のリビジョンから変動した量を変動パターン301として算出する。変動パターン算出部206は、算出した変動パターン301を記録部3に記録する。
評価予測部207は、評価予測の対象とするリビジョンの評価予測値を算出するための評価予測モデル303を作成し、作成した評価予測モデル303を記録部3に記録する。また、評価予測部207は、記録部3に記録された評価予測モデル303により、評価予測の対象とするリビジョンの評価予測値を算出する。評価予測部207は、評価予測モデル303を作成する際には、評価予測モデル303の作成に利用するリビジョンのソフトウェアメトリクスとプロセスメトリクスを開発情報データベース81から取得し、補完情報304がある場合は記録部3から取得する。
図12および図13は、本実施例の変動パターン算出部206の動作フローの一例を示す。実施例1の図8のステップと同一ステップには同一符号を付して重複する説明は省略する。
変動パターン算出部206は、開発情報データベース81に格納されているメトリクスの中から、予測に使用するメトリクスを指定する(S1201)。変動パターン算出部206は、S1201で指定されたメトリクスの値に、欠損値が存在するか判定する(S1202)。本実施例では、測定不良などによる欠損値だけではなく、新規に追加したファイルなどが存在し、開発中のソフトウェアの過去のリビジョンではメトリクスの値が存在しない場合にも、欠損値として扱う。欠損値が存在する場合はS1203に移行し、存在しない場合はS801に移行する。
変動パターン算出部206は、任意の欠損値に対して、新たに算出することが可能であるかを判定する(S1203)。たとえば、新規に追加したファイルのソースコード行数などは、数えることができるので、新たに算出することが可能である。変動パターン算出部206は、新たにメトリクスの値を算出できる場合はメトリクスの値を算出し(S1204)、算出できない場合はS1205に移行する。
変動パターン算出部206は、S1203で算出不可能と判定した欠損値について、そのメトリクスの値を補完可能であるかを判定する(S1205)。補完できる場合はS1206に移行し、補完できない場合には、S1207に移行する。
変動パターン算出部206は、S1205で補完可能と判定したメトリクスの欠損値を補完し、補完情報304を記録部3に記録する(S1206)。例えば、新しくファイルが追加されたことでメトリクスの種類が増え、過去のリビジョンに追加されたファイルのメトリクスが存在しない場合に、その値を「ゼロ」とみなすことで補完する。または、過去のリビジョンの平均値で補完する。補完方法は、これらに限るものではない。
変動パターン算出部206は、S1205で補完不可能と判定した欠損値を持つメトリクスについて、このメトリクスを開発中のソフトウェアの評価予測に使用できないことの通知を入出力装置4へ出力する(S1207)。
変動パターン算出部206は、予測に使用できないメトリクスが存在する通知に対応する、入出力装置4からのオペレータによる指示に基づいて、予測を続けるかを判定し(S1208)、予測を終了する場合は、処理を終了する。
S1202でメトリクスの欠損値がない場合、図13のS801を経て、変動パターン算出部206は、変動パターン301が記録されていないリビジョンに関して、そのリビジョンとその直前のリビジョンのソフトウェアメトリクスとプロセスメトリクスを開発情報データベース81から取得し、両リビジョンの補完情報304が記録部3に記録されている場合には、補完情報304を取得し(S1302)、変動パターンを算出する。
図14は、本実施例の評価予測部207の動作フローの一例を示す。実施例1の図10におけるステップと同一ステップには同一符号を付して重複する説明は省略する。図10のS1004に替えて、図14は次に説明するS1404の動作を含んでいる。
評価予測部207は、S1003で選択されたリビジョンのソフトウェアメトリクスとプロセスメトリクスを開発情報データベース81から取得し、補完情報304が記録部3に記録されている場合には、補完情報304を取得する(S1404)。
本実施例によれば、評価予測に使用するメトリクスの値がデータベースに登録されていない場合でも、補完することで、開発中のソフトウェアの評価が可能になる。
実施例1および実施例2では、構成管理システム7のリポジトリ71に格納されたソースコードから算出したソフトウェアメトリクスを使用したが、本実施例では、構成管理システム7を設けないで、モデルリポジトリ72に格納されたモデル情報から算出したソフトウェアメトリクスを使用する。本実施例で算出する変動パターン301には、直前のリビジョンからの変動量ではなく、対象のリビジョンより前の任意のリビジョンからの変動量を用いる。
図15は、本実施例のソフトウェア評価プログラムを実行するソフトウェア評価装置の構成図を示す。ソフトウェア評価装置12は、実施例2のメトリクス登録部201、変動パターン算出部206、類似度算出部203、及び評価予測部207の各々の代わりに、メトリクス登録部208、変動パターン算出部209、類似度算出部210、及び評価予測部211の各々を備え、管理サーバ5にモデルリポジトリ72、開発情報データベース82、及び評価データベース92を備えている点が実施例2と異なる。実施例2に示した同一の符号を付された構成と、同一の機能を有する部分については、説明を省略する。
管理サーバ5は、開発中のソフトウェアの設計モデルを管理するモデルリポジトリ72、ソフトウェアの開発情報を格納する開発情報データベース82、ソフトウェアの評価値を格納する評価データベース92を備えている。モデルリポジトリ72は、例えば、UML(Unified Modeling Language)やMATLAB(MATrix LABoratory)などで設計されたモデルの情報を、XMI(XML Metadata Interchange)形式や独自のテキスト形式で格納することができる。本実施例におけるモデルリポジトリ72は構成管理システムを使用しないが、モデルの情報を格納可能な構成管理システムを使用してもよい。開発情報データベース82には、ソフトウェアメトリクスが格納されているソフトウェアメトリクステーブルが含まれる。評価データベース92には、品質評価テーブルが含まれる。開発情報データベース82に含まれるテーブルは、ソフトウェアメトリクステーブルに限らず、実施例1または実施例2と同様のプロセスメトリクステーブルを含めてもよい。また、評価データベース92には、品質評価テーブルの代わりに性能評価テーブルが含まれるとしてもよく、品質評価テーブルと性能評価テーブルが含まれるとしてもよい。
図16は、開発情報データベース82に含まれるソフトウェアメトリクステーブルを示す図である。ソフトウェアメトリクステーブルには、モデルリポジトリ72に格納された各リビジョンのモデルのリビジョン番号、クラス名、クラス名が示すクラスが属するパッケージ内の他のクラスとの関連の数、クラス名が示すクラスが属するパッケージ外の他のクラスとの関連の数、クラス名が示すクラスの汎化レベルが登録されている。登録されるソフトウェアメトリクスは、上記に限らず、設計モデルから算出可能な任意のメトリクスを用いることができる。また、統計値を算出して用いてもよい。
図17は、評価データベース92に含まれる品質評価テーブルを示す図である。品質評価テーブルには、リビジョン番号、評価項目名、評価値が登録されている。性能評価テーブルとは、評価項目名が示す評価項目が性能ではなく、工数や再利用性のような品質に係る項目である点が異なる。
説明を図15に戻す。変動パターン算出部209は、評価予測に使用するメトリクスに欠損値が存在する場合は、欠損値を補完し、補完情報304として記録部3に記録する。変動パターン算出部209は、欠損値の補完ができない場合は、補完不可の通知を入出力装置4に出力する。変動パターン算出部209は、評価予測の対象とするリビジョンより前の任意の「リビジョンの組合せ」に関して、ソフトウェアメトリクスを開発情報データベース82から取得し、補完情報304が記録されている場合は記録部3から補完情報304を取得する。変動パターン算出部209は、取得したリビジョンのソフトウェアメトリクスから、その変動量を変動パターン301として算出し、算出した変動パターン301を記録部3に記録する。
評価予測部211は、評価予測の対象とするリビジョンの評価予測値を算出するための評価予測モデル303を作成し、作成した評価予測モデル303を記録部3に記録する。評価予測部211は、記録部3に記録した評価予測モデル303を用いて、評価予測の対象とするリビジョンの評価予測値を算出する。評価予測部211は、評価予測モデル303を作成する際には、評価予測モデル303の作成に利用するリビジョンのソフトウェアメトリクスを開発情報データベース82から取得し、補完情報304がある場合は記録部3から取得する。
図18に、本実施例のメトリクス登録部208の動作フローの一例示す。図18は、図7のプロセスメトリクスに関する処理(S703,S704)が省略されている点が図7と異なり、S701,S702は同様であるので説明を省略する。
図19は、本実施例における変動パターン算出部209の動作フローの後半(図13に対応)の一例を示す。実施例2の図13におけるステップと同一ステップには同一符号を付して重複する説明は省略する。本実施例の変動パターン算出部209の動作フロー前半は、実施例2の図12に示す動作フローと同様である。
変動パターン算出部209は、評価対象とするリビジョンPより前のリビジョンRを指定し、リビジョンPとリビジョンRのソフトウェアメトリクスを開発情報データベース82から取得し、また、両リビジョンP、Rの補完情報304が記録部3に記録されている場合には、補完情報304を取得し、取得したソフトウェアメトリクスと補完情報304から、リビジョンPの変動パターン301を算出する(S1900)。
変動パターン算出部209は、リビジョンPより前の任意のリビジョンに関して、記録部3に変動パターン301が記録されていない「リビジョンの組合せ」が存在するかを判定する(S1901)。リビジョンの組合せとは、リビジョンPより前の任意のリビジョンと、それよりさらに前のリビジョンとの組合せを意味する。変動パターン301が記録されていない「リビジョンの組合せ」が存在する場合はステップS1902に移行し、存在しない場合は処理を終了する。
変動パターン算出部209は、変動パターン301が記録されていない任意の「リビジョンの組合せ」に関して、その「リビジョンの組合せ」に含まれるリビジョンのソフトウェアメトリクスを開発情報データベース82から取得し、また、リビジョンの補完情報304が記録部3に記録されている場合には、補完情報304を取得する(S1902)。
図19に示す本実施例の変動パターン算出部209の動作フローでは、「リビジョンの組合せ」の全てに関して変動パターン301が算出されるが、変動パターン301が記録されていない任意のリビジョンについて、その直前のリビジョンとの変動パターン301の算出から順に過去のリビジョンに向けて変動パターン301の算出を繰り返し、リビジョン間の変動量が予め指定した変動量を超えた時点で、その任意のリビジョンについての変動パターン301の算出を終了するとしてもよい。この場合、例えば、予め指定する変動量には、評価対象とするリビジョンPの変動パターン301における変動量を用いることができる。
図20は、本実施例における類似度算出部210の動作フローの一例を示す。実施例1の図9におけるステップと同一ステップには同一符号を付して重複する説明は省略する。
類似度算出部210は、記録部3に記録された変動パターン301について、評価対象とするリビジョンPの変動パターン301との類似度302が算出されていない「リビジョンの組合せ」があるか判定する(S2001)。類似度302が算出されていない「リビジョンに組合せ」が存在する場合はステップS2002に移行し、存在しない場合は処理を終了する。
類似度算出部210は、リビジョンPの変動パターン301との類似度302が算出されていない任意の「リビジョンの組合せ」について、変動パターン301の類似度302を算出する(S2002)。
図21は、本実施例の評価予測部211の動作フローの一例を示す。実施例2の図14におけるステップと同一ステップには同一符号を付して重複する説明は省略する。
評価予測部211は、設定された類似度判断基準を満たす、リビジョンPの変動パターン301との「リビジョンの組合せ」があるかを判定する(S2102)。類似度判断基準を満たす「リビジョンの組合せ」が存在する場合はS2103に移行し、存在しない場合はS1009に移行する。
評価予測部211は、類似度判断基準を満たす「リビジョンの組合せ」に含まれる全てのリビジョンを、評価予測モデル303の作成に利用するリビジョンとして選択する(S2103)。
評価予測部211は、S2103で選択したリビジョンのソフトウェアメトリクスを開発情報データベース82から取得し、補完情報304が記録部3に記録されている場合には、補完情報304を取得する(S2104)。
なお、図示を省略するが、評価予測部211は、評価予測値が、前記開発中のリビジョンの直前のリビジョンの評価予測値と比較して劣化する場合、および、予め指定された評価予測値を下回る場合に入出力装置に通知を出力する。
本実施例によれば、直前リビジョンからの変動量が小さい場合であっても、評価予測対象とするリビジョンより前の任意のリビジョンとの変動パターン301を指定し、開発中のソフトウェアを評価できる。また、実装前の設計モデルから算出可能なメトリクスを使用することにより、実装前の開発早期にソフトウェアを評価できる。
実施例3では、評価する開発中のソフトウェアの情報を利用した。しかし、評価するソフトウェアのリビジョン数が少ない場合、また、評価するソフトウェアのリビジョン数は十分であっても、評価予測の対象とするリビジョンの変動パターン301との類似度302が高くなる変動パターン301を持つリビジョン数が少ない場合には、評価予測モデル303を作成できない場合がある。本実施例では、評価予測モデル303を作成するためのリビジョン数が十分ではない場合に、過去の類似プロジェクトの情報を利用する。
図22は、本実施例のソフトウェア評価プログラムを実行するソフトウェア評価装置の構成図を示す。ソフトウェア評価装置13は、実施例3の評価予測部211の代わりに評価予測部212を備え、管理サーバ5にはモデルリポジトリ72、開発情報データベース82、評価データベース92に加えて過去プロジェクトデータベース73が備えられている点が、実施例3とは異なる。既に説明した図15に示された同一の符号を付された構成と、同一の機能を有する部分については、説明を省略する。
評価予測部212は、評価予測の対象とするリビジョンの評価予測値を算出するための評価予測モデル303を作成する。評価予測モデル303の作成に使用するリビジョン数が十分でない場合には、過去プロジェクトデータベース73から類似パターン情報を取得し、取得した情報を利用して評価予測モデル303を作成する。作成した評価予測モデル303を記録部3に記録し、記録された評価予測モデル303により、評価予測の対象となるリビジョンの評価予測値を算出する。
図23および図24は、本実施例の評価予測部212の動作フローの一例を示す。実施例3の図21におけるステップと同一ステップには同一符号を付して重複する説明は省略する。
評価予測部212は、S2103で選択されたリビジョンの数が、評価予測モデル303の作成に十分であるかを判定する(S2310)。判定するためのリビジョンの数は予め定めておく。十分である場合はS2104に移行し、十分ではない場合はS2311に移行する。
評価予測部212は、評価するソフトウェアの類似している過去のプロジェクトが存在するかを判定する(S2311)。ここで、「プロジェクトが類似する」とは、例えば、同種のシステムや装置を開発したプロジェクト、同種の機能を持つシステムや装置を開発したプロジェクトなどが考えられる。類似する過去のプロジェクトが存在する場合はS2401に移行し、存在しない場合はS1009に移行する。
評価予測部212は、類似すると判定された過去プロジェクトの情報に、類似パターンとして使用できる情報が存在するか判定する(S2401)。存在する場合はS2402に移行し、存在しない場合は評価予測を実行不可の通知を入出力装置4に出力して(S2404)、処理を終了する。例えば、評価するソフトウェアと過去のプロジェクトとの両方から、同じ意味を表すメトリクスを取得できる場合に、類似パターンとして使用できる情報が存在すると判断することができる。ここで、類似パターンとして使用できると判定するためには、該当の過去プロジェクトについて、予測する評価項目の値が測定されている必要がある。
評価予測部212は、過去プロジェクトデータベース73から、使用できると判定された類似パターンの情報を取得する(S2402)。評価予測部212は、S2402で取得した情報を利用して、評価予測モデル303を作成する(S2403)。
図25は、本実施例の結果出力部205が入出力装置4に出力する表示画面の一例を示す図であり、評価値推移表示部40A、予測解析概要表示部40B、過去プロジェクト情報40D、予測結果表示部40Eで構成される。既に説明した図5と同一符号を付された表示部については、説明を省略する。過去プロジェクト情報表示部40Dでは、評価予測部212での評価予測において、類似する過去プロジェクトを使用した場合に、使用した過去プロジェクトの名称や概要などを表示する。予測結果表示部40Eでは、評価予測部212で作成した評価予測モデル303と、評価予測モデル303により算出した評価予測値を表示する。図25に示す表示画面は一例であり、このうちの一部を表示する構成でもよい。
本実施例によれば、評価する開発中のソフトウェアの開発期間が短く、評価値を予測するために必要なリビジョン数が蓄積されていない場合であっても、類似する過去のプロジェクト情報を利用して評価することが可能となる。
図26は、各実施例のソフトウェア評価装置を実現するコンピュータの構成の一例を示す図である。
コンピュータ260は、CPU261、通信インタフェース262、入出力インタフェース263、記録部264(ROM、RAM、ハードディスクドライブなど)、記録媒体読取装置265などを備えている。また、上記の各構成部は、バス266によってそれぞれ接続されている。
CPU261は、記録部264に格納されている、前述の評価処理実行部2の各処理などを実行する。
通信インタフェース262は、必要に応じて、他のコンピュータやサーバとの間のLAN接続やインターネット接続や無線接続のためのインタフェースである。また、他の装置に接続され、外部装置からのデータの入出力を制御する。
入出力インタフェース263には、入出力装置263a(入出力装置4、マウス、キーボード、ディスプレイなど)が接続され、入出力装置263aからの情報を入力し、バス266を介してCPU261に出力する。また、CPU261からの命令に従って、入出力装置263aの画面上に操作情報などを表示する。
記録部264には、CPU261が実行するプログラムやデータが記録されている。また、ワークエリアなどとして使用される。
記録媒体読取装置265は、CPU261の制御にしたがった記録媒体265aに対するデータの読み書きを制御する。そして、記録媒体265a、記録媒体読取装置265の制御で書き込まれたデータを記憶したり、記録媒体265aに記憶されたデータを読み取らせたりする。また、着脱可能な記録媒体265aは、コンピュータで読み取り可能な記録媒体として、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。
このようなコンピュータを用いることによって、説明した各処理が実行される。その場合、システムが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、システムが有すべき機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体265aに記録しておくことができる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータはサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
説明した実施形態によれば、派生開発や保守開発において、開発の早い(開発中)段階でソフトウェアの品質や性能を評価できる。また、修正や追加を行う部分による影響度合いを考慮したソフトウェアの品質や性能を評価できる。
本発明は、上記した実施例に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
1:ソフトウェア評価装置、2:評価処理実行部、3:記録部、4:入出力装置、5:管理サーバ、6:ネットワーク、7:構成管理システム、11:ソフトウェア評価装置、12:ソフトウェア評価装置、13:ソフトウェア評価装置、40A:評価値推移表示部、40B:予測解析概要表示部、40C:予測結果表示部、71:リポジトリ、72:モデルリポジトリ、73:過去プロジェクトデータベース、81:開発情報データベース、82:開発情報データベース、91:評価データベース、92:評価データベース、201:メトリクス登録部、202:変動パターン算出部、203:類似度算出部、204:評価予測部、205:結果出力部、206:変動パターン算出部、207:評価予測部、208:メトリクス登録部、209:変動パターン算出部、210:類似度算出部、211:評価予測部、212:評価予測部、260:コンピュータ、261:CPU、262:通信インタフェース、263:入出力インタフェース、263a:入出力装置、264:記録部、265:記録媒体読取装置、265a:記録媒体、266:バス、301:変動パターン、302:類似度、303:評価予測モデル、304:補完情報。

Claims (13)

  1. 開発中のソフトウェアを評価するソフトウェア評価装置であって、前記ソフトウェアの開発中のリビジョンおよび過去に開発されたリビジョンの各リビジョンに対応してソフトウェアメトリクスとプロセスメトリクスが登録された開発情報データベースと入出力装置に接続され、
    前記ソフトウェアの前記開発中のリビジョンおよび前記過去に開発されたリビジョンの各リビジョンについて、前記ソフトウェアメトリクス及び前記プロセスメトリクスの少なくとも一方が前記各リビジョンの前のリビジョンから変動した量を変動パターンとして算出する変動パターン算出部と、
    前記ソフトウェアの前記過去に開発された各リビジョンの前記変動パターンについて、前記ソフトウェアの前記開発中のリビジョンの前記変動パターンとの類似度を算出する類似度算出部と、
    前記ソフトウェアの前記過去に開発された各リビジョンから前記類似度が高いリビジョンを選択し、選択された前記リビジョンの前記ソフトウェアメトリクスと前記プロセスメトリクスを利用して、前記ソフトウェアの評価予測値を予測する評価予測モデルを作成し、作成した前記評価予測モデルと前記ソフトウェアの前記開発中のリビジョンの前記ソフトウェアメトリクス及び前記プロセスメトリクスの少なくとも一方から前記ソフトウェアの前記評価予測値を算出する評価予測部と、
    算出された前記評価予測値を前記入出力装置に表示する結果出力部とを備えることを特徴とするソフトウェア評価装置。
  2. 前記ソフトウェアの前記各リビジョンの前記ソフトウェアメトリクスを算出して前記開発情報データベースに登録し、前記入出力装置から入力された前記ソフトウェアのプロセスメトリクスを前記開発情報データベースに登録するメトリクス登録部をさらに備えることを特徴とする請求項1に記載のソフトウェア評価装置。
  3. 前記メトリクス登録部で登録される前記ソフトウェアメトリクスは、前記ソフトウェアの前記各リビジョンのソースコードから取得可能なメトリクス及び前記ソフトウェアの設計モデルから取得可能なメトリクスの少なくとも一方であることを特徴とする請求項2に記載のソフトウェア評価装置。
  4. 前記変動パターン算出部が算出する変動パターンは、前記ソフトウェアメトリクス及び前記プロセスメトリクスの少なくとも一方の変動の有無を表すことを特徴とする請求項1から請求項3のいずれか1項に記載のソフトウェア評価装置。
  5. 前記変動パターン算出部は、前記各リビジョンの前記変動パターンとして、前記ソフトウェアメトリクスと前記プロセスメトリクスが前記各リビジョンの直前のリビジョンからの変動した量を算出することを特徴とする請求項1から請求項4のいずれか1項に記載のソフトウェア評価装置。
  6. 前記変動パターン算出部は、前記ソフトウェアメトリクス及び前記プロセスメトリクスに欠損値が存在する場合に、前記欠損値を補完することを特徴とする請求項1から請求項5のいずれか1項に記載のソフトウェア評価装置。
  7. 前記結果出力部は、前記ソフトウェアの前記過去に開発されたリビジョンの評価値推移、前記類似度算出部が算出された前記類似度、前記評価予測部で作成された前記評価予測モデル、および算出された前記評価予測値の少なくとも一つの項目を前記入出力装置に表示することを特徴とする請求項1から請求項6のいずれか1項に記載のソフトウェア評価装置。
  8. 前記評価予測部は、算出した前記評価予測値が、前記開発中のリビジョンの直前のリビジョンの前記評価予測値と比較して劣化する場合、および、予め指定された前記評価予測値を下回る場合に前記入出力装置に通知を出力することを特徴とする請求項1から請求項7のいずれか1項に記載のソフトウェア評価装置。
  9. 前記ソフトウェア評価装置は、他プロジェクトデータベースに接続し、前記評価予測部は、前記評価予測モデルを作成するために選択された前記ソフトウェアの過去に開発されたリビジョンの数が予め定めた数より少ない場合に、前記他プロジェクトデータベースに格納された類似するプロジェクトの情報を利用して前記評価予測モデルを作成することを特徴とする請求項1から請求項8のいずれか1項に記載のソフトウェア評価装置。
  10. 開発中のソフトウェアを評価するソフトウェア評価装置におけるソフトウェア評価方法であって、前記ソフトウェア評価装置は、前記ソフトウェアの開発中のリビジョンおよび過去に開発されたリビジョンの各リビジョンに対応してソフトウェアメトリクスとプロセスメトリクスが登録された開発情報データベースと入出力装置に接続され、
    前記ソフトウェア評価装置は、
    前記ソフトウェアの前記開発中のリビジョンおよび前記過去に開発されたリビジョンの各リビジョンについて、前記ソフトウェアメトリクス及び前記プロセスメトリクスの少なくとも一方が前記各リビジョンの前のリビジョンから変動した量を変動パターンとして算出し、
    前記ソフトウェアの前記過去に開発された各リビジョンの前記変動パターンについて、前記ソフトウェアの前記開発中のリビジョンの前記変動パターンとの類似度を算出し、
    前記ソフトウェアの前記過去に開発された各リビジョンのうち、前記類似度が高いリビジョンを選択し、選択された前記リビジョンの前記ソフトウェアメトリクスと前記プロセスメトリクスを利用して、前記ソフトウェアの評価予測値を予測する評価予測モデルを作成し、作成した前記評価予測モデルと前記ソフトウェアの前記開発中のリビジョンの前記ソフトウェアメトリクス及び前記プロセスメトリクスの少なくとも一方から前記ソフトウェアの前記評価予測値を算出し、
    算出された前記評価予測値を前記入出力装置に表示することを特徴とするソフトウェア評価方法。
  11. 前記ソフトウェア評価装置は、
    前記ソフトウェアの前記各リビジョンの前記ソフトウェアメトリクスを算出して前記開発情報データベースに登録し、前記入出力装置から入力された前記ソフトウェアのプロセスメトリクスを前記開発情報データベースに登録することを特徴とする請求項10に記載のソフトウェア評価方法。
  12. 開発中のソフトウェアを評価するソフトウェア評価装置を構成し、前記ソフトウェアの開発中のリビジョンおよび過去に開発されたリビジョンの各リビジョンに対応してソフトウェアメトリクスとプロセスメトリクスが登録された開発情報データベースと入出力装置に接続するコンピュータに、
    前記ソフトウェアの前記開発中のリビジョンおよび前記過去に開発されたリビジョンの各リビジョンについて、前記ソフトウェアメトリクス及び前記プロセスメトリクスの少なくとも一方が前記各リビジョンの前のリビジョンから変動した量を変動パターンとして算出する変動パターン算出処理、
    前記ソフトウェアの前記過去に開発された各リビジョンの前記変動パターンについて、前記ソフトウェアの前記開発中のリビジョンの前記変動パターンとの類似度を算出する類似度算出処理、
    前記ソフトウェアの前記過去に開発された各リビジョンのうち、前記類似度が高いリビジョンを選択し、選択された前記リビジョンの前記ソフトウェアメトリクスと前記プロセスメトリクスを利用して、前記ソフトウェアの評価予測値を予測する評価予測モデルを作成し、作成した前記評価予測モデルと前記ソフトウェアの前記開発中のリビジョンの前記ソフトウェアメトリクス及び前記プロセスメトリクスの少なくとも一方から前記ソフトウェアの前記評価予測値を算出する評価予測処理、
    算出された前記評価予測値を前記入出力装置に表示する結果出力処理を実行させるためのソフトウェア評価プログラム。
  13. 前記ソフトウェアの前記各リビジョンの前記ソフトウェアメトリクスを算出して前記開発情報データベースに登録し、前記入出力装置から入力された前記ソフトウェアのプロセスメトリクスを前記開発情報データベースに登録するメトリクス登録処理を前記コンピュータにさらに実行させるための請求項12に記載のソフトウェア評価プログラム。
JP2013122647A 2013-06-11 2013-06-11 ソフトウェア評価装置および方法 Pending JP2014241021A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013122647A JP2014241021A (ja) 2013-06-11 2013-06-11 ソフトウェア評価装置および方法
US14/300,812 US20140365990A1 (en) 2013-06-11 2014-06-10 Software evaluation device and method
DE102014008551.1A DE102014008551A1 (de) 2013-06-11 2014-06-11 Softwareevaluierungsvorrichtung und -Verfahren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013122647A JP2014241021A (ja) 2013-06-11 2013-06-11 ソフトウェア評価装置および方法

Publications (1)

Publication Number Publication Date
JP2014241021A true JP2014241021A (ja) 2014-12-25

Family

ID=52006624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013122647A Pending JP2014241021A (ja) 2013-06-11 2013-06-11 ソフトウェア評価装置および方法

Country Status (3)

Country Link
US (1) US20140365990A1 (ja)
JP (1) JP2014241021A (ja)
DE (1) DE102014008551A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016143121A (ja) * 2015-01-30 2016-08-08 日本電信電話株式会社 ソフトウェア品質基準計算装置及びソフトウェア品質基準計算方法
WO2016157433A1 (ja) * 2015-03-31 2016-10-06 三菱電機株式会社 ソフトウェア管理装置およびソフトウェア管理方法
JP2017224185A (ja) * 2016-06-16 2017-12-21 日本電信電話株式会社 バグ混入確率計算プログラム及びバグ混入確率計算方法
JP2018124620A (ja) * 2017-01-30 2018-08-09 三菱電機株式会社 仕様書作成支援装置、仕様書作成支援方法および仕様書作成支援プログラム
JPWO2021192049A1 (ja) * 2020-03-24 2021-09-30
WO2023139822A1 (ja) * 2022-01-18 2023-07-27 三菱電機株式会社 アーキテクチャ寿命推定装置及びアーキテクチャ寿命推定方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106034150B (zh) * 2015-03-13 2020-07-03 阿里巴巴集团控股有限公司 应用程序动态推送方法、装置及系统
US9619363B1 (en) * 2015-09-25 2017-04-11 International Business Machines Corporation Predicting software product quality
US20170185931A1 (en) * 2015-12-28 2017-06-29 Wipro Limited System and method for predicting estimation of project factors in software development environment
CN107844414A (zh) * 2016-09-21 2018-03-27 南京大学 一种基于缺陷报告分析的跨项目、并行化缺陷定位方法
US11294802B2 (en) * 2016-11-08 2022-04-05 International Business Machines Corporation Identifying incorrect variable values in software testing and development environments
US10684851B2 (en) * 2017-11-03 2020-06-16 Vmware, Inc. Predicting software build outcomes
DE102018005596A1 (de) 2018-07-16 2019-01-03 Daimler Ag Zuverlässigkeitsprognoseverfahren zur Vorhersage der Zuverlässigkeit eines Softwareprodukts
CN110688152B (zh) * 2019-09-27 2021-01-01 厦门大学 一种结合软件开发质量信息的软件可靠性定量评估方法
CN112783762B (zh) * 2020-12-31 2024-04-09 中电金信软件有限公司 软件质量的评估方法、装置及服务器
US11861330B2 (en) 2022-03-25 2024-01-02 Vivun Inc. Machine mediated requirement management in a software trial management system
CN117891566A (zh) * 2024-03-18 2024-04-16 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) 智能软件的可靠性评估方法、装置、设备、介质和产品

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003140929A (ja) 2001-11-02 2003-05-16 Nippon Telegr & Teleph Corp <Ntt> ソフトウェア信頼性予測方法、ソフトウェア信頼性予測プログラム及び当該予測プログラムを記録したコンピュータ読み取り可能な記録媒体、並びにソフトウェア信頼性予測装置
US7926036B2 (en) * 2007-04-26 2011-04-12 Microsoft Corporation Technologies for code failure proneness estimation
US20100162215A1 (en) * 2008-12-18 2010-06-24 International Business Machines Corporation Enabling automated real-time metrics during the software development process
US8527966B2 (en) * 2009-09-17 2013-09-03 International Business Machines Corporation Source code inspection method and system
JP5240220B2 (ja) 2010-03-04 2013-07-17 日本電気株式会社 ソフトウェア実効性能評価システム、ソフトウェア実効性能評価方法、及びプログラム
US8285841B2 (en) * 2010-06-07 2012-10-09 Compuware Corporation Service quality evaluator having adaptive evaluation criteria
CA2707916C (en) * 2010-07-14 2015-12-01 Ibm Canada Limited - Ibm Canada Limitee Intelligent timesheet assistance
US8745572B2 (en) * 2011-06-22 2014-06-03 Microsoft Corporation Software development automated analytics
US20130311968A1 (en) * 2011-11-09 2013-11-21 Manoj Sharma Methods And Apparatus For Providing Predictive Analytics For Software Development
JP5978610B2 (ja) 2011-12-09 2016-08-24 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
US9542176B2 (en) * 2012-08-20 2017-01-10 Microsoft Technology Licensing, Llc Predicting software build errors
US20140245264A1 (en) * 2013-02-28 2014-08-28 International Business Machines Corporation Identifying Test Cases Based on Changed Test Code
US9448787B2 (en) * 2013-04-18 2016-09-20 Express Scripts, Inc. Methods and systems for analyzing software development risks

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016143121A (ja) * 2015-01-30 2016-08-08 日本電信電話株式会社 ソフトウェア品質基準計算装置及びソフトウェア品質基準計算方法
WO2016157433A1 (ja) * 2015-03-31 2016-10-06 三菱電機株式会社 ソフトウェア管理装置およびソフトウェア管理方法
JPWO2016157433A1 (ja) * 2015-03-31 2017-06-08 三菱電機株式会社 ソフトウェア管理装置およびソフトウェア管理方法
JP2017224185A (ja) * 2016-06-16 2017-12-21 日本電信電話株式会社 バグ混入確率計算プログラム及びバグ混入確率計算方法
JP2018124620A (ja) * 2017-01-30 2018-08-09 三菱電機株式会社 仕様書作成支援装置、仕様書作成支援方法および仕様書作成支援プログラム
JPWO2021192049A1 (ja) * 2020-03-24 2021-09-30
WO2021192049A1 (ja) * 2020-03-24 2021-09-30 日本電気株式会社 ソフトウェア評価装置、ソフトウェア評価方法及びコンピュータ可読媒体
JP7464109B2 (ja) 2020-03-24 2024-04-09 日本電気株式会社 ソフトウェア評価装置、ソフトウェア評価方法及びプログラム
WO2023139822A1 (ja) * 2022-01-18 2023-07-27 三菱電機株式会社 アーキテクチャ寿命推定装置及びアーキテクチャ寿命推定方法

Also Published As

Publication number Publication date
US20140365990A1 (en) 2014-12-11
DE102014008551A1 (de) 2014-12-11

Similar Documents

Publication Publication Date Title
JP2014241021A (ja) ソフトウェア評価装置および方法
AU2019200046B2 (en) Utilizing artificial intelligence to test cloud applications
Lwakatare et al. DevOps for AI–Challenges in Development of AI-enabled Applications
JP5900193B2 (ja) 更新判定プログラムおよび更新判定装置
Mazkatli et al. Continuous integration of performance model
US11099978B2 (en) Modeling system for software-implemented testing using domain specific profiles to translate tests for a subset of paths included in a UML test model
JP2021047627A (ja) 材料特性予測システムおよび材料特性予測方法
US11126408B2 (en) Incremental code generation method
JP2020173650A (ja) プログラム運用システム、プログラム運用方法
Troya et al. Specification and simulation of queuing network models using domain-specific languages
JP2009245177A (ja) フィーチャーモデル作成支援装置及びプログラム
JP4848760B2 (ja) リポジトリシステム、リポジトリシステムの管理方法、及びそのプログラム
JP6717140B2 (ja) 解析プログラム、解析方法、及び解析装置
Danciu et al. Performance awareness in Java EE development environments
Tarhan et al. A proposal on requirements for cosmic FSM automation from source code
Reichert et al. Process change patterns: recent research, use cases, research directions
Lallchandani et al. Slicing UML architectural models
US20210272023A1 (en) Information processing system and information processing method
JP4967562B2 (ja) ソフトウェア開発支援システムおよび支援方法
Burger et al. Difference-based Conformance Checking for Ecore Metamodels
JP7063397B2 (ja) 回答統合装置、回答統合方法および回答統合プログラム
JP6981124B2 (ja) システム構築支援装置、システム構築支援方法、及びプログラム
Basciani et al. A tool for automatically selecting optimal model transformation chains
CN111124471A (zh) 基于数据类型模板的仿真模型注册方法及计算机存储介质
US20230021530A1 (en) Cascading adaptive timeline generation and solving