JP2013152580A - Code generation device, code generation method, and program - Google Patents

Code generation device, code generation method, and program Download PDF

Info

Publication number
JP2013152580A
JP2013152580A JP2012012573A JP2012012573A JP2013152580A JP 2013152580 A JP2013152580 A JP 2013152580A JP 2012012573 A JP2012012573 A JP 2012012573A JP 2012012573 A JP2012012573 A JP 2012012573A JP 2013152580 A JP2013152580 A JP 2013152580A
Authority
JP
Japan
Prior art keywords
code
template
unit
change
ver
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
JP2012012573A
Other languages
Japanese (ja)
Other versions
JP5808264B2 (en
Inventor
Yusuke Kaneki
佑介 金木
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2012012573A priority Critical patent/JP5808264B2/en
Publication of JP2013152580A publication Critical patent/JP2013152580A/en
Application granted granted Critical
Publication of JP5808264B2 publication Critical patent/JP5808264B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To generate a code retaining content of a change by a developer or the like from a template after an update without directly comparing a template before the update with the template after the update, after the developer or the like has changed a code generated from the template before the update.SOLUTION: When a code generated from an old template 21 is changed by a developer or the like, a code generation device 10 creates correction information 41 representing content of the change by the developer or the like. When the old template 21 is updated, the code generation device 10 detects a difference between the old code 51 and a temporary code generated from a new template 22, and creates, for the correction information 41, compensated correction information 42 on which the difference from the old code 51 is reflected. The code generation device 10 generates a compensated new code 55 on which the change by the developer is reflected, for the temporary code on the basis of the compensated correction information 42.

Description

本発明は、コード生成装置及びコード生成方法及びプログラムに関するものである。本発明は、特に、コード自動生成方式に関するものである。   The present invention relates to a code generation device, a code generation method, and a program. The present invention particularly relates to an automatic code generation method.

テンプレートとデータベース定義からコードを自動生成するコード自動生成ツールがある。開発時には、仕様変更が度々発生するため、データベース定義やテンプレート等を変更することもあり、その度にコードの再生成を行う。一方、テンプレートは汎用的に作成されているため、自動生成されたコードに対して、開発者が修正を行うことがある。このとき、コードを開発者が修正した後にコードの再生成を行うと、開発者の修正箇所が上書きされてしまう。そのため、コードの再生成後に再度開発者が修正を行う必要があり、自動生成による効率化の妨げとなっていた。   There is an automatic code generation tool that automatically generates code from templates and database definitions. During development, specification changes frequently occur, so database definitions and templates may be changed, and code is regenerated each time. On the other hand, since the template is created for general use, the developer may modify the automatically generated code. At this time, if the code is regenerated after the developer corrects the code, the corrected part of the developer is overwritten. Therefore, it is necessary for the developer to make corrections again after the code is regenerated, which hinders efficiency by automatic generation.

特許文献1では、設計情報に基づいてプログラムを自動生成し、設計情報の変更内容に基づいてプログラムの変更箇所を検索し、開発者により修正されたプログラムに変更箇所を追加又は削除する方式が開示されている。また、特許文献1では、元の設計情報と最新の設計情報とに基づいてプログラムの変更箇所を検索し、開発者により修正されたプログラムに変更箇所を追加又は削除する方式が開示されている。   Patent Document 1 discloses a method of automatically generating a program based on design information, searching for a changed part of the program based on the change contents of the design information, and adding or deleting the changed part to the program modified by the developer. Has been. Patent Document 1 discloses a method of searching for a program change location based on the original design information and the latest design information, and adding or deleting the change location to the program modified by the developer.

特開2000−222195号公報JP 2000-222195 A

従来技術では、テンプレートの変更に対応できないという課題があった。   The prior art has a problem that it cannot cope with the template change.

本発明は、例えば、更新前のテンプレートから生成したコードが開発者等により変更された後、更新前のテンプレートと更新後のテンプレートとを直接比較することなく、開発者等による変更の内容を維持したコードを更新後のテンプレートから生成することを目的とする。   In the present invention, for example, after the code generated from the template before the update is changed by the developer or the like, the content of the change by the developer or the like is maintained without directly comparing the template before the update and the template after the update. The purpose is to generate the updated code from the updated template.

本発明の一の態様に係るコード生成装置は、
オブジェクト指向プログラミングにおけるクラスのコードのテンプレートを記憶装置により記憶するテンプレート記憶部と、
前記テンプレート記憶部に記憶されたテンプレートから、特定のクラスのコードである第1コードを処理装置により生成するコード生成部と、
前記コード生成部により生成された第1コードに対する変更の入力を入力装置により受け付ける変更入力部と、
前記変更入力部に入力された変更の内容を示す第1変更情報を処理装置により作成する変更情報作成部と、
前記テンプレート記憶部に記憶されたテンプレートを処理装置により更新し、更新したテンプレートから、前記特定のクラスのコードである第2コードを前記コード生成部に生成させるテンプレート更新部と、
前記コード生成部により生成された第1コードと第2コードとの差異を処理装置により検出する差異検出部と、
前記変更情報作成部により作成された第1変更情報に対し前記差異検出部により検出された第1コードと第2コードとの差異を反映した第2変更情報を処理装置により作成する変更情報更新部と、
前記変更情報更新部により作成された第2変更情報に基づいて、前記コード生成部により生成された第2コードに対し前記変更入力部に入力された変更を反映したコードである第3コードを処理装置により生成するコード更新部とを備える。
A code generation device according to an aspect of the present invention includes:
A template storage unit for storing a template of a class code in object-oriented programming by a storage device;
A code generation unit that generates, from a template stored in the template storage unit, a first code that is a code of a specific class by a processing device;
A change input unit that receives an input of a change to the first code generated by the code generation unit by an input device;
A change information creating unit for creating first change information indicating the content of the change input to the change input unit by a processing device;
A template update unit that updates a template stored in the template storage unit by a processing device, and causes the code generation unit to generate a second code that is a code of the specific class from the updated template;
A difference detection unit for detecting a difference between the first code and the second code generated by the code generation unit by a processing device;
A change information update unit that creates, by a processing device, second change information that reflects the difference between the first code and the second code detected by the difference detection unit with respect to the first change information created by the change information creation unit. When,
Based on the second change information created by the change information update unit, a third code that is a code reflecting the change input to the change input unit is processed with respect to the second code generated by the code generation unit A code update unit generated by the apparatus.

本発明の一の態様において、コード生成装置は、テンプレートから生成した第1コードが開発者等により変更されると、開発者等による変更の内容を示す第1変更情報を作成する。コード生成装置は、テンプレートが更新されると、第1コードと更新後のテンプレートから生成した第2コードとの差異を検出し、第1変更情報に対し第1コードと第2コードとの差異を反映した第2変更情報を作成する。そして、コード生成装置は、第2変更情報に基づいて、第2コードに対し開発者等による変更を反映した第3コードを生成する。このため、本発明の一の態様によれば、コード生成装置は、更新前のテンプレートと更新後のテンプレートとを直接比較することなく、開発者等による変更の内容を維持したコードを更新後のテンプレートから生成することができる。   In one aspect of the present invention, when the first code generated from the template is changed by a developer or the like, the code generation device creates first change information indicating the content of the change by the developer or the like. When the template is updated, the code generation device detects a difference between the first code and the second code generated from the updated template, and determines the difference between the first code and the second code with respect to the first change information. The reflected second change information is created. Then, the code generation device generates a third code reflecting a change made by a developer or the like on the second code based on the second change information. For this reason, according to one aspect of the present invention, the code generator can directly update the code maintaining the contents of the changes made by the developer or the like without directly comparing the template before the update and the template after the update. Can be generated from a template.

実施の形態1に係るコード生成装置の構成を示すブロック図。1 is a block diagram illustrating a configuration of a code generation device according to Embodiment 1. FIG. 実施の形態1に係るコード生成装置のハードウェア構成の一例を示す図。FIG. 3 is a diagram illustrating an example of a hardware configuration of the code generation device according to the first embodiment. 実施の形態1に係るコード生成装置の動作の一例を示すフローチャート。5 is a flowchart illustrating an example of an operation of the code generation device according to the first embodiment. 実施の形態1に係る旧テンプレート(ver.1)の一例を示す図。FIG. 5 shows an example of an old template (ver. 1) according to the first embodiment. 実施の形態1に係る旧データベース定義(ver.A)の一例を示す図。FIG. 6 shows an example of an old database definition (ver. A) according to the first embodiment. 実施の形態1に係るテンプレート変数を説明する表。10 is a table for explaining template variables according to the first embodiment. 実施の形態1に係るテンプレート変数を説明する表。10 is a table for explaining template variables according to the first embodiment. 実施の形態1に係る旧テンプレート(ver.1)のテンプレート変数へ具体値を割り当てた例を示す図。The figure which shows the example which allocated the specific value to the template variable of the old template (ver.1) which concerns on Embodiment 1. FIG. 実施の形態1に係る旧コード(ver.1A)の一例を示す図。FIG. 3 is a diagram illustrating an example of an old code (ver. 1A) according to the first embodiment. 実施の形態1に係るアノテーションを説明する表。7 is a table for explaining annotations according to the first embodiment. 実施の形態1に係る修正済旧コード(ver.1Aα)の一例を示す図。The figure which shows an example of the corrected old code (ver.1A (alpha)) which concerns on Embodiment 1. FIG. 実施の形態1に係る旧コード(ver.1A)の解析結果を示す図。The figure which shows the analysis result of the old code | cord | chord (ver.1A) which concerns on Embodiment 1. FIG. 実施の形態1に係る修正済旧コード(ver.1Aα)の解析結果を示す図。The figure which shows the analysis result of the corrected old code | cord | chord (ver.1A (alpha)) which concerns on Embodiment 1. FIG. 実施の形態1に係る修正情報(ver.1A−1Aα)の一例を示す図。The figure which shows an example of the correction information (ver.1A-1A (alpha)) which concerns on Embodiment 1. FIG. 実施の形態1に係る新テンプレート(ver.2)の一例を示す図。FIG. 6 shows an example of a new template (ver. 2) according to the first embodiment. 実施の形態1に係る新データベース定義(ver.B)の一例を示す図。FIG. 6 is a diagram showing an example of a new database definition (ver. B) according to the first embodiment. 実施の形態1に係る一時旧コード(ver.1B)の一例を示す図。The figure which shows an example of the temporary old code (ver.1B) which concerns on Embodiment 1. FIG. 実施の形態1に係る一時新コード(ver.2B)の一例を示す図。The figure which shows an example of the temporary new code | cord | chord (ver.2B) which concerns on Embodiment 1. FIG. 実施の形態1に係る一時旧コード(ver.1B)の解析結果を示す図。The figure which shows the analysis result of the temporary old code | cord | chord (ver.1B) which concerns on Embodiment 1. FIG. 実施の形態1に係る一時新コード(ver.2B)の解析結果を示す図。The figure which shows the analysis result of the temporary new code | cord | chord (ver.2B) which concerns on Embodiment 1. FIG. 実施の形態1に係る補正済修正情報(ver.1A−2Bα)の一例を示す図。The figure which shows an example of the corrected correction information (ver.1A-2B (alpha)) which concerns on Embodiment 1. FIG. 実施の形態1に係る修正済新コード(ver.2Bα)の一例を示す図。The figure which shows an example of the corrected new code | cord | chord (ver.2B (alpha)) which concerns on Embodiment 1. FIG.

以下、本発明の実施の形態について、図を用いて説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

実施の形態1.
図1は、本実施の形態に係るコード生成装置10の構成を示すブロック図である。
Embodiment 1 FIG.
FIG. 1 is a block diagram showing a configuration of a code generation device 10 according to the present embodiment.

図1において、コード生成装置10は、テンプレート記憶部11、データベース定義記憶部12、コード生成部13、変更入力部14、差異検出部15、変更情報作成部16、テンプレート更新部17、変更情報更新部18、コード更新部19を備える。   In FIG. 1, the code generation device 10 includes a template storage unit 11, a database definition storage unit 12, a code generation unit 13, a change input unit 14, a difference detection unit 15, a change information creation unit 16, a template update unit 17, and a change information update. A unit 18 and a code update unit 19 are provided.

また、図示していないが、コード生成装置10は、処理装置、記憶装置、入力装置、出力装置等のハードウェアを備える。ハードウェアはコード生成装置10の各部によって利用される。例えば、処理装置は、コード生成装置10の各部でデータや情報の演算、加工、読み取り、書き込み等を行うために利用される。記憶装置は、そのデータや情報を記憶するために利用される。また、入力装置は、そのデータや情報を入力するために、出力装置は、そのデータや情報を出力するために利用される。   Although not shown, the code generation device 10 includes hardware such as a processing device, a storage device, an input device, and an output device. The hardware is used by each unit of the code generation device 10. For example, the processing device is used to perform calculation, processing, reading, writing, and the like of data and information in each unit of the code generation device 10. The storage device is used to store the data and information. The input device is used for inputting the data and information, and the output device is used for outputting the data and information.

テンプレート記憶部11は、オブジェクト指向プログラミングにおけるクラスのコードのテンプレートを記憶装置により記憶する。具体的には、テンプレート記憶部11は、あるデータベースを構成する複数のテーブルのそれぞれに対応するクラスのコードのテンプレートとして、予め旧テンプレート21(ver.1)を記憶する。後述するように、その後、テンプレート記憶部11は、旧テンプレート21(ver.1)が更新された新テンプレート22(ver.2)を記憶する。このとき、旧テンプレート21(ver.1)が新テンプレート22(ver.2)で上書きされてもよいし、旧テンプレート21(ver.1)と新テンプレート22(ver.2)とが別々に保存されてもよい。   The template storage unit 11 stores a class code template in object-oriented programming using a storage device. Specifically, the template storage unit 11 stores the old template 21 (ver. 1) in advance as a template of a class code corresponding to each of a plurality of tables constituting a certain database. As will be described later, the template storage unit 11 stores the new template 22 (ver. 2) in which the old template 21 (ver. 1) is updated. At this time, the old template 21 (ver. 1) may be overwritten with the new template 22 (ver. 2), or the old template 21 (ver. 1) and the new template 22 (ver. 2) are stored separately. May be.

データベース定義記憶部12は、前述したデータベースを構成する複数のテーブルのそれぞれについて、テーブルの構成を示すデータベース定義を記憶装置により記憶する。具体的には、データベース定義記憶部12は、特定のテーブルの構成を示すデータベース定義として、予め旧データベース定義31(ver.A)を記憶する。後述するように、その後、データベース定義記憶部12は、旧データベース定義31(ver.A)が更新された新データベース定義32(ver.B)を記憶する。このとき、旧データベース定義31(ver.A)が新データベース定義32(ver.B)で上書きされてもよいし、旧データベース定義31(ver.A)と新データベース定義32(ver.B)とが別々に保存されてもよい。   The database definition storage unit 12 stores, for each of the plurality of tables constituting the above-described database, a database definition indicating the table configuration by the storage device. Specifically, the database definition storage unit 12 stores an old database definition 31 (ver. A) in advance as a database definition indicating the configuration of a specific table. As will be described later, the database definition storage unit 12 stores a new database definition 32 (ver. B) in which the old database definition 31 (ver. A) is updated. At this time, the old database definition 31 (ver. A) may be overwritten by the new database definition 32 (ver. B), or the old database definition 31 (ver. A) and the new database definition 32 (ver. B) May be stored separately.

コード生成部13は、テンプレート記憶部11に記憶されたテンプレートとデータベース定義記憶部12に記憶されたデータベース定義とから、前述した特定のテーブルに対応するクラスのコードを処理装置により生成する。具体的には、まず、コード生成部13は、旧テンプレート21(ver.1)と旧データベース定義31(ver.A)とから、旧コード51(ver.1A)(第1コードの一例)を生成する。後述するように、その後、コード生成部13は、旧テンプレート21(ver.1)と新データベース定義32(ver.B)とから、一時旧コード53(ver.1B)を生成する。また、コード生成部13は、新テンプレート22(ver.2)と新データベース定義32(ver.B)とから、一時新コード54(ver.2B)(第2コードの一例)を生成する。   The code generation unit 13 generates a code of a class corresponding to the specific table described above from the template stored in the template storage unit 11 and the database definition stored in the database definition storage unit 12 by the processing device. Specifically, first, the code generation unit 13 obtains the old code 51 (ver. 1A) (an example of the first code) from the old template 21 (ver. 1) and the old database definition 31 (ver. A). Generate. As will be described later, the code generation unit 13 thereafter generates a temporary old code 53 (ver. 1B) from the old template 21 (ver. 1) and the new database definition 32 (ver. B). Further, the code generation unit 13 generates a temporary new code 54 (ver. 2B) (an example of a second code) from the new template 22 (ver. 2) and the new database definition 32 (ver. B).

変更入力部14は、コード生成部13により生成されたコードに対する変更の入力を入力装置により受け付け、当該コードに対し入力された変更を反映したコードを処理装置により生成する。具体的には、変更入力部14は、旧コード51(ver.1A)に対する変更の入力を開発者等から受け付け、この変更を反映した修正済旧コード52(ver.1Aα)(第4コードの一例)を生成する。   The change input unit 14 receives an input of a change to the code generated by the code generation unit 13 by the input device, and generates a code reflecting the change input to the code by the processing device. Specifically, the change input unit 14 receives an input of a change to the old code 51 (ver. 1A) from a developer or the like, and the modified old code 52 (ver. 1Aα) (the fourth code of the fourth code) reflecting this change. Example).

