JP6248008B2 - ソフトウェア検証システムおよび制御装置 - Google Patents

ソフトウェア検証システムおよび制御装置 Download PDF

Info

Publication number
JP6248008B2
JP6248008B2 JP2014153420A JP2014153420A JP6248008B2 JP 6248008 B2 JP6248008 B2 JP 6248008B2 JP 2014153420 A JP2014153420 A JP 2014153420A JP 2014153420 A JP2014153420 A JP 2014153420A JP 6248008 B2 JP6248008 B2 JP 6248008B2
Authority
JP
Japan
Prior art keywords
inspection
software
verification system
unit
test
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
JP2014153420A
Other languages
English (en)
Other versions
JP2016031622A (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 Astemo Ltd
Original Assignee
Hitachi Automotive Systems 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 Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2014153420A priority Critical patent/JP6248008B2/ja
Priority to PCT/JP2015/071185 priority patent/WO2016017560A1/ja
Publication of JP2016031622A publication Critical patent/JP2016031622A/ja
Application granted granted Critical
Publication of JP6248008B2 publication Critical patent/JP6248008B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Description

本発明は、ソフトウェアを検証する検証システムおよびそのソフトウェアを搭載した制御装置に関する。
自動車エンジン制御などの制御装置として、中央演算装置、ROM、RAM、入出力信号処理装置などを内蔵したマイクロコントローラ(以下マイコンと表記)が用いられている。マイコンが実行するソフトウェアは制御対象が目的とする制御動作を行うように、一般的には制御処理を行うアプリケーションプログラムと入出力を行うデバイスドライバやオペレーティングシステム(OS)などによって構成されている(例えば、特許文献1参照)。
このような制御装置は、車両の制御を行うことで車両乗員の安全性に直接係る制御を行うことから、高い安全性を要求されている(例えば、特許文献2参照)。また、近年制御の高度化と規模の増大に伴い、安全に関わるシステムが第三者から見ても必要とされる高い安全性を満足する開発を行うためには、開発工程のうち検証工程において網羅率のより高い検証を求められており、安全に関わらないシステムと比べて、大きな開発工数を要することが課題となっている。
網羅的な検証を可能とする技術として、形式検証技術と呼ばれる技術が近年注目されている。形式検証技術は網羅的な検証が可能となる。
特許第3460593号公報 特開2002-14839号公報
Edmund Clarke著 ANSI-C Bounded Model Checker User Manual 2006 frama-c Value Analysis http://frama-c.com/download/frama-c-value-analysis.pdf Pascal Cuoq他著, Frama-C: A Software Analysis Perspective, in LNCS7504 Software Engineering and Formal Methods, p233 Jeffrey E.F. Friedl著, 詳説 正規表現, オライリージャパン
形式検証技術によれば網羅的な検証が可能となるものの、検証対象ソフトウェア規模が増大すると、検証に要する計算時間やメモリ、やディスクなどの計算資源が指数関数的に増大するため検証がし切れなくなるという、状態爆発と呼ばれる問題がある。このため、現実に用いられるソフトウェア全体を一度に検証することは現実的には実現できない。
大規模で形式検証適用が困難なソフトウェアを検証するためには、ソフトウェアを小さな検証単位に分割することと、探索範囲となる検証すべき条件を可能な限り限定することが有効である。
このため本発明の目的は、大きなソフトウェアを小さな部分に分けて部分毎に検証し、その結果をシステム全体で組み合わせ、部分毎の検証結果を統合しながら検証を進めることにある。
また、本発明の他の目的は、検証対象ソフトウェアに存在する条件だけでなく、設計情報としての条件を検証条件に与えることで検証範囲を限定し規模の大きなソフトウェアへの網羅的検証を可能とすることにある。
前記目的を実現するために、本発明のソフトウェア検証システムは、入出力に依存関係のある複数の機能を備えた制御プログラムのソースコードを入力し、前記制御プログラムを検証する検査実行部と、前記ソースコードを前記複数の機能単位で複数の検査部位に分割し抽出する検査部位抽出部と、前記複数の検査部位のうち一の検査部位に関する検査結果出力に基づき、連続する次の検査部位の検査範囲を規定する第1の制約式を作成する第1の制約式作成部と、を備え、前記第1の制約式に基づいて前記複数の検査部位を順に検査することを特徴とする。
上記構成にてソフトウェア検証装置を作成すると、大規模なソフトウェアを小さな単位で分割しながら、ひとつの検証部位の検証結果と設計者が与えた検証条件を次の検証部位に適用していくことにより、状態爆発を抑制しながら大規模なソフトウェアの検証が可能となる。
システムの構成を示した図である。 装置の構成を示した図である。 制御装置の構成を示した図である。 検査式挿入の実行手順を示した図である。 検査器投入ソフトウェアを示した図である。 制約式統合の実行手順を示した図である。 検査式情報を示した図である。 検査手段実行部、検査器、および検査結果を示した図である。 検査式出力パターンを示した図である。
以下、図面を参照しながら本発明の実施形態について説明する。
(ハードウェア構成)
図1は本発明の実施形態のソフトウェア検証システムの構成を示す構成図である。検査装置(検査ツール)0102はソフトウェア0106を全体を検査することを目的としている。ここでいう検査とは、ソフトウェア0106のソースコードに挿入された検査式で定義される検証範囲内において、ソースコードが取り得る状態を網羅的に探索し、所望の状態になることを検証することをいう。
ソフトウェア0106は、例えば図3で後述するような、自動車を制御するコントロールユニットに搭載される制御ソフトウェアである。検査条件設定部0103では、まず検査部位抽出部0110により106から検査対象ソフトウェア0108を一定の検査単位でソフトウェア部品として抽出し、次に検査式挿入部0111により検査式を挿入する。
前記検査式は0108中で所定の処理を行う処理部の実行前または実行後に、事前事後条件判定部0107と、判定結果を出力する判定結果出力部0109として挿入する。上述した自動車を制御する制御ソフトウェアの例では、処理部(所定の入力値に対して出力値を演算する処理等)の実行前に、センサ値などの入力値の取り得る値(検証範囲)が事前条件として挿入される。また、事前条件で指定された入力値に対する処理部の出力値の取り得る値(設計値等)が事後条件として挿入される。
次に検査実行部0104は検査手段実行部0112により、前記検査式を挿入した前記ソフトウェア部品を検査器投入ソフトウェア0101として検査器0113を用いて網羅的に検証する。
検査結果出力部0114は検査器0113から得た検査結果をユーザ或いは出力装置に出力するとともに、要求仕様入力部0105に出力する。
要求仕様入力部0105は前記検査結果を制約式入力部0118を用いて第一の制約式として入力する。また検査式入力部0105はユーザから入力した検査式を前記検査式保持部0116に第2の制約式として保持する。制約統合部0117は前記第1の制約式と前記第2の制約式を統合し検査式挿入部に出力する。
なお、前記検査単位とはソフトウェアを構成する構成要素を示しており、C言語のひとつの関数が前記単位の一例であるが、その他の粒度に設定することも可能であり、この例に特定されるものではない。
図2は本発明を実現するためのシステム構成図である。計算機の演算装置などからなる処理装置301と、ディスク装置やメモリ装置からなる記憶装置302と、モニタ、キーボード、ネットワーク、プリンタなどからなる入出力装置303から構成される。処理装置301には、前記検査部位抽出部305,検査式挿入部306, 検査手段起動部307, 検査結果出力部308、検査式入力部309、制約統合部310,検査式入力部311が配置される。記憶装置には前記、ソフトウェア0106を格納するプログラムコード312、前記検査式保持部313、検査結果格納部314、検査対象ソフトウェア315が配置される。
図3は本発明の対象とする制御システムのひとつである自動車エンジン制御システムの構成を示すものである。
コントロールユニット301はマイクロコントローラ 302 (CPU)、信号入力回路309、アクチュエータ駆動回路 312、通信回路 311 から構成され、センサ1311、 センサ2 316から信号入力回路309を介して得た外界の情報に基づき、駆動回路310を介してアクチュエータ 314を駆動することで制御を行う。また、一部の信号については通信回路311を介して通信線217から得た他の制御装置316からの入出力を用いて制御処理を行う。
前記マイクロコントローラ302は、入力回路 303、演算装置 304、揮発性読み書きメモリ305(RAM)、読み出し専用メモリ306(ROM)、割込み制御装置 307、メモリ保護装置 308、出力回路 309、通信制御装置 310、から構成される。
ソフトウェア0106は読み出し専用メモリ306に格納され、マイクロコントローラ302によって実行され、所定の制御処理を行う。
(ソフトウェアの処理詳細)
図4aに示すのが、検査部位抽出部の動作である。検査部位抽出部はプログラムコード格納部312からソフトウェア0106のプログラムコードの特定部位を抽出し部分的なプログラム構成要素を出力する部分である。まず抽出を開始する点である抽出始点を検索401し、次に抽出の終点を検索402する。始点から終点に相当するプログラムコードを検査部位として切り出し403、検査式生成部を呼出し404、検査部位として抽出したプログラムコード中に検査式を挿入する。全ての対象モジュールを抽出し終えたか否かを判定405し、全ての対象の抽出を終了していれば動作を終了405する。
図4bに示すのが検査式生成部の動作である。検査式生成部は、プログラムコードあるいはプログラムコードの一分を入力し、検査式を挿入したプログラムコードを出力する部分である。検査式格納部313から条件式パターンをそれぞれ入力し、検査式情報を作成し制約統合部310へ格納することが目的である。処理が開始406されると、検査式格納部313から検査式を読み込み407、プログラムコード格納部312からプログラムコードを一行づつ入力する407。読み込んだ部位が検査式を挿入すべき位置か判定する409。挿入部位に該当する場合には、検査式を抽出し410、検査式を生成する411。対象モジュールの読み込みが終端に達っしているか判定し412、終端に達していれば終了413し、対象モジュール全体への検査式挿入判定と挿入が完了するまで繰り返す。
図5に示すのが検査器が検査する対象とする検査器投入ソフトウェア0101の例である。検査対象となる検査対象ソフトウェア0108の例が、図5(a)の関数501とその処理内容503、ならびに図5(b)関数505とその処理内容507である。502が事前・事後条件判定部0107の例であり、507によると、符号なし2バイト長の変数"ETH" はソースコードの情報のみからは、0以上65535以下の値を取り得る、と判断できるが、さらに設計上の情報を与えたことにより、0以上50以下の値のみを取り得る、という前提条件を課すことができる。
このように変数の取り得る値を限定することにより、検証時の探索範囲を削減することができ、前述の状態爆発を避けることが可能となる。同様に変数 "WTP" は0以上150以下の範囲であることを示している。504は関数501の処理内容503を実行後に満すべき条件を記述した事前・事後条件判定部0107の例である。実行後に変数SINJWが0以上150以下の範囲であることを検査条件として示している。
506は関数505に対する事前・事後条件判定部0107の例であり、502に加えて変数"SINJW"が0以上150以下であるという条件が追加されている。これは、504で検証した関数501の事後条件を関数505の事前条件として追加したものであり、関数501と関数505が、その呼出し元関数509から前後順に呼び出されている情報を用いることにより、関数501の次に続く関数505の条件を、関数501の検証結果と事前の設計情報である事前条件502を統合した条件として、制約統合部0117により統合された場合の例である。連続する検査対象の検査結果と設計情報として与えた条件を統合することにより、検査範囲をより限定できる。508は事前・事後条件判定部0107および判定結果出力部0109の例であり、検査を行い違反が見付かった場合にはその情報を出力する。この判定および結果出力は検証時に処理装置301上で実行し入出力装置303から結果を出力する実施形態と、制御装置301上のROM306に搭載するソフトウェアとして実装し、301上で実施し結果を通信線316を介し診断端末314あるいは制御装置315に出力する実施形態がある。自動車等の制御ソフトウェアでは、ある関数の出力結果を用いて続く関数が演算処理を行い、複数の関数が連続して処理を行って機器を制御する場合が多い。本発明では、このように入出力値に依存関係のある連続した関数において、前の関数の検証結果を続く関数の制約式として用いることにより、個々の関数の検証範囲を抑えつつも制御ソフトウェア全体を網羅的に検証することが出来る。
図6は制約統合部0117の処理手順である。検査対象ソフトウェアの検査式挿入位置に関する情報を入力する601。挿入位置に関する情報とは、ソフトウェアのソースコードを含むファイル名や行番号、関数などのモジュール名、その実行前、実行後などの具体的な位置を示す情報である。次に検査式格納部0116から第1の検査式を入力する602。次に制約式入力部0118から第2の検査式を入力する603。第2の検査式は、要求仕様入力部0105に入力された制御仕様等に基づいて設定されている。制御仕様としては、例えば自動車の制御ソフトウェアの場合、車両の取り得る状態遷移、車両の外界情報設定値、所定の車載機器が所定の条件で取るべき仕様等である。次に602、603によって入力した各々の検査式について検査式の種別を判定し604、この種別に基づき検査式同士の結合条件を決定する605。最後に605で決定した結合条件を表す条件結合子を用いて検査式を連結し、統合した制約式として出力する606。
図7は、検査式格納部0116に格納される検査式情報の例である。0705から0708まで4つの検査式情報の例を示している。各検査式情報は、起動条件0701、条件種別0702、結合子0703、0704条件の項目を含む。起動条件0701は、どのような条件で検査を行うかを定めたものであり、0705の例では指定した関数"INJWCALC" の実行前であることを指定した例である。この他に常に検査する"always" 0706, 0707指定したファイル "module1.c" の指定した行番号 "110"のようなファイル位置の指定 0701 を行う。条件種別0702は、その検査式が常に成り立つ "hold" 0705, 0706, 0707, あるいはその条件が成立してはならないという安全条件 "do not hold" 0708、 を指定する。結合子0703は、複数の検査式を連結する際には何らかの論理演算子で結合する必要があるが、それらの条件には、常に成立するべき仕様や、その条件に陥ってはならない安全仕様などがあり、これらを統合し連接するたには個別に異なるため、これを指定するためのものである。条件0704は、各検査式情報が示す具体的な条件である。
図8は検査器0113から出力された検査結果の出力例である。図8(a)801は検査器0113として、非特許文献1に記載のCBMCを利用した場合の検証器の起動および検証結果の例である。801は検証器を起動するコマンドである。803は検証器の出力であり、検証すべき項目が全て正しい結果であったことが得られたことを示している。
図8(a)804は検証器に検証した項目を明示的に表示させた出力結果である。0805はその検証項目の一例であり、そのうちの0805は変数 "SINJW" と 変数"rinjw" の加算結果の値が0以上65535以下であることが証明されたことが出力されている。
図8(b)は、0808の検査器投入ソフトウェア0101の例を、非特許文献2, 非特許文献3に示す検証器である "frama-c" で検証した際の出力例である。
検証の結果変数 "INJW" の取り得る値が0~10であることが示された様子を示している。
これらの検査器の出力は検査結果出力部0114により検証支援装置の画面やプリンタなどの入出力装置303から表示させる。また、この出力はつぎの検査単位の検査条件として制約式入力部0118から入力し、制約統合部0117として統合することで、より限定された検査範囲での検査を可能とし、検証時間の短縮や、同一検証環境の計算機資源においてより多くのソフトウェアの検証を可能とすることができる。
また、検査器の出力に代えて、コントロールユニット301によって、ソフトウェア0106を実行した時に、ソフトウェア0106に記述された検査式の検査結果をRAM305に保持するようにしてもよい。これにより、車両の運転中に実行された処理結果を機能単位で保持または出力出来て、エラーが生じた際の原因特定に役立てることが出来る。
図9は検査式挿入部011の処理フロー図4のステップ411、検査式生成の工程で使用する出力文字列を具体的に記載した例である。挿入する文字列は検査器0113の仕様に依存するため、適切な検査式となる文字列への変換が必要である。図9 901は前記CBMCに適した検査式文字列の生成パターンを示しており、正規表現を用いた記載例である。固定部前半902と可変部903、固定部後半904を指定し、条件を可変部903に埋め込むことにより実際に選択した検査器0113に対応した検査式記述を出力できる。このような正規表現を用いた固定文字列と可変文字列の組み合わせは非特許文献4に示されている。
(実施例による効果)
これにより、検証時の検証対象ソフトウェアを入出力値に依存関係のある複数の機能単位で分割し、探索範囲である検証条件を限定することが可能となり、より大規模なソフトウェアに対し、網羅的検証が可能となる。
0102・・・検査装置、0103・・・検査条件設定部、0104・・・検査実行部、0105・・・要求仕様入力部、0106・・・ソフトウェア、0108・・・検査対象ソフトウェア

Claims (6)

  1. 入出力に依存関係のある複数の機能を備えた制御プログラムのソースコードを入力し、前記制御プログラムを検証する検査実行部と、
    前記ソースコードを前記複数の機能単位で複数の検査部位に分割し抽出する検査部位抽出部と、
    前記複数の検査部位のうち一の検査部位に関する検査結果出力に基づき、連続する次の検査部位の検査範囲を規定する第1の制約式を作成する第1の制約式作成部と、を備え、
    前記第1の制約式に基づいて前記複数の検査部位を順に検査することを特徴とするソフトウェア検証システム
  2. 請求項1に記載のソフトウェア検証システムにおいて、
    制御対象機器の取り得る状態遷移、制御対象機器の外界情報設定値、制御仕様の少なくとも1つに基づいて、検査部位の検査範囲を規定する第2の制約式を作成する第2の制約式作成部を備え、
    第1の制約式と第2の制約式とに基づいて前記複数の検査部位を順に検査することを特徴とするソフトウェア検証システム。
  3. 請求項2に記載のソフウェア検証システムであって、
    前記検査部位抽出部はC言語で記述されたソフトウェアのソースコードを対象とし、関数を単位として抽出することを特徴とするソフトウェア検証システム。
  4. 請求項2に記載のソフウェア検証システムであって、
    検査対象処理記述と事前条件と事後条件のうち少なくともひとつを入力として、前記複数の検査部位を順に検査することを特徴とするソフトウェア検証システム
  5. 請求項2に記載のソフウェア検証システムであって、
    前記第1の制約式と前記第2の制約式を統合する制約式統合部を備えることを特徴とするソフトウェア検証システム。
  6. センサおよびアクチュエータに接続され、前記センサの入力をもとに制御演算を行いアクチュエータへ出力する制御装置において、
    請求項1に記載の制御プログラムの検証を実行し、検査式による検査結果を保持または出力する制御装置。
JP2014153420A 2014-07-29 2014-07-29 ソフトウェア検証システムおよび制御装置 Active JP6248008B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014153420A JP6248008B2 (ja) 2014-07-29 2014-07-29 ソフトウェア検証システムおよび制御装置
PCT/JP2015/071185 WO2016017560A1 (ja) 2014-07-29 2015-07-27 ソフトウェア検証システムおよび制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014153420A JP6248008B2 (ja) 2014-07-29 2014-07-29 ソフトウェア検証システムおよび制御装置

Publications (2)

Publication Number Publication Date
JP2016031622A JP2016031622A (ja) 2016-03-07
JP6248008B2 true JP6248008B2 (ja) 2017-12-13

Family

ID=55217461

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014153420A Active JP6248008B2 (ja) 2014-07-29 2014-07-29 ソフトウェア検証システムおよび制御装置

Country Status (2)

Country Link
JP (1) JP6248008B2 (ja)
WO (1) WO2016017560A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3570173B1 (en) 2017-02-22 2021-10-06 Mitsubishi Electric Corporation Equivalence verification apparatus and equivalence verification program
JP6890460B2 (ja) * 2017-04-27 2021-06-18 日立Astemo株式会社 車両制御システム検証手法および検証装置および制御装置
CN108733557B (zh) * 2018-03-28 2022-02-25 新华三信息安全技术有限公司 一种测试点生成方法及装置
WO2021214843A1 (ja) * 2020-04-20 2021-10-28 三菱電機株式会社 動作確認支援装置、動作確認支援方法及び動作確認支援プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4905173B2 (ja) * 2007-02-16 2012-03-28 日本電気株式会社 ソフトウェア検証装置、ソフトウェア検証方法およびソフトウェア検証プログラム
JP5072889B2 (ja) * 2009-03-16 2012-11-14 株式会社東芝 事前条件生成装置および事後条件生成装置、ならびにこれらの方法
JP5468615B2 (ja) * 2009-10-26 2014-04-09 株式会社東芝 事前条件生成装置およびその方法、ならびにプログラム

Also Published As

Publication number Publication date
WO2016017560A1 (ja) 2016-02-04
JP2016031622A (ja) 2016-03-07

Similar Documents

Publication Publication Date Title
US8589892B2 (en) Verification of speculative execution
JP5412510B2 (ja) 1個のソフトウェアの少なくとも一部を検証するためにテストケースを自動的に形成する方法
JP2017033562A (ja) 安全重視ソフトウェア開発のためのモデルベース技術および過程のためのシステムおよび方法
JP6248008B2 (ja) ソフトウェア検証システムおよび制御装置
US20170060735A1 (en) Software program repair
US20100333061A1 (en) Explicit state model checking of sl/sf models using the auto-generated code
JP2014203314A (ja) Ecuシミュレーション装置
CN106155903B (zh) 用于系统设计验证的装置和方法
JP6142705B2 (ja) オブジェクト指向言語のための記号テストドライバの反復生成
US20210182181A1 (en) Software environment for control engine debug, test, calibration and tuning
US10592703B1 (en) Method and system for processing verification tests for testing a design under test
Jaffuel et al. LEIRIOS test generator: Automated test generation from B models
JP2009211503A (ja) ソースコード検証装置、及びソースコード検証方法
US8627273B2 (en) Model checking of liveness property in a phase abstracted model
JP6476777B2 (ja) テストコンテキストの生成
Cuckov et al. Framework for model-based design and verification of human-in-the-loop cyber-physical systems
JPWO2020194455A1 (ja) テストケース生成装置、テストケース生成方法、およびテストケース生成プログラム
CN115562931A (zh) 处理器调试模块验证方法、装置、电子设备和存储介质
CN115034165A (zh) 一种芯片仿真验证方法、系统、设备以及存储介质
WO2019142266A1 (ja) テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
US8639490B2 (en) Concretization of abstracted traces
WO2016103229A1 (en) A method for verifying a safety logic in an industrial process
CN112580282B (zh) 用于集成电路设计验证的方法、装置、设备以及存储介质
KR101513662B1 (ko) 실행 가능한 그래픽 사용자 인터페이스 검색 시스템 및 검색 방법
US8996435B2 (en) Determining invariants in a model

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170117

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170124

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170919

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171120

R150 Certificate of patent or registration of utility model

Ref document number: 6248008

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250