JP6223866B2 - 表示情報生成装置、プログラム実行状況表示システム、方法およびプログラム - Google Patents

表示情報生成装置、プログラム実行状況表示システム、方法およびプログラム Download PDF

Info

Publication number
JP6223866B2
JP6223866B2 JP2014042801A JP2014042801A JP6223866B2 JP 6223866 B2 JP6223866 B2 JP 6223866B2 JP 2014042801 A JP2014042801 A JP 2014042801A JP 2014042801 A JP2014042801 A JP 2014042801A JP 6223866 B2 JP6223866 B2 JP 6223866B2
Authority
JP
Japan
Prior art keywords
event
information
display
program execution
axis
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014042801A
Other languages
English (en)
Other versions
JP2015170009A (ja
Inventor
黒田 亮
亮 黒田
秀則 松崎
秀則 松崎
真由子 肥塚
真由子 肥塚
信明 東條
信明 東條
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2014042801A priority Critical patent/JP6223866B2/ja
Priority to US14/628,559 priority patent/US9384070B2/en
Publication of JP2015170009A publication Critical patent/JP2015170009A/ja
Application granted granted Critical
Publication of JP6223866B2 publication Critical patent/JP6223866B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明の実施形態は、表示情報生成装置、プログラム実行状況表示システム、方法およびプログラムに関する。
従来、プログラムの実行トレースに基づいて実行されたスレッドを表すスレッドオブジェクトとイベントとを、時間軸とスレッドの軸とを含む2次元平面に表示するプログラム実行状況表示に関する技術がある。この技術は、プログラムの全実行状況のアクティビティを表示する領域と、特定範囲の詳細実行状況をスレッド軸と時間軸とを用いて表示する領域とを持ち、全実行状況を表示する領域から特定範囲を指定する機能をユーザに提供する。これにより、対話的にプログラムの全実行状況から特定箇所の詳細情報を表示することを可能としている。
プログラム開発者がプログラム開発時にプログラムの実行状況を表示することで動作の確認や性能最適化等を行う場合、プログラム開発者は、プログラムのソースコード、入力データ、プログラム実行環境等の動作に影響を与えるパラメータを変更した際に生じるプログラムの実行動作の変化を把握することで、動作検証や性能への効果などを考察する。また、プログラム開発者は、同一プログラムを同一実行環境下で複数回の実行した際に生じるプログラムの実行動作の変化や性能の変化等を把握することでも、動作検証や性能への効果などを考察することができる。
米国特許第7698686号明細書
複数の実行トレース間の違いをユーザに容易に把握させることが十分ではなかった。
実施形態にかかる表示情報生成装置は、表示情報を生成する表示情報生成装置であって、2つ以上のイベントで構成される第1のプログラム実行結果に含まれる前記イベントのイベント情報および2つ以上のイベントで構成される第2のプログラム実行結果に含まれる前記イベントのイベント情報を格納するイベント情報格納部と、少なくとも前記共通の時系列軸の情報である時系列軸情報を格納する軸情報格納部と、少なくとも、前記イベントのうちの1つである第1の基準イベントを特定するための第1の基準イベント特定情報と、前記イベントのうちの他の1つである第2の基準イベントを特定するための第2の基準イベント特定情報とを格納する特定情報格納部と、前記イベントを表現したイベントオブジェクトを生成するイベントオブジェクト生成部と、前記イベントオブジェクトの表示位置を決定する表示位置決定部と、を備え、前記イベント情報は、少なくとも前記第1のプログラム実行結果または前記第2のプログラム実行結果における前記イベントの位置を示すタイミング情報を含み、前記表示位置決定部は、前記特定情報格納部に格納された前記第1の基準イベント特定情報に基づいて前記第1の基準イベントを前記第1のプログラム実行結果の基準とし、前記特定情報格納部に格納された前記第2の基準イベント特定情報に基づいて前記第2の基準イベントを前記第2のプログラム実行結果の基準とし、前記イベント情報格納部に格納された前記第1の基準イベントの第1のイベント情報におけるタイミング情報および前記第2の基準イベントの第2のイベント情報におけるタイミング情報に基づいて、前記第1の基準イベントと前記第2の基準イベントとの前記共通の時系列軸上の表示位置を同じ位置と決定し、前記イベントオブジェクト生成部は、前記表示位置決定部で決定された前記共通の時系列軸上の前記表示位置に基づいて、前記第1の基準イベントを表す第1のイベントオブジェクトと前記第2の基準イベントを表す第2のイベントオブジェクトとを生成する。
また、実施形態にかかるプログラム実行状況表示システムは、2つ以上のイベントで構成される第1のプログラム実行結果と2つ以上のイベントで構成される第2のプログラム実行結果とを共通の時系列軸上に並べて表示するプログラム実行状況表示システムであって、前記第1のプログラム実行結果および前記第2のプログラム実行結果に含まれる前記イベントのイベント情報を格納するイベント情報格納部と、少なくとも前記共通の時系列軸の情報である時系列軸情報を格納する軸情報格納部と、少なくとも、前記イベントのうちの1つである第1の基準イベントを特定するための第1の基準イベント特定情報と、前記イベントのうちの他の1つである第2の基準イベントを特定するための第2の基準イベント特定情報とを格納する特定情報格納部と、前記イベントを表現したイベントオブジェクトを生成するイベントオブジェクト生成部と、前記イベントオブジェクトの表示位置を決定する表示位置決定部と、を備え、前記イベント情報は、少なくとも前記第1のプログラム実行結果または前記第2のプログラム実行結果における前記イベントの位置を示すタイミング情報を含み、前記表示位置決定部は、前記特定情報格納部に格納された前記第1の基準イベント特定情報に基づいて前記第1の基準イベントを前記第1のプログラム実行結果の基準とし、前記特定情報格納部に格納された前記第2の基準イベント特定情報に基づいて前記第2の基準イベントを前記第2のプログラム実行結果の基準とし、前記イベント情報格納部に格納された前記第1の基準イベントの第1のイベント情報におけるタイミング情報および前記第2の基準イベントの第2のイベント情報におけるタイミング情報に基づいて、前記第1の基準イベントと前記第2の基準イベントとの前記共通の時系列軸上の表示位置を同じ位置と決定し、前記イベントオブジェクト生成部は、前記表示位置決定部で決定された前記共通の時系列軸上の前記表示位置に基づいて、前記第1の基準イベントを表す第1のイベントオブジェクトと前記第2の基準イベントを表す第2のイベントオブジェクトとを生成する。
また、実施形態にかかるプログラム実行状況表示方法は、2つ以上のイベントで構成される第1のプログラム実行結果および2つ以上のイベントで構成される第2のプログラム実行結果それぞれに含まれるイベントの情報であって少なくとも前記第1のプログラム実行結果または前記第2のプログラム実行結果における前記イベントの位置を示すタイミング情報を含むイベント情報を格納するイベント情報格納部と、少なくとも共通の時系列軸の情報である時系列軸情報を格納する軸情報格納部と、少なくとも前記イベントのうちの1つである第1の基準イベントを特定するための第1の基準イベント特定情報と前記イベントのうちの他の1つである第2の基準イベントを特定するための第2の基準イベント特定情報とを格納する特定情報格納部と、を備え、前記第1のプログラム実行結果と前記第2のプログラム実行結果とを前記共通の時系列軸上に並べて表示するプログラム実行状況表示方法であって、前記特定情報格納部に格納された前記第1の基準イベント特定情報に基づいて前記第1の基準イベントを前記第1のプログラム実行結果の基準とし、前記特定情報格納部に格納された前記第2の基準イベント特定情報に基づいて前記第2の基準イベントを前記第2のプログラム実行結果の基準とし、前記イベント情報格納部に格納された前記第1の基準イベントの第1のイベント情報におけるタイミング情報および前記第2の基準イベントの第2のイベント情報におけるタイミング情報に基づいて、前記第1の基準イベントと前記第2の基準イベントとの前記共通の時系列軸上の表示位置を同じ位置と決定し、決定された前記共通の時系列軸上の前記表示位置に基づいて、前記第1の基準イベントを表す第1のイベントオブジェクトと前記第2の基準イベントを表す第2のイベントオブジェクトとを生成し、前記第1のイベントオブジェクトと前記第2のイベントオブジェクトを前記共通の時系列軸上に並べて表示することを含む。
また、実施形態にかかるプログラムは、2つ以上のイベントで構成される第1のプログラム実行結果および2つ以上のイベントで構成される第2のプログラム実行結果それぞれに含まれるイベントの情報であって少なくとも前記第1のプログラム実行結果または前記第2のプログラム実行結果における前記イベントの位置を示すタイミング情報を含むイベント情報を格納するイベント情報格納部と、少なくとも共通の時系列軸の情報である時系列軸情報を格納する軸情報格納部と、少なくとも前記イベントのうちの1つである第1の基準イベントを特定するための第1の基準イベント特定情報と前記イベントのうちの他の1つである第2の基準イベントを特定するための第2の基準イベント特定情報とを格納する特定情報格納部と、を備え、前記第1のプログラム実行結果と前記第2のプログラム実行結果とを前記共通の時系列軸上に並べて表示するための表示情報を生成するコンピュータを機能させるためのプログラムであって、前記特定情報格納部に格納された前記第1の基準イベント特定情報に基づいて前記第1の基準イベントを前記第1のプログラム実行結果の基準とするステップと、前記特定情報格納部に格納された前記第2の基準イベント特定情報に基づいて前記第2の基準イベントを前記第2のプログラム実行結果の基準とするステップと、前記イベント情報格納部に格納された前記第1の基準イベントの第1のイベント情報におけるタイミング情報および前記第2の基準イベントの第2のイベント情報におけるタイミング情報に基づいて、前記第1の基準イベントと前記第2の基準イベントとの前記共通の時系列軸上の表示位置を同じ位置と決定するステップと、決定された前記共通の時系列軸上の前記表示位置に基づいて、前記第1の基準イベントを表す第1のイベントオブジェクトと前記第2の基準イベントを表す第2のイベントオブジェクトとを生成ステップとを前記コンピュータに実行させる。
実施形態1に係るプログラム実行状況表示装置の概略構成例。 実施形態において使用するプログラム例。 従来技術によるプログラムの実行状況の第1の表示結果例。 従来技術によるプログラムの実行状況の第2の表示結果例。 実施形態1に係るイベント情報の構造例。 実施形態1に係るイベント情報リストの一例。 実施形態1に係る軸情報の一例。 実施形態1に係る基準イベント特定情報リストの一例。 実施形態1に係るプログラム実行状況表示例。 実施形態1に係る他のプログラム実行状況表示例。 実施形態1に係る動作例。 実施形態2に係るイベント情報リストの一例。 実施形態2に係る軸情報の一例。 実施形態2に係る基準イベント特定情報リストの一例。 実施形態2に係るプログラム実行状況表示例。 実施形態2に係る他のプログラム実行状況表示例。 実施形態3に係るイベント情報リストの一例。 実施形態3に係るプログラム実行状況表示例。 実施形態3に係る他のプログラム実行状況表示例。 実施形態4に係るイベント情報リストの一例。 実施形態4に係るプログラム実行状況表示例。 実施形態4に係る他のプログラム実行状況表示例。
以下、図面を参照しながら、例示する実施形態にかかる表示情報生成装置、プログラム実行状況表示システム、方法およびプログラムを詳細に説明する。
実施形態1
まず、実施形態1にかかる表示情報生成装置(システム)を含むプログラム実行状況表示装置(システム)について、図面を参照して詳細に説明する。
(構成)
図1は、実施形態1にかかるプログラム実行状況表示装置(システム)の概略構成例を示す機能ブロック図である。図1に示すように、実施形態1にかかるプログラム実行状況表示装置(システム)101は、イベント情報格納部102、基準イベント特定情報格納部103、軸情報格納部104、イベントオブジェクト生成部105、軸オブジェクト生成部106、表示部107、基準イベント選択部108および基準イベント特定情報更新部109を備える。
図1において、イベント情報格納部102は、少なくとも2つのイベント情報を格納する記憶装置である。なお、イベントとは、プログラムやプロセスの実行時に発生する処理の単位であってよい。このイベントは、例えば、関数やループや条件分岐等のプログラムの構成単位であってもよいし、メモリアクセス、命令実行、スレッド生成、同期処理等の特定の処理であってもよい。また、本説明におけるイベント情報とは、プログラム実行時に実行されたイベントの情報である。また、本説明におけるイベント情報リストとは、イベント情報格納部102に格納されている全てのイベント情報を示す用語である。また、記憶装置とは、データを記憶する装置であればよく、ストレージであってもよいし、メモリであってもよいし、バッファであってもよい。
軸情報格納部104は、表示時系列特定情報と少なくとも1つの属性軸情報とを含む軸情報を格納する記憶装置である。ここで、軸情報は、表示時系列特定情報と少なくとも1つの属性軸情報とを含む情報である。表示時系列特定情報は、表示部107の画面の1間隔当たりが表す表示時系列単位情報と、表示する範囲を表す表示時系列範囲情報とを含む。表示時系列単位情報は、例えば、1表示間隔当たりの期間情報であってもよいし、1期間当たりの表示間隔情報であってもよいし、表示間隔とその表示間隔が表す期間情報を含む情報であってもよいし、1表示間隔が示す回数情報であってもよいし、1回数当たりの表示間隔情報であってもよい。また、表示時系列範囲情報は、プログラム実行状況表示装置(システム)101が事前に有していてもよいし、ソフトウエア開発者が指定した情報であってもよいし、表示部107の画面サイズと1画面で表示する実行期間に基づいて生成してもよいし、ウインドウサイズと1画面で表示する実行期間に基づいて生成してもよいし、1画面で表示する回数情報に基づいて生成してもよい。また、表示時系列範囲情報は、時系列軸方向の表示範囲を表す情報であればよく、表示時系列軸始点情報と表示時系列軸終点情報とを含む情報であってもよいし、表示時系列軸始点情報と表示時系列期間情報とを含む情報であってもよいし、表示時系列軸期間情報と表示時系列軸終点情報とを含む情報であってもよい。また、属性軸情報は、属性軸の要素名とプログラム実行特定情報とその表示位置情報を含む。属性軸の要素名は、イベント情報リスト601の各イベント情報のイベント属性情報に対応する情報であり、プログラム実行状況表示装置(システム)101によって事前に保持されていてもよいし、ソフトウエア開発者が指定した情報であってもよい。さらに、表示位置情報は、表示部107の画面上の属性軸の要素名を表示する位置を表す情報であり、プログラム実行状況表示装置(システム)101に事前に保持されている情報であってもよいし、ソフトウエア開発者が指定した情報であってもよいし、表示部107の画面サイズもしくはウインドウサイズと1画面で表示する属性軸の要素数に基づいて生成されてもよい。また、属性軸情報は、軸の要素名と、実行トレース識別情報と、その表示位置情報とを示す情報である。実行トレース識別情報は、複数の実行トレースからを1つの実行トレースを特定するための識別IDである。また、記憶装置とは、データを記憶する装置であればよく、ストレージであってもよいし、メモリであってもよいし、バッファであってもよい。
基準イベント特定情報格納部103は、少なくとも2つ以上の基準イベント特定情報を格納する記憶装置である。ここで、基準イベント特定情報は、少なくともイベント識別情報を含む情報であり、同一の実行トレース識別情報を持たないイベント識別情報を含む。また、イベント識別情報は、イベント情報を一意に識別可能であればよく、例えば、イベント固有の名前であってもよいし、イベント固有の識別情報であってもよいし、実行順に割り当てられた番号などであってよい。本説明における基準イベント特定情報リストとは、基準イベント特定情報格納部103に格納されている全ての基準イベント情報を示す用語である。また、記憶装置とは、データを記憶する装置であればよく、ストレージであってもよいし、メモリであってもよいし、バッファであってもよい。
軸オブジェクト生成部106は、軸情報格納部104から軸情報を入力し、時系列軸オブジェクトと属性軸オブジェクトとを生成する。軸オブジェクト生成部106は、まず、表示時系列特定情報に基づいて時系列軸オブジェクトを生成する。また、軸オブジェクト生成部106は、属性軸情報から要素名をラベルとし、そのラベルを表示位置情報に基づいて配置する属性軸オブジェクトを生成する。
イベントオブジェクト生成部105は、イベント情報格納部102からイベント情報リストを入力し、基準イベント特定情報格納部103から基準イベント特定情報リストを入力し、軸情報格納部104から軸情報を入力し、これら入力情報からイベントを表すイベントオブジェクトの表示位置を決定する。また、イベントオブジェクト生成部105は、イベント情報リスト内のイベント情報と基準イベント特定情報リスト内の基準イベント特定情報と軸情報とに基づいて、イベントを表すイベントオブジェクトの表示サイズを決定する。なお、イベントオブジェクトは、実行されたイベントを画面上に表すオブジェクトであり、画面上の表示位置と表示サイズ情報を持つ。
基準イベント選定部108は、イベント情報格納部102からイベント情報リストを入力し、ユーザの入力とイベント情報リスト内のイベント情報とに基づいて共通イベント識別情報を選定する。ここで、ユーザの入力とは、1つのイベントを特定する情報であればなんでもよく、例えば、表示されているイベントオブジェクトとイベント情報のリンク情報であってもよいし、1つのイベント情報を特定する情報であってもよい。また、基準イベント選定部108は、共通イベント識別情報を持つイベント情報によって示される共通イベントのうちユーザによって選択された共通イベントを基準イベントとして選定する。共通イベントとは、ソフトウエアの構造が同じであり且つソフトウエアの構造が同じ構造であるイベントの中で実行順序が同じイベントであると定義されてよい。その場合、第1の実行トレースで実行された1つ以上のイベントと、第1の実行トレースとは異なる第2の実行トレースで実行された1つ以上のイベントとのうち、少なくとも1つの共通点があるという条件を満足するイベントそれぞれを意味する。なお、共通点とはイベントに関する情報で同じ条件であることを意味し、例えば、ソースプログラム上の位置であってもよいし、プログラムやプロセスの実行時の呼び出し順序であってもよいし、呼び出し条件であってもよいし、アクセスするメモリアドレスであってもよいし、実行期間であってもよいし、実行するコアが同じであるイベントであってもよいし、それらの組合せであってもよい。また、共通イベント識別情報は、共通イベントを一意に識別するための識別IDである。
基準イベント特定情報更新部109は、基準イベント選択部108で選定された基準イベントを特定するための基準イベント特定情報(基準イベントのイベント情報に含まれるイベント識別情報に相当)を入力し、基準イベント特定情報格納部103の基準イベント特定情報リストを更新する。
表示部107は、軸オブジェクトを入力し、軸オブジェクトが持つ表示情報に基づいて、画面上に描画する。また、表示部107は、イベントオブジェクトを入力し、イベントオブジェクトが持つ表示位置情報に基づいて画面上に描画する。これにより、軸オブジェクトによって形成された平面または空間上にイベントオブジェクトが描画されて、プログラム実行状況がユーザに提示される。
つづいて、実施形態1にかかるプログラム実行状況表示装置(システム)の詳細について、具体的なプログラム例を用いて説明する。ただし、以下に示す説明は、単なる一例であって、以下で例示する実施形態を限定するものではない。
本説明では、図2に示すプログラム201を2回実行した際の実行状況を表示するプログラム実行状況表示装置(システム)を仮定する。したがって、実施形態1におけるイベントの種類は、“taskA”202、“taskB”203、“taskC”204、“taskD”205、“taskE”206、および、“taskF”207となる。
1回目の実行例を示す第1のプログラム実行例では、ソフトウエアプログラム201の第1の実行トレース(実行1)は次のようになる。まず、“taskA”が時刻“0”から時刻“10000”まで実行される。次に、“taskC”が時刻“10000”から時刻”12000“まで実行される。次に、“taskD”が時刻“12000”から時刻“13000”まで実行される。次に、“taskC”が時刻“13000”から時刻“15000”まで実行される。次に、“taskD“が時刻“15000”から時刻“16000”まで実行される。次に、“taskC”が時刻“16000”から時刻“18000”まで実行される。次に、“taskE”が時刻“18000”から時刻“19000”まで実行される。次に、“taskF”が時刻“19000”から時刻“20000”まで実行される。
一方、2回目の実行例を示す第2のプログラム実行例では、ソフトウエアプログラム201の第2の実行トレース(実行2)は次のようになる。まず、“taskB”が時刻“0”から時刻“1000”まで実行される。次に、“taskC”が時刻“1000”から時刻“2000”まで実行される。次に、“taskE”が時刻“2000”から時刻“3000”まで実行される。次に、“taskF”が時刻“3000”から時刻“4000”まで実行される。次に、“taskC”が時刻“4000”から時刻“5000”まで実行される。次に、“taskE”が時刻“5000”から時刻“6000”まで実行される。次に、“taskF”は時刻“6000”から時刻“7000”まで実行される。次に、“taskC”が時刻“7000”から時刻“8000”まで実行される。次に、“taskE”が時刻“8000”から時刻“9000”まで実行される。次に、“taskF”が時刻“9000”から時刻“10000”まで実行される。
以上のようなプログラム実行状況を表示するプログラム実行状況表示装置(システム)101によるプログラム実行状況表示の軸には、時系列軸と属性軸とが含まれる。実施形態1において、時系列軸は、基準となるイベントの実行期間との相対実行期間を表す軸であってよい。属性軸は、イベントを実行した実行トレースを要素とする軸であってよい。
通常、プログラム実行は、入力データが異なっていたり、実行環境が異なっていたり、ソースプログラムが異なっている際に、異なる振る舞いをする。そのため、プログラム開発者(以下、ユーザという)が実行トレースを用いて動作比較をする際には、実行されるイベントの違いやイベントの実行期間の違いなどが生じ得る。図3および図4に、従来技術によるプログラム201(図2参照)の実行状況の表示結果を示す。図3および図4は、第1の実行トレースと第2の実行トレースとを同時に表示した例である。図3および図4において、横軸は時系列軸であり、横軸は属性軸である。時系列軸は実行期間を示している。属性軸には、第1の実行トレースと第2の実行トレースとがそれぞれ“実行1”または“実行2”として表示されている。このような従来技術による表示方式では、表示部107である表示画面サイズもしくは表示ウインドウサイズに限りがあるため、時系列軸方向に配列するイベントをすべて同時に表示することが困難な場合がある。そのような場合、たとえば図3に示すように、全体の一部の範囲である特定範囲をスクロールバーなどでスライド可能に表示する方法が存在するが、このような表示方法では、第1の実行トレースと第2の実行トレースとの両方の共通イベントを同時に特定範囲内に含ませることができない場合がある。そのような場合、ユーザは、これらの共通イベントを目視により確認・検討することができない。また、図4に示すように、全てのイベントを同時表示可能なスケールで時系列軸を設定した場合には、表示部107が備える解像度の限界によって1つ1つのイベントを表すオブジェクトが潰れてしまうため、各イベントを目視により判別できない場合がある。そこで、実施形態1では、それぞれの実行トレースにおける共通イベントの時系列軸上の位置を揃えて表示することにより、複数の実行トレース間の違いをユーザに容易に把握させることを可能にする。
図5に、イベント情報の構造例を示す。図5に示すように、イベント情報501は、イベント識別情報502と実行トレース識別情報503とイベントタイミング情報504と共通イベント識別情報505とイベント属性情報506とを含む。イベント識別情報502は、前述の通り、イベント情報を一意に識別可能な情報である。実行トレース識別情報503は、前述の通り、複数の実行トレースからを1つの実行トレースを特定するための識別IDである。イベントタイミング情報504は、イベントのタイミング情報を含む情報である。共通イベント識別情報505は、共通イベントを一意に識別するための識別IDである。
イベントのタイミング情報を定義するイベントタイミング情報504は、実行開始時刻と実行終了時刻を含む情報のほかに、例えば、実行開始時刻と実行期間を含む情報であってもよし、実行期間と実行終了時刻を含む情報であってもよいし、実行トレース毎のイベントの実行順であってもよい。ここで、実行開始時刻、実行終了時刻および実行期間は時間情報であり、例えば、プログラム実行時におけるプロセッサ時間であってもよいし、プロセッサ時間に基づいて生成した時間情報であってもよい。
イベントに関する情報であるイベント属性情報506は、例えば、プログラム実行時情報であってもよいし、プログラムの静的情報であってもよいし、プログラムの実行環境情報であってもよい。ここで、プログラム実行時情報は、プログラム実行時に取得可能な実行時の状況を表す情報であると共に共通イベントを識別可能な情報であり、例えば、イベントを実行したプロセッサコア情報であってもよいし、イベント実行した命令情報であってもよいし、イベント実行期間であってもよいし、イベントが実行したメモリアクセス情報であってもよいし、イベントが実行した関数コール回数であってもよいし、イベント内の変数の値であってもよいし、イベントがループイタレーションである場合において何回目のイタレーションであるかの情報であってもよいし、イベントが割り込み処理であるかの情報であってもよい。また、プログラムの静的情報は、ソースコードもしくはソースコード管理システムから得られる静的な情報であり、例えば、ソースコード上の位置情報であってもよいし、ソフトウエアプログラム構造情報であってもよいし、ソースコードのコンパイル情報であってもよいし、ソースコードのバージョン情報であってもよいし、プログラムがカーネルプログラムであるかの情報であってもよいし、プログラムがユーザプログラムであるかの情報であってもよい。さらに、プログラムの実行環境情報は、プログラムを実行した際の環境の情報であり、例えば、プロセッサコア名であってもよいし、サーバ名であってもよいし、サーバの仕様情報であってもよい。
つづいて、イベント情報501の一例を、図5に示す構造例にしたがって説明する。以下の説明では、第1のプログラム実行例による第1の実行トレース(“実行1”)の実行トレース識別情報503を“1”とし、第2のプログラム実行例による第2の実行トレース(“実行2”)の実行トレース識別情報503を“2”とする。
図6に、図2に示すソフトウエアプログラム201を実行した際に実施形態1において生成されるイベント情報リストの一例を示す。図6に示すように、イベント情報リスト601は、イベント情報602〜619の合計18つのイベント情報を有しており、1行が1つのイベント情報を表している。例えば、イベント情報603は、イベント識別情報502、実行トレース識別情報503、イベントタイミング情報504の実行開始時刻、イベントタイミング情報504の実行終了時刻、共通イベント識別情報505、イベント属性情報506のプログラム上の構造情報、イベント属性情報506のイタレーション情報の順に、“1”、“1”、“10000”、“12000”、“1”、“LoopA:iteration:taskC”、“1”という情報を持つ。すなわち、イベント情報603のイベントは、イベント識別情報502が“1”であり、実行トレース識別情報503が“1”であり、第1の実行トレースにおける実行開始時刻“10000”から実行終了時刻“12000“の間に実行されるイベントである。また、イベント情報603のイベントは、プログラム構造上“LoopA”内の”iteration”内の“taskC”のイベントであり、“LoopA”の1回目のiterationで実行されたイベントである。さらに、イベント情報603の共通イベント識別情報は“1”である。これは、イベント情報603のイベントが、同一の共通イベント識別情報を持つイベント情報611のイベントと共通イベントであることを示す。
また、図7に、図2に示すソフトウエアプログラムを実行した際の実施形態1にかかる軸情報の一例を示す。図7に示すように、軸情報701は、表示時系列特定情報702と、属性軸情報703および704とを含む。表示時系列特定情報702は、表示時系列単位情報を“2”とし、表示時系列範囲情報を“0”と“10000”とし、表示範囲を“0”から“10000”までを表示することを示す。属性軸情報703は、第1の実行トレースを表す属性軸情報であり、要素名情報を“実行1”とし、実行トレース識別情報を“1”とし、表示位置情報を“0”としている。属性軸情報704は、第2の実行トレースを表す属性軸情報であり、要素名情報を“実行2”とし、実行トレース識別情報を“2”とし、表示位置情報を“100”としている。
さらに、図8に、図2に示すソフトウエアプログラムを実行した際に実施形態1において生成される基準イベント特定情報リストの一例を示す。図8に示すように、基準イベント特定情報リスト801は、2つの基準イベント特定情報802および803を含む。1つの基準イベント特定情報802は“1”であり、他の1つの基準イベント特定情報803は“9”である。
つづいて、本実施形態の作用について、具体例を用いて詳細に説明する。
イベントオブジェクト生成部105は、まず、イベント情報格納部102に格納されるイベント情報リスト601と、基準イベント特定情報格納部103に格納されている基準イベント特定情報リスト801と、軸情報格納部104に格納される軸情報701とを入力する。以降、基準イベント特定情報リスト801に少なくとも2つ以上の基準イベント特定情報が登録されている場合と、基準イベント特定情報が登録されていない場合とに分けて説明する。
<少なくとも2つ以上の基準イベントが登録されている場合>
まず、基準イベント特定情報リスト801に少なくとも2つ以上の基準イベント特定情報が登録されている場合について説明する。この場合、イベントオブジェクト生成部105は、イベント情報リスト601と基準イベント特定情報リスト801とに基づいて基準イベントのイベント情報を特定する。つづいて、イベントオブジェクト生成部105は、第1の実行トレースにおける第1の基準イベントを表す第1の基準イベントオブジェクトの表示始点位置と、第2の実行トレースにおける第2の基準イベントを表す第2の基準イベントオブジェクトの表示始点位置とが、同じとなる表示始点位置を決定する。なお、第1の基準イベントと第2の基準イベントとは、共通イベントであって、ユーザによって選定された基準イベントである。
次に、イベントオブジェクト生成部105は、基準イベントのイベント情報の実行開始時刻と実行終了時刻と軸情報の表示時系列特定情報702とに基づいて基準イベントオブジェクトの時系列軸方向の表示サイズを決定し、基準イベントのイベント情報の実行トレース識別情報と軸情報の属性軸情報703とに基づいて属性軸方向の表示位置を決定し、基準イベントのイベント情報の共通イベント識別情報に固有に割り当てられた表示方式で基準イベントが表示されるように基準イベントオブジェクトを生成する。
ここで、基準イベント特定情報リスト801に少なくとも2つ以上の基準イベント特定情報が登録されている場合の基準イベントオブジェクトの生成例を、具体例を挙げて説明する。イベントオブジェクト生成部105は、イベント識別情報が“1”である第1の基準イベントのイベント情報603およびイベント識別情報が“9”である第2の基準イベントのイベント情報611の時系列軸に沿った位置(表示始点位置)を同じ位置(たとえば“100”)とする。ここで、表示始点位置は、基準イベントを表示する始点位置情報であり、例えば、プログラム実行状況表示装置(システム)101で決められた情報であってもよいし、ファイルで与えられる情報であってもよいし、ユーザのインターフェースからの入力情報であってもよいし、第1の基準イベントが表示されている画面上の位置であってもよい。
次に、イベントオブジェクト生成部105は、イベント識別情報が“1”である第1の基準イベントの表示サイズを決定する。イベントオブジェクト生成部105は、第1の基準イベントのイベント情報603の実行開始時刻“10000”と実行終了時刻“12000”と軸情報の表示時系列特定情報702の“1表示間隔当たりが表す時間単位は2である”という情報とに基づいて、時系列軸方向の表示サイズを計算する。具体的には、式“(実行終了時刻−実行開始時刻)÷(表示時系列単位情報)”を用いて“(12000−10000)÷2”を計算する。これにより、第1の基準イベントの表示サイズが“1000”と求まる。
また、イベントオブジェクト生成部105は、イベント情報の実行トレース識別情報と軸情報の属性軸情報の実行トレース識別情報とに基づいて軸情報の属性軸情報を選択し、属性軸方向の表示位置を決定する。本実施形態1では、イベント情報603の実行トレース識別情報“1”と等価の実行トレース識別情報を持つ軸情報の属性軸情報703を選択し、属性軸方向の表示位置“0”を決定し、基準イベントのイベント情報の共通イベント識別情報に固有に割り当てられた色“赤”で表示することを決定し、これらの決定にしたがって基準イベントを表す基準イベントオブジェクトを生成する。なお、基準イベントを表す基準イベントオブジェクトは、固有に割り当てられた色に限らず、ハッチングの種類や描画線の種類など、当該オブジェクトをユーザに識別させることができる表示形式であれば如何様にも変形することができる。
また、イベントオブジェクト生成部105は、イベント情報611の実行トレース識別情報“2”と等価の実行トレース識別情報を持つ軸情報の属性軸情報704を選択し、属性軸方向の表示位置“1”を決定し、基準イベントのイベント情報の共通イベント識別情報に固有に割り当てられた色“赤”で表示することを決定し、これらの決定にしたがって基準イベントを表す基準イベントオブジェクトを生成する。なお、上記と同様に、基準イベントを表す基準イベントオブジェクトは、固有に割り当てられた色に限らず、ハッチングの種類や描画線の種類など、当該オブジェクトをユーザに識別させることができる表示形式であれば如何様にも変形することができる。
次に、基準イベント特定情報リスト801に少なくとも2つ以上の基準イベント特定情報が登録されている場合の基準イベントオブジェクト以外のイベントオブジェクト(以下、非基準イベントオブジェクトという)の生成例を、具体例を挙げて説明する。イベントオブジェクト生成部105は、イベント情報格納部102に格納されるイベント情報リスト601と、基準イベント特定情報格納部103に格納されている基準イベント特定情報リスト801と、軸情報格納部104に格納される軸情報701とを入力し、イベント情報と基準イベント特定情報に基づいて非基準イベントのイベント情報を特定する。つづいて、イベントオブジェクト生成部105は、非基準イベントのイベント情報と、非基準イベントと同一の実行トレース識別情報を持つ基準イベントの実行開始時刻と、基準イベントの基準イベントオブジェクトの表示始点位置とに基づいて、非基準イベントを表す非基準イベントオブジェクトの表示始点位置を決定する。
次に、イベントオブジェクト生成部105は、非基準イベントのイベント情報の実行開始時刻および実行終了時刻と軸情報の表示時系列特定情報とに基づいて、非基準イベントオブジェクトの時系列軸方向の表示サイズを決定し、非基準イベントのイベント情報の実行トレース識別情報と軸情報の属性軸情報とに基づいて属性軸方向の表示位置を決定し、非基準イベントのイベント情報の共通イベント識別情報に固有に割り当てられた表示方式で非基準イベントが表示されるように非基準イベントオブジェクトを生成する。ここで、共通イベント識別情報を持たないイベントのイベントオブジェクトについては、共通イベントを持つイベントのイベントオブジェクトとは異なる表示方式で表示されるようにイベントオブジェクトが生成されてもよい。以下に、共通イベントを持つイベントのイベントオブジェクトの生成と、共通イベントを持たないイベントのイベントオブジェクトの生成とについて例を挙げて説明する。
基準イベント特定情報リスト801に少なくとも2つ以上の基準イベント特定情報が登録されている場合の共通イベントを持つイベントのイベントオブジェクトの生成例では、イベントオブジェクト生成部105は、基準イベント特定情報リスト801に基づいて、イベント識別情報が“1”もしくは“9”でないイベントを非基準イベントと特定する。ここでは、イベント情報605を例に、共通イベントを持つ非基準イベントのイベントオブジェクト生成について説明する。この非基準イベント(イベント情報605)の実行開始時刻は“13000”であり、実行トレース識別情報は“1”である。これと同一の実行トレース識別情報“1”を持つ基準イベントのイベント情報はイベント情報603であり、その実行開始時刻は“10000”である。
イベント情報605が表す共通イベントを持つ非基準イベントの表示始点位置は、イベント情報605から特定される非基準イベントの実行開始時刻“13000”と、イベント情報603から特定される基準イベントの実行開始時刻“10000”と、軸情報の表示時系列特定情報702と、基準イベントのイベントオブジェクトの表示始点位置“0”に基づいて計算される。具体的には、式“{(非基準イベントの実行開始時刻−基準イベントの実行開始時刻)÷(表示時系列単位情報)}+基準イベントの表示始点位置”を用いて“{(13000−10000)÷2}+100”を計算する。これにより、イベント情報605の非基準イベントの表示始点位置が“2100”と求まる。
次に、イベントオブジェクト生成部105は、非基準イベントのイベント情報605の実行開始時刻“13000”および実行終了時刻“15000”と軸情報の表示時系列特定情報702の“1表示間隔当たりが表す時間単位は2である”という情報とに基づいて、時系列軸方向の表示サイズを計算する。具体的には、式“(実行終了時刻−実行開始時刻)÷(表示時系列単位情報)”を用いて“(15000−13000)÷2”を計算する。これにより、イベント情報605が表す共通イベントを持つ非基準イベントの表示サイズが“1000”と求まる。
また、イベントオブジェクト生成部105は、イベント情報605の実行トレース識別情報“1”と軸情報の属性軸情報703とに基づいて、属性軸方向の表示位置“0”を決定し、非基準イベントのイベント情報の共通イベント識別情報に固有に割り当てられた色“緑”で表示することを決定し、これらの決定にしたがって非基準イベントを表す非基準イベントオブジェクトを生成する。他の共通イベント識別情報を持つ非基準イベントについても同様にして非基準イベントオブジェクトが生成される。なお、共通イベント識別情報を持つ非基準イベントを表す非基準イベントオブジェクトは、固有に割り当てられた色に限らず、ハッチングの種類や描画線の種類など、当該オブジェクトをユーザに識別させることができる表示形式であれば如何様にも変形することができる。
つづいて、基準イベント特定情報リスト801に少なくとも2つ以上の基準イベント特定情報が登録されている場合の共通イベントを持たないイベントオブジェクトの生成例について説明する。ここでは、イベント情報612を例に、共通イベントを持たない非基準イベントのイベントオブジェクト生成について説明する。この非基準イベントの(イベント情報612)実行開始時刻は“2000”であり、実行トレース識別情報は“2”である。これと同一の実行トレース識別情報“2”を持つ基準イベントのイベント情報はイベント情報611であり、その実行開始時刻は“1000”である。
そこで、イベントオブジェクト生成部105は、非基準イベントの表示始点位置を決定する。イベント情報612が表す共通イベントを持たない非基準イベントの表示始点位置は、イベント情報612から特定される非基準イベントの実行開始時刻“2000”と、イベント情報611から特定される基準イベントの実行開始時刻“1000”と、軸情報の表示時系列特定情報702の“1表示間隔当たりが表す時間単位は2である”という情報と、基準イベントのイベントオブジェクトの表示始点位置“0”とに基づいて計算される。具体的には、式“{(非基準イベントの実行開始時刻−基準イベントの実行開始時刻)÷(1表示間隔当たりの時間)}+基準イベントの表示始点位置”を用いて“{(2000−1000)÷2}+100”を計算する。これにより、イベント情報612が表す共通イベントを持たない非基準イベントの表示始点位置が“600”と求まる。
次に、イベントオブジェクト生成部105は、非基準イベントのイベント情報612の実行開始時刻“2000”および実行終了時刻“3000”と軸情報の表示時系列特定情報702の“1表示間隔当たりが表す時間単位は2である”という情報とに基づいて、時系列軸方向の表示サイズを計算する。具体的には、式“(実行終了時刻−実行開始時刻)÷(表示時系列単位情報)”を用いて“(3000−2000)÷2”を計算する。これにより、イベント情報612が表す共通イベントを持たない非基準イベントの表示サイズが“500”と求まる。
また、イベントオブジェクト生成部105は、イベント情報612の実行トレース識別情報“2”と軸情報の属性軸情報504とに基づいて、属性軸方向の表示位置“100”を決定し、非基準イベントのイベント情報の共通イベント識別情報がないイベント固有に割り当てられた色“灰色”で表示することを決定し、これらの決定にしたがって非基準イベントを表す非基準イベントオブジェクトを生成する。他の共通イベント識別情報を持たない非基準イベントについても同様にして非基準イベントオブジェクトが生成される。なお、共通イベント識別情報を持たない非基準イベントを表す非基準イベントオブジェクトは、固有に割り当てられた色に限らず、ハッチングの種類や描画線の種類など、当該オブジェクトをユーザに識別させることができる表示形式であれば如何様にも変形することができる。
<基準イベントが登録されていない場合>
次に、基準イベント特定情報リスト801に基準イベント特定情報が登録されていない場合について説明する。基準イベント特定情報リスト801に1つも基準イベント特定情報が登録されていない場合のイベントオブジェクト生成には、共通イベントを持つイベントオブジェクトの生成と共通イベントを持たないイベントオブジェクトの生成とが含まれる。
イベントオブジェクト生成部105は、イベント情報リスト601のイベント情報の実行開始時刻と実行期間と軸情報の表示時系列特定情報702とから表示するイベントを選定する。次に、イベントオブジェクト生成部105は、イベント情報リスト601のイベント情報の実行開始時刻と軸情報の表示時系列特定情報702とからイベントを表すイベントオブジェクトの表示開始位置を決定する。
次に、イベントオブジェクト生成部105は、イベント情報の実行開始時刻と実行終了時刻と軸情報の表示時系列特定情報702とに基づいてイベントオブジェクトの時系列軸方向の表示サイズを決定し、イベント情報の共通イベント識別情報に基づいて共通イベント識別情報に固有に割り当てられた表示方式でイベントが表示されるようにイベントオブジェクトを生成する。ここで、共通イベント識別情報を持たないイベントのイベントオブジェクトについては、共通イベントを持つイベントのイベントオブジェクトとは異なる表示方式で表示されるようにイベントオブジェクトが生成されてもよい。以下に、共通イベントを持つイベントのイベントオブジェクトの生成と、共通イベントを持たないイベントのイベントオブジェクトの生成とについて例を挙げて説明する。
まず、基準イベント特定情報リスト801に基準イベント特定情報が登録されていない場合の共通イベントを持つイベントのイベントオブジェクトの生成例について説明する。ここでは、イベント情報614を例に、共通イベントを持つイベントに着目して説明する。イベントオブジェクト生成部105は、イベント情報614が表すイベントを表示すべきか否かを判定する。イベント情報614の実行開始時刻“4000”および実行終了時刻“5000”と表示時系列特定情報702の表示時系列範囲情報“0”および“10000”とから、イベント情報614が表すイベントが時系列軸方向の表示範囲に含まれるため、イベントオブジェクト生成部105は、イベント情報614が表すイベントを表示すると判定する。そこで、イベントオブジェクト生成部105は、このイベントオブジェクトを“表示する”と判定する。
次に、イベントオブジェクト生成部105は、イベント情報614が表すイベントの表示始点位置を決定する。イベントオブジェクト生成部105は、イベント情報614が表すイベントの実行開始時刻“4000”と軸情報の表示時系列特定情報702の“1表示間隔当たりが表す時間単位は2である”という情報とに基づいて、イベント情報614を表すイベントオブジェクトの表示始点位置を計算する。具体的には、式“イベントの実行開始時刻÷1表示間隔当たりの時間”を用いて“4000÷2”を計算する。これにより、イベント情報614を表すイベントオブジェクトの表示始点位置が“2000”と求まる。
次に、イベントオブジェクト生成部105は、イベント情報614が表すイベントの表示サイズを決定する。イベントオブジェクト生成部105は、イベント情報614の実行開始時刻“4000”および実行終了時刻“5000”と軸情報の時系列情報702とに基づいて、イベント情報614が表すイベントの表示サイズを計算する。具体的には、式“(実行終了時刻−実行開始時刻)÷(表示時系列単位情報)”を用いて“(5000−4000)÷2”を計算する。これにより、イベント情報614が表すイベントのイベントオブジェクトの表示サイズが“500”と求まる。
次に、イベントオブジェクト生成部105は、イベント情報614の共通イベント識別情報“2”に基づいて、他の共通イベント識別情報とは異なる表示形式で表されるイベントオブジェクトを生成する。本実施形態では、固有の表示形式を色で表現している。そこで、イベントオブジェクト生成部105は、イベント情報614のイベントを“青”で表示する。ただし、色に限定されず、ハッチングの種類や描画線の種類など、当該オブジェクトをユーザに識別させることができる固有の表示形式であれば如何様にも変形することができる。
次に、基準イベント特定情報リスト801に基準イベント特定情報が登録されていない場合の共通イベントを持たないイベントのイベントオブジェクトの生成例について説明する。ここでは、イベント情報602を例に、共通イベントを持たないイベントに着目して説明する。イベントオブジェクト生成部105は、イベント情報602が表すイベントを表示すべきか否かを判定する。イベント情報602の実行開始時刻“0”と実行終了時刻“10000”と表示時系列特定情報702の表示時系列範囲情報“0”および“10000”とから、イベント情報602が表すイベントが時系列軸方向の表示範囲に含まれるため、イベントオブジェクト生成部105は、このイベントオブジェクトを“表示する”と判定する。
次に、イベントオブジェクト生成部105は、イベント情報602が表すイベントの表示始点位置を決定する。イベントオブジェクト生成部105は、イベント情報602が表すイベントの実行開始時刻“0”に基づいて、イベントオブジェクトの表示始点位置を“0”とする。
次に、イベントオブジェクト生成部105は、イベント情報602が表すイベントの表示サイズを決定する。イベントオブジェクト生成部105は、軸情報の時系列情報702の表示時系列範囲情報の表示最大時刻“10000”と実行終了時刻“10000”とを比較し、小さい時刻を用いて表示サイズを決定する。本実施形態では、等価であるため表示最大時刻“10000”を用いて表示サイズを決定する。イベントオブジェクト生成部105は、イベント情報602の実行開始時刻“0”と実行終了時刻“10000”と軸情報の時系列情報702とに基づいて、イベント情報602が表すイベントの表示サイズを計算する。具体的には、式“(表示可能な最大実行終了時刻−実行開始時刻)÷1表示間隔当たりの時間)”を用いて“(10000−0)÷2”を計算する。これにより、イベント情報602が表すイベントのイベントオブジェクトの表示サイズが“5000”と求まる。
次に、イベントオブジェクト生成部105は、イベント情報602が共通イベント識別情報を持たないことに基づいて、共通イベントとは異なる表示形式で表されるイベントオブジェクトを生成する。本実施形態では固有の表示形式を色で表現しているため、イベント情報602のイベントは、たとえば“灰色”で表示される。ただし、色に限定されず、ハッチングの種類や描画線の種類など、当該オブジェクトをユーザに識別させることができる固有の表示形式であれば如何様にも変形することができる。
次に、以上のように生成された軸オブジェクトおよびイベントオブジェクトよりなるプログラム実行状況の表示について説明する。なお、プログラム実行状況の表示例としては、基準イベントが選択されていない場合と、基準イベントが選択されている場合とが存在する。
<基準イベントが選択されていない場合>
まず、基準イベントが選択されていない場合について、図9のプログラム実行状況表示例を用いて説明する。本実施形態では、画面上に表示可能な範囲のみを表示し、スクロールバーにより表示領域を変更するものとする。
表示部107は、軸オブジェクトを入力し、軸オブジェクトが持つ表示情報に基づいて、画面上に描画する。その結果、図9に示すように、プログラム実行状況表示例901では、時系列軸オブジェクト920が一定区間ごとに時間情報のラベルを表示し、属性軸オブジェクト921が属性ラベルを表示する。たとえば、時系列軸オブジェクト920は、“0”から“10000“を表示し、ラベルを2000単位で表示する。表示部107は、画面サイズもしくはウインドウサイズ等の表示サイズを入力とし、表示可能なサイズの軸オブジェクトを表示してもよいし、表示可能なサイズの軸オブジェクトにサイズを変換して表示してもよい。属性軸オブジェクト921は、属性軸要素922と属性軸要素923とのラベルをそれぞれ表示する。
表示部107は、イベントオブジェクトを入力し、イベントオブジェクトが持つ表示位置情報に基づいて画面上に描画する。その結果、図9に示すように、プログラム実行状況表示例901では、イベント情報602、610、611、612、613、614、615、616、617、618および619を表すイベントオブジェクトがそれぞれ順に、イベントオブジェクト902、910、911、912、913、914、915、916、917、918よび919として表示される。
<基準イベントが選択されている場合>
次に、基準イベントが選択されている場合について、図10のプログラム実行状況表示例を用いて説明する。本実施形態では、画面上に表示可能な範囲のみを表示し、スクロールバーにより表示領域を変更するものとする。
表示部107は、基準イベントが選択されていない場合と同様に、軸オブジェクトを入力して画面上に描画するとともに、各軸オブジェクトのラベルを表示する。時系列軸オブジェクト1020が一定区間ごとに時間情報のラベルを表示し、属性軸オブジェクト1021が属性ラベルを表示する。たとえば、時系列軸オブジェクト1020は、“0”から“10000“を表示し、ラベルを2000単位で表示する。属性軸オブジェクト1021は、属性軸要素1022と属性軸要素1023とのラベルをそれぞれ表示する。
表示部107は、基準イベントオブジェクトを入力し、基準イベントオブジェクトが持つ表示位置情報に基づいて画面上に描画する。その結果、図10に示すように、プログラム実行状況表示例1001では、イベント情報603、604、605、606、607、608、609、611、612、613、614、615、616、617、618および619を表すイベントオブジェクトがそれぞれ順に、イベントオブジェクト1003、1004、1005、1006、1007、1008、1009、1011、1012、1013、1014、1015、1016、1017、1018および1019として表示される。
<具体例>
具体的には、図9のプログラム実行状況表示例901では、共通イベントを持つイベント911、914、917、918および919が“灰色”以外の色を用いたオブジェクトとして表示されている。ただし、固有の表示形式として、ハッチングの種類や描画線の種類など、色以外の表示形式を採用した場合には、採用された表示形式に従って、共通イベント識別情報を持たない非共通イベントとは異なる表示形式で当該イベントオブジェクトが表示されればよい。基準イベント選定部108は、マウスなどのユーザインターフェースでイベントオブジェクト911が選択されると、イベントオブジェクト911のイベント情報611から共通イベント識別情報“1”を選定する。次に、基準イベント選定部108は、イベント情報リスト601から共通イベント識別情報“1”を持つイベント情報603および611を基準イベントとして選定し、これらの基準イベントのイベント識別情報“1”および“9”を基準イベント特定情報とし、基準イベント特定情報格納部103に格納する。その結果、図10に示すようなプログラム実行状況表示例1001が表示される。
なお、ユーザによる基準イベントの指定方法は、共通イベントを持つ少なくとも1つ以上のイベントを選定する方法であり、例えば、ファイルによる指定であってもよいし、ユーザインターフェースによる指定であってもよい。
(動作)
次に、実施形態1にかかるプログラム実行状況表示装置(システム)101の動作について、図面を用いて詳細に説明する。図11は、実施形態1にかかるプログラム実行状況表示装置(システム)の動作例を示すフローチャートである。図11に示すように、本動作では、まず、軸オブジェクト生成部106が、軸情報格納部104から軸情報を入力し、軸オブジェクトを生成する(ステップS1101)。次に、表示部107が、軸オブジェクトを入力し、軸オブジェクトを画面上に表示する(ステップS1102)。
また、本動作では、イベントオブジェクト生成部105が、イベント情報格納部102からイベント情報を入力し、基準イベント特定情報格納部103から基準イベント特定情報を入力し、軸情報格納部104から軸情報を入力し、これら入力情報からイベントを表すイベントオブジェクトの表示位置を決定する(ステップS1103)。次に、イベントオブジェクト生成部105は、イベント情報と基準イベント特定情報と軸情報とに基づいて、イベントを表すイベントオブジェクトの表示サイズを決定する(ステップS1104)。つづいて、イベントオブジェクト生成部105が、ステップS1103で決定したイベントオブジェクトの表示位置とステップS1104で決定したイベントオブジェクトの表示サイズとに基づいて、イベントオブジェクトを生成する(ステップS1105)。
次に、表示部107が、共通イベントオブジェクトと非共通イベントオブジェクトを入力し、共通イベントオブジェクトと非共通イベントオブジェクトとを画面上に表示する(ステップS1106)。なお、表示されたイベントオブジェクトは、たとえばユーザによって選択可能なユーザインターフェースとして機能してよい。ユーザインターフェースとして機能するイベントオブジェクトは、共通イベントオブジェクトのみであってもよいし、共通イベントオブジェクトと非共通イベントオブジェクトとの両方であってもよい。
次に、基準イベント選定部108が、ユーザによっていずれかのイベントオブジェクトが選択されたか否かを判定する(ステップS1107)。いずれのイベントオブジェクトも選択されていない場合(ステップS1107;NO)、プログラム実行状況表示装置(システム)101はステップS1112へ進む。一方、いずれかのイベントオブジェクトが選択された場合(ステップS1107;YES)、基準イベント特定情報更新部109が、基準イベント格納部103の基準イベント特定情報を更新する(ステップS1108)。なお、ステップS1107におけるユーザによるイベントオブジェクトの選択は、たとえばマウスやキーボードなどの入力デバイスを用いて行われてよい。その際、選択中の基準イベントがユーザによって再度選択された場合には、当該選択中の基準イベントに対して時系列的に近い他のイベントが基準イベントとして選択されるように構成されてもよい。なお、新たに選択されるイベントは、選択中の基準イベントと同一のプログラム実行トレース上の次のイベントや、選択中の基準イベントとは異なるプログラム実行トレース上における時系列的に近いイベントなどであってもよい。
次に、イベントオブジェクト生成部105が、更新された基準イベント特定情報を入力し、この基準イベント特定情報で特定される基準イベントを表す基準イベントオブジェクトの表示位置を更新する(ステップS1109)。つづいて、イベントオブジェクト生成部105は、基準イベントオブジェクトとイベント情報を入力とし、基準イベントオブジェクトの表示位置に基づいてその他のイベントオブジェクトの表示位置を更新する(ステップS1110)。これに対し、表示部107が、更新された表示位置にしたがって、イベントオブジェクトを再表示し(ステップS1111)、ステップS1112へ進む。
ステップS1112では、プログラム実行状況表示装置(システム)101は、本動作を終了するか否かを判定する。本動作を終了する場合(ステップS1112;YES)、プログラム実行状況表示装置(システム)101は、本動作を終了する。一方、終了しない場合(ステップS1112;NO)、プログラム実行状況表示装置(システム)101は、ステップS1107へリターンし、以降の動作を実行する。これにより、ステップS1107において、基準イベント選定部108による基準イベント特定情報の更新がなされる度に、以降のステップS1108〜S1111が実行されて、更新後の基準イベントに従ったイベントオブジェクトの再表示が実行される。なお、ステップS1108〜S1111の流れにおいて、ステップS1104のようにイベントオブジェクトの表示サイズを更新してもよい。また、未作成であったイベントオブジェクトについては、ステップS1105と同様の動作によってイベントオブジェクトが作成されてもよい。
以上で説明したように、実施形態1によれば、複数の実行トレースの実行状況をユーザに対して有効に提示することが可能になる。また、複数の実行トレースの実行状況をユーザに対して対話的かつ有効に提示することが可能になる。さらに、複数の大量のイベントを持つ実行トレースの実行状況をユーザに対して有効に提示することが可能になる。さらにまた、複数の大量のイベントを持つ実行トレースの実行状況をユーザに対して対話的かつ有効に提示することが可能になる。
実施形態2
次に、実施形態2にかかる表示情報生成装置(システム)を含むプログラム実行状況表示装置(システム)について、図面を参照して詳細に説明する。上述した実施形態1では、プログラム実行状況を表示する平面または空間を形成する軸のうち時系列情報を示す時系列軸を、基準となるイベントの実行期間との相対実行期間を表す軸とした。これに対し、実施形態2では、時系列軸を、基準となるイベントの実行期間との相対実行順序を表す軸とする。
(構成および動作)
実施形態2にかかるプログラム実行状況表示装置(システム)の構成は、実施形態1において図1を用いて説明したプログラム実行状況表示装置(システム)101と同様であってよい。また、実施形態2にかかるプログラム実行状況表示装置(システム)の動作概略は、実施形態1において図11を用いて説明した動作フローと同様であってよい。ただし、実施形態2では、各イベントの時系列軸方向のサイズが固定であるため、図11のステップS1104に示したイベントを表すイベントオブジェクトの表示サイズを決定する工程が省略される。
つづいて、実施形態2にかかるプログラム実行状況表示装置(システム)の詳細について、具体的なプログラム例を用いて説明する。ただし、以下に示す説明は、単なる一例であって、以下で例示する実施形態を限定するものではない。また、実施形態2において、プログラム、プログラム実行状況表示、イベント、共通イベント、複数の実行トレースによる差分表示、イベント情報、2つのプログラムの実行例、および、共通イベント識別情報の一例については、それぞれ実施形態1における説明を引用する。
実施形態2におけるイベント情報は、図5に示すイベント情報と同様に、イベント識別情報と実行トレース識別情報とイベントタイミング情報と共通イベント識別情報とイベント属性情報とを含む。ただし、実施形態2では、イベントタイミング情報は、イベントの実行順序を示す情報である。イベント情報に含まれるその他の情報については、実施形態1と同様であってよい。
図12に、図2に示すソフトウエアプログラム201を実行した際に実施形態2において生成されるイベント情報リストの一例を示す。図12に示すように、イベント情報リスト1201は、イベント情報1202〜1219の合計18つのイベント情報を有しており、1行が1つのイベント情報を表している。例えば、イベント情報1203は、イベント識別情報、実行トレース識別情報、イベントタイミング情報、共通イベント識別情報、イベント属性情報のプログラム上の構造情報、イベント属性情報のイタレーション情報の順に、“1”、“1”、“2”、“1”、“LoopA:iteration:taskC”、“1”という情報を持つ。すなわち、イベント情報1203のイベントは、イベント識別情報が“1”であり、実行トレース識別情報が“1”であり、第1の実行トレースにおける2番目に実行されるイベントである。また、イベント情報1203のイベントは、プログラム構造上“LoopA”内の”iteration“内の“taskC”のイベントであり、“LoopA”の1回目のiterationで実行されたイベントである。さらに、イベント情報1203の共通イベント識別情報は“1”である。これは、イベント情報1203のイベントが、同一の共通イベント識別情報を持つイベント1211と共通イベントであることを示す。
なお、イベント識別情報のバリエーションおよびイベントタイミング情報のバリエーションは、実施形態1と同様であってよい。また、イベント属性情報のバリエーションは、実施形態1と同様であってよい。ただし、実施形態2では、イベント属性情報がプログラム実行時情報である場合、そのプログラム実行時情報は、プログラム実行時に取得可能な実行時の状況を表す情報であってよい。
実施形態2における軸情報は、実施形態1と同様に、表示時系列特定情報と属性軸情報とを含む情報である。属性軸情報は、実施形態1と同様であってよい。ただし、実施形態2では、表示時系列特定情報は、1イベント当たりの時系列軸方向の表示サイズを表す表示時系列単位情報と、表示する範囲(イベント数)を表す表示時系列範囲情報を含む。なお、軸情報のバリエーションは、実施形態1と同様であってよい。
図13に、図2に示すソフトウエアプログラムを実行した際の実施形態2にかかる軸情報の一例を示す。図13に示すように、軸情報1301は、表示時系列特定情報1302と、属性情報1303および1304とを含む。表示時系列特定情報1302の表示時系列単位情報は、“2”である。これは、1イベント当たりの表示サイズが2であることを示す。また、表示時系列特定情報1302の表示時系列範囲情報は、時系列軸表示始点を“1”とし、時系列軸表示終点を“4”としている。これは、“1”から“4”までの範囲を表示することを示す。属性軸情報1303は、第1の実行トレースを表す属性軸情報であり、要素名情報“実行1”とし、実行トレース識別情報を“1”とし、表示位置情報を“0”としている。属性軸情報1304は、第2の実行トレースを表す属性軸情報であり、要素名情報を“実行2”とし、実行トレース識別情報を“2”とし、表示位置情報を“100”としている。
基準イベント特定情報は、実施形態1と同様であってよい。ここで図14に、図2に示すソフトウエアプログラムを実行した際に実施形態2において生成される基準イベント特定情報リストの一例を示す。図14に示すように、基準イベント特定情報1401は、2つの基準イベント特定情報1402および1403を含む。1つの基準イベント特定情報1402は“3”であり、他の1つの基準イベント特定情報1403は“12”である。
イベントオブジェクトは、実施形態1と同様であってよい。ただし、実施形態2では、時系列軸方向の表示サイズが全てのイベントオブジェクトに対して共通である。そのため、実施形態2では、イベントオブジェクトの表示サイズを決定するための特別なステップを要しない。なお、実施形態2では、イベントオブジェクトの表示位置決定およびイベントオブジェクトの生成に、図12に示したイベント情報リスト1201と、図13に示した軸情報1301と、図14に示した基準イベント特定情報リスト1401とが用いられる。その他の説明は、実施形態1におけるイベントオブジェクト、ならびに、イベントオブジェクトの表示位置の決定、表示サイズの決定およびイベントオブジェクト生成の説明と同様であってよい。以降、基準イベント特定情報リスト1401に少なくとも2つ以上の基準イベント特定情報が登録されている場合と、基準イベント特定情報が登録されていない場合とに分けて説明する。
<少なくとも2つ以上の基準イベントが登録されている場合>
まず、基準イベント特定情報リスト1401に少なくとも2つ以上の基準イベント特定情報が登録されている場合について説明する。この場合、イベントオブジェクト生成部105は、イベント情報リスト1201と基準イベント特定情報リスト1401とに基づいて基準イベントのイベント情報を特定する。つづいて、イベントオブジェクト生成部105は、第1の実行トレースにおける第1の基準イベントを表す第1の基準イベントオブジェクトの表示始点位置と、第2の実行トレースにおける第2の基準イベントを表す第2の基準イベントオブジェクトの表示始点位置とが、同じとなる表示始点位置を決定する。なお、第1の基準イベントと第2の基準イベントとは、共通イベントであって、ユーザによって選定された基準イベントである。
次に、イベントオブジェクト生成部105は、基準イベントのイベント情報の実行順序と軸情報の表示時系列特定情報1302とに基づいて基準イベントオブジェクトの時系列軸方向の表示サイズを決定し、基準イベントのイベント情報の実行トレース識別情報と軸情報の属性軸情報1303とに基づいて属性軸方向の表示位置を決定し、基準イベントのイベント情報の共通イベント識別情報に固有に割り当てられた表示方式で基準イベントが表示されるように基準イベントオブジェクトを生成する。
ここで、基準イベント特定情報リスト1401に少なくとも2つ以上の基準イベント特定情報が登録されている場合の基準イベントオブジェクトの生成例を、具体例を挙げて説明する。イベントオブジェクト生成部105は、イベント識別情報が“3”である第1の基準イベントのイベント情報1205およびイベント識別情報が“12”である第2の基準イベントのイベント情報1214の時系列軸に沿った位置(表示始点位置)を同じ位置(たとえば“4”)とする。ここで、表示始点位置は、基準イベントを表示する始点位置情報であり、例えば、プログラム実行状況表示装置(システム)101で決められた情報であってもよいし、ファイルで与えられる情報であってもよいし、ユーザのインターフェースからの入力情報であってもよいし、第1の基準イベントが表示されている画面上の位置であってもよい。
次に、イベントオブジェクト生成部105は、軸情報の表示時系列特定情報1302の“2表示間隔当たりが表すイベント数は1である”という情報に基づいて時系列軸方向の1イベント当たりの表示サイズを“2“とする。
また、イベントオブジェクト生成部105は、イベント情1205の実行トレース識別情報“1”と軸情報の属性軸情報1303とに基づいて属性軸方向の表示位置“0”を決定し、基準イベントのイベント情報の共通イベント識別情報に固有に割り当てられた色“赤”で表示することを決定し、これらの決定にしたがって基準イベントを表す基準イベントオブジェクトを生成する。ただし、固有に割り当てられた色に限らず、ハッチングの種類や描画線の種類など、ユーザに識別させることができる表示形式で基準イベントオブジェクトが生成されればよい。
また、イベントオブジェクト生成部105は、イベント情報1214の実行トレース識別情報“2”と軸情報の属性軸情報1303とに基づいて属性軸方向の表示位置“100”を決定し、基準イベントのイベント情報の共通イベント識別情報に固有に割り当てられた色“赤”で表示することを決定し、これらの決定にしたがって基準イベントを表す基準イベントオブジェクトを生成する。ただし、上記と同様に、固有に割り当てられた色に限らず、ハッチングの種類や描画線の種類など、ユーザに識別させることができる表示形式で基準イベントオブジェクトが生成されればよい。
基準イベント特定情報リスト1401に少なくとも2つ以上の基準イベント特定情報が登録されている場合の非基準イベントオブジェクトの生成例は、実施形態1と同様であってよい。そこで、実施形態2にかかる具体例は、以下のようになる。
基準イベント特定情報リスト1401に少なくとも2つ以上の基準イベント特定情報が登録されている場合の共通イベントを持つイベントのイベントオブジェクトの生成例では、イベントオブジェクト生成部105は、基準イベント特定情報リスト1401に基づいて、イベント識別情報が“3”もしくは“12”でないイベントを非基準イベントと特定する。ここでは、イベント情報1207を例に、共通イベントを持つ非基準イベントのイベントオブジェクトの生成について説明する。この非基準イベント(イベント情報1207)の実行順序は“6”であり、実行トレース識別情報は“1”である。これと同一の実行トレース識別情報“1”を持つ基準イベントのイベント情報はイベント情報1205であり、その実行順序は“4”である。
そこで、まず、イベントオブジェクト生成部105は、非基準イベントの表示始点位置を決定する。イベント情報1207が表す共通イベントを持つ非基準イベントの表示始点位置は、イベント情報1207から特定される非基準イベントの実行順序“6”と、イベント情報1205から特定される基準イベントの実行順序“4”と、軸情報の表示時系列特定情報1302の“1イベント当たりの表示サイズ2である”という情報と、基準イベントのイベントオブジェクトの表示始点位置“4”とに基づいて計算される。具体的には、式“{(非基準イベントの実行順序−基準イベントの実行順序)×(イベント当たりの表示サイズ)}+基準イベントの表示始点位置”を用いて、“{(6−4)×2}+4”を計算する。これにより、イベント情報1207が表す共通イベントを持つ非基準イベントの表示始点位置が“8”と求まる。
次に、イベントオブジェクト生成部105は、軸情報の表示時系列特定情報1302の“1イベント当たりの表示サイズは2である”という情報に基づいて、イベント情報1207が表す共通イベントを持つ非基準イベントの時系列軸方向の表示サイズを“2”とする。
また、イベントオブジェクト生成部105は、イベント情報1207の実行トレース識別情報“1”と軸情報の属性軸情報1303とに基づいて、属性軸方向の表示位置“0”を決定し、非基準イベントのイベント情報の共通イベント識別情報に固有に割り当てられた色“緑”で表示することを決定し、これらの決定にしたがって非基準イベントを表す非基準イベントオブジェクトを生成する。他の共通イベント識別情報を持つ非基準イベントについても同様にして非基準イベントオブジェクトが生成される。ただし、固有に割り当てられた色に限らず、ハッチングの種類や描画線の種類など、ユーザに識別させることができる表示形式で共通イベント識別情報を持つ非基準イベントを表す非基準イベントオブジェクトが生成されればよい。
つづいて、基準イベント特定情報リスト1401に少なくとも2つ以上の基準イベント特定情報が登録されている場合の共通イベントを持たないイベントオブジェクトの生成例について説明する。ここでは、イベント情報1215を例に共通イベントを持たない非基準イベントのイベントオブジェクトの生成について説明する。この非基準イベント(イベント情報1215)の実行順序は“5”であり、実行トレース識別情報は“2”である。これと同一の実行トレース識別情報“2”を持つ基準イベントのイベント情報はイベント情報1214であり、その実行順序は“4”である。
そこで、イベントオブジェクト生成部105は、非基準イベントの表示始点位置を決定する。イベント情報1214が表す共通イベントを持つ非基準イベントの表示始点位置は、イベント情報1214から特定される非基準イベントの実行順序“5”と、イベント情報1215から特定される基準イベントの実行順序“4”と、軸情報の表示時系列特定情報1302の“1イベント当たりの表示サイズ2である”という情報と、基準イベントのイベントオブジェクトの表示始点位置“4”とに基づいて計算される。具体的には、式“{(非基準イベントの実行順序−基準イベントの実行順序)×(“1イベント当たりの表示サイズ)}+基準イベントの表示始点位置”を用いて“{(5−4)×2}+4”を計算する。これにより、イベント情報1214が表す共通イベントを持つ非基準イベントの表示始点位置が“6”と求まる。
次に、イベントオブジェクト生成部105は、軸情報の表示時系列特定情報1302の“1イベント当たりの表示サイズ2である”という情報に基づいて、イベント情報1214が表す共通イベントを持つ非基準イベントの表示サイズを“2”とする。
また、イベントオブジェクト生成部105は、イベント情報1214の実行トレース識別情報“2”と軸情報の属性軸情報1304とに基づいて、属性軸方向の表示位置“100”を決定し、非基準イベントのイベント情報の共通イベント識別情報がないイベント固有の色“灰色”で表示することを決定し、これらの決定にしたがって非基準イベントを表す非基準イベントオブジェクトを生成する。他の共通イベント識別情報を持たない非基準イベントも同様にして非基準イベントオブジェクトが生成される。ただし、固有に割り当てられた色に限らず、ハッチングの種類や描画線の種類など、ユーザに識別させることができる表示形式で共通イベント識別情報を持たない非基準イベントを表す非基準イベントオブジェクトが生成されればよい。
<基準イベントが登録されていない場合>
次に、基準イベント特定情報リスト1401に基準イベント特定情報が登録されていない場合について説明する。基準イベント特定情報リスト1401に1つも基準イベント特定情報が登録されていない場合のイベントオブジェクト生成は、共通イベントを持つイベントオブジェクトの生成と共通イベントを持たないイベントオブジェクトの生成とが含まれる。
イベントオブジェクト生成部105は、イベント情報リスト1201のイベント情報の実行順序と軸情報の表示時系列特定情報1302とからイベントを表示するか否かを判定する。イベントオブジェクト生成部105は、イベント情報リスト1201のイベント情報の実行順序と軸情報の表示時系列特定情報1302とからイベントを表すイベントオブジェクトの表示開始位置を決定する。
次に、イベントオブジェクト生成部105は、イベント情報の実行順序と軸情報の表示時系列特定情報1302とに基づいてイベントオブジェクトの時系列軸方向の表示サイズを決定し、イベント情報の共通イベント識別情報に基づいて共通イベント識別情報に固有に割り当てられた表示方式でイベントが表示されるようにイベントオブジェクトを生成する。ここで、共通イベント識別情報を持たないイベントのイベントオブジェクトについては、共通イベントを持つイベントのイベントオブジェクトとは異なる表示方式で表示されるようにイベントオブジェクトが生成されてもよい。以下に、共通イベントを持つイベントのイベントオブジェクトの生成と、共通イベントを持たないイベントのイベントオブジェクトの生成とについて例を挙げて説明する。
まず、基準イベント特定情報リスト1401に基準イベント特定情報が登録されていない場合の共通イベントを持つイベントのイベントオブジェクトの生成例について説明する。ここでは、共通イベントを持つイベント情報1211が表すイベントに着目して説明する。イベントオブジェクト生成部105は、イベント情報1211が表すイベントを表示すべきか否かを判定する。イベント情報1211のイベント実行順序“1”と軸情報の表示時系列特定情報1302の表示始点情報“1”および表示終点情報“4”とから、イベント情報1211が表すイベントが時系列軸方向の表示範囲に含まれるため、イベントオブジェクト生成部105は、イベント情報1211が表すイベントを“表示する”と判定する。
次に、イベントオブジェクト生成部105は、イベント情報1211が表すイベントの表示始点位置を決定する。イベントオブジェクト生成部105はイベント情報1205が表すイベントの実行順序“1”と軸情報の表示時系列特定情報1302の“1イベント当たりの表示サイズ2である”という情報とに基づいて、イベント情報1211を表すイベントオブジェクトの表示始点位置を計算する。具体的には、式“イベントの実行順序×1イベント当たりの表示サイズ”を用いて“1×2”を計算する。これにより、イベント情報1211を表すイベントオブジェクトの表示始点位置が“2”と求まる。
次に、イベントオブジェクト生成部105は、イベント情報1211が表すイベントの表示サイズを決定する。イベントの表示サイズは“1イベント当たりの表示間隔”であるため、イベントオブジェクト生成部105は、軸情報の時系列情報1302の“1イベント当たりの表示サイズ2である”という情報を用いて、イベント情報1211が表すイベントのイベントオブジェクトの表示サイズを“2”とする。
次に、イベントオブジェクト生成部105は、イベント情報1211の共通イベント識別情報“1”に基づいて、他の共通イベント識別情報とは異なる表示形式で表されるイベントオブジェクトを生成する。本実施形態では、固有の表示形式を色で表現している。そこで、イベントオブジェクト生成部105は、イベント情報1211のイベントを“青”で表示する。ただし、固有に割り当てられた色に限らず、ハッチングの種類や描画線の種類など、ユーザに識別させることができる表示形式で共通イベントを持つイベントオブジェクトが生成されればよい。
次に、基準イベント特定情報リスト1401に基準イベント特定情報が登録されていない場合の共通イベントを持たないイベントのイベントオブジェクトの生成例について説明する。ここでは、共通イベントを持たないイベント情報1204が表すイベントに着目して説明する。イベントオブジェクト生成部105は、イベント情報1204が表すイベントを表示すべきか否かを判定する。イベント情報1204のイベント実行順序“4”と軸情報の表示時系列特定情報1302の表示始点情報“1”および表示終点情報“4”とから、イベント情報1204が表すイベントが時系列軸方向の表示範囲に含まれるため、イベントオブジェクト生成部105は、このイベントオブジェクトを“表示する”と判定する。
次に、イベントオブジェクト生成部105は、イベント情報1204が表すイベントの表示始点位置を決定する。イベント情報1204を表すイベントオブジェクトの表示始点位置は、イベント情報1204が表すイベントの実行順序“3”と軸情報の表示時系列特定情報1302の情報“1イベント当たりの表示サイズ2である”という情報とに基づいて計算される。具体的には、式“イベントの実行順序×1イベント当たりの表示サイズ”を用いて“3×2”を計算する。これにより、イベント情報1204を表すイベントオブジェクトの表示始点位置が“6”と求まる。
次に、イベントオブジェクト生成部105は、軸情報の時系列情報1302の“1イベント当たりの表示サイズ2である”という情報を用いて、イベント情報1204が表すイベントのイベントオブジェクトの表示サイズを“2”とする。
次に、イベントオブジェクト生成部105は、イベント情報1204が共通イベント識別情報を持たないことに基づいて、共通イベント識別情報とは異なる表示形式で表されるイベントオブジェクトを生成する。本実施形態では固有の表示形式を色で表現しているため、イベント情1204のイベントは、たとえば“灰色”で表示される。ただし、固有に割り当てられた色に限らず、ハッチングの種類や描画線の種類など、ユーザに識別させることができる表示形式で共通イベントを持たないイベントオブジェクトが生成されればよい。
次に、以上のように生成された軸オブジェクトおよびイベントオブジェクトよりなるプログラム実行状況の表示について説明する。なお、プログラム実行状況の表示例としては、基準イベントが選択されていない場合と、基準イベントが選択されている場合とが存在する。
<基準イベントが選択されていない場合>
まず、基準イベントが選択されていない場合について、図15のプログラム実行状況表示例を用いて説明する。本実施形態では、画面上に表示可能な範囲のみを表示し、スクロールバーにより表示領域を変更するものとする。
表示部107は、軸オブジェクトを入力し、軸オブジェクトが持つ表示情報に基づいて画面上に描画する。その結果、図15に示すように、プログラム実行状況表示例1501では、時系列軸オブジェクト1520が一定区間ごとに時間情報のラベルを表示し、属性軸オブジェクト1521が属性ラベルを表示する。たとえば、時系列軸オブジェクト1520は、“1”から“4“を表示し、ラベルを1イベント単位で表示する。表示部107は、画面サイズもしくはウインドウサイズ等の表示サイズを入力とし、表示可能なサイズの軸オブジェクトを表示してもよいし、表示可能なサイズの軸オブジェクトにサイズを変換して表示してもよい。属性軸オブジェクト1521は、属性軸要素1522と属性軸要素1523とのラベルをそれぞれ表示する。
表示部107は、イベントオブジェクトを入力し、イベントオブジェクトが持つ表示位置情報に基づいて画面上に描画する。その結果、図15に示すように、プログラム実行状況表示例1501では、イベント情報1202、1203、1204、1205、1210、1211、1212および1213を表すイベントオブジェクトがそれぞれ順に、イベントオブジェクト1502、1503、1504、1505、1510、1511、1512および1513として表示される。
<基準イベントが選択されている場合>
次に、基準イベントが選択されている場合について、図16プログラム実行状況表示例を用いて説明する。本実施形態では、画面上に表示可能な範囲のみを表示し、スクロールバーにより表示領域を変更する。
表示部107は、基準イベントが選択されていない場合と同様に、軸オブジェクトを入力して画面上に描画するとともに、各軸オブジェクトのラベルを表示する。
表示部107は、基準イベントオブジェクトを入力し、基準イベントオブジェクトが持つ表示位置情報に基づいて画面上に描画する。その結果、図16に示すように、プログラム実行状況表示例1601では、時系列軸オブジェクト1620が一定区間ごとに時間情報のラベルを表示し、属性軸オブジェクト1621が属性ラベルを表示する。例えば、時系列軸オブジェクト1620は、“1”から“4“を表示し、ラベルを1イベント単位で表示する。表示部107は、画面サイズもしくはウインドウサイズ等の表示サイズを入力とし、表示可能なサイズの軸オブジェクトを表示してもよいし、表示可能なサイズの軸オブジェクトにサイズを変換して表示してもよい。属性軸オブジェクト1621は、属性軸要素1622と属性軸要素1623とのラベルをそれぞれ表示する。また、プログラム実行状況表示例1601では、イベント情報1205、1206、1207、1208、1214、1215、1216および1217を表すイベントオブジェクトがそれぞれ順に、イベントオブジェクト1605、1606、1607、1608、1614、1615、1616、1617として表示される。
<具体例>
具体的には、図15のプログラム実行状況表示例1501では、共通イベントを持つイベントオブジェクト1503、1505および1511が“灰色”以外の色を用いたオブジェクトとして表示されている。ただし、固有の表示形式として、ハッチングの種類や描画線の種類など、色以外の表示形式を採用した場合には、採用された表示形式に従って、共通イベント識別情報を持たない非共通イベントとは異なる表示形式でイベントオブジェクトが表示されればよい。基準イベント選定部108は、マウスなどのユーザインターフェースでイベントオブジェクト1505が選択されると、イベントオブジェクト1505のイベント情報1205から共通イベント識別情報“2”を選定する。次に、共通イベント選定部108は、イベント情報リスト1201から基準イベント特定情報“2”を持つイベント情報1205および1214を基準イベントとして選定し、これらの基準イベントのイベント識別情報“3”および“12”を基準イベント特定情報とし、基準イベント特定情報格納部103に格納する。その結果、図16に示すようなプログラム実行状況表示例1601が表示される。
なお、ユーザによる基準イベントの指定方法は、共通イベントを持つ少なくとも1つ以上のイベントを選定する方法であり、例えば、ファイルによる指定であってもよいし、ユーザインターフェースによる指定であってもよい。
以上で説明したように、実施形態2によれば、実施形態1と同様に、複数の実行トレースの実行状況をユーザに対して有効に提示することが可能になる。また、複数の実行トレースの実行状況をユーザに対して対話的かつ有効に提示することが可能になる。さらに、複数の大量のイベントを持つ実行トレースの実行状況をユーザに対して有効に提示することが可能になる。さらにまた、複数の大量のイベントを持つ実行トレースの実行状況をユーザに対して対話的かつ有効に提示することが可能になる。
実施形態3
次に、実施形態3にかかる表示情報生成装置(システム)を含むプログラム実行状況表示装置(システム)について、図面を参照して詳細に説明する。実施形態3は、実施形態1で例示したプログラム実行状況表示装置(システム)において、同一の実行トレースに複数の基準イベントが存在する場合を例示するものである。
(構成および動作)
実施形態3にかかるプログラム実行状況表示装置(システム)の構成は、実施形態1において図1を用いて説明したプログラム実行状況表示装置(システム)101と同様であってよい。また、実施形態3にかかるプログラム実行状況表示装置(システム)の動作概略は、実施形態1において図11を用いて説明した動作フローと同様であってよい。
つづいて、実施形態1にかかるプログラム実行状況表示装置(システム)の詳細について、具体的なプログラム例を用いて説明する。ただし、以下に示す説明は、単なる一例であって、以下で例示する実施形態を限定するものではない。また、実施形態3において、プログラム、プログラム実行状況表示、イベント、共通イベント、複数の実行トレースによる差分表示、イベント情報、2つのプログラムの実行例、共通イベント識別情報の一例、イベント情報の一例、イベント識別情報のバリエーション、イベントタイミング情報のバリエーション、イベント属性情報のバリエーション、軸情報、軸情報の一例、軸情報のバリエーション、基準イベント特定情報、基準イベント特定情報の一例、イベントオブジェクト、および、イベントオブジェクトの表示位置の決定、表示サイズの決定およびイベントオブジェクト生成(少なくとも2つ以上の基準イベントが登録されている場合と基準イベントが登録されていない場合との基準イベントオブジェクト生成の一例、および、その他のイベントオブジェクト生成の例(共通イベントを持つイベントオブジェクトの生成例および共通イベントを持たないイベントオブジェクトの生成例を含む)を含む)ついては、それぞれ実施形態1における説明を引用する。ただし、実施形態3では、図6に示すイベント情報リスト601の代わりに、図17に示すイベント情報リスト1701が生成される。図17に示すイベント情報リスト1701は、同じ共通イベント識別情報“1”を持つイベント情報として、イベント情報1703、1705、1707、1711、1714および1717が含まれている。したがって、イベント情報1703、1705、1707、1711、1714および1717のうちの何れかに対応するイベントが基準イベント選定部108によって基準イベントとして選定された場合、基準イベント特定情報格納部103には、選択されたイベントのイベント情報と、これと同じ共通イベント識別情報“1”を持つ他のイベントの中から選択されたイベントのイベント識別情報とが格納される。
次に、実施形態3において生成された軸オブジェクトおよびイベントオブジェクトよりなるプログラム実行状況の表示について説明する。なお、プログラム実行状況の表示例としては、基準イベントが選択されていない場合と、基準イベントが選択されている場合とが存在する。
<基準イベントが選択されていない場合>
まず、基準イベントが選択されていない場合について、図18のプログラム実行状況表示例を用いて説明する。本実施形態では、画面上に表示可能な範囲のみを表示し、スクロールバーにより表示領域を変更するものとする。また、実施形態3において、軸オブジェクト表示については、実施形態1と同様である。
表示部107は、イベントオブジェクトを入力し、イベントオブジェクトが持つ表示位置情報に基づいて画面上に描画する。その結果、図18に示すように、プログラム実行状況表示例1801では、時系列軸オブジェクト1820が一定区間ごとに時間情報のラベルを表示し、属性軸オブジェクト1821が属性ラベルを表示する。たとえば、時系列軸オブジェクト1820は、“0”から“1000“を表示し、ラベルを2000単位で表示する。表示部107は、画面サイズもしくはウインドウサイズ等の表示サイズを入力とし、表示可能なサイズの軸オブジェクトを表示してもよいし、表示可能なサイズの軸オブジェクトにサイズを変換して表示してもよい。属性軸オブジェクト1821は、属性軸要素1822と属性軸要素1823とのラベルをそれぞれ表示する。また、プログラム実行状況表示例1801では、イベント情報1702、1710、1711、1712、1713、1714、1715、1716、1717、1718および1719を表すイベントオブジェクトがそれぞれ順に、イベントオブジェクト1802、1810、1811、1812、1813、1814、1815、1816、1817、1818および1819として表示される。
次に、基準イベントが選択されている場合について、図19のプログラム実行状況表示例を用いて説明する。本実施形態では、画面上に表示可能な範囲のみを表示し、スクロールバーにより表示領域を変更する。また、実施形態3において、軸オブジェクト表示については、実施形態1と同様である。
表示部107は、基準イベントオブジェクトを入力し、基準イベントオブジェクトが持つ表示位置情報に基づいて画面上に描画する。その結果、図19に示すように、プログラム実行状況表示例1901では、時系列軸オブジェクト1920が一定区間ごとに時間情報のラベルを表示し、属性軸オブジェクト1921が属性ラベルを表示する。たとえば、時系列軸オブジェクト1920は、“0”から“1000“を表示し、ラベルを2000単位で表示する。表示部107は、画面サイズもしくはウインドウサイズ等の表示サイズを入力とし、表示可能なサイズの軸オブジェクトを表示してもよいし、表示可能なサイズの軸オブジェクトにサイズを変換して表示してもよい。属性軸オブジェクト1921は、属性軸要素1922と属性軸要素1923とのラベルをそれぞれ表示する。また、プログラム実行状況表示例1901では、イベント情報1703、1704、1705、1706、1707、1708、1709、1711、1712、1713、1714、1715、1716、1717、1718および1719を表すイベントオブジェクトがそれぞれ順に1903、1904、1905、1906、1907、1908、1909、1911、1912、1913、1914、1915、1916、1917、1918および1919として表示される。
<具体例>
具体的には、図18のプログラム実行状況表示例1801では、共通イベントを持つイベントオブジェクト1811、1814、1817、1818および1819が“灰色”以外の色を用いたオブジェクトとして表示されている。ただし、固有の表示形式として、ハッチングの種類や描画線の種類など、色以外の表示形式を採用した場合には、採用された表示形式に従って、共通イベント識別情報を持たない非共通イベントとは異なる表示形式でイベントオブジェクトが表示されればよい。基準イベント選定部108は、マウスなどのユーザインターフェースでイベントオブジェクト1811が選択されると、イベントオブジェクト1811のイベント情報1711から共通イベント識別情報“1”および実行トレース識別情報“2”を抽出する。次に、基準イベント選定部108は、イベント情報リスト1701から、実行トレース識別情報“2”とは異なり、かつ、共通イベント識別情報“1”を持つイベント情報1703、1705および1707を選定する。次に、基準イベント選定部108は、選定されたイベント情報において実行トレース識別情報が同じイベント情報が複数存在する場合には、実行トレース識別情報ごとに1つのイベント情報を選択する。本具体例では、イベント情報1703、1705および1707の中から基準イベント選定条件情報に基づいて、他の実行トレースにおける基準イベントとして選択されたイベント情報1711の実行開始時刻“1000”に最も近い実行開始時刻“10000”のイベント情報1703によって表わされるイベントが基準イベントとして選択される。その結果、基準イベント特定情報格納部103には、イベント情報1703のイベント識別情報“1”と、イベント情報1711のイベント識別情報“9”とが、基準イベント特定情報として格納される。
なお、基準イベントの指定方法は、共通イベントを持つ少なくとも1つ以上のイベントを選定する方法であり、例えば、ファイルによる指定であってもよいし、ユーザインターフェースによる指定であってもよい。
また、基準イベント選定条件情報は、同じ共通イベント識別情報を持つ共通イベントから1つを選定可能な条件である。したがって、基準イベント選定条件情報に基づいて選択される基準イベントは、例えば、ユーザによって選択された共通イベントの実行トレースとは異なる実行トレース上の共通イベントであって、ユーザによって選択された共通イベントに実行開始時刻が最も近い共通イベントであってもよいし、実行期間が最大の共通イベントであってもよいし、実行期間が最小の共通イベントであってもよいし、ユーザによって選択された共通イベントに実行順序が最も近い共通イベントであってもよいし、実行順序が最小の共通イベントであってもよいし、実行順序が最大の共通イベントであってもよい。また、選択される基準イベントは、ユーザによって選択された共通イベントの実行トレースと同じ実行トレース上の共通イベントであって、ユーザによって選択された共通イベントに実行開始時刻が最も近いイベントであってもよいし、ユーザによって選択された共通イベントに実行順序に最も近いイベントであってもよい。さらに、選択される基準イベントは、ユーザインターフェースを介したユーザからの指示に基づいて選択されてもよい。さらにまた、基準イベント選定条件情報は、プログラム実行状況装置で予め決められた条件であってもよいし、ユーザインターフェースを介して与えられる情報であってもよいし、ファイルにより与えられる条件であってもよい。
以上で説明したように、実施形態3によれば、実施形態1と同様に、複数の実行トレースの実行状況をユーザに対して有効に提示することが可能になる。また、複数の実行トレースの実行状況をユーザに対して対話的かつ有効に提示することが可能になる。さらに、複数の大量のイベントを持つ実行トレースの実行状況をユーザに対して有効に提示することが可能になる。さらにまた、複数の大量のイベントを持つ実行トレースの実行状況をユーザに対して対話的かつ有効に提示することが可能になる。
実施形態4
次に、実施形態4にかかる表示情報生成装置(システム)を含むプログラム実行状況表示装置(システム)について、図面を参照して詳細に説明する。実施形態4は、実施形態2で例示したプログラム実行状況表示装置(システム)において、同一の実行トレースに複数の基準イベントが存在する場合を例示するものである。
(構成および動作)
実施形態4にかかるプログラム実行状況表示装置(システム)の構成は、実施形態1において図1を用いて説明したプログラム実行状況表示装置(システム)101と同様であってよい。また、実施形態4にかかるプログラム実行状況表示装置(システム)の動作概略は、実施形態4において図11を用いて説明した動作フローと同様であってよい。
つづいて、実施形態4にかかるプログラム実行状況表示装置(システム)の詳細について、具体的なプログラム例を用いて説明する。ただし、以下に示す説明は、単なる一例であって、以下で例示する実施形態を限定するものではない。また、実施形態4において、プログラム、プログラム実行状況表示、イベント、共通イベント、複数の実行トレースによる差分表示、イベント情報、2つのプログラムの実行例、共通イベント識別情報の一例、イベント情報の一例、イベント識別情報のバリエーション、イベントタイミング情報のバリエーション、イベント属性情報のバリエーション、軸情報、軸情報の一例、軸情報のバリエーション、基準イベント特定情報、基準イベント特定情報の一例、イベントオブジェクト、および、イベントオブジェクトの表示位置の決定、表示サイズの決定およびイベントオブジェクト生成(少なくとも2つ以上の基準イベントが登録されている場合と基準イベントが登録されていない場合との基準イベントオブジェクト生成の一例、および、その他のイベントオブジェクト生成の例(共通イベントを持つイベントオブジェクトの生成例および共通イベントを持たないイベントオブジェクトの生成例を含む)を含む)ついては、それぞれ実施形態2または実施形態2によって引用される実施形態1における説明を引用する。ただし、実施形態4では、図12に示すイベント情報リスト1201の代わりに、図20に示すイベント情報リスト2001が生成される。図20に示すイベント情報リスト2001は、同じ共通イベント識別情報“1”を持つイベント情報として、イベント情報2003、2005、2007、2011、2014および2017が含まれている。したがって、イベント情報2003、2005、2007、2011、2014および2017のうちの何れかに対応するイベントが基準イベント選定部108によって基準イベントとして選定された場合、基準イベント特定情報格納部103には、選択されたイベントのイベント情報と、これと同じ共通イベント識別情報“1”を持つ他のイベントの中から選択されたイベントのイベント識別情報とが格納される。
次に、実施形態4において生成された軸オブジェクトおよびイベントオブジェクトよりなるプログラム実行状況の表示について説明する。なお、プログラム実行状況の表示例としては、基準イベントが選択されていない場合と、基準イベントが選択されている場合とが存在する。
<基準イベントが選択されていない場合>
まず、基準イベントが選択されていない場合について、図21のプログラム実行状況表示例を用いて説明する。本実施形態では、画面上に表示可能な範囲のみを表示し、スクロールバーにより表示領域を変更する。また、実施形態4において、軸オブジェクト表示については、実施形態2と同様である。
表示部107は、イベントオブジェクトを入力し、イベントオブジェクトが持つ表示位置情報に基づいて画面上に描画する。その結果、図21に示すように、プログラム実行状況表示例2101では、時系列軸オブジェクト2120が一定区間ごとに時間情報のラベルを表示し、属性軸オブジェクト1521が属性ラベルを表示する。たとえば、時系列軸オブジェクト2120は、“1”から“4“を表示し、ラベルを1イベント単位で表示する。表示部107は、画面サイズもしくはウインドウサイズ等の表示サイズを入力とし、表示可能なサイズの軸オブジェクトを表示してもよいし、表示可能なサイズの軸オブジェクトにサイズを変換して表示してもよい。属性軸オブジェクト2121は、属性軸要素2122と属性軸要素2123とのラベルをそれぞれ表示する。また、プログラム実行状況表示例2101では、イベント情報2002、2003、2004、2005、2010、2011、2012、2013を表すイベントオブジェクトがそれぞれ順に、イベントオブジェクト2102、2103、2104、2105、2110、2111、2112、2113として表示される。
<基準イベントが選択されている場合>
次に、基準イベントが選択されている場合について、図22のプログラム実行状況表示例を用いて説明する。本実施形態では、画面上に表示可能な範囲のみを表示し、スクロールバーにより表示領域を変更する。また、実施形態4において、軸オブジェクト表示については、実施形態2と同様である。
表示部107は、基準イベントオブジェクトを入力し、基準イベントオブジェクトが持つ表示位置情報に基づいて画面上に描画する。その結果、図22に示すように、プログラム実行状況表示例2201では、時系列軸オブジェクト2220が一定区間ごとに時間情報のラベルを表示し、属性軸オブジェクト2221が属性ラベルを表示する。例えば、時系列軸オブジェクト2220は、“1”から“4“を表示し、ラベルを1イベント単位で表示する。表示部107は、画面サイズもしくはウインドウサイズ等の表示サイズを入力とし、表示可能なサイズの軸オブジェクトを表示してもよいし、表示可能なサイズの軸オブジェクトにサイズを変換して表示してもよい。属性軸オブジェクト2221は、属性軸要素2222と属性軸要素2223とのラベルをそれぞれ表示する。また、プログラム実行状況表示例2201では、イベント情報2005、2006、2007、2008、2014、2015、2016、2017を表すイベントオブジェクトがそれぞれ順に、イベントオブジェクト2205、2206、2207、2208、2214、2215、2216、2217として表示される。
<具体例>
具体的には、図21のプログラム実行状況表示例2101では、共通イベントを持つイベント2103、2105および2111が“灰色”以外の色を用いたオブジェクトとして表示されている。ただし、固有の表示形式として、ハッチングの種類や描画線の種類など、色以外の表示形式を採用した場合には、採用された表示形式に従って、共通イベント識別情報を持たない非共通イベントとは異なる表示形式でイベントオブジェクトが表示されればよい。基準イベント選定部108は、マウスなどのユーザインターフェースでイベントオブジェクト2105が選択されると、イベントオブジェクト2105のイベント情報2005から共通イベント識別情報“1”および実行トレース識別情報“1”を抽出する。次に、基準イベント選定部108は、イベント情報リスト2001から実行トレース識別情報“1”とは異なり、かつ、共通イベント識別情報“1”を持つイベント情報2011、2014および2017を選定する。次に、基準イベント選定部108は、選定されたイベント情報において実行トレース識別情報が同じイベント情報が複数存在する場合には、実行トレース識別情報ごとに1つのイベント情報を選択する。本具体例では、イベント情報2011、2014および2017の中から基準イベント選定条件情報に基づいて、他の実行トレースにおける基準イベントとして選択されたイベント情報2005の実行順序情報“4”に最も近い実行順序情報“4”のイベント情報2014によって表わされるイベントを基準イベントとして選択される。その結果、基準イベント特定情報格納部103には、イベント情報2005のイベント識別情報“3”と、イベント情報2014のイベント識別情報“12”とが、基準イベント特定情報として格納される。
なお、実施形態4において、基準イベント選択方法のバリエーションおよび基準イベント選定条件情報のバリエーションは、実施形態3と同様であってよい。
以上で説明したように、実施形態4によれば、実施形態1と同様に、複数の実行トレースの実行状況をユーザに対して有効に提示することが可能になる。また、複数の実行トレースの実行状況をユーザに対して対話的かつ有効に提示することが可能になる。さらに、複数の大量のイベントを持つ実行トレースの実行状況をユーザに対して有効に提示することが可能になる。さらにまた、複数の大量のイベントを持つ実行トレースの実行状況をユーザに対して対話的かつ有効に提示することが可能になる。
上記実施形態およびその変形例は本発明を実施するための例にすぎず、本発明はこれらに限定されるものではなく、仕様等に応じて種々変形することは本発明の範囲内であり、更に本発明の範囲内において、他の様々な実施形態が可能であることは上記記載から自明である。例えば実施形態に対して適宜例示した変形例は、他の実施形態と組み合わせることも可能であることは言うまでもない。
101…プログラム実行状況表示装置、102…イベント情報格納部、103…基準イベント特定情報格納部、104…軸情報格納部、105…イベントオブジェクト生成部、106…軸オブジェクト生成部、107…表示部、108…基準イベント選定部、109…基準イベント特定情報更新部