差異検出部15は、コード生成部13により生成されたコードと変更入力部14により生成されたコードとの差異や、コード生成部13により生成された2つのコードの差異を処理装置により検出する。具体的には、差異検出部15は、旧コード51(ver.1A)と修正済旧コード52(ver.1Aα)との差異を検出する。また、差異検出部15は、旧コード51(ver.1A)と一時新コード54(ver.2B)との差異を検出する。あるいは、差異検出部15は、一時旧コード53(ver.1B)と一時新コード54(ver.2B)との差異を検出する。差異検出部15は、旧コード51(ver.1A)と一時旧コード53(ver.1B)との差異を検出してもよい。   The difference detection unit 15 detects the difference between the code generated by the code generation unit 13 and the code generated by the change input unit 14 or the difference between the two codes generated by the code generation unit 13 by the processing device. Specifically, the difference detection unit 15 detects a difference between the old code 51 (ver. 1A) and the modified old code 52 (ver. 1Aα). Further, the difference detection unit 15 detects a difference between the old code 51 (ver. 1A) and the temporary new code 54 (ver. 2B). Alternatively, the difference detection unit 15 detects a difference between the temporary old code 53 (ver. 1B) and the temporary new code 54 (ver. 2B). The difference detection unit 15 may detect a difference between the old code 51 (ver. 1A) and the temporary old code 53 (ver. 1B).

