(57)【要約】【課題】プログラムの開発が完了する前であっても、必要データを推測することで、性能の見積もりが可能なプログラム検査支援システム、プログラム検査支援方法およびプログラム検査支援プログラムを提供する。【解決手段】プログラム検査支援システム１００は、記憶部１、取得部２、算出部３、入力部４および入力部５を備える。記憶部１は、サブプログラムの非機能要件であるサブプログラムが使用する要素の、基準の性能を表す性能基礎データを記憶する。取得部２は、プログラムに含まれる複数のサブプログラムごとに、サブプログラムが使用する要素の情報である使用要素情報を取得する。算出部３は、性能基礎データと使用要素情報から、サブプログラムごとの非機能要件の性能の見積値を算出する。【選択図】図１
2011145937.tif 000002
【特許請求の範囲】
【請求項１】
サブプログラムの非機能要件である該サブプログラムが使用する要素の、基準の性能を表す性能基礎データを記憶する基礎データ記憶手段と、
プログラムに含まれる複数のサブプログラムごとに、該サブプログラムが使用する要素の情報である使用要素情報を取得するプログラム情報取得手段と、
前記性能基礎データと前記使用要素情報から、前記サブプログラムごとの非機能要件の性能の見積値を算出する性能見積手段と、
を備えることを特徴とするプログラム検査支援システム。
【請求項２】
前記性能基礎データは、前記サブプログラムが動作する条件または環境の基準の性能を表す環境要素性能と、前記サブプログラムの内部で用いる要素ごとの基準の性能を表すプログラム要素性能のデータを含み、
前記使用要素情報は、前記サブプログラムが動作する条件または環境の情報である環境要素情報と、前記サブプログラムの内部で用いる要素ごとの情報を表すプログラム要素情報を含み、
前記性能見積手段は、前記環境要素性能と前記環境要素情報の項目ごとの積と、前記プログラム要素性能と前記プログラム要素情報の項目ごとの積とから、前記サブプログラムごとの見積値を算出する、
ことを特徴とする請求項１に記載のプログラム検査支援システム。
【請求項３】
前記サブプログラムを、該サブプログラムが使用する要素の条件で実際に動作させたときの性能データである実測値を取得する実測値取得手段と、
前記実測値から、前記サブプログラムの使用要素情報を用いて、前記性能基礎データを算出する実測性能データ生成手段と、
前記基礎データ記憶手段の性能基礎データを、前記実測性能データ生成手段で生成した性能基礎データに更新する手段と、
を備えることを特徴とする請求項１または２に記載のプログラム検査支援システム。
【請求項４】
プログラムの性能の検査を支援する装置が行うプログラム検査支援方法であって、
サブプログラムの非機能要件である該サブプログラムが使用する要素の、基準の性能を表す性能基礎データを取得する基礎データ取得ステップと、
プログラムに含まれる複数のサブプログラムごとに、該サブプログラムが使用する要素の情報である使用要素情報を取得するプログラム情報取得ステップと、
前記性能基礎データと前記使用要素情報から、前記サブプログラムごとの非機能要件の性能の見積値を算出する性能見積ステップと、
を備えることを特徴とするプログラム検査支援方法。
【請求項５】
前記性能基礎データは、前記サブプログラムが動作する条件または環境の基準の性能を表す環境要素性能と、前記サブプログラムの内部で用いる要素ごとの基準の性能を表すプログラム要素性能のデータを含み、
前記使用要素情報は、前記サブプログラムが動作する条件または環境の情報である環境要素情報と、前記サブプログラムの内部で用いる要素ごとの情報を表すプログラム要素情報を含み、
前記性能見積ステップは、前記環境要素性能と前記環境要素情報の項目ごとの積と、前記プログラム要素性能と前記プログラム要素情報の項目ごとの積とから、前記サブプログラムごとの見積値を算出する、
ことを特徴とする請求項４に記載のプログラム検査支援方法。
【請求項６】
前記サブプログラムを、該サブプログラムが使用する要素の条件で実際に動作させたときの性能データである実測値を取得する実測値取得ステップと、
前記実測値から、前記サブプログラムの使用要素情報を用いて、前記性能基礎データを算出する実測性能データ生成ステップと、
前記基礎データ取得ステップの性能基礎データを、前記実測性能データ生成ステップで生成した性能基礎データに更新するステップと、
を備えることを特徴とする請求項４または５に記載のプログラム検査支援方法。
【請求項７】
コンピュータに、
サブプログラムの非機能要件である該サブプログラムが使用する要素の、基準の性能を表す性能基礎データを取得する基礎データ取得ステップと、
プログラムに含まれる複数のサブプログラムごとに、該サブプログラムが使用する要素の情報である使用要素情報を取得するプログラム情報取得ステップと、
前記性能基礎データと前記使用要素情報から、前記サブプログラムごとの非機能要件の性能の見積値を算出する性能見積ステップと、
を実行させることを特徴とするプログラム検査支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム検査支援システム、プログラム検査支援方法およびプログラム検査支援プログラムに関する。
【背景技術】
【０００２】
近年、ウェブアプリケーションで、複雑な画面レイアウトや、高機能化した操作性を実現するリッチインターネットアプリケーションの技術を採用することが多くなっている。新規のアプリケーションの実現では、トップダウン方式の設計法が多く、設計の手戻りを減らして、開発コストを削減することが求められる。
【０００３】
例えば、特許文献１には、システム設計の早期の段階でも、簡便に性能見積もりすることができ、設計変更内容を随時性能見積もりに反映させることができるシステム性能見積もりシステムについて記載されている。そのシステムは、各プロセスの処理パターンと、データ蓄積のレコード件数と、実行時間を見積もるための算出ルールとを入力し、予測実行時間を算出し出力する技術を用いる。
【０００４】
特許文献２には、設計段階において、各部品プログラムの性能値を読み出し、シナリオと発生頻度比率とパラメータを基にシミュレーションを行い、計算機システムの性能値を予測することができる性能予測システムについて記載されている。
【０００５】
特許文献３には、コンポーネント・アプリケーションの構築方法について記載されている。その技術は、アプリケーションの構築時に、ソフトウェア・コンポーネント毎とシステム全体で信頼性の評価を行い、要求される信頼性を実現するアプリケーションを効率的に構築する技術である。
【０００６】
特許文献４では、計算機システムの性能値をシミュレーションで予測し、確認しながら設計を実施していく計算機システムの設計支援システムについて記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−１２５７８４号公報
【特許文献２】特開２００４−２７２５８２号公報
【特許文献３】特開２００６−０９９３０８号公報
【特許文献４】特開２００６−１８５０５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
関連する技術の多くは、アプリケーション作成後に、性能などを測定しており、想定していた要件を満たしていない場合に、再びアプリケーションの作成が必要になることがあり、多くの開発コストがかかっていた。そのため、特許文献１ないし４のように、できるだけ早い段階で、性能などを見積もり、確認し、システムを設計することが行われている。性能の見積もりは、積み上げ方法や組立調整方法などを用いて行うが、その算出のためには全体のデータが必要であったり、時間がかかったり、実測値との誤差が所定の値より大きかったりと問題があった。また、アプリケーションの種類によっては、負荷が変動するため対応できないなどの問題が生じていた。
【０００９】
本発明は、上述の事情に鑑みてなされたものであり、プログラムの開発が完了する前であっても、必要データを推測することで、性能の見積もりが可能なプログラム検査支援システム、プログラム検査支援方法およびプログラム検査支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の観点にかかるプログラム検査支援システムは、
サブプログラムの非機能要件である該サブプログラムが使用する要素の、基準の性能を表す性能基礎データを記憶する基礎データ記憶手段と、
プログラムに含まれる複数のサブプログラムごとに、該サブプログラムが使用する要素の情報である使用要素情報を取得するプログラム情報取得手段と、
前記性能基礎データと前記使用要素情報から、前記サブプログラムごとの非機能要件の性能の見積値を算出する性能見積手段と、
を備えることを特徴とする。
【００１１】
本発明の第２の観点に係るプログラム検査支援方法は、
プログラムの性能の検査を支援する装置が行うプログラム検査支援方法であって、
サブプログラムの非機能要件である該サブプログラムが使用する要素の、基準の性能を表す性能基礎データを取得する基礎データ取得ステップと、
プログラムに含まれる複数のサブプログラムごとに、該サブプログラムが使用する要素の情報である使用要素情報を取得するプログラム情報取得ステップと、
前記性能基礎データと前記使用要素情報から、前記サブプログラムごとの非機能要件の性能の見積値を算出する性能見積ステップと、
を備えることを特徴とする。
【００１２】
本発明の第３の観点に係るプログラム検査支援プログラムは、コンピュータに、
サブプログラムの非機能要件である該サブプログラムが使用する要素の、基準の性能を表す性能基礎データを取得する基礎データ取得ステップと、
プログラムに含まれる複数のサブプログラムごとに、該サブプログラムが使用する要素の情報である使用要素情報を取得するプログラム情報取得ステップと、
前記性能基礎データと前記使用要素情報から、前記サブプログラムごとの非機能要件の性能の見積値を算出する性能見積ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、プログラムの開発が完了する前であっても、必要データを推測することで、性能の見積もりができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態に係るプログラム検査支援システムの構成例を示すブロック図である。
【図２】非機能要件の例を示す図である。
【図３】環境部に係るチェック情報の例を示す図である。
【図４】プログラム部に係るチェック情報の例を示す図である。
【図５】実施の形態に係るプログラム検査支援システムの、プログラム検査支援の動作の一例を示すフローチャートである。
【図６】本発明の実施の形態の変形例に係るプログラム検査支援システムの構成例を示すブロック図である。
【図７】実施の形態の変形例に係るプログラム検査支援システムの、プログラム検査支援の動作の一例を示すフローチャートである。
【図８】本発明の実施の形態に係るプログラム検査支援システムの、チェック情報更新の動作の一例を示すフローチャートである。
【図９】本発明に係るプログラム検査支援システムのハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１５】
本発明で、プログラムの非機能要件とは、プログラムの目的の処理を実行する機能以外の、プログラムが使用するコンピュータ資源などの要素の性能をいう。例えば、プログラムの起動時間、主記憶にロードしたときのメモリ使用量、画面表示の所用時間、画面を遷移するときの所用時間、画面を表示するときのメモリ使用量などである。
【００１６】
プログラムが使用する要素とは、プログラムが動作する条件または環境、および、プログラムの内部で使用するライブラリ関数などをいう。動作する条件または環境には、例えば、アプリケーションプログラムに対するオペレーティングシステム（ＯＳ）、プログラムを動作させるためのプラットフォーム、ＯＳやハードウェアに依存しない言語で記述されたアプレットを動作させるためのブラウザとプラグインなどがある。ライブラリ関数には、例えば、画面生成、ラベル表示、テキストボックス表示、ボタン表示などがあり、複数のアプリケーションプログラムに共通する定型の処理を実行するプログラムであって、さまざまなアプリケーションプログラムに組み込まれる。
【００１７】
本発明では、ある処理系における非機能要件の基準の性能を性能基礎データという。性能基礎データは、プログラムが動作する条件または環境の基準の性能を表す環境要素性能と、プログラムの内部で用いる要素ごとの基準の性能を表すプログラム要素性能のデータに分けられる。以下では、性能基礎データをチェック情報ともいう。また、環境要素性能をチェック情報の環境部といい、プログラム要素性能をチェック情報のプログラム部という。
【００１８】
本発明で、プログラムが使用する要素の情報を使用要素情報という。使用要素情報は、プログラムが動作する条件または環境の情報である環境要素情報と、プログラムの内部で用いる要素ごとの情報を表すプログラム要素情報に分けられる。使用要素情報は、検査の対象のソースプログラムを含む検査対象ファイルから抽出できる。以下では、環境要素情報を検査対象ファイルの環境部、プログラム要素情報を検査対象ファイルのプログラム部ともいう。
【００１９】
プログラムは、目的に合わせた処理を指示通りに実行するサブプログラムが集まって構成される。複数のサブプログラムを完成させていき、プログラムの開発は完了する。各々のサブプログラムは独立して動作し資源を使用するが、プログラム全体で使用する資源量は一定で限りがある。そのため、プログラムの開発者は、各々のサブプログラムの資源量や処理にかかる処理時間を考慮しながら、サブプログラムを完成させる必要がある。また、画面表示にかかる時間や切り替えにかかる時間など、使用する開発者の利便性向上に結び付く非機能要件についても、考慮する必要がある。本発明では、非機能要件の代表的な資源を例にあげて説明するが、非機能要件全般に適用可能である。
【００２０】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付す。
【００２１】
（実施の形態）
図１は、本発明の実施の形態に係るプログラム検査支援システムの構成例を示すブロック図である。プログラム検査支援システム１００は、記憶部１と、取得部２と、算出部３と、入力部４とおよび出力部５から構成される。プログラム検査支援システム１００の検査対象ファイル１２や性能基礎データであるチェック情報１１などは、入力部４で入力し、出力部５で出力する。また、プログラム検査支援システム１００は、ネットワークＮを介して端末６と接続する。
【００２２】
記憶部１は、検査対象ファイル１２や性能基礎データであるチェック情報１１を記憶する。検査対象ファイル１２は、検査対象であるプログラムおよびプログラムを構成するサブプログラムの総称をいう。また、各々のサブプログラムが使用する要素の情報は、サブプログラムが動作する条件または環境の情報である環境要素情報と、サブプログラムの内部で用いる要素ごとの情報を表すプログラム要素情報に分けられる。チェック情報１１は、環境部に関するものと、プログラム部に関するものとに分けられ、サブプログラムの環境要素情報とプログラム要素情報のそれぞれに対応する。
【００２３】
また、記憶部１は、算出部３で算出した性能見積もり値や、完成したサブプログラムの性能を実測した性能実測値など、プログラム検査支援システム１００に関するさまざまな情報を記憶する。
【００２４】
取得部２は、検査対象であるサブプログラムを記憶部１から取得し、かつ、記憶部１から取得した検査対象であるサブプログラムに対応するチェック情報１１が記憶部１に格納されているかを確認する。
【００２５】
算出部３は、取得部２でチェック情報１１有りとされたサブプログラムに対して、そのサブプログラムの性能見積もり値を算出する。そして、複数あるサブプログラムのそれぞれについて性能見積もり値を算出し、総和を求め、プログラムの性能見積もり値を算出する。
【００２６】
図２は非機能要件の例を示す図である。非機能要件の代表的なものに資源があり、ステップ数で表される計算時間や、記憶領域の量で表されるメモリ使用量があげられる。
【００２７】
図３は、環境部に係るチェック情報の例を示す図である。図４は、プログラム部に係るチェック情報の例を示す図である。開発者が開発するプログラムは、動作環境である環境部とプログラム部に区別され、環境部はプログラムの起動の有無により性能値が固定して与えられ、プログラム部はプログラムの起動状態に対応して性能値が変動して与えられる。
【００２８】
以下に、具体的に、開発者がプログラム検査支援システム１００を用いる場合の、実施の形態の動作について説明する。検査対象のプログラムＸは、サブプログラムＡないしＣの３個のサブプログラムから構成される。また、検査対象となる非機能要件は、起動速度に関するものを例とする。
【００２９】
サブプログラムＡの環境部の動作条件・環境はＯＳ（Ｗｉｎｄｏｗｓ（登録商標）ＸＰ）、対象はブラウザ（ＩＥ７：Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ  ７（登録商標）、以下ＩＥ７と記載）、サブプログラムＢの環境部の動作条件・環境はブラウザ（ＩＥ７）、対象はアドオン（ＦｌａｓｈＰｌａｙｅｒ９（登録商標））、サブプログラムＣの環境部の動作条件・環境はＯＳ（Ｗｉｎｄｏｗｓ（登録商標）ＸＰ）、対象はブラウザ（ＩＥ７）とする。サブプログラムＡのプログラム部の対象はＢｕｔｔｏｎで１００個、サブプログラムＢのプログラム部の対象はＡＰサイズで５ＭＢ、サブプログラムＣのプログラム部の対象はＤａｔｅＧｒｉｄで５個とＤａｔｅＧｒｉｄデータは１０セルであるとする。
【００３０】
記憶部１は、予め、図３や図４で示すチェック情報１１を記憶しておく。
【００３１】
開発者が端末６を用いてプログラミングすると、プログラム検査支援システム１００の入力部４は、ネットワークＮを介して、プログラムＸに関する情報を取得する。プログラムＸに関する情報とは、プログラムＸがサブプロミングＡないしＣで構成されていることや、サブプログラミングＡないしＣの各サブプログラムの内容について、などである。
【００３２】
記憶部１は、入力部４で取得したプログラムＸに関する情報を記憶する。取得部２は、記憶部１が記憶したプログラムＸに関する情報から、検査対象である各サブプログラムＡないしＣを取得する。そして、それぞれのサブプログラムの環境部およびプログラム部について、検査のための非機能要件に該当する必要項目を抽出し、記憶部１に該当するチェック情報１１が格納されているかどうかを、抽出した項目を照合して確認する。算出部３は、取得部２で取得し、チェック情報１１有りと確認されたサブプログラムＡないしＣについて、非機能要件の性能見積もり値をそれぞれ算出する。さらに算出部３は、その総和を算出し、プログラムＸの性能見積もり値とする。
【００３３】
例えば、サブプログラムＡについては、環境部の条件が、環境部のチェック情報１１のレコード１と一致するので、非機能要件の起動速度を算出するために、起動時間は２０００ｍｓｅｃ用いることが分かる。また、プログラム部の条件が、対象のＢｕｔｔｏｎが１００個であるので、環境部のチェック情報１１のレコード２より、１個あたり１０ｍｓｅｃなので起動時間はそれらの積の１０００ｍｓｅｃ必要なことが分かる。サブプログラムＡについては、起動時間は合計３０００ｍｓｅｃ必要であることが算出できる。同様に、サブプログラムＢは３０００ｍｓｅｃ、サブプログラムＣは２６００ｍｓｅｃである。そして、その総和より、プログラムＸの性能見積もり値は、８６００ｍｓｅｃとなる。
【００３４】
そして、記憶部１は、算出部３で算出したプログラムＸの性能見積もり値を記憶する。また、必要があれば、出力部５は、ネットワークＮを介して端末６にプログラムＸの性能見積もり値の情報を出力する。
【００３５】
図５は、本発明の実施の形態に係るプログラム検査支援システムの、プログラム検査支援の動作の一例を示すフローチャートである。予め、プログラムの非機能要件に関するチェック情報１１を、記憶部１へ記憶する。
【００３６】
開発者が端末６を用いてプログラムを作成する。プログラム検査支援システム１００の入力部４は、ネットワークＮを介して、端末６に入力された情報であるプログラムや、そのプログラムを構成する複数のサブプログラムを受信し、記憶部１は、その受信した情報について記憶する（ステップＳ１１）。取得部２は、記憶部１に記憶された情報から、検査対象であるプログラムおよびサブプログラムの情報を取得し、非機能要件にかかる項目の抽出を行う（ステップＳ１２）。そして取得部２は、記憶部１に、検査対象のプログラムの非機能要件に対応するチェック情報１１が格納されているかどうかを確認する（ステップＳ１３）。チェック情報１１があれば（ステップＳ１４；ＹＥＳ）、算出部３は、取得部２で抽出した非機能要件にかかる項目と、対応するチェック情報１１をもとに、サブプログラムの性能の見積もり値を算出する（ステップＳ１５）。そして、各サブプログラムの総和を求め、プログラムの性能の見積もり値を算出し（ステップＳ１６）、プログラム検査支援の動作を終了する。チェック情報１１がなければ（ステップＳ１４；ＮＯ）、そのままプログラム検査支援の動作を終了する。
【００３７】
（実施の形態の変形例）
図６は、本発明の実施の形態の変形例に係るプログラム検査支援システムの構成例を示すブロック図である。変形例では、チェック情報がない場合に、開発者に表示することができる。また、サブプログラムが完成した場合に、性能見積もり値と性能実測値とを比較し、見積もりの精度を向上することができる。プログラム検査支援システム１００は、実施の形態１の構成に加えて、判定部７および測定部８を備える。
【００３８】
判定部７は、記憶部１に記憶された情報のサブプログラムが、完成したサブプログラムであるかを判定する。判定は、そのプログラム内容を読み込み、プログラム処理に必要な命令シーケンスが含まれているかどうかや、その他必要なシーケンスを備えているかなどで判断する。あるいは、サブプログラムが特別のフォルダに登録されたこと、または、サブプログラムのファイル名が完成プログラムのリストに登録されたことをもって、完成したと判断してもよい。
【００３９】
測定部８は、判定部７で完成したサブプログラムであると判断されたサブプログラムに対して、好ましくは実際に処理をして性能実測値を測定する。実際の処理が不可能である場合は、シミュレーションした結果や、過去の類似したプログラムの性能値をもとに、所定の方法で、近似した値を算出することが好ましい。このとき記憶部１は、チェック情報１１を、測定部８で測定もしくは算出した値に更新して記憶する。
【００４０】
図７は、実施の形態の変形例に係るプログラム検査支援システムの、プログラム検査支援の動作の一例を示すフローチャートである。
【００４１】
開発者が端末６を用いてプログラムを作成する。プログラム検査支援システム１００の入力部４は、ネットワークＮを介して、端末６に入力された情報であるプログラムや、そのプログラムを構成する複数のサブプログラムを受信し、記憶部１は、その受信した情報について記憶する（ステップＳ１１）。取得部２は、記憶部１に記憶された情報から、検査対象であるプログラムおよびサブプログラムの情報を取得し、非機能要件にかかる項目の抽出を行う（ステップＳ１２）。
【００４２】
取得部２は、記憶部１に、検査対象のプログラムの非機能要件に対応するチェック情報１１が格納されているかどうかを確認する（ステップＳ１３）。チェック情報１１があれば（ステップＳ１４；ＹＥＳ）、算出部３は、取得部２で抽出した非機能要件にかかる項目と、対応するチェック情報１１をもとに、サブプログラムの性能の見積もり値を算出する（ステップＳ１５）。そして、各サブプログラムの総和を求め、プログラムの性能の見積もり値を算出し（ステップＳ１６）、出力部５はネットワークＮを介して、算出した性能見積もり値のデータを、端末６に表示する（ステップＳ２１）。そして、プログラム検査支援の変形例の動作を終了する。
【００４３】
チェック情報１１がなければ（ステップＳ１４；ＮＯ）、該当する非機能要件を備えたサブプログラムの抽出を行い（ステップＳ２２）、抽出したサブプログラムのデータを、端末６に表示し（ステップＳ２３）、プログラム検査支援の動作を終了する。このとき、サブプログラムの表示だけでなく、チェック情報１１がない項目、すなわち、性能を見積もるために必要な項目を表示してもよい。開発者は、性能を見積もるために不足している項目を知ることができ、その項目を補足することで、性能値を見積もることが可能となることが分かる。
【００４４】
図８は、本発明の実施の形態に係るプログラム検査支援システムの、チェック情報更新の動作の一例を示すフローチャートである。チェック情報更新の動作は、プログラム検査支援の動作と独立して行う。
【００４５】
開発者が端末６を用いてプログラムを作成する。プログラム検査支援システム１００の入力部４は、ネットワークＮを介して、端末６に入力されたプログラムやそのプログラムを構成する複数のサブプログラムの情報を受信し、記憶部１は、それらの情報を記憶する（ステップＳ３１）。判定部７は、取得したサブプログラムの情報について、完成したサブプログラムであるかを判定する（ステップＳ３２）。完成したサブプログラムであれば（ステップＳ３３；ＹＥＳ）、測定部８は、実際の性能値である実測値を測定する（ステップＳ３４）。記憶部１は、チェック情報１１の性能見積もり値を性能実測値へ置き換え、チェック情報の更新を行い（ステップＳ３５）、チェック情報更新の動作を終了する。ステップＳ３３で完成したサブプログラムでなければ（ステップと３３；ＮＯ）、更新する必要のあるチェック情報１１が存在しないので、そのまま終了する。
【００４６】
以上説明したように、本実施の形態および実施の形態の変形例に係るプログラム検査支援システムによれば、プログラムの開発が完了する前であっても、必要データを推測することで、性能の見積もりができる。また、見積もりが行いにくい場合であっても、必要な項目を知ることができ、必要最小量のデータの追加を行うことで、性能の見積もりをすることが可能となる。その結果、プログラム開発の早い段階で、性能を満たしているかを容易に確認することができ、従来は、後手の確認となっていた項目、すなわち非機能要件についても、確認をすることができる。
【００４７】
実施の形態で説明した資源は一例であり、資源の様々な評価項目は任意に設定できる。例えば、処理時間とメモリ使用量だけでなく、空き領域とアクセス時間、ディスプレイ上の面積、環境変数などを用いて資源を計算してもよい。処理を並列して行う場合の並列処理効率などを加味して計算するなど、計算方法は任意に設定可能である。プログラムの環境部やプログラム部についてのチェック情報も、その組合せは任意に設定可能である。また、性能値に用いる数値は、必ずしも実測値とは限らず、シミュレーションにより得られた値などの場合であってもよく、類似したプログラムを実行したときに得られた値であってもよい。実測値と見積もり値が乖離した場合は、データを更新し、常に実測値に近いデータとすることが好ましい。
【００４８】
図９は、図１および図６に示すプログラム検査支援システムのハードウェア構成の一例を示すブロック図である。プログラム検査支援システム１００は、図９に示すように、制御部３１、主記憶部３２、外部記憶部３３、操作部３４、表示部３５、入出力部３６および送受信部３７を備える。主記憶部３２、外部記憶部３３、操作部３４、表示部３５、入出力部３６および送受信部３７はいずれも内部バス３０を介して制御部３１に接続されている。
【００４９】
制御部３１はＣＰＵ（Central Processing Unit）等から構成され、外部記憶部３３に記憶されている制御プログラム４０に従って、プログラム検査支援システム１００の記憶部１、取得部２、算出部３、入力部４、出力部５、判定部７および測定部８の各処理を実行する。
【００５０】
主記憶部３２はＲＡＭ（Random-Access Memory）等から構成され、外部記憶部３３に記憶されている制御プログラム４０をロードし、制御部３１の作業領域として用いられる。
【００５１】
外部記憶部３３は、フラッシュメモリ、ハードディスク、ＤＶＤ−ＲＡＭ（Digital Versatile Disc Random-Access Memory）、ＤＶＤ−ＲＷ（Digital Versatile Disc ReWritable）等の不揮発性メモリから構成され、プログラム検査支援システム１００の処理を制御部３１に行わせるためのプログラムを予め記憶し、また、制御部３１の指示に従って、このプログラムが記憶するデータを制御部３１に供給し、制御部３１から供給されたデータを記憶する。
【００５２】
プログラム検査支援システム１００の記憶部１は、外部記憶部３３に構成される。また、記憶部１は、情報データベースとして外部記憶部３３に構成される場合もある。
【００５３】
操作部３４はキーボードおよびマウスなどのポインティングデバイス等と、キーボードおよびポインティングデバイス等を内部バス３０に接続するインターフェース装置から構成されている。操作部３４を介して、プログラムに関する情報などが入力され、制御部３１に供給される。
【００５４】
表示部３５は、ＣＲＴ（Cathode Ray Tube）またはＬＣＤ（Liquid Crystal Display）などから構成され、性能見積もり値や、検査対象のプログラムに関する情報などを表示する。
【００５５】
入出力部３６は、シリアルインタフェースまたはパラレルインタフェースから構成されている。入出力部３６は、端末６が附属する装置の場合は、それと接続する。
【００５６】
送受信部３７は、ネットワークＮに接続する網終端装置または無線通信装置、およびそれらと接続するシリアルインタフェースまたはＬＡＮ（Local Area Network）インタフェースから構成されている。送受信部３７は、ネットワークＮを介して、検査対象のプログラムに関する情報を受信する。端末６が、プログラム検査支援システム１００とは別の端末装置の場合は、例えば、送受信部３７を介して、ネットワークＮを経由して、端末６に接続する。
【００５７】
図１および図６に示すプログラム検査支援システム１００の記憶部１、取得部２、算出部３、入力部４、出力部５、判定部７および測定部８の処理は、制御プログラム４０が、制御部３１、主記憶部３２、外部記憶部３３、操作部３４、表示部３５、入出力部３６および送受信部３７などを資源として用いて処理することによって実行する。
【００５８】
その他、本発明の好適な変形として、以下の構成が含まれる。
【００５９】
本発明の第１の観点に係るプログラム検査支援システムについて、
好ましくは、前記性能基礎データは、前記サブプログラムが動作する条件または環境の基準の性能を表す環境要素性能と、前記サブプログラムの内部で用いる要素ごとの基準の性能を表すプログラム要素性能のデータを含み、
前記使用要素情報は、前記サブプログラムが動作する条件または環境の情報である環境要素情報と、前記サブプログラムの内部で用いる要素ごとの情報を表すプログラム要素情報を含み、
前記性能見積手段は、前記環境要素性能と前記環境要素情報の項目ごとの積と、前記プログラム要素性能と前記プログラム要素情報の項目ごとの積とから、前記サブプログラムごとの見積値を算出する、
ことを特徴とする。
【００６０】
好ましくは、前記サブプログラムを、該サブプログラムが使用する要素の条件で実際に動作させたときの性能データである実測値を取得する実測値取得手段と、
前記実測値から、前記サブプログラムの使用要素情報を用いて、前記性能基礎データを算出する実測性能データ生成手段と、
前記基礎データ記憶手段の性能基礎データを、前記実測性能データ生成手段で生成した性能基礎データに更新する手段と、
を備えることを特徴とする。
【００６１】
本発明の第２の観点に係るプログラム検査支援方法について、
好ましくは、前記性能基礎データは、前記サブプログラムが動作する条件または環境の基準の性能を表す環境要素性能と、前記サブプログラムの内部で用いる要素ごとの基準の性能を表すプログラム要素性能のデータを含み、
前記使用要素情報は、前記サブプログラムが動作する条件または環境の情報である環境要素情報と、前記サブプログラムの内部で用いる要素ごとの情報を表すプログラム要素情報を含み、
前記性能見積ステップは、前記環境要素性能と前記環境要素情報の項目ごとの積と、前記プログラム要素性能と前記プログラム要素情報の項目ごとの積とから、前記サブプログラムごとの見積値を算出する、
ことを特徴とする。
【００６２】
好ましくは、前記サブプログラムを、該サブプログラムが使用する要素の条件で実際に動作させたときの性能データである実測値を取得する実測値取得ステップと、
前記実測値から、前記サブプログラムの使用要素情報を用いて、前記性能基礎データを算出する実測性能データ生成ステップと、
前記基礎データ取得ステップの性能基礎データを、前記実測性能データ生成ステップで生成した性能基礎データに更新するステップと、
を備えることを特徴とする。
【００６３】
その他、前記のハードウエア構成やフローチャートは一例であり、任意に変更および修正が可能である。
【００６４】
取得部２、算出部３等から構成されるプログラム検査支援処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行するプログラム検査支援システムを構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することでプログラム検査支援システムを構成してもよい。
【００６５】
また、プログラム検査支援システムを、ＯＳ（オペレーティングシステム）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合等には、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【００６６】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【符号の説明】
【００６７】
１  記憶部
２  取得部
３  算出部
４  入力部
５  出力部
６  端末
７  判定部
８  測定部
１１  チェック情報
１２  検査対象ファイル
３１  制御部
３２  主記憶部
３３  外部記憶部
３４  操作部
３５  表示部
３６  入出力部
３７  送受信部
４０  制御プログラム
１００  プログラム検査支援システム
【図１】
2011145937.tif 000003
【図２】
2011145937.tif 000004
【図３】
2011145937.tif 000005
【図４】
2011145937.tif 000006
【図５】
2011145937.tif 000007
【図６】
2011145937.tif 000008
【図７】
2011145937.tif 000009
【図８】
2011145937.tif 000010
【図９】
2011145937.tif 000011