(57)【要約】【課題】ソフトウェアの修正／追加が必要な部分を指摘できることにより、システム開発期間を短縮可能なソフトウェア開発支援装置を提供することにある。【解決手段】演算処理装置１０は、ソフトウェアの仕様書から入出力変数を抽出するための入出力変数抽出部１２と、入出力変数抽出部１２により抽出された入力変数に対して、入力変数値を生成して複数の入力変数値の組合せにおけるソフトウェアの動作チェックを行なうパラメータサーベイ解析部１４と、パラメータサーベイ解析部１４によってチェックされたソフトウェアのエラーの分析と評価を行なうエラー診断部１６とを備えている。【選択図】  図１
2004272830.tif 000002
【特許請求の範囲】
【請求項１】
計算機を利用してソフトウェアの開発を支援するソフトウェア開発支援装置であって、
ソフトウェアの仕様書から入出力変数を抽出するための入出力変数抽出手段と、
この入出力変数抽出手段により抽出された入力変数に対して、入力変数値を生成して複数の入力変数値の組合せにおけるソフトウェアの動作チェックを行なうパラメータサーベイ解析手段と、
このパラメータサーベイ解析手段によってチェックされたソフトウェアのエラーの分析と評価を行なうエラー診断手段とを備えたことを特徴とするソフトウェア開発支援装置。
【請求項２】
請求項１記載のソフトウェア開発支援装置において、
上記パラメータサーベイ解析手段は、入力変数値を生成するための数理処理用パラメータ生成手段を有し、
このパラメータ生成手段は、数理処理を用いてソフトウェアの動作チェックをするために必要な個数の正しい入力変数値と誤った入力変数値とを生成して、数理処理によってソフトウェアの動作チェックを実行することを特徴とするソフトウェア開発支援装置。
【請求項３】
請求項１記載のソフトウェア開発支援装置において、
上記パラメータサーベイ解析手段は、入力値を生成するためのリアルタイム擬似的操作手段を有し、
この擬似的操作手段は、ソフトウェアの実行中に入力を促された文字列または数値に対して、予め決められた文字列や数値の範囲から正しい入力値を生成するか、あるいは誤った入力値となる文字列や数値を生成して、ソフトウェアの動作チェックを実行することを特徴とするソフトウェア開発支援装置。
【請求項４】
請求項３記載のソフトウェア開発支援装置において、
上記リアルタイム擬似的操作手段は、ソフトウェアの動作チェック時に、ソフトウェアが出力する画面の任意の場所に対して、マウス等の入力装置からの信号と同等の信号を擬似的に与えてソフトウェアの動作チェックを実行することを特徴とするソフトウェア開発支援装置。
【請求項５】
請求項１記載のソフトウェア開発支援装置において、
上記エラー診断手段は、入力変数毎のエラー発生の頻度および入力変数の取る値によるエラー発生の頻度を用いて、ソフトウェアの修正あるいは仕様変更が必要な部分を推定することを特徴とするソフトウェア開発支援装置。
【請求項６】
計算機を利用してソフトウェアの開発を支援するソフトウェア開発支援装置であって、
ソフトウェアの仕様書から入出力変数を抽出するための入出力変数抽出手段と、
この入出力変数抽出手段により抽出された入力変数に対して、入力変数値を生成して複数の入力変数値の組合せにおけるソフトウェアの動作チェックを行なうパラメータサーベイ解析手段と、
このパラメータサーベイ解析手段によってチェックされたソフトウェアのエラーの分析と評価を行なうエラー診断手段とを備え、
このエラー診断手段は、開発するソフトウェアの規模とソフトウェアの属する分野に応じて、ソフトウェアの動作チェックで出現したエラー数に基づいて、開発期間や開発コスト等の開発見通しを提示することを特徴とするソフトウェア開発支援装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算機を利用したソフトウェアの開発支援装置に係り、特に、ソフトウェアの動作チェックを行い、エラーの分析評価を行うに好適なソフトウェア開発支援装置に関する。
【０００２】
【従来の技術】
従来のソフトウェア開発支援装置としては、例えば、特開平１１−１１０２５２号公報に記載のように、与えられたプログラムを所望の条件でテスト実行し、利用者が正しい挙動と認めた場合の実行ログを試験情報として保存し、保存されている実行ログに記録されていない挙動を抑制するガード命令をプログラム中のある動作を開始するための条件文としてプログラムに付加して、テストしていない挙動は行わないようにするものが記載されている。これによって、信頼性の高いソフトウェアの開発を支援することが可能となる。
【０００３】
また、例えば、特開平１１−１４９３９４号公報に記載のように、ハードウェアとそれを制御するソフトウェアからなる制御システムにおいて、ハードウエア、さらにシステムに関連する周辺の対象物まで含んだ外部環境を模擬したシミュレーションモデルを与えることにより、システムの実行動作を計算機上でシミュレートさせて制御ソフトウェアの機能の検証を行うことが記載されている。これによって、シミュレーションモデルにより制御ソフトウェアを精度よく実行可能にするとともに動作検証を効率良く行うことが可能となる。
【０００４】
【特許文献１】
特開平１１−１１０２５２号公報
【特許文献２】
特開平１１−１４９３９４号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、上述の従来技術では、第１に、定量的なエラー診断に基づいて、ソフトウェアの修正／追加が必要な個所を提示することは考慮されていないという問題があった。また、第２に、開発システムの規模に応じて開発期間やコスト等を推定することもできないという問題があった。
【０００６】
本発明の第１の目的は、ソフトウェアの修正／追加が必要な部分を指摘できることにより、システム開発期間を短縮可能なソフトウェア開発支援装置を提供することにある。
【０００７】
また、本発明の第２の目的は、開発システムの規模に対するエラー数から開発見通し（期間やコスト等）を提示することにより、顧客要求に合致した製品開発を支援可能なソフトウェア開発支援装置を提供することにある。
【０００８】
【課題を解決するための手段】
（１）上記第１の目的を達成するために、本発明は、計算機を利用してソフトウェアの開発を支援するソフトウェア開発支援装置であって、ソフトウェアの仕様書から入出力変数を抽出するための入出力変数抽出手段と、この入出力変数抽出手段により抽出された入力変数に対して、入力変数値を生成して複数の入力変数値の組合せにおけるソフトウェアの動作チェックを行なうパラメータサーベイ解析手段と、このパラメータサーベイ解析手段によってチェックされたソフトウェアのエラーの分析と評価を行なうエラー診断手段とを備えるようにしたものである。
かかる構成により、エラー診断手段によってソフトウェアの修正／追加が必要な部分を指摘できることにより、システム開発期間を短縮可能となる。
【０００９】
（２）上記（１）において、好ましくは、上記パラメータサーベイ解析手段は、入力変数値を生成するための数理処理用パラメータ生成手段を有し、このパラメータ生成手段は、数理処理を用いてソフトウェアの動作チェックをするために必要な個数の正しい入力変数値と誤った入力変数値とを生成して、数理処理によってソフトウェアの動作チェックを実行するようにしたものである。
【００１０】
（３）上記（１）において、好ましくは、上記パラメータサーベイ解析手段は、入力値を生成するためのリアルタイム擬似的操作手段を有し、この擬似的操作手段は、ソフトウェアの実行中に入力を促された文字列または数値に対して、予め決められた文字列や数値の範囲から正しい入力値を生成するか、あるいは誤った入力値となる文字列や数値を生成して、ソフトウェアの動作チェックを実行するようにしたものである。
【００１１】
（４）上記（３）において、好ましくは、上記リアルタイム擬似的操作手段は、ソフトウェアの動作チェック時に、ソフトウェアが出力する画面の任意の場所に対して、マウス等の入力装置からの信号と同等の信号を擬似的に与えてソフトウェアの動作チェックを実行するようにしたものである。
【００１２】
（５）上記（１）において、好ましくは、上記エラー診断手段は、入力変数毎のエラー発生の頻度および入力変数の取る値によるエラー発生の頻度を用いて、ソフトウェアの修正あるいは仕様変更が必要な部分を推定するようにしたものである。
【００１３】
（６）上記第２の目的を達成するために、本発明は、計算機を利用してソフトウェアの開発を支援するソフトウェア開発支援装置であって、ソフトウェアの仕様書から入出力変数を抽出するための入出力変数抽出手段と、この入出力変数抽出手段により抽出された入力変数に対して、入力変数値を生成して複数の入力変数値の組合せにおけるソフトウェアの動作チェックを行なうパラメータサーベイ解析手段と、このパラメータサーベイ解析手段によってチェックされたソフトウェアのエラーの分析と評価を行なうエラー診断手段とを備え、このエラー診断手段は、開発するソフトウェアの規模とソフトウェアの属する分野に応じて、ソフトウェアの動作チェックで出現したエラー数に基づいて、開発期間や開発コスト等の開発見通しを提示するようにしたものである。
かかる構成により、開発システムの規模に対するエラー数から開発見通し（期間やコスト等）を提示でき、顧客要求に合致した製品開発を支援可能となる。
【００１４】
【発明の実施の形態】
以下、図１〜図１２を用いて、本発明の一実施形態によるソフトウェア開発支援装置の構成及び動作について説明する。
最初に、図１を用いて、本実施形態によるソフトウェア開発支援装置のシステム構成について説明する。
図１は、本発明の一実施形態によるソフトウェア開発支援装置の構成を示すシステム構成図である。
【００１５】
本実施形態によるソフトウェア開発支援装置は、コンピュータまたはサーバからなり、演算処理装置１０と、データを入力するための入力装置２０と、データを出力するための出力装置３０と、入力されたデータを格納するためのデータベース４０を有している。
【００１６】
演算処理装置１０は、変数抽出部１２と、パラメータサーベイ解析部１４と、エラー診断部１６と、基本動作可視化部１８とを備えている。変数抽出部１２は、ソフトウェアの仕様書から入出力変数を抽出する。
【００１７】
パラメータサーベイ解析部１４は、数理処理によりソフトウェアの動作チェックを行なうものであり、数理処理用パラメータ生成部１４Ａと、リアルタイム擬似的操作部１４Ｂを備えている。数理処理用パラメータ生成部１４Ａは、入力変数値を生成するものであり、数理処理を用いてソフトウェアの動作チェックをするために必要な個数の正しい入力変数値と誤った入力変数値とを生成して、数理処理によってソフトウェアの動作チェックを実行する。リアルタイム擬似的操作部１４Ｂは、入力装置からの信号と同等の信号を擬似的に与えるものであり、ソフトウェアの実行中に入力を促された文字列または数値に対して、予め決められた文字列や数値の範囲から正しい入力値を生成するか、あるいは誤った入力値となる文字列や数値を生成して、ソフトウェアの動作チェックを実行する。また、マウス等の入力装置からの入力と同等の信号を生成する。
【００１８】
エラー診断部１６は、エラーの分析と評価を行なう。基本動作可視化部１８は、ソフトの根幹部分以外をモデル化してエミュレーションする。これらの変数抽出部１２，パラメータサーベイ解析部１４，エラー診断部１６，基本動作可視化部１８は、同一のＣＰＵを用いるものでもよいし、異なるＣＰＵを用いるものでもよい。なお、これら各部１２，１４，１６，１８の機能は、プログラムにより実行される。
【００１９】
次に、図２を用いて、本実施形態によるソフトウェア開発支援装置によるソフトウェアの開発支援処理の内容について説明する。
図２は、本発明の一実施形態によるソフトウェア開発支援装置によるソフトウェアの開発支援処理の内容を示すフローチャートである。
【００２０】
ステップｓ１０において、変数抽出部１２は、ソフトウェアのソースコードから入力変数・出力変数を抽出する。変数抽出処理の具体例については、図３，図４を用いて後述する。
【００２１】
次に、ステップｓ２０において、パラメータサーベイ解析部１４は、数理処理を用いたソフトウェアの動作チェックを行う。数理処理を用いる理由はチェックの回数を減らすためであるので、すべての入力変数の組み合わせによる総なめチェックでもよいものである。動作チェックの詳細については、図６〜図８を用いて後述する。
【００２２】
次に、ステップｓ３０〜ｓ５０において、エラー診断部１６は、エラーの分析と評価を行なう。ステップｓ３０において、エラー診断部１６は、ソフトウェア実行結果の分析を行う。ソフトウェア実行結果の分析では、ソフトウェアが出力した変数の値がその変数の取り得る値かどうか、あるいは、プログラムが正常終了したか否かを検査する。実行結果の分析の詳細については、図９を用いて後述する。
【００２３】
次に、ステップｓ４０において、エラー診断部１６は、エラー要因を特定する。エラー要因の特定（１６ｂ）では、ソフトウェアのエラー（異常動作）の原因がコーディングミスによるものなのか、そもそものソフトウェアの仕様上の制限によるものなのかを特定する。エラー要因の特定の詳細については、図１０を用いて後述する。
【００２４】
次に、ステップｓ５０において、エラー診断部１６は、評価結果を出力する。評価結果の出力は、ソフトウェアの修正や追加が必要な部分を提示すると共に、ソフトウェアの規模や、事務系ソフトウェアなのか技術計算ソフトウェアなのかといったソフトウェアのジャンルに応じた開発見通し（期間，コスト等）を推定して表示する。評価結果の出力の詳細については、図１１，図１２を用いて後述する。
【００２５】
次に、図３及び図４を用いて、本実施形態によるソフトウェア開発支援装置の変数抽出部１２によるステップｓ１０の処理内容について説明する。
図３は、本発明の一実施形態によるソフトウェア開発支援装置の変数抽出部１２が抽出する変数が記載されたソフトウェア仕様書の説明図である。図４は、本発明の一実施形態によるソフトウェア開発支援装置の変数抽出部１２が抽出する変数の具体的な説明図である。
【００２６】
図３に示すソフトウェア仕様書には、入力変数，出力変数，一時的変数が、それらの取り得る範囲と共に定義されている。変数抽出部１２は、このソフトウェアの仕様書から入出力変数を抽出する。
【００２７】
入力変数定義文３０１の「／＊  Ｉｎｐｕｔ  Ｖａｒｉａｂｌｅｓ  ＊／」は、以下に入力変数が定義されていることを意味する。出力変数定義文３０２の「／＊  Ｏｕｔｐｕｔ  Ｖａｒｉａｂｌｅｓ  ＊／」は、以下に出力変数が定義されていることを意味する。一時的変数定義文３０３の「／＊  Ｔｅｍｐｏｒａｒｙ  Ｖａｒｉａｂｌｅｓ  ＊／」は、以下に一時的変数が定義されていることを意味する。
【００２８】
入力変数定義文３０１の中の定義文３０４の「ｉｎｔ  ｉｎｕｍ，ｊｎｕｍ，ｓｉｚｅ；」と定義文３０５の「ｄｏｕｂｌｅ  ａｒｒａｙ（１００００）；」は入力変数の例である。ｉｎｔ定義文３０４は、「ｉｎｕｍ」と「ｊｎｕｍ」と「ｓｉｚｅ」という整数の範囲の変数があることを意味している。ｄｏｕｂｌｅ定義文３０５は、「ａｒｒａｙ」という実数の範囲の１０，０００個の大きさをもつ配列があることを意味している。
【００２９】
出力変数定義文３０２の中の定義文３０６の「ｄｏｕｂｌｅ  ｚｚｚ；」は出力変数の例である。ｄｏｕｂｌｅ定義文３０６は、「ｚｚｚ」という実数の範囲の変数があることを意味している。
【００３０】
変数抽出部１２は、このように記述されたソフトウェア仕様書を検索して変数の種類を抽出する。同様に、変数抽出部１２は、このように記述されたソフトウェア仕様書を検索して変数と取り得る値の範囲を抽出する。
【００３１】
なお、図３に示したソフトウェア仕様書は、ソフトウェアの記法に近い形態をとっているが、変数の種類と取り得る値の範囲が定義されていれば、この形態に限定するものではなく、変数の取り得る値などはさらに詳細に記述してもよいものである。
【００３２】
図４は、「図書貸出しシステム」を例にした入力変数４０１と出力変数４０２の例を示している。図書番号４０３は文字列型の入力変数とし、貸し出し期間４０４は日付型の入力変数とし、借用者ＩＤ４０５は整数型の入力変数とする。また、受付番号４０６とエラー番号４０７は、整数型の出力変数とする。
【００３３】
以下の説明では、本実施形態によるソフトウェア開発支援装置を用いて、図書貸し出しシステムの開発支援を行う場合のソフトウェアのエラー分析と評価を行う例について説明する。
【００３４】
ここで、図５を用いて、本実施形態によるソフトウェア開発支援装置に開発支援される図書貸し出しシステムの処理内容について説明する。
図５は、本発明の一実施形態によるソフトウェア開発支援装置に開発支援される図書貸し出しシステムの処理内容を示すフローチャートである。
【００３５】
図書の貸出しが正常に受付けられるためには、以下の３点が全て満足される必要がある。
▲１▼貸出し可能な図書であり、現在貸出し中ではない。
▲２▼その図書に対する妥当な貸出し期間である。
▲３▼有効な借用者ＩＤであり、この借用者に対する貸出し制限冊数を超えていない。
【００３６】
そこで、ステップｓ１１０において、図書貸し出しシステムは、貸し出しを希望する図書が貸出し可能な図書であり、現在貸出し中ではないか否かを判定する。貸し出し可能であり、貸し出し中でない場合にはステップｓ１２０に進み、そうでない場合には、ステップｓ１５０に進み、エラー処理を実行する。エラー処理では、「エラー番号」を出力する。
【００３７】
次に、ステップｓ１２０において、図書貸し出しシステムは、貸出し期間がその図書に対する妥当な貸出し期間であるか否かを判定する。妥当である場合にはステップｓ１３０に進み、そうでない場合には、ステップｓ１５０に進み、エラー処理を実行する。
【００３８】
次に、ステップｓ１３０において、図書貸し出しシステムは、借用者の貸出しカードに基づいて、有効な借用者ＩＤであり、この借用者に対する貸出し制限冊数を超えていないか否かを判定する。有効なＩＤであり、制限数を超えていない場合にはステップｓ１４０に進み、正常受付処理を実行する。正常受付処理では、「受付番号」を出力する。そうでない場合には、ステップｓ１５０に進み、エラー処理を実行する。
【００３９】
次に、図６〜図８を用いて、本実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部１４によるステップｓ２０の処理内容について説明する。
図６は、本発明の一実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部１４が数理処理によりソフトウェアの動作範囲のチェックを行なう際に用いる直交表の説明図である。図７及び図８は、本発明の一実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部１４が動作する際に、擬似的な操作手段を用いてソフトウェアを動的にチェックする例の説明図である。
【００４０】
パラメータサーベイ解析部１４の数理処理用パラメータ生成部１４Ａは、入力変数値を生成するものであり、数理処理を用いてソフトウェアの動作チェックをするために必要な個数の正しい入力変数値と誤った入力変数値とを生成して、数理処理によってソフトウェアの動作チェックを実行する。
【００４１】
図６には、パラメータサーベイ解析部１４の数理処理用パラメータ生成部１４Ａが数理処理によりソフトウェアの動作範囲のチェックを行なう際に用いるＬ１８直交表６０１と、制御因子とその水準６０２の例が示されている。
【００４２】
Ｌ１８直交表６０１は、複数の制御因子Ａ〜Ｈ毎にそれぞれ水準１〜３を変えて、１８個の制御因子の状態を設定している。Ｌ１８直交表６０１は、ソフトウェアの動作範囲のチェックを行うために、制御因子毎に異なる水準１〜３（「正常な入力」と「異常な入力」）を設定した複数の入力変数の組み合わせである。
【００４３】
制御因子は、入力変数である。入力変数の取り得る範囲から、範囲内の入力変数を水準１の「正常な入力」とし、範囲外の入力変数を水準２，３の「異常な入力」とする。直交表を用いた数理処理の原理については、例えば、横山巽子編「品質工学講座（４）品質工学のための実験計画法」にパラメータ設計の基礎となる直交表の理論と解説が記載されている。
【００４４】
具体的には、制御因子とその水準６０２に示すように、図書貸し出しシステムの例では、制御因子としては、Ｂ：図書番号，Ｃ：日付，Ｄ：借用者ＩＤ等の入力変数が制御因子となる。水準の中には「正常な入力」（水準１）と、「異常な入力」（水準２）（水準３）が必要なので、例えば、制御因子の「Ｂ：図書番号」であれば、水準１には存在する図書番号を、水準２や水準３には架空の図書番号をランダムな文字列を生成して設定する。また、制御因子の「Ｃ：日付」であれば、水準１には本日の日付を、水準２，水準３には過去の日付を生成して設定する。同様に、制御因子の「Ｄ：借用者のＩＤ」であれば、水準１には図書貸出しシステムに登録されている者の正しいＩＤを、水準２，水準３には架空のＩＤをランダムな整数値を生成して設定する。水準１，２，３は、数理処理用パラメータ生成部１４によって自動的に生成される。
【００４５】
Ｌ１８直交表では、８個の制御因子Ａ〜Ｈを取り得るので、制御因子Ａ，Ｅ〜Ｈには適当なダミーデータを入力する。制御因子Ａは、水準１，２しか取り得ないので、ここでは用いていない。
【００４６】
なお、入力変数の数が多い場合や、テストする水準を増やす場合はＬ１８直交表よりも大きい直交表を用いてもよいものである。また、入力変数のなかで、データの規模を表すものを信号因子として、結果出力までの時間を計ればデータの規模に対するシステムのレスポンスが評価できる。
【００４７】
次に、図７と図８を用いて、パラメータサーベイ解析部１４が動作する際に、擬似的な操作手段を用いてソフトウェアを動的にチェックする例について説明する。
【００４８】
パラメータサーベイ解析部１４のリアルタイム擬似的操作部１４Ｂは、ソフトウェアの実行中に入力を促された文字列または数値に対して、図６に示したＬ１８直交表を用いて、予め決められた文字列や数値の範囲から正しい入力値を生成するか、あるいは誤った入力値となる文字列や数値を生成する。
【００４９】
文字列入力画面７０１は、ソフトウェアの実行中に表示された文字列の入力を促す画面の例であある。このような文字列入力画面が表示され、文字列の入力が促されている場合には、パラメータサーベイ解析部１４は、Ｌ１８直交表に基づいて、適当な文字列７０３をソフトウェアに与える。
【００５０】
数値入力画面７０２は、ソフトウェアの実行中に表示された数値の入力を促す画面の例である。このような文字列入力画面が表示され、文字列の入力が促されている場合には、パラメータサーベイ解析部１４は、Ｌ１８直交表に基づいて、適当な数値７０４をソフトウェアに与える。
【００５１】
図８は、ソフトウェアの出力する画面の任意の場所をマウス等の入力装置を用いて指定する状況において、パラメータサーベイ解析部１４のリアルタイム擬似的操作部１４Ｂは、マウス等の入力装置からの信号と同等の信号を擬似的に与えてソフトウェアの動作チェックを実行する例である。パラメータサーベイ解析部１４は、ソフトウェアの出力した表示画面８０１に対して、ポインタ８０２でポインティングすることにより、ポインティングする装置の入力を擬似的に与える。ポインタ８０２によるポインティングは、画面８０１に対して、左上端から右下端まで隈なく行う動作をエミュレーションする。なお、ポインタ８０２によるポインティングは、画面８０１に対して、ランダムに行う動作をエミュレーションするようにしてもよいものである。
【００５２】
ここで、図７に示したように文字列や数値の入力を促す画面７０１，７０２がソフトウェアから出力された場合には、画面をポインティングする動作を中断して、文字列や数値を入力する処理に移行する。
【００５３】
次に、図９〜図１２を用いて、本実施形態によるソフトウェア開発支援装置のエラー診断部１６によるステップｓ３０〜ｓ５０の処理内容について説明する。
図９は、本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部１６によるステップｓ３０のソフトウェア実行結果の分析処理の分析結果の説明図である。
【００５４】
エラー診断部１６は、ソフトウェアが「正常動作（Ａ）」したか、「異常動作（Ｂ）」したかを診断する。正しい入力に対しては正常処理が行われ、誤った入力に対してはエラー処理が行われることが「正常動作（Ａ）」である。図書貸出しシステムの例では、正当な「図書番号」，「貸出し期間」，「借用者ＩＤ」の入力に対して、「受付番号」が出力されること、逆に、問題のある入力に対しては「エラー番号」が出力されることが「正常動作（Ａ）」となる。
【００５５】
これ以外の動作、例えば，正しい入力に対してもエラー処理が行われたり、誤った入力に対して正常処理が行われたりした場合は、全て「異常動作（Ｂ）」とする。また、出力の値がその変数の取り得る範囲外であったり、プログラムダウンやプログラムからの応答が無い場合は、全て「異常動作（Ｂ）」とする。
【００５６】
図１０は、本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部１６によるステップｓ４０のエラー要因の特定処理の処理内容を示すフローチャートである。また、図１１は、本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部１６によるステップｓ５０の評価結果の出力処理における表示内容の説明図である。
【００５７】
エラー診断部１６は、入力変数毎の異常動作発生の頻度および入力変数の取る値による異常動作発生の頻度を用いて、ソフトウェアの修正あるいは仕様変更が必要な部分を推定する。ソフトウェアには大別して２種類のバグ（不具合）がある。ひとつは単純なコーディングミスであり、もうひとつは想定外の入力に対するプログラムダウンである。
【００５８】
図１０のステップｓ２１０において、エラー診断部１６は、異常動作の発生が特定の入力変数（図６の制御因子６０２における特定の制御因子）で多発するか否かを判定する。多発する場合には、明らかにソフトウェアのコーディングミスが存在することとし、ステップｓ２２０において、作業者はコーディングミスを修正する。コーディングミスは単純なパンチミスのようなものであり、修正すべき入力変数を、例えば，図１１の表示１１０１のように、異常動作が多発する制御因子（図１１の例では、制御因子Ｂおよびそれに対する全ての水準に対して色を変えたりして他と区別できる表示をする。
【００５９】
特定の入力変数で多発しない場合には、ステップｓ２３０において、エラー診断部１６は、入力変数の値によって異常動作が発生するか否かを判定する。異常動作の発生が何れかの水準に偏る場合は、正常に動作する水準もあるのであるから、ステップｓ２４０において、作業者は、ソフトウェアの仕様（適用範囲）の確認と修正・追加を行い、また、顧客要求レベルにより仕様拡張を検討する。この場合には、図１１の表示１１０２のように、異常動作が発生する水準に対して色を変えたりして他と区別できる表示をする。たとえば、水準１には正常な入力値を設定され、水準２には異常な入力値として負の貸出者ＩＤを設定され、水準３に仮定のＩＤを設定された場合であって、水準１と水準３で異常動作となり、水準２では正常動作となったような場合である。
【００６０】
次に、図１２を用いて、本実施形態によるソフトウェア開発支援装置のエラー診断部１６による開発見通しの推定処理の内容について説明する。
図１２は、本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部１６による開発見通しの推定処理の説明図である。
【００６１】
エラー診断部１６は、開発ソフトウェアの規模に対する残存する不具合量から開発見通し（期間やコスト等）を推定する。ここで、事務系ソフトウェアなのか技術計算ソフトウェアなのかといったソフトウェアのジャンルによって一般には開発期間や開発コストが異なる。あるいは、緊急に開発が必要なソフトウェアなのか、そうでないのかといった状況にも開発コストは左右される。
【００６２】
そこで、エラー診断部１６は、図１２に示すように、過去のソフトウェア開発の実績に基づきステップ数から開発工数を求めるための特性曲線を備えている。図１２の横軸は対策が必要なステップ数を示し、縦軸は工数を示している。特性Ａは、ジャンルＡ（例えば、事務系）のソフトウェアにおけるステップ数と工数の相関関係をあらわす特性曲線の例であり、特性Ｂは、別のジャンルＢ（例えば、技術計算）のソフトウェアにおけるステップ数と工数の相関関係をあらわす特性曲線の例である。ソフトウェア開発の緊急性等の相違に関しても仕掛けは同様であり、特性Ａが例えば緊急な開発で、特性Ｂが通常の開発というように異なる特性曲線を備えることができる。
【００６３】
エラー診断部１６は、図６〜図１０の方法により動作をチェックした全件数に対する異常動作の発生した件数の比率を求める。なお、顧客の要求しない仕様に対しては、異常動作があってもそれをカウントしないものとする。そして、この比率にソフトウェアの規模（予想ステップ数）を掛け合わせて、残存する不具合を対策するため修正・追加が必要なステップ数を求める。さらに、ソフトウェアのジャンルに応じて、図１２の特性Ａ，Ｂを用いて、ステップ数Ｓ１から工数Ｐ１を算出する。工数に単価を掛けることにより、開発コストに置き換えてもよいものである。また、残りの開発費から対策可能なステップ数を見積もることも可能である。
【００６４】
以上説明したように、本実施形態によれば、人間の判断基準を体系化してソフトウェア・エラーの原因を診断し、修正／追加が必要な部分を提示することができる。また、開発システムの規模に対するエラー数から開発見通し（期間やコスト等）を推定することによりシステム開発期間を短縮し、顧客要求に合致した製品開発を支援することができる。
【００６５】
【発明の効果】
本発明によれば、ソフトウェアの修正／追加が必要な部分を指摘できることにより、システム開発期間を短縮可能となる。
【００６６】
また、本発明によれば、開発システムの規模に対するエラー数から開発見通し（期間やコスト等）を提示することにより、顧客要求に合致した製品開発を支援可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態によるソフトウェア開発支援装置の構成を示すシステム構成図である。
【図２】本発明の一実施形態によるソフトウェア開発支援装置によるソフトウェアの開発支援処理の内容を示すフローチャートである。
【図３】本発明の一実施形態によるソフトウェア開発支援装置の変数抽出部１２が抽出する変数が記載されたソフトウェア仕様書の説明図である。
【図４】本発明の一実施形態によるソフトウェア開発支援装置の変数抽出部１２が抽出する変数の具体的な説明図である。
【図５】本発明の一実施形態によるソフトウェア開発支援装置に開発支援される図書貸し出しシステムの処理内容を示すフローチャートである。
【図６】本発明の一実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部１４が数理処理によりソフトウェアの動作範囲のチェックを行なう際に用いる直交表の説明図である。
【図７】本発明の一実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部１４が動作する際に、擬似的な操作手段を用いてソフトウェアを動的にチェックする例の説明図である。
【図８】本発明の一実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部１４が動作する際に、擬似的な操作手段を用いてソフトウェアを動的にチェックする例の説明図である。
【図９】本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部１６によるステップｓ３０のソフトウェア実行結果の分析処理の分析結果の説明図である。
【図１０】本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部１６によるステップｓ４０のエラー要因の特定処理の処理内容を示すフローチャートである。
【図１１】本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部１６によるステップｓ５０の評価結果の出力処理における表示内容の説明図である。
【図１２】本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部１６による開発見通しの推定処理の説明図である。
【符号の説明】
１０…演算処理装置
１２…変数抽出部
１４…パラメータサーベイ解析部
１６…エラー診断部
１８…基本動作可視化部。
２０…データ入力装置
３０…データ出力装置
４０…データベース
【図１】
2004272830.tif 000003
【図２】
2004272830.tif 000004
【図３】
2004272830.tif 000005
【図４】
2004272830.tif 000006
【図５】
2004272830.tif 000007
【図６】
2004272830.tif 000008
【図７】
2004272830.tif 000009
【図８】
2004272830.tif 000010
【図９】
2004272830.tif 000011
【図１０】
2004272830.tif 000012
【図１１】
2004272830.tif 000013
【図１２】
2004272830.tif 000014