WO2023027101A1 - Device and method for assisting in source code generation for software and program for device and method - Google Patents

Device and method for assisting in source code generation for software and program for device and method Download PDF

Info

Publication number
WO2023027101A1
WO2023027101A1 PCT/JP2022/031853 JP2022031853W WO2023027101A1 WO 2023027101 A1 WO2023027101 A1 WO 2023027101A1 JP 2022031853 W JP2022031853 W JP 2022031853W WO 2023027101 A1 WO2023027101 A1 WO 2023027101A1
Authority
WO
WIPO (PCT)
Prior art keywords
definition
user
api
source code
software
Prior art date
Application number
PCT/JP2022/031853
Other languages
French (fr)
Japanese (ja)
Inventor
直 柳澤
洋太 沼田
Original Assignee
株式会社Jitera
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
Priority claimed from JP2022112819A external-priority patent/JP2023031251A/en
Application filed by 株式会社Jitera filed Critical 株式会社Jitera
Publication of WO2023027101A1 publication Critical patent/WO2023027101A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven

Abstract

The present invention automates at least a part of a programming process for source code in order to assist in source code generation for software. As one example, a device 100 transmits screen image display information for table definition input to a company terminal 110 (S301), and an inputted table definition is transmitted to the device 100 (S302 to S305). Next, the device 100 transmits screen image display information for API definition input, for defining one or a plurality of APIs for each table, to the company terminal 110 (S306), and an inputted API definition is transmitted to the device 100 (S307). In response to receipt of a request for source code generation (S308), the device 100 acquires one or a plurality of templates created in advance, and generates source code that follows the table definition and the API definition (S309). The generated source code is transmitted from the device 100 to the company terminal 110 (S310).

Description

ソフトウェアのソースコード生成を支援するための装置、方法及びそのためのプログラムApparatus, method and program for supporting software source code generation
 本発明は、ソフトウェアのソースコード生成を支援するための装置、方法及びそのためのプログラムに関する。 The present invention relates to a device, method, and program for supporting software source code generation.
 ソフトウェア開発は、要件定義、設計、プログラミング、テスト等の工程に分けられる。開発したソフトウェアを使用する事業会社がソフトウェアエンジニアを社内に抱えることももちろんある一方、社外の開発会社に開発工程の全部又は一部が委託されることも少なくない。たとえば、要件定義及び設計を上流工程として自社で担い、プログラミング及びテストを下流工程として社外に委託するような例が挙げられる。 Software development can be divided into processes such as requirements definition, design, programming, and testing. While some operating companies that use developed software have software engineers in-house, it is not uncommon for them to outsource all or part of the development process to an external development company. For example, requirements definition and design are handled in-house as upstream processes, and programming and testing are outsourced as downstream processes.
 プログラミングが社外に委託される場合、プロジェクトの規模、委託先の稼働状況等に応じて、さらに再委託されることがある。また、比較的に安価な人件費で委託可能な海外企業に委託されることもあり、オフショア開発と呼ばれる。 When programming is outsourced, it may be further subcontracted depending on the scale of the project, the operating status of the outsourcee, etc. In addition, it is sometimes outsourced to overseas companies that can be outsourced with relatively cheap labor costs, which is called offshore development.
 いずれのかたちにしても、プログラミングの外部委託は、自社が有するソフトウェア開発のリソースを割くコストよりも外部委託に伴い発生するコストの方が小さい場合に広く採用されているところ、ソフトウェア開発のコストをさらに下げることのできる手法があれば、より望ましい。 In any form, outsourcing of programming is widely adopted when the cost of outsourcing is smaller than the cost of allocating the software development resources owned by the company. It would be more desirable if there was a method that could lower it further.
 本発明は、このような点に鑑みてなされたものであり、その課題は、ソフトウェアのソースコード生成を支援するための装置、方法及びそのためのプログラムであって、当該ソースコードのプログラミング工程の少なくとも一部を自動化することにある。 The present invention has been made in view of the above points, and an object thereof is to provide an apparatus, a method, and a program therefor for supporting source code generation of software, comprising: It's about automating part of it.
 このような課題を解決するために、本発明の第1の態様は、ソフトウェアのソースコード生成を支援するための方法であって、装置が、端末から、複数のテーブルについてのテーブル定義及びAPI定義を受信するステップであって、前記テーブル定義は、前記ソフトウェアのユーザーの基本情報に関するユーザーテーブルを含むステップと、前記装置が、前記端末から、ソースコード生成の要求を受信するステップと、前記装置が、前記要求の受信に応じて、予め作成されたソースコードの1又は複数のテンプレートを取得して、前記テーブル定義及び前記API定義に従ったソースコードを前記1又は複数のテンプレートを用いて生成するステップとを含む。 In order to solve such problems, a first aspect of the present invention is a method for supporting software source code generation, in which a device generates table definitions and API definitions for a plurality of tables from a terminal. wherein the table definition includes a user table relating to basic information of users of the software; the device receiving a source code generation request from the terminal; and obtaining one or more templates of pre-created source code in response to receiving the request, and generating source code according to the table definition and the API definition using the one or more templates. step.
 また、本発明の第2の態様は、第1の態様の方法であって、前記テーブル定義は、前記ユーザーテーブルの各レコードに含まれるユーザー識別子により識別されるユーザーに対してユーザー認証を行うことの指定を含む。 A second aspect of the present invention is the method of the first aspect, wherein the table definition performs user authentication for a user identified by a user identifier included in each record of the user table. including the designation of
 また、本発明の第3の態様は、第1の態様の方法であって、前記テーブル定義は、前記ユーザーテーブルが有する複数のカラムのうちの前記ユーザー認証に用いるカラムの特定を含む。 Also, a third aspect of the present invention is the method of the first aspect, wherein the table definition includes specification of a column to be used for the user authentication among a plurality of columns of the user table.
 また、本発明の第4の態様は、第3の態様の方法であって、前記特定されたカラムの値は、電話番号である。 A fourth aspect of the present invention is the method of the third aspect, wherein the specified column value is a telephone number.
 また、本発明の第5の態様は、第2から第4のいずれかの態様の方法であって、前記1又は複数のテンプレートは、ユーザー認証のための第1のテンプレートを含む。 Also, a fifth aspect of the present invention is the method according to any one of the second to fourth aspects, wherein the one or more templates include a first template for user authentication.
 また、本発明の第6の態様は、第1の態様の方法であって、前記API定義は、各テーブルについて、レコードの表示、生成、更新及び削除のうちの少なくとも一部を実行するための1又は複数のAPIの作成の指定を含む。 Also, a sixth aspect of the present invention is the method of the first aspect, wherein the API definition is for executing at least part of record display, generation, update and deletion for each table. Contains specifications for creating one or more APIs.
 また、本発明の第7の態様は、第6の態様の方法であって、前記API定義は、いずれかのAPIについて、前記ユーザー認証に成功していることを実行の認可の条件とする指定を含む。 A seventh aspect of the present invention is the method according to the sixth aspect, wherein the API definition designates that successful user authentication is a condition for authorization of execution of any of the APIs. including.
 また、本発明の第8の態様は、第6の態様の方法であって、前記API定義は、前記複数のテーブルのうちの前記ユーザーテーブル以外の他のテーブルのレコードの操作を実行するためのAPIを実行する認可条件として、前記APIを実行するユーザーのユーザー認証成功していることの指定を含む。 Further, an eighth aspect of the present invention is the method according to the sixth aspect, wherein the API definition is for executing operations on records of tables other than the user table among the plurality of tables. As an authorization condition for executing the API, it includes a specification that user authentication of the user executing the API has been successful.
 また、本発明の第9の態様は、第8の態様の方法であって、前記API定義は、前記認可条件として、さらに、前記APIの実行対象のレコードを前記APIを実行するユーザー自身に関連するレコードに限定することの指定を含む。 A ninth aspect of the present invention is the method according to the eighth aspect, wherein the API definition includes, as the authorization condition, a record to be executed by the API related to the user who executes the API. Includes specification to limit to records that
 また、本発明の第10の態様は、第7から第9のいずれかの態様の方法であって、前記1又は複数のテンプレートは、前記認可のための第2のテンプレートを含む。 A tenth aspect of the present invention is the method according to any one of the seventh to ninth aspects, wherein the one or more templates include the second template for authorization.
 また、本発明の第11の態様は、第1の態様の方法であって、前記装置が受信した前記テーブル定義の第2の部分は、前記端末から受信した前記テーブル定義の第1の部分に応じて、前記装置が生成して、前記端末に送信したものである。 An eleventh aspect of the present invention is the method of the first aspect, wherein the second part of the table definition received by the device is the first part of the table definition received from the terminal. responsively generated by the device and sent to the terminal.
 また、本発明の第12の態様は、第11の態様の方法であって、前記第1の部分は、前記ソフトウェアの利用料金の支払いを可能とする指定を含み、前記第2の部分は、前記利用料金の支払いに関するペイメントテーブルが有する複数のカラムの定義、及び、前記ユーザーテーブルが有する前記ペイメントテーブルとのリレーションの定義を含む。 A twelfth aspect of the present invention is the method of the eleventh aspect, wherein the first part includes a designation that enables payment of a usage fee for the software, and the second part comprises: It includes definitions of a plurality of columns in a payment table relating to payment of the usage fee, and definitions of relationships with the payment table in the user table.
 また、本発明の第13の態様は、第11の態様の方法であって、前記第1の部分は、前記ユーザーテーブル以外の他のテーブルが有する前記ユーザーテーブルとのリレーションの定義を含み、前記第2の部分は、前記他のテーブルが有する前記ユーザーテーブルに関連づけられたカラムの定義を含む。 A thirteenth aspect of the present invention is the method according to the eleventh aspect, wherein the first part includes a definition of a relation with the user table held by a table other than the user table, The second part contains the definitions of the columns associated with the user table that the other table has.
 また、本発明の第14の態様は、第1の態様の方法であって、前記装置が、前記端末に、前記1又は複数のテンプレートを用いることで自動化されたプログラミング工程に応じた作業量の削減量若しくは削減率又は前記削減量に応じた削減費用の額若しくは率を送信するステップをさらに含む。 Further, a fourteenth aspect of the present invention is the method of the first aspect, wherein the device reduces the workload according to an automated programming process by using the one or more templates in the terminal. Further comprising transmitting a reduction amount or a reduction rate or an amount or rate of reduction costs responsive to said reduction amount.
 また、本発明の第15の態様は、第14の態様の方法であって、前記作業量は、時間又は時間に係数を乗じた値である。 A fifteenth aspect of the present invention is the method according to the fourteenth aspect, wherein the amount of work is time or a value obtained by multiplying time by a coefficient.
 また、本発明の第16の態様は、第14の態様の方法であって、前記削減量又は前記削減率は、前記プログラミング工程の種類ごとに算出される。 A sixteenth aspect of the present invention is the method according to the fourteenth aspect, wherein the reduction amount or the reduction rate is calculated for each type of the programming process.
 また、本発明の第17の態様は、第14の態様の方法であって、前記ソースコードは、複数のコード部分を含み、前記複数のコード部分は、API定義に従ったAPIコードと、前記ソフトウェアのユーザーインターフェースに対する入力に応じて前記APIコードのうちの少なくとも一部を呼び出すためのコードを含むユーザーインターフェースコードとを含み、前記削減量又は前記削減率は、前記複数の部分のそれぞれについて算出される。 A seventeenth aspect of the present invention is the method of the fourteenth aspect, wherein the source code includes a plurality of code portions, the plurality of code portions comprising API code according to an API definition; and user interface code including code for invoking at least a portion of the API code in response to an input to a software user interface, wherein the reduction amount or the reduction rate is calculated for each of the plurality of portions. be.
 また、本発明の第18の態様は、第1の態様の方法であって、前記装置は、インターネット上のサーバである。 Also, an eighteenth aspect of the present invention is the method of the first aspect, wherein the device is a server on the Internet.
 また、本発明の第19の態様は、装置に、ソフトウェアのソースコード生成を支援するための方法を実行させるためのプログラムであって、前記方法は、前記装置が、端末から、複数のテーブルについてのテーブル定義及びAPI定義を受信するステップであって、前記テーブル定義は、前記ソフトウェアのユーザーの基本情報に関するユーザーテーブルを含むステップと、前記装置が、前記端末から、ソースコード生成の要求を受信するステップと、前記装置が、前記要求の受信に応じて、予め作成されたソースコードの1又は複数のテンプレートを取得して、前記テーブル定義及び前記API定義に従ったソースコードを前記1又は複数のテンプレートを用いて生成するステップとを含む。 A nineteenth aspect of the present invention is a program for causing a device to execute a method for supporting software source code generation, the method comprising: wherein the table definition includes a user table about basic information of users of the software; and the device receives a source code generation request from the terminal and the apparatus, in response to receiving the request, obtains one or more templates of pre-created source code, and renders the source code according to the table definition and the API definition into the one or more and generating using the template.
 また、本発明の第20の態様は、ソフトウェアのソースコード生成を支援するための装置であって、端末から、複数のテーブルについてのテーブル定義及びAPI定義を受信し、前記端末から、ソースコード生成の要求を受信し、前記要求の受信に応じて、予め作成されたソースコードの1又は複数のテンプレートを取得して、前記テーブル定義及び前記API定義に従ったソースコードを前記1又は複数のテンプレートを用いて生成する。 A twentieth aspect of the present invention is a device for supporting source code generation of software, which receives table definitions and API definitions for a plurality of tables from a terminal, and generates source code from the terminal. , obtaining one or more templates of pre-created source code in response to receiving the request, and converting the source code according to the table definition and the API definition to the one or more templates generated using
 本発明の一態様によれば、複数のテーブルについてのテーブル定義及びAPI定義を受信して、予め作成された1又は複数のテンプレートを取得し、当該テーブル定義及び当該API定義に従ったソースコードを当該1又は複数のテンプレートを用いて生成することによって、ソフトウェアのソースコード生成を支援することが可能となる。 According to one aspect of the present invention, table definitions and API definitions for a plurality of tables are received, one or more templates created in advance are acquired, and source code according to the table definitions and the API definitions is generated. By generating using the one or more templates, it is possible to support software source code generation.
