JP2018124828A - 表データ分析プログラム - Google Patents

表データ分析プログラム Download PDF

Info

Publication number
JP2018124828A
JP2018124828A JP2017016994A JP2017016994A JP2018124828A JP 2018124828 A JP2018124828 A JP 2018124828A JP 2017016994 A JP2017016994 A JP 2017016994A JP 2017016994 A JP2017016994 A JP 2017016994A JP 2018124828 A JP2018124828 A JP 2018124828A
Authority
JP
Japan
Prior art keywords
table data
column
unit
row
classification
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
JP2017016994A
Other languages
English (en)
Other versions
JP6633009B2 (ja
Inventor
神 明夫
Akio Jin
明夫 神
井上 雅之
Masayuki Inoue
雅之 井上
田中 弘一
Koichi Tanaka
弘一 田中
啓一 田端
Keiichi Tabata
啓一 田端
桂太郎 堀川
Keitaro Horikawa
桂太郎 堀川
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2017016994A priority Critical patent/JP6633009B2/ja
Publication of JP2018124828A publication Critical patent/JP2018124828A/ja
Application granted granted Critical
Publication of JP6633009B2 publication Critical patent/JP6633009B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】コンピュータシステムの仕様の理解を支援すること。
【解決手段】表データ分析プログラムは、第1の表データにおける列のうち、複数の種別の値を含む列を種別ごとの列に分類し、前記第1の表データの各行を、それぞれの行が含む値の種別に応じて分類する分類部と、前記分類部による分類結果に基づいて前記第1の表データを加工して第2の表データを生成する加工部と、としてコンピュータを機能させる。
【選択図】図2

Description

本発明は、表データ分析プログラムに関する。
従来、既存のシステムが無い状態において新規なシステムを開発する場合、当該システムの仕様を概念データモデルを使って統一した記法としてステークホルダ間で共有し、次第に明確化していく技術があった(例えば、特許文献1参照)。
このような技術は、トップダウンの流れによって、まず論理設計を行い、次に物理設計に進み、最終的に緻密な設計書として記述してその通りに実装するために概念データモデルを使用するものである。
一方で、既に運用されている現行システムの改変によって新たなシステムを開発する場合、ボトムアップの流れで現行システムの仕様(仕組み、構造)を理解する必要が有る。
特開2011−154653号公報
しかしながら、上記のような従来法では、ボトムアップの流れで現行システムの仕様(以下、「現行仕様」という。)を理解するために、現行仕様をそのまま概念データモデルとして自動的に変換して表すことが困難であった。
現行仕様を理解するための手法として、既存ドキュメント(例えば、システム仕様書、システム設計書、ユーザ利用マニュアル、保守・運用マニュアル)を読み解いたり、システム利用者からヒアリングしたり、システムのプログラムソースコードを解析したりして仕様を理解する方法が有る。
しかし、このような方法は、入手した多種多様な様々な情報を見て総合的に判断する必要があり、様々な過去の知見を保有するベテランの熟練技術者でないと難しい作業である。また、このような方法は、作業量も多いため、多くの開発者でも作業できるように技術レベルの敷居を下げ、かつ、作業量を削減可能な技術が望まれている。
また、仕様書等のドキュメント類が紛失している場合や、現行システムの運用が長期にわたってなされてきたような場合には、システム自体が何度も修正・手直しがされているにも関わらずドキュメント類が現行化されていない場合もあり、このような場合には、ドキュメント類から仕様を抽出するのは困難である。
また、システム利用者にヒアリングする方法でも、得られる情報は、システム利用者が知っていることに限られてしまう。
更に、プログラムソースコードを解析する方法でも、ソースコードで表現されている業務ルールは分析できるが、システムを利用している業務担当者しか知らないローカルルール(見落としやすいマイナールール)などを検出することは困難である。
本発明は、上記の点に鑑みてなされたものであって、コンピュータシステムの仕様の理解を支援することを目的とする。
そこで上記課題を解決するため、表データ分析プログラムは、第1の表データにおける列のうち、複数の種別の値を含む列を種別ごとの列に分類し、前記第1の表データの各行を、それぞれの行が含む値の種別に応じて分類する分類部と、前記分類部による分類結果に基づいて前記第1の表データを加工して第2の表データを生成する加工部と、としてコンピュータを機能させる。
コンピュータシステムの仕様の理解を支援することができる。
第1の実施の形態における分析装置10のハードウェア構成例を示す図である。 第1の実施の形態における分析装置10の機能構成例を示す図である。 第1の実施の形態において分析装置10が実行する処理手順の一例を説明するためのフローチャートである。 テーブルデータの一例を示す図である。 混在が解消されてラベルが付与されたテーブルデータの例を示す図である。 第2の実施の形態における分析装置10の機能構成例を示す図である。 第2の実施の形態において分析装置10が実行する処理手順の一例を説明するためのフローチャートである。 第2の実施の形態におけるテーブルデータの例を示す図である。 第2の実施の形態において修正後のテーブルデータの例を示す図である。 第2の実施の形態におけるテーブルデータの手修正の例を示す図である。 第3の実施の形態における分析装置10の機能構成例を示す図である。 第3の実施の形態において分析装置10が実行する処理手順の一例を説明するためのフローチャートである。 ノイズに該当する行又は列の一例を示す図である。 第4の実施の形態における分析装置10の機能構成例を示す図である。 第4の実施の形態において分析装置10が実行する処理手順の一例を説明するためのフローチャートである。 マルチレイアウト構造の単位の解析を説明するための第1の図である。 マルチレイアウト構造の単位の解析を説明するための第2の図である。 マルチレイアウト構造の単位の解析を説明するための第3の図である。 マルチレイアウト構造の単位が解析されたテーブルデータの例を示す図である。 第5の実施の形態における分析装置10の機能構成例を示す図である。 第5の実施の形態において分析装置10が実行する処理手順の一例を説明するためのフローチャートである。 特異点の第1の検出例を示す図である。 特異点の第2の検出例を示す図である。 特異点の第3の検出例を示す図である。 第6の実施の形態における分析装置10の機能構成例を示す図である。 第6の実施の形態において分析装置10が実行する処理手順の一例を説明するためのフローチャートである。 第6の実施の形態において入力される複数のテーブルデータの例を示す図である。 第6の実施の形態において関係構造が推定された複数のテーブルデータの例を示す図である。 第7の実施の形態における分析装置10の機能構成例を示す図である。 概念データモデル図の第1の例を示す図である。 概念データモデル図の第2の例を示す図である。 特異点ごとに列が追加されたテーブルデータの例を示す図である。 概念データモデル図の第3の例を示す図である。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、第1の実施の形態における分析装置10のハードウェア構成例を示す図である。図1の分析装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105、表示装置106、及び入力装置107等を有する。
分析装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って分析装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
図2は、第1の実施の形態における分析装置10の機能構成例を示す図である。図2において、分析装置10は、入力部11、分類部12及び加工部13等を有する。これら各部は、分析装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。
入力部11は、仕様の分析対象とされているコンピュータシステムのデータベースのデータ(以下、「DBストアデータ」という。)がテキスト形式に変換されたデータ(以下、「テーブルデータ」という。)を格納したファイル(以下、「テーブルデータファイル」という。)を入力する。DBストアデータは、表形式の構造を有するデータである。
分類部12は、テーブルデータにおける列のうち、複数の種別の値を含む列を種別ごとの列に分類すると共に、テーブルデータの各行を、それぞれの行が含む値の種別に応じて分類する。
加工部13は、分類部12による分類結果に基づいて、入力されたテーブルデータを加工することで、当該分類結果が反映されたテーブルデータを生成する。
以下、分析装置10が実行する処理手順について説明する。図3は、第1の実施の形態において分析装置10が実行する処理手順の一例を説明するためのフローチャートである。
ステップS100において、入力部11は、ユーザによって指定されたテーブルデータファイルに格納されているテーブルデータを読み込む。
図4は、テーブルデータの一例を示す図である。図4に示されるように、テーブルデータは、表形式の構造を有する。
続いて、分類部12は、テーブルデータ内の列方向又は行方向において、種別の異なるデータが混在しているか否かを判定する(S110)。具体的には、分類部12は、まず、各列について、当該列に含まれる各値の種別を判定する。値の種別の判定には、例えば、「正規表現による分類フィルタ」を用いることができる。当該分類フィルタは、種別ごとに用意されており、各値に各分類フィルタを適用することで、各値の種別を判定することができる。例えば、「電話番号」を表現する分類フィルタに合致した値の種別は、「電話番号」と判定される。そうすることで、複数の種別の値が含まれている列は、種別の異なるデータが混在している列であると判定される。
図4の例では、2列目について、「住所」と「英数字」の2種類のデータが混在していることが判定される。すなわち、1行目について2列目の値は住所であるが、2行目及び4行目の値は、英数字である。一方、1列目、3列目、4列目、5列目については、それぞれ、「氏名」、「メールアドレス」、「年月日」、「数字」の単一の種別の列であると判定される。
また、行方向については、列方向の判定が行われた後に、各行を構成する列の種別の組み合わせの異同によって、各行の種別の異同が判定される。
なお、RDB(Relational Database)等のデータベースにおいては、図4に示されるような、2種類以上のデータが混在する列又は行を含むテーブルが構築される可能性は低いが、一般的にレガシーシステムと呼ばれるような、メインフレーム系のシステムにおいては、例えば、記憶容量の削減等の目的のため、図4に示されるような形式のテーブル情報が存在する場合が有る。
列方向又は行方向において複数の種別が混在している場合(S110でYes)、加工部13は、複数の種別が混在している列を種別ごとに分類して、種別の混在を解消する(S111)。すなわち、加工部13は、複数の種別が混在している列を、種別ごとの列に分類(分割)することで、テーブルデータを加工する。
続いて、加工部13は、分類された各列及び各行にラベルを付与する(S130)。
図5は、混在が解消されてラベルが付与されたテーブルデータの例を示す図である。図5では、各列に対して、当該列について判定された種別(「氏名」、「住所」、「英数字」、「メールアドレス」、「年月日」、「数値」)がラベルとして付与されている。なお、当初の図4の状態では、「住所」と「英数字」とは同じ列に属していたが、図5では、ステップS111の作用により異なる列に分類(分割)されている。
また、図5では、各行に対して、「★」又は「○」がラベルとして付与されている。すなわち、「★」は、「氏名」、「住所」、「メールアドレス」、「年月日」及び「数字」を含む行に対して付与されたラベルである。「○」は、「英数字」及び「数字」を含む行に対して付与されたラベルである。なお、同じ種別の行に対して共通のラベルが付与されればよく、「★」及び「○」以外の記号又は文字列等がラベルとして使用されてもよい。
なお、加工部13は、ラベルが付与されたテーブルデータを、例えば、図5に示されるような表形式で表示装置106に表示してもよい。
上述したように、第1の実施の形態によれば、異種類のデータが混在した列を含むテーブルデータについて、種別ごとに列が分類されたテーブルデータに変換することができる。その結果、分かりにくかったテーブルデータの構造の意味の明確性を向上させることができる。すなわち、現行システム等のコンピュータシステムの仕様の理解を支援することができる。例えば、新システム設計等の設計負担を軽減するとともに、データ解析等に高スキル者を不要とすることを可能とすることができる。
次に、第2の実施の形態について説明する。第2の実施の形態では第1の実施の形態と異なる点について説明する。第2の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
図6は、第2の実施の形態における分析装置10の機能構成例を示す図である。図6中、図2と同一部分には同一符号を付し、その説明は省略する。図6において、分析装置10は、更に、分類支援部14を有する。分類支援部14は、分析装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。
分類支援部14は、図5のように自動的に加工(混在の解消及びラベルの付与)されたテーブルデータについて、ユーザの手作業等による更なる分類を支援する。
図7は、第2の実施の形態において分析装置10が実行する処理手順の一例を説明するためのフローチャートである。図7中、図3と同一ステップには同一ステップ番号を付し、その説明は省略する。
ステップS130に続いて、分類支援部14は、現時点のテーブルデータに対する修正の要否を判定する(S140)。現時点のテーブルデータとは、ステップS111が実行されている場合には、ステップS111の実行後のテーブルデータをいい、ステップS111が実行されていない場合には、ステップS100において入力された状態のテーブルデータをいう。修正の要否の判定は、ユーザによる入力の有無に基づいて行われてもよい。例えば、加工部13によって表示されたテーブルデータに対する修正の要否がユーザによって入力されてもよい。
続いて、分類支援部14は、テーブルデータの修正のために、新たな分類フィルタが入力されたか否かを判定する(S141)。ここでは、ステップS130までが実行されることで表示されたテーブルデータが、図8に示される通りであったとする。
図8は、第2の実施の形態におけるテーブルデータの例を示す図である。図8では、「氏名」が「佐藤 誠」である行の「住所」の値が、「大阪府芸術文化管理財団」である。すなわち、図8では、「大阪府芸術文化管理財団」が、誤って「住所」に分類された例が示されている。
この場合、ユーザは、例えば、末尾が「財団」である文字列について、企業名に分類するための分類フィルタを定義し、ステップS111において利用されるフィルタ群の一つとして追加することができる。なお、新たに追加される分類フィルタは、既存の種別に対応するものであってもよいし、新たな種別に対応するものであってもよい。
新たな分類フィルタが入力されると(S140でYes)、当該分類フィルタと既存の分類フィルタとが利用されてステップS100以降が再実行される。その結果、図8のテーブルデータは、図9に示されるように修正される。
図9は、第2の実施の形態において修正後のテーブルデータの例を示す図である。図9では、「住所」の列の右隣に「企業名」の列が追加され、「大阪府芸術文化管理財団」が、「企業名」の列に移動されている。
このような方法をとることによって、例えば、想定した分類フィルタによって分類し切れなかった種別の混在が発見された場合に、分類フィルタを更に追加することで正しい分類を行なうことができる。
一方、分類フィルタでは分類しきれない場合(S141でNo)、分類支援部14は、ユーザの手修正によって混在を解消するための直接的な修正指示をユーザから受け付ける。例えば、新たな列の追加と、当該列に分類される値とがユーザによって選択される。この場合、分類支援部14は、テーブルデータに対して新たな列を追加し、選択された値を当該列に移動する(S141)。
図10は、第2の実施の形態におけるテーブルデータの手修正の例を示す図である。図10の(1)には、テーブルデータの或る列について、氏名を抽出できる分類フィルタによって氏名の抽出を行なった結果、誤って、「氏名」のデータとして「所長」、「室長」が選択されてしまい、「氏名以外」のデータとして、「主幹研究員」、「主任研究員」、「担当課長」、「主査」等が選択されてしまった例が示されている。なお、「氏名以外」のデータとは、「氏名」として選択されなかったデータをいい、「氏名以外」という種別が存在することを意図するものではない。また、図10に示されるデータは、便宜上、図4とは異なるデータである。
この場合、ユーザは、(2)に示されるように、「役職」というラベルが付与された新たな列をテーブルデータに追加し、「所長」、「室長」、「主幹研究員」、「主任研究員」、「担当課長」、「主査」等の役職に該当する値を当該列に移動することの指示を入力する。
このようにすれば、例えば、ユーザが、分類フィルタによる自動分類の結果に誤りが有ると気づいた場合に、手修正によって正しい分類結果に導くことができる。
次に、第3の実施の形態について説明する。第3の実施の形態では第2の実施の形態と異なる点について説明する。第3の実施の形態において特に言及されない点については、第2の実施の形態と同様でもよい。
図11は、第3の実施の形態における分析装置10の機能構成例を示す図である。図11中、図6と同一部分には同一符号を付し、その説明は省略する。図11において、分析装置10は、更に、ノイズ除去部15を有する。ノイズ除去部15は、分析装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。
ノイズ除去部15は、テーブルデータにおいて、ノイズ(テストデータ等の実際の運用では使われていないデータ)と思われるデータを行又は列において検出した場合に、当該行又は当該列を削除(除去)する。
図12は、第3の実施の形態において分析装置10が実行する処理手順の一例を説明するためのフローチャートである。図12中、図7と同一ステップには同一ステップ番号を付し、その説明は省略する。
ステップS110又はステップS111に続いて、ノイズ除去部15は、テーブルデータの中に、ノイズに該当する行又は列が有るか否かを判定する(S120)。ノイズに該当するか否かは、例えば、補助記憶装置102に予め記憶されているキーワードのうちのいずれかが含まれているか否かによって判定されてもよい。いずれかのキーワードが1つでも含まれている場合にノイズに該当すると判定されてもよいし、或るキーワードが所定の割合以上含まれている場合にノイズに該当すると判定されてもよい。この場合、キーワードと共に当該所定の割合が、ノイズ対象を特定するためのルール(規則)として補助記憶装置102に記憶されていてもよい。
図13は、ノイズに該当する行又は列の一例を示す図である。例えば、「test」というキーワードと一致する文字を含むデータが全データのうちの80%以上に及ぶ列をノイズ対象とするルールが有る場合、図13における列c1がノイズに該当する。列c1は、20行中16行において「test」を含むからである。
また、「旅費太郎」を1つでも含む行をノイズ対象とするルールが有る場合、矩形r1によって囲まれている行がノイズに該当する。
なお、仮に、「旅費太郎」をキーワードと一致する文字を含むデータが全データの80%以上に及ぶ列をノイズ対象とするルールが有ったとしても、列c2はノイズに該当しない。列c2において、「旅費太郎」の割合は50%だからである。
ノイズに該当する行又は列が有る場合(S120でYes)、ノイズ除去部15は、当該行又は当該列を削除する(S121)。
上述したように、第3の実施の形態によれば、ノイズに該当する行又は列が削除された状態で、ステップS130以降の処理を実行することができる。したがって、ステップS130以降の処理の精度を高めることができると共に、当該処理を効率化することができる。
次に、第4の実施の形態について説明する。第4の実施の形態では第3の実施の形態と異なる点について説明する。第4の実施の形態において特に言及されない点については、第3の実施の形態と同様でもよい。
図14は、第4の実施の形態における分析装置10の機能構成例を示す図である。図14中、図11と同一部分には同一符号を付し、その説明は省略する。図14において、分析装置10は、更に、マルチレイアウト解析部16を有する。マルチレイアウト解析部16は、分析装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。
マルチレイアウト解析部16は、テーブルデータ内におけるマルチレイアウト構造の存在を検出すると共に、当該マルチレイアウト構造の単位を解析する。マルチレイアウト構造とは、図4に示したように、1つのテーブルデータ内において、複数種別が混在した列を含む構造をいう。「マルチレイアウト構造の単位」とは、複数の種別の値を含む列における種別の繰り返しのパタンの単位をいう。
マルチレイアウト構造の検出は、通常、専門知識の豊富な高スキル者が手動で分析し、検出することで行われるが、それではごく限られた特定の人にしか検出できず、広く手法を広めることができない。また、高スキル者の手作業に委ねられるため、高コストとなり普及が阻害される。そこで、本実施の形態では、マルチレイアウト解析部16がマルチレイアウト構造を自動で検出する。
図15は、第4の実施の形態において分析装置10が実行する処理手順の一例を説明するためのフローチャートである。図15中、図12と同一ステップには同一ステップ番号を付し、その説明は省略する。
ステップS140又はステップS142に続いて、マルチレイアウト解析部16は、テーブルデータ内にマルチレイアウト構造が存在するか否かを判定する(S150)。マルチレイアウト構造が存在する場合(S150でYes)、マルチレイアウト解析部16は、マルチレイアウト構造の単位を解析する(S151)。
図16は、マルチレイアウト構造の単位の解析を説明するための第1の図である。図16の(1)には、列#1において、住所と氏名とが交互に出現し、他の種別は単一である例が示されている。すなわち、(1)のテーブルデータは、住所と氏名との繰り返しのパタンが2行ごとであり、2行単位の周期性を有する。なお、厳密には、ステップS151の時点において、列#1は、ステップS111の作用により、2つの列に分類されている。したがって、ステップS151では、当初同じ列であった列の集合ごとに解析が行われる。なお、列#1〜列#4は、各列のラベルを抽象的に示す記号である。
この場合の解析結果は(2)に示される通りである。すなわち、マルチレイアウト解析部16は、2行をマルチレイアウト構造の単位として判定する。また、マルチレイアウト解析部16は、2行のうちの先頭の行(「住所」を含む行)を、マルチレイアウト構造の「ヘッド構造(ヘッド行)」(主要情報構造)であると判定し、それ以外の行(「氏名」を含む行)を、マルチレイアウト構造の「ボディ構造(ボディ行)」(補助情報構造)であると判定する。
すなわち、マルチレイアウト構造に規則的な周期性が有る場合には、当該周期がマルチレイアウト構造の単位として判定される。
また、図17は、マルチレイアウト構造の単位の解析を説明するための第2の図である。図17の(1)には、列#1のみならず、列#3(厳密には、列#3から分類された列の集合)にも周期性が有る例が示されている。但し、列#1の周期性の単位は2であるのに対し、列#3の周期性の単位は4である。
この場合の解析結果は(2)に示される通りである。すなわち、マルチレイアウト解析部16は、各列の周期性(本例では2と4)の最小公倍数である4を全体の行の周期性とみなし、これをもってマルチレイアウト構造の単位と判定する。また、マルチレイアウト解析部16は、マルチレイアウト構造の単位ごとに、先頭の行をヘッド行と判定し、それ以外の行(図17では2〜3行目)をボディ行と判定する。
また、図18は、マルチレイアウト構造の単位の解析を説明するための第3の図である。図18の(1)には、列#1のみにおいて種別(種別A及び種別B)が混在しており、その他の列では種別が混在していない例が示されている。但し、列#1は、一定周期ではないが、種別Aと種別Bが繰り返し現れる構造になっている。
この場合の解析結果は(2)に示される通りである。すなわち、マルチレイアウト解析部16は、1〜3行、4〜8行をそれぞれマルチレイアウト構造の単位として判定する。また、マルチレイアウト解析部16は、マルチレイアウト構造の単位ごとに、先頭の行をヘッド行と判定し、それ以外の行をボディ行と判定する。
なお、マルチレイアウト構造の検出及びマルチレイアウト構造の単位の解析は、例えば、各行における各列の種別の集合をベクトルとし、ベクトルのパタンが存在することを検出し(例えば、ベクトルAとベクトルB)、ベクトルAの複数回出現とベクトルBの複数回出現が繰り返されるパタンを見出し、これらの繰り返しの単位をマルチレイアウト構造の単位として判定することで行われてもよい。
なお、マルチレイアウト解析部16は、マルチレイアウト構造の単位の解析結果を、例えば、図19に示されるようにテーブルデータに反映してもよい。
図19は、マルチレイアウト構造の単位が解析されたテーブルデータの例を示す図である。図19に示されるテーブルデータは、「マルチレイアウトフラグ」の列を含む。また、各列のラベルが、「HEADの場合」及び「BODYの場合」に分類されている。なお、図19のテーブルデータは、便宜上、図4のテーブルデータとは異なるテーブルデータである。
「マルチレイアウトフラグ」の列は、各行が、ヘッド行であるのかボディ行であるのかを示す列である。すなわち、ヘッド行における当該列の値は「HEAD」であり、ボディ行における当該列の値は「BODY」である。
また、「HEADの場合」の行は、ヘッド行における各列のラベルを示し、「BODYの場合」の行は、ボディ行における各列のラベルを示す。
上述したように、第4の実施の形態によれば、古い現行システムにありがちな、テーブルデータ内におけるマルチレイアウト構造を自動的に検出することができ、当該マルチレイアウト構造の単位を判定(推定)することができる。その結果、テーブル構造の明確性を向上させることができる。
なお、第4の実施の形態は、第1の実施の形態のみ又は第2の実施の形態のみと組み合わされてもよい。
次に、第5の実施の形態について説明する。第5の実施の形態では第4の実施の形態と異なる点について説明する。第5の実施の形態において特に言及されない点については、第4の実施の形態と同様でもよい。
現行システムを新システムへ移行する場合、現行システム(及びそれを用いた業務)に存在する重要なビジネスルールの検出が漏れてしまい、新システムの開発の下流工程(主にテスト工程)で問題が発見され、開発の手戻りとなることが問題となっている。この問題を解消するために、現行システムの保有するビジネスルール(特に重要なルール)を漏れなく検出する必要があるが、この作業は、現状、経験豊富な高スキル者が現行システムの各種ドキュメントを読み理解したり、現行システムの業務担当者からヒアリングしたり、更に最終手段としては現行システムのソースコードを解析するなどして検出しており、非常に手間と稼動がかかり、そのわりには抜け漏れも発生している。
そこで、第5の実施の形態では、誰でも簡単に現行システムの持つ重要なビジネスルールを検出するため、現行システムの保有するDBストアデータに着目し、DBストアデータのみを入力情報として、重要なビジネスルールを発見する例について説明する。
図20は、第5の実施の形態における分析装置10の機能構成例を示す図である。図20中、図14と同一部分には同一符号を付し、その説明は省略する。図20において、分析装置10は、更に、特異点検出部17を有する。特異点検出部17は、分析装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。
特異点検出部17は、ステップS151までにおいて明らかにされた(推定された)、テーブルデータ内の関係構造に基づいて、数字列ごとに、異端な値(特異点)を検出する。数字列とは、数字のみを値として含む列(すなわち、数値を値とする列)をいう。特異点検出部17は、特異点を検出することにより、同一のジャンルに属する業務の中で、メジャーな作業に潜むマイナーな作業の兆候を発見し、そこからマイナーな業務ルールを推定することに寄与する。同一のジャンルに属する業務は、1テーブル内の1列に相当すると考え、その中で特異点となる値を検出することによってマイナーなルールの兆候を検出する。
図21は、第5の実施の形態において分析装置10が実行する処理手順の一例を説明するためのフローチャートである。図21中、図15と同一ステップには同一ステップ番号を付し、その説明は省略する。
ステップS150又はステップS151に続いて、特異点検出部17は、テーブルデータ内に1以上の数字列が有るか否かを判定する(S160)。数字列の判定は、例えば、各列に含まれている値を確認することによって行われる。図19に示したテーブルデータであれば、ヘッド行及びボディ行の「年月日」の列、ボディ行の「商品番号」の列、ボディ行の「番号」の列、ヘッド行の「電話番号」の列が数字列に該当する。
1以上の数字列が有る場合(S160でYes)、特異点検出部17は、数字列ごとに、特異点の検出を試みる(S161)。例えば、特異点検出部17は、数字列ごとに、マルチレイアウト構造の各単位について、数字が示す数値の最小値、最大値及び平均値を求め、最小値、最大値、又は平均値において、他の大多数の単位における値とは異なる傾向を示す値(特異点)があれば、当該値を検出する。
図22は、特異点の第1の検出例を示す図である。図22では、図19に示したテーブルデータにおいて、「年月日」の列と、ボディ行の「番号」の列について、マルチレイアウト構造の単位ごとに、最小値(最古年月日)、最大値(最新年月日)、及び平均値(平均年月日)が算出された例が示されている。
図22の例では、「年月日」の列の最初のマルチレイアウト構造の単位の最古年月日(「10000101」)が、同じ列の他のマルチレイアウト構造の単位の最古年月日から乖離していることが分かる。この場合、特異点検出部17は、「年月日」の列の最初のマルチレイアウト構造の単位の最古年月日(「10000101」)を特異点として検出し、当該最古年月日が格納されているセルの位置情報を出力する。
ユーザは、この特異点となる値がなぜ大多数の値と異なるのかを調査し、原因となるビジネスルールを、その特異点が持つ意味を知っていると思われる現場の業務担当者等に対するヒアリング等によって発見する。その結果、例えば、図22の例によれば、ユーザは、1000年1月1日という値は他の年月日(発送完了日)とは違って返納処理を行なったというローカルルールであるといった、見落としやすいビジネスルールを発見することができる。
又は、特異点の検出は次のように行われてもよい。図23は、特異点の第2の検出例を示す図である。図23では、「年月日」の列の値が、当該列内で最も古い年月日(図23では、1行目の年月日)を基準日として、当該基準日からの積算日の数値列に変換されている。この場合、特異点検出部17は、当該数値列内において、他とは大きくかけ離れた値を検出する。図23の例では、0のみが他とは大きくかけ離れていることが検出される。その結果、上記したようなローカルルールの発見を支援することができる。
また、特異点の検出は次のように行われてもよい。図24は、特異点の第3の検出例を示す図である。図24では、列#1及び列#3が数字列であるとする。
特異点検出部17は、各数字列について、分散値を算出する(1)。図24では、列#1についての分散値が0.1であり、列#3についての分散値が0.001であったとする。この場合、列#1の分散値が最大であるため、特異点検出部17は、列#1の中に特異点が有るだろうと推定し(2)、列#1の値をクラスタリング手法によって分類する(3)。クラスタリング手法としては、例えば、K−means法等の公知の手法が用いられればよい。特異点検出部17は、クラスタリングの結果、相対的に要素数が少ないクラスタに属する値を、特異点として検出する(4)。
ユーザは、当該特異点に基づいて、上述したようなローカルルールを発見することができる。
上述したように、第5の実施の形態によれば、DBストアデータ(テーブルデータ)から特異点を検出し、当該特異点をユーザに通知することができる。ユーザは、当該特異点の原因を調査することでビジネスルールを発見することができる。すなわち、従来法のソースコード解析などの手法では、そこに実装されているルールしか抽出できないため、業務の現場担当者のみが知っているような見落としがちなマイナー業務のビジネスルールを検出することは困難であった。本実施の形態によれば、現行の作業結果を保持しているDBストアデータから業務ルール等を抽出するため、このようなマイナーなビジネスルールも検出できる。したがって、高度のスキルを要することなく、重要なビジネスルールの発見を可能とすることができる。
なお、第5の実施の形態は、第4の実施の形態以外の各実施の形態とのみ組み合わされてもよい。
次に、第6の実施の形態について説明する。第6の実施の形態では第5の実施の形態と異なる点について説明する。第6の実施の形態において特に言及されない点については、第5の実施の形態と同様でもよい。
図25は、第6の実施の形態における分析装置10の機能構成例を示す図である。図25中、図20と同一部分には同一符号を付し、その説明は省略する。図25において、分析装置10は、更に、関係性推定部18を有する。関係性推定部18は、分析装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。
関係性推定部18は、複数のテーブルデータ(複数のテーブル)が入力された場合に、テーブル間の関係性(参照関係)を推定する。
図26は、第6の実施の形態において分析装置10が実行する処理手順の一例を説明するためのフローチャートである。図26中、図21と同一ステップには同一ステップ番号を付し、その説明は省略する。
第6の実施の形態では、ステップS100〜S160又はS161までが、複数のテーブルデータについて実行される。
図27は、第6の実施の形態において入力される複数のテーブルデータの例を示す図である。図27には、テーブルデータT1〜T3の3つのテーブルデータが示されている。
テーブルデータT1〜T3のそれぞれについて、ステップS100〜S160又はS161までが実行されると、各テーブルデータは、例えば、図28に示される状態になる。
図28は、第6の実施の形態において関係構造が推定された複数のテーブルデータの例を示す図である。図28では、テーブルデータT1〜T3の各列が、カラム1〜7、カラム11〜13、又はカラム21〜23に分類されている。特に、テーブルデータT1については、図27における2番目の列が、カラム2−1及びカラム2−2に分類されている。なお、各列のラベル及び各行に対するラベルは省略されている。
続いて、関係性推定部18は、各テーブルデータ間の関係性を推定する(S170)。例えば、テーブルデータ間の関係性は、例えば、一方のテーブルデータのいずれかの列に含まれている全ての値が、他方のテーブルデータのいずれかの列に含まれているか否かにより判定される。一方のテーブルデータのいずれかの列に含まれている全ての値が、他方のテーブルデータのいずれかの列に含まれている場合、当該2つのテーブルデータ間(厳密には当該2つの列の間)には参照関係が有ると判定される。この場合、参照関係にあると判定された2つの列のうち、値の重複の有る列から値の重複の無い列への方向が、参照の方向とされてもよい。値の重複の無い列は、当該列を含むテーブルデータにおいてキーとなる値を格納している列である可能性が推定されるからである。
例えば、テーブルデータT1のカラム2−2の全ての値は、テーブルデータT2カラム11に含まれている。また、テーブルデータT1のカラム2−2には値の重複が有るのに対し、テーブルデータT2のカラム11には値の重複が無い。したがって、テーブルデータT1のカラム2−2は、テーブルデータT2カラム11を参照していると判定される。また、テーブルデータT1のカラム7の全ての値は、テーブルデータT3のカラム21に含まれている。また、テーブルデータT1のカラム7には値の重複が有るのに対し、テーブルデータT3のカラム21には値の重複が無い。したがって、テーブルデータT1のカラム7は、テーブルデータT3のカラム21を参照していると判定される。
関係性推定部18は、判定結果を示す情報を表示装置106に表示してもよい。
上述したように、第6の実施の形態によれば、テーブルデータ同士の関係構造を明確化することができる。テーブル間の関係構造の明確化により、不明だったシステムの仕様やビジネスルールの発見等の容易化を期待することができる。
なお、第6の実施の形態は、第5の実施の形態以外の各実施の形態とのみ組み合わされてもよい。
次に、第7の実施の形態について説明する。第7の実施の形態では第6の実施の形態と異なる点について説明する。第7の実施の形態において特に言及されない点については、第6の実施の形態と同様でもよい。
図29は、第7の実施の形態における分析装置10の機能構成例を示す図である。図29中、図25と同一部分には同一符号を付し、その説明は省略する。図29において、分析装置10は、更に、モデル生成部19を有する。モデル生成部19は、分析装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。
モデル生成部19は、ステップS161以前の処理結果について、概念データモデルを生成する。現行システム上にあるDBストアデータはシステムが複雑かつ大規模になるほどデータ量が大量となり、テーブルデータ数も多くなる。その場合、テーブルデータ同士の関係を構造として理解することが難しくなるため、何らかの方法で図形によって表すと理解がしやすい。そこで、モデル生成部19は、1テーブルデータを1概念とし、1テーブルデータ内の各列のラベルを当該概念の属性として概念データモデル図(クラス図)を生成して、分かりにくいデータの構造の理解の向上に寄与する。なお、モデル生成部19は、他の各部と並行して処理を実行してもよい。
例えば、モデル生成部19は、図27に示した3種類のテーブルデータが入力されると、入力された状態における各テーブルデータを1個ずつの箱(概念又はクラス)として表し、各テーブル内のカラム(列構造)をクラスの属性として自動変換することで得られる概念データモデル図を表示装置106に表示する。
図30は、概念データモデル図の第1の例を示す図である。図30において、クラス1は、図27のテーブルデータT1に基づくクラスである。クラス2は、テーブルデータT2に基づくクラスである。クラス3は、テーブルデータT3に基づくクラスである。各クラスは、対応するテーブルデータが有する列に対応する属性を有する。
また、各テーブルデータについてステップS170までが実行された時点において、モデル生成部19は、概念データモデル図を図31に示されるように更新してもよい。
図31は、概念データモデル図の第2の例を示す図である。図31では、クラス1が、クラス1H及びクラス1Bを集約することが示されている。クラス1Hは、テーブルT1についてステップS151が実行されることにより解析される、マルチレイアウト構造のヘッド行に対応するクラスである。すなわち、クラス1Hは、図28のテーブルT1において、カラム1、カラム2−1、カラム3、カラム4、カラム5、カラム6及びカラム7に値を含む行に対応するクラスである。一方、クラス1Bは、テーブルT1について図26のステップS151が実行されることにより解析される、マルチレイアウト構造のボディ行に対応するクラスである。すなわち、クラス1Bは、図28のテーブルT1においてカラム2−2、カラム4及びカラム5に値を含む行に対応するクラスである。なお、クラス1は、複数のマルチレイアウト構造の単位を含む。したがって、クラス1とクラス1Hとの多重度は、1対多であり、当該多重度がクラス1とクラス1Hとの関係線に付与されている。同様に、クラス1とクラス1Bと多重度は、1対多であり、当該多重度がクラス1とクラス1Bとの関係線に付与されている。
マルチレイアウト構造のヘッド行及びボディ行が、概念データモデル上で分離して表示されることにより、当該マルチレイアウト構造の把握を容易とすることができる。
また、図31では、クラス1Hとクラス3とが関係線で接続されており、クラス1Bとクラス2とが関係線で接続されている。関係線の矢印の方向は、当該関係線に係るクラス間の参照方向に従う。これは、テーブルデータT1〜T3についての図26のステップS170の実行結果に基づく。すなわち、ステップS170では、テーブルデータT1のカラム7に係る列が、テーブルデータ3のカラム1に係る列を参照していることが推定される。また、テーブルデータT1のカラム2−2に係る列が、テーブルデータ2のカラム1に係る列を参照していることが推定される。なお、図31では、矢印の元の概念が矢印の先の概念を参照していることを示す。なお、図31に示されるように、各関係線には、参照関係を有する列のラベル等が付記されてもよい。
更に、図26のステップS161の実行結果が概念データモデル図に反映されてもよい。この場合、ステップS161において、特異点検出部17は、検出した特異点ごとの列をテーブルデータに追加し、当該列に対して当該特異点を移動する。その結果、図28のテーブルデータT1であれば、例えば、図32に示されるように更新される。
図32は、特異点ごとに列が追加されたテーブルデータの例を示す図である。図32において、テーブルデータT1のカラム4は、カラム4−1、4−2、及び4−3に分類されている。カラム4−2は、カラム4に含まれていた特異点「10000101」の移動先の列である。カラム4−3は、カラム4に含まれていた特異点「99999999」の移動先の列である。
モデル生成部19は、このようなテーブルデータT1について、図33に示されるような概念データモデル図を生成してもよい。
図33は、概念データモデル図の第3の例を示す図である。図33では、特異点に対応する列(カラム4−2、4−3)についても、クラス1Hの属性として明確に示されている。そうすることで、概念データモデル構造を用いて、特異点の情報(特異点の存在)を分かり易く示すことができる。
上述したように、第7の実施の形態によれば、テーブルデータ内及びテーブルデータ間の構造を明確化した結果を概念データモデルを用いて自動変換し表現することによって、テーブルデータの構造の理解を容易化することができる。
なお、第7の実施の形態は、第6以外の各実施の形態とのみ組み合わされてもよい。
また、上記各実施の形態によれば、DBストアデータを入力情報として使用することにより、様々な入力情報を総合的に判断する技量を不要とすることができる。
また、上記各実施の形態によれば、本発明では、現行システムの持つ仕様の情報をDBストアデータから抽出することによって、様々なドキュメントやヒアリングやプログラム解析を行なわずに、DBストアデータのみを分析するという唯一の方法によって熟練者でなくても現行システムの仕様を推定することができる。更に、概念データモデルによって、システムの構造を表現することによって、現行システムの仕様を推定する人が分かりやすく理解することができる。
なお、上記各実施の形態において、列と行との概念が入れ替えられてもよい。すなわち、列が行として把握されてもよいし、行が列として把握されてもよい。
なお、上記各実施の形態において、分析装置10にインストールされるプログラムは、表データ分析プログラムの一例である。テーブルデータは、表データの一例である。分類支援部14は、受付部の一例である。マルチレイアウト解析部16は、解析部の一例である。特異点検出部17は、検出部の一例である。モデル生成部19は、生成部の一例である。ノイズ除去部15は、削除部の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10 分析装置
11 入力部
12 分類部
13 加工部
14 分類支援部
15 ノイズ除去部
16 マルチレイアウト解析部
17 特異点検出部
18 関係性推定部
19 モデル生成部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
106 表示装置
107 入力装置
B バス

Claims (7)

  1. 第1の表データにおける列のうち、複数の種別の値を含む列を種別ごとの列に分類し、前記第1の表データの各行を、それぞれの行が含む値の種別に応じて分類する分類部と、
    前記分類部による分類結果に基づいて前記第1の表データを加工して第2の表データを生成する加工部と、
    としてコンピュータを機能させることを特徴とする表データ分析プログラム。
  2. 前記分類部は、前記種別を判定するための分類情報に基づいて前記第1の表データにおける各値の種別を判定し、前記分類結果に対して更に分類情報が追加された場合には、当該分類情報に基づいて、複数の種別の値を含む列を種別ごとの列に分類する、
    ことを特徴とする請求項1記載の表データ分析プログラム。
  3. 前記分類結果に対してユーザによる修正を受け付ける受付部としてコンピュータを機能させる、
    ことを特徴とする請求項1又は2記載の表データ分析プログラム。
  4. 前記第2の表データにおける列及び行のうち、所定の規則に合致する列又は行を削除する削除部としてコンピュータを機能させる、
    ことを特徴とする請求項1乃至3いずれか一項記載の表データ分析プログラム。
  5. 前記第2の表データにおいて複数の種別の値を含む列における種別の繰り返しのパタンの単位を解析する解析部としてコンピュータを機能させる、
    ことを特徴とする請求項1乃至4いずれか一項記載の表データ分析プログラム。
  6. 前記第2の表データにおける数値に係る列について、当該列に含まれる数値の集合の中で、他の数値とは異なる傾向を示す数値を検出する検出部としてコンピュータを機能させる、
    ことを特徴とする請求項1乃至4いずれか一項記載の表データ分析プログラム。
  7. 前記第2の表データをクラスとし、前記第2の表データの列を属性とする概念データモデル図を生成する生成部としてコンピュータを機能させる、
    ことを特徴とする請求項1乃至6いずれか一項記載の表データ分析プログラム。
JP2017016994A 2017-02-01 2017-02-01 表データ分析プログラム Active JP6633009B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017016994A JP6633009B2 (ja) 2017-02-01 2017-02-01 表データ分析プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017016994A JP6633009B2 (ja) 2017-02-01 2017-02-01 表データ分析プログラム

Publications (2)

Publication Number Publication Date
JP2018124828A true JP2018124828A (ja) 2018-08-09
JP6633009B2 JP6633009B2 (ja) 2020-01-22

Family

ID=63111469

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017016994A Active JP6633009B2 (ja) 2017-02-01 2017-02-01 表データ分析プログラム

Country Status (1)

Country Link
JP (1) JP6633009B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021210140A1 (ja) * 2020-04-16 2021-10-21 日本電信電話株式会社 データカラムの分類方法および分類システム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520494A (ja) * 1991-07-11 1993-01-29 Hitachi Ltd 帳票属性認識・表示方法
JP2003005970A (ja) * 2001-06-27 2003-01-10 Nec Corp 外れ値判定ルール生成装置と外れ値検出装置、及びその外れ値判定ルール生成方法と外れ値検出方法
JP2009199461A (ja) * 2008-02-22 2009-09-03 Sky Co Ltd 個人情報ファイル判定システム
JP2014241051A (ja) * 2013-06-11 2014-12-25 日本電気株式会社 情報処理装置、情報処理方法および情報処理プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520494A (ja) * 1991-07-11 1993-01-29 Hitachi Ltd 帳票属性認識・表示方法
JP2003005970A (ja) * 2001-06-27 2003-01-10 Nec Corp 外れ値判定ルール生成装置と外れ値検出装置、及びその外れ値判定ルール生成方法と外れ値検出方法
JP2009199461A (ja) * 2008-02-22 2009-09-03 Sky Co Ltd 個人情報ファイル判定システム
JP2014241051A (ja) * 2013-06-11 2014-12-25 日本電気株式会社 情報処理装置、情報処理方法および情報処理プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
T_AM: ""数値と文字列の混在を正す"", カクレ理系のやぶにらみ, JPN6019031598, 26 November 2012 (2012-11-26), ISSN: 0004096655 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021210140A1 (ja) * 2020-04-16 2021-10-21 日本電信電話株式会社 データカラムの分類方法および分類システム
JP7439913B2 (ja) 2020-04-16 2024-02-28 日本電信電話株式会社 データカラムの分類方法および分類システム

Also Published As

Publication number Publication date
JP6633009B2 (ja) 2020-01-22

Similar Documents

Publication Publication Date Title
JP6843882B2 (ja) 履歴ログからの学習と、etlツール内のデータアセットに関するデータベースオペレーションの推奨
JP2022514155A (ja) ソフトウェアテスト
US9646077B2 (en) Time-series analysis based on world event derived from unstructured content
US10885452B1 (en) Relation graph optimization using inconsistent cycle detection
WO2011089683A1 (ja) 解析方法、解析装置及び解析プログラム
US10853732B2 (en) Constructing new formulas through auto replacing functions
US11599539B2 (en) Column lineage and metadata propagation
WO2016200667A1 (en) Identifying relationships using information extracted from documents
US20150193511A1 (en) Graphical record matching process replay for a data quality user interface
US20210174013A1 (en) Information processing apparatus and non-transitory computer readable medium storing program
WO2022081812A1 (en) Artificial intelligence driven document analysis, including searching, indexing, comparing or associating datasets based on learned representations
US20200285569A1 (en) Test suite recommendation system
US10360208B2 (en) Method and system of process reconstruction
Yang et al. UIS-hunter: Detecting UI design smells in Android apps
JP6633009B2 (ja) 表データ分析プログラム
US10740534B1 (en) Ambiguous date resolution for electronic communication documents
CN106844218B (zh) 一种基于演化切片的演化影响集预测方法
JPWO2009011057A1 (ja) アプリケーション解析プログラム、アプリケーション解析方法およびアプリケーション解析装置
JP2012138027A (ja) 情報検索システム、検索キーワード提示方法、およびプログラム
US10776399B1 (en) Document classification prediction and content analytics using artificial intelligence
JP5550959B2 (ja) 文書処理システム、及びプログラム
JP2015102878A (ja) プログラム関連分析方法
Sridharan et al. PENTACET data--23 Million Contextual Code Comments and 500,000 SATD comments
JP2016053871A (ja) データ生成装置、データ生成方法、及びプログラム
JP2016126532A (ja) 算出プログラム、情報処理装置、および算出方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180727

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191009

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191211

R150 Certificate of patent or registration of utility model

Ref document number: 6633009

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150