JP5629355B1 - ソースプログラム生成装置およびソースプログラム生成プログラム - Google Patents
ソースプログラム生成装置およびソースプログラム生成プログラム Download PDFInfo
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
特許文献1(特開2010−108370号公報)では、複数のGUI(Graphical User Interface)フレームワーク間で共通のGUI部品を用いる場合は、指定されたIDにより、GUI部品を特定し、フレームワークに依存しない命令文を記述する。それにより、複数のフレームワークで共通のGUI部品を用いることができる。
しかし特許文献1に開示された、フレームワークプログラムでは、複数のフレームワークで共有できるのは、画面上の部品のみであり、画面全体の設計やその画面を用いた処理プログラムに関して、フレームワークに対応したソースコードを作成することはできない。
フレームワークを用いるために作成する画面モデルは、フレームワークが異なったとしても、共通で使用できることが多い。しかし従来技術では、1つの画面モデルを複数のフレームワークで共有する仕組みはなく、またフレームワークが作成するソースプログラムはフレームワーク毎に異なるため、1つの画面モデルから複数のソースプログラムを生成することはできない。
技術の変化とともに、フレームワークは多様化し、開発者はニーズに応じてフレームワークを変更する可能性がある。しかし従来技術では、フレームワークが変更されれば、ソースプログラムも再生成する必要が出てくるため、フレームワークを変更した後のソースプログラム生成に関しては、生産性の問題があった。
操作者(開発者)は、ソースプログラム生成装置200を用いてフレームワークを選択し、提供される画面部品を用いて画面モデルを作成する。この提供される画面部品は、複数のフレームワークで共通化したものである。その後ソースプログラム生成装置200は、選択されたフレームワークに対応するソースプログラム(生成プログラム)を生成する。
図1を用いて、本実施の形態のシステム構成図を説明する。操作者からの入力を受け付けソースプログラムを生成するソースプログラム生成装置200は、ネットワーク400を介してクライアントサーバ型(C/S型)プログラムを実行するクライアント端末100とサーバ装置300とに接続されている。
なお図3の説明で、「画面上」、「その下」という表現は、便宜上、操作画面の見た目の位置で上下関係を示している。「上部」という表現は、便宜上、ある部品の上に別の部品を配置した場合、「ある部品の上部に別の部品を配置した」と表現している。
また設計エリア503の上部に、設計した画面の画面ID入力欄があり、操作者からの入力を受け付ける。
処理手段22は、画面部品情報26に基づき操作画面500上のパレット502を表示する。
また図示していないが画面設計情報28aは、設計エリア503に各々の部品を配置できるように、位置情報及びサイズ情報を有している。
図7に示す画面設計情報28aと図8に示す画面設計情報28bは、1つのファイルとして構成するが、別ファイルとして構成してもよい。
そのため操作者は、適宜、操作画面500上で画面を設計したり、画面設計情報28に直接データ入力することができる。
項目とは、部品の特性を示す定義情報であり、図9では、タグ名、ラベル名、ID、イベントを例示している。1つの部品に関して、複数の項目が定義される。
また項目「イベント」について、画面モデルはイベントを記述する構文ルールを有しているので、「action_event=“onclick”」のパラメータを含む。フレームワーク1は、パラメータを指定せずに呼び出しメソッドを記述する構文ルールを有しているので、「actionListener=“#{画面ID.exec_メソッド名}”」という記述になる。フレームワーク2,3は、「lib」というライブラリの中で「onClick」のイベントを処理する構文ルールを有しているので、「click=“lib.onClick(event)”」という記述になる。
このように部品変換情報29は、画面モデルや個々のフレームワークの構文ルールに基づき、画面モデルの部品対応ソースコードとフレームワーク毎の部品対応ソースコードとを関連付けて記憶する。
なお「typeToName」は、部品名をフレームワーク対応の部品名に変換するため、予め用意されている関数である。例えば「*」が「table」の場合、「typeToName(PG1, table)」により、フレームワーク1に対応した部品名に変換される。
図9に示す部品変換情報29aと図10に示す部品変換情報29bは、1つのファイルとして構成してもよい。
また画面設計情報28に基づき、同一グループ内の部品を並べて、階層が下部の部品から上部の部品へソースプログラムを生成することが定められている。
<component depth="「部品名の階層を代入」" type="「部品名を代入」">
<io name="「部品名のタグIDを代入」"/>
<layout label="「部品名のラベルを代入」"/>
<action action_event="「部品名のイベントを代入」"
action_method="「部品名の呼び出しを代入」"
action_in="「部品名の入力を代入」"
action_out="「部品名の出力を代入」"/>
</component>
「action」は、「action_event」でイベント操作、「action_method」でイベント操作
により呼び出すメソッド、「action_in」でメソッドに渡す入力部品のID、「action_out」でメソッドから返ってくるデータを出力する出力部品のIDを指定する。
次の<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を生成する。
下3行は、操作パフォーマンス向上のため、デフォルトで挿入される構文である。「onclick =”this.disabled=true”」は、ボタンを押した瞬間にボタン操作を不可とし、これによりサーバ装置300側の処理が終わる前に、ボタンを2度以上押させないようにしている。「oncomplete=”this.disabled=false”」は、サーバ処理が完了した際に、ボタン操作不可を解除している。
「ajaxSingle=“true”」は、リクエスト範囲を限定している。この場合、<PG1:commandButton>を含むコンポーネントのみリクエストをサーバ装置300に送信することにより、無駄なトラフィックを発生させない。
またソースコード情報31bの先頭行にソースプログラムPG2に対応する「PG2:Button」を代入し、3行目に「label="サーバへ送信"」を代入する。「keyUp」は、キーボードを押して離した瞬間に呼び出される処理であり、キーボードによる操作を可能とする。
イベントについては、「onClick」と同様である。
オブジェクト生成手段25は、ソースコード情報31を参照しながら、オブジェクト情報32を生成し(ステップS8)、処理手段22は通信手段21を用いて、オブジェクト情報32のクライアント部分のクライアント端末10に、サーバ部分をサーバ装置300に送信し(ステップS9)、処理を終了する。
また画面設計情報28は、部品情報として部品配置情報(図7)とともに、該当部品のイベント情報(図8)を記憶する。
また部品だけではなく、画面全体の設計や処理プログラムについて、複数のフレームワークで共通で使用することができる。
本実施の形態のソースプログラム生成方法は、クライアント端末100側に何らかの操作画面を有するC/S型プログラムのソースプログラム生成に対応できる。
本実施の形態では、ソースコード生成手段24は、部品毎のソースコードを変換するとき、該当部品と他の部品との配置状況により、変換するソースコードが異なる点が特徴である。
図4のように設計された画面で、ラベルが「メッセージクリア」のボタンはルートの上に直接配置されているが、別のボタンをプレートの上部に配置することができる。例えば、ルート上部のボタン(プレートなし)と、プレート上部のボタンで、変換するソースコードを変更する場合がある。
図15で示す処理の流れの中のステップS7で、ソースコード生成手段24が個々の部品のソースコードを生成するとき、参照すべき部品変換情報29に下部部品名が指定されていれば、画面モデル情報30の該当部品の<component depth="「部品名の階層を代入」" type="「部品名を代入」">レコードの「depth=」の数値を取得する。その数値より小さい数値で指定された部品が直前にあるかどうかを確認し、直前にあれば下部部品があると判定する。下位部品があれば、その部品の<component depth="「部品名の階層を代入」" type="「部品名を代入」">レコードの「type=」の項目名を取得する。その項目名が部品変換情報29の下部部品名で指定された項目名と一致すると判定した場合、一致する下部項目名が指定されたレコードの部品対応ソースコードを参照データとして用いる。
参照すべき部品変換情報29に上部部品名が指定されていない場合、参照すべき部品変換情報29に上部部品名が指定されていても、該当の部品の階層を示す数値より大きい数値で指定された部品が直後にない場合、および直後にある部品が部品変換情報29の上部部品名で指定された項目名と一致しない場合は、部品変換情報29の上部部品名が指定されていないレコードの部品対応ソースコードを参照データとして用いる。
同じ部品でも上部部品または、下部部品の存在による配置状況により、生成するソースコードを変更させることができ、複雑な処理を行うソースプログラムにも対応できる。その場合も操作者は、画面設計情報28を生成に関する作業をするだけでよく、生産性向上を妨げることはない。
上部部品、下部部品の階層については、2層以上の配置状況を設定することができ、また、上部部品、下部部品どちらも特定の部品がある配置状況を設定することもできる。
図17において、コンピュータは、システムユニット(図示せず)、CRT(Cathode・Ray・Tube)やLCD(液晶ディスプレイ)の表示画面を有する表示装置901、キーボード902(K/B)、マウス903、FDD904(Flexible・Disk・Drive)、CDD905(Compact・Disc・Drive)などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。システムユニットは、コンピュータであり、LANに接続されている。
記憶装置(磁気ディスク装置)920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。プログラム群923には、本実施の形態の説明において「〜手段」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。また、ファイル群924には、各実施の形態の説明において、「〜データ」、「〜情報」、「〜ID(IDentifier)」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として記憶されている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ディスクやメモリなどの記憶媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのCPU911の処理(動作)に用いられる。抽出・検索・参照・比較・演算・計算・制御・出力・印刷・表示などのCPU911の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
Claims (5)
- フレームワークと生成プログラム種別との対応付けをフレームワーク対応情報として記憶し、
画面に配置する部品情報を画面設計情報として記憶し、
生成プログラムに含まれる部品に関するソースコードについて、画面モデル情報の部品対応ソースコードとフレームワーク種別毎の部品対応ソースコードとを関連付けて部品変換情報として記憶する記憶手段と、
上記画面設計情報に指定された部品に関する情報に基づき、基本のソースプログラムとなる画面モデル情報を生成する画面モデル生成手段と、
いずれかのフレームワークが指定されると、上記フレームワーク対応情報を参照して指定された上記フレームワークに対応する生成プログラム種別を特定し、上記部品変換情報を参照して上記画面モデル情報を構成するソースコードを上記プログラム種別に対応するソースコードに変換することにより指定された上記フレームワークに対応するソースコードを生成するソースコード生成手段と、
を備えたことを特徴とするソースプログラム生成装置。 - 上記記憶手段は、さらに、上記画面モデル上に選択できる部品の部品情報を画面部品情報として記憶し、
上記画面部品情報に基づき、部品をGUI(Graphical User Interface)表示し、操作者が作成したGUI画面に基づき、上記画面設計情報を生成する処理手段と
を備えたことを特徴とする請求項1に記載のソースプログラム生成装置。 - 上記画面設計情報は、上記部品情報として部品配置情報とともに、該当部品のイベント情報を記憶することを特徴とする請求項1または2のいずれかに記載のソースプログラム生成装置。
- 上記ソースコード生成手段は、部品毎のソースコードを変換するとき、該当部品と他の部品との配置状況により、異なるソースコードに変換することを特徴とする請求項1〜3のいずれかに記載のソースプログラム生成装置。
- コンピュータを、請求項1〜4のいずれか一項に記載のソースプログラム生成装置として機能させるソースプログラム生成プログラム。
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)
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 | 株式会社日立製作所 | 自動プログラム生成装置、方法及びコンピュータプログラム |
-
2013
- 2013-06-11 JP JP2013122491A patent/JP5629355B1/ja active Active
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 |