JP6553461B2 - 既存システム処理仕様抽出装置 - Google Patents

既存システム処理仕様抽出装置 Download PDF

Info

Publication number
JP6553461B2
JP6553461B2 JP2015183554A JP2015183554A JP6553461B2 JP 6553461 B2 JP6553461 B2 JP 6553461B2 JP 2015183554 A JP2015183554 A JP 2015183554A JP 2015183554 A JP2015183554 A JP 2015183554A JP 6553461 B2 JP6553461 B2 JP 6553461B2
Authority
JP
Japan
Prior art keywords
output
output data
processing
input
analysis
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
JP2015183554A
Other languages
English (en)
Other versions
JP2017058984A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2015183554A priority Critical patent/JP6553461B2/ja
Priority to CN201680001708.6A priority patent/CN107430513B/zh
Priority to US15/320,992 priority patent/US10489428B2/en
Priority to PCT/JP2016/072560 priority patent/WO2017047257A1/ja
Publication of JP2017058984A publication Critical patent/JP2017058984A/ja
Application granted granted Critical
Publication of JP6553461B2 publication Critical patent/JP6553461B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • G06F16/287Visualization; Browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、既存情報システムのシステムへの入力項目と出力項目に対するシステム内部処理の関連付けするための技術に関する。その中でも特に、既存情報システムのいわゆるリプレース開発において、その仕様を把握するための技術に関する。
現在、既存情報システムをリプレースする開発がなされている。この場合、既存情報システムの仕様などを把握するする必要があり、そのシステムのプログラムの解析が行われている。このような技術を開示したものとして、特開平9−26897号公報(特許文献1)がある。この公報には、「データに対する処理を表すコンピュータプログラムのソースコードを解析するプログラム解析装置において、前記ソースコードから、前記各データの構造を表す情報であるデータ情報を抽出するデータ情報抽出手段と、前記ソースコードと前記データ情報とに基づいて、ソースコードの所定の位置について、データ間の関連情報を抽出する関連情報抽出手段と、を有することを特徴とするプログラム解析装置」と記載されている(請求項1参照)。
特開平9−26897号公報
特許文献1には、ソースコードの静的解析により、処理内容及び入出力仕様を含むソースコードの内容の理解を容易にする方法が記載されている。しかし、特許文献1では、ソースコードを分析しているため、ソースコードが無い場合に適用できない。リプレース開発においては、ソースコードを入手できないまま開発することもあるので、このような場合、特許文献1に記載された技術を用いることはできない。そこで、本発明の課題は、当該システムの入力項目と出力項目に対するシステムの内部処理の関係を抽出し、利用者に提示する事である。
上記課題を解決するために、本発明では、情報システムの入力項目に対して異なる入力を実行し、この入力の差と、それぞれの入力に対する出力データの変化の差を用いて、その(内部)処理と入力項目を対応付けるものである。ここで、出力データの変化としては、入力に伴うDBデータであり、処理はDB操作に対する処理が一例としてあげられる。この場合、「DBデータの変化」には「レコード追加」「レコード削除」「レコード更新」が含まれ、「DBデータの変化」の差には、「SQLクエリの有無の変化」「更新されるカラムの変化」「更新/削除されるレコードの変化」「追加/更新されるレコードの値の変化」が含まれる。この例では、「DBデータの変化」の差と「DB操作に関する処理」の関係に基づき入力項目と「DB操作に関する処理」を関連付けることになる。
より具体的には、以下の態様も本発明に含まれる。
既存システムに対する入力に伴う出力データの変化を、出力要素毎の変化の種類に基づき分類する出力データ変化情報取得部と既存システムに対して異なる入力を与えて得た前記分類を組み合わせ、入力項目値の利用パターンに基づく処理の種類を特定する。
本発明によれば、ソースコードが無い場合でも、既存情報システムの入力項目と出力項目に対するシステムの内部処理の関係を抽出できる。
上述した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
本発明の一実施例におけるシステムの入力項目と出力項目に対するシステム内部処理の関連分析装置100(以下「分析装置100」と呼ぶ)のハードウェア構成図の例である。 本発明の一実施例における分析プログラム200のソフトウェア構成及び構成要素の入出力情報の一例を表す図である。 本発明の一実施例における出力データ変化パターン分類部224の処理手順の一例を示すフローチャートである。 本発明の一実施例におけるシステム内部処理特定部230の処理手順の一例を示すフローチャートである。 本発明の一実施例における出力データ変化パターンとシステム内部処理の対応付け手順及び対応関係を示す表である。 本発明の一実施例で分析の対象とする分析対象システム280及び分析対象出力データ290と、分析装置100の関係を示すハードウェア構成図である。 本発明の一実施例における分析対象システム280の入力画面800及び入力の一例を示す図である。 本発明の一実施例における分析対象出力データ290の初期出力データ251及び当該システムへの入力後の実行後出力データ270の一例を示す図である。 本発明の一実施例における分析対象システム280の処理内容を示すフローチャートである。 本発明の一実施例について出力データの変化パターンを分類した結果である、出力データ変化パターン情報271を示す図である。 本発明の一実施例についてシステム内部処理を特定した結果である、システム内部処理情報272を示す図である。 本発明の一実施例における分析対象システム280に対して分析を繰り返して得たシステム内部処理情報272を、まとめて出力した場合の出力結果の一例を示す図である。 本発明の一実施例におけるシステムの入力項目と出力項目に対するシステム内部処理の関連把握を支援するための画面出力の一例を示す図である。 本発明の一実施例における分類ケースの分類方法の一例を示す図である。
以下、図面を用いて実施例を説明する。
本実施例では、分析装置100の処理の一例を説明する。
図1は、本実施例における分析装置100のハードウェア構成図の例である。
分析装置100は、CPU(Central Processing Unit)110、表示装置120、メモリ130、入力装置140、外部記憶装置150、ネットワーク通信装置160を有し、バスを介して接続されている。
外部記憶装置150は、CPU110において実行される処理プログラムとして、図2に示す分析プログラム200を保持している。分析プログラム200は、外部記憶装置150よりメモリ130に読み出されCPU110で実行される。
図2は、分析プログラム200のソフトウェア構成及び構成要素の入出力情報の一例を表す図である。
分析装置100は、分析プログラム200をCPU110で実行する。分析プログラム200は、変更分析ケース生成部210、出力データ変化情報取得部220、システム内部処理特定部230、分析結果表示部240からなる。出力データ変化情報取得部220は、例えばネットワーク通信装置160を介し、分析対象システム280や分析対象出力データ290を操作する。
本実施例を適用する為には、分析対象出力データ290が構造を持っており、一つひとつのデータ項目を識別できる必要がある。データ項目を識別可能な出力データの例として、表示装置120、メモリ130、外部記憶装置150のデータや、ネットワーク通信装置160を介してやり取りされるデータ、他のシステムが保持するデータ等がある。逆に、本発明の適用が難しい分析対象出力データ290として、アナログ信号データ等がある。本実施例では、分析対象出力データ290としてDBのデータを用いる場合について示す。
尚、本実施例では、分析対象出力データ290のデータ項目を、「単一データ項目」と「選択可能データ項目」に分類する。データ項目は、出力データの一単位である「出力要素」を1つ以上包含する。出力要素の例として、DBのレコードや、ある整数型変数のメモリなどがある。「ある出力処理がある場合に、条件を指定する事で一意に出力要素を変更できる」と言う条件のもと、2つ以上の出力要素を包含しているデータ項目を、「選択可能データ項目」と呼ぶ。例えば、配列データは、添え字という条件を指定する事で、同じデータ項目内で出力要素を変更できる。また、DBにおいては、対象のレコード(出力要素)を選択する条件を指定する事で、同一テーブル(データ項目)内であれば、出力要素を変更できる。
分析対象システム280は、入力装置110、ネットワーク通信装置160、他のプログラムなどから入力を受付け、分析対象出力データ290に対して参照・書き込みを行う。分析対象出力データ290のデータを参照できるか、参照・書き込みのログを取得できる必要がある。参照・書き込みのログの例として、分析対象出力データ290がDBであれば、DBへの処理内容を記録したジャーナルログやDBへの処理の指示内容を記録したSQLログなどがある。両ログとも、操作対象の出力要素や操作内容の情報を含んでいる。尚、分析対象システム280や分析対象出力データ290は、分析装置100に格納されていても良い。
本実施例の特徴は、出力データ変化情報取得部220で出力データの変化を分類し、システム内部処理特定部230でシステム内部処理と関連付けることである。
分析プログラム200は、分析ケース250を入力とし、変更分析ケース生成部210、出力データ変化情報取得部220、システム内部処理特定部230、分析結果表示部240で処理を行い、分析結果260を出力する。本実施例では、はじめに、(1)分析ケース250を入力として変更分析ケース生成部210で処理を行い、新たな分析ケース250を取得する。以降、分析プログラム200の入力として用意した分析ケースを基準分析ケースと呼び、変更分析ケース生成部210で生成した新たな分析ケース250を変更分析ケースと呼ぶ。次に、(2)分析ケース250を入力として出力データ変化情報取得部220で処理を行い、出力データ変化パターン情報271を取得する。この際、基準分析ケースを入力として得た出力データ変化パターン情報271を基準出力データ変化情報と呼び、変更分析ケースを入力として得た出力データ変化パターン情報271を変更出力データ変化パターン情報と呼ぶ。また、(3)2つの出力データ変化パターン情報271(基準出力データ変化パターン情報及び変更出力データ変化パターン情報)を入力としてシステム内部処理特定部230で処理を行い、システム内部処理情報272を取得する。その後、(4)他の分析ケース250がある場合は、(1)〜(3)の手順を、用意した分析ケース250が無くなるまで、若しくは、任意の入力項目の分析が終わるまで繰り返す。最後に、(5)すべての分析ケース250、システム内部処理情報272を入力とし、分析結果表示部240で処理を行い、分析結果260を出力する。
変更分析ケース生成部210は、分析ケース250を入力とし、入力項目の値を任意の方法で変更し、新たな分析ケース250を変更分析ケースとして出力する。変更の方法として、例えば、数字をインクリメントやデクリメントする方法、文字列に任意の文字を追加する方法、文字列から任意の文字を削除する方法などがある。変更の方針を与えるため、入力項目毎に変更方法を明示する情報や、制約などを与えても良い。尚、本実施例では、変更分析ケースを変更分析ケース生成部210で生成しているが、分析プログラム200に変更分析ケース生成部210を持たせず、変更分析ケースを手動で与えても良い。
出力データ変化情報取得部220は、分析ケース250を入力とし、出力データ変化パターン情報271を出力する。出力データ変化情報取得部220は、少なくとも、分析対象システム280に対して2種類の入力を行う機能と、その入力によって発生する出力データの変化を観測して出力データ変化パターンに分類する機能を有する。例えば、分析対象出力データ290としてDBのデータを用いる場合、出力データの変化を取得するため、ジャーナルログ、SQLトレースログ、DBデータのダンプなどが利用できる。本実施例では、DBデータをダンプして比較する方法を示す。
システム内部処理特定部230は、基準出力データ変化パターン情報と変更出力データ変化パターン情報を入力とし、システム内部処理情報272を出力する。
分析結果表示部240は、分析ケース250及びシステム内部処理情報272を入力とし、分析プログラム200の出力として、分析結果260を出力する。
ここで、出力データ変化情報取得部220の構成要素について説明する。出力データ変化情報取得部220は、分析ケース250を入力とし、出力データ初期化部221、対象プログラム実行部222、出力データ取得部223、出力データ変化パターン分類部224の処理を行い、出力データ変化パターン情報を出力とする。
分析ケース250は、初期出力データ251と入力データ252からなる。初期出力データ251は、分析対象出力データ290と同じ構造を持つ出力のデータである。また、入力データ252は、分析対象システム280の入力項目に入力する入力値の組である。
また、出力データ変化パターン情報271は、分析対象システム280に入力データ252に基づく画面入力を行った場合の分析対象出力データ290の変化を、「出力データ変化パターン」に分類した情報である。出力データ変化パターンには、「出力要素追加」「出力要素削除」「出力要素更新」「変化なし」がある。出力データ変化パターン情報271は、少なくとも、変化が発生したデータ項目、初期出力データ251及び実行後出力データ270と、出力データ変化パターンを持つ。
出力データ初期化部221は初期出力データ251を入力とし、分析対象出力データ290のデータを初期出力データ251で置き換える。
対象プログラム実行部222は、入力データ252を入力として受け取り、分析対象システム280に対して入力データ252を入力する。
出力データ取得部223は、例えば、分析対象出力データ290のデータをダンプして実行後出力データ270とする。ダンプの方法については、DBのデータであれば、専用のダンプツールを用いてもよいし、SQLクエリを用いても良い。
出力データ変化パターン分類部224は、初期出力データ251と実行後出力データ270を入力とし、出力データ変化パターン情報271を出力する。
尚、出力データ初期化部221の代わりに出力データ取得部223の処理を行う方法でもシステム内部処理の分析が可能である。この場合、分析ケース250に出力初期データ251を持たせず、また、対象プログラム実行部222の処理前に取得した出力データを初期出力データ251として用いることで本実施例と同様の結果を得られる。但し、同じ入力を2回与えた場合に、異なる出力データ変化が得られる場合には正しい分析結果が得られないことがある。何故ならば、1回目の入力で変化した出力データを2回目の入力に関する処理で利用しているためである。
図3は、出力データ変化パターン分類部224の処理手順の一例を示すフローチャートである。
本手順は、初期出力データ251及び実行後出力データ270に含まれる出力要素に対し、出力データ変化パターンを割り当てることを目的とする。
まず、初期出力データ251と実行後出力データ270を読み込む(ステップS500)。読み込んだ初期出力データのすべての出力要素について順にステップS501〜S506を繰り返す。
ステップS501では、実行後出力データに同じ出力要素が存在するか確認する。選択可能データ項目の場合は、同じ出力要素を特定する方法として、例えば、(A) すべての値が同じ出力要素を同じ出力要素とする、(B) 少なくともキーになる項目の値が同じ出力要素を同じ出力要素とする、(C) (B)とキーになる項目以外の項目の値がすべて同じ出力要素を同じ出力要素とする、などの方法を用いる。尚、多くのログは操作対象の出力要素を特定できる情報を含んでいる為、出力データ変化情報取得部220でジャーナルログやSQLトレースログ等を用いる場合、ログを解析することで同じ出力要素を特定できる。確認の結果、同じ出力要素が存在する場合は、ステップS503に進み、存在しない場合は、ステップS502に進む。ステップS502では、選択した初期出力データの出力要素の出力データ変化パターンを「出力要素削除」とする。
ステップS503では、選択した初期出力データの出力要素に対応する実行後出力データの出力要素を取得し、出力要素の組とする。
ステップS504では、ステップS503で組にした出力要素に値の差があるか確認する。差がある場合はステップS505に進み、無い場合はステップS506に進む。
ステップS505では、ステップS503で取得した出力要素の組の出力データ変化パターンを「出力要素変更」とする。
ステップS506では、ステップS503で取得した出力要素の組の出力データ変化パターンを「変更なし」とする。
ステップS507では、実行後出力データの出力要素のうち対応付けが完了していないものの出力データ変化パターンを「出力要素追加」とする。
ステップS508では、ステップS500〜S507で対応付けた出力要素と出力データ変化パターンをまとめ、出力データ変化パターン情報271として出力する。
図4は、システム内部処理特定部230のフローチャートの一例である。本手順は、本手順は、基準出力データ変化パターン情報400と変更出力データ変化パターン情報410を一定の基準で対応付け、システム内部処理と関連付ける事を目的とする。
システム内部処理特定部230で分類するシステム内部処理には、「分岐処理」、「出力要素選択処理」、「出力値決定処理」、「出力無関係処理」がある。
「分岐処理」は、変更分析ケース生成部210で入力値を変更した入力項目を分岐条件に使う分岐処理があることを表す。出力データ変化パターンが変化する場合と、出力データ変化パターンが共に「出力要素変更」で、尚且つ、更新される出力要素の出力項目が異なる場合に「分岐処理」が行われる。一般的に、このような変化は同一の出力処理では引起せないため、制御構文を用いて異なる出力処理が実行されるようにする必要がある。尚、異なる出力項目への出力処理が、同一の出力処理で行われている場合もあるが、出力項目同士が特殊な関係を持っている為に実現できる事である。特殊な関係の例として、出力項目同士がメモリ上で隣り合って配置されている場合などがある。
本実施例では、この様な特殊な関係があることを想定せず、出力項目と出力要素の関係性のみからシステム内部処理を特定する為、実際の実装とは異なった分析結果となる事がある。ただし、当該処理が異なる出力項目へ出力を切り変えている事に変わりは無い為、実装と異なる分析結果を出力してしても構わない。実装と分析結果が異なることは、分岐処理以外でも発生するが、出力処理と同様に受け入れ可能である。
「出力要素選択処理」は、変更分析ケース生成部210で入力値を変更した入力項目を、削除/変更する出力要素を同一出力項目内から選択する為に利用する処理があることを表す。出力データ変化パターンが共に「出力要素削除」の場合で、尚且つ、同一出力項目内の異なる出力要素が削除された場合と、出力データ変化パターンが共に「出力要素更新」の場合で、尚且つ、同一出力項目内の異なる出力要素が更新された異なる場合に「出力要素選択処理」が行われる。尚、「分岐処理」に該当する場合は、「出力要素選択処理」には対応付けない。
「出力値決定処理」は、変更分析ケース生成部210で入力値を変更した入力項目を出力に書き込む値の決定に利用する処理があることを表す。出力データ変化パターンが共に「出力要素追加」の場合で、尚且つ、更新された出力要素の値が異なる場合と、出力データ変化パターンが共に「出力要素変更」の場合で、尚且つ、更新された出力要素の値が異なる場合に「出力値決定処理」が行われる。尚、「分岐処理」や「出力要素選択処理」に該当する場合は、「出力値決定処理」には対応付けない。
「出力無関係処理」は、変更分析ケース生成部210で入力値を変更した入力項目が出力の出力に影響しない処理がある事を表す。「分岐処理」、「出力要素選択処理」、「出力値決定処理」に該当しない場合に、「出力無関係処理」が行われる。
まず、ステップS450で基準出力データ変化パターン情報400と変更出力データ変化パターン情報410を読み込む。
次に、出力データ変化パターンが「変化なし」の出力データ変化パターン情報271を、読み込んだ出力データ変化パターン情報271から取り除く。すべての出力データ変化パターン情報271が取り除かれた場合は、「出力無関係処理」を割り当て、処理を終了する。
最後に、残りの出力データ変化パターン情報271について、図5「出力データ変化パターンとシステム内部処理の対応付け手順及び対応関係を示す表」を基に、出力データ変化パターン情報にシステム内部処理を関連付ける。
図5は、出力データ変化パターンとシステム内部処理の対応付け手順及び対応関係を示す表500(以下、対応表500)である。本手順は、基準出力データ変化パターン情報400と変更出力データ変化パターン情報410の違いが、どの様なシステム内部処理に起因するかを特定する事が目的である。
対応表500は、2つの部分から構成されている。1つ目は、ローマ数字の項番、対象、及び、対応付け方法のカラムである。この部分は、比較対象とする基準出力データ変化パターン情報400と変更出力データ変化パターン情報410の組を探す条件を表している。2つ目は、アラビア数字の項番、システム内部処理、条件のカラムである。この部分は、1つ目の部分で選択した出力データ変化パターン情報271の組に対して割り当てるべきシステム内部処理を決めるルールを表している。1つ目の部分の項番I〜Vまでは、2つ目の部分の項番1〜4のルールを用いる。また、1つ目の部分の項番VIは、2つ目の部分の項番5のルールを用いる。両部分とも、項番の小さいほうから順に条件判定を行う。
項番Iでは、基準出力データ変化パターン情報400と変更出力データ変化パターン情報410のうち、出力データ変化パターン情報271が同じものを組み合わせる。
項番IIでは、基準出力データ変化パターン情報400と変更出力データ変化パターン情報410のうち、少なくとも初期出力要素以外は一致する出力データ変化パターン情報271を組み合わせる。
項番IIIでは、基準出力データ変化パターン情報400と変更出力データ変化パターン情報410のうち、少なくとも初期出力要素・変更する値以外は一致する出力データ変化パターン情報271を組み合わせる。
項番IVでは、基準出力データ変化パターン情報400と変更出力データ変化パターン情報410のうち、少なくとも初期出力要素・変更する出力要素・値以外は一致する出力データ変化パターン情報271を組み合わせる。
項番Vでは、基準出力データ変化パターン情報400と変更出力データ変化パターン情報410のうち、少なくとも初期出力要素・変更する出力項目・出力要素・値以外は一致する出力データ変化パターン情報271を組み合わせる。
この後、項番I〜Vで組み合わせた出力データ変化パターン情報271について、項番1〜4の条件を満たすか上から順に判断し、システム内部処理と関連付ける。
最後に、項番I〜Vで、組み合わせが見つからない出力データ変化パターン情報271を、分岐処理と関連付ける。
以降で、本実施例における分析装置100の動作例を示す。分析対象出力データ290としてDBを用いる。また、出力項目はカラムで、出力要素はレコードである。
図6は、本実施例で分析の対象とする分析対象システム280及び分析対象出力データ290と、分析装置100のハードウェア構成の一例を示す図である。
分析対象とするシステム280は、入力画面800から入力を受け、システム内部処理を行いながら、SQLクエリを実行して分析対象出力データ290を変化させる。
分析装置100は、対象プログラム実行部222の処理で入力画面800へ入力を行い、出力データ初期化部221の処理で分析対象出力データ290を初期化し、出力データ取得部223の処理で分析対象出力データ290を取得する。
図7は、本実施例における分析対象システム280の入力画面800及び入力の一例を示す図である。
本実施例では、商品情報の更新を行う商品情報更新画面900の入力項目に対して分析を行う。本画面の入力項目は、商品を一意に特定するための「ID」、商品の名前を表す「品名」、商品の数を表す「数量」である。OKボタン901を押下する事で、各入力項目に入力した入力値を用いて、分析対象システム280で処理が行われる。
基準入力データ910及び変更入力データ920は、入力データ252の例である。本例では、変更分析ケース生成部210で、基準入力データ910の品名「商品AA」を、「商品AB」に変更して変更入力データ920とした例を示している。
図8は、本実施例における分析対象出力データ290の初期出力データ251及び当該システムへの入力後の実行後出力データ270の一例を示す図である。
本実施例では、商品の情報を格納する商品情報テーブル1000を用いる。商品情報テーブル1000は、ID、Name、Countカラムを持つ。キーは、IDカラムである。商品情報テーブル1000には、本実施例で用いる初期出力データ251を示した。
基準実行後出力データ1010は、基準入力データ910の入力を行った後の基準実行後出力データを表している。また、変更実行後出力データ1020は、変更入力データ920の入力を行った後の変更実行後出力データを表している。基準実行後出力データ1010と変更実行後出力データ1020では、IDが1の出力要素(出力要素1011及び出力要素1021)のNameカラムの値が、「品名AA」から「品名AB」に変化している。
図9は、本実施例における分析対象システム280の処理内容を示すフローチャートである。
商品情報更新画面900でOKボタン901を押下すると、本図に示した処理が行われる。処理のルールを以下に示す。1つ目のルールは、商品情報更新画面900の入力項目「ID」がDBデータに登録されていない場合は処理を中断することである。2つ目のルールは、商品情報更新画面900の入力項目「数量」が負の値の場合は処理を中断することである。3つ目のルールは、商品情報更新画面900の入力項目「品名」が登録済みの場合は処理を中断する事である。
まず、入力項目「ID」に入力された入力値をIDカラムに持つ商品情報テーブル1000の出力要素数を取得するSQLクエリを実行する(ステップS1100)。例えば、「SELECT COUNT(ID) FROM 商品情報テーブル WHERE ID=‘1’」である。
次に、ステップS1100で取得した出力要素の数が1以上か判断する(ステップS1101)。1以上であればステップS1102に進む。それ以外の場合は、処理を終了する。
ステップS1102では、商品情報更新画面900から入力された入力項目「数量」の入力値が0未満か判断する。0未満の場合は、処理を終了する。それ以外の場合は、ステップS1103に進む。
ステップS1103では、商品情報更新画面900から入力された入力項目「品名」の入力値をNameカラムに持つ商品情報テーブル1000の出力要素数を取得するSQLクエリを実行する。例えば、「SELECT COUNT(ID) FROM 商品情報テーブル WHERE Name=‘品名AA’ AND ID<>‘1’」である。
ステップS1104では、ステップS1103で取得した出力要素の数が0か判断する。0であれば、ステップS1105に進む。それ以外の場合は、処理を終了する。
ステップS1105では、商品情報更新画面900から入力された入力項目「ID」の入力値を持つ商品情報テーブル1000の出力要素を更新するSQLクエリを実行する。出力要素の更新にあたっては、Nameカラムの値として入力項目「品名」の入力値、Countカラムの値として入力項目「数量」の入力値を用いる。SQLクエリの例として、「UPDATE 商品情報テーブル SET Name=‘品名AA’、 Count=‘10’ WHERE ID=‘1’」がある。
図10は、本実施例について出力データの変化パターンを分類した結果である、出力データ変化パターン情報271を示す図である。
基準出力データ変化パターン情報400は、初期出力データ1000と基準実行後出力データ1010を入力として、出力データ変化パターン分類部224の処理を行った場合の出力例である。また、変更出力データ変化パターン情報410は、初期出力データ1000と変更実行後出力データ1020を入力として、出力データ変化パターン分類部224の処理を行った場合の出力例である。基出力データ変化パターン情報400と変更出力データ変化パターン情報410は、同じ処理手順で抽出可能なため、基準出力データ変化パターン情報400の処理手順のみについて、図3に基づいて具体例を示す。
ステップS500で、初期出力データ1000と基準実行後出力データ1010を読み込む。初期出力データ1000の2つの出力要素について、順にステップS501〜S506を行う。
まず、1つ目の出力要素1001について説明する。ステップS501において、キーが同じ出力要素を基準実行後出力データ1010から探すと、1つ目の出力要素1011が見つかるため、ステップS503に進む。ステップS503で、出力要素1011を選択し、ステップS504に進む。ステップS504では、出力要素1001と出力要素1011に差異があるか調べる。本例では、Nameカラムの値が「品名AA」と「品名AB」で異なっているため、ステップS505に進む。ステップS505では、出力要素1001と出力要素1011の出力データ変化パターンを「出力要素変更」として対応付ける。
同様に、2つ目の出力要素1002について説明する。ステップS501において、キーが同じ出力要素を基準実行後出力データ1010から探すと、2つ目の出力要素1012が見つかるため、ステップS503に進む。ステップS503で、出力要素1012を選択し、ステップS504に進む。ステップS504では、出力要素1002と出力要素1012に差異があるか調べる。本例では差異がないため、ステップS506に進む。ステップS506では、出力要素1002と出力要素1012の出力データ変化パターンを「変化なし」として対応付ける。
初期出力データ1000に含まれるすべての出力要素についてステップS501〜S506の処理を終えたため、ステップS507に進む。初期出力データ1000にも基準実行後出力データ1010にも出力データ変化パターンとの対応付けが完了していない出力要素はないため、ステップS508に進む。
ステップS508では、ステップS501〜S507で行った出力要素と出力データ変化パターンの対応付け結果を、表示装置120やメモリ130や外部記憶装置150やネットワーク通信装置160に出力する。
図11は、本実施例についてシステム内部処理を特定した結果である、システム内部処理情報272を示す図である。
図10に示した基準出力データ変化パターン情報400と変更出力データ変化パターン情報410を入力として、システム内部処理特定部230の処理を行った結果の例を表している。図4に基づいて、具体的な処理手順を示す。
まず、ステップS450で、基準出力データ変化パターン情報400と変更出力データ変化パターン情報410を読み込む。
次に、ステップS460で、出力データ変化パターンが「変化なし」の出力データ変化パターン情報271を除く。本実施例では、初期出力要素が2出力要素目の出力データ変化パターン情報(出力データ変化パターン情報402と422)が取り除かれる。
次に、対応表500に基づき、システム内部処理を特定する。残った出力データ変化パターン情報401と421が、項番I〜Vの条件を満たすか確認すると、項番III「少なくとも初期出力要素・変更する値以外は一致する出力データ変化パターン情報の組」を満たす。そこで、項番1〜4の条件を確認し、システム内部処理との関連付けを行う。
項番1〜4の条件を確認すると、項番3「#1、#2に該当せず、出力データ変化パターンが共に「出力要素変更」の場合で、尚且つ、変更された出力要素の値が異なる場合」を満たす。
以上のことから、出力データ変化パターン情報401と421の変化をひき起こす、値を変化させた入力項目「品名」を利用する「出力値決定処理」が存在するといえる。
図12は、分析対象システム280に対して分析を繰り返して得たシステム内部処理情報272を、まとめて出力した場合の出力結果の一例を示す図である。
分析結果260は、少なくとも入力項目、出力項目、システム内部処理を有する。入力項目「ID」、入力項目「数量」や、DBの商品情報テーブルの値を変化させながら、出力データ変化情報取得部220、変更分析ケース生成部210、システム内部処理特定部230を繰り返し実行することで、分析結果260を得られる。表中のB、S、Oは、それぞれ、分岐処理(Branch)、出力要素選択処理(Select)、出力値決定処理(Output)を表している。また、C、R、U、Dは、それぞれ、生成(Create)、読み取り(Read)、更新(Update)、削除(Delete)を表している。例えば、CRUD有無の行において、商品情報テーブルのNameカラムにおけるU(更新)に○が記載されていることは、商品情報更新画面900に伴う処理により、当該カラムの値が更新されることを示している。また、画面入力項目「ID」の行において、商品情報テーブルのNameカラムにおけるU(更新)に記載されているBSは、商品情報更新画面900の入力項目「ID」の入力値を用いた、分岐処理と出力要素選択処理が存在する事を示している。つまり、入力項目「ID」の値に基づきNameカラムの値の更新有無を変化させる処理と、更新する出力要素の選択に入力項目「ID」の値を用いる処理が存在する事を示している。
ここで、画面入力項目の「ID」の行において、商品情報テーブルのNameカラムにおけるU(更新)に記載されているBSを分析結果として特定するために必要な入力の例を示す。初期出力データ1000の場合、基準入力データ910と、基準入力データ910の入力項目「ID」の値を3に変更した変更入力データを用いて分析を行う事で、Nameカラムの更新(U)を行うSQLクエリの実行有無が変化するため、入力項目「ID」に関する分岐処理(B)が存在する事が分かる。同様に、基準入力データ910の入力項目「ID」の値を2に変更した変更入力データを用いて分析を行う事で、更新(U)対象の出力要素が1出力要素目から2出力要素目に変化するため、入力項目「ID」に関する出力要素選択処理(S)が存在する事が分かる。
尚、分析結果260を生成するにあたり、すべての分析ケース250を通して変更を行っていない入力項目がある場合は、その入力項目に関する分析が行われていない事を示す為、分析結果260の当該入力項目を強調表示しても良い。
ところで、本実施例では、分析できない処理がある。例えば、ステップS1100によると、分析対象システム280は、商品情報テーブル1000のIDを読み取る(R)処理を行っている。しかし、分析結果260のCRUD有無の行における、商品情報テーブルのIDカラムのR(読み取り)には○がついていない。ここで、ステップS1100とステップS1101が無い場合、初期出力データ1000のときに、入力項目「ID」が3、入力項目「品名」が品名AC、入力項目「数量」が10の入力を行うことを考える。この場合、ステップS1105が実行され、例えば「UPDATE 商品情報テーブル SET Name=‘品名AC’、 Count=‘10’ WHERE ID=‘3’」のようなSQLクエリが実行される。このSQLクエリは、初期出力データ1000において、出力データの変化を引起さない。つまり、ステップS1100及びステップS1101の有無は、入力値の変化に伴う出力データの変化に影響を与えない。この様に、入力値の変化に伴う出力データの変化を伴わない処理を本発明で分析する事はできない。しかし、本発明の目的は、入力項目と出力項目の変化に影響を与えるシステム内部処理の関連付けであるため、分析結果としてIDカラムの参照(R)が出力されなくとも構わない。
図13は、システムの入力項目と出力項目に対するシステム内部処理の関連把握を支援するための画面出力の一例を示す図である。本例では、分析結果概要1510の入力項目名「ID」について、商品情報テーブルのNameカラムのUにおけるBの部分を押下した場合に、分岐処理の際に変化が発生した場合と発生しなかった場合で、分析ケース250を分類表示した例を表している。
出力画面1500は、少なくとも入力項目、出力項目、システム内部処理、具体的な分析ケースに関する情報を有する。尚、分岐処理であれば変化の有無毎、出力要素選択処理であれば操作対象となった出力要素毎、出力値決定処理であれば出力値毎に分析ケース250をグルーピングして表示しても良い。また、分岐処理、出力要素選択処理、出力値決定処理に利用されている可能性のある他の入力項目を強調表示しても良い。さらに、分岐処理、出力要素選択処理、出力値決定処理に利用されている可能性のある他の入力項目のうち、より利用されている可能性が高いと推測できる入力項目を強調表示しても良い。合わせて、入力項目と出力項目に対するシステム内部処理の関係を抽出する上で必要となる分析ケースの種類が不足している入力項目を強調表示しても良い。
本実施例に示した出力画面1500では、分岐処理に関する結果を示しており、分析詳細表示部1520では、分岐変化の有無毎にグルーピングし、分岐処理に使われている可能性のある他の入力項目に下線を引くと共に、利用されている可能性が高いと推測できる入力項目名にも下線を引いて表した。出力画面1500を利用する事で、画面入力項目「ID」が、画面入力項目「品名」、画面入力項目「数量」、商品情報テーブルのIDカラム、商品情報テーブルのNameカラムの少なくとも1つと比較され、その結果、Nameカラムの更新処理の有無が変化する実装があることが分かる。また、変化時入力一覧1521と非変化時入力一覧1522を比較すると、画面入力項目「ID」の値が、商品情報テーブルのIDカラムに含まれている場合のみ変化が発生している事が分かる。この事から、画面入力項目「ID」の値が商品情報テーブルのIDカラムに含まれているか判断する分岐処理が行われている可能性があると言えるため、商品情報テーブルのIDカラムの入力項目名に下線を引いた。
分岐処理に使われている可能性のある他の入力項目を特定できる理由は、次の通りである。商品情報テーブルのNameカラムの更新(U)に関して、分岐処理(B)と関連がある入力項目は、商品情報テーブルのCountカラム以外のすべての入力項目である。このため、商品情報テーブルのCountカラム以外のすべての入力項目が画面入力項目「ID」との比較で利用されている可能性がある。
ここで、特に利用されている可能性が高い入力項目を推測する方法の一例を、図14に基づいて示す。
図14は、図13の分析詳細1520に示した分析ケース250をグループ化して一覧にしたものである。グループ化にあたっては、ある入力項目以外の入力項目の値がすべて同じ分析ケース250をまとめる。例えば、1出力要素目のIDカラム以外の入力値が同じ分析ケース250をグループ化した例1600は、初期出力データ251であるDBの1出力要素目(商品情報テーブルのIDカラムの1レコード目)以外の入力項目の値が同じ分析ケース250をグループ化した例である。この表から、分析ケース#1−1と分析ケース#2−1、分析ケース#3−1‘と分析ケース#3−1、分析ケース#1−3と分析ケース#2−3、分析ケース#1−2と分析ケース#2−2がグループ化されたことが分かる。この表において、同一グループ内での変化の有無が異なるグループは、着目した入力項目の値の変化により、変化の有無が変わることを表す。つまり、着目した入力項目の値を変化の有無を決定する分岐処理で利用している事がわかる。例えば、分析ケース#3−1‘と分析ケース#3−1について、分析ケース#3−1’では変化が発生せず、分析ケース#3−1では変化が発生したことから、入力項目IDカラムの値の変化が、変化の発生の有無を決める分岐処理で使われている事が分かる。IDカラムに着目した分析ケースのグループ化例1600では、同一グループ内で変化の有無が変わった分析ケース250の列を太字で協調表示した。
この様な分析をすべての入力項目に対して順に行う事で、分岐処理・出力要素決定処理・出力値決定処理で利用する入力項目を特定する事ができる。
尚、Nameカラムに着目した分析ケースのグループ化例1610に、複数の分析ケース250を含むグループがひとつも出来ない場合の例を示した。この場合、各処理で利用する入力項目を特定する事ができない。この問題を解決するためには、グループ化できるような分析ケース250を新たに生成し、分析を繰り返せばよい。例えば、分析ケース#1−1とグループ化できる分析ケースとして、分析ケース#1−1の1出力要素目のNameカラムを品名Xに変更した分析ケース250がある。Nameカラムに着目した分析ケースのグループ化例1610の様に、グループが1つも出来ない場合やグループの数が少ない場合は、処理に利用されている入力項目の検出漏れが発生する可能性がある。そこで、出力画面1500等において、グループ数が少ない入力項目を強調表示しても良い。また、変更分析ケース生成部210の変更方針を決めるため、分析ケース250が不足している入力項目についての情報を利用しても良い。
以上のことから、本実施例により、ソースコードが無い場合でも、既存システムの入力項目と出力項目に対するシステム内部処理の関係を抽出できる。また、出力画面1500を用いる事で、システム内部処理の内容を調査する上で必要になる、入力項目と出力項目を絞り込むことができるため、既存システムの仕様把握に貢献できる。
実施例1では、変更分析ケース生成部210で、1入力項目の値のみ変更する例について説明した。一般に、2入力項目以上の値を変更すると、抽出した出力データ変化パターン情報が、どの入力項目と関連があるか分からなくなってしまう。しかし、1入力項目の値のみ変更する方法で得た分析結果260と、2入力項目以上の値を変更する方法で得た分析結果260を組み合わせる事で、1入力項目の値のみ変更する方法に比べてより正確な分析結果260を得ることが出来る。この方法を示すのが、実施例2である。
例えば、出力画面1500において、実際には画面入力項目「ID」との比較に利用されていない、画面入力項目「品名」、画面入力項目「数量」、入力項目Nameカラムに対して、分岐処理があると判定してしまっている。ここで、2入力項目以上の値を変更して分析を行うと、実際に分岐条件として利用されている入力項目が分かる。具体的には、分岐処理に使われている可能性のある他の入力項目において、基準分析ケースと変更分析ケースで変更した入力項目について、変化が起こる場合と起こらない場合の変化を総当りで組み合わせた入力を作成して分析を行う。
これにより、一緒に変更すると変化の有無が変化する入力項目の組を得ることが出来る。例えば、2つの入力項目をばらばらに変更した際には共に変化が発生したが、一緒に変更した際には変化が発生しなくなる様な入力項目の組の事である(2入力項目の組に限定する意図は無い)。この組は、実際の分岐処理で比較に使われている入力項目である。以上のことから、2入力項目以上の値を変更する方法で得た分析結果260を組み合わせる事で、1入力項目の値のみ変更する方法に比べてより正確な分析結果260を得ることが出来る。
200 分析プログラム
210 変更分析ケース生成部
220 出力データ変化情報取得部
221 出力データ初期化部
222 対象プログラム実行部
223 出力データ取得部
224 出力データ変化パターン分類部
230 システム内部処理特定部
240 分析結果表示部
250 分析ケース
251 初期出力データ
252 入力データ
260 分析結果
270 実行後出力データ
271 出力データ変化パターン情報
272 システム内部処理情報
280 分析対象システム
290 分析対象出力データ