変更情報作成部16は、変更入力部14に入力された変更の内容を示す修正情報を処理装置により作成する。具体的には、変更情報作成部16は、差異検出部15により検出された旧コード51(ver.1A)と修正済旧コード52(ver.1Aα)との差異を示す修正情報41(ver.1A−1Aα)(第1変更情報の一例)を作成する。なお、コードを開発するエディタがある場合、変更入力部14が、エディタで旧コード51(ver.1A)が編集(変更)された履歴をコード変更箇所として記憶装置により保持し、変更情報作成部16が、このコード変更箇所を参照して修正情報41(ver.1A−1Aα)を生成してもよい。この場合、変更入力部14が修正済旧コード52(ver.1Aα)を生成する処理は不要となる。   The change information creation unit 16 creates correction information indicating the content of the change input to the change input unit 14 by the processing device. Specifically, the change information creation unit 16 includes the correction information 41 (ver. 1) indicating the difference between the old code 51 (ver. 1A) detected by the difference detection unit 15 and the corrected old code 52 (ver. 1Aα). 1A-1Aα) (an example of first change information). If there is an editor that develops code, the change input unit 14 holds the history of editing (changing) the old code 51 (ver. 1A) in the editor as a code change location by the storage device, and the change information creating unit 16 may generate correction information 41 (ver. 1A-1Aα) with reference to the code change portion. In this case, the process in which the change input unit 14 generates the corrected old code 52 (ver. 1Aα) is not necessary.

テンプレート更新部17は、テンプレート記憶部11に記憶されたテンプレートとデータベース定義記憶部12に記憶されたデータベース定義とのうち、少なくともいずれかを処理装置により更新する。そして、テンプレート更新部17は、テンプレート記憶部11に記憶されたテンプレート(更新されていれば、更新後のテンプレート)とデータベース定義記憶部12に記憶されたデータベース定義(更新されていれば、更新後のデータベース定義)とから、前述した特定のテーブルに対応するクラスのコードをコード生成部13に生成(再生成)させる。具体的には、テンプレート更新部17は、旧データベース定義31(ver.A)を新データベース定義32(ver.B)に更新し、旧テンプレート21(ver.1)と新データベース定義32(ver.B)とから、一時旧コード53(ver.1B)をコード生成部13に生成させる。また、テンプレート更新部17は、旧テンプレート21(ver.1)を新テンプレート22(ver.2)に更新し、新テンプレート22(ver.2)と新データベース定義32(ver.B)とから、一時新コード54(ver.2B)をコード生成部13に生成させる。なお、テンプレート更新部17は、新テンプレート22(ver.2)と旧データベース定義31(ver.A)とから、図示していない一時コード(ver.2A)をコード生成部13に生成させてもよい。この場合、差異検出部15は、旧コード51(ver.1A)と、この一時コード(ver.2A)との差異を検出してもよい。   The template update unit 17 updates at least one of the template stored in the template storage unit 11 and the database definition stored in the database definition storage unit 12 by the processing device. The template update unit 17 then updates the template stored in the template storage unit 11 (updated template if updated) and the database definition stored in the database definition storage unit 12 (updated if updated). Code generation unit 13 generates (regenerates) the code of the class corresponding to the specific table described above. Specifically, the template update unit 17 updates the old database definition 31 (ver. A) to the new database definition 32 (ver. B), and the old template 21 (ver. 1) and the new database definition 32 (ver. A). B), the code generation unit 13 generates the temporary old code 53 (ver. 1B). Further, the template updating unit 17 updates the old template 21 (ver. 1) to the new template 22 (ver. 2), and from the new template 22 (ver. 2) and the new database definition 32 (ver. B), The code generation unit 13 is made to generate the temporary new code 54 (ver. 2B). The template update unit 17 may cause the code generation unit 13 to generate a temporary code (ver. 2A) (not shown) from the new template 22 (ver. 2) and the old database definition 31 (ver. A). Good. In this case, the difference detection unit 15 may detect a difference between the old code 51 (ver. 1A) and the temporary code (ver. 2A).

変更情報更新部18は、変更情報作成部16により作成された修正情報に対し差異検出部15により検出された差異を反映した修正情報を処理装置により作成する。具体的には、変更情報更新部18は、修正情報41(ver.1A−1Aα)に対し旧コード51(ver.1A)と一時新コード54(ver.2B)との差異を反映した補正済修正情報42(ver.1A−2Bα)(第2変更情報の一例)を作成する。このとき、変更情報更新部18は、例えば旧コード51(ver.1A)と一時新コード54(ver.2B)との差異に合わせて修正情報41(ver.1A−1Aα)を補正することにより、補正済修正情報42(ver.1A−2Bα)を作成する。あるいは、変更情報更新部18は、例えば旧コード51(ver.1A)と一時旧コード53(ver.1B)との差異に合わせて修正情報41(ver.1A−1Aα)を補正した後、さらに、一時旧コード53(ver.1B)と一時新コード54(ver.2B)との差異に合わせた補正をすることにより(補正の順序は逆でもよい)、補正済修正情報42(ver.1A−2Bα)を作成する。あるいは、変更情報更新部18は、例えば一時旧コード53(ver.1B)と一時新コード54(ver.2B)との差異に合わせて修正情報41(ver.1A−1Aα)を補正した後、さらに、旧データベース定義31(ver.A)と新データベース定義32(ver.B)との差異を分析し、その分析結果に合わせた補正をすることにより(補正の順序は逆でもよい)、補正済修正情報42(ver.1A−2Bα)を作成する。あるいは、変更情報更新部18は、例えば旧コード51(ver.1A)と、前述した一時コード(ver.2A)との差異に合わせて修正情報41(ver.1A−1Aα)を補正した後、さらに、旧データベース定義31(ver.A)と新データベース定義32(ver.B)との差異を分析し、その分析結果に合わせた補正をすることにより(補正の順序は逆でもよい)、補正済修正情報42(ver.1A−2Bα)を作成する。   The change information update unit 18 creates correction information that reflects the difference detected by the difference detection unit 15 with respect to the correction information created by the change information creation unit 16 by the processing device. Specifically, the change information update unit 18 corrects the correction information 41 (ver. 1A-1Aα) reflecting the difference between the old code 51 (ver. 1A) and the temporary new code 54 (ver. 2B). Correction information 42 (ver. 1A-2Bα) (an example of second change information) is created. At this time, the change information update unit 18 corrects the correction information 41 (ver. 1A-1Aα) according to the difference between the old code 51 (ver. 1A) and the temporary new code 54 (ver. 2B), for example. , Corrected correction information 42 (ver. 1A-2Bα) is created. Alternatively, the change information update unit 18 corrects the correction information 41 (ver. 1A-1Aα) in accordance with the difference between the old code 51 (ver. 1A) and the temporary old code 53 (ver. 1B), for example. By correcting the difference between the temporary old code 53 (ver. 1B) and the temporary new code 54 (ver. 2B) (the order of correction may be reversed), corrected correction information 42 (ver. 1A) -2Bα). Alternatively, the change information update unit 18 corrects the correction information 41 (ver. 1A-1Aα) according to the difference between the temporary old code 53 (ver. 1B) and the temporary new code 54 (ver. 2B), for example. Further, the difference between the old database definition 31 (ver. A) and the new database definition 32 (ver. B) is analyzed, and correction is made according to the analysis result (the order of correction may be reversed). Completed modification information 42 (ver. 1A-2Bα) is created. Alternatively, the change information update unit 18 corrects the correction information 41 (ver. 1A-1Aα) according to the difference between the old code 51 (ver. 1A) and the temporary code (ver. 2A) described above, for example, Further, the difference between the old database definition 31 (ver. A) and the new database definition 32 (ver. B) is analyzed, and correction is made according to the analysis result (the order of correction may be reversed). Completed modification information 42 (ver. 1A-2Bα) is created.