本発明の第1の実施形態にかかるソフトウェアのソースコード生成を支援するための装置を示す図である。1 is a diagram illustrating an apparatus for supporting software source code generation according to a first embodiment of the present invention; FIG. 本発明の第1の実施形態にかかるデータベース設計の一例を示す図である。It is a figure which shows an example of database design concerning the 1st Embodiment of this invention. 本発明の第1の実施形態にかかるソフトウェアのソースコード生成を支援するための方法を示す図である。FIG. 2 illustrates a method for assisting source code generation of software according to the first embodiment of the present invention; 本発明の第1の実施形態にかかるテーブル定義入力画面の一部を示す図である。It is a figure which shows a part of table definition input screen concerning the 1st Embodiment of this invention. 本発明の第1の実施形態にかかるテーブル定義入力画面の一部を示す図である。It is a figure which shows a part of table definition input screen concerning the 1st Embodiment of this invention. 本発明の第1の実施形態にかかるライクテーブルのリレーション定義入力領域の一例を示す図である。FIG. 4 is a diagram showing an example of a relation definition input area of a like table according to the first embodiment of the present invention; FIG. 本発明の第1の実施形態にかかるAPI定義入力画面の一部を示す図である。It is a figure which shows a part of API definition input screen concerning the 1st Embodiment of this invention. 本発明の第1の実施形態にかかるソースコード生成の流れを示す図である。It is a figure which shows the flow of source code generation concerning the 1st Embodiment of this invention. 本発明の第2の実施形態にかかる削減量表示画面の一例を示す図である。It is a figure which shows an example of the reduction amount display screen concerning the 2nd Embodiment of this invention.
 以下、本発明の実施形態を詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail.
 (第1の実施形態) 
 図1に、本発明の第1の実施形態にかかる装置を示す。装置100は、装置100により提供されるサービスのユーザーである企業が用いる企業端末110とインターネット等のIPネットワークを介して通信して、データベース設計に関する入力を受信し、当該入力に基づいて、ソフトウェアのためのソースコードを生成する。主に、装置100はインターネット上のサーバであることを考えるが、社内ネットワーク上のサーバとし、当該社内ネットワーク上の端末からアクセスするものとすることも考えられる。