Claims (4)

  1. 既存システムにおけるシステム内部の処理パターンを類推する既存システム処理仕様抽
    出装置であって、
    前記既存システムに対して、ある入力項目に対して異なる入力を行う手段と、
    前記異なる入力のそれぞれに対する出力データの変化を検知する手段と、
    前記出力データの変化のそれぞれを比較して、出力データ変化パターンを特定する手段
    と、
    前記出力データ変化パターンの組に対する複数の第1の条件と、複数の第2の条件と、
    所定の内部処理パターンとの対応付けを記憶する手段と、
    前記出力データの変化が、特定された前記出力データ変化パターンと前記対応付けにお
    いて対応付けられた前記複数の第1の条件のいずれかを満たし、さらに、当該第1の条件
    と前記対応付けにおいて対応づく前記複数の第2の条件のいずれかを満たす場合、当該第
    2の条件と前記対応付けにおいて対応付けられた前記所定の処理パターンを特定する手段
    と、を備え、
    特定された前記所定の処理パターンを前記システム内部の処理パターンと類推すること
    を特徴とする既存システム処理仕様抽出装置。
  2. 請求項1に記載の既存システム処理仕様抽出装置において、
    前記出力データ変化パターンは、出力要素削除、出力要素変更、出要素追加のいずれ
    かを含むことを特徴とする既存システム処理仕様抽出装置。
  3. 請求項1に記載の既存システム処理仕様抽出装置において、
    前記所定の処理パターンは、分岐処理、出力要素選択処理、出力値決定処理、出力
    無関係処理のいずれかを含むことを特徴とする既存システム処理仕様抽出装置。
  4. 請求項1に記載の既存システム処理仕様抽出装置おいて、
    前記複数の第1の条件は、同じ内容の出力データ変化パターン情報の組、少なくとも初
    期出力要素以外は一致する出力データ変化パターン情報の組、少なくとも初期出力要素お
    よびまたは変更する値以外は一致する出力データ変化パターン情報の組、少なくとも初期
    出力要素およびまたは変更する出力要素以外は一致する出力データ変化パターン情報の組
    、のいずれかを含むことを特徴とする既存システム処理仕様抽出装置。
