JP2004272830A - ソフトウェア開発支援装置 - Google Patents
ソフトウェア開発支援装置 Download PDFInfo
- Publication number
- JP2004272830A JP2004272830A JP2003066116A JP2003066116A JP2004272830A JP 2004272830 A JP2004272830 A JP 2004272830A JP 2003066116 A JP2003066116 A JP 2003066116A JP 2003066116 A JP2003066116 A JP 2003066116A JP 2004272830 A JP2004272830 A JP 2004272830A
- Authority
- JP
- Japan
- Prior art keywords
- software
- input
- support device
- variable
- development support
- 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
Links
Images
Abstract
【課題】ソフトウェアの修正/追加が必要な部分を指摘できることにより、システム開発期間を短縮可能なソフトウェア開発支援装置を提供することにある。
【解決手段】演算処理装置10は、ソフトウェアの仕様書から入出力変数を抽出するための入出力変数抽出部12と、入出力変数抽出部12により抽出された入力変数に対して、入力変数値を生成して複数の入力変数値の組合せにおけるソフトウェアの動作チェックを行なうパラメータサーベイ解析部14と、パラメータサーベイ解析部14によってチェックされたソフトウェアのエラーの分析と評価を行なうエラー診断部16とを備えている。
【選択図】 図1
【解決手段】演算処理装置10は、ソフトウェアの仕様書から入出力変数を抽出するための入出力変数抽出部12と、入出力変数抽出部12により抽出された入力変数に対して、入力変数値を生成して複数の入力変数値の組合せにおけるソフトウェアの動作チェックを行なうパラメータサーベイ解析部14と、パラメータサーベイ解析部14によってチェックされたソフトウェアのエラーの分析と評価を行なうエラー診断部16とを備えている。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、計算機を利用したソフトウェアの開発支援装置に係り、特に、ソフトウェアの動作チェックを行い、エラーの分析評価を行うに好適なソフトウェア開発支援装置に関する。
【0002】
【従来の技術】
従来のソフトウェア開発支援装置としては、例えば、特開平11−110252号公報に記載のように、与えられたプログラムを所望の条件でテスト実行し、利用者が正しい挙動と認めた場合の実行ログを試験情報として保存し、保存されている実行ログに記録されていない挙動を抑制するガード命令をプログラム中のある動作を開始するための条件文としてプログラムに付加して、テストしていない挙動は行わないようにするものが記載されている。これによって、信頼性の高いソフトウェアの開発を支援することが可能となる。
【0003】
また、例えば、特開平11−149394号公報に記載のように、ハードウェアとそれを制御するソフトウェアからなる制御システムにおいて、ハードウエア、さらにシステムに関連する周辺の対象物まで含んだ外部環境を模擬したシミュレーションモデルを与えることにより、システムの実行動作を計算機上でシミュレートさせて制御ソフトウェアの機能の検証を行うことが記載されている。これによって、シミュレーションモデルにより制御ソフトウェアを精度よく実行可能にするとともに動作検証を効率良く行うことが可能となる。
【0004】
【特許文献1】
特開平11−110252号公報
【特許文献2】
特開平11−149394号公報
【0005】
【発明が解決しようとする課題】
しかしながら、上述の従来技術では、第1に、定量的なエラー診断に基づいて、ソフトウェアの修正/追加が必要な個所を提示することは考慮されていないという問題があった。また、第2に、開発システムの規模に応じて開発期間やコスト等を推定することもできないという問題があった。
【0006】
本発明の第1の目的は、ソフトウェアの修正/追加が必要な部分を指摘できることにより、システム開発期間を短縮可能なソフトウェア開発支援装置を提供することにある。
【0007】
また、本発明の第2の目的は、開発システムの規模に対するエラー数から開発見通し(期間やコスト等)を提示することにより、顧客要求に合致した製品開発を支援可能なソフトウェア開発支援装置を提供することにある。
【0008】
【課題を解決するための手段】
(1)上記第1の目的を達成するために、本発明は、計算機を利用してソフトウェアの開発を支援するソフトウェア開発支援装置であって、ソフトウェアの仕様書から入出力変数を抽出するための入出力変数抽出手段と、この入出力変数抽出手段により抽出された入力変数に対して、入力変数値を生成して複数の入力変数値の組合せにおけるソフトウェアの動作チェックを行なうパラメータサーベイ解析手段と、このパラメータサーベイ解析手段によってチェックされたソフトウェアのエラーの分析と評価を行なうエラー診断手段とを備えるようにしたものである。
かかる構成により、エラー診断手段によってソフトウェアの修正/追加が必要な部分を指摘できることにより、システム開発期間を短縮可能となる。
【0009】
(2)上記(1)において、好ましくは、上記パラメータサーベイ解析手段は、入力変数値を生成するための数理処理用パラメータ生成手段を有し、このパラメータ生成手段は、数理処理を用いてソフトウェアの動作チェックをするために必要な個数の正しい入力変数値と誤った入力変数値とを生成して、数理処理によってソフトウェアの動作チェックを実行するようにしたものである。
【0010】
(3)上記(1)において、好ましくは、上記パラメータサーベイ解析手段は、入力値を生成するためのリアルタイム擬似的操作手段を有し、この擬似的操作手段は、ソフトウェアの実行中に入力を促された文字列または数値に対して、予め決められた文字列や数値の範囲から正しい入力値を生成するか、あるいは誤った入力値となる文字列や数値を生成して、ソフトウェアの動作チェックを実行するようにしたものである。
【0011】
(4)上記(3)において、好ましくは、上記リアルタイム擬似的操作手段は、ソフトウェアの動作チェック時に、ソフトウェアが出力する画面の任意の場所に対して、マウス等の入力装置からの信号と同等の信号を擬似的に与えてソフトウェアの動作チェックを実行するようにしたものである。
【0012】
(5)上記(1)において、好ましくは、上記エラー診断手段は、入力変数毎のエラー発生の頻度および入力変数の取る値によるエラー発生の頻度を用いて、ソフトウェアの修正あるいは仕様変更が必要な部分を推定するようにしたものである。
【0013】
(6)上記第2の目的を達成するために、本発明は、計算機を利用してソフトウェアの開発を支援するソフトウェア開発支援装置であって、ソフトウェアの仕様書から入出力変数を抽出するための入出力変数抽出手段と、この入出力変数抽出手段により抽出された入力変数に対して、入力変数値を生成して複数の入力変数値の組合せにおけるソフトウェアの動作チェックを行なうパラメータサーベイ解析手段と、このパラメータサーベイ解析手段によってチェックされたソフトウェアのエラーの分析と評価を行なうエラー診断手段とを備え、このエラー診断手段は、開発するソフトウェアの規模とソフトウェアの属する分野に応じて、ソフトウェアの動作チェックで出現したエラー数に基づいて、開発期間や開発コスト等の開発見通しを提示するようにしたものである。
かかる構成により、開発システムの規模に対するエラー数から開発見通し(期間やコスト等)を提示でき、顧客要求に合致した製品開発を支援可能となる。
【0014】
【発明の実施の形態】
以下、図1〜図12を用いて、本発明の一実施形態によるソフトウェア開発支援装置の構成及び動作について説明する。
最初に、図1を用いて、本実施形態によるソフトウェア開発支援装置のシステム構成について説明する。
図1は、本発明の一実施形態によるソフトウェア開発支援装置の構成を示すシステム構成図である。
【0015】
本実施形態によるソフトウェア開発支援装置は、コンピュータまたはサーバからなり、演算処理装置10と、データを入力するための入力装置20と、データを出力するための出力装置30と、入力されたデータを格納するためのデータベース40を有している。
【0016】
演算処理装置10は、変数抽出部12と、パラメータサーベイ解析部14と、エラー診断部16と、基本動作可視化部18とを備えている。変数抽出部12は、ソフトウェアの仕様書から入出力変数を抽出する。
【0017】
パラメータサーベイ解析部14は、数理処理によりソフトウェアの動作チェックを行なうものであり、数理処理用パラメータ生成部14Aと、リアルタイム擬似的操作部14Bを備えている。数理処理用パラメータ生成部14Aは、入力変数値を生成するものであり、数理処理を用いてソフトウェアの動作チェックをするために必要な個数の正しい入力変数値と誤った入力変数値とを生成して、数理処理によってソフトウェアの動作チェックを実行する。リアルタイム擬似的操作部14Bは、入力装置からの信号と同等の信号を擬似的に与えるものであり、ソフトウェアの実行中に入力を促された文字列または数値に対して、予め決められた文字列や数値の範囲から正しい入力値を生成するか、あるいは誤った入力値となる文字列や数値を生成して、ソフトウェアの動作チェックを実行する。また、マウス等の入力装置からの入力と同等の信号を生成する。
【0018】
エラー診断部16は、エラーの分析と評価を行なう。基本動作可視化部18は、ソフトの根幹部分以外をモデル化してエミュレーションする。これらの変数抽出部12,パラメータサーベイ解析部14,エラー診断部16,基本動作可視化部18は、同一のCPUを用いるものでもよいし、異なるCPUを用いるものでもよい。なお、これら各部12,14,16,18の機能は、プログラムにより実行される。
【0019】
次に、図2を用いて、本実施形態によるソフトウェア開発支援装置によるソフトウェアの開発支援処理の内容について説明する。
図2は、本発明の一実施形態によるソフトウェア開発支援装置によるソフトウェアの開発支援処理の内容を示すフローチャートである。
【0020】
ステップs10において、変数抽出部12は、ソフトウェアのソースコードから入力変数・出力変数を抽出する。変数抽出処理の具体例については、図3,図4を用いて後述する。
【0021】
次に、ステップs20において、パラメータサーベイ解析部14は、数理処理を用いたソフトウェアの動作チェックを行う。数理処理を用いる理由はチェックの回数を減らすためであるので、すべての入力変数の組み合わせによる総なめチェックでもよいものである。動作チェックの詳細については、図6〜図8を用いて後述する。
【0022】
次に、ステップs30〜s50において、エラー診断部16は、エラーの分析と評価を行なう。ステップs30において、エラー診断部16は、ソフトウェア実行結果の分析を行う。ソフトウェア実行結果の分析では、ソフトウェアが出力した変数の値がその変数の取り得る値かどうか、あるいは、プログラムが正常終了したか否かを検査する。実行結果の分析の詳細については、図9を用いて後述する。
【0023】
次に、ステップs40において、エラー診断部16は、エラー要因を特定する。エラー要因の特定(16b)では、ソフトウェアのエラー(異常動作)の原因がコーディングミスによるものなのか、そもそものソフトウェアの仕様上の制限によるものなのかを特定する。エラー要因の特定の詳細については、図10を用いて後述する。
【0024】
次に、ステップs50において、エラー診断部16は、評価結果を出力する。評価結果の出力は、ソフトウェアの修正や追加が必要な部分を提示すると共に、ソフトウェアの規模や、事務系ソフトウェアなのか技術計算ソフトウェアなのかといったソフトウェアのジャンルに応じた開発見通し(期間,コスト等)を推定して表示する。評価結果の出力の詳細については、図11,図12を用いて後述する。
【0025】
次に、図3及び図4を用いて、本実施形態によるソフトウェア開発支援装置の変数抽出部12によるステップs10の処理内容について説明する。
図3は、本発明の一実施形態によるソフトウェア開発支援装置の変数抽出部12が抽出する変数が記載されたソフトウェア仕様書の説明図である。図4は、本発明の一実施形態によるソフトウェア開発支援装置の変数抽出部12が抽出する変数の具体的な説明図である。
【0026】
図3に示すソフトウェア仕様書には、入力変数,出力変数,一時的変数が、それらの取り得る範囲と共に定義されている。変数抽出部12は、このソフトウェアの仕様書から入出力変数を抽出する。
【0027】
入力変数定義文301の「/* Input Variables */」は、以下に入力変数が定義されていることを意味する。出力変数定義文302の「/* Output Variables */」は、以下に出力変数が定義されていることを意味する。一時的変数定義文303の「/* Temporary Variables */」は、以下に一時的変数が定義されていることを意味する。
【0028】
入力変数定義文301の中の定義文304の「int inum,jnum,size;」と定義文305の「double array(10000);」は入力変数の例である。int定義文304は、「inum」と「jnum」と「size」という整数の範囲の変数があることを意味している。double定義文305は、「array」という実数の範囲の10,000個の大きさをもつ配列があることを意味している。
【0029】
出力変数定義文302の中の定義文306の「double zzz;」は出力変数の例である。double定義文306は、「zzz」という実数の範囲の変数があることを意味している。
【0030】
変数抽出部12は、このように記述されたソフトウェア仕様書を検索して変数の種類を抽出する。同様に、変数抽出部12は、このように記述されたソフトウェア仕様書を検索して変数と取り得る値の範囲を抽出する。
【0031】
なお、図3に示したソフトウェア仕様書は、ソフトウェアの記法に近い形態をとっているが、変数の種類と取り得る値の範囲が定義されていれば、この形態に限定するものではなく、変数の取り得る値などはさらに詳細に記述してもよいものである。
【0032】
図4は、「図書貸出しシステム」を例にした入力変数401と出力変数402の例を示している。図書番号403は文字列型の入力変数とし、貸し出し期間404は日付型の入力変数とし、借用者ID405は整数型の入力変数とする。また、受付番号406とエラー番号407は、整数型の出力変数とする。
【0033】
以下の説明では、本実施形態によるソフトウェア開発支援装置を用いて、図書貸し出しシステムの開発支援を行う場合のソフトウェアのエラー分析と評価を行う例について説明する。
【0034】
ここで、図5を用いて、本実施形態によるソフトウェア開発支援装置に開発支援される図書貸し出しシステムの処理内容について説明する。
図5は、本発明の一実施形態によるソフトウェア開発支援装置に開発支援される図書貸し出しシステムの処理内容を示すフローチャートである。
【0035】
図書の貸出しが正常に受付けられるためには、以下の3点が全て満足される必要がある。
▲1▼貸出し可能な図書であり、現在貸出し中ではない。
▲2▼その図書に対する妥当な貸出し期間である。
▲3▼有効な借用者IDであり、この借用者に対する貸出し制限冊数を超えていない。
【0036】
そこで、ステップs110において、図書貸し出しシステムは、貸し出しを希望する図書が貸出し可能な図書であり、現在貸出し中ではないか否かを判定する。貸し出し可能であり、貸し出し中でない場合にはステップs120に進み、そうでない場合には、ステップs150に進み、エラー処理を実行する。エラー処理では、「エラー番号」を出力する。
【0037】
次に、ステップs120において、図書貸し出しシステムは、貸出し期間がその図書に対する妥当な貸出し期間であるか否かを判定する。妥当である場合にはステップs130に進み、そうでない場合には、ステップs150に進み、エラー処理を実行する。
【0038】
次に、ステップs130において、図書貸し出しシステムは、借用者の貸出しカードに基づいて、有効な借用者IDであり、この借用者に対する貸出し制限冊数を超えていないか否かを判定する。有効なIDであり、制限数を超えていない場合にはステップs140に進み、正常受付処理を実行する。正常受付処理では、「受付番号」を出力する。そうでない場合には、ステップs150に進み、エラー処理を実行する。
【0039】
次に、図6〜図8を用いて、本実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部14によるステップs20の処理内容について説明する。
図6は、本発明の一実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部14が数理処理によりソフトウェアの動作範囲のチェックを行なう際に用いる直交表の説明図である。図7及び図8は、本発明の一実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部14が動作する際に、擬似的な操作手段を用いてソフトウェアを動的にチェックする例の説明図である。
【0040】
パラメータサーベイ解析部14の数理処理用パラメータ生成部14Aは、入力変数値を生成するものであり、数理処理を用いてソフトウェアの動作チェックをするために必要な個数の正しい入力変数値と誤った入力変数値とを生成して、数理処理によってソフトウェアの動作チェックを実行する。
【0041】
図6には、パラメータサーベイ解析部14の数理処理用パラメータ生成部14Aが数理処理によりソフトウェアの動作範囲のチェックを行なう際に用いるL18直交表601と、制御因子とその水準602の例が示されている。
【0042】
L18直交表601は、複数の制御因子A〜H毎にそれぞれ水準1〜3を変えて、18個の制御因子の状態を設定している。L18直交表601は、ソフトウェアの動作範囲のチェックを行うために、制御因子毎に異なる水準1〜3(「正常な入力」と「異常な入力」)を設定した複数の入力変数の組み合わせである。
【0043】
制御因子は、入力変数である。入力変数の取り得る範囲から、範囲内の入力変数を水準1の「正常な入力」とし、範囲外の入力変数を水準2,3の「異常な入力」とする。直交表を用いた数理処理の原理については、例えば、横山巽子編「品質工学講座(4)品質工学のための実験計画法」にパラメータ設計の基礎となる直交表の理論と解説が記載されている。
【0044】
具体的には、制御因子とその水準602に示すように、図書貸し出しシステムの例では、制御因子としては、B:図書番号,C:日付,D:借用者ID等の入力変数が制御因子となる。水準の中には「正常な入力」(水準1)と、「異常な入力」(水準2)(水準3)が必要なので、例えば、制御因子の「B:図書番号」であれば、水準1には存在する図書番号を、水準2や水準3には架空の図書番号をランダムな文字列を生成して設定する。また、制御因子の「C:日付」であれば、水準1には本日の日付を、水準2,水準3には過去の日付を生成して設定する。同様に、制御因子の「D:借用者のID」であれば、水準1には図書貸出しシステムに登録されている者の正しいIDを、水準2,水準3には架空のIDをランダムな整数値を生成して設定する。水準1,2,3は、数理処理用パラメータ生成部14によって自動的に生成される。
【0045】
L18直交表では、8個の制御因子A〜Hを取り得るので、制御因子A,E〜Hには適当なダミーデータを入力する。制御因子Aは、水準1,2しか取り得ないので、ここでは用いていない。
【0046】
なお、入力変数の数が多い場合や、テストする水準を増やす場合はL18直交表よりも大きい直交表を用いてもよいものである。また、入力変数のなかで、データの規模を表すものを信号因子として、結果出力までの時間を計ればデータの規模に対するシステムのレスポンスが評価できる。
【0047】
次に、図7と図8を用いて、パラメータサーベイ解析部14が動作する際に、擬似的な操作手段を用いてソフトウェアを動的にチェックする例について説明する。
【0048】
パラメータサーベイ解析部14のリアルタイム擬似的操作部14Bは、ソフトウェアの実行中に入力を促された文字列または数値に対して、図6に示したL18直交表を用いて、予め決められた文字列や数値の範囲から正しい入力値を生成するか、あるいは誤った入力値となる文字列や数値を生成する。
【0049】
文字列入力画面701は、ソフトウェアの実行中に表示された文字列の入力を促す画面の例であある。このような文字列入力画面が表示され、文字列の入力が促されている場合には、パラメータサーベイ解析部14は、L18直交表に基づいて、適当な文字列703をソフトウェアに与える。
【0050】
数値入力画面702は、ソフトウェアの実行中に表示された数値の入力を促す画面の例である。このような文字列入力画面が表示され、文字列の入力が促されている場合には、パラメータサーベイ解析部14は、L18直交表に基づいて、適当な数値704をソフトウェアに与える。
【0051】
図8は、ソフトウェアの出力する画面の任意の場所をマウス等の入力装置を用いて指定する状況において、パラメータサーベイ解析部14のリアルタイム擬似的操作部14Bは、マウス等の入力装置からの信号と同等の信号を擬似的に与えてソフトウェアの動作チェックを実行する例である。パラメータサーベイ解析部14は、ソフトウェアの出力した表示画面801に対して、ポインタ802でポインティングすることにより、ポインティングする装置の入力を擬似的に与える。ポインタ802によるポインティングは、画面801に対して、左上端から右下端まで隈なく行う動作をエミュレーションする。なお、ポインタ802によるポインティングは、画面801に対して、ランダムに行う動作をエミュレーションするようにしてもよいものである。
【0052】
ここで、図7に示したように文字列や数値の入力を促す画面701,702がソフトウェアから出力された場合には、画面をポインティングする動作を中断して、文字列や数値を入力する処理に移行する。
【0053】
次に、図9〜図12を用いて、本実施形態によるソフトウェア開発支援装置のエラー診断部16によるステップs30〜s50の処理内容について説明する。
図9は、本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部16によるステップs30のソフトウェア実行結果の分析処理の分析結果の説明図である。
【0054】
エラー診断部16は、ソフトウェアが「正常動作(A)」したか、「異常動作(B)」したかを診断する。正しい入力に対しては正常処理が行われ、誤った入力に対してはエラー処理が行われることが「正常動作(A)」である。図書貸出しシステムの例では、正当な「図書番号」,「貸出し期間」,「借用者ID」の入力に対して、「受付番号」が出力されること、逆に、問題のある入力に対しては「エラー番号」が出力されることが「正常動作(A)」となる。
【0055】
これ以外の動作、例えば,正しい入力に対してもエラー処理が行われたり、誤った入力に対して正常処理が行われたりした場合は、全て「異常動作(B)」とする。また、出力の値がその変数の取り得る範囲外であったり、プログラムダウンやプログラムからの応答が無い場合は、全て「異常動作(B)」とする。
【0056】
図10は、本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部16によるステップs40のエラー要因の特定処理の処理内容を示すフローチャートである。また、図11は、本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部16によるステップs50の評価結果の出力処理における表示内容の説明図である。
【0057】
エラー診断部16は、入力変数毎の異常動作発生の頻度および入力変数の取る値による異常動作発生の頻度を用いて、ソフトウェアの修正あるいは仕様変更が必要な部分を推定する。ソフトウェアには大別して2種類のバグ(不具合)がある。ひとつは単純なコーディングミスであり、もうひとつは想定外の入力に対するプログラムダウンである。
【0058】
図10のステップs210において、エラー診断部16は、異常動作の発生が特定の入力変数(図6の制御因子602における特定の制御因子)で多発するか否かを判定する。多発する場合には、明らかにソフトウェアのコーディングミスが存在することとし、ステップs220において、作業者はコーディングミスを修正する。コーディングミスは単純なパンチミスのようなものであり、修正すべき入力変数を、例えば,図11の表示1101のように、異常動作が多発する制御因子(図11の例では、制御因子Bおよびそれに対する全ての水準に対して色を変えたりして他と区別できる表示をする。
【0059】
特定の入力変数で多発しない場合には、ステップs230において、エラー診断部16は、入力変数の値によって異常動作が発生するか否かを判定する。異常動作の発生が何れかの水準に偏る場合は、正常に動作する水準もあるのであるから、ステップs240において、作業者は、ソフトウェアの仕様(適用範囲)の確認と修正・追加を行い、また、顧客要求レベルにより仕様拡張を検討する。この場合には、図11の表示1102のように、異常動作が発生する水準に対して色を変えたりして他と区別できる表示をする。たとえば、水準1には正常な入力値を設定され、水準2には異常な入力値として負の貸出者IDを設定され、水準3に仮定のIDを設定された場合であって、水準1と水準3で異常動作となり、水準2では正常動作となったような場合である。
【0060】
次に、図12を用いて、本実施形態によるソフトウェア開発支援装置のエラー診断部16による開発見通しの推定処理の内容について説明する。
図12は、本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部16による開発見通しの推定処理の説明図である。
【0061】
エラー診断部16は、開発ソフトウェアの規模に対する残存する不具合量から開発見通し(期間やコスト等)を推定する。ここで、事務系ソフトウェアなのか技術計算ソフトウェアなのかといったソフトウェアのジャンルによって一般には開発期間や開発コストが異なる。あるいは、緊急に開発が必要なソフトウェアなのか、そうでないのかといった状況にも開発コストは左右される。
【0062】
そこで、エラー診断部16は、図12に示すように、過去のソフトウェア開発の実績に基づきステップ数から開発工数を求めるための特性曲線を備えている。図12の横軸は対策が必要なステップ数を示し、縦軸は工数を示している。特性Aは、ジャンルA(例えば、事務系)のソフトウェアにおけるステップ数と工数の相関関係をあらわす特性曲線の例であり、特性Bは、別のジャンルB(例えば、技術計算)のソフトウェアにおけるステップ数と工数の相関関係をあらわす特性曲線の例である。ソフトウェア開発の緊急性等の相違に関しても仕掛けは同様であり、特性Aが例えば緊急な開発で、特性Bが通常の開発というように異なる特性曲線を備えることができる。
【0063】
エラー診断部16は、図6〜図10の方法により動作をチェックした全件数に対する異常動作の発生した件数の比率を求める。なお、顧客の要求しない仕様に対しては、異常動作があってもそれをカウントしないものとする。そして、この比率にソフトウェアの規模(予想ステップ数)を掛け合わせて、残存する不具合を対策するため修正・追加が必要なステップ数を求める。さらに、ソフトウェアのジャンルに応じて、図12の特性A,Bを用いて、ステップ数S1から工数P1を算出する。工数に単価を掛けることにより、開発コストに置き換えてもよいものである。また、残りの開発費から対策可能なステップ数を見積もることも可能である。
【0064】
以上説明したように、本実施形態によれば、人間の判断基準を体系化してソフトウェア・エラーの原因を診断し、修正/追加が必要な部分を提示することができる。また、開発システムの規模に対するエラー数から開発見通し(期間やコスト等)を推定することによりシステム開発期間を短縮し、顧客要求に合致した製品開発を支援することができる。
【0065】
【発明の効果】
本発明によれば、ソフトウェアの修正/追加が必要な部分を指摘できることにより、システム開発期間を短縮可能となる。
【0066】
また、本発明によれば、開発システムの規模に対するエラー数から開発見通し(期間やコスト等)を提示することにより、顧客要求に合致した製品開発を支援可能となる。
【図面の簡単な説明】
【図1】本発明の一実施形態によるソフトウェア開発支援装置の構成を示すシステム構成図である。
【図2】本発明の一実施形態によるソフトウェア開発支援装置によるソフトウェアの開発支援処理の内容を示すフローチャートである。
【図3】本発明の一実施形態によるソフトウェア開発支援装置の変数抽出部12が抽出する変数が記載されたソフトウェア仕様書の説明図である。
【図4】本発明の一実施形態によるソフトウェア開発支援装置の変数抽出部12が抽出する変数の具体的な説明図である。
【図5】本発明の一実施形態によるソフトウェア開発支援装置に開発支援される図書貸し出しシステムの処理内容を示すフローチャートである。
【図6】本発明の一実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部14が数理処理によりソフトウェアの動作範囲のチェックを行なう際に用いる直交表の説明図である。
【図7】本発明の一実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部14が動作する際に、擬似的な操作手段を用いてソフトウェアを動的にチェックする例の説明図である。
【図8】本発明の一実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部14が動作する際に、擬似的な操作手段を用いてソフトウェアを動的にチェックする例の説明図である。
【図9】本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部16によるステップs30のソフトウェア実行結果の分析処理の分析結果の説明図である。
【図10】本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部16によるステップs40のエラー要因の特定処理の処理内容を示すフローチャートである。
【図11】本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部16によるステップs50の評価結果の出力処理における表示内容の説明図である。
【図12】本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部16による開発見通しの推定処理の説明図である。
【符号の説明】
10…演算処理装置
12…変数抽出部
14…パラメータサーベイ解析部
16…エラー診断部
18…基本動作可視化部。
20…データ入力装置
30…データ出力装置
40…データベース
【発明の属する技術分野】
本発明は、計算機を利用したソフトウェアの開発支援装置に係り、特に、ソフトウェアの動作チェックを行い、エラーの分析評価を行うに好適なソフトウェア開発支援装置に関する。
【0002】
【従来の技術】
従来のソフトウェア開発支援装置としては、例えば、特開平11−110252号公報に記載のように、与えられたプログラムを所望の条件でテスト実行し、利用者が正しい挙動と認めた場合の実行ログを試験情報として保存し、保存されている実行ログに記録されていない挙動を抑制するガード命令をプログラム中のある動作を開始するための条件文としてプログラムに付加して、テストしていない挙動は行わないようにするものが記載されている。これによって、信頼性の高いソフトウェアの開発を支援することが可能となる。
【0003】
また、例えば、特開平11−149394号公報に記載のように、ハードウェアとそれを制御するソフトウェアからなる制御システムにおいて、ハードウエア、さらにシステムに関連する周辺の対象物まで含んだ外部環境を模擬したシミュレーションモデルを与えることにより、システムの実行動作を計算機上でシミュレートさせて制御ソフトウェアの機能の検証を行うことが記載されている。これによって、シミュレーションモデルにより制御ソフトウェアを精度よく実行可能にするとともに動作検証を効率良く行うことが可能となる。
【0004】
【特許文献1】
特開平11−110252号公報
【特許文献2】
特開平11−149394号公報
【0005】
【発明が解決しようとする課題】
しかしながら、上述の従来技術では、第1に、定量的なエラー診断に基づいて、ソフトウェアの修正/追加が必要な個所を提示することは考慮されていないという問題があった。また、第2に、開発システムの規模に応じて開発期間やコスト等を推定することもできないという問題があった。
【0006】
本発明の第1の目的は、ソフトウェアの修正/追加が必要な部分を指摘できることにより、システム開発期間を短縮可能なソフトウェア開発支援装置を提供することにある。
【0007】
また、本発明の第2の目的は、開発システムの規模に対するエラー数から開発見通し(期間やコスト等)を提示することにより、顧客要求に合致した製品開発を支援可能なソフトウェア開発支援装置を提供することにある。
【0008】
【課題を解決するための手段】
(1)上記第1の目的を達成するために、本発明は、計算機を利用してソフトウェアの開発を支援するソフトウェア開発支援装置であって、ソフトウェアの仕様書から入出力変数を抽出するための入出力変数抽出手段と、この入出力変数抽出手段により抽出された入力変数に対して、入力変数値を生成して複数の入力変数値の組合せにおけるソフトウェアの動作チェックを行なうパラメータサーベイ解析手段と、このパラメータサーベイ解析手段によってチェックされたソフトウェアのエラーの分析と評価を行なうエラー診断手段とを備えるようにしたものである。
かかる構成により、エラー診断手段によってソフトウェアの修正/追加が必要な部分を指摘できることにより、システム開発期間を短縮可能となる。
【0009】
(2)上記(1)において、好ましくは、上記パラメータサーベイ解析手段は、入力変数値を生成するための数理処理用パラメータ生成手段を有し、このパラメータ生成手段は、数理処理を用いてソフトウェアの動作チェックをするために必要な個数の正しい入力変数値と誤った入力変数値とを生成して、数理処理によってソフトウェアの動作チェックを実行するようにしたものである。
【0010】
(3)上記(1)において、好ましくは、上記パラメータサーベイ解析手段は、入力値を生成するためのリアルタイム擬似的操作手段を有し、この擬似的操作手段は、ソフトウェアの実行中に入力を促された文字列または数値に対して、予め決められた文字列や数値の範囲から正しい入力値を生成するか、あるいは誤った入力値となる文字列や数値を生成して、ソフトウェアの動作チェックを実行するようにしたものである。
【0011】
(4)上記(3)において、好ましくは、上記リアルタイム擬似的操作手段は、ソフトウェアの動作チェック時に、ソフトウェアが出力する画面の任意の場所に対して、マウス等の入力装置からの信号と同等の信号を擬似的に与えてソフトウェアの動作チェックを実行するようにしたものである。
【0012】
(5)上記(1)において、好ましくは、上記エラー診断手段は、入力変数毎のエラー発生の頻度および入力変数の取る値によるエラー発生の頻度を用いて、ソフトウェアの修正あるいは仕様変更が必要な部分を推定するようにしたものである。
【0013】
(6)上記第2の目的を達成するために、本発明は、計算機を利用してソフトウェアの開発を支援するソフトウェア開発支援装置であって、ソフトウェアの仕様書から入出力変数を抽出するための入出力変数抽出手段と、この入出力変数抽出手段により抽出された入力変数に対して、入力変数値を生成して複数の入力変数値の組合せにおけるソフトウェアの動作チェックを行なうパラメータサーベイ解析手段と、このパラメータサーベイ解析手段によってチェックされたソフトウェアのエラーの分析と評価を行なうエラー診断手段とを備え、このエラー診断手段は、開発するソフトウェアの規模とソフトウェアの属する分野に応じて、ソフトウェアの動作チェックで出現したエラー数に基づいて、開発期間や開発コスト等の開発見通しを提示するようにしたものである。
かかる構成により、開発システムの規模に対するエラー数から開発見通し(期間やコスト等)を提示でき、顧客要求に合致した製品開発を支援可能となる。
【0014】
【発明の実施の形態】
以下、図1〜図12を用いて、本発明の一実施形態によるソフトウェア開発支援装置の構成及び動作について説明する。
最初に、図1を用いて、本実施形態によるソフトウェア開発支援装置のシステム構成について説明する。
図1は、本発明の一実施形態によるソフトウェア開発支援装置の構成を示すシステム構成図である。
【0015】
本実施形態によるソフトウェア開発支援装置は、コンピュータまたはサーバからなり、演算処理装置10と、データを入力するための入力装置20と、データを出力するための出力装置30と、入力されたデータを格納するためのデータベース40を有している。
【0016】
演算処理装置10は、変数抽出部12と、パラメータサーベイ解析部14と、エラー診断部16と、基本動作可視化部18とを備えている。変数抽出部12は、ソフトウェアの仕様書から入出力変数を抽出する。
【0017】
パラメータサーベイ解析部14は、数理処理によりソフトウェアの動作チェックを行なうものであり、数理処理用パラメータ生成部14Aと、リアルタイム擬似的操作部14Bを備えている。数理処理用パラメータ生成部14Aは、入力変数値を生成するものであり、数理処理を用いてソフトウェアの動作チェックをするために必要な個数の正しい入力変数値と誤った入力変数値とを生成して、数理処理によってソフトウェアの動作チェックを実行する。リアルタイム擬似的操作部14Bは、入力装置からの信号と同等の信号を擬似的に与えるものであり、ソフトウェアの実行中に入力を促された文字列または数値に対して、予め決められた文字列や数値の範囲から正しい入力値を生成するか、あるいは誤った入力値となる文字列や数値を生成して、ソフトウェアの動作チェックを実行する。また、マウス等の入力装置からの入力と同等の信号を生成する。
【0018】
エラー診断部16は、エラーの分析と評価を行なう。基本動作可視化部18は、ソフトの根幹部分以外をモデル化してエミュレーションする。これらの変数抽出部12,パラメータサーベイ解析部14,エラー診断部16,基本動作可視化部18は、同一のCPUを用いるものでもよいし、異なるCPUを用いるものでもよい。なお、これら各部12,14,16,18の機能は、プログラムにより実行される。
【0019】
次に、図2を用いて、本実施形態によるソフトウェア開発支援装置によるソフトウェアの開発支援処理の内容について説明する。
図2は、本発明の一実施形態によるソフトウェア開発支援装置によるソフトウェアの開発支援処理の内容を示すフローチャートである。
【0020】
ステップs10において、変数抽出部12は、ソフトウェアのソースコードから入力変数・出力変数を抽出する。変数抽出処理の具体例については、図3,図4を用いて後述する。
【0021】
次に、ステップs20において、パラメータサーベイ解析部14は、数理処理を用いたソフトウェアの動作チェックを行う。数理処理を用いる理由はチェックの回数を減らすためであるので、すべての入力変数の組み合わせによる総なめチェックでもよいものである。動作チェックの詳細については、図6〜図8を用いて後述する。
【0022】
次に、ステップs30〜s50において、エラー診断部16は、エラーの分析と評価を行なう。ステップs30において、エラー診断部16は、ソフトウェア実行結果の分析を行う。ソフトウェア実行結果の分析では、ソフトウェアが出力した変数の値がその変数の取り得る値かどうか、あるいは、プログラムが正常終了したか否かを検査する。実行結果の分析の詳細については、図9を用いて後述する。
【0023】
次に、ステップs40において、エラー診断部16は、エラー要因を特定する。エラー要因の特定(16b)では、ソフトウェアのエラー(異常動作)の原因がコーディングミスによるものなのか、そもそものソフトウェアの仕様上の制限によるものなのかを特定する。エラー要因の特定の詳細については、図10を用いて後述する。
【0024】
次に、ステップs50において、エラー診断部16は、評価結果を出力する。評価結果の出力は、ソフトウェアの修正や追加が必要な部分を提示すると共に、ソフトウェアの規模や、事務系ソフトウェアなのか技術計算ソフトウェアなのかといったソフトウェアのジャンルに応じた開発見通し(期間,コスト等)を推定して表示する。評価結果の出力の詳細については、図11,図12を用いて後述する。
【0025】
次に、図3及び図4を用いて、本実施形態によるソフトウェア開発支援装置の変数抽出部12によるステップs10の処理内容について説明する。
図3は、本発明の一実施形態によるソフトウェア開発支援装置の変数抽出部12が抽出する変数が記載されたソフトウェア仕様書の説明図である。図4は、本発明の一実施形態によるソフトウェア開発支援装置の変数抽出部12が抽出する変数の具体的な説明図である。
【0026】
図3に示すソフトウェア仕様書には、入力変数,出力変数,一時的変数が、それらの取り得る範囲と共に定義されている。変数抽出部12は、このソフトウェアの仕様書から入出力変数を抽出する。
【0027】
入力変数定義文301の「/* Input Variables */」は、以下に入力変数が定義されていることを意味する。出力変数定義文302の「/* Output Variables */」は、以下に出力変数が定義されていることを意味する。一時的変数定義文303の「/* Temporary Variables */」は、以下に一時的変数が定義されていることを意味する。
【0028】
入力変数定義文301の中の定義文304の「int inum,jnum,size;」と定義文305の「double array(10000);」は入力変数の例である。int定義文304は、「inum」と「jnum」と「size」という整数の範囲の変数があることを意味している。double定義文305は、「array」という実数の範囲の10,000個の大きさをもつ配列があることを意味している。
【0029】
出力変数定義文302の中の定義文306の「double zzz;」は出力変数の例である。double定義文306は、「zzz」という実数の範囲の変数があることを意味している。
【0030】
変数抽出部12は、このように記述されたソフトウェア仕様書を検索して変数の種類を抽出する。同様に、変数抽出部12は、このように記述されたソフトウェア仕様書を検索して変数と取り得る値の範囲を抽出する。
【0031】
なお、図3に示したソフトウェア仕様書は、ソフトウェアの記法に近い形態をとっているが、変数の種類と取り得る値の範囲が定義されていれば、この形態に限定するものではなく、変数の取り得る値などはさらに詳細に記述してもよいものである。
【0032】
図4は、「図書貸出しシステム」を例にした入力変数401と出力変数402の例を示している。図書番号403は文字列型の入力変数とし、貸し出し期間404は日付型の入力変数とし、借用者ID405は整数型の入力変数とする。また、受付番号406とエラー番号407は、整数型の出力変数とする。
【0033】
以下の説明では、本実施形態によるソフトウェア開発支援装置を用いて、図書貸し出しシステムの開発支援を行う場合のソフトウェアのエラー分析と評価を行う例について説明する。
【0034】
ここで、図5を用いて、本実施形態によるソフトウェア開発支援装置に開発支援される図書貸し出しシステムの処理内容について説明する。
図5は、本発明の一実施形態によるソフトウェア開発支援装置に開発支援される図書貸し出しシステムの処理内容を示すフローチャートである。
【0035】
図書の貸出しが正常に受付けられるためには、以下の3点が全て満足される必要がある。
▲1▼貸出し可能な図書であり、現在貸出し中ではない。
▲2▼その図書に対する妥当な貸出し期間である。
▲3▼有効な借用者IDであり、この借用者に対する貸出し制限冊数を超えていない。
【0036】
そこで、ステップs110において、図書貸し出しシステムは、貸し出しを希望する図書が貸出し可能な図書であり、現在貸出し中ではないか否かを判定する。貸し出し可能であり、貸し出し中でない場合にはステップs120に進み、そうでない場合には、ステップs150に進み、エラー処理を実行する。エラー処理では、「エラー番号」を出力する。
【0037】
次に、ステップs120において、図書貸し出しシステムは、貸出し期間がその図書に対する妥当な貸出し期間であるか否かを判定する。妥当である場合にはステップs130に進み、そうでない場合には、ステップs150に進み、エラー処理を実行する。
【0038】
次に、ステップs130において、図書貸し出しシステムは、借用者の貸出しカードに基づいて、有効な借用者IDであり、この借用者に対する貸出し制限冊数を超えていないか否かを判定する。有効なIDであり、制限数を超えていない場合にはステップs140に進み、正常受付処理を実行する。正常受付処理では、「受付番号」を出力する。そうでない場合には、ステップs150に進み、エラー処理を実行する。
【0039】
次に、図6〜図8を用いて、本実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部14によるステップs20の処理内容について説明する。
図6は、本発明の一実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部14が数理処理によりソフトウェアの動作範囲のチェックを行なう際に用いる直交表の説明図である。図7及び図8は、本発明の一実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部14が動作する際に、擬似的な操作手段を用いてソフトウェアを動的にチェックする例の説明図である。
【0040】
パラメータサーベイ解析部14の数理処理用パラメータ生成部14Aは、入力変数値を生成するものであり、数理処理を用いてソフトウェアの動作チェックをするために必要な個数の正しい入力変数値と誤った入力変数値とを生成して、数理処理によってソフトウェアの動作チェックを実行する。
【0041】
図6には、パラメータサーベイ解析部14の数理処理用パラメータ生成部14Aが数理処理によりソフトウェアの動作範囲のチェックを行なう際に用いるL18直交表601と、制御因子とその水準602の例が示されている。
【0042】
L18直交表601は、複数の制御因子A〜H毎にそれぞれ水準1〜3を変えて、18個の制御因子の状態を設定している。L18直交表601は、ソフトウェアの動作範囲のチェックを行うために、制御因子毎に異なる水準1〜3(「正常な入力」と「異常な入力」)を設定した複数の入力変数の組み合わせである。
【0043】
制御因子は、入力変数である。入力変数の取り得る範囲から、範囲内の入力変数を水準1の「正常な入力」とし、範囲外の入力変数を水準2,3の「異常な入力」とする。直交表を用いた数理処理の原理については、例えば、横山巽子編「品質工学講座(4)品質工学のための実験計画法」にパラメータ設計の基礎となる直交表の理論と解説が記載されている。
【0044】
具体的には、制御因子とその水準602に示すように、図書貸し出しシステムの例では、制御因子としては、B:図書番号,C:日付,D:借用者ID等の入力変数が制御因子となる。水準の中には「正常な入力」(水準1)と、「異常な入力」(水準2)(水準3)が必要なので、例えば、制御因子の「B:図書番号」であれば、水準1には存在する図書番号を、水準2や水準3には架空の図書番号をランダムな文字列を生成して設定する。また、制御因子の「C:日付」であれば、水準1には本日の日付を、水準2,水準3には過去の日付を生成して設定する。同様に、制御因子の「D:借用者のID」であれば、水準1には図書貸出しシステムに登録されている者の正しいIDを、水準2,水準3には架空のIDをランダムな整数値を生成して設定する。水準1,2,3は、数理処理用パラメータ生成部14によって自動的に生成される。
【0045】
L18直交表では、8個の制御因子A〜Hを取り得るので、制御因子A,E〜Hには適当なダミーデータを入力する。制御因子Aは、水準1,2しか取り得ないので、ここでは用いていない。
【0046】
なお、入力変数の数が多い場合や、テストする水準を増やす場合はL18直交表よりも大きい直交表を用いてもよいものである。また、入力変数のなかで、データの規模を表すものを信号因子として、結果出力までの時間を計ればデータの規模に対するシステムのレスポンスが評価できる。
【0047】
次に、図7と図8を用いて、パラメータサーベイ解析部14が動作する際に、擬似的な操作手段を用いてソフトウェアを動的にチェックする例について説明する。
【0048】
パラメータサーベイ解析部14のリアルタイム擬似的操作部14Bは、ソフトウェアの実行中に入力を促された文字列または数値に対して、図6に示したL18直交表を用いて、予め決められた文字列や数値の範囲から正しい入力値を生成するか、あるいは誤った入力値となる文字列や数値を生成する。
【0049】
文字列入力画面701は、ソフトウェアの実行中に表示された文字列の入力を促す画面の例であある。このような文字列入力画面が表示され、文字列の入力が促されている場合には、パラメータサーベイ解析部14は、L18直交表に基づいて、適当な文字列703をソフトウェアに与える。
【0050】
数値入力画面702は、ソフトウェアの実行中に表示された数値の入力を促す画面の例である。このような文字列入力画面が表示され、文字列の入力が促されている場合には、パラメータサーベイ解析部14は、L18直交表に基づいて、適当な数値704をソフトウェアに与える。
【0051】
図8は、ソフトウェアの出力する画面の任意の場所をマウス等の入力装置を用いて指定する状況において、パラメータサーベイ解析部14のリアルタイム擬似的操作部14Bは、マウス等の入力装置からの信号と同等の信号を擬似的に与えてソフトウェアの動作チェックを実行する例である。パラメータサーベイ解析部14は、ソフトウェアの出力した表示画面801に対して、ポインタ802でポインティングすることにより、ポインティングする装置の入力を擬似的に与える。ポインタ802によるポインティングは、画面801に対して、左上端から右下端まで隈なく行う動作をエミュレーションする。なお、ポインタ802によるポインティングは、画面801に対して、ランダムに行う動作をエミュレーションするようにしてもよいものである。
【0052】
ここで、図7に示したように文字列や数値の入力を促す画面701,702がソフトウェアから出力された場合には、画面をポインティングする動作を中断して、文字列や数値を入力する処理に移行する。
【0053】
次に、図9〜図12を用いて、本実施形態によるソフトウェア開発支援装置のエラー診断部16によるステップs30〜s50の処理内容について説明する。
図9は、本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部16によるステップs30のソフトウェア実行結果の分析処理の分析結果の説明図である。
【0054】
エラー診断部16は、ソフトウェアが「正常動作(A)」したか、「異常動作(B)」したかを診断する。正しい入力に対しては正常処理が行われ、誤った入力に対してはエラー処理が行われることが「正常動作(A)」である。図書貸出しシステムの例では、正当な「図書番号」,「貸出し期間」,「借用者ID」の入力に対して、「受付番号」が出力されること、逆に、問題のある入力に対しては「エラー番号」が出力されることが「正常動作(A)」となる。
【0055】
これ以外の動作、例えば,正しい入力に対してもエラー処理が行われたり、誤った入力に対して正常処理が行われたりした場合は、全て「異常動作(B)」とする。また、出力の値がその変数の取り得る範囲外であったり、プログラムダウンやプログラムからの応答が無い場合は、全て「異常動作(B)」とする。
【0056】
図10は、本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部16によるステップs40のエラー要因の特定処理の処理内容を示すフローチャートである。また、図11は、本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部16によるステップs50の評価結果の出力処理における表示内容の説明図である。
【0057】
エラー診断部16は、入力変数毎の異常動作発生の頻度および入力変数の取る値による異常動作発生の頻度を用いて、ソフトウェアの修正あるいは仕様変更が必要な部分を推定する。ソフトウェアには大別して2種類のバグ(不具合)がある。ひとつは単純なコーディングミスであり、もうひとつは想定外の入力に対するプログラムダウンである。
【0058】
図10のステップs210において、エラー診断部16は、異常動作の発生が特定の入力変数(図6の制御因子602における特定の制御因子)で多発するか否かを判定する。多発する場合には、明らかにソフトウェアのコーディングミスが存在することとし、ステップs220において、作業者はコーディングミスを修正する。コーディングミスは単純なパンチミスのようなものであり、修正すべき入力変数を、例えば,図11の表示1101のように、異常動作が多発する制御因子(図11の例では、制御因子Bおよびそれに対する全ての水準に対して色を変えたりして他と区別できる表示をする。
【0059】
特定の入力変数で多発しない場合には、ステップs230において、エラー診断部16は、入力変数の値によって異常動作が発生するか否かを判定する。異常動作の発生が何れかの水準に偏る場合は、正常に動作する水準もあるのであるから、ステップs240において、作業者は、ソフトウェアの仕様(適用範囲)の確認と修正・追加を行い、また、顧客要求レベルにより仕様拡張を検討する。この場合には、図11の表示1102のように、異常動作が発生する水準に対して色を変えたりして他と区別できる表示をする。たとえば、水準1には正常な入力値を設定され、水準2には異常な入力値として負の貸出者IDを設定され、水準3に仮定のIDを設定された場合であって、水準1と水準3で異常動作となり、水準2では正常動作となったような場合である。
【0060】
次に、図12を用いて、本実施形態によるソフトウェア開発支援装置のエラー診断部16による開発見通しの推定処理の内容について説明する。
図12は、本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部16による開発見通しの推定処理の説明図である。
【0061】
エラー診断部16は、開発ソフトウェアの規模に対する残存する不具合量から開発見通し(期間やコスト等)を推定する。ここで、事務系ソフトウェアなのか技術計算ソフトウェアなのかといったソフトウェアのジャンルによって一般には開発期間や開発コストが異なる。あるいは、緊急に開発が必要なソフトウェアなのか、そうでないのかといった状況にも開発コストは左右される。
【0062】
そこで、エラー診断部16は、図12に示すように、過去のソフトウェア開発の実績に基づきステップ数から開発工数を求めるための特性曲線を備えている。図12の横軸は対策が必要なステップ数を示し、縦軸は工数を示している。特性Aは、ジャンルA(例えば、事務系)のソフトウェアにおけるステップ数と工数の相関関係をあらわす特性曲線の例であり、特性Bは、別のジャンルB(例えば、技術計算)のソフトウェアにおけるステップ数と工数の相関関係をあらわす特性曲線の例である。ソフトウェア開発の緊急性等の相違に関しても仕掛けは同様であり、特性Aが例えば緊急な開発で、特性Bが通常の開発というように異なる特性曲線を備えることができる。
【0063】
エラー診断部16は、図6〜図10の方法により動作をチェックした全件数に対する異常動作の発生した件数の比率を求める。なお、顧客の要求しない仕様に対しては、異常動作があってもそれをカウントしないものとする。そして、この比率にソフトウェアの規模(予想ステップ数)を掛け合わせて、残存する不具合を対策するため修正・追加が必要なステップ数を求める。さらに、ソフトウェアのジャンルに応じて、図12の特性A,Bを用いて、ステップ数S1から工数P1を算出する。工数に単価を掛けることにより、開発コストに置き換えてもよいものである。また、残りの開発費から対策可能なステップ数を見積もることも可能である。
【0064】
以上説明したように、本実施形態によれば、人間の判断基準を体系化してソフトウェア・エラーの原因を診断し、修正/追加が必要な部分を提示することができる。また、開発システムの規模に対するエラー数から開発見通し(期間やコスト等)を推定することによりシステム開発期間を短縮し、顧客要求に合致した製品開発を支援することができる。
【0065】
【発明の効果】
本発明によれば、ソフトウェアの修正/追加が必要な部分を指摘できることにより、システム開発期間を短縮可能となる。
【0066】
また、本発明によれば、開発システムの規模に対するエラー数から開発見通し(期間やコスト等)を提示することにより、顧客要求に合致した製品開発を支援可能となる。
【図面の簡単な説明】
【図1】本発明の一実施形態によるソフトウェア開発支援装置の構成を示すシステム構成図である。
【図2】本発明の一実施形態によるソフトウェア開発支援装置によるソフトウェアの開発支援処理の内容を示すフローチャートである。
【図3】本発明の一実施形態によるソフトウェア開発支援装置の変数抽出部12が抽出する変数が記載されたソフトウェア仕様書の説明図である。
【図4】本発明の一実施形態によるソフトウェア開発支援装置の変数抽出部12が抽出する変数の具体的な説明図である。
【図5】本発明の一実施形態によるソフトウェア開発支援装置に開発支援される図書貸し出しシステムの処理内容を示すフローチャートである。
【図6】本発明の一実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部14が数理処理によりソフトウェアの動作範囲のチェックを行なう際に用いる直交表の説明図である。
【図7】本発明の一実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部14が動作する際に、擬似的な操作手段を用いてソフトウェアを動的にチェックする例の説明図である。
【図8】本発明の一実施形態によるソフトウェア開発支援装置のパラメータサーベイ解析部14が動作する際に、擬似的な操作手段を用いてソフトウェアを動的にチェックする例の説明図である。
【図9】本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部16によるステップs30のソフトウェア実行結果の分析処理の分析結果の説明図である。
【図10】本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部16によるステップs40のエラー要因の特定処理の処理内容を示すフローチャートである。
【図11】本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部16によるステップs50の評価結果の出力処理における表示内容の説明図である。
【図12】本発明の一実施形態によるソフトウェア開発支援装置のエラー診断部16による開発見通しの推定処理の説明図である。
【符号の説明】
10…演算処理装置
12…変数抽出部
14…パラメータサーベイ解析部
16…エラー診断部
18…基本動作可視化部。
20…データ入力装置
30…データ出力装置
40…データベース
Claims (6)
- 計算機を利用してソフトウェアの開発を支援するソフトウェア開発支援装置であって、
ソフトウェアの仕様書から入出力変数を抽出するための入出力変数抽出手段と、
この入出力変数抽出手段により抽出された入力変数に対して、入力変数値を生成して複数の入力変数値の組合せにおけるソフトウェアの動作チェックを行なうパラメータサーベイ解析手段と、
このパラメータサーベイ解析手段によってチェックされたソフトウェアのエラーの分析と評価を行なうエラー診断手段とを備えたことを特徴とするソフトウェア開発支援装置。 - 請求項1記載のソフトウェア開発支援装置において、
上記パラメータサーベイ解析手段は、入力変数値を生成するための数理処理用パラメータ生成手段を有し、
このパラメータ生成手段は、数理処理を用いてソフトウェアの動作チェックをするために必要な個数の正しい入力変数値と誤った入力変数値とを生成して、数理処理によってソフトウェアの動作チェックを実行することを特徴とするソフトウェア開発支援装置。 - 請求項1記載のソフトウェア開発支援装置において、
上記パラメータサーベイ解析手段は、入力値を生成するためのリアルタイム擬似的操作手段を有し、
この擬似的操作手段は、ソフトウェアの実行中に入力を促された文字列または数値に対して、予め決められた文字列や数値の範囲から正しい入力値を生成するか、あるいは誤った入力値となる文字列や数値を生成して、ソフトウェアの動作チェックを実行することを特徴とするソフトウェア開発支援装置。 - 請求項3記載のソフトウェア開発支援装置において、
上記リアルタイム擬似的操作手段は、ソフトウェアの動作チェック時に、ソフトウェアが出力する画面の任意の場所に対して、マウス等の入力装置からの信号と同等の信号を擬似的に与えてソフトウェアの動作チェックを実行することを特徴とするソフトウェア開発支援装置。 - 請求項1記載のソフトウェア開発支援装置において、
上記エラー診断手段は、入力変数毎のエラー発生の頻度および入力変数の取る値によるエラー発生の頻度を用いて、ソフトウェアの修正あるいは仕様変更が必要な部分を推定することを特徴とするソフトウェア開発支援装置。 - 計算機を利用してソフトウェアの開発を支援するソフトウェア開発支援装置であって、
ソフトウェアの仕様書から入出力変数を抽出するための入出力変数抽出手段と、
この入出力変数抽出手段により抽出された入力変数に対して、入力変数値を生成して複数の入力変数値の組合せにおけるソフトウェアの動作チェックを行なうパラメータサーベイ解析手段と、
このパラメータサーベイ解析手段によってチェックされたソフトウェアのエラーの分析と評価を行なうエラー診断手段とを備え、
このエラー診断手段は、開発するソフトウェアの規模とソフトウェアの属する分野に応じて、ソフトウェアの動作チェックで出現したエラー数に基づいて、開発期間や開発コスト等の開発見通しを提示することを特徴とするソフトウェア開発支援装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003066116A JP2004272830A (ja) | 2003-03-12 | 2003-03-12 | ソフトウェア開発支援装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003066116A JP2004272830A (ja) | 2003-03-12 | 2003-03-12 | ソフトウェア開発支援装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004272830A true JP2004272830A (ja) | 2004-09-30 |
Family
ID=33126925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003066116A Pending JP2004272830A (ja) | 2003-03-12 | 2003-03-12 | ソフトウェア開発支援装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004272830A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007328580A (ja) * | 2006-06-08 | 2007-12-20 | Nippon Telegr & Teleph Corp <Ntt> | アプリケーションプログラムの実行方法、その装置及びプログラム |
US7353496B2 (en) | 2004-11-25 | 2008-04-01 | Hitachi, Ltd. | Storage controller software development support system and software development support method |
JP2010072944A (ja) * | 2008-09-18 | 2010-04-02 | Hitachi Information Systems Ltd | 情報処理システムにおける設計品質検査の支援システム |
JP2010205066A (ja) * | 2009-03-04 | 2010-09-16 | Nec Corp | 反例解析支援装置、反例解析支援システム、それらの反例解析支援方法及びプログラム |
US8589889B2 (en) | 2006-12-01 | 2013-11-19 | Samsung Electronics Co., Ltd. | Apparatus and method of detecting errors in embedded software |
WO2014184896A1 (ja) * | 2013-05-15 | 2014-11-20 | 三菱電機株式会社 | プログラム解析装置、プログラム解析方法およびプログラム解析プログラム |
-
2003
- 2003-03-12 JP JP2003066116A patent/JP2004272830A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7353496B2 (en) | 2004-11-25 | 2008-04-01 | Hitachi, Ltd. | Storage controller software development support system and software development support method |
JP2007328580A (ja) * | 2006-06-08 | 2007-12-20 | Nippon Telegr & Teleph Corp <Ntt> | アプリケーションプログラムの実行方法、その装置及びプログラム |
US8589889B2 (en) | 2006-12-01 | 2013-11-19 | Samsung Electronics Co., Ltd. | Apparatus and method of detecting errors in embedded software |
JP2010072944A (ja) * | 2008-09-18 | 2010-04-02 | Hitachi Information Systems Ltd | 情報処理システムにおける設計品質検査の支援システム |
JP2010205066A (ja) * | 2009-03-04 | 2010-09-16 | Nec Corp | 反例解析支援装置、反例解析支援システム、それらの反例解析支援方法及びプログラム |
WO2014184896A1 (ja) * | 2013-05-15 | 2014-11-20 | 三菱電機株式会社 | プログラム解析装置、プログラム解析方法およびプログラム解析プログラム |
US9760470B2 (en) | 2013-05-15 | 2017-09-12 | Mitsubishi Electric Corporation | Device, method, and program analysis of new source code to be added to execution program to check for bug |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1825278B (zh) | 源代码静态分析模拟器的自定义api建模 | |
CN100507870C (zh) | 关于自动测试用例执行的松散耦合的自动测试用例验证 | |
US7757125B2 (en) | Defect resolution methodology and data defects quality/risk metric model extension | |
US10747641B2 (en) | System and method for cause point analysis for effective handling of static analysis alarms | |
Lyu et al. | An empirical study on testing and fault tolerance for software reliability engineering | |
Jeanneret et al. | Estimating footprints of model operations | |
US20060123394A1 (en) | System and method for identifying viable refactorings of program code using a comprehensive test suite | |
WO2009095741A1 (en) | Selective code instrumentation for software verification | |
Staats et al. | Understanding user understanding: determining correctness of generated program invariants | |
US8560988B2 (en) | Apparatus and method thereof for hybrid timing exception verification of an integrated circuit design | |
Stürmer et al. | Overview of existing safeguarding techniques for automatically generated code | |
EP3693860B1 (en) | Generation of test models from behavior driven development scenarios based on behavior driven development step definitions and similarity analysis using neuro linguistic programming and machine learning mechanisms | |
Clarisó et al. | Smart bound selection for the verification of UML/OCL class diagrams | |
Segura et al. | Functional testing of feature model analysis tools: a test suite | |
CN110580222A (zh) | 一种软件测试用例生成方法及系统 | |
Cañizares et al. | New ideas: automated engineering of metamorphic testing environments for domain-specific languages | |
JP2004272830A (ja) | ソフトウェア開発支援装置 | |
Hofer et al. | Combining models for improved fault localization in spreadsheets | |
CN113360397A (zh) | 系统功能的回归测试方法、装置、设备及存储介质 | |
Jin et al. | Fault injection scheme for embedded systems at machine code level and verification | |
Fenton et al. | Bayesian belief network model for the safety assessment of nuclear computer-based systems | |
Banitaan et al. | Test Focus Selection for Integration Testing | |
US11241962B2 (en) | Evaluation apparatus for display arbitration control and generation apparatus for rule definition file | |
CN117234946B (zh) | 项目库系统的自动化测试方法及相关设备 | |
US8516445B2 (en) | Multi-dimension code coverage |