コード更新部19は、変更情報更新部18により作成された修正情報に基づいて、コード生成部13により更新後のテンプレートと更新後のデータベース定義とから生成されたコードに対し変更入力部14に入力された変更を反映したコードを処理装置により生成する。具体的には、コード更新部19は、補正済修正情報42(ver.1A−2Bα)に基づいて、一時新コード54(ver.2B)に対し変更入力部14に入力された変更を反映した修正済新コード55(ver.2Bα)(第3コードの一例)を生成する。このとき、コード更新部19は、例えば旧コード51(ver.1A)に補正済修正情報42(ver.1A−2Bα)を適用することにより、修正済新コード55(ver.2Bα)を生成する。あるいは、コード更新部19は、補正済修正情報42(ver.1A−2Bα)と旧テンプレート21(ver.1)と新データベース定義32(ver.B)とから、修正済新コード55(ver.2Bα)を新たに生成する。   The code update unit 19 inputs the code generated from the updated template and the updated database definition by the code generation unit 13 to the change input unit 14 based on the correction information created by the change information update unit 18. A code reflecting the changed change is generated by the processing device. Specifically, the code update unit 19 reflects the change input to the change input unit 14 with respect to the temporary new code 54 (ver. 2B) based on the corrected correction information 42 (ver. 1A-2Bα). A corrected new code 55 (ver. 2Bα) (an example of the third code) is generated. At this time, the code update unit 19 generates the corrected new code 55 (ver. 2Bα) by applying the corrected correction information 42 (ver. 1A-2Bα) to the old code 51 (ver. 1A), for example. . Alternatively, the code update unit 19 uses the corrected new information 55 (ver. 1A-2Bα), the old template 21 (ver. 1), and the new database definition 32 (ver. B), to the corrected new code 55 (ver. 1). 2Bα) is newly generated.

なお、本実施の形態では、コード生成装置10が、複数のテーブルのそれぞれに対応するクラスのコードを自動生成するが、他の種類のクラスのコードを自動生成してもよい。この場合、テンプレート記憶部11は、当該種類のクラスのコードを生成するためのテンプレートを記憶する。コード生成部13は、テンプレート記憶部11に記憶されたテンプレートから、特定のクラスのコードを処理装置により生成する。データベース定義記憶部12は不要となる。   In the present embodiment, the code generation device 10 automatically generates a code of a class corresponding to each of a plurality of tables. However, a code of another type of class may be automatically generated. In this case, the template storage unit 11 stores a template for generating a code of the type of class. The code generation unit 13 generates a code of a specific class from the template stored in the template storage unit 11 by the processing device. The database definition storage unit 12 becomes unnecessary.

図2は、コード生成装置10のハードウェア構成の一例を示す図である。   FIG. 2 is a diagram illustrating an example of a hardware configuration of the code generation device 10.

図2において、コード生成装置10は、コンピュータであり、LCD71(Liquid・Crystal・Display)、キーボード72(K/B)、マウス73、FDD74(Flexible・Disk・Drive)、CDD75(Compact・Disc・Drive)、プリンタ76といったハードウェアデバイスを備えている。これらのハードウェアデバイスはケーブルや信号線で接続されている。LCD71の代わりに、CRT(Cathode・Ray・Tube)、あるいは、その他の表示装置が用いられてもよい。マウス73の代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。   In FIG. 2, the code generation device 10 is a computer, and includes an LCD 71 (Liquid / Crystal / Display), a keyboard 72 (K / B), a mouse 73, an FDD 74 (Flexible / Disk / Drive), and a CDD 75 (Compact / Disk / Drive). ) And a hardware device such as a printer 76. These hardware devices are connected by cables and signal lines. Instead of the LCD 71, a CRT (Cathode / Ray / Tube) or other display device may be used. Instead of the mouse 73, a touch panel, a touch pad, a trackball, a pen tablet, or other pointing devices may be used.

コード生成装置10は、プログラムを実行するCPU81(Central・Processing・Unit)を備えている。CPU81は、処理装置の一例である。CPU81は、バス82を介してROM83(Read・Only・Memory)、RAM84(Random・Access・Memory)、通信ボード85、LCD71、キーボード72、マウス73、FDD74、CDD75、プリンタ76、HDD90(Hard・Disk・Drive)と接続され、これらのハードウェアデバイスを制御する。HDD90の代わりに、フラッシュメモリ、光ディスク装置、メモリカードリーダライタ、あるいは、その他の記録媒体が用いられてもよい。   The code generation device 10 includes a CPU 81 (Central Processing Unit) that executes a program. The CPU 81 is an example of a processing device. The CPU 81 is connected to a ROM 83 (Read / Only / Memory), a RAM 84 (Random / Access / Memory), a communication board 85, an LCD 71, a keyboard 72, a mouse 73, an FDD 74, a CDD 75, a printer 76, an HDD 90 (Hard / Disk) via a bus 82. Connected with Drive) to control these hardware devices. Instead of the HDD 90, a flash memory, an optical disk device, a memory card reader / writer, or other recording medium may be used.

RAM84は、揮発性メモリの一例である。ROM83、FDD74、CDD75、HDD90は、不揮発性メモリの一例である。これらは、記憶装置の一例である。通信ボード85、キーボード72、マウス73、FDD74、CDD75は、入力装置の一例である。また、通信ボード85、LCD71、プリンタ76は、出力装置の一例である。   The RAM 84 is an example of a volatile memory. ROM83, FDD74, CDD75, HDD90 is an example of a non-volatile memory. These are examples of the storage device. The communication board 85, the keyboard 72, the mouse 73, the FDD 74, and the CDD 75 are examples of input devices. The communication board 85, the LCD 71, and the printer 76 are examples of output devices.

通信ボード85は、LAN(Local・Area・Network)等に接続されている。通信ボード85は、LANに限らず、IP−VPN(Internet・Protocol・Virtual・Private・Network)、広域LAN、ATM(Asynchronous・Transfer・Mode)ネットワークといったWAN(Wide・Area・Network)、あるいは、インターネットに接続されていても構わない。LAN、WAN、インターネットは、ネットワークの一例である。   The communication board 85 is connected to a LAN (Local / Area / Network) or the like. The communication board 85 is not limited to a LAN, but is an IP-VPN (Internet, Protocol, Private, Network), a wide area LAN, an ATM (Asynchronous / Transfer / Mode) network, a WAN (Wide / Area / Network), or the Internet. It does not matter if it is connected to. LAN, WAN, and the Internet are examples of networks.

HDD90には、オペレーティングシステム91(OS)、ウィンドウシステム92、プログラム群93、ファイル群94が記憶されている。プログラム群93のプログラムは、CPU81、オペレーティングシステム91、ウィンドウシステム92により実行される。プログラム群93には、本実施の形態の説明において「〜部」として説明する機能を実行するプログラムが含まれている。プログラムは、CPU81により読み出され実行される。ファイル群94には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ID(識別子)」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として含まれている。「〜ファイル」や「〜データベース」や「〜テーブル」は、RAM84やHDD90等の記録媒体に記憶される。RAM84やHDD90等の記録媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してCPU81によりメインメモリやキャッシュメモリに読み出され、抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったCPU81の処理(動作)に用いられる。抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったCPU81の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。   The HDD 90 stores an operating system 91 (OS), a window system 92, a program group 93, and a file group 94. The programs in the program group 93 are executed by the CPU 81, the operating system 91, and the window system 92. The program group 93 includes a program for executing a function described as “˜unit” in the description of the present embodiment. The program is read and executed by the CPU 81. The file group 94 includes data, information, and signal values described as “˜data”, “˜information”, “˜ID (identifier)”, “˜flag”, and “˜result” in the description of the present embodiment. And variable values and parameters are included as items of “˜file”, “˜database”, and “˜table”. The “˜file”, “˜database”, and “˜table” are stored in a recording medium such as the RAM 84 or the HDD 90. Data, information, signal values, variable values, and parameters stored in a recording medium such as the RAM 84 and the HDD 90 are read out to the main memory and the cache memory by the CPU 81 via a read / write circuit, and extracted, searched, referenced, compared, and calculated. It is used for processing (operation) of the CPU 81 such as calculation, control, output, printing, and display. During processing of the CPU 81 such as extraction, search, reference, comparison, calculation, calculation, control, output, printing, and display, data, information, signal values, variable values, and parameters are temporarily stored in the main memory, cache memory, and buffer memory. Remembered.

本実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示す。データや信号は、RAM84等のメモリ、FDD74のフレキシブルディスク(FD)、CDD75のコンパクトディスク(CD)、HDD90の磁気ディスク、光ディスク、DVD(Digital・Versatile・Disc)、あるいは、その他の記録媒体に記録される。また、データや信号は、バス82、信号線、ケーブル、あるいは、その他の伝送媒体により伝送される。   The arrows in the block diagrams and flowcharts used in the description of this embodiment mainly indicate input / output of data and signals. Data and signals are recorded in a memory such as RAM 84, FDD 74 flexible disk (FD), CDD 75 compact disk (CD), HDD 90 magnetic disk, optical disk, DVD (Digital Versatile Disc), or other recording media. Is done. Data and signals are transmitted by a bus 82, signal lines, cables, or other transmission media.