(First embodiment)
FIG. 1 shows an apparatus according to a first embodiment of the invention. The device 100 communicates with a company terminal 110 used by a company, which is a user of the service provided by the device 100, via an IP network such as the Internet, receives input regarding database design, and based on the input, executes software development. Generate source code for Although it is mainly considered that the device 100 is a server on the Internet, it is also conceivable that it is a server on an in-house network and accessed from a terminal on the in-house network.
 装置100は、通信インターフェースなどの通信部101と、プロセッサ、CPU等の処理部102と、メモリ、ハードディスク等の記憶装置又は記憶媒体を含む記憶部103とを備え、各処理又は各動作を行うためのプログラムを実行することによって構成することができる。装置100は、1又は複数の装置、コンピュータないしサーバを含むことがある。また、当該プログラムは、1又は複数のプログラムを含むことがあり、また、コンピュータ読み取り可能な記憶媒体に記録して非一過性のプログラムプロダクトとすることができる。当該プログラムは、記憶部103又は装置100からIPネットワークを介してアクセス可能な記憶装置104に記憶しておき、処理部102において当該プログラムに含まれる指令を実行することができる。以下で記憶部103に記憶されるものとして記述されるデータは記憶装置104に記憶してもよく、またその逆も同様である。 The device 100 includes a communication unit 101 such as a communication interface, a processing unit 102 such as a processor and a CPU, and a storage unit 103 including a storage device or storage medium such as a memory or hard disk. can be configured by running the program Device 100 may include one or more devices, computers or servers. Also, the program may include one or more programs, and may be recorded on a computer-readable storage medium to be a non-transitory program product. The program can be stored in the storage unit 103 or the storage device 104 accessible from the device 100 via the IP network, and the processing unit 102 can execute commands included in the program. Data described below as being stored in storage 103 may also be stored in storage 104, and vice versa.
 図2に、データベース設計の一例を示す。本明細書では、図2に示すマッチングサービスのためのデータベース設計を例にソースコードの少なくとも一部を自動的に生成することを説明するが、図2に示すようなリレーショナルデータベースのほかに、階層型データベース、ネットワーク型データベースなどのさまざまなデータベース設計に対して本発明は適用可能である。 Figure 2 shows an example of database design. In this specification, the automatic generation of at least part of the source code will be described using the database design for the matching service shown in FIG. 2 as an example. The present invention is applicable to various database designs such as type database, network type database, and the like.
 図2に示すデータベース設計は、好みの人と出会うためのマッチングサービスに必要な複数のテーブルの少なくとも一部を含み、各テーブルは、少なくとも1つの他のテーブルと関連づけられている。本明細書では「テーブル」という用語を用いるが、これは、データベースに含まれる、1又は複数のカラム及び1又は複数のレコードを有するデータ単位であって、少なくとも1つの他のデータ単位と関連づけられるデータ単位を包含する。 The database design shown in FIG. 2 includes at least a portion of a plurality of tables required for a matching service for meeting people of interest, each table being associated with at least one other table. As used herein, the term "table" refers to a data unit in a database having one or more columns and one or more records that is associated with at least one other data unit. Contains data units.
 具体的には、図2には、マッチングサービスの各ユーザーの基本情報に関するユーザーテーブル「Users」、各ユーザーが他のどのユーザーが好みで、他のどのユーザーから好まれているかに関するライクテーブル「Likes」、ユーザー間で互いの好みが合致した一組のユーザーに関するマッチテーブル「Matches」、及び、好みが合致した一組のユーザー間のメッセージに関するメッセージテーブル「Messages」が含まれる。 Specifically, in Fig. 2, there are a user table "Users" regarding the basic information of each user of the matching service, a like table "Likes" regarding which other users each user likes and which other users like , a match table 'Matches' for a set of users whose tastes match each other, and a message table 'Messages' for messages between a set of users whose tastes match.
 また、図2には、各ユーザーの支払履歴に関するペイメントテーブル「Payments」が含まれ、必要に応じてさらに、各ユーザーの加入状況に関するサブスクリプションテーブル「Subscriptions」及び各プランに関するプランテーブル「Plans」を含んでもよい。 In addition, FIG. 2 includes a payment table "Payments" regarding the payment history of each user, and if necessary, a subscription table "Subscriptions" regarding the subscription status of each user and a plan table "Plans" regarding each plan. may contain.
 図3に、本発明の第1の実施形態にかかるソフトウェアのソースコード生成を支援するための方法を示す。まず、装置100は、企業端末110に、テーブル定義入力画面表示情報を送信する(S301)。企業端末110の表示画面に、当該テーブル定義入力画面表示情報に基づくテーブル定義入力画面が表示され、企業端末110を用いる入力者による入力が行われる。 FIG. 3 shows a method for supporting source code generation of software according to the first embodiment of the present invention. First, the device 100 transmits table definition input screen display information to the company terminal 110 (S301). A table definition input screen based on the table definition input screen display information is displayed on the display screen of the company terminal 110, and an input person using the company terminal 110 performs input.
 入力者による入力は、テーブル定義入力画面表示情報を、たとえばHTML形式のファイルとして送信して、企業端末110の表示画面にウェブブラウザ上で表示される入力画面から行ったり、企業端末110にインストールされたアプリケーション(以下「アプリ」とも呼ぶ。)を動作させ、当該アプリケーション上で表示される入力画面から行ったりすることができる。なお、「テーブル定義入力画面」とは、ウェブブラウザ上で表示される場合にはウェブページ、モーダルウィンドウ、ポップアップウィンドウ等のさまざまな形式を採用することができ、アプリ上で表示される場合にはアプリの一画面とすることができる。いずれにおいても、テーブル定義を入力するための入力欄を有する領域を含む画面であれば、テーブル定義入力画面に該当する。 The input by the input person is performed by transmitting the table definition input screen display information as, for example, an HTML format file and performing input from the input screen displayed on the display screen of the company terminal 110 on the web browser, or It is possible to operate an application (hereinafter also referred to as an “application”) and perform operations from an input screen displayed on the application. In addition, the "table definition input screen" can adopt various forms such as web page, modal window, pop-up window when displayed on the web browser, and when displayed on the application It can be used as one screen of an application. In any case, any screen including an area having input columns for inputting table definitions corresponds to the table definition input screen.
 図4Aに、本発明の第1の実施形態にかかるテーブル定義入力画面の一部を示す。テーブル定義入力画面400は、テーブル追加ボタン401を有し、これをクリック又はタップにより選択することで、テーブルを追加することができる。各テーブルについて、テーブル定義入力画面400は、テーブル名入力領域410、リレーション定義入力領域420及びカラム定義入力領域430を有し、さらに追加機能指定領域440を有することができる。 FIG. 4A shows part of the table definition input screen according to the first embodiment of the present invention. The table definition input screen 400 has an add table button 401, and a table can be added by clicking or tapping this button. For each table, the table definition input screen 400 has a table name input area 410 , a relation definition input area 420 and a column definition input area 430 , and can further have an additional function designation area 440 .
 図4Aは、マッチングサービスのユーザーの基本情報に関するユーザーテーブル「Users」のための入力を行う例であるが、ユーザーテーブル「Users」に限らず、リレーション定義入力領域420において、表示されているテーブルと他のテーブルとの間のリレーション(relation)を指定することができる。たとえば、ライクテーブル「Likes」を追加して、ライクテーブル「Likes」に対して、ユーザーテーブル「Users」との間のリレーションを指定することが考えられる。 FIG. 4A is an example of inputting for the user table "Users" regarding the basic information of the users of the matching service. You can specify relations with other tables. For example, it is conceivable to add a like table “Likes” and specify a relation between the like table “Likes” and the user table “Users”.
 図4Bに、本発明の第1の実施形態にかかるテーブル定義入力画面の一部を示す。これは、図4Aに示したテーブル定義入力画面400を下にスクロールして、カラム定義領域430を表示した状態である。カラム定義入力領域430は、カラム追加ボタン431を有し、これをクリック又はタップにより選択することで、テーブルを追加することができる。企業端末110を用いる入力者は、図2に示したデータベース設計に従って、各テーブルに対して、必要なカラムを定義していけばよい。 FIG. 4B shows part of the table definition input screen according to the first embodiment of the present invention. This is a state in which the table definition input screen 400 shown in FIG. 4A is scrolled down to display the column definition area 430 . The column definition input area 430 has an add column button 431, which can be clicked or tapped to add a table. An input person using the company terminal 110 can define necessary columns for each table according to the database design shown in FIG.
 図4Aに戻ると、この例では、追加機能指定領域440において、ユーザーテーブル「Users」の各レコードに含まれるユーザー識別子により識別されるユーザーに対してユーザー認証(user authentication)を行うことを指定した場合、後述するソースコード生成時に、ユーザー認証を行うためのテンプレートを用いて、ユーザー認証のためのソースコードが生成されることとなる。ユーザー認証が行われる場合には、ユーザーテーブル「Users」のカラム定義において、複数のカラムのうちのユーザー認証に用いるカラムの特定をテーブル定義に含んでもよい。図4Bでは、電話番号を値として保持することになるカラムの型が認証用のキーを表す「auth_key」となっている。各カラムは、名称及び型を含み、オプション及びデフォルト値の少なくとも一方をさらに含んでもよい。支払い(payment)を許可することを指定した場合については、追って説明する。 Returning to FIG. 4A, in this example, in the additional function designation area 440, it is designated to perform user authentication for the user identified by the user identifier included in each record of the user table "Users". In this case, source code for user authentication is generated using a template for user authentication when generating source code, which will be described later. When user authentication is performed, the column definition of the user table “Users” may include specification of a column used for user authentication among multiple columns. In FIG. 4B, the type of the column that will hold the telephone number as the value is "auth_key" representing the key for authentication. Each column includes a name and type, and may further include options and/or default values. The case of specifying that payment is permitted will be explained later.
 この例では、ユーザーテーブル「Users」のためのテーブル定義入力画面400に追加機能指定領域440を含んでいるものの、他のテーブルのためのテーブル定義入力画面400に含んでもよい。たとえば、病院向けのソフトウェアである場合、医師ユーザー及び患者ユーザーが使用し、共にユーザー認証を行う必要があれば、例として、各医師の基本情報に関するドクターテーブル「Doctors」及び各患者の基本情報に関するペイシェントテーブル「Patients」を追加し、これらのテーブルに対してそれぞれ、ユーザー認証を行う指定がなされることになる。本明細書では「ユーザー」という用語を用いるが、自然人に限らず、法人も含み、たとえば、ユーザー企業を包含するものとして用いる。 In this example, the table definition input screen 400 for the user table "Users" includes the additional function designation area 440, but it may be included in the table definition input screen 400 for other tables. For example, in the case of software for hospitals, if it is used by doctor users and patient users and it is necessary to perform user authentication together, for example, a doctor table "Doctors" regarding basic information of each doctor and basic information of each patient A patient table "Patients" will be added, and user authentication will be specified for each of these tables. Although the term "user" is used in this specification, it is used not only to natural persons but also to include legal persons, such as user companies.
 企業端末110を用いる入力者による入力されたテーブル定義は、定期的又は断続的に装置100に対して送信される(S302)。そして、装置100では、受信したテーブル定義を記憶部103に記憶し、当該テーブル定義(「第1の部分」に相当。)が所定の内容を含む場合に、当該所定の内容に応じて変更(「第2の部分」に相当。)を加えた変更テーブル定義を含む新たなテーブル定義入力画面表示情報を生成し(S303)、企業端末110に送信する(S304)。 The table definition input by the input person using the company terminal 110 is periodically or intermittently transmitted to the device 100 (S302). Then, in the device 100, the received table definition is stored in the storage unit 103, and if the table definition (corresponding to the "first part") includes predetermined content, it is changed (or changed) according to the predetermined content. corresponding to the "second part") is generated (S303) and transmitted to the enterprise terminal 110 (S304).
 一例として、図5に示すように、企業端末110にて、ライクテーブル「Likes」に対して、ユーザーテーブル「Users」との間の第1のリレーション及び第2のリレーションを指定することができる。このようなリレーション定義が入力されたことに応じて、装置100が、ライクテーブル「Likes」に対して、第1のリレーション及び第2のリレーションによってユーザーテーブル「Users」に関連づけられた第1及び第2のカラムの定義をテーブル定義に加えることができる。 As an example, as shown in FIG. 5, on the enterprise terminal 110, a first relation and a second relation between the like table "Likes" and the user table "Users" can be specified. In response to such a relationship definition being input, the device 100 creates, for the likes table "Likes", first and second relationships that are related to the user table "Users" by the first relationship and the second relationship. Two column definitions can be added to the table definition.
 図4A及び図5に示すリレーション定義入力領域420には、リレーションの種類として、「has many」、「has one」、「belongs to」及び「has many through」がある。本実施形態にかかるデータベースにおいて、一方のテーブルの各レコードを識別するidが他方のテーブルにカラムとして格納される場合に、前者を親、後者を子と呼ぶことがある。リレーション「has many」は、親のテーブルのレコードからみて他のテーブルの複数のレコードとの間に関連づけがなされ得て、リレーション「has one」は、親のテーブルのレコードからみて他のテーブルの単一のレコードとの間に関連づけがなされ得ることを意味する。リレーション「belongs to」は、子のテーブルのレコードからみて他のテーブルのレコードと1又は複数の関連づけがなされ得ることを意味し、図5では、ライクテーブル「Likes」の1つのレコードに対して、ユーザーテーブル「Users」の各レコードを識別するidを「liking_user_id」として格納させる第1のリレーション、及び、当該idを「liked_user_id」として格納させる第2のリレーションが指定されている。リレーション「has many through」は、第1のテーブルのレコードからみて第3のテーブルの複数のレコードと、第1のテーブルの子であり、第3のテーブルの親である第2のテーブルを介して、関連づけがなされ得ることを意味する。 The relation definition input area 420 shown in FIGS. 4A and 5 has "has many", "has one", "belongs to", and "has many through" as types of relations. In the database according to this embodiment, when an id that identifies each record in one table is stored as a column in the other table, the former may be called a parent and the latter a child. The relation ``has many'' can be related to multiple records in other tables with respect to a record in the parent table, and the relation ``has one'' can be related to a single record in another table with respect to the record in the parent table. It means that an association can be made with one record. The relation "belongs to" means that a child table record can have one or more associations with other table records. A first relation storing an id identifying each record of the user table “Users” as “liking_user_id” and a second relation storing the id as “liked_user_id” are specified. The relation "has many through" is a number of records in a third table relative to a record in the first table and through a second table that is a child of the first table and a parent of the third table. , meaning that an association can be made.
 また、別の例として、ユーザーテーブル「Users」に対して、利用料金の支払いを可能とする指定がなされたことに応じて、装置100が、利用料金の支払履歴を関するペイメントテーブル「Payments」が有する複数のカラムの定義をテーブル定義に加えることができる。装置100は、さらに、利用料金の支払いを可能とする指定がなされたことに応じて、ユーザーテーブル「Users」のリレーション定義に、ペイメントテーブル「Payments」とのリレーション「has many」を加えることができ、ペイメントテーブル「Payments」のリレーション定義に、ユーザーテーブル「Users」とのリレーション「belongs to」を加えることができる。 As another example, in response to the user table "Users" being designated to allow payment of the usage fee, the device 100 detects that the payment table "Payments" related to the payment history of the usage fee is Multiple column definitions can be added to the table definition. Further, the device 100 can add the relation “has many” with the payment table “Payments” to the relation definition of the user table “Users” in response to the designation that payment of the usage fee is possible. , a relation "belongs to" with the user table "Users" can be added to the relation definition of the payment table "Payments".
 このように、装置100において、入力者が入力したテーブル定義に応じて、適宜自動的に必要な定義が追加され、入力者は、その他の個別に必要な入力を行う(S305)。ここまでの処理で、データベース設計に対応するテーブル定義に関するデータが記憶部103に記憶される。 In this way, in the apparatus 100, necessary definitions are automatically added as appropriate according to the table definition input by the input person, and the input person performs other individually required inputs (S305). Through the processing up to this point, the data relating to the table definition corresponding to the database design is stored in the storage unit 103 .
 次いで、装置100は、企業端末110に、各テーブルについて、レコードの操作を実行するための1又は複数のAPIを定義するためのAPI定義入力画面表示情報を送信する(S306)。企業端末110の表示画面に、当該API定義入力画面表示情報に基づくAPI定義入力画面が表示され、企業端末110を用いる入力者による入力が行われる。API定義入力画面表示情報の実装には、テーブル定義入力画面表示情報と同様の手法を採用すればよい。 Next, the device 100 transmits API definition input screen display information for defining one or more APIs for executing record operations for each table to the company terminal 110 (S306). An API definition input screen based on the API definition input screen display information is displayed on the display screen of the company terminal 110, and an input person using the company terminal 110 performs input. To implement the API definition input screen display information, the same method as for the table definition input screen display information should be adopted.
 図6に、本発明の第1の実施形態にかかるAPI定義入力画面の一部を示す。API定義入力画面600では、テーブル定義に含まれる複数のテーブルのうちの少なくとも一部のテーブルについて、レコードの操作を実行するための1又は複数のAPIの作成を指定することができる。図6では、ライクテーブル「Likes」について、レコードの一覧表示(list)、詳細表示(detail)、生成(create)、更新(update)及び削除(delete)のうちの少なくとも一部を実行するための1又は複数のAPIの作成をONにすることができる。それぞれの操作に対応する第1のAPI定義入力領域611から第5のAPI定義入力領域615が与えられている。 FIG. 6 shows part of the API definition input screen according to the first embodiment of the present invention. On the API definition input screen 600, creation of one or more APIs for executing record operations can be specified for at least some of the multiple tables included in the table definition. In FIG. 6, for the like table "Likes", a list of records (list), detailed display (detail), creation (create), update (update), and deletion (delete) are executed at least in part. Creation of one or more APIs can be turned ON. A first API definition input area 611 to a fifth API definition input area 615 corresponding to respective operations are provided.
 レコードの生成に関する第3のAPI定義入力領域613は、APIの作成を指定するための第1の入力欄613-1がONにされており、さらに、当該APIについて、ユーザー認証に成功していることを当該APIの実行の認可(authorization)の条件として指定するための第2の入力欄613-2、及び、当該APIの実行対象のレコードを当該APIを実行するユーザー自身に関連するレコードに限定した認可を指定するための第3の入力欄613-3がONにされている。また、APIを呼び出すときに入力すべきパラメータを指定するための第4の入力欄613-4にライクテーブル「Likes」のカラム「liked_user_id」が指定されている。ここで、パラメータは、プルダウンメニューからテーブル名及びカラム名を選択可能としてもよい。 In the third API definition input area 613 regarding record generation, the first input field 613-1 for designating creation of the API is ON, and user authentication has been successful for the API. as a condition for authorization of execution of the API, and limits the records to be executed by the API to records related to the user himself/herself who executes the API. The third entry field 613-3 for specifying the authorization given is turned ON. Also, the column "liked_user_id" of the like table "Likes" is specified in the fourth input field 613-4 for specifying parameters to be input when calling the API. Here, the parameters may be selectable from a pull-down menu of table names and column names.
 マッチングサービスを例に考えると、たとえば、一覧表示に関する第1のAPI定義入力領域611において、第2の入力欄613-2に対応する入力欄がONとされることで、生成されたソースコードを用いて動作するソフトウェアでは、サインイン等によってユーザー認証に成功しているユーザーのみが、マッチングサービスを利用する他のユーザーの一覧表示が可能となる。また、更新に関する第4のAPI定義入力領域614において、第3の入力欄613-3に対応する入力欄がONとされることで、生成されたソースコードを用いて動作するソフトウェアでは、サインイン等によってユーザー認証に成功しているユーザー自身が行った好みの意思表示等の行動を表すレコードを更新可能となる。 Taking the matching service as an example, for example, in the first API definition input area 611 related to list display, by turning ON the input field corresponding to the second input field 613-2, the generated source code In the software that operates using the matching service, only users who have successfully authenticated by signing in or the like can display a list of other users who use the matching service. In addition, in the fourth API definition input area 614 related to updating, by turning ON the input field corresponding to the third input field 613-3, the software that operates using the generated source code can be signed in. Thus, it is possible to update the record representing the behavior such as the declaration of intention of the user who has successfully authenticated the user himself/herself.
 企業端末110を用いる入力者により入力されたAPI定義は、定期的又は断続的に装置100に対して送信される(S307)。そして、テーブル定義及びAPI定義の入力後、装置100は、企業端末110から、ソースコード生成の要求を受信したことに応じて(S308)、記憶部103に記憶された、予め作成されたソースコードの1又は複数のテンプレートを取得して、当該テーブル定義及びAPI定義に従ったソースコードを当該1又は複数のテンプレートを用いて生成する(S309)。生成されたソースコードは、装置100から企業端末110に自動的に送信されるか、必要に応じて企業端末110からの取得要求を受けて送信される(S310)。 The API definition input by the input person using the company terminal 110 is periodically or intermittently transmitted to the device 100 (S307). After inputting the table definition and the API definition, the device 100 receives a source code generation request from the company terminal 110 (S308), and generates the pre-created source code stored in the storage unit 103. one or a plurality of templates are acquired, and source code according to the table definition and API definition is generated using the one or a plurality of templates (S309). The generated source code is automatically transmitted from the device 100 to the company terminal 110, or is transmitted upon receiving an acquisition request from the company terminal 110 as necessary (S310).
 ソースコード生成の詳細 
 図7に、本発明の第1の実施形態にかかるソースコード生成の流れを示す。まず、装置100は、テーブル定義を取得する(S701)。当該テーブル定義にユーザー認証を行うことの指定が含まれていれば(S702)、装置100は、予め作成されたソースコードの1又は複数のテンプレートのうちのユーザー認証のための第1のテンプレートを取得して、ユーザー認証のためのコードを生成する(S703)。
