JP2003228494A - プログラムシミュレータ及びプログラムシミュレーション方法 - Google Patents

プログラムシミュレータ及びプログラムシミュレーション方法

Info

Publication number
JP2003228494A
JP2003228494A JP2002026912A JP2002026912A JP2003228494A JP 2003228494 A JP2003228494 A JP 2003228494A JP 2002026912 A JP2002026912 A JP 2002026912A JP 2002026912 A JP2002026912 A JP 2002026912A JP 2003228494 A JP2003228494 A JP 2003228494A
Authority
JP
Japan
Prior art keywords
value
program
input variable
input
file
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
JP2002026912A
Other languages
English (en)
Other versions
JP3704503B2 (ja
Inventor
Akihisa Chiba
晃久 千葉
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.)
NEC Corp
MX Mobiling Ltd
Original Assignee
NEC Corp
MX Mobiling 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 NEC Corp, MX Mobiling Ltd filed Critical NEC Corp
Priority to JP2002026912A priority Critical patent/JP3704503B2/ja
Publication of JP2003228494A publication Critical patent/JP2003228494A/ja
Application granted granted Critical
Publication of JP3704503B2 publication Critical patent/JP3704503B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 組み合わせ・競合・複合条件の全パタンを自
動的に試験することを可能とするプログラムシミュレー
タを提供する。 【解決手段】 プログラムで使用する各入力変数に割り
当てられたビット数より、各入力変数の最小値、最大値
及び中央値を求める手段と、各入力変数の最小値、最大
値及び中央値を各入力変数のテスト値として入力ファイ
ルに格納する手段と、プログラムで使用する各入力変数
と比較される値を検出する検出手段と、プログラムで使
用する各入力変数と比較される値を各入力変数の追加の
テスト値として入力ファイルに格納する手段と、入力フ
ァイルに格納された各入力変数の各テスト値を用いてプ
ログラムを実行して、プログラムの実行時の出力を出力
ファイルに格納する手段と、を備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、例えば、携帯電話
機等のCPUが実行するプログラムをシミュレーション
するプログラムシミュレータ及びプログラムシミュレー
ション方法に関する。
【0002】
【従来の技術】プログラム開発では、プログラマが設計
内容から、プログラム内のINPUT・OUTPUTの
組み合わせを考え、最小の試験時間でプログラム誤りを
検出出来るよう組み合わせケースを絞って試験を実施し
ていた。
【0003】
【発明が解決しようとする課題】このためプログラマが
気付かなかった組み合わせや競合・複合条件が、運用場
面で出てくると、プログラマが設計しなかったルートを
通り、プログラム誤りになる場合があった。
【0004】このため、プログラム開発での試験の自動
化では、特開平6−131215号公報のソフトウェア
開発支援方法(プログラムとハードウェアの入出力を事
前に登録し期待通りの値かを確認する。一度登録すれば
何度も同一試験が出来る。)や、特開平9−25900
6号公報のプログラム評価システム(プログラムとハー
ドウェアの入出力を登録し期待通りの値かを確認する
が、入手が容易なICEを使って自動試験系を実現す
る)などがある。
【0005】但し、これらの発明では、一番手間がかか
るプログラム内のINPUT・OUTPUTの最小値、
最大値、中央値とその組み合わせ、INPUT・OUT
PUTの競合・複合条件出しが自動化されていない。こ
のため一度試験したことと同じ結果になるかを試験する
程度のメリットしかなかった。
【0006】本発明は、プログラム内のINPUT・O
UTPUTの最小値、最大値、中央値を、コンパイル・
リンクした後に生成されるニーモニックレベルで自動的
に作成し、メインルーチンから子関数、孫関数…のコー
ルツリーの順番で、自動的にルートチェックを行い、結
果として、組み合わせ・競合・複合条件の全パタンを自
動的に試験することを可能とするプログラムシミュレー
タ及びプログラムシミュレーション方法を提供すること
を目的とする。
【0007】
【課題を解決するための手段】本発明の第1の観点によ
れば、プログラムで使用する各入力変数に割り当てられ
たビット数より、各入力変数の最小値、最大値及び中央
値を求める手段と、各入力変数の最小値、最大値及び中
央値を各入力変数のテスト値として入力ファイルに格納
する手段と、前記プログラムで使用する各入力変数と比
較される値を検出する検出手段と、前記プログラムで使
用する各入力変数と比較される値を各入力変数の追加の
テスト値として前記入力ファイルに格納する手段と、前
記入力ファイルに格納された各入力変数の各テスト値を
用いて前記プログラムを実行して、前記プログラムの実
行時の出力を出力ファイルに格納する手段と、を備える
ことを特徴とするプログラムシミュレータが提供され
る。
【0008】上記のプログラムシミュレータにおいて、
前記検出手段は、インサーキットエミュレータ上のCP
Uと前記インサーキットエミュレータ上のエミュレーシ
ョンメモリとの間のアドレスバス、データバス及び制御
線に現れる信号を基に前記プログラムで使用する各入力
変数と比較される値を検出してもよい。
【0009】上記のプログラムシミュレータは、各入力
変数の前記中央値と1異なった値及び−1異なった値を
各入力変数の追加のテスト値として前記入力ファイルに
格納する手段を更に備えてもよい。
【0010】本発明の第2の観点によれば、プログラム
で使用する各入力変数に割り当てられたビット数より、
各入力変数の最小値、最大値及び中央値を求めるステッ
プと、各入力変数の最小値、最大値及び中央値を各入力
変数のテスト値として入力ファイルに格納するステップ
と、前記プログラムで使用する各入力変数と比較される
値を検出する検出ステップと、前記プログラムで使用す
る各入力変数と比較される値を各入力変数の追加のテス
ト値として前記入力ファイルに格納するステップと、前
記入力ファイルに格納された各入力変数の各テスト値を
用いて前記プログラムを実行して、前記プログラムの実
行時の出力を出力ファイルに格納するステップと、を備
えることを特徴とするプログラムシミュレーション方法
が提供される。
【0011】上記のプログラムシミュレーション方法に
おいて、前記検出ステップでは、インサーキットエミュ
レータ上のCPUと前記インサーキットエミュレータ上
のエミュレーションメモリとの間のアドレスバス、デー
タバス及び制御線に現れる信号を基に前記プログラムで
使用する各入力変数と比較される値を検出してもよい。
【0012】上記のプログラムシミュレーション方法
は、各入力変数の前記中央値と1異なった値及び−1異
なった値を各入力変数の追加のテスト値として前記入力
ファイルに格納するステップを更に備えてもよい。
【0013】
【発明の実施の形態】本発明は、よく使われるプログラ
ム構造である、多数の事象発生毎に優先順位毎に処理順
番を決めて実行するリアルタイムモニタによって制御す
るプログラムの開発場面でプログラマが試験で使用する
以下の特徴を持ったプログラムシミュレータである。
【0014】(シミュレータの特徴)本実施形態による
プログラムシミュレータは、プログラムを作成する段階
においてコンパイル・リンクした後に生成されるニーモ
ニックと、コンパイル時に指定した変数の型宣言を基
に、プログラム内の全ての入力変数の最小値、最大値、
中央値を自動的に仮に求めて、求めたそれらの値を入力
変数のテスト値とする。その後、メインルーチンから子
関数、孫関数…の順番で自動的に全ルートを実行しなが
ら各入力変数のテスト値を追加する。
【0015】本実施形態によるプログラムシミュレータ
は、各入力変数の試験すべきテスト値を求め、全入力変
数にわたるテスト値の全ての組み合わせを実行し、組み
合わせ・競合・複合条件の全パタンを試験する。これに
よりプログラマの負担は軽減される。
【0016】(テスト値を自動的に算出する方法)コン
パイラ・リンカがソースプログラムをコンパイル・リン
クするときにオブジェクトプログラムと同時に生成する
マップファイルに記述のある各入力変数のビット数又は
バイト数を基に、個々の関数内で参照する発行パラメー
タの値と、その関数内で使用する入力変数の最小値、最
大値、中央値の3つのテスト値を機械的に算出する。
【0017】例えば、ある関数で参照している沢山の入
力変数のうちの、ある1つの入力変数が2バイトで宣言
された変数である場合には、その入力変数の最大値は0
xffffであり、最小値は0x0000であり、中央
値は0x07ffであることが機械的に算出される。
【0018】さらに、この最小値、最大値、中央値の出
し方を工夫する。
【0019】(最小値、最大値、中央値の出し方の工
夫)本実施形態では、試験対象のプログラムをリセット
スタートし、プログラム中の全ての関数を実行する。な
お、ここでいう関数とはC言語における関数であり、こ
れにはメインプログラム及びサブルーチンも含まれる。
【0020】この実行中、入力変数に遭遇した場合、試
験対象プログラム内で値を設定していないままこの入力
変数が参照されているのであれば、その入力変数の取り
うる値は、前述の最大値、最小値であると仮に決められ
る。
【0021】その後に入力変数を読んで、その変数の値
をある値と比較している箇所があれば、その変数と比較
される値は試験すべき値であるので、その比較される値
をその入力変数のテスト値として追加していく。
【0022】同様に、入力変数がある範囲におさまって
いるか否かを判断している箇所があれば、その範囲の最
大値と最小値を、その入力変数のテスト値として追加す
る。
【0023】同様に、入力変数をCASE文やIF文で
判断している箇所があれば、CASE文やIF文で判断
している値もその入力変数のテスト値として追加する。
【0024】更に、入力変数の最小値、最大値、中央値
だけでなく、設計者が意図しない値であった場合でも試
験したい場合がある。この場合は最小値+1、最小値−
1、最大値+1、最大値−1、中央値+1、中央値−1
を求め、これらをテスト値として追加する。
【0025】以上により、各入力変数の全てのテスト値
を求める。
【0026】試験すべきINPUTの全パタンで試験対
象プログラムを実行していくと各関数単位で、変数更新
や外部ブロックへのタスク間通信、関数発行などのOU
TPUTが発生する。
【0027】本実施形態では、試験時のINPUTをI
NPUTファイル3に格納し、実行した各関数名、各関
数内の変数更新や外部ユニットへのタスク間通信、関数
発行などのOUTPUTをOUTPUTファイル4に格
納し、それらのファイルをシミュレーション結果として
残す。
【0028】図1は、本実施形態によるプログラムシミ
ュレータの全体の構成を示すブロック図であり、図2
は、図1に示すINPUTアクセス監視部2の構成を示
すブロック図である。
【0029】試験対象機器のプログラムは、ハードウェ
ア制御プログラム、マンマシンインタフェースプログラ
ム、シーケンスプログラム、全体監視プログラムなどの
複数のブロックにより構成されるが、開発時において
は、プログラムを小ブロックに分けて開発している。
【0030】試験対象のプログラムは、その中の一つの
小ブロックである。その小ブロックは、他のブロックや
ハードウェアが無い状態でシミュレーションされる。そ
の小ブロックをシミュレーションするために、擬似プロ
グラムを作成し、小ブロックと擬似プログラムをリンク
して、実行可能なロードモジュールを作成する。
【0031】このロードモジュールを、試験対象機器で
使用しているCPUのインサーキットエミュレータ(以
下「ICE」という。)1上で動作させる。
【0032】図1のICE1は、試験対象機器のハード
ウェアとは切り離されており、CPU1−1とプログラ
ムやデータを格納するエミュレーションメモリ1−2を
備えている。エミュレーションメモリ1−2には前述し
たロードモジュールを格納されている。ICE1のCP
Uをリセットスタートするとロードモジュールは実行さ
れる。
【0033】図1のINPUTアクセス監視部2は、I
CE1のCPU1−1とICEエミュレーションメモリ
1−2の間のアドレスバス、データバス及び制御線を監
視する。
【0034】図2を参照すると、INPUTアクセス監
視部2は、アドレスバスパターンマッチ検出部2−1、
データバスパターンマッチ検出部2−2及びメモリリー
ド・ライト検出部2−3を備え、これらが、各々、アド
レスバス、データバス及び制御線を監視し、ICEのC
PU1−1が機械語命令をする度に、INPUTアクセ
ス監視部2に接続されたパーソナルコンピュータ5に割
込みをかける。
【0035】試験対象プログラムを実行する際のINP
UTの最小値、最大値、中央値等のテスト値は、プログ
ラム実行に従ってパーソナルコンピュータ5で求める。
図1のINPUTファイル3は、パーソナルコンピュー
タ5により求められたテスト値を格納するためのファイ
ルである。
【0036】図1のOUTPUTファイル4は、INP
UTファイル3に格納されているテスト値を用いて試験
対象プログラムを実行した時に、試験対象プログラムが
出力するデータを格納するファイルである。ここで、試
験対象プログラムが出力するデータとは、実行した各関
数、各出力変数の値、タスク間通信で用いたデータであ
る。
【0037】次に、図1、図2の構成図、図3のフロー
チャート、図4の状態遷移図を参照して本実施形態の動
作を説明する。
【0038】INPUTファイル3には、試験対象プロ
グラムをコンパイル・リンクするとき、コンパイラ及び
リンカが生成するマップファイルに記述されている変数
の名称、アドレス及びビット数又はバイト数、並びにビ
ット数又はバイト数から求められるその変数の最小値、
最大値、中央値が格納される。
【0039】CPU1−1で試験対象プログラムをリセ
ットスタートする。
【0040】INPUTアクセス監視部2は、CPU1
−1のアドレスバス、データバス及び制御線を監視して
おり、CPU1−1が機械語命令を実行するとパーソナ
ルコンピュータ5に割込みをかける。
【0041】パーソナルコンピュータ5は、割込みを受
けると、図3のフローチャートに示す処理を実行する。
【0042】機械語命令によりメモリ内の変数の読込み
が実行されたのであれば(ステップS101でYE
S)、その変数の値が直接その機械語命令の中で何等か
の値と比較されたのかを確認する(ステップS10
2)。あるいは、読み込まれた変数が一旦レジスタや他
のメモリに格納され、格納先で何等かの値と比較された
のかが明らかとなるまで機械語命令を実行し監視する
(ステップS102、S104)。変数と比較された値
は、INPUTファイルに格納される(ステップS10
3)。監視している最中、リターン命令が有り、関数の
終りになれば、その変数の監視は終了する(ステップS
104でYES)。ステップS101〜S104の処理
は、メモリから読み込まれた全ての変数について並列に
行われる。
【0043】図4はこの処理を状態遷移図に表したもの
である。
【0044】「メモリリード待ち状態」S111にある
ときに、変数のメモリからの読込みが実行されれば「変
数値を条件判断する命令の実行を待つ状態」S112に
遷移する。状態S112にあるときに、変数値を条件判
断する命令が実行されれば、条件判断に用いられた値を
INPUTファイルに格納し(アクションA101)、
状態S111に遷移する。状態S112にあるときに、
変数値を他のメモリ又はレジスタに格納する命令が実行
されれば、「変数値を間接条件判断する命令の実行を待
つ状態」S113に遷移する。状態112にあるときに
リターン命令が実行されれば、状態S111に遷移す
る。状態S113にあるときに、変数値を間接条件判断
する命令が実行されれば、間接条件判断に用いられた値
をINPUTファイルに格納し(アクションA10
1)、状態S111に遷移する。状態S113にあると
きに、リターン命令が実行されれば、状態S111に遷
移する。図4の処理は、メモリから読み込まれた全ての
変数について並列に行われる。
【0045】また、予めパーソナルコンピュータ側処理
に指示することにより、各テスト値+1の値及び各テス
ト値−1の値も追加のテスト値としてINPUTファイ
ル3に格納させるようにしても良い。
【0046】試験対象プログラムのリセットスタートか
ら終りまで1回通して実行しINPUTファイルが作成
できたならば、次に、全ての入力変数の組み合わせにつ
いて、試験対象プログラムを繰り返し実行して、OUT
PUTファイル4を生成する。全ての入力変数の組み合
わせの数は膨大になるため、試験対象プログラムを小ブ
ロックに区切り、少ない数の組み合わせについて試験対
象プログラムを実行するのが実際的である。
【0047】
【発明の効果】以上説明したように、本発明によれば、
入力変数のテストするべき値が自動的に生成されるの
で、試験対象プログラムの予期せぬ誤動作を確実に検出
することが可能となる。
【図面の簡単な説明】
【図1】本発明の実施形態によるプログラムシミュレー
タの全体の構成を示すブロック図である。
【図2】図1に示すINPUTアクセス監視部の構成を
示すブロック図である。
【図3】パーソナルコンピュータの動作を示すフローチ
ャートである。
【図4】パーソナルコンピュータの動作を示す状態遷移
図である。
【符号の説明】
1 インサーキットエミュレータ(ICE) 1−1 ICE CPU 1−2 ICEエミュレーションメモリ 2 INPUTアクセス監視部 2−1 アドレスバスパターンマッチ検出部 2−2 データバスパターンマッチ検出部 2−3 メモリリード・ライト検出部 3 INPUTファイル 4 OUTPUTファイル 5 パーソナルコンピュータ

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 プログラムで使用する各入力変数に割り
    当てられたビット数より、各入力変数の最小値、最大値
    及び中央値を求める手段と、 各入力変数の最小値、最大値及び中央値を各入力変数の
    テスト値として入力ファイルに格納する手段と、 前記プログラムで使用する各入力変数と比較される値を
    検出する検出手段と、 前記プログラムで使用する各入力変数と比較される値を
    各入力変数の追加のテスト値として前記入力ファイルに
    格納する手段と、 前記入力ファイルに格納された各入力変数の各テスト値
    を用いて前記プログラムを実行して、前記プログラムの
    実行時の出力を出力ファイルに格納する手段と、 を備えることを特徴とするプログラムシミュレータ。
  2. 【請求項2】 請求項1に記載のプログラムシミュレー
    タにおいて、前記検出手段は、インサーキットエミュレ
    ータ上のCPUと前記インサーキットエミュレータ上の
    エミュレーションメモリとの間のアドレスバス、データ
    バス及び制御線に現れる信号を基に前記プログラムで使
    用する各入力変数と比較される値を検出することを特徴
    とするプログラムシミュレータ。
  3. 【請求項3】 請求項1に記載のプログラムシミュレー
    タにおいて、 各入力変数の前記中央値と1異なった値及び−1異なっ
    た値を各入力変数の追加のテスト値として前記入力ファ
    イルに格納する手段を更に備えることを特徴とするプロ
    グラムシミュレータ。
  4. 【請求項4】 プログラムで使用する各入力変数に割り
    当てられたビット数より、各入力変数の最小値、最大値
    及び中央値を求めるステップと、 各入力変数の最小値、最大値及び中央値を各入力変数の
    テスト値として入力ファイルに格納するステップと、 前記プログラムで使用する各入力変数と比較される値を
    検出する検出ステップと、 前記プログラムで使用する各入力変数と比較される値を
    各入力変数の追加のテスト値として前記入力ファイルに
    格納するステップと、 前記入力ファイルに格納された各入力変数の各テスト値
    を用いて前記プログラムを実行して、前記プログラムの
    実行時の出力を出力ファイルに格納するステップと、 を備えることを特徴とするプログラムシミュレーション
    方法。
  5. 【請求項5】 請求項4に記載のプログラムシミュレー
    ション方法において、前記検出ステップでは、インサー
    キットエミュレータ上のCPUと前記インサーキットエ
    ミュレータ上のエミュレーションメモリとの間のアドレ
    スバス、データバス及び制御線に現れる信号を基に前記
    プログラムで使用する各入力変数と比較される値を検出
    することを特徴とするプログラムシミュレーション方
    法。
  6. 【請求項6】 請求項4に記載のプログラムシミュレー
    ション方法において、 各入力変数の前記中央値と1異なった値及び−1異なっ
    た値を各入力変数の追加のテスト値として前記入力ファ
    イルに格納するステップを更に備えることを特徴とする
    プログラムシミュレーション方法。