JP2015183554A 2015-09-17 2015-09-17 既存システム処理仕様抽出装置 Active JP6553461B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2015183554A JP6553461B2 (ja) 2015-09-17 2015-09-17 既存システム処理仕様抽出装置
CN201680001708.6A CN107430513B (zh) 2015-09-17 2016-08-01 既有系统处理规格提取装置
US15/320,992 US10489428B2 (en) 2015-09-17 2016-08-01 Existing system processing specification extractor
PCT/JP2016/072560 WO2017047257A1 (ja) 2015-09-17 2016-08-01 既存システム処理仕様抽出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015183554A JP6553461B2 (ja) 2015-09-17 2015-09-17 既存システム処理仕様抽出装置

Publications (2)

Publication Number Publication Date
JP2017058984A JP2017058984A (ja) 2017-03-23
JP6553461B2 true JP6553461B2 (ja) 2019-07-31

Family

ID=58288842

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015183554A Active JP6553461B2 (ja) 2015-09-17 2015-09-17 既存システム処理仕様抽出装置

Country Status (4)

Country Link
US (1) US10489428B2 (ja)
JP (1) JP6553461B2 (ja)
CN (1) CN107430513B (ja)
WO (1) WO2017047257A1 (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0540616A (ja) * 1991-08-02 1993-02-19 Hitachi Ltd プログラム仕様生成方法
US5862382A (en) * 1995-05-08 1999-01-19 Kabushiki Kaisha Toshiba Program analysis system and program analysis method
JPH0926897A (ja) 1995-05-08 1997-01-28 Toshiba Corp プログラム解析装置及びプログラム解析方法
JP4641537B2 (ja) * 2007-08-08 2011-03-02 株式会社日立製作所 データ分類方法および装置
CN101231642A (zh) * 2007-08-27 2008-07-30 中国测绘科学研究院 时空数据库管理方法及其系统
JP5119027B2 (ja) * 2008-03-31 2013-01-16 株式会社野村総合研究所 情報処理装置およびプログラム解析方法
JP5678689B2 (ja) * 2011-01-28 2015-03-04 富士通株式会社 コンピュータプログラム、プログラム解析方法及びプログラム解析装置
US9542363B2 (en) * 2014-01-31 2017-01-10 Konica Minolta Laboratory U.S.A., Inc. Processing of page-image based document to generate a re-targeted document for different display devices which support different types of user input methods
CN104836792A (zh) * 2015-03-28 2015-08-12 南阳理工学院 一种企业管理数据处理系统

Also Published As

Publication number Publication date
US10489428B2 (en) 2019-11-26
JP2017058984A (ja) 2017-03-23
CN107430513A (zh) 2017-12-01
WO2017047257A1 (ja) 2017-03-23
US20170270185A1 (en) 2017-09-21
CN107430513B (zh) 2020-11-06

Similar Documents

Publication Publication Date Title
EP2815319B1 (en) Code coverage rate determination method and system
US9619455B2 (en) Table format multi-dimensional data translation method and device
JP4911438B2 (ja) 操作監視装置
US11514237B2 (en) Spreadsheet and method for updating same
JP6542612B2 (ja) テストシナリオ生成支援装置およびテストシナリオ生成支援方法
CN102067117B (zh) 显示和操作表的方法
US20230073718A1 (en) Information processing system and information processing method
JP2007011604A (ja) 不具合診断システム及びプログラム
JP4737624B2 (ja) アプリケーションの障害原因の特定作業支援システム
JP2007304796A (ja) データベース解析システム及びデータベース解析方法及びプログラム
JP6174469B2 (ja) 事故分析活用支援装置および方法
JPWO2017141893A1 (ja) ソフトウェア分析装置及びソフトウェア分析方法
JP6120607B2 (ja) 要件検出装置及び要件検出プログラム
JP6553461B2 (ja) 既存システム処理仕様抽出装置
JP6217440B2 (ja) シンボリック実行プログラム、シンボリック実行方法及びシンボリック実行装置
JP2009199172A (ja) 情報処理システム、プログラム中の類似箇所特定方法、及びプログラム
JP2019106093A (ja) 計算機、ログの再現方法及び記憶媒体
JP5678689B2 (ja) コンピュータプログラム、プログラム解析方法及びプログラム解析装置
JP2013114443A (ja) 資材リリース確認支援システム、資材リリース確認支援方法、資材リリース確認支援プログラム
US20240045416A1 (en) Logging support apparatus, logging system, method for logging support, and recording medium
JPWO2018154784A1 (ja) 影響抽出装置、影響抽出プログラム及び影響抽出方法
CN111666306A (zh) 目标数据文件的生成方法、装置、电子设备及存储介质
JP2020106879A (ja) 検査対応業務支援システム
JP2022029347A (ja) 特徴量選択プログラム、装置、及び方法
JP2021117970A (ja) データ表示プログラムおよびプログラマブル表示器

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170111

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180918

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190416

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190422

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190704

R150 Certificate of patent or registration of utility model

Ref document number: 6553461

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150