Source code generation details
FIG. 7 shows the flow of source code generation according to the first embodiment of the present invention. First, the device 100 acquires a table definition (S701). If the table definition includes a specification to perform user authentication (S702), device 100 selects the first template for user authentication from among one or a plurality of pre-created source code templates. It acquires and generates a code for user authentication (S703).
 ユーザー認証のためのコードの生成後、又は、テーブル定義にユーザー認証を行うことの指定が含まれない場合、装置100は、API定義を取得する(S704)。当該API定義に、いずれかのAPIについて、ユーザー認証に成功していることを実行の認可の条件とする指定が含まれていれば(S705)、装置100は、当該認可のための追加コードを生成する(S706)。 After generating the code for user authentication, or if the table definition does not include a specification for performing user authentication, the device 100 acquires the API definition (S704). If the API definition includes a specification that the user authentication is successful as a condition for authorization of execution of any API (S705), the device 100 adds the additional code for authorization. Generate (S706).
 追加コードの生成後、又は、API定義に認可を行うことの指定が含まれない場合、装置100は、予め作成されたソースコードの1又は複数のテンプレートのうちの当該認可のための第2のテンプレートを取得して、各APIのためのコードを生成する(S707)。API定義の取得をテーブル定義におけるユーザー認証指定の有無の判定後に行うものとして、記述したが、API定義を先に取得してもよい。 After the additional code is generated, or if the API definition does not include a specification to perform authorization, the device 100 generates a second template for authorization from among one or more pre-created source code templates. A template is obtained to generate code for each API (S707). Although it is described that the API definition is obtained after determining whether or not user authentication is specified in the table definition, the API definition may be obtained first.
 このように、ユーザー認証及び当該ユーザー認証を用いた認可を、入力者にチェックボックスのクリック又はタップによる選択によって指定させることで、各APIについて、適宜必要な権限設定がなされたソースコードを簡便に生成することが可能になる。 In this way, by allowing the user to specify user authentication and authorization using the user authentication by clicking or tapping checkboxes, it is possible to easily generate the source code with appropriate permission settings for each API. can be generated.
 認可のための追加コードは、第2の入力欄613-2がONに指定されている場合と、第3の入力欄613-3がONに指定されている場合とで異なる。 The additional code for authorization differs depending on whether the second entry field 613-2 is designated ON or the third entry field 613-3 is designated ON.
 第2の入力欄613-2がONの場合、装置100は、第2のテンプレートに含まれる以下のようなコードから、
  <%- if @table_definition.apis.auth_actions.present? -%>
  before_action :authenticate_identical!, only: %w[<%= @table_definition.apis.auth_actions.join(' ') %>]
  <%- end -%>
