JP2023031223A - ソフトウェアのソースコード生成を支援するための装置、方法及びそのためのプログラム - Google Patents

ソフトウェアのソースコード生成を支援するための装置、方法及びそのためのプログラム Download PDF

Info

Publication number
JP2023031223A
JP2023031223A JP2022050519A JP2022050519A JP2023031223A JP 2023031223 A JP2023031223 A JP 2023031223A JP 2022050519 A JP2022050519 A JP 2022050519A JP 2022050519 A JP2022050519 A JP 2022050519A JP 2023031223 A JP2023031223 A JP 2023031223A
Authority
JP
Japan
Prior art keywords
source code
definition
api
user
templates
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
JP2022050519A
Other languages
English (en)
Other versions
JP7129578B1 (ja
Inventor
直 柳澤
Sunao Yanagisawa
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.)
Jitera
Jitera Inc
Original Assignee
Jitera
Jitera Inc
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 Jitera, Jitera Inc filed Critical Jitera
Priority to JP2022050519A priority Critical patent/JP7129578B1/ja
Application granted granted Critical
Publication of JP7129578B1 publication Critical patent/JP7129578B1/ja
Publication of JP2023031223A publication Critical patent/JP2023031223A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】ソフトウェアのソースコード生成を支援するための方法であって、当該ソースコードのプログラミング工程の少なくとも一部を自動化する。【解決手段】装置100は、企業端末110に、テーブル定義入力画面表示情報を送信し(S301)、入力されたテーブル定義は装置100に対して送信される(S302乃至S305)。次いで、装置100は、企業端末110に、各テーブルについて1又は複数のAPIを定義するためのAPI定義入力画面表示情報を送信し(S306)、入力されたAPI定義は装置100に対して送信される(S307)。装置100は、ソースコード生成の要求を受信したことに応じて(S308)、予め作成された1又は複数のテンプレートを取得して、当該テーブル定義及びAPI定義に従ったソースコードを生成する(S309)。生成されたソースコードは、装置100から企業端末110に送信される(S310)。【選択図】図3

Description

