(57)【要約】【課題】  ソフトウェアの処理時間を精度良く推定することを目的としたものである。【解決手段】  ソフトウェア解析手段が処理時間推定対象ソフトウェアの特性を解析し、一致性評価手段が処理時間推定対象ソフトウェアを実行する予定の実行予定ハードウェア条件を受信し、データベースの中からソフトウェア解析手段により解析された処理時間推定対象ソフトウェアの特性と一致し、且つ実行予定ハードウェア条件と一致するソフトウェアを処理時間推定ソフトウェアとして選択し、処理時間算出手段が一致性評価手段により選択された処理時間推定ソフトウェアの処理時間をデータベースに登録された処理時間を基に算出する。【選択図】        図１
2009266044.tif 000002
【特許請求の範囲】
【請求項１】
処理時間を推定する処理時間推定対象ソフトウェアの名称とソースコードとを含むソフトウェア入力情報を基に前記処理時間推定対象ソフトウェアの特性を解析するソフトウェア解析手段と、
過去に実行されたソフトウェアの名称とこのソフトウェアを実行したハードウェア条件とこのソフトウェアが前記ハードウェア条件で実行されたときの処理時間とこのソフトウェアの特性とが対になった複数のソフトウェア情報が登録されたデータベースと、
前記処理時間推定対象ソフトウェアを実行する予定の実行予定ハードウェア条件を受信し、前記データベースの中から前記ソフトウェア解析手段により解析された前記処理時間推定対象ソフトウェアの特性と一致し、且つ前記実行予定ハードウェア条件と一致するソフトウェアを前記処理時間推定ソフトウェアとして選択する一致性評価手段と、
前記一致性評価手段により選択された前記処理時間推定ソフトウェアの処理時間を前記データベースに登録された処理時間を基に算出する処理時間算出手段と、を備えたことを特徴とするソフトウェア処理時間推定システム。
【請求項２】
前記処理時間算出手段により算出された前記処理時間推定ソフトウェアの処理時間を前記データベースに登録する登録手段を備えたことを特徴とする請求項１記載のソフトウェア処理時間推定システム。
【請求項３】
前記一致性評価手段は、前記データベースの中から前記ソフトウェア解析手段により解析された前記処理時間推定対象ソフトウェアの特性との差が最も小さいソフトウェアを前記処理時間推定ソフトウェアとして選択することを特徴とする請求項１又は請求項２記載のソフトウェア処理時間推定システム。
【請求項４】
前記一致性評価手段は、前記データベースの中からソフトウェアに寄与する割合が一番高く、且つ前記処理時間推定対象ソフトウェアの特性との差が最も小さいソフトウェアを前記処理時間推定ソフトウェアとして選択することを特徴とする請求項１〜請求項３のいずれかに記載のソフトウェア処理時間推定システム。
【請求項５】
処理時間を推定する処理時間推定対象ソフトウェアの名称とソースコードとを含むソフトウェア入力情報を受信する第１の受信ステップと、
前記処理時間推定対象ソフトウェアを実行する予定の実行予定ハードウェア条件を受信する第２の受信ステップと、
前記第１の受信ステップにより受信した前記ソフトウェア入力情報を基に前記処理時間推定ソフトウェアの特性を解析するソフトウェア解析ステップと、
前記処理時間推定対象ソフトウェアを実行する予定の実行予定ハードウェア条件を受信し、過去に実行されたソフトウェアの名称とこのソフトウェアを実行したハードウェア条件とこのソフトウェアが前記ハードウェア条件で実行されたときの処理時間とこのソフトウェアの特性とが対になった複数のソフトウェア情報が登録されたデータベースの中から前記ソフトウェア解析ステップにより解析された前記処理時間推定対象ソフトウェアの特性と一致し、且つ前記実行予定ハードウェア条件と一致するソフトウェアを前記処理時間推定ソフトウェアとして選択する一致性評価ステップと、
前記一致性評価ステップにより選択された前記処理時間推定ソフトウェアの処理時間を前記データベースに登録された処理時間を基に算出する処理時間算出ステップと、を備えたことを特徴とするソフトウェア処理時間推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの処理時間を推定するソフトウェア処理時間推定システム及びソフトウェア処理時間推定方法に関するものである。
【背景技術】
【０００２】
ソフトウェアの処理時間の推定を行う場合、従来は、評価対象のソフトウェアと類似したソフトウェアを選び、その類似したソフトウェアでの処理時間を基に、評価対象のソフトウェアの処理時間の推定を行い、推定対象のハードウェアと、類似したソフトウェアが実行されたハードウェアが異なる場合、性能差を仕様から算出し、推定した処理時間を補正していた。
【０００３】
【特許文献１】特開２００４-２５８７０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来技術の処理時間見積もり方法では、処理時間を推定するソフトウェアとの類似性を処理時間に影響を及ぼす要素（ソフトウェア名、入力点数、解析モードなど）から判定し、ハードウェア間の仕様（プロセッサ数、プロセッサの動作周波数など）から性能差を算出していた。例えば、CPUのクロック周波数が倍になると、ソフトウェアの処理時間は半分になると推定していた。しかし、異なるハードウェア間での、ソフトウェアの処理時間の違いを、ハードウェア仕様上の数値から決める方法では、ソフトウェア特性が反映されていないので、ソフトウェアの処理時間推定のための精度が悪くなるという問題がある。
【０００５】
この発明は、上記のような課題を解決するためになされたものであり、推定対象のソフトウェアを特性（For文の比率、分岐比率、I/O処理の割合）により解析し、解析結果から推定対象ソフトウェアと特性が一致する他のソフトウェアを選択し、選択した他のプログラムを基に推定対象ソフトウェアの処理時間を算出することにより、ソフトウェア（プログラム）の処理時間を精度良く推定することを目的としたものである。
【課題を解決するための手段】
【０００６】
この発明に係るソフトウェア処理時間推定システムは、処理時間を推定する処理時間推定対象ソフトウェアの名称とソースコードとを含むソフトウェア入力情報を基に前記処理時間推定対象ソフトウェアの特性を解析するソフトウェア解析手段と、
過去に実行されたソフトウェアの名称とこのソフトウェアを実行したハードウェア条件とこのソフトウェアが前記ハードウェア条件で実行されたときの処理時間とこのソフトウェアの特性とが対になった複数のソフトウェア情報が登録されたデータベースと、
前記処理時間推定対象ソフトウェアを実行する予定の実行予定ハードウェア条件を受信し、前記データベースの中から前記ソフトウェア解析手段により解析された前記処理時間推定対象ソフトウェアの特性と一致し、且つ前記実行予定ハードウェア条件と一致するソフトウェアを前記処理時間推定ソフトウェアとして選択する一致性評価手段と、
前記一致性評価手段により選択された前記処理時間推定ソフトウェアの処理時間を前記データベースに登録された処理時間を基に算出する処理時間算出手段と、を備えたことを特徴とするソフトウェア処理時間推定システム。
処理時間を推定する処理時間推定対象ソフトウェアの名称とソースコードとを含むソフトウェア入力情報を基に前記処理時間推定対象ソフトウェアの特性を解析するソフトウェア解析手段と、
過去に実行されたソフトウェアの名称とこのソフトウェアを実行したハードウェア条件とこのソフトウェアが前記ハードウェア条件で実行されたときの処理時間とこのソフトウェアの特性とが対になった複数のソフトウェア情報が登録されたデータベースと、
前記処理時間推定対象ソフトウェアを実行する予定の実行予定ハードウェア条件を受信し、前記データベースの中から前記ソフトウェア解析手段により解析された前記処理時間推定対象ソフトウェアの特性と一致し、且つ前記実行予定ハードウェア条件と一致するソフトウェアを前記処理時間推定ソフトウェアとして選択する一致性評価手段と、
前記一致性評価手段により選択された前記処理時間推定ソフトウェアの前記データベースに登録された処理時間を基に、前記処理時間推定対象ソフトウェアの処理時間を算出する処理時間算出手段と、を備えたものである。
【発明の効果】
【０００７】
この発明は、ソフトウェア解析手段が処理時間推定対象ソフトウェアの特性を解析し、一致性評価手段が処理時間推定対象ソフトウェアを実行する予定の実行予定ハードウェア条件を受信し、データベースの中からソフトウェア解析手段により解析された処理時間推定対象ソフトウェアの特性と一致し、且つ実行予定ハードウェア条件と一致するソフトウェアを処理時間推定ソフトウェアとして選択し、処理時間算出手段が一致性評価手段により選択された処理時間推定ソフトウェアの処理時間をデータベースに登録された処理時間を基に算出することにより、処理時間を推定する処理時間推定対象ソフトウェアの処理時間を精度よく推定することができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は、本発明の実施の形態１のソフトウェア処理時間推定システムの構成図である。１０はソフトウェアの処理時間を推定するために入力されたソフトウェア名やソースコードなどのソフトウェア入力情報、２０は処理時間を推定する推定対象のソフトウェアを実行する予定のハードウェアのハードウェア条件、３０はソフトウェア入力情報１０からソフトウェアの特性を解析するソフトウェア解析手段、４０は過去に実行されたソフトウェアのソフトウェア情報が登録されているデータベース、５０はソフトウェア解析手段３０によって解析されたソフトウェアの特性とデータベース４０に登録されているソフトウェア情報に含まれるソフトウェアの特性とから両者の特性の一致性を評価し、この評価結果とハードウェア条件２０とから推定対象のソフトウェアを選択する一致性評価手段、６０は一致性評価手段５０によって選択されたソフトウェアの処理時間から、推定対象のソフトウェアの処理時間を算出し、この処理時間を出力する処理時間算出手段、７０は処理時間算出手段６０によって算出され出力された処理時間、８０は処理時間算出手段６０によって算出された処理時間や、推定対象のソフトウェアの特性などのソフトウェア情報を、データベース４０に登録するデータベース（ＤＢ）登録手段である。
【０００９】
図２は、データベース４０に登録されているソフトウェア情報の説明図である。４１はソフトウェアを特定するためのソフトウェア名、４２はソフトウェアを実行したハードウェア（Ｈ／Ｗ）条件、４３はソフトウェア名４１の各ソフトウェアがハードウェア条件４２の各条件で実行された時の処理時間、４４、４５、４６はソフトウェア解析手段３０によって解析されたソフトウェアの特性であり、図２では、それぞれFor文の比率、分岐比率、I/O処理の割合を示す。ハードウェア条件４２、処理時間４３、For文の比率４４、分岐比率４５、I/O処理の割合４６は、それぞれソフトウェア名４１毎に登録されている。
【００１０】
次に、本実施の形態におけるソフトウェア処理時間推定システムの処理動作について説明する。
図３は、本実施の形態におけるソフトウェア処理時間推定システムの処理動作を示すフローチャートである。
ステップＳ１００で、ソフトウェア解析手段３０が、ソフトウェア名やソースコードなどのソフトウェア入力情報１０を受信する。ここでは、例えば、図２に示すソフトウェア名（ニ）に相当するソフトウェア名やソースコードを受信したとする。
【００１１】
次に、ステップＳ１１０で、一致性評価手段５０が、推定対象のソフトウェアを実行する予定のハードウェアのハードウェア条件２０を受信する。ここでは、例えば、図２に示すハードウェア条件Ｂに相当するハードウェア条件を受信したとする。
図２には、推定対象のソフトウェア名（ニ）のハードウェア条件Ａの処理時間８秒がデータベース４０に登録されている。
【００１２】
ステップＳ１２０で、ソフトウェア解析手段３０が、受信したソフトウェア入力情報１０を基に推定対象のソフトウェアの特性を解析する。例えば、図２に示すソフトウェア名（ニ）に相当するソフトウェアをソフトウェア解析手段３０で解析した結果、For文の比率が３０％、分岐の比率が１０％、I/O処理の比率が２０％であるソフトウェアの特性が得られたとする。
なお、ソフトウェア解析手段３０によるソフトウェアの特性の解析は、ソフトウェア入力情報１０に含まれるソースコードの情報より行うことができる。
【００１３】
ステップＳ１３０で、一致性評価手段５０が、ソフトウェア解析手段３０によって解析されたソフトウェアの特性と一致するソフトウェアの特性がデータベース４０に登録されているか検索し、一致するソフトウェアの特性がある場合には、ソフトウェア解析手段３０によって解析されたソフトウェアの特性とデータベース４０に登録されているソフトウェア情報に含まれるソフトウェアの特性との一致性を評価し、この評価結果とステップＳ１００で受信したハードウェア条件２０とから、推定対象のソフトウェアと特性が一致し、且つ、推定対象のソフトウェアを実行する予定のハードウェア条件と一致するソフトウェアを選択する。図２では、ソフトウェア名（イ）とソフトウェア名（ハ）とソフトウェア名（ニ）が該当する。
【００１４】
一致性評価手段５０は、ソフトウェア名（ハ）とソフトウェア名（ニ）に対して、ハードウェア条件Ａで実行された時の処理時間がデータベース４０に登録されているが、ハードウェア条件Ｂで実行した場合の処理時間が登録されていないため、選択しない。ハードウェア条件ＡとＢでの実行結果がデータベース４０に登録されている、ソフトウェア名（イ）を、一致するソフトウェアとして選択する。
【００１５】
ステップＳ１４０で、処理時間算出手段６０は、データベース４０に登録されているソフトウェア情報の処理時間４３を基に、ソフトウェア名（イ）がハードウェア条件Ａで実行された時の処理時間１０秒と、ハードウェア条件Ｂで実行された時の処理時間５秒から、ハードウェア条件ＡとＢの間でのソフトウェアの処理時間は１/２倍になると判断し、ソフトウェア名（ニ）がハードウェア条件Ｂで実行された時の処理時間は、ハードウェア条件Ａで実行された時の処理時間８秒の１/２倍の、４秒と算出する。
ステップＳ１５０で、処理時間算出手段６０が、４秒という算出した処理時間をＤＢ登録手段８０に出力し、ステップＳ１６０で、ＤＢ登録手段８０が、データベース４０にソフトウェア名（ニ）の算出した処理時間と、特性を解析した結果である、For文の比率３０％、分岐比率１０％、I/Oの比率２０％、ハードウェア条件Ｂを登録する。登録された情報は、それ以降の算出に使用する。
【００１６】
以上のように本実施の形態によれば、推定対象ソフトウェア（プログラム）の特性を解析し、特性が一致する他のソフトウェアを選択し、選択した他のソフトウェアを基に推定対象ソフトウェアの処理時間を算出するようにしているので、より精度よくソフトウェアの処理時間を推定することができる。
【００１７】
実施形態２．
実施形態１では、一致性評価手段５０において、推定対象のソフトウェアと特性が一致するソフトウェアを選出したが、本実施の形態では、一致するソフトウェアがデータベース４０になかった場合に、特性の差分の合計から選出する場合について説明する。
本実施の形態では、一致性評価手段５０は、推定対象のソフトウェアの特性と、一致する特性を持つソフトウェアがなかった場合、入力されたソフトウェアの特性の値と、データベース４０に登録されているソフトウェアの特性毎の値の差分を求め、差分の合計が、最小のソフトウェアを、一致するソフトウェアとしてデータベース４０から選択する。
図４は、データベース４０に登録されているソフトウェア情報の説明図である。図２と同一の符号は、同一又は相当の部分を示す。
【００１８】
次に、本実施の形態におけるソフトウェア処理時間推定システムの処理動作について説明する。
図５は、本実施の形態におけるソフトウェア処理時間推定システムの処理動作を示すフローチャートであり、図３と同一の符号は、同一又は相当の部分を示す。
ステップＳ１００で、ソフトウェア解析手段３０が、ソフトウェア名やソースコードなどのソフトウェア入力情報１０を受信する。ここでは、例えば、図４に示すソフトウェア名（ニ）に相当するソフトウェア名やソースコードを受信したとする。
【００１９】
次に、ステップＳ１１０で、一致性評価手段５０が、推定対象のソフトウェアを実行する予定のハードウェアのハードウェア条件２０を受信する。ここでは、例えば、図４に示すハードウェア条件Ｂに相当するハードウェア条件を受信したとする。
図４には、推定対象のソフトウェア名（ニ）のハードウェア条件Ａの処理時間８秒がデータベース４０に登録されている。
【００２０】
ステップＳ１２０で、ソフトウェア解析手段３０が、受信したソフトウェア入力情報１０を基に推定対象のソフトウェアの特性を解析する。例えば、図４に示すソフトウェア名（ニ）に相当するソフトウェアをソフトウェア解析手段３０で解析した結果、For文の比率が２５％、分岐比率が１０％、I/O処理の比率が２０％であるソフトウェアの特性が得られたとする。
ステップＳ１３０で、一致率評価手段５０が、データベース４０に登録されているソフトウェア情報を検索し、ソフトウェア解析手段３０によって解析されたソフトウェアの特性と一致するソフトウェアとして、ソフトウェア名（ニ）を選出する。しかし、データベース４０には、ソフトウェア名（ニ）を実行したハードウェア条件Ｂがないためソフトウェア名（ニ）は使用しない。
【００２１】
ステップＳ１３１で、一致率評価手段５０が、ソフトウェア名（ニ）と特性が一致するソフトウェアがデータベース４０には登録されていないため、ステップＳ１３２で、一致率評価手段５０が、ソフトウェア名（ニ）と特性毎の差分の合計が一番小さいものを選択する。図４では、ソフトウェア名（イ）との差分が５％、ソフトウェア名（ロ）との差分が４０％、ソフトウェア名（ハ）との差分が５％であるため、差分の合計が最小のソフトウェアであるソフトウェア名（イ）とソフトウェア名（ハ）を選出する。
【００２２】
ステップＳ１３３で、推定対象のソフトウェア名（ニ）は、ハードウェア条件Ａで実行された処理時間がデータベース４０に登録されており、ハードウェア条件Ｂでの処理時間を見積もるため、ハードウェア条件Ａとハードウェア条件Ｂで実行した処理時間の結果がある、ソフトウェア名（イ）を、一致するソフトウェアとして選択する。選択した後の動作は、実施の形態１の動作と同じである。
【００２３】
以上のように本実施の形態によれば、推定対象プログラムの特性を解析し、特性が一致する他のプログラムがない場合個々の特性の差分の合計が最小のものを選択し、選択したプログラムの処理時間差から推定対象の処理時間を算出するようにしているので、より精度よくソフトウェアの処理時間を推定することができる。
【００２４】
実施形態３．
実施形態２では、一致性評価手段５０において、推定対象のソフトウェアと特性が一致するソフトウェアがデータベース４０になかった場合に、入力されたソフトウェアの特性値とデータベース４０に登録されているソフトウェアの特性値との差分の合計からソフトウェアを選出する場合について説明したが、本実施の形態では、推定対象のソフトウェアの特性と、一致する特性を持つソフトウェアが無く、その各特性の値の中で他の特性に比べて値が大きい特性がある時に、一致性評価手段５０が、その特性の差分が最小のソフトウェアを、推定対象のソフトウェアと一致するソフトウェアとして選択する場合について説明する。
図６はデータベース４０に登録されているソフトウェア情報の説明図である。図２と同一の符号は、同一又は相当の部分を示す。
【００２５】
次に、本実施の形態におけるソフトウェア処理時間推定システムの処理動作について説明する。
図７は、本実施の形態におけるソフトウェア処理時間推定システムの処理動作を示すフローチャートであり、図３、図５と同一の符号は、同一又は相当の部分を示す。
【００２６】
ステップＳ１００で、ソフトウェア解析手段３０が、ソフトウェア名やソースコードなどのソフトウェア入力情報１０を受信する。ここでは、例えば、図６に示すソフトウェア名（ニ）に相当するソフトウェア名やソースコードを受信したとする。
【００２７】
次に、ステップＳ１１０で、一致性評価手段５０が、推定対象のソフトウェアを実行する予定のハードウェアのハードウェア条件２０を受信する。ここでは、例えば、図６に示すハードウェア条件Ｂに相当するハードウェア条件を受信したとする。
図６には、推定対象のソフトウェア名（ニ）のハードウェア条件Ａの処理時間８秒がデータベース４０に登録されている。
【００２８】
ステップＳ１２０で、ソフトウェア解析手段３０が、受信したソフトウェア入力情報１０を基に推定対象のソフトウェアの特性を解析する。例えば、図６に示すソフトウェア名（ニ）に相当するソフトウェアをソフトウェア解析手段３０で解析した結果、For文の比率が６０％、分岐の比率が１０％、I/O処理の比率が５％であるソフトウェアの特性が得られたとする。
ステップＳ１３０で、一致率評価手段５０が、データベース４０に登録されているソフトウェア情報を検索し、ステップＳ１３１で、ソフトウェア解析手段３０によって解析されたソフトウェアの特性と一致するソフトウェアの特性を含むソフトウェア情報が無い場合は、ステップＳ１３４で、分岐比率、I/O処理の比率と、For文の比率に偏りがあるか否か判定する。このケースでは、分岐比率、I/O処理の比率は、ソフトウェアの特性に寄与する割合が小さいと考える。
【００２９】
ステップＳ１３４で、偏りがあると判定された場合は、ステップＳ１３５で、一致率評価手段５０が、値の一番高い（ソフトウェアの特性に寄与する割合が一番高い）For文であり、ソフトウェア名（ニ）と特性の差分が最小のソフトウェアを、データベース４０から検索する。図６の場合、推定対象のソフトウェアのFor文比率の値と、差分が最小のソフトウェアとして、ソフトウェア名（イ）とソフトウェア名（ハ）がある。
ステップＳ１３３で、一致率評価手段５０が、ソフトウェア名（イ）とソフトウェア名（ハ）の内、ハードウェア条件Ａとハードウェア条件Ｂの両方で実行された処理時間の結果のある、ソフトウェア名（イ）を推定対象のソフトウェアと一致するソフトウェアとして選出する。選択された後の動作は、実施の形態１の動作と同じである。
【００３０】
以上のように本実施の形態によれば、推定対象プログラムの特性を解析し、特性が一致する他のプログラムがない場合最大特性の差分が最小のものを選択し、選択したプログラムの処理時間差から推定対象の処理時間を算出するようにしているので、より精度よくソフトウェアの処理時間を推定することができる。
【図面の簡単な説明】
【００３１】
【図１】実施の形態１のソフトウェア処理時間推定システムの構成図。
【図２】実施の形態１においてデータベース４０に登録されているソフトウェア情報の説明図。
【図３】実施の形態１におけるソフトウェア処理時間推定システムの処理動作を示すフローチャート。
【図４】実施の形態２においてデータベース４０に登録されているソフトウェア情報の説明図。
【図５】実施の形態２におけるソフトウェア処理時間推定システムの処理動作を示すフローチャート。
【図６】実施の形態３においてデータベース４０に登録されているソフトウェア情報の説明図。
【図７】実施の形態３におけるソフトウェア処理時間推定システムの処理動作を示すフローチャート。
【符号の説明】
【００３２】
１０  ソフトウェア入力情報、２０  ハードウェア条件、３０  ソフトウェア解析手段、４０  データベース、５０  一致性評価手段、６０  処理時間算出手段、７０  処理時間、８０  ＤＢ登録手段。
【図１】
2009266044.tif 000003
【図２】
2009266044.tif 000004
【図３】
2009266044.tif 000005
【図４】
2009266044.tif 000006
【図５】
2009266044.tif 000007
【図６】
2009266044.tif 000008
【図７】
2009266044.tif 000009