Claims (14)

  1. 表示情報を生成する表示情報生成装置であって、
    2つ以上のイベントで構成される第1のプログラム実行結果に含まれる前記イベントのイベント情報および2つ以上のイベントで構成される第2のプログラム実行結果に含まれる前記イベントのイベント情報を格納するイベント情報格納部と、
    少なくとも共通の時系列軸の情報である時系列軸情報を格納する軸情報格納部と、
    少なくとも、前記イベントのうちの1つである第1の基準イベントを特定するための第1の基準イベント特定情報と、前記イベントのうちの他の1つである第2の基準イベントを特定するための第2の基準イベント特定情報とを格納する特定情報格納部と、
    前記イベントを表現したイベントオブジェクトを生成するイベントオブジェクト生成部と、
    前記イベントオブジェクトの表示位置を決定する表示位置決定部と、
    を備え、
    前記イベント情報は、少なくとも前記第1のプログラム実行結果または前記第2のプログラム実行結果における前記イベントの位置を示すタイミング情報を含み、
    前記表示位置決定部は、
    前記特定情報格納部に格納された前記第1の基準イベント特定情報に基づいて前記第1の基準イベントを前記第1のプログラム実行結果の基準とし、
    前記特定情報格納部に格納された前記第2の基準イベント特定情報に基づいて前記第2の基準イベントを前記第2のプログラム実行結果の基準とし、
    前記イベント情報格納部に格納された前記第1の基準イベントの第1のイベント情報におけるタイミング情報および前記第2の基準イベントの第2のイベント情報におけるタイミング情報に基づいて、前記第1の基準イベントと前記第2の基準イベントとの前記共通の時系列軸上の表示位置を同じ位置と決定し、
    前記イベントオブジェクト生成部は、前記表示位置決定部で決定された前記共通の時系列軸上の前記表示位置に基づいて、前記第1の基準イベントを表す第1のイベントオブジェクトと前記第2の基準イベントを表す第2のイベントオブジェクトとを生成する
    表示情報生成装置。
  2. 2つ以上のイベントで構成される第1のプログラム実行結果と2つ以上のイベントで構成される第2のプログラム実行結果とを共通の時系列軸上に並べて表示するプログラム実行状況表示システムであって、
    前記第1のプログラム実行結果に含まれる前記イベントのイベント情報および前記第2のプログラム実行結果に含まれる前記イベントのイベント情報を格納するイベント情報格納部と、
    少なくとも前記共通の時系列軸の情報である時系列軸情報を格納する軸情報格納部と、
    少なくとも、前記イベントのうちの1つである第1の基準イベントを特定するための第1の基準イベント特定情報と、前記イベントのうちの他の1つである第2の基準イベントを特定するための第2の基準イベント特定情報とを格納する特定情報格納部と、
    前記イベントを表現したイベントオブジェクトを生成するイベントオブジェクト生成部と、
    前記イベントオブジェクトの表示位置を決定する表示位置決定部と、
    を備え、
    前記イベント情報は、少なくとも前記第1のプログラム実行結果または前記第2のプログラム実行結果における前記イベントの位置を示すタイミング情報を含み、
    前記表示位置決定部は、
    前記特定情報格納部に格納された前記第1の基準イベント特定情報に基づいて前記第1の基準イベントを前記第1のプログラム実行結果の基準とし、
    前記特定情報格納部に格納された前記第2の基準イベント特定情報に基づいて前記第2の基準イベントを前記第2のプログラム実行結果の基準とし、
    前記イベント情報格納部に格納された前記第1の基準イベントの第1のイベント情報におけるタイミング情報および前記第2の基準イベントの第2のイベント情報におけるタイミング情報に基づいて、前記第1の基準イベントと前記第2の基準イベントとの前記共通の時系列軸上の表示位置を同じ位置と決定し、
    前記イベントオブジェクト生成部は、前記表示位置決定部で決定された前記共通の時系列軸上の前記表示位置に基づいて、前記第1の基準イベントを表す第1のイベントオブジェクトと前記第2の基準イベントを表す第2のイベントオブジェクトとを生成する
    プログラム実行状況表示システム。
  3. 前記第1の基準イベントと前記第2の基準イベントとは、少なくとも1つの共通点を有する共通イベントである請求項2に記載のプログラム実行状況表示システム。
  4. 前記表示位置決定部は、
    前記第1の基準イベントの第1の表示位置と前記第1のイベント情報における第1のタイミング情報と前記第1のプログラム実行結果における前記第1の基準イベント以外の第1のイベントのイベント情報におけるタイミング情報に基づいて前記第1のイベントの表示位置を決定し、
    前記第2の基準イベントの第2の表示位置と前記第2のイベント情報における第2のタイミング情報と前記第2のプログラム実行結果における前記第2の基準イベント以外の第2のイベントのイベント情報におけるタイミング情報に基づいて前記第2のイベントの表示位置を決定する
    請求項3に記載のプログラム実行状況表示システム。
  5. 前記軸情報格納部に格納された前記時系列軸情報を用いて前記共通の時系列軸を表現した軸オブジェクトを生成する軸オブジェクト生成部を備え、
    前記時系列軸情報は、前記共通の時系列軸の表示範囲と前記共通の時系列軸の表示単位とを含み、
    前記軸オブジェクト生成部は、前記時系列軸情報における前記表示範囲と前記表示単位とに基づいて前記軸オブジェクトを生成し、
    前記表示位置決定部は、前記時系列軸情報における前記表示範囲と前記表示単位とに基づいて、前記第1および第2の基準イベントの前記表示位置をそれぞれ前記共通の時系列軸の基準である位置に決定する
    請求項3に記載のプログラム実行状況表示システム。
  6. 前記イベント情報は、当該イベント情報が示すイベントに対して少なくとも1つの共通点を有する共通イベントが存在するか否かを示す共通イベント識別情報を含み、
    前記イベントオブジェクト生成部は、前記共通イベント識別情報に基づいて、共通のイベントがあるイベントが共通イベントのないイベントとは異なる表示方式で表示されるように前記イベントオブジェクトを生成する
    請求項3に記載のプログラム実行状況表示システム。
  7. 前記イベントオブジェクト生成部は、前記共通イベント識別情報に基づいて、同じ共通イベント同士が同じ表示方式で表示されるように前記イベントオブジェクトを生成する
    請求項6に記載のプログラム実行状況表示システム。
  8. 前記第1の基準イベントおよび前記第2の基準イベントを選定する選定部をさらに備え、
    前記イベント情報は、当該イベント情報が示すイベントに対して少なくとも1つの共通点を有する共通イベントが存在するか否かを示す共通イベント識別情報と、同一のプログラム実行で実行されたイベントを識別するための実行トレース識別情報とをさらに含み、
    前記選定部は、
    少なくとも1つの共通イベントを持つ前記第1の基準イベントを選択し、
    前記第1の基準イベントの前記第1のイベント情報における共通イベント識別情報と同じ共通イベント識別情報を含み、かつ、前記第1のイベント情報における実行トレース識別情報とは異なる実行トレース識別情報を含むイベント情報のイベントを前記第2の基準イベントとして選択し、
    選択した前記第1の基準イベントと前記第2の基準イベントとを特定するための前記基準イベント特定情報を生成して前記特定情報格納部に格納する
    請求項3に記載のプログラム実行状況表示システム。
  9. 前記選定部は、
    前記第1の基準イベントの前記第1のイベント情報における共通イベント識別情報と同じ共通イベント識別情報を含み、かつ、前記第1のイベント情報における実行トレース識別情報とは異なる実行トレース識別情報を含むイベント情報のイベントを2つ以上選択し、前記選択した2つ以上のイベントの中から前記イベント情報に基づいて前記第2の基準イベントを選択し、
    選択した前記第1の基準イベントと前記第2の基準イベントとを特定するための前記基準イベント特定情報を生成して前記特定情報格納部に格納する
    請求項8に記載のプログラム実行状況表示システム。
  10. 前記イベントオブジェクトを前記共通の時系列軸上に並べて表示する表示部をさらに備える請求項2に記載のプログラム実行状況表示システム。
  11. 2つ以上のイベントで構成される第1のプログラム実行結果および2つ以上のイベントで構成される第2のプログラム実行結果それぞれに含まれるイベントの情報であって少なくとも前記第1のプログラム実行結果または前記第2のプログラム実行結果における前記イベントの位置を示すタイミング情報を含むイベント情報を格納するイベント情報格納部と、少なくとも共通の時系列軸の情報である時系列軸情報を格納する軸情報格納部と、少なくとも前記イベントのうちの1つである第1の基準イベントを特定するための第1の基準イベント特定情報と前記イベントのうちの他の1つである第2の基準イベントを特定するための第2の基準イベント特定情報とを格納する特定情報格納部と、を備え、前記第1のプログラム実行結果と前記第2のプログラム実行結果とを前記共通の時系列軸上に並べて表示するプログラム実行状況表示方法であって、
    前記特定情報格納部に格納された前記第1の基準イベント特定情報に基づいて前記第1の基準イベントを前記第1のプログラム実行結果の基準とし、
    前記特定情報格納部に格納された前記第2の基準イベント特定情報に基づいて前記第2の基準イベントを前記第2のプログラム実行結果の基準とし、
    前記イベント情報格納部に格納された前記第1の基準イベントの第1のイベント情報におけるタイミング情報および前記第2の基準イベントの第2のイベント情報におけるタイミング情報に基づいて、前記第1の基準イベントと前記第2の基準イベントとの前記共通の時系列軸上の表示位置を同じ位置と決定し、
    決定された前記共通の時系列軸上の前記表示位置に基づいて、前記第1の基準イベントを表す第1のイベントオブジェクトと前記第2の基準イベントを表す第2のイベントオブジェクトとを生成し、
    前記第1のイベントオブジェクトと前記第2のイベントオブジェクトを前記共通の時系列軸上に並べて表示する
    ことを含むプログラム実行状況表示方法。
  12. 2つ以上のイベントで構成される第1のプログラム実行結果および2つ以上のイベントで構成される第2のプログラム実行結果それぞれに含まれるイベントの情報であって少なくとも前記第1のプログラム実行結果または前記第2のプログラム実行結果における前記イベントの位置を示すタイミング情報を含むイベント情報を格納するイベント情報格納部と、少なくとも共通の時系列軸の情報である時系列軸情報を格納する軸情報格納部と、少なくとも前記イベントのうちの1つである第1の基準イベントを特定するための第1の基準イベント特定情報と前記イベントのうちの他の1つである第2の基準イベントを特定するための第2の基準イベント特定情報とを格納する特定情報格納部と、を備え、前記第1のプログラム実行結果と前記第2のプログラム実行結果とを前記共通の時系列軸上に並べて表示するための表示情報を生成するコンピュータを機能させるためのプログラムであって、
    前記特定情報格納部に格納された前記第1の基準イベント特定情報に基づいて前記第1の基準イベントを前記第1のプログラム実行結果の基準とするステップと、
    前記特定情報格納部に格納された前記第2の基準イベント特定情報に基づいて前記第2の基準イベントを前記第2のプログラム実行結果の基準とするステップと、
    前記イベント情報格納部に格納された前記第1の基準イベントの第1のイベント情報におけるタイミング情報および前記第2の基準イベントの第2のイベント情報におけるタイミング情報に基づいて、前記第1の基準イベントと前記第2の基準イベントとの前記共通の時系列軸上の表示位置を同じ位置と決定するステップと、
    決定された前記共通の時系列軸上の前記表示位置に基づいて、前記第1の基準イベントを表す第1のイベントオブジェクトと前記第2の基準イベントを表す第2のイベントオブジェクトとを生成ステップと、
    を前記コンピュータに実行させるためのプログラム。
  13. 表示情報を生成する表示情報生成装置であって、
    第1のプログラム実行結果および第2のプログラム実行結果に含まれる複数のイベントのイベント情報を取得するイベント情報取得部と、
    少なくとも時系列軸の情報である時系列軸情報を格納する軸情報格納部と、
    前記イベントを表現したイベントオブジェクトを生成するイベントオブジェクト生成部と、
    を備え、
    前記イベント情報は、少なくとも前記第1のプログラム実行結果または前記第2のプログラム実行結果における前記イベントの位置を示すタイミング情報を含み、
    前記イベントオブジェクト生成部は、前記第1のプログラム実行結果に含まれる前記イベントのうちの1つである第1の基準イベントの第1のイベント情報におけるタイミング情報および前記第2プログラムの実行結果に含まれる前記イベントのうちの1つである第2の基準イベントの第2のイベント情報におけるタイミング情報に基づいて、前記時系列軸について前記第1の基準イベントと前記第2の基準イベントとが同じ値を含むように前記第1の基準イベントを表す第1のイベントオブジェクトと前記第2の基準イベントを表す第2のイベントオブジェクトとを生成する
    表示情報生成装置。
  14. 前記イベントオブジェクト生成部は、前記時系列軸について同じ表示始点位置となるように前記第1のイベントオブジェクトと前記第2のイベントオブジェクトを生成する請求項13に記載の表示情報生成装置。