次のようなAPI定義に従ったソースコードを生成する。
  before_action :authenticate_identical!, only: %w[index create]
ライクテーブル「Likes」に対して、第1のAPI定義入力領域611及び第3のAPI定義入力領域613において「Auth」がONにされている場合に、第1のAPI定義入力領域611に関連づけられた一覧表示の操作及び第3のAPI定義入力領域613に関連づけられた生成の操作を実行する前にユーザー認証に成功しているか否かを判定する。ここで、図6において「list」と表示されている操作はソースコードにおいては「index」と呼称している。
When the second input field 613-2 is ON, the device 100, from the following code included in the second template,
<%- if @table_definition.apis.auth_actions.present? -%>
before_action :authenticate_identical!, only: %w[<%= @table_definition.apis.auth_actions.join('')%>]
<%-end-%>
Generate the source code according to the following API definition.
before_action :authenticate_identical!, only: %w[index create]
For the like table "Likes", when "Auth" is turned ON in the first API definition input area 611 and the third API definition input area 613, the like table is associated with the first API definition input area 611. Before executing the list display operation and the creation operation associated with the third API definition input area 613, it is determined whether or not user authentication has succeeded. Here, the operation displayed as "list" in FIG. 6 is called "index" in the source code.
 第3の入力欄613-3がONの場合、装置100は、第2のテンプレートに含まれる以下のようなコードから、
  <%- if @table_definition.apis.index_api.present? -%>
  def index
   <%- if @table_definition.apis.index_api.use_authed_record -%>
   @<%= @table_definition.name %> = @current_user.<%= @table_definition.name %> 
  <%- else -%>
   @<%= @table_definition.name %> = <%= @table_definition.klass %>
   <%- end -%>
   render json: {
    <%= @table_definition.name %>: serialize(@<%= @table_definition.name %>),
    success: true
   }
  end
  <%- end -%>
