(57)【要約】【課題】ソフトウェアの実効性能を求めることを可能とするソフトウェア実効性能評価システム等を提供する。【解決手段】ソフトウェア実効性能評価システム１は以下のように構成する。実行環境情報取得部は、ソフトウェアの実行環境の仕様及び性能を示す実行環境情報を取得する。実行環境情報記憶部は、前記実行環境情報を記憶する。プログラム解析部は、前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析する。解析結果記憶部は、解析部が解析したネスト性能情報を記憶する。選択部は、プログラムコードに含まれるネストから性能を評価するネストを選択する。性能取得部は、実行環境情報と、前記選択部が選択したネストのネスト性能情報と、に基づいて、ソフトウェアの実効性能を示す値を取得する。【選択図】図１
2011181034.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの実行環境の仕様及び性能を示す実行環境情報を取得する実行環境情報取得部と、
前記実行環境情報を記憶する実行環境情報記憶部と、
前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析部と、
前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶部と、
前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択部と、
前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得部と、
を備えることを特徴とするソフトウェア実効性能評価システム。
【請求項２】
前記実行環境情報は、ソフトウェアを実行する装置のＯＳ（Operating System）、ハードウェア、ミドルウェア、ネットワーク、又は、ランタイムライブラリの仕様及び性能を示す情報から構成される
ことを特徴とする請求項１に記載のソフトウェア実効性能評価システム。
【請求項３】
前記ネスト性能情報は、プログラムコードのステップ数を示す情報から構成される
ことを特徴とする請求項１又は２に記載のソフトウェア実効性能評価システム。
【請求項４】
前記プログラムコードのステップ数は、当該プログラムコードが繰り返し処理を含む場合、繰り返し数を考慮した総ステップ数である
ことを特徴とする請求項３に記載のソフトウェア実効性能評価システム。
【請求項５】
前記ソフトウェアの実行環境の仕様の変更を検出する仕様変更検出部をさらに備え、
前記実行環境情報取得部は、前記仕様変更検出部が仕様の変更を検出した場合に、前記ソフトウェアの実行環境の実行環境情報を取得する
ことを特徴とする請求項１乃至４のうちいずれか１項に記載のソフトウェア実効性能評価システム。
【請求項６】
実行環境情報取得部と、実行環境情報記憶部と、プログラム解析部と、解析結果記憶部と、選択部と、性能取得部と、を備える装置が行うソフトウェア実効性能評価方法であって、
前記実行環境情報取得部が、ソフトウェアの実行環境の仕様及び性能を示す実行環境情報を取得する実行環境情報取得工程と、
前記実行環境情報記憶部が、前記実行環境情報を記憶する実行環境情報記憶工程と、
前記プログラム解析部が、前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析工程と、
前記解析結果記憶部が、前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶工程と、
選択部が、前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択工程と、
性能取得部が、前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得工程と、
を備えることを特徴とするソフトウェア実効性能評価方法。
【請求項７】
コンピュータを、
ソフトウェアの実行環境の仕様及び性能を示す実行環境情報を取得する実行環境情報取得部、
前記実行環境情報を記憶する実行環境情報記憶部、
前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析部、
前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶部、
前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択部、
前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得部、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの実効性能を評価する技術に関する。
【背景技術】
【０００２】
ソフトウェアの実効性能を測定するためには、測定対象のソフトウェアを実行環境に配備し、実際に動作させ、性能測定用の各種ツールを利用してデータを収集するのが一般的である。このため測定者は、測定を実施するたびに煩雑な作業を行わなければならず、また、長時間を要する処理の実効性能を測定する際には、処理が完了するまで毎回待たなくてはならないという問題があった。
【０００３】
さらに、ソフトウェアが、ハードウェア、ミドルウェア、ネットワーク等の実行環境の性能や仕様に大きく影響を受ける場合、実行環境を変更するたびに、実行環境と同様の構成で測定を実施し直す必要があり、そのたびに多大な手間と時間を費やさなければならなかった。
【０００４】
特に、ソフトウェアの実行するための基盤となるハードウェアやミドルウェア、ＯＳ（Operating System）、ネットワーク等は年々多様化しており、その性能や仕様も様々である。ミドルウェアに関しては、商用利用に耐えるＯＳＳ（Open Source Software）が登場し、開発コスト削減のためにこれらのＯＳＳミドルウェアを利用する企業が増加しているが、ＯＳＳのミドルウェアは有償のミドルウェアと比較すると、性能が劣る場合が多く、導入するためには各種のＯＳＳの性能を慎重に比較検討する必要がある。また、ソフトウェアの開発形態は再利用性、柔軟性を追求したＳａａＳ（Software as a Service）やＳＯＡ（Service-Oriented Architecture）等のサービス指向型アプリケーションの需要が高まっている。これらのサービス指向型アプリケーションにおいては、従来型のアプリケーションと比較して様々な実行環境に配備された個別のコンポーネントが、ネットワークを介して連携することが多く、アプリケーションの実行環境の性能がアプリケーションの性能に大きな影響を与える。
【０００５】
このような状況から、ソフトウェアの実効性能の評価については、様々な手法が提案されている。例えば、特許文献１は、プログラムの実装前に、ソフトウェアのプログラムコードのステップ数を計測することで、ソフトウェアの性能を評価する技術を開示している。また、この他、実行環境のプロセッサのクロック数と、プログラムコード全体のステップ数とを比較して性能を自動測定するソフトウェアの実効性能を測定する方式も存在した（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−２７３１７４号公報
【特許文献２】特開２００６−４２１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記の方式では、プロセッサのクロック数とプログラムコード全体のステップ数とを単純比較しているのみであり、プログラムが動作するＯＳやミドルウェア、ネットワークの仕様・性能を含めて性能を算出し、性能測定時の構成を指定して測定を行うことはできない。また、上記の方式では、プログラムコード全体のステップ数を対象としており、特定の分岐ブロックのみを通過するテストを行い、当該ブロック部分のみの性能を調べるといったことが困難であるという課題があった。
【０００８】
さらに、ソフトウェアの実効性能の測定手法や測定に用いる各種ツールが統一されておらず、異なる担当者が独自の方式で性能測定を実施した場合、担当者ごとの性能測定の結果に齟齬が発生する可能性があった。
【０００９】
本発明は、上記問題に鑑みてなされたものであり、ソフトウェアプログラムを実行させることなく、所定の実行環境における、特定ブロックのみの実効性能を求めることを可能とするソフトウェア実効性能評価システム及びソフトウェア実効性能評価方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成する本発明の第１の観点に係るソフトウェア実効性能評価システムは、
ソフトウェアの実行環境の仕様及び性能を示す実行環境情報を取得する実行環境情報取得部と、
前記実行環境情報を記憶する実行環境情報記憶部と、
前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析部と、
前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶部と、
前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択部と、
前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得部と、
を備えることを特徴とする。
【００１１】
また、本発明の第２の観点に係るソフトウェア実効性能評価方法は、
実行環境情報取得部と、実行環境情報記憶部と、プログラム解析部と、解析結果記憶部と、選択部と、性能取得部と、を備える装置が行うソフトウェア実効性能評価方法であって、
前記実行環境情報取得部が、ソフトウェアの実行環境の仕様及び性能を示す実行環境情報を取得する実行環境情報取得工程と、
前記実行環境情報記憶部が、前記実行環境情報を記憶する実行環境情報記憶工程と、
前記プログラム解析部が、前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析工程と、
前記解析結果記憶部が、前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶工程と、
選択部が、前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択工程と、
性能取得部が、前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得工程と、
を備えることを特徴とする。
【００１２】
また、本発明の第３の観点に係るプログラムは、
コンピュータを、
ソフトウェアの実行環境の仕様及び性能を示す実行環境情報を取得する実行環境情報取得部、
前記実行環境情報を記憶する実行環境情報記憶部、
前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析部、
前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶部、
前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択部、
前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得部、
として機能させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ソフトウェアプログラムを実行させることなく、所定の実行環境での、特定ブロックのみの実効性能を求めることを可能とするソフトウェア実効性能評価システム及びソフトウェア実効性能評価方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係るソフトウェア実効性能評価システムの全体構成を示す図である。
【図２】実行環境の実行環境情報データ（（ａ）ＣＰＵ、（ｂ）ＡＰサーバ、（ｃ）ＤＢＭＳサーバ、（ｄ）ＯＳ、（ｅ）ＬＡＮカード、（ｆ）ＤＬＬ）の一例を示す図である。
【図３】実行環境の性能情報データ（（ａ）ＣＰＵ、（ｂ）ＡＰサーバ、（ｃ）ＤＢＭＳサーバ、（ｄ）ＯＳ、（ｅ）ＬＡＮカード、（ｆ）ＤＬＬ）の一例を示す図である。
【図４】実効性能の評価を行うソフトウェアのネスト構造を説明するための図である。
【図５】ソフトウェアソースコード情報を説明するための図である。
【図６】性能評価対象スクリプトを説明するための図である。
【図７】ソフトウェアの実効性能の評価結果を示す図である。
【図８】実施形態の実行環境解析装置が行う処理を説明するためのフローチャートである。
【図９】本実施形態のソフトウェア解析装置が行う処理を説明するためのフローチャートである。
【図１０】実施形態の実効性能測定装置が行う処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１５】
（実施形態）
本発明の実施形態に係るソフトウェア実効性能評価システム１は、ｉ）ソフトウェア実行環境の仕様及び性能に関する情報を取得して、当該情報をデータベースに登録し、ii)ソフトウェアのネスト及び各ネスト内のステップ数を解析し、iii)実行環境の仕様及びソフトウェアのネストの指定を受け付け、iv)データベースに記憶された情報と、選択されたネスト内のステップ数とに基づいて、ソフトウェアの実効性能を示す値を求める。
以下、図面を参照してソフトウェア実効性能評価システム１を詳細に説明する。
【００１６】
ソフトウェア実効性能評価システム１は、図１に示すように、実行環境解析装置１００と、実行環境データベース２００と、ソフトウェア解析装置３００と、実効性能測定装置４００と、から構成される。実行環境解析装置１００と実行環境データベース２００は、例えば、ＬＡＮ（Local Area Network）により、相互にデータの送受が可能である。また、同様に、実行環境データベース２００と実効性能測定装置４００、及び、ソフトウェア解析装置３００と実効性能測定装置４００は、例えば、ＬＡＮにより、相互にデータの送受が可能である。実行環境解析装置１００は、インターネット等のネットワーク５００を介して、ソフトウェアを実行し得るソフトウェア実行環境６０１〜６０ｎを構成するコンピュータと通信を行う。
【００１７】
ソフトウェア実行環境６０１〜６０ｎ（ｎ：任意）は、例えば、ハードウェア、ミドルウェア、ＯＳ（Operating System）、ネットワーク、及びランタイムライブラリ等により構成される。そして、ソフトウェア実行環境６０１〜６０ｎを構成する、ハードウェア、ミドルウェア、ＯＳ、ネットワーク、及びランタイムライブラリは、それぞれ、１つ以上の構成要素を有する。具体的には、ハードウェアはＣＰＵ等の構成要素、ミドルウェアはＡＰサーバ及びＤＢＭＳ（Date Base Management System）等の構成要素、ネットワークはＬＡＮカード等の構成要素、ランタイムライブラリはＤＬＬ（Dynamic Link Library）等の構成要素を有する。
【００１８】
実行環境解析装置１００は、ｉ）ソフトウェア実行環境（ソフトウェア実行環境６０１〜６０ｎ）の仕様及び性能に関する情報を取得して、データベース（実行環境データベース２００）に登録する。
【００１９】
実行環境解析装置１００は、一般的なコンピュータにより実現され、機能的には、通信部１０１と、制御部１０２と、記憶部１０３と、Ｉ／Ｆ部１０４と、から構成される。
【００２０】
通信部１０１は、所定の通信方式により、第１のネットワーク５００を介して、ソフトウェア実行環境６０１〜６０ｎを構成するコンピュータとデータの送受を行う。また、通信部１０１は、所定の通信方式により、実行環境データベース２００とデータの送受を行う。
【００２１】
制御部１０２は、ＣＰＵ（Central Processing Unit）と、ＲＡＭ（Random Access Memory）と、ＲＯＭ（Read Only Memory）と、を備え、ＲＯＭ等に記憶されているソフトウェアプログラムに従って、実行環境解析装置１００全体の制御を行う。制御部１０２は、所定の周期で、ソフトウェア実行環境６０１〜６０ｎの仕様及び性能を検出する機能を有する。例えば、制御部１０２は、内部タイマに従って、図８のフローチャートに示す実行環境解析処理を行って、ソフトウェア実行環境６０１〜６０ｎを構成するハードウェア、ミドルウェア、ＯＳ、ネットワーク、及びランタイムライブラリの構成要素の仕様を示す「実行環境情報」と、性能を示す「性能情報」とを取得し、取得した実行環境情報と性能情報とを、実行環境データベース２００に格納させる。
【００２２】
なお、Ｉ／Ｆ部１０４が、ユーザより、ソフトウェア実行環境６０１〜６０ｎの仕様及び性能を取得する処理の開始の指示を受け付けると、制御部１０２が、図８のフローチャートに示す実行環境解析処理を実行するようにしてもよい。
【００２３】
また、制御部１０２は、所定の周期でソフトウェア実行環境６０１〜６０ｎの仕様及び性能を検出するのではなく、仕様の変更を検出する機能を有し、変更が検出された場合に、図８のフローチャートに示す実行環境解析処理を実行して、ソフトウェア実行環境６０１〜６０ｎの仕様及び性能を検出するようにしてもよい。例えば、制御部１０２は、所定の周期でソフトウェア実行環境６０１〜６０ｎを構成するハードウェア、ミドルウェア、ＯＳ、ネットワーク、及びランタイムライブラリの構成ファイルを読み込み、読み込んだ結果を記憶部１０３等に記憶する。そして、制御部１０２は、記憶部１０３等が記憶する、先に読み込んだ構成ファイルと現在読み込んだ構成ファイルとを比較して、両者の間で差異が検出された場合、ソフトウェアの実行環境６０１〜６０ｎの仕様が変更されたと見なし、実行環境解析処理を実行する。
【００２４】
以下、ハードウェア、ミドルウェア、ＯＳ、ネットワーク、及びランタイムライブラリの各構成要素についての実行環境情報及び性能情報の具体例を示す。
【００２５】
ＣＰＵの実行環境情報は、「ＣＰＵの名称（ＣＰＵネーム）」及びＣＰＵの型番を示す「プロセッサナンバー」等を示す情報を含み、ＣＰＵの性能情報は、「キャッシュメモリ容量」、「動作周波数」及び「ＦＳＢ（Front Side Bus）の動作周波数」等を示す情報を含む。
【００２６】
ＡＰサーバ及びＤＢＭＳの実行環境情報は、「ＡＰ／ＤＢＭＳの名称（ＡＰ／ＤＢＭＳネーム）」及び「バージョン」等を示す情報を含み、ＡＰサーバ及びＤＢＭＳの性能情報は、ＡＰサーバ及びＤＢＭＳが実行する各「実行コマンド」、各実行コマンドの「ステップ数」、所定のソフトウェア実行環境で各実行コマンドを実行する際に要した「ＴＡＴ（Turn Around Time）」、「ＣＰＵ使用率」、「メモリ使用率」、及び「ネットワーク帯域使用率」等を示す情報を含む。
【００２７】
ＯＳの実行環境情報は、「ＯＳの名称（ＯＳネーム）」及び「バージョン」等を示す情報を含み、ＯＳの性能情報は、ＯＳの「推奨クロック速度」、ＯＳの「推奨ＲＡＭ容量」、及びＯＳの性能係数等を示す情報を含む。ここで、性能係数とは、ソフトウェア実効性能にＯＳの種類がどの程度影響を与えるかを示す値である。例えば、予め、同一のハードウェア構成及びソフトウェア構成を有するテスト環境において、テストプログラムを種々のＯＳ上で実行した場合のソフトウェア実効性能の値（ＴＡＴ、ＣＰＵ使用率、メモリ使用率、ＴＡＴ、及びネットワーク帯域使用率）を求める。そして、各実効性能の値が所定の閾値を越えた場合は“１”、超えない場合は“０”と定める。なお、性能係数の決め方は任意であり、例えば、上記テストにより求めたソフトウェア実効性能の値に比例するような値でもよい。
【００２８】
ＬＡＮカードの実行環境情報は、「ＬＡＮカードの名称（ＬＡＮカードネーム）」等を示す情報を含み、ＬＡＮカードの性能情報は、「伝送速度」、「Jumbo Frame」の大きさ及び「伝送距離」等を示す情報を含む。
【００２９】
ＤＬＬの実行環境情報は、「ＤＬＬファイルの名称（ＤＬＬネーム）」及び「バージョン」等を示す情報を含み、ＤＬＬの性能情報は、各ＤＬＬファイルの「ステップ数」、所定のソフトウェア実行環境で各ＤＬＬファイルを実行する際に要した「ＣＰＵ使用率」、「メモリ使用率」、「ＴＡＴ」、及び「ネットワーク帯域使用率」等を示す情報を含む。
【００３０】
そして、制御部１０２は、通信部１０１に、取得した実行環境情報及び性能情報を、実行環境データベース２００へ送出させる。
【００３１】
記憶部１０３は、ハードディスクやフラッシュメモリ等の記憶装置から構成される。記憶部１０３は、例えば、制御部１０２が取得した、実行環境情報及び性能情報を一時的に格納する。
【００３２】
Ｉ／Ｆ部１０４は、モニタ等の表示装置やキーボード等の入力装置から構成される。例えば、Ｉ／Ｆ部１０４は、所定のソフトウェア実行環境に対する実行環境解析処理の開始の指示を受け付ける。
【００３３】
実行環境データベース２００は、ハードディスク等の記憶装置から構成される。実行環境データベース２００は、実行環境解析装置１００が取得した（例えば、ソフトウェア実行環境６０１（ＳＥ１）の）実行環境情報及び性能情報を受け付けると、当該実行環境情報を実行環境情報テーブル２０１（図２）、当該性能情報を性能情報テーブル２０２（図３）に登録する。実行環境データベース２００は、他のソフトウェア実行環境（ソフトウェア実行環境６０２〜６０ｎ）の実行環境情報及び性能情報を受け付けた場合も、同様に実行環境情報テーブル２０１、性能情報テーブル２０２に登録する。
【００３４】
ソフトウェア解析装置３００は、ii)ソフトウェアのネスト構造及び各ネストの性能を解析する。
【００３５】
ソフトウェア解析装置３００は、一般的なコンピュータにより実現され、機能的には、通信部３０１と、制御部３０２と、記憶部３０３と、Ｉ／Ｆ部３０４と、から構成される。
【００３６】
通信部３０１は、所定の通信方式により、実効性能測定装置４００とデータの送受を行う。
【００３７】
制御部３０２は、ＣＰＵと、ＲＡＭと、ＲＯＭと、を備え、ＲＯＭ等に記憶されているソフトウェアプログラムに従って、ソフトウェア解析装置３００全体の制御を行う。例えば、実効性能測定装置４００からソフトウェア解析処理の開始の指示を受け付けると、制御部３０２は、図９のフローチャートに示す処理（ソフトウェア解析処理）を行い、性能評価対象のソフトウェアのネスト構造及びネスト内のステップ数を取得する。また、例えば、Ｉ／Ｆ部３０４が、ユーザによるソフトウェア解析処理の開始の指示を受け付けると、図９のフローチャートに示す処理を行うようにしてもよい。
【００３８】
例えば、図４に示すソフトウェアソースコードＳＷ１に対しソフトウェア解析処理を行ったとする。制御部３０２は、ソフトウェアソースコードＳＷ１のネスト構造を分析し、各ネストａ１（クラスを表すネスト）、ネストｂ１（メソッドや関数を表すネスト）、ネストｃ１／ｃ２（分岐処理を表すネスト）、ネストｄ１（繰り返しを表すネスト）を抽出する。そして、制御部３０２は、各ネストに含まれるソースコードから、ステップ数を求める。この際、ネスト内で繰り返し処理が行われている場合は、ソースコードのライン数からステップ数を求めるのではなく、繰り返し回数を乗じて実際に実行されるステップ数を求める。制御部３０２は、解析した結果を記憶部３０３に記憶させる。
【００３９】
記憶部３０３は、ハードディスクやフラッシュメモリ等の記憶装置から構成される。記憶部３０３は、制御部３０２が取得した、ソフトウェアのネスト構造及びネスト内のステップ数を、例えば、図５（ソフトウェアソースコード情報３０３ａ）に示すように格納する。ソフトウェアソースコード情報３０３ａは、評価対象の「ソフトウェア」と、当該ソフトウェアに含まれる「ネスト」と、各ネストの「上位のネスト」と、各ネストの「下位のネスト」と、各ネストに含まれる「ステップ数」とを示す情報を含む。
【００４０】
Ｉ／Ｆ部３０４は、モニタ等の表示装置やキーボード等の入力装置から構成される。例えば、Ｉ／Ｆ部３０４は、ソフトウェア解析処理の開始の指示、及び実効性能解析の対象とするソフトウェアソースコードＳＷ１の指定を受け付け、ソフトウェア解析処理の結果（図５のソフトウェアソースコード情報）をモニタに出力する。
【００４１】
実効性能測定装置４００は、iii)実行環境の仕様及びソフトウェアのネストの指定を受け付け、iv)データベースに記憶された情報と、選択されたネスト内のステップ数とに基づいて、ソフトウェアの実効性能を示す値を求める。
【００４２】
実効性能測定装置４００は、一般的なコンピュータにより実現され、機能的には、通信部４０１と、制御部４０２と、記憶部４０３と、Ｉ／Ｆ部４０４と、から構成される。
【００４３】
通信部４０１は、所定の通信方式により、実行環境データベース２００、及びソフトウェア解析装置３００とデータの送受を行う。
【００４４】
制御部４０２は、ＣＰＵと、ＲＡＭと、ＲＯＭと、を備え、ＲＯＭ等に記憶されているソフトウェアプログラムに従って、実効性能測定装置４００全体の制御を行う。例えば、Ｉ／Ｆ部４０４がソフトウェアの実効性能の測定を開始する指示を受け付けると、制御部４０２は、図１０のフローチャートに示す処理（実効性能測定処理）を行う。すなわち、ユーザが指定した、実行環境の仕様を示す情報（ＣＰＵ  ＩＤ、ＡＰサーバＩＤ等）に基づいて実行環境データベース２００から該当する実行環境の性能情報を読み込み、また、ユーザが指定したソフトウェアのネストに基づいて、ソフトウェア解析装置３００に記憶されたソフトウェアソースコード情報３０３ａから、当該ネスト内のステップ数を読み込む。そして、読み込んだ性能情報とステップ数とからソフトウェアの実効性能を示す値を求める。以下、ユーザが指定した実行環境の仕様及びソフトウェアのネストを、併せて「評価対象指定情報」という。
【００４５】
ここで、ソフトウェアの実効性能を示す値は、例えば、ＴＡＴ、ＣＰＵ使用率、メモリ使用率、又はネットワーク使用率であり、評価対象指定情報に基づいて、以下のように求めることができる。
【００４６】
ＣＰＵ、ＡＰサーバ、ＤＢＭＳ、ＯＳ、ＬＡＮカード、及びＤＬＬの構成要素を有する、所定の実行環境において、Ｘ個のステップ数を含むプログラムを実行した際に測定されたＴＡＴ、ＣＰＵ使用率、メモリ使用率、及びネットワーク使用率をそれぞれ（ｔ、ｕ、ｖ、ｗ）とする。予め複数の実行環境の図３に示す性能情報と、当該実行環境においてＸ個のステップ数を有するソフトウェアを実行した場合のＴＡＴ、ＣＰＵ使用率、メモリ使用率、及びネットワーク使用率の測定値（ｔ１、ｕ１、ｖ１、ｗ１）〜（ｔｎ、ｕｎ、ｖｎ、ｗｎ）とを求めておく。そして、性能情報の値（図３）及びソフトウェアのステップ数を従属変数として、ＴＡＴ、ＣＰＵ使用率、メモリ使用率、又はネットワーク使用率を表す論理モデル（式）を回帰分析により求める。
【００４７】
例えば、以下に示すＴＡＴの論理モデルの各係数ａ、ｂ、ｃ、ｄ、ｅ、ｆ、ｇを、回帰分析により求める。
ＴＡＴ＝ａ×動作周波数＋ｂ×ステップ数（ＡＰサーバ）＋ｃ×ステップ数（ＤＢＭＳ）＋ｄ×性能係数＋ｅ×伝送速度＋ｆ×ステップ数（ＤＬＬ）＋ｇ×Ｘ（ソフトウェアのステップ数）
なお、性能情報の組み合わせは任意であり、ユーザが適宜選択できるとする。
【００４８】
このように求めた論理式は、記憶部４０３に記憶され、ユーザが評価対象指定情報を指定すると、制御部４０２は、上記論理式の従属変数の値を求めて、当該論理式に代入し、ソフトウェアの実効性能を示す値を求める。
【００４９】
記憶部４０３は、ハードディスクやフラッシュメモリ等の記憶装置を備え、例えば、ソフトウェアの実効性能を算出するための論理式や制御部４０２が求めたソフトウェアの実効性能を示す値を格納する。
【００５０】
Ｉ／Ｆ部４０４は、モニタ等の表示装置やキーボード等の入力装置から構成される。例えば、Ｉ／Ｆ部１０４は、実効性能測定処理の開始の指示を受け付け、モニタに、評価対象指定情報を指定するためのスクリプト（図６の評価対象指定スクリプト）を表示する。また、ユーザがキーボード等で評価対象指定スクリプトを編集して、評価対象指定情報を指定すると、制御部４０２は実効性能測定処理を行い、求めた結果（図７、実効性能測定結果テーブル）をモニタに出力する。
【００５１】
次に、上記構成を有するソフトウェア実効性能評価システム１の実行環境解析装置１００、ソフトウェア解析装置３００、及び実効性能測定装置４００が行う動作（図８乃至図１０）について説明する。以下では、実行環境解析装置１００は、内部タイマに従って所定の周期で、実行環境解析処理を行い、ソフトウェア解析装置３００は、実効性能測定装置４００からソフトウェア解析処理開始の指示を受け付けると、ソフトウェア解析処理を開始する。実効性能測定装置４００は、ユーザから実効性能測定処理開始の指示を受け付けると、実効性能測定処理を開始する。この際、実効性能測定装置４００は、ソフトウェア解析装置３００に、ソフトウェア解析処理開始の指示を送信する。
【００５２】
実行環境解析装置１００は、内部タイマに従って、所定の周期で、図８に示す実行環境解析処理を開始する。
【００５３】
制御部１０２は、ソフトウェア実行環境６０１〜６０ｎに関する情報を取得する（ステップＳ１１）。例えば、ソフトウェア実行環境６０１〜６０ｎを構成するコンピュータと通信を行い、当該コンピュータが有する構成ファイルを読み込む。
【００５４】
次に、制御部１０２は、取得したソフトウェア実行環境６０１〜６０ｎを構成するハードウェア、ミドルウェア、ＯＳ、ネットワーク、及びランタイムライブラリの構成要素に関する実行環境情報及び性能情報を得る（ステップＳ１２）。例えば、構成ファイルから、ソフトウェア実行環境６０１（ＳＥ１）が有するＣＰＵの「ＣＰＵネーム」は“ＸＸＸ”、「プロセッサナンバー」は“Ｅ８６００”といった情報を取得する。同様に、ＡＰサーバの「ＡＰサーバネーム」は“ＸＸ  Ｓｅｒｖｅｒ”、「バージョン」は“６．０．１”、ＤＢＭＳの「ＤＢＭＳネーム」は“ＸＸ  ＤＢ”、「バージョン」は“１．２．１”、ＯＳの「ＯＳネーム」は“ＸＸＸＸ”、「バージョン」は“ＹＹ”、ＬＡＮカードの「ＬＡＮカードネーム」は“ＸＸＸ−ＸＸＸ”、ＤＬＬの「ＤＬＬネーム」は“ＸＸＸ．ｄｌｌ”、「バージョン」は“１１．０．６５６８”等の情報を取得する。
【００５５】
また、制御部１０２は、各構成要素の性能情報を取得する。例えば、上記ＣＰＵ（“ＸＸＸ”）の「キャッシュメモリ容量」は“６ＭＢ  Ｌ２”、「動作周波数」は“３．３３ＧＨｚ”、「ＦＳＢ」は“１３３３ＭＨｚ”、上記ＡＰサーバ（“ＸＸ  Ｓｅｒｖｅｒ”）で実行される「実行コマンド」は“ｃａｌｌＥＪＢ（）”、「ステップ数」は“１０００”、「ＣＰＵ使用率」は“１％”、「メモリ使用率」は“１％”、「ＴＡＴ」は“７０００μｓ”、「ネットワーク帯域使用率」は“１％”、上記ＤＢＭＳ（“ＸＸ  ＤＢ”）で実行される「実行コマンド」は“ｓｅｌｅｃｔ”、「ＣＰＵ使用率」は“１％”、「メモリ使用率」は“１％”、「ＴＡＴ」は“３００μｓ”、「ネットワーク帯域使用率」は“１％”、上記ＯＳ（“ＸＸＸＸ”）の「推奨クロック速度」は“３００ＭＨｚ”、「推奨ＲＡＭ容量」は“１２８ＭＢ”、「ＨＤＤ容量」は“２．１ＧＢ”、上記ＬＡＮカード（“ＸＸＸ−ＸＸＸ”）の「伝送速度」は“１，０００Ｍｂｐｓ”、「Ｊｕｍｂｏ  Ｆｒａｍｅ」は“７，１５４ｂｙｔｅｓ”、「伝送距離」は“１００ｍ”、上記ＤＬＬ（“ＸＸＸ．ｄｌｌ”）の「ステップ数」は“５００”、「ＣＰＵ使用率」は“１％”、「メモリ使用率」は“１％”、「ＴＡＴ」は“３００μｓ”、「ネットワーク帯域使用率」は“１％”等の情報を取得する。
【００５６】
そして、制御部１０２は、解析した結果の、ハードウェア、ミドルウェア、ＯＳ、ネットワーク、及びランタイムライブラリの実行環境情報及び性能情報を、実行環境データベース２００に出力する（ステップＳ１３）。実行環境データベース２００は、図２Ａ乃至図２Ｆ（実行環境情報テーブル２０１）に示すように、制御部１０２が取得した各構成要素の実行環境情報にＩＤ（“ＣＰＵ  ＩＤ”、“ＡＰサーバＩＤ”、“ＤＢＭＳ  ＩＤ”、“ＯＳ  ＩＤ”、“ＬＡＮカードＩＤ”、“ＤＬＬ  ＩＤ”）を付して、当該実行環境情報を構成要素毎のテーブルに格納する。また、図３（ａ）乃至図３（ｆ）（性能情報テーブル２０２）に示すように、制御部１０２が取得した性能情報を構成要素毎のテーブルに格納する。この際、実行環境情報に対応する性能情報には、実行環境情報テーブルで用いられているものと同じＩＤを付する。これにより、ＩＤをキーにして、各構成要素の実行環境情報及び性能情報を読み出すことができる。例えば、ユーザが、「ＣＰＵ  ＩＤ」が“ＣＰＵ−００１”のＣＰＵを選択したとすると、“ＣＰＵ−００１”をキーとして、当該ＣＰＵの「ＣＰＵネーム」や「キャッシュメモリ容量」等の情報を読み出すことができる。
【００５７】
次に、ソフトウェア解析装置３００が行う処理の動作について説明する。ソフトウェア解析装置３００は、実効性能測定装置４００からソフトウェア解析処理の開始の指示を受け付けると、図９に示すソフトウェア解析処理を開始する。
【００５８】
実効性能測定装置４００のユーザにより性能解析対象とするソフトウェアソースコードが指定されると、制御部３０２は、指定されたソフトウェアソースコードを読み込む（ステップＳ２１）。次に、制御部３０２は、読み込んだソフトウェアソースコードのネスト構造を解析し、各ネストを抽出する（ステップＳ２２）。例えば、制御部３０２が、図４のソフトウェアソースコードＳＷ１を読み込んだとすると、制御部３０２は、ネストａ１、ネストｂ１、ネストｃ１／ｃ２、ネストｄ１を抽出する。
【００５９】
次に、制御部３０２は、各ネストに含まれるソフトウェアソースコードを解析し、各ネストの実行ステップ数を求める（ステップＳ２３）。例えば、ソフトウェアソースコードＳＷ１のネストｄ１に含まれる実行ステップ数は、２０００１（＝１（繰り返し定義の行）＋２（ループ内の行）×１００００（繰り返し回数））と求まる。またネストｄ１の上位のネストｃ１の実行ステップ数は、ネストｄ１に含まれる実行ステップ数（２０００１）と、ネストｄ１以外に含まれるステップ数（例えば、１００）を足して、２０１０１と求まる。
【００６０】
そして、制御部３０２は、解析した結果を、Ｉ／Ｆ部３０４に出力させる。例えば、制御部３０２は、図５に示すソフトウェアコード情報を、モニタに表示させる。本実施形態のソフトウェアコード情報は、解析したソフトウェアを示す「ソフトウェア」と、当該ソフトウェアに含まれる「ネスト」と、当該ネストの「上位のネスト」及び「下位のネスト」と、当該ネストに含まれる「ステップ数」と、を示す情報から構成される。
【００６１】
実効性能測定装置４００は、ユーザにより、Ｉ／Ｆ部３０４が性能測定処理の開始の指示を受け付けると、図１０に示す性能測定処理を開始する。
【００６２】
まず、制御部４０２は、実効性能を評価するソフトウェアを指定し、ソフトウェア解析装置３００と通信を行い、ソフトウェア解析装置３００に図９に示すソフトウェア解析処理を開始させる。そして、制御部４０２は、ソフトウェア解析装置３００が解析したソフトウェアソースコード情報を取得する（ステップＳ３１）。例えば、実効性能を評価するソフトウェアを図４のソフトウェアソースコードＳＷ１とすると、制御部４０２は、ソフトウェア解析装置３００から、図５のソフトウェアソースコード情報３０３ａを取得し、制御部４０２のＲＡＭ等に一時格納する。
【００６３】
次に、制御部４０２は、Ｉ／Ｆ部１０４に評価対象指定スクリプト（図６）を表示させ、ユーザは、キーボート等を用いて評価対象指定スクリプトを編集して、評価対象指定情報を指定する。制御部４０２は、評価対象指定スクリプトから、評価対象指定情報を取得する（ステップＳ３２）。例えば、ユーザが、ソフトウェアソースコードＳＷ１のネストｃ１及びＣＰＵ−００１、ＡＰ−００１、ＤＢ−００１、ＯＳ−００１、ＬＡＮ−００１、及びＤＬＬ−００１を評価対象指定情報として指定したとすると、それらを制御部４０２のＲＡＭ等に一時格納する。
【００６４】
次に、制御部４０２は、ステップＳ３２で読み込んだ性能能評価対象情報に記されたＩＤに基づいて、実行環境データベース２００から性能情報を取得する（ステップＳ３３）。例えば、図３に示す、ＣＰＵ−００１、ＡＰ−００１、ＤＢ−００１、ＯＳ−００１、ＬＡＮ−００１、及びＤＬＬ−００１の性能情報を、制御部４０２のＲＡＭ等に一時格納する。
【００６５】
制御部４０２は、ソフトウェアソースコード情報と実行環境データベース２００から読み込んだ性能情報とから、指定された評価対象指定情報に従い、ソフトウェアの性能を計算する（ステップＳ３４）。例えば、制御部４０２は、指定されたソフトウェアソースコードＳＷ１のネストｃ１のステップ数と、ＣＰＵ−００１、ＡＰ−００１、ＤＢ−００１、ＯＳ−００１、ＬＡＮ−００１、及びＤＬＬ−００１の性能情報を従属変数として、予め用意された回帰式に代入して、ソフトウェアソースコードＳＷ１のネストｃ１のＴＡＴを求める。
【００６６】
そして、制御部４０２は、Ｉ／Ｆ部４０４にソフトウェアの性能測定をした結果（性能測定結果データ、図７）を表示させる。例えば、性能測定結果データは、評価対象とする「ソフトウェア」の種類及び当該ソフトウェアの「ネスト」、ユーザが指定した各実行環境のＩＤ、及び当該ソフトウェアの指定されたネストの性能を表す指標（例えば、「ＴＡＴ」）等を含む。図７の例は、ソフトウェアソースコードＳＷ１のネストｃ１を、ＣＰＵ−００１、ＡＰ−００１、ＤＢ−００１、ＯＳ−００１、ＬＡＮ−００１、及びＤＬＬ−００１を含むソフトウェア実行環境で実行した場合の性能（ＴＡＴ）を示している。
【００６７】
以上説明したように、ソフトウェア実効性能評価システム１によれば、自動的にソフトウェア実行環境の仕様・性能を解析・収集し、データベースに登録する仕組みを提供することにより、複雑な構成や、構成が頻繁に変更される場合にも、素早く性能測定に必要な情報を収集することができ、性能測定にかかる工数を削減することができる。また、実際にソフトウェアを実行環境に配備したり、実行させたりする手間が省けるので、性能測定にかかる工数を削減することができる。さらに、各種実行環境に関する詳細な仕様を把握していなくても性能測定が可能となり、性能測定に必要な学習コストを削減することができる。
【００６８】
また、ソフトウェアソースコードのネスト単位での実効ステップ数を解析し、実際に実行されるネスト単位での性能測定を可能とし、各種条件下での実質的な性能に近いデータを計測することが可能となる。本発明を利用することで、環境ごとに一定の手順に従って性能測定を行うことが可能となるため、性能測定の担当者が変わっても性能測定の方式に違いが出たり、性能測定結果に齟齬が発生したりしにくくすることができる。
【００６９】
本発明のソフトウェア実効性能評価システムは、図１の構成に限られない。例えば、実行環境解析装置１００、実行環境データベース２００、ソフトウェア解析装置３００、及び実効性能測定装置４００は同一の装置により実現されてもよい。また、ＬＡＮの代わりに、各装置がインターネットを介して通信可能であってもよい。
【００７０】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００７１】
（付記１）ソフトウェアの実行環境の仕様及び性能を示す実行環境情報を取得する実行環境情報取得部と、前記実行環境情報を記憶する実行環境情報記憶部と、前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析部と、前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶部と、前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択部と、前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得部と、を備えることを特徴とするソフトウェア実効性能評価システム。
【００７２】
（付記２）前記実行環境情報は、ソフトウェアを実行する装置のＯＳ（Operating System）、ハードウェア、ミドルウェア、ネットワーク、又は、ランタイムライブラリの仕様及び性能を示す情報から構成されることを特徴とする付記１に記載のソフトウェア実効性能評価システム。
【００７３】
（付記３）前記ネスト性能情報は、プログラムコードのステップ数を示す情報から構成されることを特徴とする付記１又は２に記載のソフトウェア実効性能評価システム。
【００７４】
（付記４）前記プログラムコードのステップ数は、当該プログラムコードが繰り返し処理を含む場合、繰り返し数を考慮した総ステップ数であることを特徴とする付記３に記載のソフトウェア実効性能評価システム。
【００７５】
（付記５）前記ソフトウェアの実行環境の仕様の変更を検出する仕様変更検出部をさらに備え、前記実行環境情報取得部は、前記仕様変更検出部が仕様の変更を検出した場合に、前記ソフトウェアの実行環境の実行環境情報を取得することを特徴とする付記１乃至４のうちいずれか１つに記載のソフトウェア実効性能評価システム。
【００７６】
（付記６）実行環境情報取得部と、実行環境情報記憶部と、プログラム解析部と、解析結果記憶部と、選択部と、性能取得部と、を備える装置が行うソフトウェア実効性能評価方法であって、前記実行環境情報取得部が、ソフトウェアの実行環境の仕様及び性能を示す実行環境情報を取得する実行環境情報取得工程と、前記実行環境情報記憶部が、前記実行環境情報を記憶する実行環境情報記憶工程と、前記プログラム解析部が、前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析工程と、前記解析結果記憶部が、前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶工程と、選択部が、前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択工程と、性能取得部が、前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得工程と、を備えることを特徴とするソフトウェア実効性能評価方法。
【００７７】
（付記７）コンピュータを、ソフトウェアの実行環境の仕様及び性能を示す実行環境情報を取得する実行環境情報取得部、前記実行環境情報を記憶する実行環境情報記憶部、前記ソフトウェアのプログラムコードのネストと各ネストの性能とを解析するプログラム解析部、前記プログラム解析部が解析したネストの性能を示すネスト性能情報を記憶する解析結果記憶部、前記プログラムコードに含まれるネストから性能評価対象とするネストを選択する選択部、前記選択部が選択したネストのネスト性能情報を前記解析結果記憶部から読み出し、当該ネスト性能情報と、前記実行環境情報記憶部が記憶する前記実行環境情報とに基づいて、ソフトウェアの実効性能を示す値を取得する性能取得部、として機能させることを特徴とするプログラム。
【符号の説明】
【００７８】
１  ソフトウェア実効性能評価システム
１００    実行環境解析装置
１０１  通信部
１０２  制御部
１０３  記憶部
１０４  Ｉ／Ｆ部
２００  実行環境データベース
２０１  実行環境情報テーブル
２０２  性能情報テーブル
３００    ソフトウェア解析装置
３０１  通信部
３０２  制御部
３０３  記憶部
３０３ａ  ソフトウェアソースコード情報
３０４  Ｉ／Ｆ部
４００    実効性能測定装置
４０１  通信部
４０２  制御部
４０３  記憶部
４０４  Ｉ／Ｆ部
５００  ネットワーク
６０１〜６０ｎ  ソフトウェア実行環境
【図１】
2011181034.tif 000003
【図２】
2011181034.tif 000004
【図３】
2011181034.tif 000005
【図４】
2011181034.tif 000006
【図５】
2011181034.tif 000007
【図６】
2011181034.tif 000008
【図７】
2011181034.tif 000009
【図８】
2011181034.tif 000010
【図９】
2011181034.tif 000011
【図１０】
2011181034.tif 000012