本発明は、ソフトウェアのソースコード生成を支援するための装置、方法及びそのためのプログラムに関する。
ソフトウェア開発は、要件定義、設計、プログラミング、テスト等の工程に分けられる。開発したソフトウェアを使用する事業会社がソフトウェアエンジニアを社内に抱えることももちろんある一方、社外の開発会社に開発工程の全部又は一部が委託されることも少なくない。たとえば、要件定義及び設計を上流工程として自社で担い、プログラミング及びテストを下流工程として社外に委託するような例が挙げられる。
プログラミングが社外に委託される場合、プロジェクトの規模、委託先の稼働状況等に応じて、さらに再委託されることがある。また、比較的に安価な人件費で委託可能な海外企業に委託されることもあり、オフショア開発と呼ばれる。
いずれのかたちにしても、プログラミングの外部委託は、自社が有するソフトウェア開発のリソースを割くコストよりも外部委託に伴い発生するコストの方が小さい場合に広く採用されているところ、ソフトウェア開発のコストをさらに下げることのできる手法があれば、より望ましい。
本発明は、このような点に鑑みてなされたものであり、その目的は、ソフトウェアのソースコード生成を支援するための装置、方法及びそのためのプログラムであって、当該ソースコードのプログラミング工程の少なくとも一部を自動化することにある。
このような目的を達成するために、本発明の第1の態様は、ソフトウェアのソースコード生成を支援するための方法であって、装置が、端末から、複数のテーブルについてのテーブル定義及びAPI定義を受信するステップと、前記装置が、前記端末から、ソースコード生成の要求を受信するステップと、前記装置が、前記要求の受信に応じて、予め作成されたソースコードの1又は複数のテンプレートを取得して、前記テーブル定義及び前記API定義に従ったソースコードを前記1又は複数のテンプレートを用いて生成するステップとを含む。
また、本発明の第2の態様は、第1の態様の方法であって、前記テーブル定義は、前記ソフトウェアのユーザーの基本情報に関するユーザーテーブルの各レコードに含まれるユーザー識別子により識別されるユーザーに対してユーザー認証を行うことの指定を含む。
また、本発明の第3の態様は、第2の態様の方法であって、前記1又は複数のテンプレートは、ユーザー認証のための第1のテンプレートを含む。
また、本発明の第4の態様は、第2又は第3の態様の方法であって、前記テーブル定義は、前記ユーザーテーブルが有する複数のカラムのうちの前記ユーザー認証に用いるカラムの特定を含む。
また、本発明の第5の態様は、第4の態様の方法であって、前記特定されたカラムの値は、電話番号である。
また、本発明の第6の態様は、第1から第5のいずれかの態様の方法であって、前記API定義は、各テーブルについて、レコードの表示、生成、更新及び削除のうちの少なくとも一部を実行するための1又は複数のAPIの作成の指定を含む。
また、本発明の第7の態様は、第6の態様の方法であって、前記API定義は、いずれかのAPIについて、前記ユーザー認証に成功していることを実行の認可の条件とする指定を含む。
また、本発明の第8の態様は、第7の態様の方法であって、前記1又は複数のテンプレートは、前記認可のための第2のテンプレートを含む。
また、本発明の第9の態様は、第1から第8のいずれかの態様の方法であって、前記装置が受信した前記テーブル定義の第2の部分は、前記端末から受信した前記テーブル定義の第1の部分に応じて、前記装置が生成して、前記端末に送信したものである。
また、本発明の第10の態様は、第9の態様の方法であって、前記第1の部分は、前記ソフトウェアの利用料金の支払いを可能とする指定を含み、前記第2の部分は、前記利用料金の支払いに関するペイメントテーブルが有する複数のカラムの定義、及び、前記ユーザーテーブルが有する前記ペイメントテーブルとのリレーションの定義を含む。
また、本発明の第11の態様は、第9の態様の方法であって、前記第1の部分は、前記ユーザーテーブル以外の他のテーブルが有する前記ユーザーテーブルとのリレーションの定義を含み、前記第2の部分は、前記他のテーブルが有する前記ユーザーテーブルに関連づけられたカラムの定義を含む。
また、本発明の第12の態様は、第1から第11のいずれかの態様の方法であって、前記装置は、インターネット上のサーバである。
また、本発明の第13の態様は、装置に、ソフトウェアのソースコード生成を支援するための方法を実行させるためのプログラムであって、前記方法は、前記装置が、端末から、複数のテーブルについてのテーブル定義及びAPI定義を受信するステップと、前記装置が、前記端末から、ソースコード生成の要求を受信するステップと、前記装置が、前記要求の受信に応じて、予め作成されたソースコードの1又は複数のテンプレートを取得して、前記テーブル定義及び前記API定義に従ったソースコードを前記1又は複数のテンプレートを用いて生成するステップとを含む。
また、本発明の第14の態様は、ソフトウェアのソースコード生成を支援するための装置であって、端末から、複数のテーブルについてのテーブル定義及びAPI定義並びにソースコード生成の要求を受信し、前記要求の受信に応じて、予め作成されたソースコードの1又は複数のテンプレートを取得して、前記テーブル定義及び前記API定義に従ったソースコードを前記1又は複数のテンプレートを用いて生成する。
本発明の一態様によれば、複数のテーブルについてのテーブル定義及びAPI定義を受信して、予め作成された1又は複数のテンプレートを取得し、当該テーブル定義及び当該API定義に従ったソースコードを当該1又は複数のテンプレートを用いて生成することによって、ソフトウェアのソースコード生成を支援することが可能となる。
本発明の一実施形態にかかるソフトウェアのソースコード生成を支援するための装置を示す図である。 本発明の一実施形態にかかるデータベース設計の一例を示す図である。 本発明の一実施形態にかかるソフトウェアのソースコード生成を支援するための方法を示す図である。 本発明の一実施形態にかかるテーブル定義入力画面の一部を示す図である。 本発明の一実施形態にかかるテーブル定義入力画面の一部を示す図である。 本発明の一実施形態にかかるライクテーブルのリレーション定義入力領域の一例を示す図である。 本発明の一実施形態にかかるAPI定義入力画面の一部を示す図である。 本発明の一実施形態にかかるソースコード生成の流れを示す図である。
以下、本発明の実施形態を詳細に説明する。
図1に、本発明の一実施形態にかかる装置を示す。装置100は、装置100により提供されるサービスのユーザーである企業が用いる企業端末110とインターネット等のIPネットワークを介して通信して、データベース設計に関する入力を受信し、当該入力に基づいて、ソフトウェアのためのソースコードを生成する。主に、装置100はインターネット上のサーバであることを考えるが、社内ネットワーク上のサーバとし、当該社内ネットワーク上の端末からアクセスするものとすることも考えられる。
装置100は、通信インターフェースなどの通信部101と、プロセッサ、CPU等の処理部102と、メモリ、ハードディスク等の記憶装置又は記憶媒体を含む記憶部103とを備え、各処理を行うためのプログラムを実行することによって構成することができる。装置100は、1又は複数の装置、コンピュータないしサーバを含むことがある。また、当該プログラムは、1又は複数のプログラムを含むことがあり、また、コンピュータ読み取り可能な記憶媒体に記録して非一過性のプログラムプロダクトとすることができる。当該プログラムは、記憶部103又は装置100からIPネットワークを介してアクセス可能な記憶装置104に記憶しておき、処理部102において実行することができる。以下で記憶部103に記憶されるものとして記述されるデータは記憶装置104に記憶してもよく、またその逆も同様である。
図2に、データベース設計の一例を示す。本明細書では、図2に示すマッチングサービスのためのデータベース設計を例にソースコードの少なくとも一部を自動的に生成することを説明するが、図2に示すようなリレーショナルデータベースのほかに、階層型データベース、ネットワーク型データベースなどのさまざまなデータベース設計に対して本発明は適用可能である。
図2に示すデータベース設計は、好みの人と出会うためのマッチングサービスに必要な複数のテーブルの少なくとも一部を含み、各テーブルは、少なくとも1つの他のテーブルと関連づけられている。本明細書では「テーブル」という用語を用いるが、これは、データベースに含まれる、1又は複数のカラム及び1又は複数のレコードを有するデータ単位であって、少なくとも1つの他のデータ単位と関連づけられるデータ単位を包含する。
具体的には、図2には、マッチングサービスの各ユーザーの基本情報に関するユーザーテーブル「Users」、各ユーザーが他のどのユーザーが好みで、他のどのユーザーから好まれているかに関するライクテーブル「Likes」、ユーザー間で互いの好みが合致した一組のユーザーに関するマッチテーブル「Matches」、及び、好みが合致した一組のユーザー間のメッセージに関するメッセージテーブル「Messages」が含まれる。
また、図2には、各ユーザーの支払履歴に関するペイメントテーブル「Payments」が含まれ、必要に応じてさらに、各ユーザーの加入状況に関するサブスクリプションテーブル「Subscriptions」及び各プランに関するプランテーブル「Plans」を含んでもよい。
図3に、本発明の一実施形態にかかるソフトウェアのソースコード生成を支援するための方法を示す。まず、装置100は、企業端末110に、テーブル定義入力画面表示情報を送信する(S301)。企業端末110の表示画面に、当該テーブル定義入力画面表示情報に基づくテーブル定義入力画面が表示され、企業端末110を用いる入力者による入力が行われる。
入力者による入力は、テーブル定義入力画面表示情報を、たとえばHTML形式のファイルとして送信して、企業端末110の表示画面にウェブブラウザ上で表示される入力画面から行ったり、企業端末110にインストールされたアプリケーション(以下「アプリ」とも呼ぶ。)を動作させ、当該アプリケーション上で表示される入力画面から行ったりすることができる。なお、「テーブル定義入力画面」とは、ウェブブラウザ上で表示される場合にはウェブページ、モーダルウィンドウ、ポップアップウィンドウ等のさまざまな形式を採用することができ、アプリ上で表示される場合にはアプリの一画面とすることができる。いずれにおいても、テーブル定義を入力するための入力欄を有する領域を含む画面であれば、テーブル定義入力画面に該当する。
図4Aに、本発明の一実施形態にかかるテーブル定義入力画面の一部を示す。テーブル定義入力画面400は、テーブル追加ボタン401を有し、これをクリック又はタップにより選択することで、テーブルを追加することができる。各テーブルについて、テーブル定義入力画面400は、テーブル名入力領域410、リレーション定義入力領域420及びカラム定義入力領域430を有し、さらに追加機能指定領域440を有することができる。
図4Aは、マッチングサービスのユーザーの基本情報に関するユーザーテーブル「Users」のための入力を行う例であるが、ユーザーテーブル「Users」に限らず、リレーション定義入力領域420において、表示されているテーブルと他のテーブルとの間のリレーション(relation)を指定することができる。たとえば、ライクテーブル「Likes」を追加して、ライクテーブル「Likes」に対して、ユーザーテーブル「Users」との間のリレーションを指定することが考えられる。
図4Bに、本発明の一実施形態にかかるテーブル定義入力画面の一部を示す。これは、図4Aに示したテーブル定義入力画面400を下にスクロールして、カラム定義領域430を表示した状態である。カラム定義入力領域430は、カラム追加ボタン431を有し、これをクリック又はタップにより選択することで、テーブルを追加することができる。企業端末110を用いる入力者は、図2に示したデータベース設計に従って、各テーブルに対して、必要なカラムを定義していけばよい。
図4Aに戻ると、この例では、追加機能指定領域440において、ユーザーテーブル「Users」の各レコードに含まれるユーザー識別子により識別されるユーザーに対してユーザー認証(user authentication)を行うことを指定した場合、後述するソースコード生成時に、ユーザー認証を行うためのテンプレートを用いて、ユーザー認証のためのソースコードが生成されることとなる。ユーザー認証が行われる場合には、ユーザーテーブル「Users」のカラム定義において、複数のカラムのうちのユーザー認証に用いるカラムの特定をテーブル定義に含んでもよい。図4Bでは、電話番号を値として保持することになるカラムの型が認証用のキーを表す「auth_key」となっている。各カラムは、名称及び型を含み、オプション及びデフォルト値の少なくとも一方をさらに含んでもよい。支払い(payment)を許可することを指定した場合については、追って説明する。
この例では、ユーザーテーブル「Users」のためのテーブル定義入力画面400に追加機能指定領域440を含んでいるものの、他のテーブルのためのテーブル定義入力画面400に含んでもよい。たとえば、病院向けのソフトウェアである場合、医師ユーザー及び患者ユーザーが使用し、共にユーザー認証を行う必要があれば、例として、各医師の基本情報に関するドクターテーブル「Doctors」及び各患者の基本情報に関するペイシェントテーブル「Patients」を追加し、これらのテーブルに対してそれぞれ、ユーザー認証を行う指定がなされることになる。本明細書では「ユーザー」という用語を用いるが、自然人に限らず、法人も含み、たとえば、ユーザー企業を包含するものとして用いる。
企業端末110を用いる入力者による入力されたテーブル定義は、定期的又は断続的に装置100に対して送信される(S302)。そして、装置100では、受信したテーブル定義を記憶部103に記憶し、当該テーブル定義(「第1の部分」に相当。)が所定の内容を含む場合に、当該所定の内容に応じて変更(「第2の部分」に相当。)を加えた変更テーブル定義を含む新たなテーブル定義入力画面表示情報を生成し(S303)、企業端末110に送信する(S304)。
一例として、図5に示すように、企業端末110にて、ライクテーブル「Likes」に対して、ユーザーテーブル「Users」との間の第1のリレーション及び第2のリレーションを指定することができる。このようなリレーション定義が入力されたことに応じて、装置100が、ライクテーブル「Likes」に対して、第1のリレーション及び第2のリレーションによってユーザーテーブル「Users」に関連づけられた第1及び第2のカラムの定義をテーブル定義に加えることができる。
図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のテーブルを介して、関連づけがなされ得ることを意味する。
また、別の例として、ユーザーテーブル「Users」に対して、利用料金の支払いを可能とする指定がなされたことに応じて、装置100が、利用料金の支払履歴を関するペイメントテーブル「Payments」が有する複数のカラムの定義をテーブル定義に加えることができる。装置100は、さらに、利用料金の支払いを可能とする指定がなされたことに応じて、ユーザーテーブル「Users」のリレーション定義に、ペイメントテーブル「Payments」とのリレーション「has many」を加えることができ、ペイメントテーブル「Payments」のリレーション定義に、ユーザーテーブル「Users」とのリレーション「belongs to」を加えることができる。
このように、装置100において、入力者が入力したテーブル定義に応じて、適宜自動的に必要な定義が追加され、入力者は、その他の個別に必要な入力を行う(S305)。ここまでの処理で、データベース設計に対応するテーブル定義に関するデータが記憶部103に記憶される。
次いで、装置100は、企業端末110に、各テーブルについて、レコードの操作を実行するための1又は複数のAPIを定義するためのAPI定義入力画面表示情報を送信する(S306)。企業端末110の表示画面に、当該API定義入力画面表示情報に基づくAPI定義入力画面が表示され、企業端末110を用いる入力者による入力が行われる。API定義入力画面表示情報の実装には、テーブル定義入力画面表示情報と同様の手法を採用すればよい。
図6に、本発明の一実施形態にかかるAPI定義入力画面の一部を示す。API定義入力画面600では、テーブル定義に含まれる複数のテーブルのうちの少なくとも一部のテーブルについて、レコードの操作を実行するための1又は複数のAPIの作成を指定することができる。図6では、ライクテーブル「Likes」について、レコードの一覧表示(list)、詳細表示(detail)、生成(create)、更新(update)及び削除(delete)のうちの少なくとも一部を実行するための1又は複数のAPIの作成をONにすることができる。それぞれの操作に対応する第1のAPI定義入力領域611から第5のAPI定義入力領域615が与えられている。
レコードの生成に関する第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」が指定されている。ここで、パラメータは、プルダウンメニューからテーブル名及びカラム名を選択可能としてもよい。
マッチングサービスを例に考えると、たとえば、一覧表示に関する第1のAPI定義入力領域611において、第2の入力欄613-2に対応する入力欄がONとされることで、生成されたソースコードを用いて動作するソフトウェアでは、サインイン等によってユーザー認証に成功しているユーザーのみが、マッチングサービスを利用する他のユーザーの一覧表示が可能となる。また、更新に関する第4のAPI定義入力領域614において、第3の入力欄613-3に対応する入力欄がONとされることで、生成されたソースコードを用いて動作するソフトウェアでは、サインイン等によってユーザー認証に成功しているユーザー自身が行った好みの意思表示を表すレコードを更新可能となる。
企業端末110を用いる入力者による入力されたAPI定義は、定期的又は断続的に装置100に対して送信される(S307)。そして、テーブル定義及びAPI定義の入力後、装置100は、企業端末110から、ソースコード生成の要求を受信したことに応じて(S308)、記憶部103に記憶された、予め作成されたソースコードの1又は複数のテンプレートを取得して、当該テーブル定義及びAPI定義に従ったソースコードを当該1又は複数のテンプレートを用いて生成する(S309)。生成されたソースコードは、装置100から企業端末110に自動的に送信されるか、必要に応じて企業端末110からの取得要求を受けて送信される(S310)。
ソースコード生成の詳細
図7に、本発明の一実施形態にかかるソースコード生成の流れを示す。まず、装置100は、テーブル定義を取得する(S701)。当該テーブル定義にユーザー認証を行うことの指定が含まれていれば(S702)、装置100は、予め作成されたソースコードの1又は複数のテンプレートのうちのユーザー認証のための第1のテンプレートを取得して、ユーザー認証のためのコードを生成する(S703)。
ユーザー認証のためのコードの生成後、又は、テーブル定義にユーザー認証を行うことの指定が含まれない場合、装置100は、API定義を取得する(S704)。当該API定義に、いずれかのAPIについて、ユーザー認証に成功していることを実行の認可の条件とする指定が含まれていれば(S705)、装置100は、当該認可のための追加コードを生成する(S706)。
追加コードの生成後、又は、API定義に認可を行うことの指定が含まれない場合、装置100は、予め作成されたソースコードの1又は複数のテンプレートのうちの当該認可のための第2のテンプレートを取得して、各APIのためのコードを生成する(S707)。API定義の取得をテーブル定義におけるユーザー認証指定の有無の判定後に行うものとして、記述したが、API定義を先に取得してもよい。
このように、ユーザー認証及び当該ユーザー認証を用いた認可を、入力者にチェックボックスのクリック又はタップによる選択によって指定されることで、各APIについて、適宜必要な権限設定がなされたソースコードを簡便に生成することが可能になる。
認可のための追加コードは、第2の入力欄613-2がONに指定されている場合と、第3の入力欄613-3が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」と呼称している。
第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を実行するユーザー自身に関連するレコードに限定することを表している。
なお、上述の実施形態において、「××のみに基づいて」、「××のみに応じて」、「××のみの場合」というように「のみ」との記載がなければ、本明細書においては、付加的な情報も考慮し得ることが想定されていることに留意されたい。また、一例として、「aの場合にbする」という記載は、明示した場合を除き、「aの場合に常にbする」こと、「aの直後にbする」ことを必ずしも意味しないことに留意されたい。また、「Aを構成する各a」という記載は、必ずしもAが複数の構成要素によって構成されることを意味するものではなく、構成要素が単数であることを含む。
また、念のため、なんらかの方法、プログラム、端末、装置、サーバ又はシステム(以下「方法等」)において、本明細書で記述された動作と異なる動作を行う側面があるとしても、本発明の各態様は、本明細書で記述された動作のいずれかと同一の動作を対象とするものであり、本明細書で記述された動作と異なる動作が存在することは、当該方法等を本発明の各態様の範囲外とするものではないことを付言する。
また、図7において示される「開始」及び「終了」は、一例を示すものに過ぎず、本実施形態にかかる方法がS701によって必ず開始され、S707によって必ず終了することを意味するものではない。
また、装置100がソースコード生成の要求を受信した以降の処理の少なくとも一について、テーブル定義及びAPI定義の受信までの処理を行うサーバとは別のサーバに担わせることで、負荷を分散するようにしてもよい。
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定義入力領域