JP2002026912A 2002-02-04 2002-02-04 プログラムシミュレータ及びプログラムシミュレーション方法 Expired - Fee Related JP3704503B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002026912A JP3704503B2 (ja) 2002-02-04 2002-02-04 プログラムシミュレータ及びプログラムシミュレーション方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002026912A JP3704503B2 (ja) 2002-02-04 2002-02-04 プログラムシミュレータ及びプログラムシミュレーション方法

Publications (2)

Publication Number Publication Date
JP2003228494A true JP2003228494A (ja) 2003-08-15
JP3704503B2 JP3704503B2 (ja) 2005-10-12

Family

ID=27748596

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002026912A Expired - Fee Related JP3704503B2 (ja) 2002-02-04 2002-02-04 プログラムシミュレータ及びプログラムシミュレーション方法

Country Status (1)

Country Link
JP (1) JP3704503B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113238491A (zh) * 2021-04-12 2021-08-10 湖南三一智能控制设备有限公司 执行机构的仿真测试方法、装置、智能臂架及工程车辆

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113238491A (zh) * 2021-04-12 2021-08-10 湖南三一智能控制设备有限公司 执行机构的仿真测试方法、装置、智能臂架及工程车辆
CN113238491B (zh) * 2021-04-12 2023-05-05 湖南三一智能控制设备有限公司 执行机构的仿真测试方法、装置、智能臂架及工程车辆

