JP2016045893A - プログラム情報生成システム、方法、及びプログラム - Google Patents

プログラム情報生成システム、方法、及びプログラム Download PDF

Info

Publication number
JP2016045893A
JP2016045893A JP2014171995A JP2014171995A JP2016045893A JP 2016045893 A JP2016045893 A JP 2016045893A JP 2014171995 A JP2014171995 A JP 2014171995A JP 2014171995 A JP2014171995 A JP 2014171995A JP 2016045893 A JP2016045893 A JP 2016045893A
Authority
JP
Japan
Prior art keywords
information
event
program
display
dependency
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.)
Granted
Application number
JP2014171995A
Other languages
English (en)
Other versions
JP6258159B2 (ja
Inventor
黒田 亮
Akira Kuroda
亮 黒田
揚平 長谷川
Yohei Hasegawa
揚平 長谷川
秀則 松崎
Hidenori Matsuzaki
秀則 松崎
信明 東條
Nobuaki Tojo
信明 東條
真由子 肥塚
Mayuko Koezuka
真由子 肥塚
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 JP2014171995A priority Critical patent/JP6258159B2/ja
Priority to US14/718,485 priority patent/US9690682B2/en
Publication of JP2016045893A publication Critical patent/JP2016045893A/ja
Application granted granted Critical
Publication of JP6258159B2 publication Critical patent/JP6258159B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • 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/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Software Systems (AREA)

Abstract

【課題】プログラムの実行状況を示す画像の視認性を向上するプログラム情報生成システムを提供する。【解決手段】プログラム情報生成システム1は、取得部11、生成部12、及び表示制御部13を含む。取得部11は、プログラムの実行により発生する複数のイベント間の依存関係を示す依存関係情報と、ユーザにより選択されたイベントである選択イベントを特定する選択情報とを取得する。生成部12は、依存関係情報と選択情報とに基づいて依存関係を有する複数のイベントから構成され選択イベントを含む依存経路が識別可能に表示されるように表示情報を生成する。表示制御部13は、表示情報に基づいてプログラムの実行状況を示す表示画像が表示されるように表示部を制御する。【選択図】図3

Description

本発明の実施形態は、プログラムの実行状況を示す情報を生成するプログラム情報生成システム、方法、及びプログラムに関する。
プログラムの開発等において、プログラムの実行状況を客観的に把握できるようにする支援ツールが利用されている。例えば、プログラムの実行状況を示す画像を生成し、これをコンピュータのディスプレイ等を通してユーザに提供する装置がある。このような装置では、例えば、プログラムの全実行状況のアクティビティを示す領域と、特定範囲の詳細な実行状況を示す領域とを表示し、ユーザが全実行状況を示す領域から特定範囲を指定できるようにする装置がある。
米国特許第7698686号明細書
しかしながら、上記のような従来の支援ツールでは、例えばプログラムの実行により大量のイベントが発生する場合に、実行状況を示す画像が煩雑となり、当該画像から必要な情報を得ることが困難となる場合がある。
そこで、以下の実施形態では、プログラムの実行状況を示す画像の視認性を向上させることを目的とする。
実施形態のプログラム情報生成システムは、プログラムの実行により発生する複数のイベント間の依存関係を示す依存関係情報と、ユーザにより選択された前記イベントである選択イベントを特定する選択情報とを取得する取得部と、前記依存関係情報と前記選択情報とに基づいて前記依存関係を有する複数の前記イベントから構成され前記選択イベントを含む依存経路が識別可能に表示されるように表示情報を生成する生成部と、前記表示情報に基づいて前記プログラムの実行状況を示す表示画像が表示されるように表示部を制御する表示制御部とを備える。
第1の実施形態にかかるプログラム情報生成システムの構成を例示する図である。 情報処理端末及びサーバのハードウェア構成を例示するブロック図である。 プログラム情報生成システムの機能的な構成を示すブロック図である。 軸情報を例示する図である。 イベント情報を例示する図である。 依存関係情報を例示する図である。 選択情報を例示する図である。 特定イベント情報を例示する図である。 生成部の機能的な構成を例示するブロック図である。 プログラム情報生成システムにおける処理を示すフローチャートである。 初期状態の表示画像を例示する図である。 選択イベントに対応するイベントオブジェクトの表示方式が変更された状態の表示画像を例示する図である。 2つのイベントオブジェクトが選択された場合の表示画像を例示する図である。 3つのイベントオブジェクトが選択された場合の表示画像を例示する図である。 1つのイベントオブジェクトが選択された場合の表示画像を例示する図である。 ロス区間に対応する区間オブジェクトが表示された状態の表示画像を例示する図である。 並列的に実行される特定イベントに対応するイベントオブジェクトの表示方式を変更した場合の表示画像を例示する図である。 クリティカルパスを構成する特定イベントに対応するイベントオブジェクトの表示方式を変更した場合の表示画像を例示する図である。 既に設定された依存経路に含まれない2つのイベントオブジェクトを新たに選択した場合の表示画像を例示する図である。
(第1の実施形態)
図1は、第1の実施形態にかかるプログラム情報生成システム1の構成を例示する図である。プログラム情報生成システム1は、情報処理端末2及びサーバ3を含む。情報処理端末2とサーバ3とはインターネット等のネットワーク4を介して接続されている。情報処理端末2は、ユーザが操作可能な情報処理装置であり、例えばパーソナルコンピュータ、タブレット等である。サーバ3は、情報処理端末2に表示される画像を生成するための処理の少なくとも一部を行う。なお、同図においては情報処理端末2及びサーバ3がそれぞれ1つずつ描かれているが、情報処理端末2及びサーバ3はそれぞれ複数であってもよい。
図2は、情報処理端末2及びサーバ3のハードウェア構成を例示する図である。情報処理端末2及びサーバ3は、通常のコンピュータに用いられる構成を有し、CPU(Central Processing Unit)5、ROM(Read Only Memory)6、RAM(Random Access Memory)7、入力デバイス8、出力デバイス9、及び通信I/F10を含む。CPU5は、ROM6等に記憶された制御プログラムに従ってRAM7をワーキングエリアとして所定の演算処理を行う。入力デバイス8は、外部から情報を入力するためのデバイスであり、例えばキーボード、マウス、タッチパネル等である。出力デバイス9は、内部で生成した情報を外部に出力するためのデバイスであり、例えばディスプレイ、プリンタ等である。通信I/F10は、ネットワーク4を介して外部の装置との間で情報の送受信を可能にするデバイスである。
図3は、プログラム情報生成システム1の機能的な構成を示すブロック図である。プログラム情報生成システム1は、取得部11、生成部12、及び表示制御部13を含む。
取得部11は、プログラムの実行状況を示す画像を生成するために必要な情報を取得する。当該プログラムは、検査対象となるプログラムを意味し、上記CPU5を制御するための制御プログラムとは異なる。以下、単に「プログラム」と表記した場合は、検査対象となるプログラムを表すものとする。取得部11は、情報処理端末2又はサーバ3のCPU5、ROM6、RAM7、入力デバイス8等を利用して構成される。
プログラムは、情報処理装置に対する命令を記述したものであり、例えばC言語、JAVA(登録商標)言語等のプログラミング言語により記述されたソースコード等である。プログラムが実行されることによりイベントが発生する。イベントは、プログラムの実行により発生する処理の単位であり、例えば下記のものが挙げられる。なお、イベントはタスクと称される場合がある。また、1つのイベントが複数のイベントを包含してもよい。例えば、関数の1回の実行を表す「イベント1」がその実行内にメモリアクセス、命令実行等を表す複数のイベントを含む場合がある。
・関数、ループ、条件分岐等のプログラムの構成単位
・メモリアクセス
・命令実行
・スレッド生成
・同期処理
・電子回路等の計算資源で実行される処理
図4〜図8は、取得部11により取得される情報を例示している。当該情報には、軸情報50、イベント情報60、依存関係情報70、選択情報80、及び特定イベント情報90が含まれる。
図4は、軸情報50を例示する図である。軸情報50は、出力デバイス9(例えば情報処理端末2のディスプレイ等)に表示されるプログラムの実行状況を示す画像(後述する図11〜図19に示す表示画像100)の枠取りを設定するための情報である。枠取りとは、プログラムの実行状況を示す画像の内容を表示するために必要な領域であり、例えば矩形状の画像の縦軸及び横軸の長さ等である。軸情報50は、時間軸情報51及び属性軸情報52を含む。時間軸情報51は、表示画像100の横軸を設定するものであり、出力デバイス9の最小描画単位当たりの期間と描画期間とを含む。本例では、最小描画単位当たりの期間が「2」であり、描画期間が「0」から「900」であることが示されている。属性軸情報52は、表示画像100の縦軸を設定するものであり、要素名と表示位置とを含む。本例では、「core0」から「core4」までの5つの要素があり、例えば「core0」の表示位置は「50」であることが示されている。当該要素名は、例えばイベントに関連するハードウェア等を示し、本例ではイベントを実行するプロセッサコアを表している。「50」とは、出力デバイス9の縦方向の所定位置を示す値である。なお、本例とは逆に横軸を属性軸、縦軸を時間軸としてもよい。
図5は、イベント情報60を例示する図である。イベント情報60は、イベント毎に実行時間及び属性に関する情報が設定された情報である。イベント情報60は、識別情報61、実行時間情報(開始時刻情報62及び期間情報63)、及び属性情報64を含む。本例では、例えば識別情報61として「1」が割り当てられたイベントは時刻「0」から期間「40」が経過するまでの間、「core0」により実行されることが示されている。
なお、イベント情報60は、上記に限られるものではなく、例えば下記情報を含んでもよい。
・実行トレース情報
・プログラムの静的情報
・プログラムの実行環境情報
・ハードウェアの実行情報
・クリティカルパスのイベントであるか否かを示す情報
実行トレース情報とは、プログラム実行時に取得可能な実行時の状況を示す情報であり、例えば下記情報が挙げられる。
・イベントを実行したプロセッサコアの情報
・イベントを実行したハードウェア資源の情報
・イベントを実行させた命令の情報
・イベントにより実行されたメモリアクセスの情報
・イベントにより実行された関数コールの回数
・イベント内の変数の値
・イベントがループイタレーションである場合において何回目のイタレーションであるかを示す情報
・イベントが割り込み処理であるかを示す情報
プログラムの静的情報とは、プログラム実行前に取得可能な情報であり、例えば下記情報が挙げられる。
・プログラムのソースコード
・ソースコード管理システムから得られる静的な情報
・ソースコード上の位置情報
・プログラムの構造情報
・ソースコードのコンパイル情報
・ソースコードのバージョン情報
・プログラムがカーネルプログラムであるかを示す情報
・プログラムがユーザプログラムであるかを示す情報
プログラムの実行環境情報とは、プログラムを実行した際の環境に関する情報であり、例えば下記情報が挙げられる。
・プロセッサコア名
・サーバ名
・ハードウェア情報
・サーバの仕様情報
また、実行時間情報は上記に限られるものではなく、例えば下記情報を含んでもよい。
・開始時刻と終了時刻
・期間と終了時刻
開始時刻、終了時刻、及び期間は、例えば下記情報であってもよい。
・プロセッサ時刻
・プロセッサ時刻に基づいて生成された時間情報
・ハードウェア時刻
・ハードウェア時刻に基づいて生成された時間情報
図6は、依存関係情報70を例示する図である。依存関係情報70は、互いに依存関係を有するイベントを特定する情報である。依存関係とは、連続して実行される複数のイベントの実行順序を示すものである。本例では、例えば「1,3」は、イベント「1」が完了した後にイベント「3」が実行されることが示されている。また、「3,5」、「3,6」、及び「3,7」は、イベント「3」が完了すると、イベント「5,6,7」が並列的に実行されることを示している。また、「5,10」、「6,10」、及び「7,10」は、イベント「5,6,7」の全てが完了するまでイベント「10」が実行されないことを示している。本例では同様に30個の依存関係が示されている。
なお、依存関係情報70は、上記に限られるものではなく、例えば下記情報を含んでもよい。
・依存元と依存先とを明示する情報
・データの依存関係を示す情報
・制御の依存関係を示す情報
・ハードウェア資源の利用順序を示す情報
図7は、選択情報80を例示する図である。選択情報80は、ユーザが選択したイベントを特定する情報である。イベントの選択は、ユーザによる情報処理端末2の操作により行うことができる。例えば、情報処理端末2のディスプレイに表示された後述する表示画像100中のイベントを示す画像をマウス、タッチパネル等を利用して指定したり、キーボードを操作してイベントに割り当てられた番号を入力したりすることにより行うことができる。また、イベントの選択は、ユーザによる手動操作に限られるものではなく、予め設定した条件を満たすイベントが自動的に選択されるようにしてもよい。本例では、3つのイベント「2,8,22」が選択された場合、2つのイベント「1,18」が選択された場合、及び1つのイベント「1」が選択された場合が示されている。
図8は、特定イベント情報90を例示する図である。特定イベント情報90は、所定の条件に適合するイベントを特定する情報である。所定の条件とは、例えばプログラムのスムーズな実行を妨げる要因等である。本例では、イベント「17,19,20,21」が所定の条件を満たすことが示されている。特定イベントに該当するものとしては、例えば下記イベントが挙げられる。
・時間的に重複して並列的に実行される複数のイベント
・クリティカルパスを構成するイベント
・実行時間情報(開始時刻情報62及び期間情報63)に基づいて特定されるイベント
・属性情報64に基づいて特定されるイベント
クリティカルパスとは、全てのイベントが完了するまでの所要時間が最大となる経路である。
実行時間情報に基づいて特定されるイベントとしては、例えば下記イベントが挙げられる。また、これらのイベントが組み合わされてもよい。
・開始時刻が所定時刻より後であるイベント
・開始時刻が所定時刻より先のイベント
・開始時刻が所定時刻と一致するイベント
・開始時刻が所定時刻と一致しないイベント
・終了時刻が所定時刻より後であるイベント
・終了時刻が所定時刻より先であるイベント
・終了時刻が所定時刻と一致するイベント
・終了時刻が所定時刻と一致しないイベント
・実行期間が所定値より大きいイベント
・実行期間が所定値より小さいイベント
・実行期間が所定値と一致するイベント
・実行期間が所定値と一致しないイベント
属性情報64に基づいて特定されるイベントとしては、例えば下記イベントが挙げられる。また、これらのイベントが組み合わされてもよい。
・実行時のメモリアクセス回数に基づいて特定されるイベント
・実行時のメモリアクセス先のメモリアドレスに基づいて特定されるイベント
・加算、減算等のCPUの処理で特定されるイベント
・ソースコード上の場所、範囲等で特定されるイベント
・関数、ループ等のプログラムの構成情報で特定されるイベント
・ループの回転数に基づいて特定されるイベント
・実行されたコアの情報に基づいて特定されるイベント
・ハードウェアの実行情報に基づいて特定されるイベント
取得部11により取得される上記情報は、情報処理端末2、サーバ3、又は他の情報処理装置の機能を利用して取得、生成、及び記憶される。当該情報の取得、生成、及び記憶の方式は、使用される装置及びネットワークの形態、機能等に応じて適宜設計されるべきものである。例えば、プログラムは、CD−ROM、DVD、フラッシュメモリ等の可搬記憶媒体から取得されてもよいし、ネットワーク4を介して取得されてもよい。また、当該情報は、ユーザの入力作業により入力されてもよいし、ネットワーク4に接続された所定の記憶装置に予め記憶されている情報を読み出してもよいし、プログラムの内容を自動的に解析するシステムを利用して生成してもよい。このように、取得部11は、必要な情報を後述する生成部12に受け渡すことができれば、様々な形態で構成できるものである。
図9は、生成部12の機能的な構成を示すブロック図である。生成部12は、依存経路処理部21、区間処理部22、特定イベント処理部23、及び表示情報生成部24を含む。生成部12は、情報処理端末2又はサーバ3のCPU5、ROM6、RAM7、入力デバイス8等を利用して構成される。
依存経路処理部21は、依存関係情報70、選択情報80等に基づいて、ユーザが選択した選択イベントを含む依存経路を判定する。依存経路とは、互いに依存関係を有する複数のイベントから構成される経路である。例えば、依存関係情報70に基づいて「1」から「22」に至るまでの複数の依存経路を判定した後、それらの中から選択情報80に規定された選択イベント(例えば「1」と「18」)含む依存経路を抽出することにより、選択イベントを含む依存経路を判定することができる。
区間処理部22は、実行時間情報(開始時刻情報62及び期間情報63)、依存関係情報70等に基づいて、依存関係を有する複数のイベント間の区間に関する情報を取得する。区間に関する情報とは、連続して実行される2つのイベントにおいて前に実行されるイベントの終了時から後に実行されるイベントの開始時までの時間間隔等である。例えば、依存関係情報70に基づいてイベント「1」の終了後にイベント「3」が実行されることがわかる。そして、実行時間情報に基づいてイベント「1」の終了時刻(0+40=40)とイベント「3」の開始時刻(60)とを判定することができ、当該開始時刻と終了時刻との差から時間間隔(20)を導き出すことができる。更に、このように判定された時間間隔と実際に実行されたイベントの時間間隔とを比較すること、開始時刻情報62に規定された時刻とイベントの実際の開始時刻とを比較すること等により、イベントの遅延を検出することができる。
特定イベント処理部23は、特定イベント情報90等に基づいて、所定の条件に適合する特定イベントを判定する。特定イベントとは、上述したように、プログラムのスムーズな実行を妨げる要因を有するイベント等であり、例えば時間的に重複して並列的に実行される複数のイベント、クリティカルパスを構成するイベント等である。
表示情報生成部24は、依存経路処理部21、区間処理部22、及び特定イベント処理部23による処理結果に基づいて、プログラムの実行状況を視覚的に表現する表示画像100を生成するための表示情報を生成する。表示情報生成部24は、後述するように、選択イベントを含む依存経路、所定の区間、特定イベント等が識別可能に、すなわち視認しやすいように特徴付けられて表示されるように表示情報を生成する。
表示制御部13は、生成部12(表示情報生成部24)により生成された表示情報に基づいて表示画像100を生成し、表示画像100を出力デバイス9(情報処理端末2のディスプレイ等)に表示させる。表示制御部13は、情報処理端末2及びサーバ3のCPU5、ROM6、RAM7、出力デバイス9等を利用して構成される。
以下に、上記構成のプログラム情報生成システム1により表示画像100を生成する処理を例示する。図10は、プログラム情報生成システム1における処理を示すフローチャートである。図11〜図19は、表示画像100を例示する図である。
図10に示すように、先ず軸情報50及びイベント情報60が取得される(S1)。軸情報50及びイベント情報60に基づいて表示画像100を構成する各要素の表示位置、表示サイズ、及び表示方式を設定するように表示情報が生成される(S2)。当該表示情報に基づいて表示画像100が生成され、当該表示画像100が情報処理端末2の出力デバイス9に表示される(S3)。
図11は、ステップS3において表示される初期状態の表示画像100を例示している。本例における表示画像100はガントチャートである。表示画像100の横軸は時間軸であり、縦軸はイベントに関連するハードウェア等を示す属性軸である。これらの時間軸及び属性軸は、上述したように図4に示す軸情報50に基づいて設定される。
生成部12は、軸情報50とイベント情報60とに基づいて時間軸オブジェクトと属性軸オブジェクトとを生成する。本実施形態では、時間軸情報51に基づいて最小描画単位当たりの期間を「2」に設定し、描画範囲を「0」から「900」までに設定し、一定区間ごとに時刻情報のラベルを表示することにより時間軸オブジェクトを生成する。本例における時刻情報のラベルは「100」、「300」、「500」、「700」、「900」である。また、生成部12は、属性軸情報52の属性軸名を属性軸のラベルとして設定し、ラベルを表示位置情報に基づいて配置することにより属性軸オブジェクトを生成する。例えば、ラベル「core0」を表示位置「50」に配置する。
表示画像100には、矩形状のイベントオブジェクト101A,101B,101C,〜(以下、101A,101B,101C,〜を総括して表現することが適当な場合には101と表記する)が表示されている。本例では、各イベントオブジェクト101と実際のイベントとは一対一で対応している。イベントオブジェクト101の縦軸上の位置は、そのイベントがどのハードウェアに関連しているかを示している。例えば、イベントオブジェクト101Aに対応するイベントはcore2により実行され、イベントオブジェクト101Kに対応するイベントはcore1により実行されることが示されている。イベントオブジェクト101の横軸上の位置は、そのイベントの実行時間を示している。例えば、イベントオブジェクト101Kに対応するイベントは、時刻500から開始され時刻900に終了することが示されている。
生成部12は、軸情報50とイベント情報60とに基づいてイベントオブジェクト101の表示位置と表示サイズとを設定する。一例として、識別情報61の「2」に対応するイベントオブジェクト101Aに着目して説明する。生成部12は、識別情報61の「2」に対応する期間情報63が「40」であり、時間軸情報51の最小描画単位当たりの期間が「2」であることから、イベントオブジェクト101Aの表示サイズ(横方向の長さ)を(実行期間:40)/(最小描画単位当たりの期間:2)=20に設定する。また、生成部12は、識別情報61:2に対応する開始時刻情報62が「0」であり、時間軸情報51が「0,900」であることから、イベントオブジェクト101Aの開始位置(左側の端部の位置)の時間軸上の位置を0に設定する。また、生成部12は、識別情報61の「2」に対応する属性情報64が「core2」であり、属性軸情報52が「core2,250」であることから、イベントオブジェクト101Aの属性軸方向の表示位置を250に設定する。
なお、イベントオブジェクト101の表示位置及び表示サイズの決定は、イベントオブジェクト101と軸の要素との対応関係が確認できるように行われればよく、上記に限られるものではない。当該表示位置及び表示サイズは、例えば事前に与えられた値に基づいて決定されてもよいし、属性軸情報52に基づいて軸の要素が重なり合わないように自動的に調整されてもよい。また、イベントオブジェクト101の形状は矩形状に限られるものではなく、線形状、楕円形状等であってもよい。
図11において、イベントオブジェクト101の間に記載されている矢印は、イベントオブジェクト101間の依存関係の方向性を示している。例えば、イベントオブジェクト101A,101B間の矢印は、イベントオブジェクト101Aが完了した後にイベントオブジェクト101Bが実行されることを示している。イベントオブジェクト101C,101D,101Eとイベントオブジェクト101Fとの間の3つの矢印は、3つのイベントオブジェクト101C,101D,101Eが完了した後でなければイベントオブジェクト101Fが実行されないことを示している。
次いで、図10に示すように、選択イベントの有無が判定される(S4)。選択イベントがない場合(No)には、ステップS2に戻り、選択イベントがある場合(Yes)には、選択情報80に基づいて選択イベントに対応するイベントオブジェクト101の表示方式が変更される(S5)。
図12は、選択イベントに対応するイベントオブジェクト101Aの表示方式が変更された状態を例示している。イベントオブジェクト101Aは他のイベントオブジェクト101とは異なる表示方式により表示されている。表示方式としては、例えば下記のものが挙げられる。
・色彩
・模様
・輝度
・透明度
・形状
・点滅の有無
どのような表示方式を適用するかは使用状況(出力デバイス9がカラー表示可能か否か等)に応じて適宜選択されるべき事項である。イベントの選択は、上述したようにユーザの画面上での指定操作等により行うことができるが、これに限られるものではなく、例えば予め設定した条件を満たすイベントが自動的に選択されるようにしてもよい。
次いで、図10に示すように、選択情報80及び依存関係情報70に基づいて選択オブジェクトに対応するイベントオブジェクト101を含む依存経路が判定され、依存経路上のイベントオブジェクト101の表示方式が変更される(S6)。
図13は、2つのイベントオブジェクト101A,101Kが選択された場合の依存経路の表示方式を例示している。依存経路は選択された2つイベントオブジェクト101A,101Kを含むように設定される。本例では、依存経路に含まれる他のイベントオブジェクト101B〜101Jの表示方式は、選択されたイベントオブジェクト101A,101K及び依存経路に含まれない他のイベントオブジェクト101の表示方式と異なるように変更される。
図14は、3つのイベントオブジェクト101A,101C,101Kが選択された場合の依存経路の表示方式を例示している。本例の状態は、図13の状態からイベントオブジェクト101Cの選択が追加された状態である。このような選択の追加は、例えばユーザが情報処理端末2のディスプレイ上でマウス、タッチパネル等を利用してイベントオブジェクト101Cを指定する等の操作により行うことができる。依存経路は選択された全てのイベントオブジェクト101A,101C,101Kを含むように設定される。本例においては、図13の状態と比較して、イベントオブジェクト101D,101Eが依存経路から除外されている。
図15は、1つのイベントオブジェクト101Aが選択された場合の依存経路の表示方式を例示している。本例では、1つのイベントオブジェクト101Aのみが選択されている。イベントオブジェクト101Aの表示方式は、依存経路を構成する他のイベントオブジェクト101B〜101Kの表示方式と異なっている。このように、選択されたイベントオブジェクト101が1つであっても、依存経路を特徴付けて表示することができる。なお、本例の状態は、図13又は図14の状態からイベントオブジェクト101C,101Kの選択を解除した状態である。このような選択の解除は、上述した選択の追加と同様に、ユーザがディスプレイ上で行えることが好ましい。
次いで、図10に示すように、イベント情報60及び依存関係情報70に基づいて区間オブジェクトが表示される(S7)。区間オブジェクトとは、依存関係を有する複数のイベントオブジェクト101間の区間の状態を示すものである。区間オブジェクトは、連続して実行される2つのイベントオブジェクト101間の時間間隔、イベントオブジェクト101の遅延等に応じて設定される。例えば、遅延が生じたイベントの前の区間(ロス区間)に対応する区間オブジェクトを他の区間オブジェクトと異なる表示方式で表示してもよい。ロス区間ではプログラムのスムーズな実行を妨げる事象が起きていると考えられる。
図16は、ロス区間に対応する区間オブジェクト102A,102B,102Cが表示された状態を例示している。空白で示された区間オブジェクト102は、ロス区間以外の通常の区間を示している。本例では、イベントオブジェクト101Aとイベントオブジェクト101Bの間の区間オブジェクト102A、イベントオブジェクト101Bとイベントオブジェクト101Fとの間の区間オブジェクト102B、イベントオブジェクト101Hとイベントオブジェクト101Kとの間の区間オブジェクト102C等がロス区間に対応している。ロス区間に対応する区間オブジェクト102A,102B,102Cの表示方式は、他の区間オブジェクト102の表示方式と異なっている。また、本例においては、ロス区間に対応する一部分の区間オブジェクト102A,102Bの表示方式とロス区間に対応する他の部分の区間オブジェクト102Cの表示方式とが異なっている。このように、ロス区間に対応する区間オブジェクト102A,102B,102Cについては、例えば依存関係の重複、遅延時間の大きさ等に応じて表示方式を異ならせてもよい。
生成部12は、イベント情報60及び依存関係情報70に基づいて区間オブジェクト102、102A,102B,102Cの表示位置、表示サイズ、及び表示方式を決定する。一例として、区間オブジェクト102Aに着目して説明する。区間オブジェクト102Aの開始位置(左側の端部の位置)は直前のイベントオブジェクト101Aの終了位置である。イベントオブジェクト101Aの終了位置は、{(識別情報61:1に対応する開始時刻:0)+(実行時間:40)}/(最小描画当たりの期間:2)=20である。すなわち、区間オブジェクト102Aの表示位置は、その開始位置が横軸(時間軸)上で20の位置になるように設定される(縦軸(属性軸)上の位置はイベントオブジェクト101Aと同一である)。区間オブジェクト102Aの表示サイズは、イベントオブジェクト101Aの終了位置からイベントオブジェクト101Bの開始位置までの長さである。イベントオブジェクト101Bの開始位置は、(識別情報61:4に対応する開始時刻:60)/(最小描画当たりの期間:2)=30である。従って、区間オブジェクト102Aの表示サイズは、{(イベントオブジェクト101Bの開始位置:30)−(イベントオブジェクト101Aの終了位置:20)}=10に設定される。また、生成部12は、イベントオブジェクト101Bの実際の開始時刻が開始時刻情報62に規定されている時刻:60より遅い場合には、区間オブジェクト102Aをロス区間と認定し、その表示方式を他の区間オブジェクト102の表示方式と異なるように設定する。また、イベントオブジェクト101Bの遅延時間が所定値以下の場合には、区間オブジェクト102Aをロス区間と認定せず、その表示方式の変更を行わないようにしてもよい。これにより、実質的に影響のある遅延だけを識別可能に表示することができる。他の区間オブジェクト102,102B,102Cの設定もこれと同様に行うことができる。
また、複数のイベントオブジェクト101の間に存在する区間オブジェクト102B,102Cについては、複数の依存関係が重複した状態となる場合がある。このような場合には、単独の区間オブジェクト102Aの表示方式と重複する区間オブジェクト102B,102Cの表示方式とを異ならせてもよい。例えば、単独の区間オブジェクト102Aの表示方式を「赤色の透明度50%の長方形」とし、重複する区間オブジェクト102B,102Cの表示方式を「黄色の透明度50%の長方形」としてもよい。これにより部分的に重なり合う区間オブジェクト102B,102Cを識別可能に表示することができる。
なお、区間オブジェクト102,102A,102B,102Cの表示位置及び表示サイズの決定は、関係する2つのイベントオブジェクト101の確認を可能にするものであればよく、上記に限られるものではない。当該表示位置及び表示サイズは、例えば事前に与えられた値に基づいて決定されてもよいし、関係する2つのイベントオブジェクト101と接触するように自動的に調整されてもよい。また、区間オブジェクト102,102A,102B,102Cの形状は矩形状に限られるものではなく、線形状、楕円形状等であってもよい。
次いで、図10に示すように、特定イベントの有無が判定される(S8)。特定イベントがない場合(No)には、ステップS5に戻り、特定イベントがある場合(Yes)には、特定イベント情報90に基づいて特定イベントに対応するイベントオブジェクト101の表示方式を変更する(S9)。
図17は、並列的に実行される特定イベントに対応するイベントオブジェクト101G,101H,101I,101Jの表示方式を変更した状態を例示している。本例では、並列的に実行される4つのイベントオブジェクト101G,101H,101I,101Jの表示形式が依存経路に含まれる他のイベントオブジェクト101A,101B,101C,101F,101Kの表示形式と異なっている。
図18は、クリティカルパスを構成する特定イベントに対応するイベントオブジェクト101A,101B,101E,101F,101H,101Kの表示方式を変更した状態を例示している。本例では、クリティカルパスに含まれる6つのイベントオブジェクト101A,101B,101E,101F,101H,101Kの表示形式が、依存経路に含まれる他のイベントオブジェクト101C,101D,101G,101I,101Jの表示形式と異なっている。
図19は、既に設定された依存経路に含まれない2つのイベントオブジェクト101L,101Mを新たに選択した状態を例示している。本例では、イベントオブジェクト101L,101Mを含む新たな依存経路が設定される。当該新たな依存経路に含まれるイベントオブジェクト101は、図中縦縞で示されるように、既に設定された依存経路(イベントオブジェクト101A,101C,101Kを含む依存経路)で使用されている表示方式以外の表示方式で表示される。これにより、依存経路毎の状態を識別可能に表示することができる。
なお、図1には、情報処理端末2とサーバ3とがネットワーク4を介して接続された構成が示されているが、プログラム情報生成システム1の実施形態はこれに限られない。例えば、単体のコンピュータで上記取得部11、生成部12、及び表示制御部13を実現することもできる。すなわち、当該「システム」の語には、単体の情報処理装置も含まれるものとする。また、複数のコンピュータをイントラネットにより接続して上記取得部11、生成部12、及び表示制御部13を実現することもできる。
また、図3には、プログラム情報生成システム1の最も基本的な機能ブロックである取得部11、生成部12、及び表示制御13を処理の順序で接続した構成が示されているが、実施形態はこれに限らない。例えば、各機能ブロックが協調しながら並列的に動作を行う構成、機能ブロックの順序を入れ替える構成、1つの機能ブロックを複数の機能ブロックに分割する構成、これら3つの構成を組み合わせた構成等であってもよい。
プログラム情報生成システム1の機能を実現させる制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD等のコンピュータで読み取り可能な記録媒体に記録されて提供することができる。また、制御プログラムは、ネットワークに接続された所定の記憶装置から所定のコンピュータにダウンロードすることにより提供されてもよいし、予めROM等に組み込まれて所定の情報処理装置に提供されてもよい。また、制御プログラムは、上記取得部11、生成部12、及び表示制御部13の機能を実現する複数のモジュールから構成されてもよい。
また、上記取得部11、生成部12、及び表示制御部13の各機能は、CPU5に制御プログラムを実行させることにより実現されてもよいし、IC(Integrated Circuit)等のハードウェアの作用により実現されてもよいし、これらの併用によりして実現されてもよい。
上記第1の実施形態にかかるプログラム情報生成システム1によれば、ユーザが選択したイベントを含む依存経路が他のイベントとは異なる表示形式で表示される。これにより、例えばユーザがプログラムの不具合の要因であると推定するイベントを画面上で選択することにより、これに関連する依存経路が識別可能に表示される。これにより、ユーザはプログラムの改善のための情報を得やすくなる。また、このように依存経路の表示方式を変更することにより、プログラムの実行により大量のイベントが発生する場合であっても、所望の依存経路を正確に視認することが可能となる。
また、上述したように依存経路を構成するイベント間の区間を識別可能に表示することにより、より視認性を向上させることができる。例えば上記のように、遅延が生じたイベントの前の区間を特徴付けて表示することにより、改善に取り組むべき箇所を正確且つ容易に認識することが可能となる。
また、上述したように所定の条件に適合する特定イベントを識別可能に表示することにより、より視認性を向上させることができる。例えば上述したように並列処理される複数のイベント、クリティカルパスを構成するイベント等を特徴付けて表示することにより、改善に取り組むべき箇所を正確且つ容易に認識することが可能となる。
以上、本発明の実施形態を説明したが、この実施形態は例として提示したものであり、発明の範囲を限定することを意図するものではない。この新規な実施形態はその他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態及びその変形は発明の範囲及び要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 プログラム情報生成システム
2 情報処理端末
3 サーバ
4 ネットワーク
5 CPU
6 ROM
7 RAM
8 入力デバイス
9 出力デバイス
10 通信I/F
11 取得部
12 生成部
13 表示制御部
21 依存経路処理部
22 区間処理部
23 特定イベント処理部
24 表示情報生成部
50 軸情報
51 時間軸情報
52 属性軸情報
60 イベント情報
61 識別情報
62 開始時刻情報
63 期間情報
64 属性情報
70 依存関係情報
80 選択情報
90 特定イベント情報
100 表示画像
101(101A〜101M) イベントオブジェクト
102(102A〜102C) 区間オブジェクト

Claims (11)

  1. プログラムの実行により発生する複数のイベント間の依存関係を示す依存関係情報と、ユーザにより選択された前記イベントである選択イベントを特定する選択情報とを取得する取得部と、
    前記依存関係情報と前記選択情報とに基づいて前記依存関係を有する複数の前記イベントから構成され前記選択イベントを含む依存経路が識別可能に表示されるように表示情報を生成する生成部と、
    前記表示情報に基づいて前記プログラムの実行状況を示す表示画像が表示されるように表示部を制御する表示制御部と
    を備えるプログラム情報生成システム。
  2. 前記生成部は、前記イベントに対応するイベントオブジェクトを生成し、前記依存経路に含まれる前記イベントオブジェクトの表示方式と前記依存経路に含まれない前記イベントオブジェクトの表示方式とが異なるように前記表示情報を生成する
    請求項1に記載のプログラム情報生成システム。
  3. 前記取得部は、前記イベントの実行時間に関する実行時間情報を更に取得し、
    前記生成部は、前記実行時間情報に基づいて複数の前記イベントオブジェクト間の区間に対応する区間オブジェクトを生成する
    請求項2に記載のプログラム情報生成システム。
  4. 前記生成部は、前記実行時間情報に規定された時間と実際に実行された前記イベントの実行時間とを比較することにより遅延が生じた前記イベントを判定し、前記遅延が生じた前記イベントに対応する前記イベントオブジェクトの前に位置する前記区間オブジェクトが識別可能に表示されるように前記表示情報を生成する
    請求項3に記載のプログラム情報生成システム。
  5. 前記取得部は、所定の条件に適合する前記イベントである特定イベントを特定する特定イベント情報を更に取得し、
    前記生成部は、前記特定イベントに対応する前記イベントオブジェクトが識別可能に表示されるように前記表示情報を生成する
    請求項2〜4のいずれか1項に記載のプログラム情報生成システム。
  6. 前記特定イベントは、並列的に実行される複数の前記イベントである
    請求項5に記載のプログラム情報生成システム。
  7. 前記特定イベントは、クリティカルパスを構成する前記イベントである
    請求項5に記載のプログラム情報生成システム。
  8. 前記依存経路は、少なくとも2つの前記選択イベントを含む
    請求項1〜7のいずれか1項に記載のプログラム情報生成システム。
  9. 前記ユーザが使用する情報処理端末と、前記情報処理端末とネットワークを介して接続されたサーバとを備え、
    前記表示情報を生成するための処理の少なくとも一部が前記サーバにより行われ、
    前記表示画像が前記情報処理端末の前記表示部に表示される
    請求項1〜8のいずれか1項に記載のプログラム情報生成システム。
  10. コンピュータを利用してプログラムの実行状況を示す情報を生成する方法であって、
    プログラムの実行により発生する複数のイベント間の依存関係を示す依存関係情報と、ユーザにより選択された前記イベントである選択イベントを特定する選択情報とを取得する工程と、
    前記依存関係情報と前記選択情報とに基づいて前記依存関係を有する複数の前記イベントから構成され前記選択イベントを含む依存経路が識別可能に表示されるように表示情報を生成する工程と、
    前記表示情報に基づいて前記プログラムの実行状況を示す表示画像が表示されるように表示部を制御する工程と
    を備えるプログラム情報生成方法。
  11. コンピュータに、
    プログラムの実行により発生する複数のイベント間の依存関係を示す依存関係情報と、ユーザにより選択された前記イベントである選択イベントを特定する選択情報とを取得する処理と、
    前記依存関係情報と前記選択情報とに基づいて前記依存関係を有する複数の前記イベントから構成され前記選択イベントを含む依存経路が識別可能に表示されるように表示情報を生成する処理と、
    前記表示情報に基づいて前記プログラムの実行状況を示す表示画像が表示されるように表示部を制御する処理と
    を実行させるためのプログラム情報生成プログラム。
JP2014171995A 2014-08-26 2014-08-26 プログラム情報生成システム、方法、及びプログラム Active JP6258159B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014171995A JP6258159B2 (ja) 2014-08-26 2014-08-26 プログラム情報生成システム、方法、及びプログラム
US14/718,485 US9690682B2 (en) 2014-08-26 2015-05-21 Program information generating system, method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014171995A JP6258159B2 (ja) 2014-08-26 2014-08-26 プログラム情報生成システム、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2016045893A true JP2016045893A (ja) 2016-04-04
JP6258159B2 JP6258159B2 (ja) 2018-01-10

Family

ID=55402631

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014171995A Active JP6258159B2 (ja) 2014-08-26 2014-08-26 プログラム情報生成システム、方法、及びプログラム

Country Status (2)

Country Link
US (1) US9690682B2 (ja)
JP (1) JP6258159B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018060421A (ja) * 2016-10-06 2018-04-12 株式会社東芝 情報生成システム、装置、方法、及びプログラム
JP2020512613A (ja) * 2017-03-29 2020-04-23 グーグル エルエルシー 同期するハードウェアイベント収集
JP2021021965A (ja) * 2019-07-24 2021-02-18 株式会社富士通エフサス 表示制御装置、表示制御方法および表示制御プログラム
WO2022009304A1 (ja) * 2020-07-07 2022-01-13 三菱電機株式会社 プログラム作成支援装置
US11650895B2 (en) 2017-03-29 2023-05-16 Google Llc Distributed hardware tracing

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9858045B2 (en) * 2016-03-28 2018-01-02 Microsoft Technology Licensing, Llc Designer tool for managing cloud computing services
US10705820B2 (en) * 2017-02-02 2020-07-07 Ford Global Technologies, Llc Method and apparatus for secure multi-cycle vehicle software updates

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0683608A (ja) * 1992-09-04 1994-03-25 Fujitsu Ltd プログラム解析支援装置
JPH1196024A (ja) * 1997-09-25 1999-04-09 Hitachi Software Eng Co Ltd 業務ジョブ実行関連図表示方法
JP2008537222A (ja) * 2005-04-15 2008-09-11 マイクロソフト コーポレーション ソフトウェアプログラムに関するパフォーマンス分析の方法と装置
JP2009129179A (ja) * 2007-11-22 2009-06-11 Toshiba Corp プログラム並列化支援装置およびプログラム並列化支援方法
JP2011138494A (ja) * 2009-12-23 2011-07-14 Intel Corp 仮想タスクを使用したマルチコアプロセッサの性能解析のための関係モデル化
JP2012221502A (ja) * 2011-04-08 2012-11-12 Computer Associates Think Inc Jvmおよびクロスjvm呼び出しスタックの可視化

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070168992A1 (en) * 2005-11-17 2007-07-19 International Business Machines Corporation Method of tracing back the execution path in a debugger
US7904892B2 (en) * 2006-01-06 2011-03-08 Northrop Grumman Corporation Systems and methods for identifying and displaying dependencies
US8769497B2 (en) * 2010-07-20 2014-07-01 General Electric Company System and method for use in indicating execution of application code
JP6437226B2 (ja) 2013-07-22 2018-12-12 株式会社東芝 情報処理システム、プログラム情報生成方法、プログラム情報生成プログラム、および、プログラム情報表示システム
US9792194B2 (en) * 2013-10-18 2017-10-17 International Business Machines Corporation Performance regression manager for large scale systems
JP6189232B2 (ja) 2014-03-04 2017-08-30 株式会社東芝 プログラム情報生成システム、その方法、プログラム、およびプログラム情報表示システム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0683608A (ja) * 1992-09-04 1994-03-25 Fujitsu Ltd プログラム解析支援装置
JPH1196024A (ja) * 1997-09-25 1999-04-09 Hitachi Software Eng Co Ltd 業務ジョブ実行関連図表示方法
JP2008537222A (ja) * 2005-04-15 2008-09-11 マイクロソフト コーポレーション ソフトウェアプログラムに関するパフォーマンス分析の方法と装置
JP2009129179A (ja) * 2007-11-22 2009-06-11 Toshiba Corp プログラム並列化支援装置およびプログラム並列化支援方法
JP2011138494A (ja) * 2009-12-23 2011-07-14 Intel Corp 仮想タスクを使用したマルチコアプロセッサの性能解析のための関係モデル化
JP2012221502A (ja) * 2011-04-08 2012-11-12 Computer Associates Think Inc Jvmおよびクロスjvm呼び出しスタックの可視化

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018060421A (ja) * 2016-10-06 2018-04-12 株式会社東芝 情報生成システム、装置、方法、及びプログラム
JP2020512613A (ja) * 2017-03-29 2020-04-23 グーグル エルエルシー 同期するハードウェアイベント収集
JP7196083B2 (ja) 2017-03-29 2022-12-26 グーグル エルエルシー 同期するハードウェアイベント収集
US11650895B2 (en) 2017-03-29 2023-05-16 Google Llc Distributed hardware tracing
US11921611B2 (en) 2017-03-29 2024-03-05 Google Llc Synchronous hardware event collection
JP2021021965A (ja) * 2019-07-24 2021-02-18 株式会社富士通エフサス 表示制御装置、表示制御方法および表示制御プログラム
JP7408309B2 (ja) 2019-07-24 2024-01-05 株式会社富士通エフサス 表示制御装置、表示制御方法および表示制御プログラム
WO2022009304A1 (ja) * 2020-07-07 2022-01-13 三菱電機株式会社 プログラム作成支援装置

Also Published As

Publication number Publication date
US20160062871A1 (en) 2016-03-03
US9690682B2 (en) 2017-06-27
JP6258159B2 (ja) 2018-01-10

Similar Documents

Publication Publication Date Title
JP6258159B2 (ja) プログラム情報生成システム、方法、及びプログラム
TWI468884B (zh) 次序程式作成裝置
CN109117141B (zh) 简化编程的方法、装置、电子设备、计算机可读存储介质
JP2018505506A5 (ja)
JP2017538996A5 (ja)
KR101232535B1 (ko) 가상 태스크를 이용한 멀티-코어의 성능 분석용 관계 모델링
JP2018502391A (ja) ユーザインタフェースを表示するためのコンピュータ実装方法
JP6223866B2 (ja) 表示情報生成装置、プログラム実行状況表示システム、方法およびプログラム
JP2017522639A5 (ja)
JP2016157289A (ja) 運用手順評価装置および運用手順評価プログラム
JP2009211622A (ja) 契約定義関数検証装置、その方法及びそのプログラム
JP2018106556A5 (ja)
JP6437226B2 (ja) 情報処理システム、プログラム情報生成方法、プログラム情報生成プログラム、および、プログラム情報表示システム
JP6665576B2 (ja) 支援装置、支援方法及びプログラム
JP2007080049A (ja) 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部
JP6171462B2 (ja) 設計支援装置、設計支援方法および設計支援プログラム
JP6398456B2 (ja) ソフトウェア生成装置
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
JP5789575B2 (ja) 情報処理装置、プログラム
US20160085517A1 (en) Program information generating system, program information generating method, and computer program product
JP5287427B2 (ja) シンボリックデバッガ、方法およびプログラム
JP6567125B1 (ja) デバッグ装置、シミュレーション装置及びデバッグ用のプログラム
JP5948926B2 (ja) オブジェクト指向プログラム生成装置、プログラム
WO2017022016A1 (ja) プログラム情報生成システム、方法、及びプログラム
JP6045986B2 (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171023

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: 20171107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171206

R151 Written notification of patent or utility model registration

Ref document number: 6258159

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151