Claims (9)

  1. ソフトウェアのソースコード生成を支援するための方法であって、
    装置が、端末から、複数のテーブルについてのテーブル定義及びAPI定義を受信するステップと、
    前記装置が、前記端末から、ソースコード生成の要求を受信するステップと、
    前記装置が、前記要求の受信に応じて、予め作成されたソースコードの1又は複数のテンプレートを取得して、前記テーブル定義及び前記API定義に従ったソースコードを前記1又は複数のテンプレートを用いて生成するステップと
    を含み、
    前記テーブル定義は、前記ソフトウェアのユーザーの基本情報に関するユーザーテーブルの各レコードに含まれるユーザー識別子により識別されるユーザーに対してユーザー認証を行うことの指定を含む。
  2. 請求項1に記載の方法であって、
    前記1又は複数のテンプレートは、ユーザー認証のための第1のテンプレートを含む。
  3. 請求項1又は2に記載の方法であって、
    前記API定義は、各テーブルについて、レコードの表示、生成、更新及び削除のうちの少なくとも一部を実行するための1又は複数のAPIの作成の指定を含む。
  4. 請求項3に記載の方法であって、
    前記API定義は、いずれかのAPIについて、前記ユーザー認証に成功していることを実行の認可の条件とする指定を含む。
  5. 請求項4に記載の方法であって、
    前記1又は複数のテンプレートは、前記認可のための第2のテンプレートを含む。
  6. 請求項1から5のいずれかに記載の方法であって、
    前記装置が受信した前記テーブル定義の第2の部分は、前記端末から受信した前記テーブル定義の第1の部分に応じて、前記装置が生成して、前記端末に送信したものである。
  7. 請求項1から6のいずれかに記載の方法であって、
    前記装置は、インターネット上のサーバである。
  8. 装置に、ソフトウェアのソースコード生成を支援するための方法を実行させるためのプログラムであって、前記方法は、
    前記装置が、端末から、複数のテーブルについてのテーブル定義及びAPI定義を受信するステップと、
    前記装置が、前記端末から、ソースコード生成の要求を受信するステップと、
    前記装置が、前記要求の受信に応じて、予め作成されたソースコードの1又は複数のテンプレートを取得して、前記テーブル定義及び前記API定義に従ったソースコードを前記1又は複数のテンプレートを用いて生成するステップと
    を含み、
    前記テーブル定義は、前記ソフトウェアのユーザーの基本情報に関するユーザーテーブルの各レコードに含まれるユーザー識別子により識別されるユーザーに対してユーザー認証を行うことの指定を含む。
  9. ソフトウェアのソースコード生成を支援するための装置であって、
    端末から、複数のテーブルについてのテーブル定義及びAPI定義並びにソースコード生成の要求を受信し、
    前記要求の受信に応じて、予め作成されたソースコードの1又は複数のテンプレートを取得して、前記テーブル定義及び前記API定義に従ったソースコードを前記1又は複数のテンプレートを用いて生成し、
    前記テーブル定義は、前記ソフトウェアのユーザーの基本情報に関するユーザーテーブルの各レコードに含まれるユーザー識別子により識別されるユーザーに対してユーザー認証を行うことの指定を含む。