JP2014042801A 2014-03-05 2014-03-05 表示情報生成装置、プログラム実行状況表示システム、方法およびプログラム Active JP6223866B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014042801A JP6223866B2 (ja) 2014-03-05 2014-03-05 表示情報生成装置、プログラム実行状況表示システム、方法およびプログラム
US14/628,559 US9384070B2 (en) 2014-03-05 2015-02-23 Display information generating device, program-execution status display system, program-execution status display method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014042801A JP6223866B2 (ja) 2014-03-05 2014-03-05 表示情報生成装置、プログラム実行状況表示システム、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2015170009A JP2015170009A (ja) 2015-09-28
JP6223866B2 true JP6223866B2 (ja) 2017-11-01

Family

ID=54017470

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014042801A Active JP6223866B2 (ja) 2014-03-05 2014-03-05 表示情報生成装置、プログラム実行状況表示システム、方法およびプログラム

Country Status (2)

Country Link
US (1) US9384070B2 (ja)
JP (1) JP6223866B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10574739B2 (en) * 2016-02-26 2020-02-25 Honeywell International Inc. System and method for smart event paging
JP6686536B2 (ja) 2016-03-02 2020-04-22 株式会社リコー 情報処理装置、及びプログラム
EP3907615B1 (en) * 2020-05-06 2022-11-02 Mitsubishi Electric R&D Centre Europe B.V. Method and system for testing the operation of a target computer system by using timed requirements
WO2022138442A1 (ja) * 2020-12-21 2022-06-30 ファナック株式会社 ラダープログラム解析装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6332212B1 (en) * 1997-10-02 2001-12-18 Ltx Corporation Capturing and displaying computer program execution timing
US7478368B2 (en) * 2001-04-24 2009-01-13 International Business Machines Corporation Organization and visualization of performance data in selected display modes
US7310777B2 (en) * 2002-10-18 2007-12-18 Computer Associates Think, Inc. User interface for viewing performance information about transactions
WO2005017743A2 (en) * 2003-08-07 2005-02-24 National Instruments Corporation A graphical program which executes a timed loop
US7533371B1 (en) * 2003-09-22 2009-05-12 Microsoft Corporation User interface for facilitating performance analysis for processing
JP2005258552A (ja) * 2004-03-09 2005-09-22 Nec Corp イベント解析装置
US7698686B2 (en) * 2005-04-15 2010-04-13 Microsoft Corporation Method and apparatus for performance analysis on a software program