本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ROM83に記憶されたファームウェアで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアのみ、あるいは、素子、デバイス、基板、配線といったハードウェアのみで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアとハードウェアとの組み合わせ、あるいは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、フレキシブルディスク、コンパクトディスク、磁気ディスク、光ディスク、DVD等の記録媒体に記憶される。プログラムはCPU81により読み出され、CPU81により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、プログラムは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。   In the description of the present embodiment, what is described as “to part” may be “to circuit”, “to device”, “to device”, and “to step”, “to process”, “to”. ~ Procedure "," ~ process ". That is, what is described as “˜unit” may be realized by firmware stored in the ROM 83. Alternatively, what is described as “˜unit” may be realized only by software, or only by hardware such as an element, a device, a board, and wiring. Alternatively, what is described as “to part” may be realized by a combination of software and hardware, or a combination of software, hardware and firmware. Firmware and software are stored as programs in a recording medium such as a flexible disk, a compact disk, a magnetic disk, an optical disk, and a DVD. The program is read by the CPU 81 and executed by the CPU 81. That is, the program causes the computer to function as “to part” described in the description of the present embodiment. Or a program makes a computer perform the procedure and method of "-part" described by description of this Embodiment.

図3は、コード生成装置10の動作(本実施の形態に係るコード生成方法、本実施の形態に係るプログラムの処理手順)の一例を示すフローチャートである。   FIG. 3 is a flowchart showing an example of the operation of the code generation device 10 (code generation method according to the present embodiment, program processing procedure according to the present embodiment).

前述したように、コード生成装置10が旧テンプレート21(ver.1)、旧データベース定義31(ver.A)から旧コード51(ver.1A)を生成した後に、開発者が旧コード51(ver.1A)を変更し、修正済旧コード52(ver.1Aα)を作成する。その後、旧テンプレート21(ver.1)が新テンプレート22(ver.2)に、旧データベース定義31(ver.A)が新データベース定義32(ver.B)に変更される。図3は、このときにコード生成装置10が修正済新コード55(ver.2Bα)を生成する動作(コードを再生成する動作)を示している。   As described above, after the code generation device 10 generates the old code 51 (ver. 1A) from the old template 21 (ver. 1) and the old database definition 31 (ver. A), the developer uses the old code 51 (ver. .1A) is changed to create a modified old code 52 (ver.1Aα). Thereafter, the old template 21 (ver. 1) is changed to the new template 22 (ver. 2), and the old database definition 31 (ver. A) is changed to the new database definition 32 (ver. B). FIG. 3 shows an operation (an operation for regenerating the code) in which the code generation device 10 generates the corrected new code 55 (ver. 2Bα) at this time.

ここでは、テンプレート記憶部11が、図4に示す旧テンプレート21(ver.1)を記憶装置により記憶するものとする。また、データベース定義記憶部12が、図5に示す旧データベース定義31(ver.A)を記憶装置により記憶するものとする。   Here, it is assumed that the template storage unit 11 stores the old template 21 (ver. 1) shown in FIG. Further, it is assumed that the database definition storage unit 12 stores the old database definition 31 (ver. A) shown in FIG.

テンプレートは、図4のように、テーブル定義によって動的に変化する部分(「$」から始まるテンプレート変数)と、静的な部分から構成される。データベース定義は、図5のようなテーブル定義や制約である。テンプレート変数にはテーブル定義の情報が割り当てられ、コードが生成される。図4のテンプレートで使用されている変数の説明を図6及び図7に示す。また、図5のORDERテーブルのテーブル定義から、図4のテンプレートを利用してコードを生成する際にテンプレート変数へ値が割り当てられる様子を図8に示す。このように旧テンプレート21(ver.1)のテンプレート変数へ割り当てられる値は、予め入力装置を介して入力され、記憶装置に記憶される。   As shown in FIG. 4, the template is composed of a part that dynamically changes according to the table definition (template variable starting from “$”) and a static part. The database definition is a table definition or constraint as shown in FIG. Table definition information is assigned to the template variable, and code is generated. The explanation of the variables used in the template of FIG. 4 is shown in FIGS. FIG. 8 shows how values are assigned to template variables when a code is generated using the template of FIG. 4 from the table definition of the ORDER table of FIG. Thus, the value assigned to the template variable of the old template 21 (ver. 1) is input in advance via the input device and stored in the storage device.

コード生成部13は、旧テンプレート21(ver.1)のテンプレート変数へ割り当てられる値を記憶装置から読み出す。そして、コード生成部13は、読み出した値と旧テンプレート21(ver.1)と旧データベース定義31(ver.A)とから、図9に示す旧コード51(ver.1A)を処理装置により生成する。   The code generation unit 13 reads a value assigned to the template variable of the old template 21 (ver. 1) from the storage device. Then, the code generation unit 13 generates the old code 51 (ver. 1A) shown in FIG. 9 from the read value, the old template 21 (ver. 1), and the old database definition 31 (ver. A) by the processing device. To do.

コードは、図9のようなテーブルのレコードを格納するためのコードである。図9のコードは、図4のテンプレートと、図5のORDERテーブルの定義から生成されたものである。コードには、ステートメントとアノテーションが含まれる。ステートメントには、クラス宣言やメンバ変数宣言がある。クラス宣言とメンバ変数宣言には、それぞれアノテーションが付与される。2つのステートメントの間に記述されたアノテーションは、当該2つのステートメントのうち下側のステートメントを修飾する。即ち、アノテーションは、そのすぐ下のステートメントを修飾する。図9のコードで使用されているアノテーションの説明を図10に示す。図10のように、各アノテーションはプロパティを持ち、各プロパティにはアノテーションの状態を示す属性値とテーブル定義に対応する識別値がある。テーブル定義に対応する識別値により、アノテーションはクラス名で一意に識別される。例えば、@Column(name=“O_ID”)は、Orderクラスには2つ存在しない。name属性はカラム名を表しており、同じカラム名は同一テーブルに存在しないというデータベースの制約に基づくからである。@ManyToOneアノテーションも、targetEntity、name、referencedColumnNameプロパティにより一意に決定する。これも@ManyToOneアノテーションが対応する外部キー制約の規則に基づくからである。このように、識別値となるプロパティからアノテーションが特定でき、アノテーションが特定されるとそれが付与されるクラス宣言、メンバ変数宣言も特定される。   The code is a code for storing the record of the table as shown in FIG. The code in FIG. 9 is generated from the template in FIG. 4 and the definition of the ORDER table in FIG. The code includes statements and annotations. Statements include class declarations and member variable declarations. Each class declaration and member variable declaration is annotated. An annotation described between two statements qualifies the lower statement of the two statements. That is, the annotation modifies the statement immediately below it. An explanation of the annotation used in the code of FIG. 9 is shown in FIG. As shown in FIG. 10, each annotation has a property, and each property has an attribute value indicating the state of the annotation and an identification value corresponding to the table definition. An annotation is uniquely identified by a class name by an identification value corresponding to the table definition. For example, two @Columns (name = “O_ID”) do not exist in the Order class. This is because the name attribute represents a column name and is based on a database restriction that the same column name does not exist in the same table. The @ManyToOne annotation is also uniquely determined by the targetEntity, name, and referencedColumnName properties. This is also because the @ManyToOne annotation is based on the corresponding foreign key constraint rules. In this way, an annotation can be specified from a property serving as an identification value. When an annotation is specified, a class declaration and member variable declaration to which the annotation is assigned are also specified.

変更入力部14は、旧コード51(ver.1A)に対する変更の入力を開発者から入力装置により受け付け、図11に示す修正済旧コード52(ver.1Aα)を処理装置により生成する。   The change input unit 14 receives an input of a change to the old code 51 (ver. 1A) from the developer by the input device, and generates the corrected old code 52 (ver. 1Aα) shown in FIG. 11 by the processing device.

図11のコードでは、「o_i_num」が「o_i_number」に修正され、「FetchType.EAGER」が「FetchType.LAZY」に修正されている。   In the code of FIG. 11, “o_i_num” is corrected to “o_i_number”, and “FetchType.EAGER” is corrected to “FetchType.LAZY”.

図3のステップS11(コード変更箇所抽出処理)において、差異検出部15は、旧コード51(ver.1A)と修正済旧コード52(ver.1Aα)との差異を処理装置により検出する。   In step S11 (code change location extraction processing) in FIG. 3, the difference detection unit 15 detects a difference between the old code 51 (ver. 1A) and the modified old code 52 (ver. 1Aα) by the processing device.