JP2022050519A 2021-08-24 2022-03-25 ソフトウェアのソースコード生成を支援するための装置、方法及びそのためのプログラム Active JP7129578B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022050519A JP7129578B1 (ja) 2021-08-24 2022-03-25 ソフトウェアのソースコード生成を支援するための装置、方法及びそのためのプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021136003 2021-08-24
JP2022050519A JP7129578B1 (ja) 2021-08-24 2022-03-25 ソフトウェアのソースコード生成を支援するための装置、方法及びそのためのプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2021136003 Division 2021-08-24 2021-08-24

Publications (2)

Publication Number Publication Date
JP7129578B1 JP7129578B1 (ja) 2022-09-01
JP2023031223A true JP2023031223A (ja) 2023-03-08

Family

ID=87884823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022050519A Active JP7129578B1 (ja) 2021-08-24 2022-03-25 ソフトウェアのソースコード生成を支援するための装置、方法及びそのためのプログラム

Country Status (1)

Country Link
JP (1) JP7129578B1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023027101A1 (ja) * 2021-08-24 2023-03-02 株式会社Jitera ソフトウェアのソースコード生成を支援するための装置、方法及びそのためのプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008279635A (ja) * 2007-05-09 2008-11-20 Kyocera Mita Corp 画像形成装置
JP2010224824A (ja) * 2009-03-23 2010-10-07 Toshiba Corp 情報処理装置
JP2013238976A (ja) * 2012-05-14 2013-11-28 Nomura Research Institute Ltd ソースコード生成システム
JP2014106557A (ja) * 2012-11-22 2014-06-09 Canon Marketing Japan Inc 情報処理装置、情報処理方法、及びコンピュータプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008279635A (ja) * 2007-05-09 2008-11-20 Kyocera Mita Corp 画像形成装置
JP2010224824A (ja) * 2009-03-23 2010-10-07 Toshiba Corp 情報処理装置
JP2013238976A (ja) * 2012-05-14 2013-11-28 Nomura Research Institute Ltd ソースコード生成システム
JP2014106557A (ja) * 2012-11-22 2014-06-09 Canon Marketing Japan Inc 情報処理装置、情報処理方法、及びコンピュータプログラム