Also Published As

Publication number Publication date
JP2015170009A (ja) 2015-09-28
US9384070B2 (en) 2016-07-05
US20150254115A1 (en) 2015-09-10

Similar Documents

Publication Publication Date Title
US20180113683A1 (en) Virtual interactive learning environment
US10810113B2 (en) Method and apparatus for creating reference images for an automated test of software with a graphical user interface
JP6223866B2 (ja) 表示情報生成装置、プログラム実行状況表示システム、方法およびプログラム
JP6258159B2 (ja) プログラム情報生成システム、方法、及びプログラム
JP5545744B2 (ja) 操作画面設計支援プログラム、操作画面設計支援装置および操作画面設計支援方法
JP2011103065A (ja) チャート描画装置およびチャート描画方法
US20150185719A1 (en) Software workstation and method for employing appended metadata in industrial automation software
CN108369514A (zh) 用于可执行内容和可执行内容流创建的系统和方法
CN106796515A (zh) 用于元数据驱动的用户界面框架的系统和方法
CN110633078B (zh) 一种实现自动生成特征计算代码的方法及装置
JP2017215797A (ja) 選択制御方法、選択制御装置および選択制御プログラム
US9285949B2 (en) Data processing system, method and program product of creating program information, and program information display system
US8952965B2 (en) Non-linear time scale optimization for mechanical-electrical machine behavior model visualization
CN111124393A (zh) 一种算法逻辑的编辑方法、平台、电子设备及存储介质
US9536330B2 (en) Program information generation system, method for program information generation, program for program information generation, and program information display system for displaying the execution status of a program
JP5801682B2 (ja) 設定情報生成プログラム、設定情報生成装置および設定情報生成方法
JP2008059135A (ja) ソフトウェア自動生成装置、ソフトウェア自動生成方法、およびプログラム
US20180081780A1 (en) Trace-information management system, trace-information management method, and trace-information management program product
US20160085517A1 (en) Program information generating system, program information generating method, and computer program product
JP2018055667A (ja) トレース情報管理システム、方法、及びプログラム
CN115586898A (zh) 一种用户交互ui界面的生成方法及装置
JP2013238921A (ja) データ連携フロー管理装置およびデータ統合装置
JP2017191622A (ja) 情報生成システム、その方法およびそのプログラム
WO2017022016A1 (ja) プログラム情報生成システム、方法、及びプログラム
JP2016071388A (ja) ジョブ管理システム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20151102

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160829

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170817

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171004

R151 Written notification of patent or utility model registration

Ref document number: 6223866

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151