このとき、差異検出部15は、2つのコードの変更箇所を抽出する。具体的には、差異検出部15は、コードからクラス宣言とメンバ変数宣言、それに付与されるアノテーションとそのプロパティを抽出し、図12及び図13に示す解析結果を生成する。図12は、旧コード51(ver.1A)を解析した結果を示している。カテゴリは、クラス宣言やメンバ変数宣言といった構文の種類である。図12では、クラス宣言は「CLASS」、メンバ変数宣言は「MEMBER」である。識別子は、クラス名、メンバ変数名である。アノテーション名、アノテーションに含まれるプロパティ、その値も抽出される。図12で、識別値にマークされているプロパティが識別値カラムである。図13は、修正済旧コード52(ver.1Aα)を解析した結果を示している。差異検出部15は、旧コード51(ver.1A)、修正済旧コード52(ver.1Aα)を解析し、図12及び図13の解析結果を生成し、アノテーションの識別値に基づいて各アノテーションの解析結果を照合し、コードの変更点、アノテーションの属性値の変更点を抽出する。図12及び図13の場合では、@Columnアノテーションの識別値「O_I_NUM」が付与されるメンバ変数名「o_i_num」が「o_i_number」に変更されたこと、@ManyToOneアノテーションの属性値「fetch」が「FetchType.EAGER」から「FetchType.LAZY」に変更されたことを抽出する。   At this time, the difference detection unit 15 extracts the changed portions of the two codes. Specifically, the difference detection unit 15 extracts a class declaration and a member variable declaration from the code, an annotation added to the declaration, and a property thereof, and generates an analysis result shown in FIGS. FIG. 12 shows the result of analyzing the old code 51 (ver. 1A). A category is a type of syntax such as a class declaration or member variable declaration. In FIG. 12, the class declaration is “CLASS” and the member variable declaration is “MEMBER”. The identifier is a class name or a member variable name. Annotation name, property included in annotation, and its value are also extracted. In FIG. 12, the property marked in the identification value is the identification value column. FIG. 13 shows the result of analyzing the modified old code 52 (ver. 1Aα). The difference detection unit 15 analyzes the old code 51 (ver. 1A) and the modified old code 52 (ver. 1Aα), generates the analysis results of FIGS. 12 and 13, and generates each annotation based on the annotation identification value. The analysis results are collated, and code changes and annotation attribute value changes are extracted. 12 and 13, the member variable name “o_i_num” to which the identification value “O_I_NUM” of the @Column annotation is assigned is changed to “o_i_number”, and the attribute value “fetch” of the @ManyToOne annotation is “FetchType”. .EAGER ”is changed to“ FetchType.LAZY ”.

変更情報作成部16は、差異検出部15により検出された旧コード51(ver.1A)と修正済旧コード52(ver.1Aα)との差異から、図14に示す修正情報41(ver.1A−1Aα)を処理装置により作成する。   From the difference between the old code 51 (ver. 1A) detected by the difference detection unit 15 and the corrected old code 52 (ver. 1Aα), the change information creation unit 16 corrects the correction information 41 (ver. 1A) shown in FIG. −1Aα) is created by the processing device.

修正情報は、図14のように、コードのどの部分が変更されたかを表す情報である。図14の修正情報41(ver.1A−1Aα)は、図12と図13の解析結果から旧コード51(ver.1A)と修正済旧コード52(ver.1Aα)の変更箇所を表したものである。この修正情報41(ver.1A−1Aα)と、旧テンプレート21(ver.1)、旧データベース定義31(ver.A)が与えられると、コード更新部19は、修正済旧コード52(ver.1Aα)を自動生成することができる。   The correction information is information indicating which part of the code has been changed as shown in FIG. The correction information 41 (ver. 1A-1Aα) in FIG. 14 represents the changed part of the old code 51 (ver. 1A) and the corrected old code 52 (ver. 1Aα) from the analysis results in FIGS. It is. When the correction information 41 (ver. 1A-1Aα), the old template 21 (ver. 1), and the old database definition 31 (ver. A) are given, the code update unit 19 causes the corrected old code 52 (ver. 1Aα) can be automatically generated.

図3のステップS12(比較用コード生成処理)において、テンプレート更新部17は、旧テンプレート21(ver.1)を、図15に示す新テンプレート22(ver.2)に、旧データベース定義31(ver.A)を、図16に示す新データベース定義32(ver.B)に処理装置により更新する。そして、テンプレート更新部17は、旧テンプレート21(ver.1)と新データベース定義32(ver.B)とから、図17に示す一時旧コード53(ver.1B)をコード生成部13に生成させる。また、テンプレート更新部17は、新テンプレート22(ver.2)と新データベース定義32(ver.B)とから、図18に示す一時新コード54(ver.2B)をコード生成部13に生成させる。   In step S12 (comparison code generation processing) in FIG. 3, the template update unit 17 converts the old template 21 (ver. 1) into the new template 22 (ver. 2) shown in FIG. .A) is updated to the new database definition 32 (ver. B) shown in FIG. Then, the template update unit 17 causes the code generation unit 13 to generate the temporary old code 53 (ver. 1B) shown in FIG. 17 from the old template 21 (ver. 1) and the new database definition 32 (ver. B). . Further, the template update unit 17 causes the code generation unit 13 to generate the temporary new code 54 (ver. 2B) shown in FIG. 18 from the new template 22 (ver. 2) and the new database definition 32 (ver. B). .

図3のステップS13(テンプレート変更箇所抽出処理)において、差異検出部15は、一時旧コード53(ver.1B)と一時新コード54(ver.2B)との差異を処理装置により検出する。   In step S13 (template change location extraction processing) in FIG. 3, the difference detection unit 15 detects a difference between the temporary old code 53 (ver. 1B) and the temporary new code 54 (ver. 2B) by the processing device.

このとき、差異検出部15は、一時旧コード53(ver.1B)を解析し、図19に示す解析結果を作成する。また、差異検出部15は、一時新コード54(ver.2B)を解析し、図20に示す解析結果を作成する。そして、差異検出部15は、解析結果を照合し、メンバ変数名「item」が「item From OsIIdAndIId」に変更されていることをテンプレート変更箇所として抽出する。   At this time, the difference detection unit 15 analyzes the temporary old code 53 (ver. 1B) and creates the analysis result shown in FIG. Further, the difference detection unit 15 analyzes the temporary new code 54 (ver. 2B) and creates the analysis result shown in FIG. Then, the difference detection unit 15 collates the analysis results and extracts that the member variable name “item” has been changed to “item From OsIIdAndIId” as a template change portion.

図3のステップS14(データベース定義変更箇所抽出処理)において、変更情報更新部18は、旧データベース定義31(ver.A)と新データベース定義32(ver.B)との差異を処理装置により分析する。   In step S14 (database definition change location extraction processing) in FIG. 3, the change information update unit 18 analyzes the difference between the old database definition 31 (ver. A) and the new database definition 32 (ver. B) by the processing device. .

このとき、変更情報更新部18は、旧データベース定義31(ver.A)、新データベース定義32(ver.B)から、図16のようにテーブル名が「ORDER」から「ORDERS」へ変更されていることをデータベース定義変更箇所として抽出する。   At this time, the change information update unit 18 changes the table name from “ORDER” to “ORDERS” from the old database definition 31 (ver. A) and the new database definition 32 (ver. B) as shown in FIG. Are extracted as database definition changes.

図3のステップS15(修正情報補正処理)において、変更情報更新部18は、差異検出部15により検出された一時旧コード53(ver.1B)と一時新コード54(ver.2B)との差異、及び、旧データベース定義31(ver.A)と新データベース定義32(ver.B)との差異を分析した結果から、修正情報41(ver.1A−1Aα)を補正して、図21に示す補正済修正情報42(ver.1A−2Bα)を処理装置により作成する。   In step S15 (correction information correction processing) in FIG. 3, the change information update unit 18 determines the difference between the temporary old code 53 (ver. 1B) and the temporary new code 54 (ver. 2B) detected by the difference detection unit 15. FIG. 21 shows the correction information 41 (ver. 1A-1Aα) corrected from the result of analyzing the difference between the old database definition 31 (ver. A) and the new database definition 32 (ver. B). The corrected correction information 42 (ver. 1A-2Bα) is created by the processing device.

このとき、変更情報更新部18は、修正情報41(ver.1A−1Aα)に対して、まずテンプレート変更箇所を反映し、「item」を「itemFromOsIIdAndIId」に補正し、次にデータベース定義変更箇所を反映し、「Order」を「Orders」に補正する。これにより、変更情報更新部18は、「Orders」クラスの「itemFromOsIIdAndIId」に付与しているアノテーションを修正するための補正済修正情報42(ver.1A−2Bα)を作成することができる。   At this time, the change information update unit 18 first reflects the template change location to the correction information 41 (ver. 1A-1Aα), corrects “item” to “itemFromOsIIdAndIId”, and then changes the database definition change location. Reflect and correct “Order” to “Orders”. Accordingly, the change information update unit 18 can create corrected correction information 42 (ver. 1A-2Bα) for correcting the annotation assigned to “itemFromOsIIdAndIId” of the “Orders” class.

図3のステップS16(コード生成処理)において、コード更新部19は、補正済修正情報42(ver.1A−2Bα)と旧テンプレート21(ver.1)と新データベース定義32(ver.B)とから、図22に示す修正済新コード55(ver.2Bα)を処理装置により新たに生成する。   In step S16 (code generation process) in FIG. 3, the code update unit 19 includes corrected correction information 42 (ver. 1A-2Bα), the old template 21 (ver. 1), and the new database definition 32 (ver. B). Thus, the corrected new code 55 (ver. 2Bα) shown in FIG. 22 is newly generated by the processing device.

上記のように、本実施の形態によれば、テンプレートとデータベース定義が変更された場合でも、開発者等による修正を保持したコードの再生成が可能となる。このとき、コード生成装置10は、更新前のテンプレートと更新後のテンプレートとを直接比較することなく、開発者等による変更の内容を維持したコードを更新後のテンプレートから生成することができる。   As described above, according to the present embodiment, even when the template and the database definition are changed, it is possible to regenerate the code holding the correction by the developer or the like. At this time, the code generation device 10 can generate, from the updated template, a code that maintains the contents of the changes made by the developer or the like without directly comparing the template before the update with the template after the update.