次のようなAPI定義に従ったソースコードを生成する。
  def index
   @likes = @current_user.likes
   render json: {
    likes: serialize(@likes),
    success: true
   }
  end
「@current_user」が、当該APIの実行対象のレコードを当該APIを実行するユーザー自身に関連するレコードに限定することを表している。
When the third input field 613-3 is ON, the device 100, from the following code included in the second template,
<%- if @table_definition.apis.index_api.present? -%>
def index
<%- if @table_definition.apis.index_api.use_authed_record -%>
@<%= @table_definition.name %> = @current_user.<%= @table_definition.name %>
<%-else-%>
@<%= @table_definition.name %> = <%= @table_definition.klass %>
<%-end-%>
render json: {
<%= @table_definition.name %>: serialize(@<%= @table_definition.name %>),
success: true
}
end
<%-end-%>
Generate the source code according to the following API definition.
def index
@likes = @current_user.likes
render json: {
likes: serialize(@likes),
success: true
}
end
"@current_user" indicates that the records to be executed by the API are limited to records related to the user who executes the API.
 (第2の実施形態) 
 本発明の第2の実施形態では、第1の実施形態にかかるプログラミング工程の少なくとも一部の自動化を可視化する。具体的には、装置100は、企業端末110に、予め作成された1又は複数のテンプレートを用いることで自動化されたプログラミング工程に応じた作業量の削減量又は削減率を送信する。ここで「作業量」は、時間又は時間に係数を乗じた値とすることができ、削減された作業量に応じた削減費用の額又は率を追加的又は代替的に表示されるようにしてもよい。また、ソフトウェアエンジニアの生産性は、ばらつきが大きいことから、当該値は、ソフトウェアエンジニアごとに定めることが好ましい。
(Second embodiment)
A second embodiment of the present invention visualizes the automation of at least part of the programming process according to the first embodiment. Specifically, the device 100 transmits to the enterprise terminal 110 the amount of work reduction or the reduction rate according to the automated programming process using one or more pre-created templates. Here, the "work amount" can be time or a value obtained by multiplying the time by a coefficient, and additionally or alternatively, the amount or rate of the reduction cost according to the reduced work amount is displayed. good too. Also, since the productivity of software engineers varies greatly, it is preferable to set the value for each software engineer.
 図8に、本発明の第2の実施形態にかかる削減量表示画面の一例を示す。削減量表示画面800は、自動化されたプログラミング工程の種類ごとの開発時間の削減量を表示しており、さらに、合計の削減量を自動化スコア801として表示している。テーブルに関する削減量802は、テーブル定義の入力の自動化による作業量削減を表している。テーブル定義の入力は、設計工程を位置づけることも考えられるが、ここでは、プログラミング工程の一部として説明している。APIに関する削減量803は、予め作成された1又は複数のテンプレートを用いたコーディングの自動化による作業量削減を表している。モジュールに関する削減量804は、テーブル定義及びAPI定義に加えて、ユーザーに使用したいモジュールの指定を入力させ、指定されたモジュールに対応づけて記憶部103に記憶されたソースコードテンプレートを用いてソースコードが生成される際の作業量削減を表している。モジュールにより実現される機能の例としては、メールアドレスログイン、決済等が挙げられる。 FIG. 8 shows an example of the reduction amount display screen according to the second embodiment of the present invention. A reduction display screen 800 displays the reduction in development time for each type of automated programming process, and further displays the total reduction as an automation score 801 . A reduction amount 802 related to the table represents a reduction in the amount of work due to automating the input of the table definition. Although it is conceivable that the input of the table definition is positioned in the design process, it is explained here as part of the programming process. A reduction amount 803 related to API represents a reduction in the amount of work by automating coding using one or a plurality of pre-created templates. The module-related reduction amount 804 is obtained by having the user input specification of a module to be used in addition to the table definition and API definition, and using the source code template stored in the storage unit 103 in association with the specified module. represents the work reduction when is generated. Examples of functions implemented by modules include e-mail address login and payment.
 フロントエンドに関する削減量805は、テーブル定義及びAPI定義に加えて、ユーザーにソフトウェアのユーザーインターフェース(UI)定義を入力させ、当該UI定義に従ったソースコードが生成される際の作業量削減を表している。一例として、UIに対してなされた入力に応じて装置100が所定の処理を実行する場合に、当該入力に対応するAPIコードが呼び出されるようにすることができ、このようにAPIコードをUIに対する入力に応じて呼び出すためのコードをフロントエンドに関する削減量805に含めて算出及び表示するようにしてもよい。フロントエンドには、ソフトウェアのユーザーが用いるUI及び当該ソフトウェアの管理者が用いるUIがある。 The front-end reduction amount 805 represents the amount of work reduction when the user inputs the software user interface (UI) definition in addition to the table definition and API definition, and the source code is generated according to the UI definition. ing. As an example, when the device 100 performs a predetermined process in response to an input made to the UI, the API code corresponding to that input may be invoked, such that the API code is sent to the UI. Code to be invoked depending on the input may be included in front-end reduction 805 and calculated and displayed. The front end includes a UI used by software users and a UI used by administrators of the software.
 このように、生成されたソースコードに含まれる複数のコード部分のそれぞれについて、プログラミング工程がどの程度自動化されたかを可視化することで、装置100により提供されるサービスのユーザーに対し、ソフトウェア開発のコスト削減への貢献を客観的に伝えることが可能となる。加えて、テーブル定義の入力工程がどの程度自動化されたかを可視化することで、ソフトウェア開発のコスト削減への貢献を伝えることも可能となる。 In this way, by visualizing the extent to which the programming process has been automated for each of the plurality of code portions included in the generated source code, the user of the service provided by the device 100 can reduce the cost of software development. It is possible to objectively communicate the contribution to reduction. In addition, by visualizing the extent to which the table definition input process has been automated, it is also possible to convey the contribution to software development cost reduction.
 なお、上述の実施形態において、「××のみに基づいて」、「××のみに応じて」、「××のみの場合」というように「のみ」との記載がなければ、本明細書においては、付加的な情報も考慮し得ることが想定されていることに留意されたい。また、一例として、「aの場合にbする」という記載は、明示した場合を除き、「aの場合に常にbする」こと、「aの直後にbする」ことを必ずしも意味しないことに留意されたい。また、「Aを構成する各a」という記載は、必ずしもAが複数の構成要素によって構成されることを意味するものではなく、構成要素が単数であることを含む。 In the above-described embodiments, if there is no description of "only" such as "based only on XX", "only in response to XX", or "only in the case of XX", in this specification Note that it is assumed that , may also consider additional information. Also, as an example, it should be noted that the statement ``do b in the case of a'' does not necessarily mean ``always do b in the case of a'' or ``do b immediately after a'' unless explicitly stated otherwise. want to be Moreover, the description of "each a constituting A" does not necessarily mean that A is composed of a plurality of constituent elements, but includes that the constituent elements are singular.
 また、念のため、なんらかの方法、プログラム、端末、装置、サーバ又はシステム(以下「方法等」)において、本明細書で記述された動作と異なる動作を行う側面があるとしても、本発明の各態様は、本明細書で記述された動作のいずれかと同一の動作を対象とするものであり、本明細書で記述された動作と異なる動作が存在することは、当該方法等を本発明の各態様の範囲外とするものではないことを付言する。 Also, just in case, any method, program, terminal, device, server, or system (hereinafter "method, etc."), even if there is an aspect that operates differently from the operations described in this specification, each of the present invention Aspects are directed to acts that are identical to any of the acts described herein, and that there are acts that are different from those described herein, the methods, etc. It should be added that it is not out of the scope of the embodiments.
 また、図7において示される「開始」及び「終了」は、一例を示すものに過ぎず、本実施形態にかかる方法がS701によって必ず開始され、S707によって必ず終了することを意味するものではない。 Also, the "start" and "end" shown in FIG. 7 are merely examples, and do not necessarily mean that the method according to the present embodiment always starts at S701 and ends at S707.
 また、装置100がソースコード生成の要求を受信した以降の処理の少なくとも一部について、テーブル定義及びAPI定義の受信までの処理を行うサーバとは別のサーバに担わせることで、負荷を分散するようにしてもよい。 Moreover, at least a part of the processing after the device 100 receives the source code generation request is performed by a server other than the server that performs the processing up to the reception of the table definition and API definition, thereby distributing the load. You may do so.
 100 装置
 101 通信部
 102 処理部
 103 記憶部
 104 記憶装置
 400 テーブル定義入力画面
 401 テーブル追加ボタン
 410 テーブル名入力領域
 420 リレーション定義入力領域
 430 カラム定義入力領域
 431 カラム追加ボタン
 440 追加機能指定領域
 600 API定義入力画面
 611 第1のAPI定義入力領域
 612 第2のAPI定義入力領域
 613 第3のAPI定義入力領域
 613-1 第1の入力欄
 613-2 第2の入力欄
 613-3 第3の入力欄
 613-4 第4の入力欄
 613-5 第5の入力欄
 614 第4のAPI定義入力領域
 615 第5のAPI定義入力領域
 800 削減工数表示画面
 801 自動化スコア
 802 テーブルに関する削減量
 803 APIに関する削減量
 804 モジュールに関する削減量
 805 フロントエンドに関する削減量
