JP5629355B1 - ソースプログラム生成装置およびソースプログラム生成プログラム - Google Patents

ソースプログラム生成装置およびソースプログラム生成プログラム Download PDF

Info

Publication number
JP5629355B1
JP5629355B1 JP2013122491A JP2013122491A JP5629355B1 JP 5629355 B1 JP5629355 B1 JP 5629355B1 JP 2013122491 A JP2013122491 A JP 2013122491A JP 2013122491 A JP2013122491 A JP 2013122491A JP 5629355 B1 JP5629355 B1 JP 5629355B1
Authority
JP
Japan
Prior art keywords
information
screen
component
source code
framework
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013122491A
Other languages
English (en)
Other versions
JP2014241011A (ja
Inventor
勝人 伊佐野
勝人 伊佐野
可津志 浅見
可津志 浅見
敏幸 天沼
敏幸 天沼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Information Systems Corp
Original Assignee
Mitsubishi Electric Information Systems 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 Information Systems Corp filed Critical Mitsubishi Electric Information Systems Corp
Priority to JP2013122491A priority Critical patent/JP5629355B1/ja
Application granted granted Critical
Publication of JP5629355B1 publication Critical patent/JP5629355B1/ja
Publication of JP2014241011A publication Critical patent/JP2014241011A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】1つの画面モデルから複数のフレームワークに対応するソースプログラムを生成することを課題とする。【解決手段】フレームワーク対応情報27と画面設計情報28と部品変換情報29を記憶する記憶手段と、画面設計情報28に指定された部品毎に基づき、画面モデル情報を生成する画面モデル生成手段23と、いずれかのフレームワークが指定されると、フレームワーク対応情報27を参照して生成プログラム種別を特定し、部品変換情報29を参照して画面モデル情報30を構成する画面モデル30に対応するソースコードをプログラム種別に対応する部品対応ソースコードに変換することにより指定されたフレームワークに対応するソースコードを生成するソースコード生成手段24とを備えたことを特徴とする。【選択図】図1

Description

この発明は、1つの画面設計図(画面モデル)から複数のフレームワークに対応するソースプログラムを作成するソースプログラム生成装置およびソースプログラム生成プログラムに関するものである。
フレームワークとは、アプリケーションを作成するときに汎用的に使われる機能を提供するソフトウェアである。このフレームワークを利用すると、フレームワークで予め用意されている機能と独自な機能とを組み合わせて、アプリケーションを作ることができる。つまり開発者は、汎用的な機能はフレームワークを利用し、独自な機能の部分のみ開発すれば良いので、開発効率の向上が見込まれる。
特許文献1(特開2010−108370号公報)では、複数のGUI(Graphical User Interface)フレームワーク間で共通のGUI部品を用いる場合は、指定されたIDにより、GUI部品を特定し、フレームワークに依存しない命令文を記述する。それにより、複数のフレームワークで共通のGUI部品を用いることができる。
しかし特許文献1に開示された、フレームワークプログラムでは、複数のフレームワークで共有できるのは、画面上の部品のみであり、画面全体の設計やその画面を用いた処理プログラムに関して、フレームワークに対応したソースコードを作成することはできない。
フレームワークを用いるために作成する画面モデルは、フレームワークが異なったとしても、共通で使用できることが多い。しかし従来技術では、1つの画面モデルを複数のフレームワークで共有する仕組みはなく、またフレームワークが作成するソースプログラムはフレームワーク毎に異なるため、1つの画面モデルから複数のソースプログラムを生成することはできない。
技術の変化とともに、フレームワークは多様化し、開発者はニーズに応じてフレームワークを変更する可能性がある。しかし従来技術では、フレームワークが変更されれば、ソースプログラムも再生成する必要が出てくるため、フレームワークを変更した後のソースプログラム生成に関しては、生産性の問題があった。
特開2010−108370号公報
この発明は、1つの画面モデルから複数のフレームワークに対応するソースプログラムを生成することを課題とする。
この発明に係るソースプログラム生成装置は、フレームワークと生成プログラム種別との対応付けをフレームワーク対応情報として記憶し、画面に配置する部品情報を画面設計情報として記憶し、生成プログラムに含まれる部品に関するソースコードについて、画面モデル情報の部品対応ソースコードとフレームワーク種別毎の部品対応ソースコードとを関連付けて部品変換情報として記憶する記憶手段と、上記画面設計情報に指定された部品に関する情報に基づき、基本のソースプログラムとなる画面モデル情報を生成する画面モデル生成手段と、いずれかのフレームワークが指定されると、上記フレームワーク対応情報を参照して生成プログラム種別を特定し、上記部品変換情報を参照して上記画面モデル情報を構成するソースコードを上記プログラム種別に対応するソースコードに変換することにより指定されたフレームワークに対応するソースコードを生成するソースコード生成手段とを備えたことを特徴とする。
また上記記憶手段は、さらに、上記画面モデル上に選択できる部品の部品情報を画面部品情報として記憶し、上記画面部品情報に基づき、部品をGUI(Graphical User Interface)表示し、操作者が作成したGUI画面に基づき、上記画面設計情報を生成する処理手段とを備えたことを特徴とする。
また上記画面設計情報は、上記部品情報として部品配置情報とともに、該当部品のイベント情報を記憶することを特徴とする。
上記ソースコード生成手段は、部品毎のソースコードを変換するとき、該当部品と他の部品との配置状況により、異なるソースコードに変換することを特徴とする。
またこの発明に係るソースプログラム生成プログラムは、コンピュータを、請求項1〜4のいずれか一項に記載のソースプログラム生成装置として機能させることを特徴とする。
この発明のソースプログラム生成装置およびソースプログラム生成プログラムによると、1つの画面モデルから複数のフレームワークに対応するソースプログラムを生成することができる。
実施の形態1におけるシステム構成図である。 実施の形態1において表示装置901に表示する操作画面500の一例を示した図である。 実施の形態1において操作画面500に表示するパレット502と設計エリア503の一例を示した図である。 実施の形態1において設計エリア503での画面設計例を示した図である。 実施の形態1で用いる画面部品情報26の構成の一例を示した図である。 実施の形態1で用いるフレームワーク対応情報27の構成の一例を示した図である。 実施の形態1で用いる画面設計情報28aの構成の一例を示した図である。 実施の形態1で用いる画面設計情報28bの構成の一例を示した図である。 実施の形態1で用いる部品変更情報29aの構成の一例を示した図である。 実施の形態1で用いる部品変更情報29bの構成の一例を示した図である。 実施の形態1で用いる画面モデル情報30の構成の一例を示した図である。 実施の形態1で用いるソースコード情報31aの構成の一例を示した図である。 実施の形態1で用いるソースコード情報31bの構成の一例を示した図である。 実施の形態1における処理の流れを示したフローチャートである。 実施の形態1における処理の流れを示したフローチャートである。 実施の形態1における処理の流れを示したフローチャートである。 各実施の形態で用いたクライアント端末100、ソースプログラム生成装置200、サーバ装置300のハードウェア資源の一例を示す図である。
実施の形態1.
操作者(開発者)は、ソースプログラム生成装置200を用いてフレームワークを選択し、提供される画面部品を用いて画面モデルを作成する。この提供される画面部品は、複数のフレームワークで共通化したものである。その後ソースプログラム生成装置200は、選択されたフレームワークに対応するソースプログラム(生成プログラム)を生成する。
図1を用いて、本実施の形態のシステム構成図を説明する。操作者からの入力を受け付けソースプログラムを生成するソースプログラム生成装置200は、ネットワーク400を介してクライアントサーバ型(C/S型)プログラムを実行するクライアント端末100とサーバ装置300とに接続されている。
ソースプログラム生成装置200は、通信手段21、処理手段22、画面モデル生成手段23、ソースコード生成手段24、オブジェクト生成手段25を備える。また記憶装置929(後述する)に、画面モデル上に選択できる部品の部品情報(部品ID、部品名、グループおよびグループ内での階層)を記憶した画面部品情報26、フレームワークと生成プログラム種別との対応付けを記憶したフレームワーク対応情報27、画面に配置する部品に関して部品配置情報(部品名、ラベル、階層、タグID、位置)と部品イベント情報とを記憶した画面設計情報28、生成プログラムに含まれる部品に関するソースコードについて、画面モデル情報を構成する画面モデルの部品対応ソースコードとフレームワーク毎の部品対応ソースコードとを関連付けて記憶する部品変換情報29を備える。
さらに記憶装置929は、画面設計情報28に指定された部品に関する情報を基本ソースプログラムとして記憶している画面モデル情報30、画面モデル情報30を指定のフレームワークに合わせた生成プログラムに変換したソースコード情報31、ソースコード情報31をオブジェクトとして構成したオブジェクト情報32も記憶している。
通信手段21はクライアント端末100及びサーバ装置300に対して、データの送信を行う。処理手段22はデータの入出力/送受信を処理し、画面部品情報26に基づき、表示装置901(後述する)に部品をGUI(Graphical User Interface)表示し、操作者が作成したGUI画面(画面モデル)に基づき、画面設計情報28を生成する。画面モデル生成手段23は、画面設計情報28に指定された部品に関する情報に基づき、基本のソースプログラムとなる画面モデル情報30を生成する。ソースコード生成手段24は、いずれかのフレームワークが指定されると、フレームワーク対応情報27を参照して生成プログラム種別を特定し、次に部品変換情報29を参照して画面モデル情報30を構成する基本ソースコードを、特定したプログラム種別に対応する部品対応ソースコードに変換する処理を繰り返すことにより、指定されたフレームワークに対応するソースコード情報31を生成する。オブジェクト生成手段25は、ソースコード情報31をコンパイルしてオブジェクト情報32を生成する。その後オブジェクト生成手段25は、複数のオブジェクト情報32をリンクして、実行可能なオブジェクト情報32を生成するが、既存技術なので詳細は省略する。
クライアント端末100は、通信手段11、処理手段12、オブジェクト情報13を備える。通信手段11は、ソースプログラム生成装置200及びサーバ装置300とデータの送受信を行う。処理手段12は、C/S型プログラムを実行するとき、オブジェクト情報13に基づきクライアント側の処理を行う。
サーバ装置300は、通信手段33、処理手段34、オブジェクト情報35を備える。通信手段33は、クライアント端末100及びソースプログラム生成装置200とデータの送受信を行う。処理手段34は、C/S型プログラムを実行するとき、オブジェクト情報35に基づきサーバ側の処理を行う。
次に図2〜4を用いて、表示装置901に表示する操作者向けの操作画面500について説明する。図2に示すフレームワーク選択画面501は、操作者から画面作成要求(ソースプログラム生成要求)の入力を受け付けたとき、処理手段22が最初に表示する画面である。操作者は、フレームワーク選択画面501でどのフレームワークに対応するソースプログラムを生成するかを選択する。図2では、フレームワーク2を選択した例を示している。フレームワーク選択画面501で選択できるフレームワークの種別、数は、任意に設定することができる。
図3は、操作画面500に画面部品を一覧で表示するパレット502と設計エリア503とを表示した例を示す。操作者は、パレット502に表示された部品を例えば、クリック、ドラッグ、ドロップ等のマウス操作で選択し、設計エリア503に配置する。図3に示す例では、画面上からプレートが配置され、プレートの上部にテキストが配置されている。その下にボタンが配置され、さらにその下にプレートが配置され、プレートの上部にテキストエリアが配置されている。またその下に、ボタンが配置されている。なおテキストとテキストエリアは、どちらもデータの表示エリア(入力も可能とすることができる)であるが、テキストは1行(1レコード)のみ、テキストエリアは複数行(複数レコード)のエリアである。プレートは、他の部品を上部に配置することができ、プレートが下部に配置されていることで上部に配置された部品の説明文をラベルとして指定することができる。
なお図3の説明で、「画面上」、「その下」という表現は、便宜上、操作画面の見た目の位置で上下関係を示している。「上部」という表現は、便宜上、ある部品の上に別の部品を配置した場合、「ある部品の上部に別の部品を配置した」と表現している。
図4は、設計エリア503で1つの画面の画面設計が完了した例を示している。テキストに「クライアントからの送信データ」というラベルを付し、ボタンに「サーバへ送信」というラベルを付し、テキストエリアに「サーバからの返送データ」というラベルを付し、その下のボタンに「メッセージクリア」というラベルを付している。これらのラベルは、設計エリア503へのデータ入力で指定する。
また設計エリア503の上部に、設計した画面の画面ID入力欄があり、操作者からの入力を受け付ける。
図5〜12は、記憶装置929に記憶された情報の構成を示す。図5は、画面部品情報26の一例を示すものである。画面部品情報26は、図5に示すように、設計エリア503に配置する部品について、部品ID、部品名、グループ及び階層を記憶する。設計エリア503の一番下部には、画面部品情報26の1レコード目に記載した「部品ID=root、部品名=パネル」が配置される。一番下部に配置される部品であることを「階層=1」で示している。それ以外の部品は、階層が2以上で定められ、同じグループ内で階層が低い(数字が小さい)部品ほど、下部に配置される。例えばグループ2では、プレートの上部にテキストエリアが配置され、グループ4では、テーブルの上部にセルが配置され、セルの上部にテキストが配置されることを示す。
処理手段22は、画面部品情報26に基づき操作画面500上のパレット502を表示する。
図6は、フレームワーク対応情報27の一例を示すものである。フレームワーク対応情報27は、フレームワークと生成プログラム種別との対応を記憶する。例えば、フレームワーク1は、プログラム種別「PG1(Webアプリケーション用)」に対応し、フレームワーク2は、プログラム種別「PG2(モバイル向けWebアプリケーション用)」に対応する。
図7,8は、画面設計情報28の一例を示すものである。図7に示す画面設計情報28aは、部品配置情報であり、部品が設計エリア503においてどのように配置されるかを定めている。画面設計情報28は、設計エリア503に配置された部品情報を表形式で示したものであり、例えばExcel(登録商標)等の表計算ソフトウェアで編集可能なデータである。画面設計情報28aは、部品名、ラベル、階層、及びタグIDで構成され、部品名、階層は、画面部品情報26に定められたものであり、ラベルは設計エリア503にデータ入力されたものである。
処理手段22は、操作画面500上の設計エリア503の構成情報に基づき、画面設計情報28aを生成する。処理手段22は、タグIDを設計エリア503から入力するように構成してもよいが、操作者が画面設計情報28aを編集可能なアプリケーション(表計算ソフトウェア等)を操作することにより、タグIDを入力するように構成してもよい。1番目の部品は、設計エリア503への入力に基づき、画面IDに関する指定となる。
また図示していないが画面設計情報28aは、設計エリア503に各々の部品を配置できるように、位置情報及びサイズ情報を有している。
図8に示す画面設計情報28bは、部品イベント情報であり、部品に対するイベントが発生したときに、どのような処理を実行するかを定めている。例えば図8に示すようにタグIDが「hellobutton」のボタンに対して「onclick」のイベントが発生したとき、「helloclient」のプレート上部のテキストに入力されたデータを入力として、「Helloメソッド」を呼び出し、「Helloメソッド」からの出力情報をタグID「helloserver」のプレート上部のテキストエリアに出力することを示している。処理手段22は、画面設計情報28bを設計エリア503から入力するように構成してもよいが、操作者が表計算ソフトウェア等の編集可能なアプリケーションを操作することにより、画面設計情報28bにデータ入力するように構成してもよい。
図7に示す画面設計情報28aと図8に示す画面設計情報28bは、1つのファイルとして構成するが、別ファイルとして構成してもよい。
処理手段22は、設計エリア503の入力情報に基づき画面設計情報28を作成しつつ、表計算ソフトウェア等で直接入力または更新された画面設計情報28を読み込み、設計エリア503に部品情報を配置する。
そのため操作者は、適宜、操作画面500上で画面を設計したり、画面設計情報28に直接データ入力することができる。
図9,10は、部品変換情報29の一例を示すものである。図9に示す部品変換情報29aは、例として部品名「button」について、画面モデルと3つのフレームワークとが項目毎にソースコードでどのように記述されるかを定めている。例えば画面モデルのタグ名は<type=“button”>と表現されるものが、フレームワーク1では<PG1:commandButton>と変換され、フレームワーク2では<PG2:Button>と変換され、フレームワーク3では<PG3:Button> と変換される。
項目とは、部品の特性を示す定義情報であり、図9では、タグ名、ラベル名、ID、イベントを例示している。1つの部品に関して、複数の項目が定義される。
項目「ID」について、画面モデルと3つのフレームワークの違いについて説明する。一例として画面モデルでは、IDは単一(ユニーク)とする構文ルールを有しているので、1つのソースコード情報31に含まれる複数の画面が含まれるとしても画面IDは重複することがないため、「ID」の指定を「タグID」で行う。一方フレームワーク1は、同一画面IDでIDを単一とする構文ルールを有しているので、「ID」の指定を画面IDから該当部品のIDまで、階層の低い順に定義する。フレームワーク2〜3も画面モデル同様に、IDを単一とする構文ルールを有し、さらに階層が低い部品から順に定義する構文ルールを有しているので、階層の低い順に該当部品のIDまで「ID」を定義する。
また項目「イベント」について、画面モデルはイベントを記述する構文ルールを有しているので、「action_event=“onclick”」のパラメータを含む。フレームワーク1は、パラメータを指定せずに呼び出しメソッドを記述する構文ルールを有しているので、「actionListener=“#{画面ID.exec_メソッド名}”」という記述になる。フレームワーク2,3は、「lib」というライブラリの中で「onClick」のイベントを処理する構文ルールを有しているので、「click=“lib.onClick(event)”」という記述になる。
このように部品変換情報29は、画面モデルや個々のフレームワークの構文ルールに基づき、画面モデルの部品対応ソースコードとフレームワーク毎の部品対応ソースコードとを関連付けて記憶する。
同様に図10に示す部品変換情報29bは、部品名「label」、「table」、「text」について、画面モデルと3つのフレームワークとが項目毎にソースコードでどのように記述されるかを定めている。画面モデルのタグ名は<type=“*”>(「*」には部品名が埋め込まれる)と表現されるものが、フレームワーク1では<typeToName(PG1,*)/>と変換され、フレームワーク2では<typeToName(PG2,*)/>、フレームワーク3では<typeToName(PG3,*)/>と変換される。このように複数の部品で共通の変換ルールについては、「*」等の変換対象を示す記号を用いて部品変換情報29を構成する。
なお「typeToName」は、部品名をフレームワーク対応の部品名に変換するため、予め用意されている関数である。例えば「*」が「table」の場合、「typeToName(PG1, table)」により、フレームワーク1に対応した部品名に変換される。
図9に示す部品変換情報29aと図10に示す部品変換情報29bは、1つのファイルとして構成してもよい。
図11は、基本のソースプログラムとなる画面モデル情報30の一例を示す。画面モデル生成手段23は、画面設計情報28と別途記憶している画面モデル情報30の構文構成情報(図示せず)とを参照する等により、構文ルールに則ったソースプログラムを生成し、画面モデル情報30として記憶する。図11では、図7に示した画面設計情報28a内のラベルが「サーバへ送信」の部品名「ボタン(button)」(上から5番目の部品)について、画面モデル生成手段23が基本のソースプログラムを生成した例を示す。
図11の画面モデル情報30に対応する構文構成情報は、下記のように定められている。
また画面設計情報28に基づき、同一グループ内の部品を並べて、階層が下部の部品から上部の部品へソースプログラムを生成することが定められている。
<component depth="「部品名の階層を代入」" type="「部品名を代入」">
<io name="「部品名のタグIDを代入」"/>
<layout label="「部品名のラベルを代入」"/>
<action action_event="「部品名のイベントを代入」"
action_method="「部品名の呼び出しを代入」"
action_in="「部品名の入力を代入」"
action_out="「部品名の出力を代入」"/>
</component>
構文構成情報の「component」タグは、部品を示す名称である。「io」タグの「name」属性は、タグIDを指定する。「layout」タグの「label」属性は、部品を表示する文字列を示す。「layout」タグは、その他レイアウト全般について、左寄せ、中央、右寄せ、横並び、縦並び等を指定することができる。
「action」は、「action_event」でイベント操作、「action_method」でイベント操作
により呼び出すメソッド、「action_in」でメソッドに渡す入力部品のID、「action_out」でメソッドから返ってくるデータを出力する出力部品のIDを指定する。
画面モデル情報30の生成手順について説明する。上から順番に、<component depth="2" type="button">のレコードは、構文構成情報に基づき構文ルールに則った構文に、画面設計情報28a内の部品名=「button」、階層=「2」を参照することにより、「depth="2" type="button"」を代入している。
次の<layout label="サーバへ送信"/>のレコードには、画面設計情報28a内のラベル=「サーバへ送信」を参照することにより、「label="サーバへ送信"」を代入している。
さらに<io name=“hellobutton"/>のレコードには、画面設計情報28a内のタグID=「hellobutton」を参照することにより、「name=“hellobutton"」を代入している。<action action_event="onclick"
action_method="hello"
action_in=“helloclient"
action_out=“helloserver"/>のレコードには、画面設計情報28b内のイベント=「onclick」、呼び出しメゾット=「hello」メソッド、入力=「helloclient」、出力=「helloserver」を参照することにより、「action_event="onclick" action_in=“helloclient" action_method="hello" action_out=“helloserver"」を代入する。
このように画面モデル生成手段23は、構文構成情報の構文ルールに基づき、画面設計情報28の値を代入して画面モデル情報30を生成する。
図12,13は、ソースコード情報31の一例を示す。図12のソースコード情報31aは、ソースプログラムPG1に対応したソースプログラムであり、図13のソースコード情報31bは、ソースプログラムPG2に対応したソースプログラムである。ソースコード生成手段24は、それぞれのソースプログラムに対応した構文ルール(図示しない構文構成情報)に則り、画面モデル情報30と部品変換情報29とを参照して、ソースコード情報31を生成する。一例としてソースプログラムPG1は、利用者からのカスタマイズを受け付けない構成となっているため、図12に示すように、最適化のための構文を含んだ構文ルールを有する。
ソースコード生成手段24は部品変換情報29aを参照することにより、例えばソースコード情報31aの先頭行にソースプログラムPG1に対応する「PG1:commandButton」を代入する。3行目に「value="サーバへ送信"」を代入する。「actionListener」は、図9に示すように部品に対してイベントが発生したとき実行され、画面ID「helloWorld」で指定した「hello」メソッドを呼び出すことを示す。「reRender」は、アクションにより反映させるエリアとして、入力部品と出力部品のIDとを指定する。
下3行は、操作パフォーマンス向上のため、デフォルトで挿入される構文である。「onclick =”this.disabled=true”」は、ボタンを押した瞬間にボタン操作を不可とし、これによりサーバ装置300側の処理が終わる前に、ボタンを2度以上押させないようにしている。「oncomplete=”this.disabled=false”」は、サーバ処理が完了した際に、ボタン操作不可を解除している。
「ajaxSingle=“true”」は、リクエスト範囲を限定している。この場合、<PG1:commandButton>を含むコンポーネントのみリクエストをサーバ装置300に送信することにより、無駄なトラフィックを発生させない。
また図13に示すように、ソースプログラムPG2は、クライアント側でライブラリが用意されているため、ライブラリを呼び出す構文ルールを有する。
またソースコード情報31bの先頭行にソースプログラムPG2に対応する「PG2:Button」を代入し、3行目に「label="サーバへ送信"」を代入する。「keyUp」は、キーボードを押して離した瞬間に呼び出される処理であり、キーボードによる操作を可能とする。
イベントについては、「onClick」と同様である。
図14〜図16を用いて、本実施の形態における処理の流れを説明する。処理を開始し、ソースプログラム生成装置200の処理手段22は、操作者からの画面作成要求を受け付け、フレームワーク選択画面501を表示し(ステップS1、図2参照)、フレームワーク選択画面501で選択されたフレームワークを記憶装置929に記憶する(ステップS2)。
次に処理手段22は画面部品情報26を参照して、操作画面500にパレット502を表示し、さらに設計エリア503も表示する(ステップS3、図3参照)。処理手段22は、操作者から操作画面500を用いた画面設計を受け付け(図4参照)、設計が完了した旨の入力を操作者から受け付けたとき、設計エリア503の定義内容から画面設計情報28を生成する(ステップS4)。画面モデル生成手段23は、画面設計情報28を参照しながら、画面モデル情報30を生成する(ステップS5)。ステップS5の処理は、画面設計情報28の全てのレコードに対して、実行される。
図15に移り、ソースコード生成手段24は、フレームワーク対応情報27を参照して、ステップS2で記憶したフレームワークに対応するプログラム種別を作成するプログラム種別として決定する(ステップS6)。ソースコード生成手段24は、部品変換情報29と画面モデル情報30とを参照して、ソースコードを生成し、ソースコード情報31に記憶する(ステップS7)。ステップS7でソースコード生成手段24は、画面モデル情報30を構成するソースコードを順次参照し、部品変換情報29の項目のいずれかに設定されているソースコードの一部を検出した場合は、部品変換情報29の項目毎の対応情報を参照して、特定したプログラム種別に対応するソースコード情報31に変換する。具体的にはフレームワーク1が指定されている場合、ソースコード生成手段24は、画面モデル情報30を上から順番に参照していき、例えば、図11の先頭行<component depth="2" type="button">を参照して、「type="button"」の部分が部品変換情報29の項目「タグ名」に設定されていることを検出し、フレームワーク1の項目「タグ名」に設定された「PG1:commandButton」を「type="button"」の部分に代入する。同様に、画面モデル情報30のレコードを部品変換情報29に基づき変換し、ソースコード情報31を生成する。
オブジェクト生成手段25は、ソースコード情報31を参照しながら、オブジェクト情報32を生成し(ステップS8)、処理手段22は通信手段21を用いて、オブジェクト情報32のクライアント部分のクライアント端末10に、サーバ部分をサーバ装置300に送信し(ステップS9)、処理を終了する。
図16に示すように、クライアント端末100の通信手段11は、ソースプログラム生成装置200からクライアント部分のオブジェクト情報を受信し、オブジェクト情報13として記憶する(ステップS11)。処理手段12は、オブジェクト情報13を用いて、処理を実行する(ステップS12)。
同様に、サーバ装置300の通信手段33は、ソースプログラム生成装置200からサーバ部分のオブジェクト情報を受信し、オブジェクト情報35として記憶する(ステップS21)。処理手段34は、オブジェクト情報35を用いて、処理を実行する(ステップS22)。ステップS12とステップS22で示す処理は、連動して実行される。
なおステップS4で処理手段22は、設計エリア503の定義内容に基づき表形式の画面設計情報28を生成するが、前述したように画面設計情報28は表計算ソフトウェア等で編集可能な形式である。操作者はステップS3,4の処理を実行する代わりに所定の表計算ソフトウェアで画面設計情報28を生成して、ステップS5の処理に継続してもよい。また既に作成済みの画面設計情報28をステップS5で読み込み、読み込んだ情報を設計エリア503に表示し、設計エリア503での設計変更を受け付け、変更内容に基づき画面設計情報28を更新するように構成してもよい。このようにステップS5で処理手段22は、画面設計情報28の新規作成、読み込み、及び読み込み後の再作成を実行する。
本実施の形態によるソースプログラム生成装置200では、操作者は、操作画面500の操作、または画面設計情報28へのデータ入力、更新を行うだけよい。画面設計情報28から生成した画面モデル情報30と部品変換情報29とを参照することにより、操作者が選択したフレームワークに合ったソースプログラムを生成する。部品変換情報29は、操作者または、システム開発責任者等により、随時、追加/更新される。
以上説明したように本実施の形態によるソースプログラム生成装置では、記憶装置929(記憶手段)はフレームワークと生成プログラム種別との対応付けをフレームワーク対応情報27として記憶し、画面に配置する部品情報を画面設計情報28として記憶し、生成プログラムに含まれる部品に関するソースコードについて、画面モデル情報30の部品対応ソースコードとフレームワーク種別毎の部品対応ソースコードとを関連付けて部品変換情報29として記憶する。部品変換情報29には、図9に示したように部品の特性を示す定義情報である項目(タグ名、ラベル名、ID、イベント等)毎に、画面モデルとフレームワークとの対応付けが設定されている。
また画面モデル生成手段23は、画面設計情報28に指定された部品に関する情報に基づき、基本のソースプログラムとなる画面モデル情報30を生成する。その後ソースコード生成手段24は、操作者によりいずれかのフレームワークが指定されると、フレームワーク対応情報27を参照して生成プログラム種別を特定する。さらにソースコード生成手段24は、画面モデル情報30を構成するソースコードを順次参照し、部品変換情報29の項目のいずれかに設定されているソースコードの一部を検出した場合は、部品変換情報29の項目毎の対応情報を参照して、特定したプログラム種別に対応するソースコード情報31に変換(代入)する。それにより、指定されたフレームワークに対応するソースコード情報31が生成される。
記憶装置929は、さらに、画面モデル上に選択できる部品の部品情報を画面部品情報26として記憶し、処理手段22は、画面部品情報26に基づき、部品をGUI表示し、操作者が作成したGUI画面に基づき、画面設計情報28を生成する。
また画面設計情報28は、部品情報として部品配置情報(図7)とともに、該当部品のイベント情報(図8)を記憶する。
このように本実施の形態では、1つの画面モデル(画面デザイン)から複数のフレームワークに対応するソースプログラムを作成することができる。それにより、画面デザインは変更しないが、フレームワークを変更する場合でも、新しいフレームワークに対応したソースプログラムを生成することが容易となる。
また部品だけではなく、画面全体の設計や処理プログラムについて、複数のフレームワークで共通で使用することができる。
本実施の形態のソースプログラム生成方法は、クライアント端末100側に何らかの操作画面を有するC/S型プログラムのソースプログラム生成に対応できる。
実施の形態2.
本実施の形態では、ソースコード生成手段24は、部品毎のソースコードを変換するとき、該当部品と他の部品との配置状況により、変換するソースコードが異なる点が特徴である。
図4のように設計された画面で、ラベルが「メッセージクリア」のボタンはルートの上に直接配置されているが、別のボタンをプレートの上部に配置することができる。例えば、ルート上部のボタン(プレートなし)と、プレート上部のボタンで、変換するソースコードを変更する場合がある。
実現方法としては、部品変換情報29a、29bの部品名毎のレコードに下部(または上部)部品名という項目を追加し、1レコードを部品名、フレームワーク、項目、下部(または上部)部品名、部品対応ソースコードという項目で構成する。このとき、1つの部品に対する下部部品名、または上部部品名は、画面部品情報26に記憶された同一グループの部品に限定される。
図15で示す処理の流れの中のステップS7で、ソースコード生成手段24が個々の部品のソースコードを生成するとき、参照すべき部品変換情報29に下部部品名が指定されていれば、画面モデル情報30の該当部品の<component depth="「部品名の階層を代入」" type="「部品名を代入」">レコードの「depth=」の数値を取得する。その数値より小さい数値で指定された部品が直前にあるかどうかを確認し、直前にあれば下部部品があると判定する。下位部品があれば、その部品の<component depth="「部品名の階層を代入」" type="「部品名を代入」">レコードの「type=」の項目名を取得する。その項目名が部品変換情報29の下部部品名で指定された項目名と一致すると判定した場合、一致する下部項目名が指定されたレコードの部品対応ソースコードを参照データとして用いる。
参照すべき部品変換情報29に下部部品名が指定されていない場合、参照すべき部品変換情報29に下部部品名が指定されていても、該当の部品の階層を示す数値より小さい数値で指定された部品が直前にない場合、および直前にある部品が部品変換情報29の下部部品名で指定された項目名と一致しない場合は、部品変換情報29の下部部品名が指定されていないレコードの部品対応ソースコードを参照データとして用いる。
同様に、図15で示す処理の流れの中のステップS7で、ソースコード生成手段24が個々の部品のソースコードを生成するとき、参照すべき部品変換情報29に上部部品名が指定されていれば、画面モデル情報30の該当部品の<component depth="「部品名の階層を代入」" type="「部品名を代入」">レコードの「depth=」の数値を取得する。その数値より大きい数値で指定された部品が直後にあるかどうかを確認し、直後にあれば上部部品があると判定する。上部部品があれば、その部品の<component depth="「部品名の階層を代入」" type="「部品名を代入」">レコードの「type=」の項目名を取得する。その項目名が部品変換情報29の上部部品名で指定された項目名と一致すると判定した場合、一致する上部項目名が指定されたレコードの部品対応ソースコードを参照データとして用いる。
参照すべき部品変換情報29に上部部品名が指定されていない場合、参照すべき部品変換情報29に上部部品名が指定されていても、該当の部品の階層を示す数値より大きい数値で指定された部品が直後にない場合、および直後にある部品が部品変換情報29の上部部品名で指定された項目名と一致しない場合は、部品変換情報29の上部部品名が指定されていないレコードの部品対応ソースコードを参照データとして用いる。
部品変換情報29に上部部品名、下部部品名を追加することにより、ソースコード生成手段24が参照する部品対応ソースコードを変更するように構成することができる。またソースコード生成手段24が、上部部品、下部部品の存在により参照する部品対応ソースコードを変更するルールを記憶し、該当の上部部品または下部部品が存在することを確認したとき、記憶したルールに基づき、参照する部品対応ソースコードを変更するように構成することもできる。
このように本実施の形態によると、ソースコード生成手段24は、部品毎のソースコードを変換するとき、部品変換情報29に記憶された該当部品と他の部品との配置状況により、異なるソースコードに変換する。
同じ部品でも上部部品または、下部部品の存在による配置状況により、生成するソースコードを変更させることができ、複雑な処理を行うソースプログラムにも対応できる。その場合も操作者は、画面設計情報28を生成に関する作業をするだけでよく、生産性向上を妨げることはない。
上部部品、下部部品の階層については、2層以上の配置状況を設定することができ、また、上部部品、下部部品どちらも特定の部品がある配置状況を設定することもできる。
図17は、各実施の形態で用いたクライアント端末100、ソースプログラム生成装置200、サーバ装置300のハードウェア資源の一例を示す図である。
図17において、コンピュータは、システムユニット(図示せず)、CRT(Cathode・Ray・Tube)やLCD(液晶ディスプレイ)の表示画面を有する表示装置901、キーボード902(K/B)、マウス903、FDD904(Flexible・Disk・Drive)、CDD905(Compact・Disc・Drive)などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。システムユニットは、コンピュータであり、LANに接続されている。
各コンピュータは、プログラムを実行するCPU911(「演算装置」、「マイクロプロセッサ」、「マイクロコンピュータ」、「プロセッサ」ともいう)を備えている。CPU911は、図1で示した各処理部(〜手段)でデータや情報の演算、加工、読み取り、書き込みなどを行うために利用される処理装置である。CPU911は、バス912を介してROM913(Read・Only・Memory)、RAM914(Random・Access・Memory)、通信ボード915、表示装置901、キーボード902、マウス903、FDD904、CDD905、スキャナ装置906、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカードリーダライタなどの記憶媒体が用いられてもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、それぞれのコンピュータが用いる記憶装置(記憶部)929の一例である。通信ボード915、キーボード902、マウス903、FDD904、CDD905、スキャナ906などは、入力装置(図示せず)の一例である。また、通信ボード915、表示装置901などは、出力装置(図示せず)の一例である。表示装置901をタッチパネルとして、入力装置の機能を備えるように構成することもできる。
通信ボード915は、ネットワーク400に接続されている。ネットワーク400は、LANに限らず、インターネット、あるいは、WANなどで構成されていても構わない。
記憶装置(磁気ディスク装置)920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。プログラム群923には、本実施の形態の説明において「〜手段」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。また、ファイル群924には、各実施の形態の説明において、「〜データ」、「〜情報」、「〜ID(IDentifier)」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として記憶されている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ディスクやメモリなどの記憶媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのCPU911の処理(動作)に用いられる。抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのCPU911の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、各実施の形態の説明において説明するブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号は、RAM914などのメモリ、FDD904のフレキシブルディスク(FD)、CDD905のコンパクトディスク(CD)、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク(MD)、DVD(Digital・Versatile・Disc)などの記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体により伝送される。
また、各実施の形態の説明において「〜手段」として説明するものは、「〜部」、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜手段」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウェアのみ、あるいは、素子・デバイス・基板・配線などのハードウェアのみ、あるいは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVDなどの記録媒体に記憶される。このプログラムはCPU911により読み出され、CPU911により実行される。即ち、プログラムは、各実施の形態の説明で述べる「〜手段」としてコンピュータを機能させるものである。あるいは、各実施の形態の説明で述べる「〜手段」の手順や方法をコンピュータに実行させるものである。
11 通信手段、12 処理手段、13 オブジェクト情報、21 通信手段、22 処理手段、23 画面モデル生成手段、24 ソースコード生成手段、25 オブジェクト生成手段、26 画面部品情報、27 フレームワーク対応情報、28 画面設計情報、29 部品変換情報、30 画面モデル情報、31 ソースコード情報、32 オブジェクト情報、33 通信手段、34 処理手段、35 オブジェクト情報、100 クライアント端末、200 ソースプログラム生成装置、300 サーバ装置、400 ネットワーク、500 操作画面、501 フレームワーク選択画面、502 パレット、503 設計エリア。

Claims (5)

  1. フレームワークと生成プログラム種別との対応付けをフレームワーク対応情報として記憶し、
    画面に配置する部品情報を画面設計情報として記憶し、
    生成プログラムに含まれる部品に関するソースコードについて、画面モデル情報の部品対応ソースコードとフレームワーク種別毎の部品対応ソースコードとを関連付けて部品変換情報として記憶する記憶手段と、
    上記画面設計情報に指定された部品に関する情報に基づき、基本のソースプログラムとなる画面モデル情報を生成する画面モデル生成手段と、
    いずれかのフレームワークが指定されると、上記フレームワーク対応情報を参照して指定された上記フレームワークに対応する生成プログラム種別を特定し、上記部品変換情報を参照して上記画面モデル情報を構成するソースコードを上記プログラム種別に対応するソースコードに変換することにより指定された上記フレームワークに対応するソースコードを生成するソースコード生成手段と、
    を備えたことを特徴とするソースプログラム生成装置。
  2. 上記記憶手段は、さらに、上記画面モデル上に選択できる部品の部品情報を画面部品情報として記憶し、
    上記画面部品情報に基づき、部品をGUI(Graphical User Interface)表示し、操作者が作成したGUI画面に基づき、上記画面設計情報を生成する処理手段と
    を備えたことを特徴とする請求項1に記載のソースプログラム生成装置。
  3. 上記画面設計情報は、上記部品情報として部品配置情報とともに、該当部品のイベント情報を記憶することを特徴とする請求項1または2のいずれかに記載のソースプログラム生成装置。
  4. 上記ソースコード生成手段は、部品毎のソースコードを変換するとき、該当部品と他の部品との配置状況により、異なるソースコードに変換することを特徴とする請求項1〜3のいずれかに記載のソースプログラム生成装置。
  5. コンピュータを、請求項1〜4のいずれか一項に記載のソースプログラム生成装置として機能させるソースプログラム生成プログラム
JP2013122491A 2013-06-11 2013-06-11 ソースプログラム生成装置およびソースプログラム生成プログラム Active JP5629355B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013122491A JP5629355B1 (ja) 2013-06-11 2013-06-11 ソースプログラム生成装置およびソースプログラム生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013122491A JP5629355B1 (ja) 2013-06-11 2013-06-11 ソースプログラム生成装置およびソースプログラム生成プログラム

Publications (2)

Publication Number Publication Date
JP5629355B1 true JP5629355B1 (ja) 2014-11-19
JP2014241011A JP2014241011A (ja) 2014-12-25

Family

ID=52136385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013122491A Active JP5629355B1 (ja) 2013-06-11 2013-06-11 ソースプログラム生成装置およびソースプログラム生成プログラム

Country Status (1)

Country Link
JP (1) JP5629355B1 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099545A (ja) * 2004-09-30 2006-04-13 Jfe Systems Inc 画面作成方法及び装置
JP2010277120A (ja) * 2009-05-26 2010-12-09 Kyocera Mita Corp 画像形成装置及びアプリケーションビュー変換プログラム
JP5350428B2 (ja) * 2011-04-12 2013-11-27 株式会社日立製作所 自動プログラム生成装置、方法及びコンピュータプログラム

Also Published As

Publication number Publication date
JP2014241011A (ja) 2014-12-25

Similar Documents

Publication Publication Date Title
JP2016224923A (ja) ユーザフォームインタフェースの自動生成の方法およびシステム
KR101552914B1 (ko) 웹 서버 어플리케이션 프레임워크 장치와 프레임워크를 이용한 웹 어플리케이션 처리 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체
JP7113765B2 (ja) コード管理システムおよびコード管理方法
TWI467481B (zh) 層級式程式源碼管理方法、系統及電腦程式產品
JP5629355B1 (ja) ソースプログラム生成装置およびソースプログラム生成プログラム
KR20150099318A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체
JP2007213509A (ja) 業務フロー管理システム及び業務フロー管理方法及び業務フロー管理プログラム
KR20150099345A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체
CN113918194A (zh) 一种页面组件的显示方法、装置、电子设备及存储介质
KR20150099319A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 것을 특징으로 하는 컴퓨터로 판독 가능한 기록매체
KR20140114968A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 것을 특징으로 하는 컴퓨터로 판독 가능한 기록매체
CN118034717A (en) Page configuration method and device of micro front-end system and computer equipment
KR20140114983A (ko) 애플리케이션 개발 환경 제공 방법
KR20140115456A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 기록매체
KR20150099264A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체
KR20140114967A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체
KR20150099321A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 것을 특징으로 하는 컴퓨터로 판독 가능한 기록매체
KR20150099254A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체
KR20140114975A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 것을 특징으로 하는 컴퓨터로 판독 가능한 기록매체
KR20150097236A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 것을 특징으로 하는 컴퓨터로 판독 가능한 기록매체
KR20150099313A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체
KR20140115458A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체
KR20150097223A (ko) 애플리케이션 개발 환경 제공 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체
KR20150097204A (ko) 애플리케이션 개발 환경 제공 시스템
KR20140115465A (ko) 애플리케이션 환경 제공 시스템

Legal Events

Date Code Title Description
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: 20140924

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141003

R150 Certificate of patent or registration of utility model

Ref document number: 5629355

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250