なお、コード生成装置10は、コードの生成時にコードをメモリ上に生成することで、処理を高速化してもよい。   Note that the code generation device 10 may increase the processing speed by generating the code on the memory when generating the code.

以上説明したように、本実施の形態に係るコード生成装置10は、データベース定義、テンプレートからコードを自動生成する装置である。   As described above, the code generation device 10 according to the present embodiment is a device that automatically generates a code from a database definition and a template.

コードは以下の特長を持つ。
・コードは、テーブルごとに作成され、テーブルのレコードを格納する。
・コードは、クラス宣言、メンバ変数宣言にアノテーションが付与されている。
・アノテーションは、複数の値を持つ。例えば、アノテーションの動作を決定する値(属性値)や、データベース定義に対応し、アノテーションを一意に決定する値(識別値)である。
・アノテーションが特定されると、クラス宣言、メンバ変数宣言も特定可能である。
The code has the following features.
A code is created for each table and stores the records in the table.
-The code is annotated with class declaration and member variable declaration.
An annotation has multiple values. For example, it is a value (attribute value) that determines the operation of the annotation or a value (identification value) that uniquely determines the annotation corresponding to the database definition.
-Once the annotation is specified, the class declaration and member variable declaration can also be specified.

コード生成装置10は以下の特長を持つ。
・新/旧コードからクラス名/メンバ変数名と、それらに付与されているアノテーションの対応表を作成する。
・アノテーションの識別値に基づき、クラス名、メンバ変数名、アノテーションの属性値の変更箇所を抽出する。
・旧テンプレートと旧データベース定義から自動生成された旧コード、旧コードを開発者が修正した修正済旧コードがあり、旧コードと修正済旧コードから修正情報を抽出する。・新データベース定義と旧データベース定義からデータベース定義変更箇所を抽出する。
・新データベース定義を用いて、新テンプレートと旧テンプレートから、それぞれ一時コードを生成し、テンプレート変更箇所を抽出する。
・修正情報をデータベース定義変更箇所とテンプレート変更箇所により補正し、修正情報(補正済)とする。
・新データベース定義、新テンプレート、修正情報(補正済)から修正済の新コードを生成する。
The code generation device 10 has the following features.
Create a correspondence table of class names / member variable names and annotations attached to them from new / old code.
-Based on the identification value of the annotation, extract the class name, member variable name, and annotation attribute value change location.
-There are old codes automatically generated from old templates and old database definitions, and old codes that have been corrected by the developer, and the correction information is extracted from the old codes and the corrected old codes. -Extract database definition changes from the new database definition and the old database definition.
-Using the new database definition, generate temporary code from the new template and the old template, respectively, and extract the template changes.
-The correction information is corrected by the database definition change part and the template change part, and is set as correction information (corrected).
Generate a new code that has been corrected from the new database definition, new template, and correction information (corrected).

このように、本実施の形態では、コード生成装置10が、設計情報に基づき、変更前と変更後のテンプレートからコードを生成し、アノテーションの同一性等に基づき、両者を比較し、テンプレートの変更箇所を抽出する。テンプレートの変更からコードの修正情報を補正可能とする。これにより、開発者等が修正を行った後のコードの再生成において、設計情報やテンプレートの変更があっても修正内容を保持したまま、再生成が可能である。   As described above, in this embodiment, the code generation device 10 generates code from the template before and after the change based on the design information, compares both based on the sameness of the annotation, and the like, and changes the template. Extract the location. Code correction information can be corrected from template changes. As a result, in the regeneration of the code after the modification by the developer or the like, even if there is a change in the design information or the template, the regeneration can be performed while maintaining the modified content.

以上、本発明の実施の形態について説明したが、本発明は、この実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。   As mentioned above, although embodiment of this invention was described, this invention is not limited to this embodiment, A various change is possible as needed.

10 コード生成装置、11 テンプレート記憶部、12 データベース定義記憶部、13 コード生成部、14 変更入力部、15 差異検出部、16 変更情報作成部、17 テンプレート更新部、18 変更情報更新部、19 コード更新部、21 旧テンプレート、22 新テンプレート、31 旧データベース定義、32 新データベース定義、41 修正情報、42 補正済修正情報、51 旧コード、52 修正済旧コード、53 一時旧コード、54 一時新コード、55 修正済新コード、71 LCD、72 キーボード、73 マウス、74 FDD、75 CDD、76 プリンタ、81 CPU、82 バス、83 ROM、84 RAM、85 通信ボード、90 HDD、91 オペレーティングシステム、92 ウィンドウシステム、93 プログラム群、94 ファイル群。   10 code generator, 11 template storage unit, 12 database definition storage unit, 13 code generation unit, 14 change input unit, 15 difference detection unit, 16 change information creation unit, 17 template update unit, 18 change information update unit, 19 code Update unit, 21 old template, 22 new template, 31 old database definition, 32 new database definition, 41 correction information, 42 corrected correction information, 51 old code, 52 corrected old code, 53 temporary old code, 54 temporary new code , 55 Modified New Code, 71 LCD, 72 Keyboard, 73 Mouse, 74 FDD, 75 CDD, 76 Printer, 81 CPU, 82 Bus, 83 ROM, 84 RAM, 85 Communication Board, 90 HDD, 91 Operating System, 92 Window system , 93 programs, 94 files.

Claims (5)