Also Published As

Publication number Publication date
JP3704503B2 (ja) 2005-10-12

Similar Documents

Publication Publication Date Title
US9411559B2 (en) Resolution of textual code in a graphical hierarchical model of a technical computing environment
US8407679B2 (en) Source code processing method, system and program
JP4931978B2 (ja) 並列化処理方法、システム、及びプログラム
US20130080993A1 (en) Embedded system performance
CN107480327B (zh) 一种仿真验证方法、装置和电子设备
JPH11513512A (ja) ディジタル信号プロセッサの製造方法
US20110067017A1 (en) Non-blocking semantics for modeling systems
JP2011096107A (ja) 並列化方法、システム、及びプログラム
US20060026584A1 (en) Explicit linking of dynamic link libraries
CN112882718A (zh) 编译处理方法、装置、设备及存储介质
CN115390809A (zh) 一种仿真调度方法及***
CN113283203A (zh) 用于仿真逻辑***设计的方法、电子设备及存储介质
JP5504960B2 (ja) シミュレーション装置及びシミュレーション方法
EP1394677A2 (en) Generation of compiled code for speeding up a simulator
US9710360B2 (en) Optimizing error parsing in an integrated development environment
KR20080013422A (ko) 소프트웨어 프로젝트 빌드 방법
JP2003228494A (ja) プログラムシミュレータ及びプログラムシミュレーション方法
CN116107625A (zh) 流程设计方法、装置、设备、存储介质及程序产品
Samara A practical approach for detecting logical error in object oriented environment
Gilles et al. Applying WCET analysis at architectural level
CN112527571A (zh) 一种cpu指令集覆盖率计算方法及装置
CN117422047B (zh) 一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法
CN115629928B (zh) 一种面向类脑处理器的软硬协同验证方法及***
CN111566625A (zh) 测试用例生成装置、测试用例生成方法和测试用例生成程序
CN117785160B (zh) 一种低代码应用的行为逻辑开发调试方法、***及装置

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20040512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050420

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050610

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050725

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090729

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100729

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110729

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees