(57)【要約】【課題】ソフトフェアの品質評価方法及びシステムの提供。【解決手段】ソフトフェアのプログラムに含まれるステップ数、単位ステップ当たりの分岐命令数、四則演算数を含む特性を基準値と比較して評価する定性的評価を行うプログラム特性分析装置１と、プログラムに含まれる単位ステップ数当たりのバグ数を含む定量的評価を基準値と比較して評価を行う定量的品質評価装置と、前記プログラム特性分析装置１及び定量的品質評価装置からの定性的評価結果及び定量的評価結果とを入力とし、前記定性的評価結果が所定評価以上の場合に前記定量的評価の基準値を細分した細分定量的評価を定量的品質評価装置に指示し、この指示に基づく定量的評価結果データと前記定性的評価結果データとを連結して出力する定量的／定性的品質評価装置７を備える。【選択図】　図１
2004086319.tif 000002
【特許請求の範囲】
【請求項１】
ソフトフェアの目標値に対する品質を評価するソフトウェアの品質評価方法であって、ソフトフェアのプログラムに含まれるステップ数、単位ステップ当たりの分岐命令数、四則演算数を含む特性を基準値と比較して評価する定性的評価工程と、プログラムに含まれる単位ステップ数当たりのバグ数を含む定量的評価工程と、前記定性的評価工程により評価された評価結果が所定評価以上の場合に定量的評価の基準値を細分した細分定量的評価を行う再定量的評価工程と、前記再定量的評価工程による定量的評価結果データと定性的評価結果データとを連結して出力する出力工程とを含むことを特徴とするソフトウェアの品質評価方法。
【請求項２】
ソフトフェアの目標値に対する品質を評価するソフトウェアの品質評価システムであって、ソフトフェアのプログラムに含まれるステップ数、単位ステップ当たりの分岐命令数、四則演算数を含む特性を基準値と比較して評価する定性的評価を行うプログラム特性分析装置と、プログラムに含まれる単位ステップ数当たりのバグ数を含む定量的評価を基準値と比較して評価を行う定量的品質評価装置と、前記プログラム特性分析装置及び定量的品質評価装置からの定性的評価結果及び定量的評価結果とを入力とし、前記定性的評価結果が所定評価以上の場合に前記定量的評価の基準値を細分した細分定量的評価を定量的品質評価装置に指示し、この指示に基づく定量的評価結果データと前記定性的評価結果データとを連結して出力する定量的／定性的品質評価装置を備えることを特徴とするソフトウェアの品質評価システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ソフトウェアメーカにおいて製造するソフトウェアの品質評価を行うソフトウェアの品質評価方法及び品質評価システムに関する。
【０００２】
【従来の技術】
一般にソフトウェアメーカにおいては、限られた工数と費用の中で、限りなく残存不良を少なくするため、ソフトウェアの品質評価が行われている。この品質評価は、例えばソフトウェアの開発計画時に予想された単位容量当たりのバグ件数や、ソフトウェアのロジックにより規定された何通りのパスを経由する基準値に対して何パスを経由するのかを試験するテストカバレッジによる評価、更にはドキュメントファイルに対する内容の不備や誤記等の項目が考えられ、目標に対して製造したソフトウェアがどの程度の目標値を満足しているかを評価することによって行われる。
【０００３】
前記残存不良の件数が顧客要求品質の許容範囲内にあるか否かを見極める方法としては、従来、前述したバグ件数等の定量的品質評価指標を一律に使用し、評価が行われてきた。
【０００４】
また従来技術によるソフトウェアの品質評価は、ソフトウェアの開発に当たっては、１本の完結したソフトウェアを製造することは少なく、一般的には複数のソフトウェアをパッケージとして製造することが多いが、複数のパッケージに対しても前述の一律に規定された定量的品質評価指標を用いた評価が行われていた。
【０００５】
【発明が解決しようとする課題】
しかしながらソフトウェアが複数のソフトウェア（パッケージ）から成るパッケージの場合、重要な機能を司るソフトウェアや処理工程（プログラムの行数）が多いソフトウェアと、比較的重要度の低いソフトウェアや単純処理を行う簡易なソフトウェアに対しても同一の基準による品質評価を行っているため、充分な品質評価を行うことが困難であると言う不具合があった。即ち、従来技術においては、そのソフトウェアの持つ特性に係わらず均一な品質評価項目を用いて評価を行っていたため、ソフトウェアの特性に合わせた充分な品質評価を行うことができないと言う不具合があった。
【０００６】
本発明の目的は、前述の従来技術による不具合を除去することであり、ソフトウェアの特性に合わせた適切な品質評価を行うことができるソフトウェアの品質評価方法及び品質評価システムを提供することである。
【０００７】
【課題を解決するための手段】
前記目的を達成するために本発明は、ソフトフェアの目標値に対する品質を評価するソフトウェアの品質評価方法において、ソフトフェアのプログラムに含まれるステップ数、単位ステップ当たりの分岐命令数、四則演算数を含む特性を基準値と比較して評価する定性的評価工程と、プログラムに含まれる単位ステップ数当たりのバグ数を含む定量的評価工程と、前記定性的評価工程により評価された評価結果が所定評価以上の場合に定量的評価の基準値を細分した細分定量的評価を行う再定量的評価工程と、前記再定量的評価工程による定量的評価結果データと定性的評価結果データとを連結して出力する出力工程とを含むことを第１の特徴とする。
【０００８】
更に本発明は、ソフトフェアの目標値に対する品質を評価するソフトウェアの品質評価システムにおいて、ソフトフェアのプログラムに含まれるステップ数、単位ステップ当たりの分岐命令数、四則演算数を含む特性を基準値と比較して評価する定性的評価を行うプログラム特性分析装置と、プログラムに含まれる単位ステップ数当たりのバグ数を含む定量的評価を基準値と比較して評価を行う定量的品質評価装置と、前記プログラム特性分析装置及び定量的品質評価装置からの定性的評価結果及び定量的評価結果とを入力とし、前記定性的評価結果が所定評価以上の場合に前記定量的評価の基準値を細分した細分定量的評価を定量的品質評価装置に指示し、この指示に基づく定量的評価結果データと前記定性的評価結果データとを連結して出力する定量的／定性的品質評価装置を備えることを第２の特徴とする。
【０００９】
【発明の実施の形態】
以下、本発明の一実施形態によるソフトウェアの品質評価方法及び前記評価システムを図面を参照して説明する。図１は、本実施形態によるソフトウェアの品質評価方法を実現する評価システムの全体構成を示す図、図２は本実施形態によるプログラム重み基準テーブルを説明するための図、図３は本実施形態によるプログラム特性ファイルを説明するための図である。
【００１０】
図１に示す本実施形態によるソフトウェアの品質評価システムは、製造したソフトウェアであるソースプログラムファイル５を、プログラム特性分析装置１が、入力装置２から入力された指示に基づき、プログラム重み付け基準テーブル４及び高度技術指定プログラムファイル３に基づき分析を行うことを示している。尚、前記入力装置２は、後述する高度技術指定プログラム名称、特性優先順位パラメータ及び重み付け基準変更パラメータを入力するものである。
【００１１】
前記プログラム重み付け基準テーブル４は、図２に示す如く、プログラムの規模（ステップ数）、１０００ステップ（ＫＳ）当たりの命令数を元にした複雑度、データベース（ＤＢ）の更新作業の有無、１０００ステップ（ＫＳ）当たりの四則演算数、技術の高度性、例えば使用言語が容易な順からＦＯＲＴＲＡＮ／ＣＯＢＯＬ／Ｃ＋＋等／ＪＡＶＡ（登録商標）／ＸＭＬに区別した使用言語をファクターとし、これら項目毎に重みスコアを設定したテーブルである。
【００１２】
例えばプログラム重み付け基準テーブル４は、項目が「プログラム規模」の場合、２００ステップ（Ｓ）以下の重みを「１」、２キロステップ（ＫＳ）以上の重みを「５」、項目が「複雑度」の場合、分岐命令が２０以下の重みを「１」、５０命令以上の重みを「５」、項目が「ＤＢ更新」の場合、更新無しの重みを「１」、有りの重みを「５」、項目が「演算数」の場合、四則演算が無いときの重みを「１」、１〜５命令のときの重みを「２」、２０命令以上のときの重みを「５」、項目が「使用言語」の場合、ＦＯＲＴＲＡＮのときの重みを「１」、ＸＭＬのときの重みを「５」と設定し、各項目について重み付けスコアを設定している。
【００１３】
また前記高度技術指定プログラムファイル３は、例えば前述の使用言語他の技術内容に応じた高度を格納したファイルであって、使用言語の他に一般のプログラミング技術を使用するのかニューロコンピュータ技術や遺伝子アルゴリズム技術を使用する等の技術の高度性を格納したものである。
【００１４】
さて、この様に構成されたソフトウェアの品質評価システムは、図１に示す如く、プログラム特性分析装置１が、入力装置２によって入力された高度技術指定プログラム名称／特性優先順位パラメータ及び重み付け基準変更パラメータと、評価対象であるソースプログラムファイル５とを入力し、前述のプログラム重み付け基準テーブル４及び高度技術指定プログラムファイル３を参照して、ソースプログラムファイル５の定性的分析を行い、その結果をプログラム特性ファイル６に入力する。
【００１５】
この定性的分析結果とは、図３に示す如く、前記各特性項目に基づいて判定した各重み付けスコア及び該スコアの集計であり、例えば名称「Ａ」のプログラムに対して、規模が「３」、複雑度が「４」、ＤＢ更新が「５」、演算が「２」、高度技術が「５」、スコア総計が「１９」に加え、前記スコアが「４」以上の場合に各項目毎にフラグ「１」を立てた情報である。また前記フラグは、当該フラグの有無によって重要な特性項目であることを識別するためのものである。
【００１６】
次いで本システムは、前記プログラム特性ファイル６に格納した定性的分析結果と定量的品質評価データファイル９から前述の従来技術で説明した定量的品質評価データとを、定量的／定性的品質評価装置７に入力し、該定量的／定性的品質評価装置７が、プログラム名称をキーとして、前述の定性的なプログラム特性品質評価データと、定量的な品質評価データと、予め定められた目標値データに対する達成度とを連結した総合品質評価データを作成する。尚、前記定量評価データファイル９は、図示しない定量的品質評価装置がソースプログラムファイル５に格納された評価対象のプログラムを前述の定量的評価項目に対して評価を行って得られたものである。
【００１７】
ここで定量的／定性的品質評価装置７は、前述の定性的分析結果のフラグを参照し、フラグが立っている特性項目に対し、定量的品質評価データの再設定を行い、特性に応じた定量的品質評価データを再度取得する。例えば、図３に示したプログラムＡの如く、複雑度／ＤＢ更新／高度技術にフラグが立っている場合、単位ステップ当たりのバグ件数の評価標準値及びテストカバレッジによる評価をより細分化（例えば単位ステップ数当たりのバク数の評価基準値を小さくする／テストカバレッジによる検出するパス数を多く設定）して再設定し、プログラムの特性に応じたより細かい定量的な細分品質評価を実行し、この再評価結果を定量的品質評価データアフイル９に格納し、前述の定性的評価データと合わせて前述の総合品質評価データを再作成し、この結果を定量的／定性的品質評価結果ファイル８に格納すると共に、その内容を品質目標値未達成情報として帳票１０に出力する様に動作する。即ち本実施形態によるソフトウェアの品質評価システムは、ソフトフェアのプログラムに含まれるステップ数他の特性を評価する定性的評価工程と、該プログラムに含まれる単位ステップ数当たりのバグ数を含む定量的評価工程と、前記定性的評価工程により評価された評価結果が所定評価以上（特性スコアが所定値以上）の場合に定性的評価工程における定量的評価を細分した細分定量的評価を行う再定量的評価工程と、前記再定量的評価工程による定量的評価結果データと定性的評価結果データとを連結して出力する出力工程とを順次実行することによって、プログラムの特性に応じた最適な品質評価を行うことができる。
【００１８】
この様に本実施形態によるソフトウェアの品質評価方法及び前記評価システムは、評価対象であるソースプログラムの定性的な評価を行い、重みスコア付けによる特性を考慮し、重要と判断したプログラムに対しては定量的品質評価を厳格に行う様に動作することによって、プログラムの特性に応じた品質評価を行うことができる。
【００１９】
尚、前記実施形態においては定性的析の例として、規模／複雑度（他のモジュール関連度等）／ＤＢ更新（ハードのＩ／Ｏ関連等）／演算／使用言語（高度技術）の特性項目を評価する例を説明したが、本発明による特性の評価はこれらに限られるものではなく、例えばマニュアルにおける誤記その他の特性項目をファクターとしても良い。
【００２０】
【発明の効果】
以上説明したように本発明によれば、プログラム特性分析によって明示された定性的に重要度の高いプログラムの品質管理が機械的に実施することができ、質的にプログラム品質を向上させることができる。即ち、プログラムの特性を定性的品質指標として、ソフトウェアの品質評価を行うことによって従来の定量的な品質評価だけでなく質的な品質評価を可能とし、致命的な残存不良を低減することができる。
【図面の簡単な説明】
【図１】本発明によるソフトウェアの品質評価方法を実現する評価システムの全体構成を示す図。
【図２】本実施形態によるプログラム重み基準テーブルを説明するための図。
【図３】本実施形態によるプログラム特性ファイルを説明するための図。
【符号の説明】
１：プログラム特性分析装置、２：入力装置、３：高度技術指定プログラムファイル、４：プログラム重み付け基準テーブル、５：ソースプログラムファイル、６：プログラム特性ファイル、７：定量的／定性的品質評価装置、８…定量的／定性的品質評価結果ファイル、９…定量的品質評価データファイル、１０…帳票。
【図１】
2004086319.tif 000003
【図２】
2004086319.tif 000004
【図３】
2004086319.tif 000005