100 device 101 communication unit 102 processing unit 103 storage unit 104 storage device 400 table definition input screen 401 table add button 410 table name input area 420 relation definition input area 430 column definition input area 431 column add button 440 additional function designation area 600 API definition Input screen 611 First API definition input area 612 Second API definition input area 613 Third API definition input area 613-1 First input field 613-2 Second input field 613-3 Third input field 613-4 4th input field 613-5 5th input field 614 4th API definition input area 615 5th API definition input area 800 Man-hour reduction display screen 801 Automation score 802 Reduction amount related to table 803 Reduction amount related to API 804 Reductions related to modules 805 Reductions related to front end

Claims (20)

  1.  ソフトウェアのソースコード生成を支援するための方法であって、
     装置が、端末から、複数のテーブルについてのテーブル定義及びAPI定義を受信するステップであって、前記テーブル定義は、前記ソフトウェアのユーザーの基本情報に関するユーザーテーブルを含むステップと、
     前記装置が、前記端末から、ソースコード生成の要求を受信するステップと、
     前記装置が、前記要求の受信に応じて、予め作成されたソースコードの1又は複数のテンプレートを取得して、前記テーブル定義及び前記API定義に従ったソースコードを前記1又は複数のテンプレートを用いて生成するステップと
    を含む。
    A method for assisting software source code generation, comprising:
    a device receiving table definitions and API definitions for a plurality of tables from a terminal, said table definitions including a user table for basic information of a user of said software;
    the device receiving a request for source code generation from the terminal;
    The apparatus obtains one or more templates of pre-created source code in response to receiving the request, and generates source code according to the table definition and the API definition using the one or more templates. and generating
  2.  請求項1に記載の方法であって、
     前記テーブル定義は、前記ユーザーテーブルの各レコードに含まれるユーザー識別子により識別されるユーザーに対してユーザー認証を行うことの指定を含む。
    2. The method of claim 1, wherein
    The table definition includes a specification to perform user authentication for a user identified by a user identifier included in each record of the user table.
  3.  請求項1に記載の方法であって、
     前記テーブル定義は、前記ユーザーテーブルが有する複数のカラムのうちの前記ユーザー認証に用いるカラムの特定を含む。
    2. The method of claim 1, wherein
    The table definition includes specification of a column used for the user authentication among a plurality of columns of the user table.
  4.  請求項3に記載の方法であって、
     前記特定されたカラムの値は、電話番号である。
    4. The method of claim 3, wherein
    The value of the identified column is a phone number.
  5.  請求項2から4のいずれかに記載の方法であって、
     前記1又は複数のテンプレートは、ユーザー認証のための第1のテンプレートを含む。
    A method according to any one of claims 2 to 4,
    The one or more templates include a first template for user authentication.
  6.  請求項1に記載の方法であって、
     前記API定義は、各テーブルについて、レコードの表示、生成、更新及び削除のうちの少なくとも一部を実行するための1又は複数のAPIの作成の指定を含む。
    2. The method of claim 1, wherein
    The API definition includes specifications for creating one or more APIs for performing at least a portion of displaying, creating, updating, and deleting records for each table.
  7.  請求項6に記載の方法であって、
     前記API定義は、いずれかのAPIについて、前記ユーザー認証に成功していることを実行の認可の条件とする指定を含む。
    7. The method of claim 6, wherein
    The API definition includes a specification that the successful user authentication is a condition for permission to execute any of the APIs.
  8.  請求項6に記載の方法であって、
     前記API定義は、前記複数のテーブルのうちの前記ユーザーテーブル以外の他のテーブルのレコードの操作を実行するためのAPIを実行する認可条件として、前記APIを実行するユーザーのユーザー認証に成功していることの指定を含む。
    7. The method of claim 6, wherein
    In the API definition, as an authorization condition for executing an API for executing an operation on records of a table other than the user table among the plurality of tables, the user who executes the API is successfully authenticated. including specifying that
  9.  請求項8に記載の方法であって、
     前記API定義は、前記認可条件として、さらに、前記APIの実行対象のレコードを前記APIを実行するユーザー自身に関連するレコードに限定することの指定を含む。
    9. The method of claim 8, wherein
    The API definition further includes, as the authorization condition, a designation that the records to be executed by the API are limited to records related to the user who executes the API.
  10.  請求項7から9のいずれかに記載の方法であって、
     前記1又は複数のテンプレートは、前記認可のための第2のテンプレートを含む。
    A method according to any one of claims 7 to 9,
    The one or more templates include a second template for the authorization.
  11.  請求項1に記載の方法であって、
     前記装置が受信した前記テーブル定義の第2の部分は、前記端末から受信した前記テーブル定義の第1の部分に応じて、前記装置が生成して、前記端末に送信したものである。
    2. The method of claim 1, wherein
    The second part of the table definition received by the device is generated and sent to the terminal by the device in response to the first part of the table definition received from the terminal.
  12.  請求項11に記載の方法であって、
     前記第1の部分は、前記ソフトウェアの利用料金の支払いを可能とする指定を含み、
     前記第2の部分は、前記利用料金の支払いに関するペイメントテーブルが有する複数のカラムの定義、及び、前記ユーザーテーブルが有する前記ペイメントテーブルとのリレーションの定義を含む。
    12. The method of claim 11, wherein
    the first part includes a designation that allows payment for use of the software;
    The second part includes definitions of a plurality of columns of a payment table related to payment of usage fees, and definitions of relations between the user table and the payment table.
  13.  請求項11に記載の方法であって、
     前記第1の部分は、前記ユーザーテーブル以外の他のテーブルが有する前記ユーザーテーブルとのリレーションの定義を含み、
     前記第2の部分は、前記他のテーブルが有する前記ユーザーテーブルに関連づけられたカラムの定義を含む。
    12. The method of claim 11, wherein
    The first part includes definitions of relations with the user table that other tables other than the user table have,
    The second part includes definitions of the columns associated with the user table that the other table has.
  14.  請求項1に記載の方法であって、
     前記装置が、前記端末に、前記1又は複数のテンプレートを用いることで自動化されたプログラミング工程に応じた作業量の削減量若しくは削減率又は前記削減量に応じた削減費用の額若しくは率を送信するステップをさらに含む。
    2. The method of claim 1, wherein
    The device transmits to the terminal an amount or rate of work reduction according to an automated programming process using the one or more templates, or an amount or rate of cost reduction according to the amount of reduction. Further including steps.
  15.  請求項14に記載の方法であって、
     前記作業量は、時間又は時間に係数を乗じた値である。
    15. The method of claim 14, wherein
    The amount of work is time or a value obtained by multiplying time by a coefficient.
  16.  請求項14に記載の方法であって、
     前記削減量又は前記削減率は、前記プログラミング工程の種類ごとに算出される。
    15. The method of claim 14, wherein
    The reduction amount or the reduction rate is calculated for each type of the programming process.
  17.  請求項14に記載の方法であって、
     前記ソースコードは、複数のコード部分を含み、
     前記複数のコード部分は、API定義に従ったAPIコードと、前記ソフトウェアのユーザーインターフェースに対する入力に応じて前記APIコードのうちの少なくとも一部を呼び出すためのコードを含むユーザーインターフェースコードとを含み、
     前記削減量又は前記削減率は、前記複数の部分のそれぞれについて算出される。
    15. The method of claim 14, wherein
    the source code includes a plurality of code portions;
    the plurality of code portions includes API code according to an API definition and user interface code including code for invoking at least a portion of the API code in response to input to a user interface of the software;
    The reduction amount or the reduction rate is calculated for each of the plurality of portions.
  18.  請求項1に記載の方法であって、
     前記装置は、インターネット上のサーバである。
    2. The method of claim 1, wherein
    The device is a server on the Internet.
  19.  装置に、ソフトウェアのソースコード生成を支援するための方法を実行させるためのプ
    ログラムであって、前記方法は、
     前記装置が、端末から、複数のテーブルについてのテーブル定義及びAPI定義を受信するステップであって、前記テーブル定義は、前記ソフトウェアのユーザーの基本情報に関するユーザーテーブルを含むステップと、
     前記装置が、前記端末から、ソースコード生成の要求を受信するステップと、
     前記装置が、前記要求の受信に応じて、予め作成されたソースコードの1又は複数のテンプレートを取得して、前記テーブル定義及び前記API定義に従ったソースコードを前記1又は複数のテンプレートを用いて生成するステップと
    を含む。
    A program for causing a device to execute a method for assisting software source code generation, the method comprising:
    said device receiving from a terminal a table definition and an API definition for a plurality of tables, said table definition including a user table for basic information of a user of said software;
    the device receiving a request for source code generation from the terminal;
    The apparatus obtains one or more templates of pre-created source code in response to receiving the request, and generates source code according to the table definition and the API definition using the one or more templates. and generating
  20.  ソフトウェアのソースコード生成を支援するための装置であって、
     端末から、複数のテーブルについてのテーブル定義であって、前記ソフトウェアのユーザーの基本情報に関するユーザーテーブルを含むテーブル定義及びAPI定義を受信し、
     前記端末から、ソースコード生成の要求を受信し、
     前記要求の受信に応じて、予め作成されたソースコードの1又は複数のテンプレートを取得して、前記テーブル定義及び前記API定義に従ったソースコードを前記1又は複数のテンプレートを用いて生成する。

     
    A device for supporting software source code generation, comprising:
    receiving, from a terminal, table definitions for a plurality of tables, the table definitions including user tables relating to basic information of users of the software, and API definitions;
    receiving a source code generation request from the terminal;
    In response to receiving the request, one or more templates of pre-created source code are obtained, and source code according to the table definition and the API definition is generated using the one or more templates.

