(57)【特許請求の範囲】
【請求項１】
階層構造を有するプログラムの構成単位を表すプログラム構造要素とデータとが対応づけられた複数のレコードの少なくとも１つのレコードに基づくグラフを表示するグラフ表示装置であって、
複数のプログラム構造要素から少なくとも１つの前記プログラム構造要素を特定するための条件を受け付ける条件受付部と、
特定された前記プログラム構造要素に対応する前記レコードに基づくグラフの表示に要する時間に関する時間情報を表示する時間情報表示部と、
前記グラフの表示を開始するための指示を受け付ける指示受付部と、
前記指示を受け付けた場合に、前記グラフを表示するグラフ表示部と、を備え、
前記複数のレコードは、所定の階層の前記プログラム構造要素に基づいてレコード数が管理されており、
前記時間情報表示部は、前記レコード数に基づく時間情報を表示する、
グラフ表示装置。
【請求項２】
階層構造を有するプログラムの構成単位を表すプログラム構造要素とデータとが対応づけられた複数のレコードの少なくとも１つのレコードに基づくグラフを表示するグラフ表示装置で実行されるグラフ表示方法であって、
複数のプログラム構造要素から少なくとも１つの前記プログラム構造要素を特定するための条件を受け付け、
特定された前記プログラム構造要素に対応する前記レコードに基づくグラフの表示に要する時間に関する時間情報を表示し、
前記グラフの表示を開始するための指示を受け付け、
前記指示を受け付けた場合に、前記グラフを表示し、
前記複数のレコードは、所定の階層の前記プログラム構造要素に基づいてレコード数が管理されており、
前記時間情報は、前記レコード数に基づく、
グラフ表示方法。
【請求項３】
階層構造を有するプログラムの構成単位を表すプログラム構造要素とデータとが対応づけられた複数のレコードの少なくとも１つのレコードに基づくグラフを表示するグラフ表示装置が備えるコンピュータを、
複数のプログラム構造要素から少なくとも１つの前記プログラム構造要素を特定するための条件を受け付ける手段と、
特定された前記プログラム構造要素に対応する前記レコードに基づくグラフの表示に要する時間に関する時間情報を生成する手段と、
前記グラフの表示を開始するための指示を受け付ける手段と、
前記指示を受け付けた場合に、前記グラフを生成する手段として機能させ、
前記複数のレコードは、所定の階層の前記プログラム構造要素に基づいてレコード数が管理されており、
前記時間情報は、前記レコード数に基づいて生成される、
グラフ表示プログラム。
【請求項４】
前記データは、前記プログラムを実行したことで得られる情報である、
請求項１に記載のグラフ表示装置。
【請求項５】
前記データは、前記プログラム構造要素に対応する実行時間、メモリアクセス時間、メモリアクセス回数、および、命令実行回数のいずれか少なくとも１つを含む、
請求項１に記載のグラフ表示装置。
【請求項６】
前記所定の階層は、前記プログラムの階層構造における末端のデータ構造単位より上の階層である、
請求項１に記載のグラフ表示装置。
【請求項７】
前記時間情報表示部は、前記レコード数の管理に用いられたプログラム構造要素のうち、前記条件受付部で受け付けた条件によって特定された前記プログラム構造要素に包含される前記プログラム構造要素に基づく前記レコード数から生成された前記時間情報を表示する、
請求項１に記載のグラフ表示装置。
【請求項８】
前記時間情報は、少なくともグラフの描画に要する時間に基づいて生成される、
請求項１に記載のグラフ表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、グラフ表示装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
数値データの特徴や傾向を視覚的に表現するために、当該数値データに基づくグラフを作成し、表示画面に表示するグラフ表示装置が、一般に広く利用されている。このようなグラフ表示装置において、ユーザーは、グラフの作成に用いる数値データの範囲やグラフの形態等を様々に指定することができる。
【０００３】
また、近年は様々な分野において、ビッグデータを活用した研究開発が行われている。このようなビッグデータの活用においても、数値データを解析してグラフを作成することは極めて重要であり、広く望まれている。
【０００４】
しかしながら、ビッグデータの処理において扱われるデータ量は膨大であり、一般的なコンピュータを用いる場合、ユーザーの要求によっては、グラフの作成や表示に相当の時間が掛かることがある。この場合、ユーザーはグラフの作成や表示に掛かる時間を把握できないため、不便を要する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２４５１２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
発明が解決しようとする課題は、ユーザーにとって利便性の高いグラフ表示装置、方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の一の実施形態に係るグラフ表示装置は、条件受付部と、時間情報表示部と、指示受付部と、グラフ表示部とを備える。
【０００８】
条件受付部は、複数のデータを含むグラフデータから、少なくとも１つの前記データを特定するための条件を受け付ける。時間情報表示部は、前記条件によって特定された前記データに基づいたグラフの表示に要する時間に関する時間情報を表示する。指示受付部は、前記グラフの表示を開始するための指示を受け付ける。グラフ表示部は、前記指示を受け付けた場合に、前記グラフを表示する。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係るグラフ表示システム１の表示画面１００を表す一例図。
【図２】グラフ表示システム１の構成図。
【図３】グラフ表示装置２及びサーバ３のハードウェア構成の一例図。
【図４】グラフ表示システム１の機能ブロック図。
【図５】格納部１４が格納するグラフデータを表す一例図。
【図６】格納部１４が格納する管理データを表す一例図。
【図７】グラフ表示システム１の処理を表すフローチャート。
【図８】グラフ表示部１３２が表示するグラフの一例図。
【図９】プログラムの一例図。
【図１０】第２の実施形態に係るグラフ表示システム２００の機能ブロック図。
【図１１】格納部２４が格納するグラフデータを表す一例図。
【図１２】格納部２４が格納する管理データを表す一例図。
【図１３】グラフ表示システム２００の処理を表すフローチャート。
【図１４】グラフ表示部１３２が表示するグラフの一例図。
【図１５】格納部２４が格納するグラフデータを表す一例図。
【図１６】グラフ表示部１３２が表示するグラフの一例図。
【図１７】格納部２４が格納するグラフデータを表す一例図。
【図１８】グラフ表示部１３２が表示するグラフの一例図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面を参照して詳細に説明する。本願明細書と各図において、既出の図に関して前述したものと同様の要素には同一の符号を付して詳細な説明は適宜省略する。
【００１１】
（第１の実施形態）
第１の実施形態に係るグラフ表示システム１は、数値データに基づくグラフを生成して表示することが可能なシステムである。グラフ表示システム１は、表示すべきグラフに関する条件をユーザーから受け付ける。グラフ表示システム１は、受け付けた条件からグラフの生成に関する時間情報を求め、表示画面に表示する。グラフ表示システム１は、ユーザーからグラフの表示の指示を受け付けた場合に、グラフの生成を開始し、表示画面に表示する。
【００１２】
これにより、ユーザーは、グラフの表示に掛かる時間を事前に把握し、システムにグラフの作成及び表示を実行させるか否かを判断することができる。このため、ユーザーの心理的負荷を軽減することができる。
【００１３】
本実施形態で述べるグラフとは、散布図、円グラフ、棒グラフ、折れ線グラフ、エリアグラフ、ガントチャート、箱ひげ図、表、相関図、ヒートマップ、ツリーチャート、マトリクスマップ等、受け付けた条件に対応して生成される図であれば、如何なるものであっても構わない。
【００１４】
図１は、グラフ表示システム１の表示画面１００を表す一例図である。グラフ表示システム１は、条件入力画面１０１と、時間情報表示画面１０２と、表示指示ボタン１０３と、グラフ表示画面１０４とを、表示画面１００に表示する。条件入力画面１０１は、ユーザーが表示すべきグラフについての条件を入力する画面である。時間情報表示画面１０２は、受け付けた条件からグラフの表示に関する時間情報を表示する画面である。表示指示ボタン１０３は、グラフの表示の指示を入力するボタンである。グラフ表示画面１０４は、生成されたグラフを表示する画面である。
【００１５】
図２は、グラフ表示システム１の構成図である。グラフ表示システム１は、グラフ表示装置２とサーバ３とを含む。グラフ表示装置２とサーバ３とは、インターネット等のネットワーク４を介して接続される。
【００１６】
グラフ表示装置２は、ユーザーが操作可能な装置であり、例えば、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、スマートフォン等の情報処理端末である。サーバ３は、グラフ表示装置２に表示されるグラフを生成する処理の少なくとも一部を行なう。図２において、グラフ表示装置２とサーバ３とは、各々１つずつ描かれているが、グラフ表示装置２とサーバ３とは、各々複数あってもよい。
【００１７】
図３は、グラフ表示装置２及びサーバ３のハードウェア構成の一例図である。グラフ表示装置２及びサーバ３は、通常のコンピュータに用いられる構成を有し、ＣＰＵ（Central  Processing  Unit）５、ＲＯＭ（Read  Only  Memory）６、ＲＡＭ（Random  Access  Memory）７、入力デバイス８、出力デバイス９、及び通信Ｉ／Ｆ１０を含む。ＣＰＵ５は、ＲＯＭ６等に記憶された制御プログラムに従ってＲＡＭ７をワーキングエリアとして所定の演算処理を行う。入力デバイス８は、外部から情報を入力するためのデバイスであり、例えばキーボード、マウス、タッチパネル等である。出力デバイス９は、内部で生成した情報を外部に出力するためのデバイスであり、例えばディスプレイである。通信Ｉ／Ｆ１０は、ネットワーク４を介して外部の装置との間で情報の送受信を可能にするデバイスである。
【００１８】
図４は、グラフ表示システム１の機能ブロック図である。グラフ表示システム１は、入力部１１と、処理部１２と、表示部１３と、格納部１４とを備える。本実施形態では、グラフ表示装置２は、入力部１１と、処理部１２と、表示部１３と含む。サーバ３は、格納部１４を含む。
【００１９】
格納部１４は、グラフの生成に用いるグラフデータ、及び、管理データを格納している。図５は、格納部１４が格納するグラフデータを表す一例図である。格納部１４は、第１の要素と、第２の要素とを対応付けたグラフデータを格納する。第１の要素は、属性が時系列である時系列パラメータを複数含む。本実施形態では、時系列パラメータの単位を「秒」として説明する。第２の要素は、当該時系列パラメータに対応し、属性が数値である数値パラメータを複数含む。すなわち、各要素は、属性が共通するパラメータを複数含む。
【００２０】
本実施形態において、１つの時系列パラメータと、当該時系列パラメータに対応する数値パラメータとの組をレコードと呼ぶ。図５の例では、時系列パラメータ「１」と、それに対応する数値パラメータ「１０」との組が、１つのレコードである。すなわち、本実施形態におけるデータは、レコードの集合で表される。
【００２１】
図６は、格納部１４が格納する管理データを表す一例図である。格納部１４は、管理単位情報と、レコード数情報とを対応付けて格納する。管理単位情報とは、時系列パラメータを所定の範囲で区切り、グループ化した単位（管理単位と呼ぶ）の集合である。図６の例では、時系列パラメータを６０秒毎に区切り、各々を１つの管理単位とする。レコード数情報は、時系列パラメータが管理単位に含まれるレコードの数を表す。図６の例では、時系列パラメータが「１」秒から「６０」秒までに、「４２」個のレコードが存在することを示している。
【００２２】
入力部１１は、条件入力部１１１と、指示入力部１１２とを含む。処理部１２は、条件受付部１２１と、時間情報算出部１２２と、指示受付部１２３と、グラフ生成部１２４とを含む。表示部１３は、時間情報表示部１３１と、グラフ表示部１３２とを含む。
【００２３】
条件入力部１１１は、ユーザーの指定により、表示すべきグラフに関する条件を入力する。本実施形態における条件は、格納部１４に格納されたグラフデータの第１の要素において、一又は複数の時系列パラメータを指定するものである。例えば、本実施形態の条件は、グラフデータの第１の要素において、時系列パラメータの範囲を指定するものであってよい。あるいは、所定の閾値以上の時系列パラメータ、所定の閾値以下の時系列パラメータ、所定の値と等しい時系列パラメータ、もしくは、それらの組み合わせであってもよい。
【００２４】
指示入力部１１２は、ユーザーの指定により、グラフの表示の指示を入力する。
【００２５】
条件受付部１２１は、条件入力部１１１で入力された条件を受け付ける。時間情報算出部１２２は、受け付けた条件に基づいて、格納部１４から管理データを取得する。時間情報算出部１２２は、取得された管理データを用いて、受け付けた条件を満たすレコード数情報を得る。時間情報算出部１２２は、得られたレコード数情報に基づいて、時間情報を算出する。
【００２６】
指示受付部１２３は、指示入力部１１２で入力された、グラフの表示の指示を受け付ける。グラフ生成部１２４は、指示受付部１２３が、グラフの表示の指示を受け付けた場合に、条件受付部１２１が受け付けた条件を満たすグラフデータを格納部１４から取得し、取得したグラフデータに基づいてグラフを生成する。
【００２７】
時間情報表示部１３１は、時間情報算出部１２２が生成した時間情報を表示する。グラフ表示部１３２は、グラフ生成部１２４が生成したグラフを表示する。
【００２８】
以上、グラフ表示システム１の構成について説明した。
【００２９】
図７は、グラフ表示システム１の処理を表すフローチャートである。ステップＳ１０１において、条件入力部１１１は、ユーザーの指定により、表示すべきグラフに関する条件を入力する（Ｓ１０１）。本実施形態において、入力された条件は、図１に示す表示画面１００の条件入力画面１０１に表示される。
【００３０】
例えば、条件入力部１１１は、第１の要素の中で、「３０秒」〜「１３０秒」の時系列パラメータの範囲を指定する条件を入力する。この条件を「条件Ａ」と呼ぶ。
【００３１】
ステップＳ１０２において、条件受付部１２１は、入力された条件を受け付ける（Ｓ１０２）。条件受付部１２１は、受け付けた条件を、時間情報算出部１２２とグラフ生成部１２４とに供給する。
【００３２】
ステップＳ１０３において、時間情報算出部１２２は、格納部１４の管理データを参照し、受け付けた条件を満たす管理単位情報に対応するレコード数情報を取得する（Ｓ１０３）。
【００３３】
例えば、条件受付部１２１が条件Ａを受け付けた場合、時間情報算出部１２２は、格納部１４の管理データを参照し、管理単位情報の中で、「３０秒」〜「１３０秒」が含まれる管理単位を探索する。図６の場合、「３０秒」〜「６０秒」は、「１−６０」の管理単位に含まれ、「６１秒」〜「１２０秒」は、「６１−１２０」の管理単位に含まれ、「１２１秒」〜「１３０秒」は、「１２１−１８０」の管理単位に含まれる。
【００３４】
従って、時間情報算出部１２２は、「１−６０」の管理単位に対応するレコード数「４２」と、「６１−１２０」の管理単位に対応するレコード数「６０」と、「１２１−１８０」の管理単位に対応するレコード数「１２」とを取得する。
【００３５】
格納部１４が管理単位情報を格納することにより、時間情報算出部１２２は、格納部１４が格納するグラフデータを参照し、受け付けた条件を満たすレコード数を全てカウントすることなく、おおよそのレコード数を取得することができる。このため、次ステップにおける時間情報の算出までの処理を高速化することができる。
【００３６】
ステップＳ１０４において、時間情報算出部１２２は、取得したレコード数情報から、時間情報を算出する（Ｓ１０４）。
【００３７】
時間情報は、レコード数と、１レコードあたりの時間情報（単位時間情報と呼ぶ）とに基づいて求めてよい。例えば、１レコードあたりの単位時間情報は、１レコードあたりのグラフの描画に要する時間、１レコードあたりのグラフの生成に要する時間、１レコードあたりのグラフデータの転送に要する時間、１レコードあたりのグラフデータの取得に要する時間、あるいは、これらの組合せに基づいて算出されてもよい。
【００３８】
時間情報算出部１２２は、予め定められた単位時間情報を保持しており、取得されたレコード数情報と、予め保持している単位時間情報とに基づいて、時間情報を算出してよい。
【００３９】
また、時間情報は、データサイズ（例えば、バイト数等）と、単位データサイズあたりの単位時間情報とに基づいて、算出されても良い。この場合、単位時間情報は、１データサイズあたり（例えば、１バイトあたり）で定めておけばよい。
【００４０】
本実施形態において、時間情報算出部１２２は、取得したレコード数情報と、単位時間情報との乗算により、時間情報を算出する。例えば、条件受付部１２１が条件Ａを受け付けた場合、時間情報算出部１２２は、取得したレコード数情報「１１４（＝４２＋６０＋１２）」と、単位時間情報（１レコードあたり１０ミリ秒とする）とを乗算し、時間情報「１１４０ミリ秒（１１４レコード×１０ミリ秒）」を得る。
【００４１】
時間情報算出部１２２は、算出した時間情報を、時間情報表示部１３１に供給する。
【００４２】
ステップＳ１０５において、時間情報表示部１３１は、時間情報を表示する（Ｓ１０５）。本実施形態において、時間情報表示部１３１は、図１に示す表示画面１００の時間情報表示画面１０２に、時間情報を表示する。
【００４３】
例えば、条件受付部１２１が条件Ａを受け付けた場合、時間情報表示部１３１は、時間情報算出部１２２が算出した時間情報「１１４０ミリ秒」を表示する。
【００４４】
ステップＳ１０６において、指示入力部１１２は、ユーザーからの指示により、指示入力部１１２は、ユーザーの指定により、グラフの表示の指示を入力する（Ｓ１０６）。本実施形態では、図１に示す表示画面１００の表示指示ボタン１０３を、ユーザーがマウスやキーボード等の入力デバイス８で指定することにより、指示を入力する。
【００４５】
なお、本ステップ以降は、グラフの表示の指示が入力された場合を説明する。グラフの表示の指示が入力されない場合は、ステップＳ１０５で待機状態となるか、ステップＳ１０１に遷移し、新たに条件が入力されることになる。
【００４６】
ステップＳ１０７において、指示受付部１２３は、指示入力部１１２で入力された、グラフの表示の指示を受け付ける（Ｓ１０７）。指示受付部１２３は、受け付けた指示を、グラフ生成部１２４に供給する。
【００４７】
ステップＳ１０８において、グラフ生成部１２４は、格納部１４に格納されたグラフデータから、条件受付部１２１が受け付けた条件に対応するレコードを取得し、取得したレコードに基づくグラフを生成する（Ｓ１０８）。
【００４８】
例えば、条件受付部１２１が条件Ａを受け付けた場合、グラフ生成部１２４は、条件受付部１２１がグラフの表示の指示を受け付けたことをトリガとして、格納部１４に格納されたグラフデータから、時系列パラメータが「３０秒」〜「１３０秒」の範囲に含まれるレコードを取得する。
【００４９】
図５の例では、（時系列パラメータ，数値パラメータ）が、（１，１０）、（２，２１）、（３，３１）、（５，１５）、（８，５２）、（１０，２３）、（１２，２５）、（１４，１）、（１９，４４）、（２０，１２）、（２４，２）、（３０，１１）、・・・、（１３０，４４）が、条件Ａを満たすレコードである。グラフ生成部１２４は、これらのレコードを格納部１４から取得し、時系列パラメータと数値パラメータとの対応関係を示すグラフを生成する。
【００５０】
グラフ生成部１２４は、生成したグラフをグラフ表示部１３２に供給する。
【００５１】
ステップＳ１０９において、グラフ表示部１３２は、供給されたグラフを表示する（Ｓ１０９）。図８は、条件受付部１２１が条件Ａを受け付けた場合において、グラフ表示部１３２が表示するグラフの一例図である。本実施形態において、グラフ表示部１３２は、図１に示す表示画面１００のグラフ表示画面１０４に散布図のグラフを表示する。
【００５２】
以上、グラフ表示システム１の処理について説明した。
【００５３】
（変形例１）
本実施形態の管理データは、管理単位情報と、レコード数情報とを対応付けたものであるとして説明したが、管理単位情報と、レコードのデータサイズとを対応付けたものであっても構わない。
【００５４】
（変形例２）
本実施形態の時間情報は、時間のほかに、レコードの数、レコードの量、レコードのサイズ、レコードの規模、あるいは、これらの値を用いて求まるものであってもよい。
【００５５】
また、上記の値について、少なくとも１つの閾値を予め設定しておき、当該値が当該閾値以下であるか否かをユーザーが識別可能な情報を、時間情報表示部１３１が時間情報として表示しても構わない。
【００５６】
すなわち、本実施形態の時間情報は、グラフの表示までに要する時間に関わるものであれば如何なるものであってもよい。
【００５７】
（変形例３）
時間情報表示部１３１は、時間情報算出部１２２が算出した時間情報をそのまま表示しなくてもよい。例えば、「１．１４秒」のように単位を変更して表示たり、「１秒」のように、小数点以下を四捨五入して表示しても構わない。すなわち、時間情報の表示の仕方は、装置の仕様等に合わせて、適宜変更してよい。
【００５８】
（変形例４）
本実施形態における条件は、格納部１４に格納されたグラフデータの第１の要素において、一又は複数の時系列パラメータを指定するものであるとして説明した。しかしながら、さらに、変形例２に示したようなグラフの種類を指定するための条件も追加して構わない。
【００５９】
この場合、時間情報算出部１２２は、予め定められた単位時間情報と、各グラフの種類とを対応付けた情報を保持しており、取得されたレコード数情報と、予め保持している単位時間情報と、受け付けたグラフの種類を指定する条件とに基づいて、時間情報を算出してよい。
【００６０】
（変形例５）
本実施形態のグラフ表示システム１は、図７に示すように、指示受付部１２３がグラフの表示の指示を受け付けた（Ｓ１０７）後に、グラフ生成部１２４がグラフを生成する場合を説明したが、グラフ生成部１２４は、条件受付部１２１が条件を受け付けた時点からグラフの生成を開始しても構わない。この場合、グラフ生成部１２４は、指示受付部１２３がグラフの表示の指示を受け付けた場合には、グラフの生成を継続し、条件受付部１２１が別の条件を受け付けた場合に、グラフの生成を中止する。
【００６１】
（変形例６）
本実施形態では、格納部１４に格納されたグラフデータからグラフを作成する例について説明したが、格納部１４はデータベース（ＤＢ）であり、グラフ表示システム１は、ＤＢである格納部１４から取得した情報を表示しても構わない。この場合、格納部１４に格納されるグラフデータは、検索対象と、当該検索対象対応付けられた付帯情報（例えば、キーワード等）とを含む。また、格納部１４が格納する管理データは、付帯情報が共通する検索対象を管理単位としてよい。この場合、管理データは、付帯情報とレコード数とを対応付けたものとなる。
【００６２】
（変形例７）
本実施形態では、グラフ表示装置２は情報処理端末であり、入力部１１と、処理部１２と、表示部１３とを備え、サーバ３が格納部１４を備えるとして説明したが、グラフ表示装置２が入力部１１と、表示部１３とを備え、サーバ３が処理部１２を備えても構わない。
【００６３】
あるいは、サーバ３を介さず、グラフ表示装置２が入力部１１と、処理部１２と、表示部１３と、格納部１４とを備えても構わない。
【００６４】
本実施形態によれば、グラフの作成や表示に相当の時間が掛かる場合であっても、ユーザーに対して、グラフの表示に要する時間に関する時間情報を示すことができるため、ユーザーの心理的負荷を軽減することができる。特に取り扱うデータ量が膨大なビッグデータにおいては、グラフの表示に掛かる時間も数時間から数十時間となる場合もあるため、本実施形態は有用である。
【００６５】
以上、第１の実施形態について説明した。
【００６６】
（第２の実施形態）
第２の実施形態に係るグラフ表示システム２００は、グラフの表示に用いるグラフデータがプログラム構造データである点が、第１の実施形態の場合と異なる。
【００６７】
本実施形態のプログラムとは、情報処理装置に対する命令を記述したものであり、例えば、Ｃ言語、ＪＡＶＡ（登録商標）言語等のプログラミング言語により記述されたソースコード等である。
【００６８】
図９は、プログラムの一例図である。図９に示すプログラム（ソースコード）は、複数のプログラム構造単位を含む。プログラム構造単位とは、プログラムにおける所定の連続した区間を表すものである。例えば、プログラム構造単位は、ファイル、関数、ループ、条件分岐、スコープ等であってよい。
【００６９】
すなわち、プログラムは、複数のプログラム構造単位で構成される階層構造を有しており、ある１つのプログラム構造単位は、別の１つのプログラム構造単位に包含されるか包含されないかのいずれかである。
【００７０】
図９の例では、ファイル「ＦｉｌｅＡ」は、関数「ＦｕｎｃＡ」を包含する。関数「ＦｕｎｃＡ」は、ループ「ＬｏｏｐＡ」を包含する。このループ「ＬｏｏｐＡ」を特定する記載を、「ＦｉｌｅＡ：ＦｕｎｃＡ：ＬｏｏｐＡ」と表すこととする。すなわち、図９の例では、「ＦｉｌｅＡ：ＦｕｎｃＡ：ＬｏｏｐＡ」は成り立つが、「ＦｉｌｅＡ：ＦｕｎｃＢ：ＬｏｏｐＡ」は成り立たない。このように、プログラムは、プログラム構造単位同士の包含関係を表している。この「ＦｉｌｅＡ：ＦｕｎｃＡ：ＬｏｏｐＡ」等というプログラム構造単位同士の包含関係を示すデータを、「プログラム構造データ」と呼ぶ。
【００７１】
図１０は、グラフ表示システム２００の機能ブロック図である。グラフ表示システム２００は、前実施形態のグラフ表示システム１と比較して、格納部１４が格納部２４に置き換わる。格納部２４は、前実施形態の格納部１４と同様に、グラフの生成に用いるグラフデータ、及び、管理データを格納している。しかしながら、格納部２４は、当該グラフデータとして、プログラム構造データを格納している。
【００７２】
図１１は、格納部２４が格納するグラフデータを表す一例図である。図１１に示すように、格納部２４は、第１の要素と、第２の要素とを対応付けたグラフデータを格納する。第１の要素は、複数のプログラム構造データを含む。すなわち、属性がプログラム構造である。第２の要素は、各プログラム構造データに対応する数値データ（本例では、実行時間（ミリ秒）とする）を含む。すなわち、属性が実行時間である。例えば、図１１では、「ＦｉｌｅＡ：ＦｕｎｃＡ：ＬｏｏｐＡ」で表されるループ「ＬｏｏｐＡ」に対応する処理の実行時間が１０ミリ秒であることを示している。ここで、本実施形態の数値データとは、プログラム構造データに対応する数字で表されるデータであれば如何なるものであっても構わない。例えば、本実施形態の数値データには、実行時間、メモリアクセス時間、メモリアクセス回数、命令実行回数等がある。
【００７３】
なお、本実施形態では、１つのプログラム構造データと、当該プログラム構造データに対応する実行時間との組をレコードと呼ぶ。
【００７４】
図１２は、格納部２４が格納する管理データを表す一例図である。前実施形態と同様に、格納部２４は、管理単位情報と、レコード数情報とを対応付けて格納する。管理単位は所定の規則に従って定められる。本実施形態では、階層構造における末端のデータ構造単位より、上の階層のデータ構造単位を特定するプログラム構造データを管理単位とする。レコード数情報は、管理単位に含まれるプログラム構造データに対応するレコードの個数を表す。図１２の例では、「ＦｉｌｅＡ：ＦｕｎｃＡ」という管理単位には、「６２」個のレコード（プログラム構造データ）が存在することを示している。
【００７５】
図１３は、グラフ表示システム１の処理を表すフローチャートである。基本的な処理の流れは、前実施形態と同様であるが、受け付ける条件や、格納部２４に格納されるグラフデータ及び管理データが前実施形態と異なるため、以下に例を挙げて説明する。なお、本実施形態の場合の表示画面は、前実施形態の表示画面１００と同様である。
【００７６】
ステップＳ２０１において、条件入力部１１１は、ユーザーの指定により、表示すべきグラフに関する条件を入力する（Ｓ２０１）。本実施形態における条件は、格納部２４に格納されたグラフデータの第１の要素において、一又は複数のプログラム構造データを指定するものである。例えば、本実施形態の条件は、特定のプログラム構造単位に含まれる、他の一又は複数のプログラム構造単位を指定するものであってよい。特定のプログラム構造単位の下位の層に含まれる、全ての他のプログラム構造単位を指定するものであってよい。
【００７７】
本実施形態において、入力された条件は、図１に示す表示画面１００の条件入力画面１０１に表示される。
【００７８】
例えば、条件入力部１１１は、第１の要素の中で、「ＦｉｌｅＡに包含される」プログラム構造データを指定する条件を入力する。この条件を以降、条件Ｂと呼ぶ。
【００７９】
ステップＳ２０２において、条件受付部１２１は、入力された条件を受け付ける（Ｓ２０２）。条件受付部１２１は、受け付けた条件を、時間情報算出部１２２とグラフ生成部１２４とに供給する。
【００８０】
ステップＳ２０３において、時間情報算出部１２２は、格納部２４の管理データを参照し、受け付けた条件を満たす管理単位情報に対応するレコード数情報を取得する（Ｓ２０３）。
【００８１】
例えば、条件受付部１２１が条件Ｂを受け付けた場合、時間情報算出部１２２は、格納部２４の管理データを参照し、管理単位情報の中で、ＦｉｌｅＡに包含されることを示す管理単位を探索する。図１３の場合、管理単位の先頭が「ＦｉｌｅＡ：」となっている、「ＦｉｌｅＡ：ＦｕｎｃＡ」と、「ＦｉｌｅＡ：ＦｕｎｃＢ」とが、条件Ｂを満たす。
【００８２】
従って、時間情報算出部１２２は、「ＦｉｌｅＡ：ＦｕｎｃＡ」の管理単位に対応するレコード数「６２」と、「ＦｉｌｅＡ：ＦｕｎｃＢ」の管理単位に対応するレコード数「６０」とを取得する。
【００８３】
ステップＳ２０４において、時間情報算出部１２２は、取得したレコード数情報から、時間情報を算出する（Ｓ２０４）。
【００８４】
本実施形態の場合も前実施形態の場合と同様に、時間情報算出部１２２は、取得したレコード数情報と、単位時間情報との乗算により、時間情報を算出する。例えば、条件受付部１２１が条件Ｂを受け付けた場合、時間情報算出部１２２は、取得したレコード数情報「１１２（＝６２＋６０」と、単位時間情報（１レコードあたり１０ミリ秒とする）とを乗算し、時間情報「１１２０ミリ秒（１１２レコード×１０ミリ秒）」を得る。
【００８５】
時間情報算出部１２２は、算出した時間情報を、時間情報表示部１３１に供給する。
【００８６】
ステップＳ２０５において、時間情報表示部１３１は、時間情報を表示する（Ｓ２０５）。本実施形態において、時間情報表示部１３１は、図１に示す表示画面１００の時間情報表示画面１０２に、時間情報を表示する。
【００８７】
例えば、条件受付部１２１が条件Ｂを受け付けた場合、時間情報表示部１３１は、時間情報算出部１２２が算出した時間情報「１１２０ミリ秒」を表示する。
【００８８】
ステップＳ２０６において、指示入力部１１２は、ユーザーからの指示により、指示入力部１１２は、ユーザーの指定により、グラフの表示の指示を入力する（Ｓ２０６）。
【００８９】
なお、本実施形態においても、本ステップ以降は、グラフの表示の指示が入力された場合を説明する。グラフの表示の指示が入力されない場合は、ステップＳ２０５で待機状態となるか、ステップＳ２０１に遷移し、新たに条件が入力されることになる。
【００９０】
ステップＳ２０７において、指示受付部１２３は、指示入力部１１２で入力された、グラフの表示の指示を受け付ける（Ｓ２０７）。指示受付部１２３は、受け付けた指示を、グラフ生成部１２４に供給する。
【００９１】
ステップＳ２０８において、グラフ生成部１２４は、格納部２４に格納されたグラフデータから、条件受付部１２１が受け付けた条件に対応するレコードを取得し、取得したレコードに基づくグラフを生成する（Ｓ２０８）。
【００９２】
例えば、条件受付部１２１が条件Ｂを受け付けた場合、グラフ生成部１２４は、条件受付部１２１がグラフの表示の指示を受け付けたことをトリガとして、格納部１４に格納されたグラフデータから、プログラム構造データが「ＦｉｌｅＡ」に含まれるレコードを取得する。
【００９３】
図１１の例では、（プログラム構造データ，実行時間）が、（ＦｉｌｅＡ：ＦｕｎｃＡ：ＳｃｏｐｅＡ，１０）、（ＦｉｌｅＡ：ＦｕｎｃＡ：ＳｃｏｐｅＢ，２１）、（ＦｉｌｅＡ：ＦｕｎｃＡ：ＬｏｏｐＡ，３１）、・・・、（ＦｉｌｅＡ：ＦｕｎｃＢ：ＬｏｏｐＢ，１５）、（ＦｉｌｅＡ：ＦｕｎｃＢ：ＬｏｏｐＢ：ＬｏｏｐＣ，５２）、（ＦｉｌｅＡ：ＦｕｎｃＢ：ＬｏｏｐＢ：ＬｏｏｐＤ，２３）、・・・が、条件Ｂを満たすレコードである。グラフ生成部１２４は、これらのレコードを格納部２４から取得し、プログラム構造データと、実行時間との対応関係を示すグラフを生成する。
【００９４】
グラフ生成部１２４は、生成したグラフをグラフ表示部１３２に供給する。
【００９５】
ステップＳ２０９において、グラフ表示部１３２は、供給されたグラフを表示する（Ｓ２０９）。図１４は、条件受付部１２１が条件Ｂを受け付けた場合において、グラフ表示部１３２が表示するグラフの一例図である。本実施形態において、グラフ表示部１３２は、図１に示す表示画面１００のグラフ表示画面１０４に棒グラフを表示する。
【００９６】
以上で、グラフ表示システム１の処理について説明した。
【００９７】
（変形例１）
本実施形態では、格納部２４が格納するグラフデータにおいて、第１の要素は、複数のプログラム構造データを含み、第２の要素は、各プログラム構造データに対応する数値データを含むとして説明したがこれに限られない。例えば、第２の要素は、各プログラム構造データに対応する処理を実行したＣＰＵのコアを示す情報等の文字データであっても構わない。
【００９８】
図１５は、本変形例の格納部２４が格納するグラフデータの一例図である。本変形例では、第２の要素が、「ＣＰＵのコア情報」である点が、図１１の場合と異なる。すなわち、本例では、例えば、プログラム構想データ「ＦｉｌｅＡ：ＦｕｎｃＡ：ＳｃｏｐｅＡ」に対応する処理を実行したＣＰＵのコアが、「Ｃｏｒｅ４」であることを示している。なお、本変形例の管理データは、図１２と同様である。
【００９９】
この場合、グラフ生成部１２４は、受け付けた条件を満たすレコードを格納部２４から取得し、プログラム構造データと、ＣＰＵのコア情報との対応関係を示すグラフを生成する。
【０１００】
図１６は、条件受付部１２１が条件Ｂを受け付けた場合において、グラフ表示部１３２が表示するグラフの一例図である。本例におけるグラフは、各プログラム構造データと、実行するコアとの対応を色分けで示すマトリクスマップである。本実施形態において、グラフ表示部１３２は、図１に示す表示画面１００のグラフ表示画面１０４に当該マトリクスマップを表示する。
【０１０１】
（変形例２）
変形例１に加え、格納部２４が格納するグラフデータは、第３の要素をさらに含んでも構わない。例えば、第１の要素がプログラム構造データであり、第２の要素が数値データ（例えば、本実施形態で述べた実行時間）であり、第３の要素が文字データ（例えば、本実施形態の変形例１で述べたＣＰＵのコア情報）であってもよい。
【０１０２】
図１７は、本変形例における格納部２４が格納するグラフデータの一例図である。本変形例では、第３の要素として、「ＣＰＵのコア情報」で追加されている点が、図１５の場合と異なる。すなわち、本例では、例えば、プログラム構想データ「ＦｉｌｅＡ：ＦｕｎｃＡ：ＳｃｏｐｅＡ」に対応する処理の実行時間が「１０ミリ秒」であり、当該処理を実行したＣＰＵのコアが、「Ｃｏｒｅ４」であることを示している。なお、本変形例の管理データは、図１２と同様である。
【０１０３】
この場合、グラフ生成部１２４は、受け付けた条件を満たすレコードを格納部２４から取得し、プログラム構造データと、実行時間と、ＣＰＵのコア情報との対応関係を示すグラフを生成する。
【０１０４】
図１８は、条件受付部１２１が条件Ｂを受け付けた場合において、グラフ表示部１３２が表示するグラフの一例図である。本例におけるグラフは、各プログラム構造データと、実行するコアとの対応を色表示で示し、かつ、各プログラム構造データに対応する実行時間を色の濃度で示すヒートマトリクスマップである。色の濃度は、例えば、実行時間が長いほど濃くなるよう設定されていても良い。あるいは、所定の閾値以上か否かに応じて、濃度を分けてもよい。濃度を分けるための当該閾値は複数あっても構わない。本実施形態において、グラフ表示部１３２は、図１に示す表示画面１００のグラフ表示画面１０４に当該ヒートマトリクスマップを表示する。
【０１０５】
なお、前実施形態で述べた変形例は、本実施形態の場合も同様に実施することができる。
【０１０６】
本実施形態によれば、プログラムを作製する際に、グラフを用いて当該プログラムの実行状況の確認を行うことが可能な装置において、グラフの作成や表示に相当の時間が掛かる場合であっても、予めユーザーに対して、グラフの表示に要する時間に関する時間情報を示すことができるため、ユーザーの心理的負荷を軽減することができる。特に、取り扱うプログラム構造データが膨大なビックデータにおいては、グラフの表示に掛かる時間も数時間から数十時間となる場合もあるため、本実施形態は有用である。
【０１０７】
以上、第２の実施形態について説明した。
【０１０８】
上述した実施形態によれば、ユーザーにとって利便性の高いグラフ表示システムやグラフ表示装置を提供することができる。
【０１０９】
なお、上述した実施形態は、例として表示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１０】
１，２００・・・グラフ表示システム
２・・・グラフ表示装置
３・・・サーバ
４・・・ネットワーク
５・・・ＣＰＵ
６・・・ＲＯＭ
７・・・ＲＡＭ
８・・・入力デバイス
９・・・出力デバイス
１０・・・通信Ｉ／Ｆ
１１・・・入力部
１２・・・処理部
１３・・・表示部
１４，２４・・・格納部
１００・・・表示画面
１０１・・・条件入力画面
１０２・・・時間情報表示画面
１０３・・・表示指示ボタン
１０４・・・グラフ表示画面
１１１・・・条件入力部
１１２・・・指示入力部
１２１・・・条件入力部
１２２・・・時間情報算出部
１２３・・・指示受付部
１２４・・・グラフ生成部
１３１・・・時間情報表示部
１３２・・・グラフ表示部
【図１】
0006352753.tif 000002
【図２】
0006352753.tif 000003
【図３】
0006352753.tif 000004
【図４】
0006352753.tif 000005
【図５】
0006352753.tif 000006
【図６】
0006352753.tif 000007
【図７】
0006352753.tif 000008
【図８】
0006352753.tif 000009
【図９】
0006352753.tif 000010
【図１０】
0006352753.tif 000011
【図１１】
0006352753.tif 000012
【図１２】
0006352753.tif 000013
【図１３】
0006352753.tif 000014
【図１４】
0006352753.tif 000015
【図１５】
0006352753.tif 000016
【図１６】
0006352753.tif 000017
【図１７】
0006352753.tif 000018
【図１８】
0006352753.tif 000019