(57)【特許請求の範囲】
【請求項１】
プログラムの実行により発生するイベントの実行時間に関する実行時間情報を取得する取得部と、
前記イベントに対応するイベントオブジェクトを生成し、前記実行時間情報に基づいて複数の前記イベントオブジェクト間の区間に対応する区間オブジェクトを生成する生成部と、を備え、
前記生成部は、前記実行時間情報に規定された時間と実際に実行された前記イベントの実行時間とを比較することにより遅延が生じた前記イベントを判定し、前記遅延が生じた前記イベントに対応する前記イベントオブジェクトの前に位置する前記区間オブジェクトが識別可能に表示されるように表示情報を生成する
プログラム情報生成システム。
【請求項２】
前記取得部は、複数の前記イベント間の依存関係を示す依存関係情報を更に取得し、
前記生成部は、前記依存関係を有する複数の前記イベントから構成される依存経路に含まれる前記イベントオブジェクトの表示方式と前記依存経路に含まれない前記イベントオブジェクトの表示方式とが異なるように前記表示情報を生成する
請求項１に記載のプログラム情報生成システム。
【請求項３】
前記取得部は、所定の条件に適合する前記イベントである特定イベントを特定する特定イベント情報を更に取得し、
前記生成部は、前記特定イベントに対応する前記イベントオブジェクトが識別可能に表示されるように前記表示情報を生成する
請求項１又は２に記載のプログラム情報生成システム。
【請求項４】
プログラムの実行により発生する複数のイベントのうち並列的に実行される複数の前記イベントである特定イベントを特定する特定イベント情報を取得する取得部と、
前記イベントに対応するイベントオブジェクトを生成し、前記特定イベント情報に基づいて前記特定イベントに対応する前記イベントオブジェクトが識別可能に表示されるように表示情報を生成する生成部と
を備えるプログラム情報生成システム。
【請求項５】
プログラムの実行により発生する複数のイベント間の依存関係を示す依存関係情報と、ユーザにより選択された前記イベントである選択イベントを特定する選択情報とを取得する取得部と、
前記依存関係情報と前記選択情報とに基づいて前記依存関係を有する複数の前記イベントから構成され前記選択イベントを含む依存経路が識別可能に表示されるように表示情報を生成する生成部と、を備え、
前記依存経路は、少なくとも２つの前記選択イベントを含む
プログラム情報生成システム。
【請求項６】
前記表示情報に基づいて前記プログラムの実行結果を示す表示画像が表示されるように表示部を制御する表示制御部、
を更に備える請求項１〜５のいずれか１項に記載のプログラム情報生成システム。
【請求項７】
前記表示部を備える情報処理端末と、前記情報処理端末とネットワークを介して接続されたサーバとを備え、
前記表示情報を生成するための処理の少なくとも一部が前記サーバにより行われ、
前記表示画像が前記情報処理端末の前記表示部に表示される
請求項６に記載のプログラム情報生成システム。
【請求項８】
コンピュータを利用してプログラムの実行結果を示す情報を生成する方法であって、
プログラムの実行により発生するイベントの実行時間に関する実行時間情報を取得する工程と、
前記イベントに対応するイベントオブジェクトを生成する工程と、
前記実行時間情報に基づいて複数の前記イベントオブジェクト間の区間に対応する区間オブジェクトを生成する工程と、
前記実行時間情報に規定された時間と実際に実行された前記イベントの実行時間とを比較することにより遅延が生じた前記イベントを判定する工程と、
前記遅延が生じた前記イベントに対応する前記イベントオブジェクトの前に位置する前記区間オブジェクトが識別可能に表示されるように表示情報を生成する工程と
を備えるプログラム情報生成方法。
【請求項９】
コンピュータに、
プログラムの実行により発生するイベントの実行時間に関する実行時間情報を取得する処理と、
前記イベントに対応するイベントオブジェクトを生成する処理と、
前記実行時間情報に基づいて複数の前記イベントオブジェクト間の区間に対応する区間オブジェクトを生成する処理と、
前記実行時間情報に規定された時間と実際に実行された前記イベントの実行時間とを比較することにより遅延が生じた前記イベントを判定する処理と、
前記遅延が生じた前記イベントに対応する前記イベントオブジェクトの前に位置する前記区間オブジェクトが識別可能に表示されるように表示情報を生成する処理と
を実行させるためのプログラム情報生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、プログラムの実行状況を示す情報を生成するプログラム情報生成システム、方法、及びプログラムに関する。
【背景技術】
【０００２】
プログラムの開発等において、プログラムの実行状況を客観的に把握できるようにする支援ツールが利用されている。例えば、プログラムの実行状況を示す画像を生成し、これをコンピュータのディスプレイ等を通してユーザに提供する装置がある。このような装置では、例えば、プログラムの全実行状況のアクティビティを示す領域と、特定範囲の詳細な実行状況を示す領域とを表示し、ユーザが全実行状況を示す領域から特定範囲を指定できるようにする装置がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第７６９８６８６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のような従来の支援ツールでは、例えばプログラムの実行により大量のイベントが発生する場合に、実行状況を示す画像が煩雑となり、当該画像から必要な情報を得ることが困難となる場合がある。
【０００５】
そこで、以下の実施形態では、プログラムの実行状況を示す画像の視認性を向上させることを目的とする。
【課題を解決するための手段】
【０００６】
実施形態のプログラム情報生成システムは、プログラムの実行により発生するイベントの実行時間に関する実行時間情報を取得する取得部と、前記イベントに対応するイベントオブジェクトを生成し、前記実行時間情報に基づいて複数の前記イベントオブジェクト間の区間に対応する区間オブジェクトを生成する生成部と、を備え、前記生成部は、前記実行時間情報に規定された時間と実際に実行された前記イベントの実行時間とを比較することにより遅延が生じた前記イベントを判定し、前記遅延が生じた前記イベントに対応する前記イベントオブジェクトの前に位置する前記区間オブジェクトが識別可能に表示されるように前記表示情報を生成する。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態にかかるプログラム情報生成システムの構成を例示する図である。
【図２】情報処理端末及びサーバのハードウェア構成を例示するブロック図である。
【図３】プログラム情報生成システムの機能的な構成を示すブロック図である。
【図４】軸情報を例示する図である。
【図５】イベント情報を例示する図である。
【図６】依存関係情報を例示する図である。
【図７】選択情報を例示する図である。
【図８】特定イベント情報を例示する図である。
【図９】生成部の機能的な構成を例示するブロック図である。
【図１０】プログラム情報生成システムにおける処理を示すフローチャートである。
【図１１】初期状態の表示画像を例示する図である。
【図１２】選択イベントに対応するイベントオブジェクトの表示方式が変更された状態の表示画像を例示する図である。
【図１３】２つのイベントオブジェクトが選択された場合の表示画像を例示する図である。
【図１４】３つのイベントオブジェクトが選択された場合の表示画像を例示する図である。
【図１５】１つのイベントオブジェクトが選択された場合の表示画像を例示する図である。
【図１６】ロス区間に対応する区間オブジェクトが表示された状態の表示画像を例示する図である。
【図１７】並列的に実行される特定イベントに対応するイベントオブジェクトの表示方式を変更した場合の表示画像を例示する図である。
【図１８】クリティカルパスを構成する特定イベントに対応するイベントオブジェクトの表示方式を変更した場合の表示画像を例示する図である。
【図１９】既に設定された依存経路に含まれない２つのイベントオブジェクトを新たに選択した場合の表示画像を例示する図である。
【発明を実施するための形態】
【０００８】
（第１の実施形態）
図１は、第１の実施形態にかかるプログラム情報生成システム１の構成を例示する図である。プログラム情報生成システム１は、情報処理端末２及びサーバ３を含む。情報処理端末２とサーバ３とはインターネット等のネットワーク４を介して接続されている。情報処理端末２は、ユーザが操作可能な情報処理装置であり、例えばパーソナルコンピュータ、タブレット等である。サーバ３は、情報処理端末２に表示される画像を生成するための処理の少なくとも一部を行う。なお、同図においては情報処理端末２及びサーバ３がそれぞれ１つずつ描かれているが、情報処理端末２及びサーバ３はそれぞれ複数であってもよい。
【０００９】
図２は、情報処理端末２及びサーバ３のハードウェア構成を例示する図である。情報処理端末２及びサーバ３は、通常のコンピュータに用いられる構成を有し、ＣＰＵ（Central  Processing  Unit）５、ＲＯＭ（Read  Only  Memory）６、ＲＡＭ（Random  Access  Memory）７、入力デバイス８、出力デバイス９、及び通信Ｉ／Ｆ１０を含む。ＣＰＵ５は、ＲＯＭ６等に記憶された制御プログラムに従ってＲＡＭ７をワーキングエリアとして所定の演算処理を行う。入力デバイス８は、外部から情報を入力するためのデバイスであり、例えばキーボード、マウス、タッチパネル等である。出力デバイス９は、内部で生成した情報を外部に出力するためのデバイスであり、例えばディスプレイ、プリンタ等である。通信Ｉ／Ｆ１０は、ネットワーク４を介して外部の装置との間で情報の送受信を可能にするデバイスである。
【００１０】
図３は、プログラム情報生成システム１の機能的な構成を示すブロック図である。プログラム情報生成システム１は、取得部１１、生成部１２、及び表示制御部１３を含む。
【００１１】
取得部１１は、プログラムの実行状況を示す画像を生成するために必要な情報を取得する。当該プログラムは、検査対象となるプログラムを意味し、上記ＣＰＵ５を制御するための制御プログラムとは異なる。以下、単に「プログラム」と表記した場合は、検査対象となるプログラムを表すものとする。取得部１１は、情報処理端末２又はサーバ３のＣＰＵ５、ＲＯＭ６、ＲＡＭ７、入力デバイス８等を利用して構成される。
【００１２】
プログラムは、情報処理装置に対する命令を記述したものであり、例えばＣ言語、ＪＡＶＡ（登録商標）言語等のプログラミング言語により記述されたソースコード等である。プログラムが実行されることによりイベントが発生する。イベントは、プログラムの実行により発生する処理の単位であり、例えば下記のものが挙げられる。なお、イベントはタスクと称される場合がある。また、１つのイベントが複数のイベントを包含してもよい。例えば、関数の１回の実行を表す「イベント１」がその実行内にメモリアクセス、命令実行等を表す複数のイベントを含む場合がある。
・関数、ループ、条件分岐等のプログラムの構成単位
・メモリアクセス
・命令実行
・スレッド生成
・同期処理
・電子回路等の計算資源で実行される処理
【００１３】
図４〜図８は、取得部１１により取得される情報を例示している。当該情報には、軸情報５０、イベント情報６０、依存関係情報７０、選択情報８０、及び特定イベント情報９０が含まれる。
【００１４】
図４は、軸情報５０を例示する図である。軸情報５０は、出力デバイス９（例えば情報処理端末２のディスプレイ等）に表示されるプログラムの実行状況を示す画像（後述する図１１〜図１９に示す表示画像１００）の枠取りを設定するための情報である。枠取りとは、プログラムの実行状況を示す画像の内容を表示するために必要な領域であり、例えば矩形状の画像の縦軸及び横軸の長さ等である。軸情報５０は、時間軸情報５１及び属性軸情報５２を含む。時間軸情報５１は、表示画像１００の横軸を設定するものであり、出力デバイス９の最小描画単位当たりの期間と描画期間とを含む。本例では、最小描画単位当たりの期間が「２」であり、描画期間が「０」から「９００」であることが示されている。属性軸情報５２は、表示画像１００の縦軸を設定するものであり、要素名と表示位置とを含む。本例では、「ｃｏｒｅ０」から「ｃｏｒｅ４」までの５つの要素があり、例えば「ｃｏｒｅ０」の表示位置は「５０」であることが示されている。当該要素名は、例えばイベントに関連するハードウェア等を示し、本例ではイベントを実行するプロセッサコアを表している。「５０」とは、出力デバイス９の縦方向の所定位置を示す値である。なお、本例とは逆に横軸を属性軸、縦軸を時間軸としてもよい。
【００１５】
図５は、イベント情報６０を例示する図である。イベント情報６０は、イベント毎に実行時間及び属性に関する情報が設定された情報である。イベント情報６０は、識別情報６１、実行時間情報（開始時刻情報６２及び期間情報６３）、及び属性情報６４を含む。本例では、例えば識別情報６１として「１」が割り当てられたイベントは時刻「０」から期間「４０」が経過するまでの間、「ｃｏｒｅ０」により実行されることが示されている。
【００１６】
なお、イベント情報６０は、上記に限られるものではなく、例えば下記情報を含んでもよい。
・実行トレース情報
・プログラムの静的情報
・プログラムの実行環境情報
・ハードウェアの実行情報
・クリティカルパスのイベントであるか否かを示す情報
【００１７】
実行トレース情報とは、プログラム実行時に取得可能な実行時の状況を示す情報であり、例えば下記情報が挙げられる。
・イベントを実行したプロセッサコアの情報
・イベントを実行したハードウェア資源の情報
・イベントを実行させた命令の情報
・イベントにより実行されたメモリアクセスの情報
・イベントにより実行された関数コールの回数
・イベント内の変数の値
・イベントがループイタレーションである場合において何回目のイタレーションであるかを示す情報
・イベントが割り込み処理であるかを示す情報
【００１８】
プログラムの静的情報とは、プログラム実行前に取得可能な情報であり、例えば下記情報が挙げられる。
・プログラムのソースコード
・ソースコード管理システムから得られる静的な情報
・ソースコード上の位置情報
・プログラムの構造情報
・ソースコードのコンパイル情報
・ソースコードのバージョン情報
・プログラムがカーネルプログラムであるかを示す情報
・プログラムがユーザプログラムであるかを示す情報
【００１９】
プログラムの実行環境情報とは、プログラムを実行した際の環境に関する情報であり、例えば下記情報が挙げられる。
・プロセッサコア名
・サーバ名
・ハードウェア情報
・サーバの仕様情報
【００２０】
また、実行時間情報は上記に限られるものではなく、例えば下記情報を含んでもよい。
・開始時刻と終了時刻
・期間と終了時刻
【００２１】
開始時刻、終了時刻、及び期間は、例えば下記情報であってもよい。
・プロセッサ時刻
・プロセッサ時刻に基づいて生成された時間情報
・ハードウェア時刻
・ハードウェア時刻に基づいて生成された時間情報
【００２２】
図６は、依存関係情報７０を例示する図である。依存関係情報７０は、互いに依存関係を有するイベントを特定する情報である。依存関係とは、連続して実行される複数のイベントの実行順序を示すものである。本例では、例えば「１，３」は、イベント「１」が完了した後にイベント「３」が実行されることが示されている。また、「３，５」、「３，６」、及び「３，７」は、イベント「３」が完了すると、イベント「５，６，７」が並列的に実行されることを示している。また、「５，１０」、「６，１０」、及び「７，１０」は、イベント「５，６，７」の全てが完了するまでイベント「１０」が実行されないことを示している。本例では同様に３０個の依存関係が示されている。
【００２３】
なお、依存関係情報７０は、上記に限られるものではなく、例えば下記情報を含んでもよい。
・依存元と依存先とを明示する情報
・データの依存関係を示す情報
・制御の依存関係を示す情報
・ハードウェア資源の利用順序を示す情報
【００２４】
図７は、選択情報８０を例示する図である。選択情報８０は、ユーザが選択したイベントを特定する情報である。イベントの選択は、ユーザによる情報処理端末２の操作により行うことができる。例えば、情報処理端末２のディスプレイに表示された後述する表示画像１００中のイベントを示す画像をマウス、タッチパネル等を利用して指定したり、キーボードを操作してイベントに割り当てられた番号を入力したりすることにより行うことができる。また、イベントの選択は、ユーザによる手動操作に限られるものではなく、予め設定した条件を満たすイベントが自動的に選択されるようにしてもよい。本例では、３つのイベント「２，８，２２」が選択された場合、２つのイベント「１，１８」が選択された場合、及び１つのイベント「１」が選択された場合が示されている。
【００２５】
図８は、特定イベント情報９０を例示する図である。特定イベント情報９０は、所定の条件に適合するイベントを特定する情報である。所定の条件とは、例えばプログラムのスムーズな実行を妨げる要因等である。本例では、イベント「１７，１９，２０，２１」が所定の条件を満たすことが示されている。特定イベントに該当するものとしては、例えば下記イベントが挙げられる。
・時間的に重複して並列的に実行される複数のイベント
・クリティカルパスを構成するイベント
・実行時間情報（開始時刻情報６２及び期間情報６３）に基づいて特定されるイベント
・属性情報６４に基づいて特定されるイベント
【００２６】
クリティカルパスとは、全てのイベントが完了するまでの所要時間が最大となる経路である。
【００２７】
実行時間情報に基づいて特定されるイベントとしては、例えば下記イベントが挙げられる。また、これらのイベントが組み合わされてもよい。
・開始時刻が所定時刻より後であるイベント
・開始時刻が所定時刻より先のイベント
・開始時刻が所定時刻と一致するイベント
・開始時刻が所定時刻と一致しないイベント
・終了時刻が所定時刻より後であるイベント
・終了時刻が所定時刻より先であるイベント
・終了時刻が所定時刻と一致するイベント
・終了時刻が所定時刻と一致しないイベント
・実行期間が所定値より大きいイベント
・実行期間が所定値より小さいイベント
・実行期間が所定値と一致するイベント
・実行期間が所定値と一致しないイベント
【００２８】
属性情報６４に基づいて特定されるイベントとしては、例えば下記イベントが挙げられる。また、これらのイベントが組み合わされてもよい。
・実行時のメモリアクセス回数に基づいて特定されるイベント
・実行時のメモリアクセス先のメモリアドレスに基づいて特定されるイベント
・加算、減算等のＣＰＵの処理で特定されるイベント
・ソースコード上の場所、範囲等で特定されるイベント
・関数、ループ等のプログラムの構成情報で特定されるイベント
・ループの回転数に基づいて特定されるイベント
・実行されたコアの情報に基づいて特定されるイベント
・ハードウェアの実行情報に基づいて特定されるイベント
【００２９】
取得部１１により取得される上記情報は、情報処理端末２、サーバ３、又は他の情報処理装置の機能を利用して取得、生成、及び記憶される。当該情報の取得、生成、及び記憶の方式は、使用される装置及びネットワークの形態、機能等に応じて適宜設計されるべきものである。例えば、プログラムは、ＣＤ−ＲＯＭ、ＤＶＤ、フラッシュメモリ等の可搬記憶媒体から取得されてもよいし、ネットワーク４を介して取得されてもよい。また、当該情報は、ユーザの入力作業により入力されてもよいし、ネットワーク４に接続された所定の記憶装置に予め記憶されている情報を読み出してもよいし、プログラムの内容を自動的に解析するシステムを利用して生成してもよい。このように、取得部１１は、必要な情報を後述する生成部１２に受け渡すことができれば、様々な形態で構成できるものである。
【００３０】
図９は、生成部１２の機能的な構成を示すブロック図である。生成部１２は、依存経路処理部２１、区間処理部２２、特定イベント処理部２３、及び表示情報生成部２４を含む。生成部１２は、情報処理端末２又はサーバ３のＣＰＵ５、ＲＯＭ６、ＲＡＭ７、入力デバイス８等を利用して構成される。
【００３１】
依存経路処理部２１は、依存関係情報７０、選択情報８０等に基づいて、ユーザが選択した選択イベントを含む依存経路を判定する。依存経路とは、互いに依存関係を有する複数のイベントから構成される経路である。例えば、依存関係情報７０に基づいて「１」から「２２」に至るまでの複数の依存経路を判定した後、それらの中から選択情報８０に規定された選択イベント（例えば「１」と「１８」）含む依存経路を抽出することにより、選択イベントを含む依存経路を判定することができる。
【００３２】
区間処理部２２は、実行時間情報（開始時刻情報６２及び期間情報６３）、依存関係情報７０等に基づいて、依存関係を有する複数のイベント間の区間に関する情報を取得する。区間に関する情報とは、連続して実行される２つのイベントにおいて前に実行されるイベントの終了時から後に実行されるイベントの開始時までの時間間隔等である。例えば、依存関係情報７０に基づいてイベント「１」の終了後にイベント「３」が実行されることがわかる。そして、実行時間情報に基づいてイベント「１」の終了時刻（０＋４０＝４０）とイベント「３」の開始時刻（６０）とを判定することができ、当該開始時刻と終了時刻との差から時間間隔（２０）を導き出すことができる。更に、このように判定された時間間隔と実際に実行されたイベントの時間間隔とを比較すること、開始時刻情報６２に規定された時刻とイベントの実際の開始時刻とを比較すること等により、イベントの遅延を検出することができる。
【００３３】
特定イベント処理部２３は、特定イベント情報９０等に基づいて、所定の条件に適合する特定イベントを判定する。特定イベントとは、上述したように、プログラムのスムーズな実行を妨げる要因を有するイベント等であり、例えば時間的に重複して並列的に実行される複数のイベント、クリティカルパスを構成するイベント等である。
【００３４】
表示情報生成部２４は、依存経路処理部２１、区間処理部２２、及び特定イベント処理部２３による処理結果に基づいて、プログラムの実行状況を視覚的に表現する表示画像１００を生成するための表示情報を生成する。表示情報生成部２４は、後述するように、選択イベントを含む依存経路、所定の区間、特定イベント等が識別可能に、すなわち視認しやすいように特徴付けられて表示されるように表示情報を生成する。
【００３５】
表示制御部１３は、生成部１２（表示情報生成部２４）により生成された表示情報に基づいて表示画像１００を生成し、表示画像１００を出力デバイス９（情報処理端末２のディスプレイ等）に表示させる。表示制御部１３は、情報処理端末２及びサーバ３のＣＰＵ５、ＲＯＭ６、ＲＡＭ７、出力デバイス９等を利用して構成される。
【００３６】
以下に、上記構成のプログラム情報生成システム１により表示画像１００を生成する処理を例示する。図１０は、プログラム情報生成システム１における処理を示すフローチャートである。図１１〜図１９は、表示画像１００を例示する図である。
【００３７】
図１０に示すように、先ず軸情報５０及びイベント情報６０が取得される（Ｓ１）。軸情報５０及びイベント情報６０に基づいて表示画像１００を構成する各要素の表示位置、表示サイズ、及び表示方式を設定するように表示情報が生成される（Ｓ２）。当該表示情報に基づいて表示画像１００が生成され、当該表示画像１００が情報処理端末２の出力デバイス９に表示される（Ｓ３）。
【００３８】
図１１は、ステップＳ３において表示される初期状態の表示画像１００を例示している。本例における表示画像１００はガントチャートである。表示画像１００の横軸は時間軸であり、縦軸はイベントに関連するハードウェア等を示す属性軸である。これらの時間軸及び属性軸は、上述したように図４に示す軸情報５０に基づいて設定される。
【００３９】
生成部１２は、軸情報５０とイベント情報６０とに基づいて時間軸オブジェクトと属性軸オブジェクトとを生成する。本実施形態では、時間軸情報５１に基づいて最小描画単位当たりの期間を「２」に設定し、描画範囲を「０」から「９００」までに設定し、一定区間ごとに時刻情報のラベルを表示することにより時間軸オブジェクトを生成する。本例における時刻情報のラベルは「１００」、「３００」、「５００」、「７００」、「９００」である。また、生成部１２は、属性軸情報５２の属性軸名を属性軸のラベルとして設定し、ラベルを表示位置情報に基づいて配置することにより属性軸オブジェクトを生成する。例えば、ラベル「ｃｏｒｅ０」を表示位置「５０」に配置する。
【００４０】
表示画像１００には、矩形状のイベントオブジェクト１０１Ａ，１０１Ｂ，１０１Ｃ，〜（以下、１０１Ａ，１０１Ｂ，１０１Ｃ，〜を総括して表現することが適当な場合には１０１と表記する）が表示されている。本例では、各イベントオブジェクト１０１と実際のイベントとは一対一で対応している。イベントオブジェクト１０１の縦軸上の位置は、そのイベントがどのハードウェアに関連しているかを示している。例えば、イベントオブジェクト１０１Ａに対応するイベントはｃｏｒｅ２により実行され、イベントオブジェクト１０１Ｋに対応するイベントはｃｏｒｅ１により実行されることが示されている。イベントオブジェクト１０１の横軸上の位置は、そのイベントの実行時間を示している。例えば、イベントオブジェクト１０１Ｋに対応するイベントは、時刻５００から開始され時刻９００に終了することが示されている。
【００４１】
生成部１２は、軸情報５０とイベント情報６０とに基づいてイベントオブジェクト１０１の表示位置と表示サイズとを設定する。一例として、識別情報６１の「２」に対応するイベントオブジェクト１０１Ａに着目して説明する。生成部１２は、識別情報６１の「２」に対応する期間情報６３が「４０」であり、時間軸情報５１の最小描画単位当たりの期間が「２」であることから、イベントオブジェクト１０１Ａの表示サイズ（横方向の長さ）を（実行期間：４０）／（最小描画単位当たりの期間：２）＝２０に設定する。また、生成部１２は、識別情報６１：２に対応する開始時刻情報６２が「０」であり、時間軸情報５１が「０，９００」であることから、イベントオブジェクト１０１Ａの開始位置（左側の端部の位置）の時間軸上の位置を０に設定する。また、生成部１２は、識別情報６１の「２」に対応する属性情報６４が「ｃｏｒｅ２」であり、属性軸情報５２が「ｃｏｒｅ２,２５０」であることから、イベントオブジェクト１０１Ａの属性軸方向の表示位置を２５０に設定する。
【００４２】
なお、イベントオブジェクト１０１の表示位置及び表示サイズの決定は、イベントオブジェクト１０１と軸の要素との対応関係が確認できるように行われればよく、上記に限られるものではない。当該表示位置及び表示サイズは、例えば事前に与えられた値に基づいて決定されてもよいし、属性軸情報５２に基づいて軸の要素が重なり合わないように自動的に調整されてもよい。また、イベントオブジェクト１０１の形状は矩形状に限られるものではなく、線形状、楕円形状等であってもよい。
【００４３】
図１１において、イベントオブジェクト１０１の間に記載されている矢印は、イベントオブジェクト１０１間の依存関係の方向性を示している。例えば、イベントオブジェクト１０１Ａ，１０１Ｂ間の矢印は、イベントオブジェクト１０１Ａが完了した後にイベントオブジェクト１０１Ｂが実行されることを示している。イベントオブジェクト１０１Ｃ，１０１Ｄ，１０１Ｅとイベントオブジェクト１０１Ｆとの間の３つの矢印は、３つのイベントオブジェクト１０１Ｃ，１０１Ｄ，１０１Ｅが完了した後でなければイベントオブジェクト１０１Ｆが実行されないことを示している。
【００４４】
次いで、図１０に示すように、選択イベントの有無が判定される（Ｓ４）。選択イベントがない場合（Ｎｏ）には、ステップＳ２に戻り、選択イベントがある場合（Ｙｅｓ）には、選択情報８０に基づいて選択イベントに対応するイベントオブジェクト１０１の表示方式が変更される（Ｓ５）。
【００４５】
図１２は、選択イベントに対応するイベントオブジェクト１０１Ａの表示方式が変更された状態を例示している。イベントオブジェクト１０１Ａは他のイベントオブジェクト１０１とは異なる表示方式により表示されている。表示方式としては、例えば下記のものが挙げられる。
・色彩
・模様
・輝度
・透明度
・形状
・点滅の有無
【００４６】
どのような表示方式を適用するかは使用状況（出力デバイス９がカラー表示可能か否か等）に応じて適宜選択されるべき事項である。イベントの選択は、上述したようにユーザの画面上での指定操作等により行うことができるが、これに限られるものではなく、例えば予め設定した条件を満たすイベントが自動的に選択されるようにしてもよい。
【００４７】
次いで、図１０に示すように、選択情報８０及び依存関係情報７０に基づいて選択オブジェクトに対応するイベントオブジェクト１０１を含む依存経路が判定され、依存経路上のイベントオブジェクト１０１の表示方式が変更される（Ｓ６）。
【００４８】
図１３は、２つのイベントオブジェクト１０１Ａ，１０１Ｋが選択された場合の依存経路の表示方式を例示している。依存経路は選択された２つイベントオブジェクト１０１Ａ，１０１Ｋを含むように設定される。本例では、依存経路に含まれる他のイベントオブジェクト１０１Ｂ〜１０１Ｊの表示方式は、選択されたイベントオブジェクト１０１Ａ，１０１Ｋ及び依存経路に含まれない他のイベントオブジェクト１０１の表示方式と異なるように変更される。
【００４９】
図１４は、３つのイベントオブジェクト１０１Ａ，１０１Ｃ，１０１Ｋが選択された場合の依存経路の表示方式を例示している。本例の状態は、図１３の状態からイベントオブジェクト１０１Ｃの選択が追加された状態である。このような選択の追加は、例えばユーザが情報処理端末２のディスプレイ上でマウス、タッチパネル等を利用してイベントオブジェクト１０１Ｃを指定する等の操作により行うことができる。依存経路は選択された全てのイベントオブジェクト１０１Ａ，１０１Ｃ，１０１Ｋを含むように設定される。本例においては、図１３の状態と比較して、イベントオブジェクト１０１Ｄ，１０１Ｅが依存経路から除外されている。
【００５０】
図１５は、１つのイベントオブジェクト１０１Ａが選択された場合の依存経路の表示方式を例示している。本例では、１つのイベントオブジェクト１０１Ａのみが選択されている。イベントオブジェクト１０１Ａの表示方式は、依存経路を構成する他のイベントオブジェクト１０１Ｂ〜１０１Ｋの表示方式と異なっている。このように、選択されたイベントオブジェクト１０１が１つであっても、依存経路を特徴付けて表示することができる。なお、本例の状態は、図１３又は図１４の状態からイベントオブジェクト１０１Ｃ，１０１Ｋの選択を解除した状態である。このような選択の解除は、上述した選択の追加と同様に、ユーザがディスプレイ上で行えることが好ましい。
【００５１】
次いで、図１０に示すように、イベント情報６０及び依存関係情報７０に基づいて区間オブジェクトが表示される（Ｓ７）。区間オブジェクトとは、依存関係を有する複数のイベントオブジェクト１０１間の区間の状態を示すものである。区間オブジェクトは、連続して実行される２つのイベントオブジェクト１０１間の時間間隔、イベントオブジェクト１０１の遅延等に応じて設定される。例えば、遅延が生じたイベントの前の区間（ロス区間）に対応する区間オブジェクトを他の区間オブジェクトと異なる表示方式で表示してもよい。ロス区間ではプログラムのスムーズな実行を妨げる事象が起きていると考えられる。
【００５２】
図１６は、ロス区間に対応する区間オブジェクト１０２Ａ，１０２Ｂ，１０２Ｃが表示された状態を例示している。空白で示された区間オブジェクト１０２は、ロス区間以外の通常の区間を示している。本例では、イベントオブジェクト１０１Ａとイベントオブジェクト１０１Ｂの間の区間オブジェクト１０２Ａ、イベントオブジェクト１０１Ｂとイベントオブジェクト１０１Ｆとの間の区間オブジェクト１０２Ｂ、イベントオブジェクト１０１Ｈとイベントオブジェクト１０１Ｋとの間の区間オブジェクト１０２Ｃ等がロス区間に対応している。ロス区間に対応する区間オブジェクト１０２Ａ，１０２Ｂ，１０２Ｃの表示方式は、他の区間オブジェクト１０２の表示方式と異なっている。また、本例においては、ロス区間に対応する一部分の区間オブジェクト１０２Ａ，１０２Ｂの表示方式とロス区間に対応する他の部分の区間オブジェクト１０２Ｃの表示方式とが異なっている。このように、ロス区間に対応する区間オブジェクト１０２Ａ，１０２Ｂ，１０２Ｃについては、例えば依存関係の重複、遅延時間の大きさ等に応じて表示方式を異ならせてもよい。
【００５３】
生成部１２は、イベント情報６０及び依存関係情報７０に基づいて区間オブジェクト１０２、１０２Ａ，１０２Ｂ，１０２Ｃの表示位置、表示サイズ、及び表示方式を決定する。一例として、区間オブジェクト１０２Ａに着目して説明する。区間オブジェクト１０２Ａの開始位置（左側の端部の位置）は直前のイベントオブジェクト１０１Ａの終了位置である。イベントオブジェクト１０１Ａの終了位置は、｛（識別情報６１：１に対応する開始時刻：０）＋（実行時間：４０）｝／（最小描画当たりの期間：２）＝２０である。すなわち、区間オブジェクト１０２Ａの表示位置は、その開始位置が横軸（時間軸）上で２０の位置になるように設定される（縦軸（属性軸）上の位置はイベントオブジェクト１０１Ａと同一である）。区間オブジェクト１０２Ａの表示サイズは、イベントオブジェクト１０１Ａの終了位置からイベントオブジェクト１０１Ｂの開始位置までの長さである。イベントオブジェクト１０１Ｂの開始位置は、（識別情報６１：４に対応する開始時刻：６０）／（最小描画当たりの期間：２）＝３０である。従って、区間オブジェクト１０２Ａの表示サイズは、｛（イベントオブジェクト１０１Ｂの開始位置：３０）−（イベントオブジェクト１０１Ａの終了位置：２０）｝＝１０に設定される。また、生成部１２は、イベントオブジェクト１０１Ｂの実際の開始時刻が開始時刻情報６２に規定されている時刻：６０より遅い場合には、区間オブジェクト１０２Ａをロス区間と認定し、その表示方式を他の区間オブジェクト１０２の表示方式と異なるように設定する。また、イベントオブジェクト１０１Ｂの遅延時間が所定値以下の場合には、区間オブジェクト１０２Ａをロス区間と認定せず、その表示方式の変更を行わないようにしてもよい。これにより、実質的に影響のある遅延だけを識別可能に表示することができる。他の区間オブジェクト１０２，１０２Ｂ，１０２Ｃの設定もこれと同様に行うことができる。
【００５４】
また、複数のイベントオブジェクト１０１の間に存在する区間オブジェクト１０２Ｂ，１０２Ｃについては、複数の依存関係が重複した状態となる場合がある。このような場合には、単独の区間オブジェクト１０２Ａの表示方式と重複する区間オブジェクト１０２Ｂ，１０２Ｃの表示方式とを異ならせてもよい。例えば、単独の区間オブジェクト１０２Ａの表示方式を「赤色の透明度５０％の長方形」とし、重複する区間オブジェクト１０２Ｂ，１０２Ｃの表示方式を「黄色の透明度５０％の長方形」としてもよい。これにより部分的に重なり合う区間オブジェクト１０２Ｂ，１０２Ｃを識別可能に表示することができる。
【００５５】
なお、区間オブジェクト１０２，１０２Ａ，１０２Ｂ，１０２Ｃの表示位置及び表示サイズの決定は、関係する２つのイベントオブジェクト１０１の確認を可能にするものであればよく、上記に限られるものではない。当該表示位置及び表示サイズは、例えば事前に与えられた値に基づいて決定されてもよいし、関係する２つのイベントオブジェクト１０１と接触するように自動的に調整されてもよい。また、区間オブジェクト１０２，１０２Ａ，１０２Ｂ，１０２Ｃの形状は矩形状に限られるものではなく、線形状、楕円形状等であってもよい。
【００５６】
次いで、図１０に示すように、特定イベントの有無が判定される（Ｓ８）。特定イベントがない場合（Ｎｏ）には、ステップＳ５に戻り、特定イベントがある場合（Ｙｅｓ）には、特定イベント情報９０に基づいて特定イベントに対応するイベントオブジェクト１０１の表示方式を変更する（Ｓ９）。
【００５７】
図１７は、並列的に実行される特定イベントに対応するイベントオブジェクト１０１Ｇ，１０１Ｈ，１０１Ｉ，１０１Ｊの表示方式を変更した状態を例示している。本例では、並列的に実行される４つのイベントオブジェクト１０１Ｇ，１０１Ｈ，１０１Ｉ，１０１Ｊの表示形式が依存経路に含まれる他のイベントオブジェクト１０１Ａ，１０１Ｂ，１０１Ｃ，１０１Ｆ，１０１Ｋの表示形式と異なっている。
【００５８】
図１８は、クリティカルパスを構成する特定イベントに対応するイベントオブジェクト１０１Ａ，１０１Ｂ，１０１Ｅ，１０１Ｆ，１０１Ｈ，１０１Ｋの表示方式を変更した状態を例示している。本例では、クリティカルパスに含まれる６つのイベントオブジェクト１０１Ａ，１０１Ｂ，１０１Ｅ，１０１Ｆ，１０１Ｈ，１０１Ｋの表示形式が、依存経路に含まれる他のイベントオブジェクト１０１Ｃ，１０１Ｄ，１０１Ｇ，１０１Ｉ，１０１Ｊの表示形式と異なっている。
【００５９】
図１９は、既に設定された依存経路に含まれない２つのイベントオブジェクト１０１Ｌ，１０１Ｍを新たに選択した状態を例示している。本例では、イベントオブジェクト１０１Ｌ，１０１Ｍを含む新たな依存経路が設定される。当該新たな依存経路に含まれるイベントオブジェクト１０１は、図中縦縞で示されるように、既に設定された依存経路（イベントオブジェクト１０１Ａ，１０１Ｃ，１０１Ｋを含む依存経路）で使用されている表示方式以外の表示方式で表示される。これにより、依存経路毎の状態を識別可能に表示することができる。
【００６０】
なお、図１には、情報処理端末２とサーバ３とがネットワーク４を介して接続された構成が示されているが、プログラム情報生成システム１の実施形態はこれに限られない。例えば、単体のコンピュータで上記取得部１１、生成部１２、及び表示制御部１３を実現することもできる。すなわち、当該「システム」の語には、単体の情報処理装置も含まれるものとする。また、複数のコンピュータをイントラネットにより接続して上記取得部１１、生成部１２、及び表示制御部１３を実現することもできる。
【００６１】
また、図３には、プログラム情報生成システム１の最も基本的な機能ブロックである取得部１１、生成部１２、及び表示制御１３を処理の順序で接続した構成が示されているが、実施形態はこれに限らない。例えば、各機能ブロックが協調しながら並列的に動作を行う構成、機能ブロックの順序を入れ替える構成、１つの機能ブロックを複数の機能ブロックに分割する構成、これら３つの構成を組み合わせた構成等であってもよい。
【００６２】
プログラム情報生成システム１の機能を実現させる制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録されて提供することができる。また、制御プログラムは、ネットワークに接続された所定の記憶装置から所定のコンピュータにダウンロードすることにより提供されてもよいし、予めＲＯＭ等に組み込まれて所定の情報処理装置に提供されてもよい。また、制御プログラムは、上記取得部１１、生成部１２、及び表示制御部１３の機能を実現する複数のモジュールから構成されてもよい。
【００６３】
また、上記取得部１１、生成部１２、及び表示制御部１３の各機能は、ＣＰＵ５に制御プログラムを実行させることにより実現されてもよいし、ＩＣ（Integrated  Circuit）等のハードウェアの作用により実現されてもよいし、これらの併用によりして実現されてもよい。
【００６４】
上記第１の実施形態にかかるプログラム情報生成システム１によれば、ユーザが選択したイベントを含む依存経路が他のイベントとは異なる表示形式で表示される。これにより、例えばユーザがプログラムの不具合の要因であると推定するイベントを画面上で選択することにより、これに関連する依存経路が識別可能に表示される。これにより、ユーザはプログラムの改善のための情報を得やすくなる。また、このように依存経路の表示方式を変更することにより、プログラムの実行により大量のイベントが発生する場合であっても、所望の依存経路を正確に視認することが可能となる。
【００６５】
また、上述したように依存経路を構成するイベント間の区間を識別可能に表示することにより、より視認性を向上させることができる。例えば上記のように、遅延が生じたイベントの前の区間を特徴付けて表示することにより、改善に取り組むべき箇所を正確且つ容易に認識することが可能となる。
【００６６】
また、上述したように所定の条件に適合する特定イベントを識別可能に表示することにより、より視認性を向上させることができる。例えば上述したように並列処理される複数のイベント、クリティカルパスを構成するイベント等を特徴付けて表示することにより、改善に取り組むべき箇所を正確且つ容易に認識することが可能となる。
【００６７】
以上、本発明の実施形態を説明したが、この実施形態は例として提示したものであり、発明の範囲を限定することを意図するものではない。この新規な実施形態はその他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態及びその変形は発明の範囲及び要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６８】
１  プログラム情報生成システム
２  情報処理端末
３  サーバ
４  ネットワーク
５  ＣＰＵ
６  ＲＯＭ
７  ＲＡＭ
８  入力デバイス
９  出力デバイス
１０  通信Ｉ／Ｆ
１１  取得部
１２  生成部
１３  表示制御部
２１  依存経路処理部
２２  区間処理部
２３  特定イベント処理部
２４  表示情報生成部
５０  軸情報
５１  時間軸情報
５２  属性軸情報
６０  イベント情報
６１  識別情報
６２  開始時刻情報
６３  期間情報
６４  属性情報
７０  依存関係情報
８０  選択情報
９０  特定イベント情報
１００  表示画像
１０１（１０１Ａ〜１０１Ｍ）  イベントオブジェクト
１０２（１０２Ａ〜１０２Ｃ）  区間オブジェクト
【図１】
0006258159.tif 000002
【図２】
0006258159.tif 000003
【図３】
0006258159.tif 000004
【図４】
0006258159.tif 000005
【図５】
0006258159.tif 000006
【図６】
0006258159.tif 000007
【図７】
0006258159.tif 000008
【図８】
0006258159.tif 000009
【図９】
0006258159.tif 000010
【図１０】
0006258159.tif 000011
【図１１】
0006258159.tif 000012
【図１２】
0006258159.tif 000013
【図１３】
0006258159.tif 000014
【図１４】
0006258159.tif 000015
【図１５】
0006258159.tif 000016
【図１６】
0006258159.tif 000017
【図１７】
0006258159.tif 000018
【図１８】
0006258159.tif 000019
【図１９】
0006258159.tif 000020