PCT/JP2022/031853 2021-08-24 2022-08-24 Device and method for assisting in source code generation for software and program for device and method WO2023027101A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2021136003 2021-08-24
JP2021-136003 2021-08-24
JP2022-112819 2022-07-14
JP2022112819A JP2023031251A (en) 2021-08-24 2022-07-14 Apparatus and method for supporting source code generation of software and program therefor

Publications (1)

Publication Number Publication Date
WO2023027101A1 true WO2023027101A1 (en) 2023-03-02

Family

ID=85322784

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/031853 WO2023027101A1 (en) 2021-08-24 2022-08-24 Device and method for assisting in source code generation for software and program for device and method

Country Status (1)

Country Link
WO (1) WO2023027101A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008279635A (en) * 2007-05-09 2008-11-20 Kyocera Mita Corp Image forming apparatus
JP2010224824A (en) * 2009-03-23 2010-10-07 Toshiba Corp Information processing apparatus
JP2013238976A (en) * 2012-05-14 2013-11-28 Nomura Research Institute Ltd Source code generation system
JP2014115806A (en) * 2012-12-10 2014-06-26 Hitachi Systems Ltd System and method for supporting work automation
JP7129578B1 (en) * 2021-08-24 2022-09-01 株式会社Jitera Apparatus, method and program for supporting software source code generation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008279635A (en) * 2007-05-09 2008-11-20 Kyocera Mita Corp Image forming apparatus
JP2010224824A (en) * 2009-03-23 2010-10-07 Toshiba Corp Information processing apparatus
JP2013238976A (en) * 2012-05-14 2013-11-28 Nomura Research Institute Ltd Source code generation system
JP2014115806A (en) * 2012-12-10 2014-06-26 Hitachi Systems Ltd System and method for supporting work automation
JP7129578B1 (en) * 2021-08-24 2022-09-01 株式会社Jitera Apparatus, method and program for supporting software source code generation

Similar Documents

Publication Publication Date Title
TWI693523B (en) Online collaboration systems and methods
US20210337015A1 (en) Method and system of application development for multiple device client platforms
US20110296372A1 (en) Deployment environment systems, methods, and apparatuses for developing applications and diagnostic price and/or time quote determination systems, methods, and apparatuses for application development services
US20140047368A1 (en) Application development tool
WO2017100014A1 (en) Creating notes on lock screen
JP5050371B2 (en) Operation record reproduction apparatus and program
US20100169457A1 (en) Social user script service by service proxy
JP7129578B1 (en) Apparatus, method and program for supporting software source code generation
CN110968367A (en) E-commerce commodity field configuration method, device, server and storage medium
CN102004729A (en) Method and system for showing website webpage and website server
US20210209298A1 (en) Computer-implemented systems and methods for managing an electronic document
WO2023027101A1 (en) Device and method for assisting in source code generation for software and program for device and method
JP2023031251A (en) Apparatus and method for supporting source code generation of software and program therefor
CN113379375B (en) Method and device for guiding subscription in chat mode and electronic equipment
US20180136791A1 (en) Conversation connected visualization of items based on a user created list
CN109766093B (en) Method and device for collaborative real-time editing, electronic equipment and storage medium
JP2002108789A (en) Circular approving system, circular approving method and medium recording circular approving program
JP2002230148A (en) Trouble information management program and trouble information management method
JP2001134681A (en) Method for processing and defining electronic document, storage medium with stored processing program for electronic document, storage medium with stored definition program for electronic document and electronic document system
JP2012128533A (en) Information processing system, information processing device, and control method and program thereof
JP5651873B2 (en) Operation support method and computer
JP5190324B2 (en) Personal information disclosure support device
US20150143333A1 (en) Native Application Variation
JP5053831B2 (en) Workflow system, control method thereof and control program
KR20190122462A (en) Method and apparatus for providing contract management service

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22861389

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE