(57)【要約】【課題】区間の状況を区間の分類毎に把握することが容易となるようする。【解決手段】取得部１１は、プログラムに含まれる複数の区間の包含関係を示す包含関係情報、及び各区間の分類を示す分類情報を含む区間情報を取得する。生成部１２は、区間情報に基づいて区間の階層構造を示す表示画像を生成するための表示情報を生成し、表示画像において同一の分類に属する複数の区間が互いに異なる階層に位置する場合に、階層構造の表示方式を変更することにより、同一の分類に属する複数の区間に対応する複数の画像オブジェクトの各表示位置が互いに近接するように表示情報を生成する。表示制御部１３は、表示情報に基づいて表示画像が表示されるように表示部を制御する。【選択図】図３
2017041084.tif 000002
【特許請求の範囲】
【請求項１】
プログラムに含まれる複数の区間の包含関係を示す包含関係情報、及び前記各区間の分類を示す分類情報を含む区間情報を取得する取得部と、
前記区間情報に基づいて前記区間の階層構造を示す表示画像を生成するための表示情報を生成し、前記表示画像において同一の前記分類に属する複数の前記区間が互いに異なる階層に位置する場合に、前記階層構造の表示方式を変更することにより、同一の前記分類に属する複数の前記区間に対応する複数の画像オブジェクトの各表示位置が互いに近接するように前記表示情報を生成する生成部と、
前記表示情報に基づいて前記表示画像が表示されるように表示部を制御する表示制御部と、
を備えるプログラム情報生成システム。
【請求項２】
前記取得部は、複数の前記分類の中から選択された前記分類を特定する選択情報を更に取得し、
前記生成部は、前記選択情報により特定された前記分類に属する複数の前記区間に対応する複数の前記画像オブジェクトの各表示位置が互いに近接するように前記表示情報を生成する、
請求項１に記載のプログラム情報生成システム。
【請求項３】
前記表示画像は、前記階層の深さを示す第１の軸を含み、
前記生成部は、同一の前記分類に属する複数の前記区間に対応する複数の前記画像オブジェクトの各表示位置が前記第１の軸上で一致するように前記表示情報を生成する、
請求項１又は２に記載のプログラム情報生成システム。
【請求項４】
前記区間情報は、前記各区間において実行される処理の特徴を示す特徴情報を更に含み、
前記生成部は、前記表示画像に前記特徴情報の内容が表示されるように前記表示情報を生成する、
請求項１〜３のいずれか１項に記載のプログラム情報生成システム。
【請求項５】
前記取得部は、前記特徴情報の内容をどのような方式で表示するかを示す表示方式情報を更に取得し、
前記生成部は、前記表示方式情報が示す前記方式に従って前記特徴情報の内容が表示されるように前記表示情報を生成する、
請求項４に記載のプログラム情報生成システム。
【請求項６】
ユーザが使用する情報処理端末と、前記情報処理端末とネットワークを介して接続されたサーバとを備え、
前記表示情報を生成するための処理の少なくとも一部が前記サーバにより行われ、
前記表示画像が前記情報処理端末の前記表示部に表示される、
請求項１〜５のいずれか１項に記載のプログラム情報生成システム。
【請求項７】
コンピュータを利用してプログラムの実行状況を示す情報を生成する方法であって、
プログラムに含まれる複数の区間の包含関係を示す包含関係情報、及び前記各区間の分類を示す分類情報を含む区間情報を取得するステップと、
前記区間情報に基づいて前記区間の階層構造を示す表示画像を生成するための表示情報を生成するステップと、
前記表示画像において同一の前記分類に属する複数の前記区間が互いに異なる階層に位置する場合に、前記階層構造の表示方式を変更することにより、同一の前記分類に属する複数の前記区間に対応する複数の画像オブジェクトの各表示位置が互いに近接するように前記表示情報を生成するステップと、
前記表示情報に基づいて前記表示画像が表示されるように表示部を制御するステップと、
を含むプログラム情報生成方法。
【請求項８】
コンピュータに、
プログラムに含まれる複数の区間の包含関係を示す包含関係情報、及び前記各区間の分類を示す分類情報を含む区間情報を取得する処理と、
前記区間情報に基づいて前記区間の階層構造を示す表示画像を生成するための表示情報を生成する処理と、
前記表示画像において同一の前記分類に属する複数の前記区間が互いに異なる階層に位置する場合に、前記階層構造の表示方式を変更することにより、同一の前記分類に属する複数の前記区間に対応する複数の画像オブジェクトの各表示位置が互いに近接するように前記表示情報を生成する処理と、
前記表示情報に基づいて前記表示画像が表示されるように表示部を制御する処理と、
を実行させるプログラム情報生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、プログラム情報生成システム、方法、及びプログラムに関する。
【背景技術】
【０００２】
プログラムの開発等において、プログラムの実行状況を視覚的に把握できるようにする支援ツールが利用されている。例えば、プログラムのソースコード上で定義される複数の区間の包含関係（親子関係）を示す情報に基づいて、複数の区間の階層構造をブロック状の画像オブジェクトで表現するシステムがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−２２６６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のシステムにおいては、画面内における各画像オブジェクトの表示位置は、それらに対応する区間の階層の深さに応じて決定される。例えば、階層が浅い区間の画像オブジェクトは画面内に設定された軸の始点側に配置され、階層が深い区間の画像オブジェクトは軸の終点側に配置される。すなわち、画像オブジェクトは、これに対応する区間の階層が深い程、画面内の基準位置（軸の始点等）から遠い位置に表示される。そのため、階層構造が複雑又は広大である場合には、最も深い階層の近辺に位置する区間の画像オブジェクトが画面上に表示されない場合がある。
【０００５】
プログラムを構成する区間は、例えばファイル、関数、スコープ、ライン等の複数の分類に分けることができ、ユーザは、区間の状況を分類毎に確認したいと望む場合がある。しかしながら、上記のような従来のシステムにおいては、各画像オブジェクトの表示位置が区間の分類とは関係なく階層の深さに応じて決定されるため、同一の分類に属し異なる階層に位置する複数の区間の状況を比較して把握することは困難である。
【０００６】
そこで、以下の実施形態では、区間の状況を区間の分類毎に把握することが容易となるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
実施形態のプログラム情報生成システムは、取得部と、生成部と、表示制御部とを備える。取得部は、プログラムに含まれる複数の区間の包含関係を示す包含関係情報、及び各区間の分類を示す分類情報を含む区間情報を取得する。生成部は、区間情報に基づいて区間の階層構造を示す表示画像を生成するための表示情報を生成し、表示画像において同一の分類に属する複数の区間が互いに異なる階層に位置する場合に、階層構造の表示方式を変更することにより、同一の分類に属する複数の区間に対応する複数の画像オブジェクトの各表示位置が互いに近接するように表示情報を生成する。表示制御部は、表示情報に基づいて表示画像が表示されるように表示部を制御する。
【図面の簡単な説明】
【０００８】
【図１】実施形態におけるプログラム情報生成システムのハードウェア構成を例示する図。
【図２】実施形態における情報処理端末及びサーバのハードウェア構成を例示する図。
【図３】実施形態におけるプログラム情報生成システムの機能的構成を例示する図。
【図４】実施形態におけるプログラム情報生成システムによる処理の流れを示すフローチャート。
【図５】実施形態における表示画像において集約対象区間に対応する画像オブジェクト（集約対象オブジェクト）が離間している状態を例示する図。
【図６】実施形態における表示画像において集約対象区間に対応する画像オブジェクト（集約対象オブジェクト）が近接している状態を例示する図。
【図７】検査対象となるプログラムの一部を構成する第１のソースコードを例示する図。
【図８】検査対象となるプログラムの一部を構成する第２のソースコードを例示する図。
【図９】第１のソースコード全体の区間情報を例示する図。
【図１０】第２のソースコード全体の区間情報を例示する図。
【図１１】第１のソースコードの一部の区間の区間情報を例示する図。
【図１２】第１のソースコードの一部の区間の区間情報を例示する図。
【図１３】第１のソースコードの一部の区間の区間情報を例示する図。
【図１４】第１のソースコードの一部の区間の区間情報を例示する図。
【図１５】第１のソースコードの一部の区間の区間情報を例示する図。
【図１６】第１のソースコードの一部の区間の区間情報を例示する図。
【図１７】第１のソースコードの一部の区間の区間情報を例示する図。
【図１８】第１のソースコードの一部の区間の区間情報を例示する図。
【図１９】第１のソースコードの一部の区間の区間情報を例示する図。
【図２０】第１のソースコードの一部の区間の区間情報を例示する図。
【図２１】第１のソースコードの一部の区間の区間情報を例示する図。
【図２２】第１のソースコードの一部の区間の区間情報を例示する図。
【図２３】実施形態における表示方式情報を例示する図。
【図２４】実施形態における第１の例の表示画像を例示する図。
【図２５】実施形態における第２の例の表示画像を例示する図。
【図２６】実施形態における第３の例の表示画像を例示する図。
【発明を実施するための形態】
【０００９】
図１は、実施形態におけるプログラム情報生成システム１のハードウェア構成を例示する図である。プログラム情報生成システム１は、情報処理端末２及びサーバ３を含む。情報処理端末２とサーバ３とはインターネット等のネットワーク４を介して接続されている。情報処理端末２は、ユーザが操作可能な情報処理装置であり、例えばパーソナルコンピュータ、タブレット、スマートフォン等である。サーバ３は、情報処理端末２の表示部に表示される画像を生成するための処理の少なくとも一部を行う。なお、同図においては情報処理端末２及びサーバ３がそれぞれ１つずつ描かれているが、情報処理端末２及びサーバ３はそれぞれ複数であってもよい。
【００１０】
図２は、実施形態における情報処理端末２及びサーバ３のハードウェア構成を例示する図である。情報処理端末２及びサーバ３は、ＣＰＵ（Central  Processing  Unit）５、ＲＯＭ（Read  Only  Memory）６、ＲＡＭ（Random  Access  Memory）７、入力デバイス８、出力デバイス９、及び通信Ｉ／Ｆ（Interface）１０を含む。ＣＰＵ５は、ＲＯＭ６に記憶された制御プログラムに従ってＲＡＭ７をワーキングエリアとして所定の演算処理を行う。入力デバイス８は、外部から情報を入力するためのデバイスであり、例えばキーボード、マウス、タッチパネル等である。出力デバイス９は、内部で生成した情報を外部に出力するためのデバイスであり、例えばディスプレイ、プリンタ等である。通信Ｉ／Ｆ１０は、ネットワーク４を介して外部の装置との間で情報の送受信を可能にするデバイスである。
【００１１】
図３は、実施形態におけるプログラム情報生成システム１の機能的構成を例示する図である。プログラム情報生成システム１は、取得部１１、生成部１２、及び表示制御部１３を含む。
【００１２】
取得部１１は、検査対象となるプログラムの区間に関する区間情報を取得する。区間情報は、プログラムに含まれる複数の区間の包含関係を示す包含関係情報、及び各区間の分類を示す分類情報を含む。プログラムとは、情報処理装置に対する命令を記述したものであり、例えばＣ言語、ＪＡＶＡ（登録商標）言語等のプログラミング言語により記述されたソースコードである。区間とは、ソースコード上で定義される連続領域であり、例えば関数、条件文、ループ文等に対応する範囲である。包含関係は、親子関係、分岐関係、呼び出し関係等と称される場合がある。また、取得部１１は、複数の分類の中から１つ以上の分類を指定する指定情報を更に取得してもよい。取得部１１は、情報処理端末２又はサーバ３のＣＰＵ５、ＲＯＭ６、ＲＡＭ７、入力デバイス８、制御プログラム、適宜なロジックＩＣ（Integrated  Circuit）等の協働により構成される。
【００１３】
生成部１２は、区間情報に含まれる包含関係情報に基づいて、複数の区間の階層構造を示す表示画像を生成するための表示情報を生成する。また、生成部１２は、区間情報に含まれる包含関係情報及び分類情報に基づいて、同一の分類に属する複数の区間が互いに異なる階層に位置するか否かを判定する。生成部１２は、同一の分類に属する複数の区間が互いに異なる階層に位置する場合に、表示画像における階層構造の表示方式を変更することにより、同一の分類に属する複数の区間を示す複数の画像オブジェクトの各表示位置が互いに近接するように、表示情報を再生成する。また、生成部１２は、取得部１１が指定情報を取得する場合に、指定された分類と同一の分類に属する複数の区間を示す複数の画像オブジェクトの各表示位置が互いに近接するように、表示情報を再生成してもよい。生成部１２は、情報処理端末２又はサーバ３のＣＰＵ５、ＲＯＭ６、ＲＡＭ７、入力デバイス８、制御プログラム、適宜なロジックＩＣ等の協働により構成される。階層構造を含む表示画像の表示方式（画像オブジェクトの形状、大きさ、位置、色彩、輝度等）を決定する方法は、特に限定されるべきものではないが、例えば取得部１１が予め表示画像の表示方式を示す表示方式情報を取得してもよいし、生成部１１が区間情報に応じて表示方式情報を生成してもよい。
【００１４】
表示制御部１３は、生成又は再生成された表示情報に基づいて表示画像が表示されるように所定の表示部（例えば情報処理端末２のディスプレイ等）を制御する。表示制御部１３は、情報処理端末２又はサーバ３のＣＰＵ５、ＲＯＭ６、ＲＡＭ７、入力デバイス８、制御プログラム、適宜なロジックＩＣ等の協働により構成される。
【００１５】
図４は、実施形態におけるプログラム情報生成システム１による処理の流れを示すフローチャートである。取得部１１が区間情報を取得すると（Ｓ１０１）、生成部１２は区間情報に基づいて区間の階層構造を解析し（Ｓ１０２）、解析結果に基づいて表示情報を生成する（Ｓ１０３）。
【００１６】
その後、生成部１２は、解析された階層構造において、同一の分類に属し異なる階層に位置する複数の区間（以下、集約対象区間と略記する）があるか否かを判定する（Ｓ１０４）。ステップＳ１０４において、集約対象区間がないと判定された場合（ＮＯ）、表示制御部１３は、現在の表示情報に基づいて表示画像が表示されるように表示部を制御する（Ｓ１０８）。ステップＳ１０４において、集約対象区間があると判定された場合（ＹＥＳ）、生成部１２は、集約要求があるか否かを判定する（Ｓ１０５）。集約要求とは、集約対象区間を示す複数の画像オブジェクトを互いに近接するように表示させる要求である。集約要求は、例えばユーザがインタフェースを介して所望の分類を指定する操作、ＣＰＵ５が所定の条件に基づいて自動的に分類を指定する処理等により発行される。
【００１７】
ステップＳ１０５において、集約要求がないと判定された場合（ＮＯ）、表示制御部１３は、現在の表示情報に基づいて、すなわち集約対象区間を示す複数の画像オブジェクトが互いに離間した状態のまま表示画像が表示されるように表示部を制御する（Ｓ１０８）。ステップＳ１０５において、集約要求があると判定された場合（ＹＥＳ）、生成部１２は、階層構造の表示方式を変更することにより（Ｓ１０６）、集約対象区間を示す複数の画像オブジェクトの各表示位置が互いに近接するように表示情報を再生成する（Ｓ１０７）。その後、表示制御部１３は、再生成された表示情報に基づいて、すなわち集約対象区間を示す複数の画像オブジェクトが互いに近接した状態で表示される表示画像が表示されるように表示部を制御する（Ｓ１０８）。
【００１８】
図５は、実施形態における表示画像４１において集約対象区間に対応する画像オブジェクト（集約対象オブジェクト４６Ａ，４６Ｂ，４６Ｃ）が離間している状態を例示する図である。図６は、実施形態における表示画像４１において集約対象区間に対応する画像オブジェクト（集約対象オブジェクト４６Ａ，４６Ｂ，４６Ｃ）が近接している状態を例示する図である。
【００１９】
表示画像４１には、複数の画像オブジェクト４２〜４６（集約対象オブジェクト４６Ａ，４６Ｂ，４６Ｃを含む）が表示されている。各画像オブジェクト４２〜４６は、それぞれ各区間に一意に対応している。集約対象オブジェクト４６Ａ，４６Ｂ，４６Ｃは、上記集約対象区間に対応している。本例においては、第１の集約対象オブジェクト４６Ａ、第２の集約対象オブジェクト４６Ｂ、及び第３の集約対象オブジェクト４６Ｃは、それぞれ複数の画像オブジェクトから構成されている。第１の集約対象オブジェクト４６Ａ、第２の集約対象オブジェクト４６Ｂ、及び第３の集約対象オブジェクト４６Ｃの階層は互いに異なっている。
【００２０】
表示画像４１には、第１の軸４７及び第２の軸４８が設定されている。第１の軸４７は、区間の階層の深さを示している。第１の軸４７に沿って右側へ行く程階層が深くなる。本例では、第３の集約対象オブジェクト４６Ｃの階層よりも第２の集約対象オブジェクト４６Ｂの階層の方が深く、第２の集約対象オブジェクト４６Ｂの階層よりも第１の集約対象オブジェクト４６Ａの階層の方が深い。第２の軸４８は、包含関係の多さを示している。画像オブジェクト４２〜４６の第２の軸４８方向の長さは、その画像オブジェクト４２〜４６に対応する区間が包含する他の区間の数が多い程長くなっている。
【００２１】
上記図４に示すステップＳ１０５において、集約要求がある場合（ＹＥＳ）、表示画像４１は、図５に示す状態から図６に示す状態に変化する。図６に示す状態の表示画像４１においては、複数の画像オブジェクト４５Ａが１つの画像オブジェクト４５Ｂと同じ幅（第１の軸４７方向の長さ）に圧縮されている。圧縮された複数の画像オブジェクト４５Ａは、画像オブジェクト４４Ａと第１の集約対象オブジェクト４６Ａ及び第２の集約対象オブジェクト４６Ｂとの間にある画像オブジェクトである。圧縮の基準となった画像オブジェクト４５Ｂは、画像オブジェクト４４Ｂと第３の集約対象オブジェクト４６Ｃとの間にある画像オブジェクトである。このような処理により、全ての集約対象オブジェクト４６Ａ，４６Ｂ，４６Ｃが第１の軸４７上において同一の位置に表示される。
【００２２】
以下に、上記内容をより具体的な例により説明する。図７は、検査対象となるプログラムの一部を構成する第１のソースコード１０１を例示する図である。図８は、検査対象となるプログラムの一部を構成する第２のソースコード１０２を例示する図である。本例のプログラムは、ファイル名が“ｆｉｌｅ０．ｃ”の第１のソースコード１０１と、ファイル名が“ｆｉｌｅ１．ｃ”の第２のソースコード１０２とから成り立っている。第１及び第２のソースコード１０１，１０２の左側に記載されている数字は行番号を示している。この行番号は本実施形態の説明のために記載されたものであり、実際のソースコードには明示的に記載されない。
【００２３】
第１のソースコード１０１は、区間６０１及び区間６０２を含む。区間６０１は、区間６１１を含む。区間６１１は、区間６２１及び区間６２２を含む。区間６２１は、区間６３１を含む。区間６３１は、区間６４１を含む。区間６４１は、区間６５１及び区間６５２を含む。区間６０２は、区間６１２を含む。区間６１２は、区間６２３及び区間６２４を含む。第２のソースコード１０２は、区間７０１及び区間７０２を含む。区間７０１は、区間７１１を含む。区間７１１は、区間７２１を含む。区間７２１は、区間７３１及び区間７３２を含む。区間７０２は、区間７１２を含む。区間７１２は、区間７２２を含む。区間７２２は、区間７３３及び区間７３４を含む。第１及び第２のソースコード１０１，１０２自体もそれぞれ１つの区間として扱うことができる。
【００２４】
上記のように、第１及び第２のソースコード１０１，１０２は、複数の区間が階層構造を構成するように記述されている。以下の説明では、第１及び第２のソースコード１０１，１０２自体をそれぞれ第１層とする。区間６０１，６０２，７０１，７０２を第２層とする。区間６１１，６１２，７１１，７１２を第３層とする。区間６２１，６２２，６２３，６２４，７２１，７２２を第４層とする。区間６３１，７３１，７３２，７３３，７３４を第５層とする。区間６４１を第６層とする。区間６５１，６５２を第７層とする。すなわち、第１及び第２のソースコード１０１，１０２（第１層）から数えてｎ（ｎは正の整数）番目の層を第ｎ層という。このように、ソースコード１０１，１０２の階層と各区間とは対応付けられている。
【００２５】
図９〜図２２は、第１及び第２のソースコード１０１，１０２の各区間についての区間情報を例示する図である。図９は、第１のソースコード１０１全体の区間情報２０１を例示する図である。図１０は、第２のソースコード１０２全体の区間情報２０２を例示する図である。図１１は、第１のソースコード１０１の区間６０１の区間情報２０３を例示する図である。図１２は、第１のソースコード１０１の区間６１１の区間情報２０４を例示する図である。図１３は、第１のソースコード１０１の区間６２１の区間情報２０５を例示する図である。図１４は、第１のソースコード１０１の区間６２２の区間情報２０６を例示する図である。図１５は、第１のソースコード１０１の区間６３１の区間情報２０７を例示する図である。図１６は、第１のソースコード１０１の区間６４１の区間情報２０８を例示する図である。図１７は、第１のソースコード１０１の区間６５１の区間情報２０９を例示する図である。図１８は、第１のソースコード１０１の区間６５２の区間情報２１０を例示する図である。図１９は、第１のソースコード１０１の区間６０２の区間情報２１１を例示する図である。図２０は、第１のソースコード１０１の区間６１２の区間情報２１２を例示する図である。図２１は、第１のソースコード１０１の区間６２３の区間情報２１３を例示する図である。図２２は、第１のソースコード１０１の区間６２４の区間情報２１４を例示する図である。図８に示す第２のソースコード１０２の区間７０１〜７３４の区間情報については、図１１〜図２２に基づいて推測可能であるため、ここでの例示を省略する。図９〜図２２に示す例において、左側に記載されている数字は、各情報の行番号を示している。この行番号は本実施形態の説明のために記載したものであり、実際の情報には明示的に記載されない。
【００２６】
本例の区間情報２０１〜２１４は、ソースコード位置情報３０１（Ｐｏｓｉｔｉｏｎ）、包含関係情報３１１（Ｐａｒｅｎｔ，Ｃｈｉｌｄｒｅｎ）、分類情報３２１（Ｔｙｐｅ）、及び特徴情報３３１（Ｐａｒａｍｅｔｅｒ）を含んでいる。
【００２７】
ソースコード位置情報３０１は、各区間がソースコード１０１，１０２内のどの位置に対応しているかを示している。
【００２８】
包含関係情報３１１は、区間同士の包含関係（親子関係）を示している。例えば、２つの区間情報があり、第１の区間情報により示される第１の区間が第２の区間情報により示される第２の区間を包含している場合には、第１の区間は第２の区間の親（Ｐａｒｅｎｔ）となり、第２の区間は第１の区間の子（Ｃｈｉｌｄｒｅｎ）となる。同様に、第１の区間情報により示される第１の区間が第３の区間情報により示される第３の区間に包含されている場合には、第１の区間は第３の区間の子となり、第３の区間は第１の区間の親となる。包含関係情報は、このような親子関係を特定するために用いられる。包含関係情報は、親子関係を有する区間が存在するか否かを示す情報（存否情報）、及びこれが存在する場合には親子関係を有する区間を特定するための情報（親特定情報及び子特定情報）を含む。子特定情報は、例えば上述した第１〜第３の区間情報の例を用いて説明すると、第２の区間が包含する区間を特定するための情報を含まない。また、親特定情報は、第３の区間を包含する区間を特定するための情報を含まない。存否情報としては、独立した情報だけでなく、親子関係を有する区間の区間情報を特定するための情報と空データ（ｎｕｌｌ等）との組み合わせ等を用いることができる。
【００２９】
分類情報３２１は、各区間の分類を示している。本実施形態の検査対象であるプログラムにおいては、各区間を例えばファイル、関数、スコープ、ライン等の分類に分けることができる。このような分類の場合、ファイルは関数を包含し、関数はスコープを包含し、スコープはスコープ又はラインを包含し、ラインは他の分類を包含しない。なお、分類の設定の仕方は、上記に限られるものではない。例えば、ｊａｖａｓｃｒｉｐｔにおいては、関数に包含される関数の分類をローカル関数（ｌｏｃａｌ  ｆｕｎｃｔｉｏｎ）と称することが好ましい。ｒｕｂｙ、Ｃ＋＋等のオブジェクト指向言語においては、ファイル、クラス、メソッド、スコープ、ライン等と分類分けすることが好ましい。
【００３０】
特徴情報３３１は、ソースコード位置情報３０１が示す区間中に実行される処理の特徴を示す情報であり、例えば区間又は処理の名称（ｎａｍｅ）、処理の実行により取得される特徴量等を含む。特徴量としては、例えば区間がソースコード１０１，１０２の何行分に相当するかを示す情報（ｎｕｍｂｅｒＯｆＬｉｎｅ）、処理の実行時間（ｔｉｍｅ）等が挙げられる。実行時間に基づいて、各区間で発生したレイテンシの検出等が可能となる。なお、特徴情報３３１に含まれる情報は、上記に限られるものではない。
【００３１】
図９〜図２２に示す例では、１行目はソースコード位置情報３０１（Ｐｏｓｉｔｉｏｎ）を示す。２行目は包含関係情報３１１のうちの親情報（Ｐａｒｅｎｔ）を示す。３行目は包含関係情報３１１のうちの子情報（Ｃｈｉｌｄｒｅｎ）を示す。４行目は分類情報３２１（Ｔｙｐｅ）を示す。５〜７行目は特徴情報３３１（ｎａｍｅ，ｎｕｍｂｅｒＯｆＬｉｎｅ，ｔｉｍｅ）を示す。
【００３２】
図９〜図２２において、分類情報３２１が「ｆｉｌe」の区間情報２０１，２０２の５行目で示される区間名（ｆｉｌｅ０．ｃ，ｆｉｌｅ１．ｃ）は、ファイル名を示す。分類情報３２１が「ｆｕｎｃｔｉｏｎ」の区間情報２０３，２１１の５行目で示される区間名（ｍａｉｎ，ｆｕｎｃＡ）は、関数名を示す。分類情報３２１が「Ｓｃｏｐｅ」の区間情報２０４，２０５，２０６，２０７，２０８，２１２の５行目で示される区間名（関数直下のスコープを示す「ｔｏｐ」、条件分岐を示す「ｃｏｎｄｉｔｉｏｎ」、又は繰り返し処理を示す「ｌｏｏｐ」）は、スコープ名を示す。分類情報３２１が「ｌｉｎｅ」の区間情報２０９，２１０，２１３，２１４の５行目で示される区間名（ｌｉｎｅ）は、ライン名を示す。
【００３３】
上記のような区間情報２０１〜２１４に基づいて、プログラムの構造及び実行状況を示す表示画像４１が生成される。図２３は、実施形態における表示方式情報４０１を例示する図である。表示方式情報４０１は、区間情報２０１〜２１４の内容をどのような表示方式で表示するかを示している。
【００３４】
本例の表示方式情報４０１は、区間情報２０１〜２１４に含まれる特徴情報３３１の一部の表示方式を示している。本例の表示方式情報４０１の１行目は、区間情報２０１〜２１４に含まれる特徴情報３３１の「ｎａｍｅ」（Ｐａｒａｍｅｔｅｒ１）において示される情報、例えば「ｆｉｌｅ０．ｃ」（図９）、「ｍａｉｎ」（図１１）等をテキスト形式で表示することを示している。表示方式情報４０１の２行目は、特徴情報３３１の「ｎａｍｅ」において示される情報がない場合には、特徴情報３３１の「Ｔｙｐｅ」において示される情報、例えば「ｆｉｌｅ」（図９）、「ｆｕｎｃｔｉｏｎ」（図１１）等をテキスト形式で表示することを示している。
【００３５】
上記表示方式情報４０１は一例に過ぎず、上記以外にも様々な表示方式を示す表示方式情報が利用され得る。例えば、各区間情報２０１〜２１４に対応する画像オブジェクトの形状、大きさ、位置、色彩、輝度等を決定する情報、特徴情報３１１の内容に応じて画像オブジェクトの表示方式（色彩等）を変化させる情報等が利用され得る。より具体的には、同じ親区間を持つ複数の子区間の画像オブジェクトの配置順を決定する情報（ｐｏｓｉｔｉｏｎ：ｏｒｄｅｒ）、特徴情報３３１に含まれる実行時間「ｔｉｍｅ」において示される数値が所定値以上である場合に画像オブジェクトの表示方式を変化させる情報（ｔｉｍｅ：ｌｅｎｇｔｈ）、画像オブジェクトの大きさを実行時間に応じて変化させる情報等が考えられる。このような表示方式情報４０１は、取得部１１により取得されてもよいし、生成部１２により生成されてもよい。
【００３６】
図２４は、実施形態における第１の例の表示画像５０１を例示する図である。第１の例の表示画像５０１は、図９〜図２２に示す区間情報２０１〜２１４及び図２３に示す表示方式情報４０１を含む情報に基づいて生成され得るものである。第１の例の表示画像５０１は、図６に示す表示画像４１と同様に、集約対象オブジェクト４６が互いに近接する位置に集約された状態を示している。本例における集約対象オブジェクト４６は、分類情報３２１がラインである区間情報２０９，２１０，２１３，２１４（区間６５１，６５２，６２３，６２４）に対応する画像オブジェクトを含む。すなわち、ライン以外の分類に属する複数の画像オブジェクト（以降、圧縮対象オブジェクトと略記する）５１１の表示方式が変更されることにより、ラインの分類に属する複数の集約対象オブジェクト４６が同一の階層を示す位置に集約して表示されている。これにより、ユーザは所望の分類（本例ではライン）に属する複数の区間に関する情報を容易に把握することが可能となる。
【００３７】
図２５は、実施形態における第２の例の表示画像５２１を例示する図である。第２の例の表示画像５２１は、圧縮対象オブジェクト５１１内に情報が表示されていない点で、第１の表示画像５０１と相違している。第１の例の表示画像５０１においては、複数の圧縮対象オブジェクト５１１は、それらに含まれる情報、すなわちライン以外の分類に属する区間についての情報が可能な限り表示された状態で、第１の軸４７方向に圧縮されている。これに対し、第２の例の表示画像５２１においては、圧縮対象オブジェクト５１１内の情報が消去されている。このように、所望の分類に属さない区間についての情報量を削減することにより、所望の分類に属する区間についての情報をより把握しやすくすることが可能となる。
【００３８】
図２６は、実施形態における第３の例の表示画像５３１を例示する図である。第３の例の表示画像５３１は、各画像オブジェクトの表示形式（色彩、網掛け、輝度、点滅等）が特徴情報３３１の内容に応じて異なっている点で、第１の例の表示画像５０１と異なっている。例えば、特徴情報３３１に含まれる実行時間（ｔｉｍｅ）に応じて画像オブジェクトの色を変えたり、レイテンシの発生が検出された区間に対応する画像オブジェクトを点滅表示したりすることが考えられる。これにより、所望の分類に属する区間に関する情報を特徴量の観点を踏まえてより容易に把握することが可能となる。
【００３９】
なお、図１及び図２に示すハードウェア構成は一例であり、プログラム情報生成システム１は、様々なハードウェア構成により実現することができる。例えば、単体の汎用コンピュータ、組み込みプロセッサを有する専用装置等により、上記取得部１１、生成部１２、及び表示制御部１３を実現することができる。
【００４０】
また、図３には、プログラム情報生成理システム１の最も基本的な機能ブロックである取得部１１、生成部１２、及び表示制御部１３を処理の順序で接続した構成が示されているが、実施形態はこれに限らない。例えば、各機能ブロックが協調しながら並列的に動作を行う構成、機能ブロックの順序を入れ替える構成、１つの機能ブロックを複数の機能ブロックに分割する構成、これら３つの構成を組み合わせた構成等であってもよい。
【００４１】
プログラム情報生成システム１の機能を実現させる制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録されて提供することができる。また、制御プログラムは、ネットワークに接続された所定の記憶装置から所定のコンピュータにダウンロードすることにより提供されてもよいし、予めＲＯＭ等に組み込まれて所定の情報処理装置に提供されてもよい。また、制御プログラムは、上記取得部１１、生成部１２、及び表示制御部１３の機能を実現する複数のモジュールから構成されてもよい。
【００４２】
上記プログラム情報生成システム１によれば、所望の分類に属する複数の区間が異なる階層に位置する場合に、当該区間に対応する複数の画像オブジェクトを集約して表示させることが可能となる。これにより、区間の階層構造が複雑又は広大であり、所望の分類に属する区間に対応する複数の画像オブジェクトが離間して表示される場合であっても、それらを集約して表示させることにより、所望の区間の状態を容易に把握することが可能となる。
【００４３】
以上、本発明の実施形態を説明したが、この実施形態は例として提示したものであり、発明の範囲を限定することを意図するものではない。この新規な実施形態はその他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態及びその変形は発明の範囲及び要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００４４】
１  プログラム情報生成システム
２  情報処理端末
３  サーバ
４  ネットワーク
５  ＣＰＵ
６  ＲＯＭ
７  ＲＡＭ
８  入力デバイス
９  出力デバイス
１０  通信Ｉ／Ｆ
１１  取得部
１２  生成部
１３  表示制御部
４１，５０１，５２１，５３１  表示画像
４２，４３，４３Ａ，４３Ｂ，４４Ａ，４４Ｂ，４５Ａ，４５Ｂ，４６Ａ，４６Ｂ，４６Ｃ，５１１  画像オブジェクト（４６Ａ，４６Ｂ，４６Ｃ  集約対象オブジェクト）
４７  第１の軸
４８  第２の軸
１０１  第１のソースコード
１０２  第２のソースコード
２０１〜２１４  区間情報
３０１  ソースコード位置情報
３１１  包含関係情報
３２１  分類情報
３３１  特徴情報
４０１  表示方式情報
【図１】
2017041084.tif 000003
【図２】
2017041084.tif 000004
【図３】
2017041084.tif 000005
【図４】
2017041084.tif 000006
【図５】
2017041084.tif 000007
【図６】
2017041084.tif 000008
【図７】
2017041084.tif 000009
【図８】
2017041084.tif 000010
【図９】
2017041084.tif 000011
【図１０】
2017041084.tif 000012
【図１１】
2017041084.tif 000013
【図１２】
2017041084.tif 000014
【図１３】
2017041084.tif 000015
【図１４】
2017041084.tif 000016
【図１５】
2017041084.tif 000017
【図１６】
2017041084.tif 000018
【図１７】
2017041084.tif 000019
【図１８】
2017041084.tif 000020
【図１９】
2017041084.tif 000021
【図２０】
2017041084.tif 000022
【図２１】
2017041084.tif 000023
【図２２】
2017041084.tif 000024
【図２３】
2017041084.tif 000025
【図２４】
2017041084.tif 000026
【図２５】
2017041084.tif 000027
【図２６】
2017041084.tif 000028