Also Published As

Publication number Publication date
JP7129578B1 (ja) 2022-09-01

Similar Documents

Publication Publication Date Title
US20200236513A1 (en) Message extension app store
US11036696B2 (en) Resource allocation for database provisioning
CN109032663A (zh) 接口文档的生成方法、装置、计算机设备及存储介质
US20140223570A1 (en) Information processing apparatus, information processing system, and license management method
CN108762760A (zh) 软件界面自定义方法、装置、计算机设备及存储介质
US20140237610A1 (en) Method and system for distributed control of user privacy preferences
US8768949B2 (en) Document management user interface with user customized application functionalities
EP3497640A1 (en) Contract management system, apparatus, and method
JP6428330B2 (ja) 申請管理装置、申請管理システム、及びプログラム
JP7129578B1 (ja) ソフトウェアのソースコード生成を支援するための装置、方法及びそのためのプログラム
JPWO2012118205A1 (ja) ポリシ調停方法、調停サーバおよびプログラム
JP2007241804A (ja) 操作記録再現装置およびプログラム
EP3513316B1 (en) Personalized search environment
JP2010049397A (ja) コンポーネント連携シナリオ統合開発環境提供システム、シナリオ作成支援方法、及び、プログラム
WO2023027101A1 (ja) ソフトウェアのソースコード生成を支援するための装置、方法及びそのためのプログラム
CN106998350B (zh) 基于跨用户消息的功能项使用框架的方法及系统
JP2023031251A (ja) ソフトウェアのソースコード生成を支援するための装置、方法及びそのためのプログラム
JP2002230148A (ja) トラブル情報管理プログラム及びトラブル情報管理方法
JP7298208B2 (ja) 情報処理装置及びプログラム
JP2014085994A (ja) ライセンス管理装置、ライセンス管理システム、及びライセンス管理方法
JP6289004B2 (ja) 情報処理システム、情報処理方法、ユーザ端末および情報処理プログラム
JP5650018B2 (ja) 情報蓄積装置
JP5190324B2 (ja) 個人情報開示支援装置
JP6321904B2 (ja) 検索プログラム、検索方法及び情報処理装置
JP5811869B2 (ja) マスタ管理プログラム、マスタ管理方法及びマスタ管理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220325

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220506

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220617

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220701

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220822

R150 Certificate of patent or registration of utility model

Ref document number: 7129578

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150