オブジェクト指向プログラミングにおけるクラスのコードのテンプレートを記憶装置により記憶するテンプレート記憶部と、
前記テンプレート記憶部に記憶されたテンプレートから、特定のクラスのコードである第1コードを処理装置により生成するコード生成部と、
前記コード生成部により生成された第1コードに対する変更の入力を入力装置により受け付ける変更入力部と、
前記変更入力部に入力された変更の内容を示す第1変更情報を処理装置により作成する変更情報作成部と、
前記テンプレート記憶部に記憶されたテンプレートを処理装置により更新し、更新したテンプレートから、前記特定のクラスのコードである第2コードを前記コード生成部に生成させるテンプレート更新部と、
前記コード生成部により生成された第1コードと第2コードとの差異を処理装置により検出する差異検出部と、
前記変更情報作成部により作成された第1変更情報に対し前記差異検出部により検出された第1コードと第2コードとの差異を反映した第2変更情報を処理装置により作成する変更情報更新部と、
前記変更情報更新部により作成された第2変更情報に基づいて、前記コード生成部により生成された第2コードに対し前記変更入力部に入力された変更を反映したコードである第3コードを処理装置により生成するコード更新部と
を備えることを特徴とするコード生成装置。
A template storage unit for storing a template of a class code in object-oriented programming by a storage device;
A code generation unit that generates, from a template stored in the template storage unit, a first code that is a code of a specific class by a processing device;
A change input unit that receives an input of a change to the first code generated by the code generation unit by an input device;
A change information creating unit for creating first change information indicating the content of the change input to the change input unit by a processing device;
A template update unit that updates a template stored in the template storage unit by a processing device, and causes the code generation unit to generate a second code that is a code of the specific class from the updated template;
A difference detection unit for detecting a difference between the first code and the second code generated by the code generation unit by a processing device;
A change information update unit that creates, by a processing device, second change information that reflects the difference between the first code and the second code detected by the difference detection unit with respect to the first change information created by the change information creation unit. When,
Based on the second change information created by the change information update unit, a third code which is a code reflecting the change input to the change input unit is processed with respect to the second code generated by the code generation unit A code generation device comprising: a code update unit generated by the device.
前記コード生成装置は、さらに、
データベースを構成する複数のテーブルのそれぞれについて、テーブルの構成を示すデータベース定義を記憶装置により記憶するデータベース定義記憶部
を備え、
前記コード生成部は、前記テンプレート記憶部に記憶されたテンプレートと前記データベース定義記憶部に記憶された特定のテーブルのデータベース定義とから、前記第1コードとして、前記特定のテーブルに対応するクラスのコードを生成し、
前記テンプレート更新部は、前記データベース定義記憶部に記憶された前記特定のテーブルのデータベース定義を処理装置により更新し、更新したテンプレートとデータベース定義とから、前記第2コードを前記コード生成部に生成させることを特徴とする請求項1のコード生成装置。
The code generation device further includes:
For each of a plurality of tables constituting the database, a database definition storage unit that stores a database definition indicating the configuration of the table by a storage device,
The code generation unit includes, as the first code, a class code corresponding to the specific table from the template stored in the template storage unit and the database definition of the specific table stored in the database definition storage unit. Produces
The template update unit updates a database definition of the specific table stored in the database definition storage unit by a processing device, and causes the code generation unit to generate the second code from the updated template and the database definition. The code generation device according to claim 1.
前記変更入力部は、前記コード生成部により生成された第1コードに対し入力された変更を反映したコードである第4コードを処理装置により生成し、
前記差異検出部は、前記コード生成部により生成された第1コードと前記変更入力部により生成された第4コードとの差異を処理装置により検出し、
前記変更情報作成部は、前記第1変更情報として、前記差異検出部により検出された第1コードと第4コードとの差異を示す情報を作成することを特徴とする請求項1又は2のコード生成装置。
The change input unit generates a fourth code, which is a code reflecting the change input to the first code generated by the code generation unit, by a processing device,
The difference detection unit detects a difference between the first code generated by the code generation unit and the fourth code generated by the change input unit by a processing device;
The code according to claim 1 or 2, wherein the change information creation unit creates information indicating a difference between the first code and the fourth code detected by the difference detection unit as the first change information. Generator.
オブジェクト指向プログラミングにおけるクラスのコードのテンプレートを記憶装置により記憶するコンピュータを用いて、特定のクラスのコードを生成するコード生成方法であって、
前記コンピュータが、前記テンプレートから、前記特定のクラスのコードである第1コードを処理装置により生成し、
前記コンピュータが、生成した第1コードに対する変更の入力を入力装置により受け付け、
前記コンピュータが、前記変更の内容を示す第1変更情報を処理装置により作成し、
前記コンピュータが、前記テンプレートを処理装置により更新し、更新したテンプレートから、前記特定のクラスのコードである第2コードを生成し、
前記コンピュータが、前記第1コードと前記第2コードとの差異を処理装置により検出し、
前記コンピュータが、前記第1変更情報に対し前記第1コードと前記第2コードとの差異を反映した第2変更情報を処理装置により作成し、
前記コンピュータが、前記第2変更情報に基づいて、前記第2コードに対し前記変更を反映したコードである第3コードを生成することを特徴とするコード生成方法。
A code generation method for generating a code of a specific class using a computer that stores a template of a class code in object-oriented programming by a storage device,
The computer generates, from the template, a first code that is a code of the specific class by a processing device,
The computer receives an input of a change to the generated first code by an input device,
The computer creates first change information indicating the content of the change by a processing device,
The computer updates the template by a processing device, generates a second code that is a code of the specific class from the updated template,
The computer detects a difference between the first code and the second code by a processing device;
The computer creates second change information reflecting a difference between the first code and the second code with respect to the first change information by a processing device,
The code generation method, wherein the computer generates a third code which is a code reflecting the change with respect to the second code based on the second change information.
オブジェクト指向プログラミングにおけるクラスのコードのテンプレートを記憶装置により記憶するコンピュータを、
前記テンプレートから、特定のクラスのコードである第1コードを処理装置により生成するコード生成部と、
前記コード生成部により生成された第1コードに対する変更の入力を入力装置により受け付ける変更入力部と、
前記変更入力部に入力された変更の内容を示す第1変更情報を処理装置により作成する変更情報作成部と、
前記テンプレートを処理装置により更新し、更新したテンプレートから、前記特定のクラスのコードである第2コードを前記コード生成部に生成させるテンプレート更新部と、
前記コード生成部により生成された第1コードと第2コードとの差異を処理装置により検出する差異検出部と、
前記変更情報作成部により作成された第1変更情報に対し前記差異検出部により検出された第1コードと第2コードとの差異を反映した第2変更情報を処理装置により作成する変更情報更新部と、
前記変更情報更新部により作成された第2変更情報に基づいて、前記コード生成部により生成された第2コードに対し前記変更入力部に入力された変更を反映したコードである第3コードを生成するコード更新部
として機能させるためのプログラム。
A computer for storing a template code of a class in object-oriented programming by a storage device,
A code generation unit that generates, from the template, a first code that is a code of a specific class by a processing device;
A change input unit that receives an input of a change to the first code generated by the code generation unit by an input device;
A change information creating unit for creating first change information indicating the content of the change input to the change input unit by a processing device;
A template updating unit that updates the template by a processing device and causes the code generation unit to generate a second code that is a code of the specific class from the updated template;
A difference detection unit for detecting a difference between the first code and the second code generated by the code generation unit by a processing device;
A change information update unit that creates, by a processing device, second change information that reflects the difference between the first code and the second code detected by the difference detection unit with respect to the first change information created by the change information creation unit. When,
Based on the second change information created by the change information update unit, a third code that is a code reflecting the change input to the change input unit is generated with respect to the second code generated by the code generation unit A program for functioning as a code update unit.
JP2012012573A 2012-01-25 2012-01-25 Code generation apparatus, code generation method, and program Active JP5808264B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012012573A JP5808264B2 (en) 2012-01-25 2012-01-25 Code generation apparatus, code generation method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012012573A JP5808264B2 (en) 2012-01-25 2012-01-25 Code generation apparatus, code generation method, and program

Publications (2)

Publication Number Publication Date
JP2013152580A true JP2013152580A (en) 2013-08-08
JP5808264B2 JP5808264B2 (en) 2015-11-10

Family

ID=49048876

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012012573A Active JP5808264B2 (en) 2012-01-25 2012-01-25 Code generation apparatus, code generation method, and program

Country Status (1)

Country Link
JP (1) JP5808264B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018177350A1 (en) * 2017-04-01 2018-10-04 北京京东尚科信息技术有限公司 Method and apparatus for providing serial number, electronic device and readable storage medium
CN113110832A (en) * 2021-04-08 2021-07-13 北京联创新天科技有限公司 Intelligent efficient code generation method and device and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08263277A (en) * 1995-03-22 1996-10-11 Fujitsu Ltd Automatic generation device for data operation program
JP2000222195A (en) * 1999-01-28 2000-08-11 Fujitsu Ltd Automatic generation method for program taking over correction program, automatic program generator and recording medium stored with program for automatically generating program taking over correction program
JP2001282520A (en) * 2000-03-30 2001-10-12 Nec Corp Method and device for preparing program and recording medium for program preparation
US20090100405A1 (en) * 2007-10-11 2009-04-16 Microsoft Corporation Synchronizing an abstract model and source code

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08263277A (en) * 1995-03-22 1996-10-11 Fujitsu Ltd Automatic generation device for data operation program
JP2000222195A (en) * 1999-01-28 2000-08-11 Fujitsu Ltd Automatic generation method for program taking over correction program, automatic program generator and recording medium stored with program for automatically generating program taking over correction program
JP2001282520A (en) * 2000-03-30 2001-10-12 Nec Corp Method and device for preparing program and recording medium for program preparation
US20090100405A1 (en) * 2007-10-11 2009-04-16 Microsoft Corporation Synchronizing an abstract model and source code

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018177350A1 (en) * 2017-04-01 2018-10-04 北京京东尚科信息技术有限公司 Method and apparatus for providing serial number, electronic device and readable storage medium
CN108664521A (en) * 2017-04-01 2018-10-16 北京京东尚科信息技术有限公司 A kind of method, apparatus, electronic equipment and readable storage medium storing program for executing that sequence number is provided
CN108664521B (en) * 2017-04-01 2020-09-01 北京京东尚科信息技术有限公司 Method and device for providing serial number, electronic equipment and readable storage medium
US11314712B2 (en) 2017-04-01 2022-04-26 Beijing Jingdong Shangke Information Technology Co., Ltd. Method and apparatus for providing serial number, electronic device and readable storage medium
CN113110832A (en) * 2021-04-08 2021-07-13 北京联创新天科技有限公司 Intelligent efficient code generation method and device and storage medium

Also Published As

Publication number Publication date
JP5808264B2 (en) 2015-11-10

Similar Documents

Publication Publication Date Title
US7689578B2 (en) Dealing with annotation versioning through multiple versioning policies and management thereof
US9646030B2 (en) Computer-readable medium storing program and version control method
JP4667386B2 (en) Business model diagram creation support program, business model diagram creation support method, and business model diagram creation support device
US9760347B2 (en) Method and system to identify GUI objects for non-markup-language-presented applications
JP4924976B2 (en) Software development support system
US20040088652A1 (en) Data processing and difference computation for generating addressing information
JP2008165474A (en) System, method and program for checking compatibility of index in database
WO2015093026A1 (en) Write information storage device, method, and recording medium
CN107783766A (en) The method and apparatus cleared up the file of application program
WO2010044150A1 (en) Program change management device, program change management program, and program change management method
US11625228B2 (en) System and method for facilitating efficient round-trip engineering using intermediate representations
JP5808264B2 (en) Code generation apparatus, code generation method, and program
JP5747698B2 (en) Requirements management support device
JP4477531B2 (en) Data import method and data import apparatus
US11144592B2 (en) Extendable JSON configuration architecture
KR101534493B1 (en) Source code security weakness detection apparatus and method based on structure conversion
JP7092992B2 (en) Document management program, document management device and document management method
CN113434748A (en) Template annotation based distributed crawler method and device, computer device and computer readable storage medium
US9354870B2 (en) Maintaining integrity of output of code generators
WO2017072872A1 (en) Business program generation assistance system and business program generation assistance method
CN112114811A (en) Compiling method, device and equipment
JP2009181267A (en) Information processing program and information processing unit
JP6748357B2 (en) Analysis device, analysis program, and analysis method
US20140215447A1 (en) Data processing apparatus
JP2018084939A (en) Correction support program, correction support method, correction support device, and compiler

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150710

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150908

R150 Certificate of patent or registration of utility model

Ref document number: 5808264

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250