JP2009020705A - Guiアプリケーション開発支援装置及び開発支援方法 - Google Patents
Guiアプリケーション開発支援装置及び開発支援方法 Download PDFInfo
- Publication number
- JP2009020705A JP2009020705A JP2007182747A JP2007182747A JP2009020705A JP 2009020705 A JP2009020705 A JP 2009020705A JP 2007182747 A JP2007182747 A JP 2007182747A JP 2007182747 A JP2007182747 A JP 2007182747A JP 2009020705 A JP2009020705 A JP 2009020705A
- Authority
- JP
- Japan
- Prior art keywords
- gui
- structure data
- general
- development support
- application development
- 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.)
- Pending
Links
- 238000011161 development Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 title claims description 42
- 238000000547 structure data Methods 0.000 claims abstract description 138
- 230000008569 process Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 6
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 235000006719 Cassia obtusifolia Nutrition 0.000 description 1
- 235000014552 Cassia tora Nutrition 0.000 description 1
- 244000201986 Cassia tora Species 0.000 description 1
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 238000012356 Product development Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
【課題】組込み機器向けのユーザー・インターフェースアプリケーションを従来よりも容易にする開発支援を行う技術を提供することを課題とする。
【解決手段】上記課題を解決するために、GUI部品汎用構造データ生成手段とGUI画面編集手段とGUIプログラム生成手段とを設けるものとする。
GUI画面編集手段は、ユーザに前記GUI部品汎用構造データ生成手段が生成した前記GUI部品汎用構造データで表現されるGUI部品を用いてGUI画面を作成する手段を提供し、ユーザが作成したGUI画面をプログラム言語に依存しない形式の汎用GUI画面構造データとして生成する。
GUIプログラム生成手段は、GUI画面編集手段で生成された汎用GUI画面構造データとターゲット機器で実行可能なプログラムを用いて、ターゲット機器で実行できる形式のGUIアプリケーションを生成する。
【選択図】 図1
【解決手段】上記課題を解決するために、GUI部品汎用構造データ生成手段とGUI画面編集手段とGUIプログラム生成手段とを設けるものとする。
GUI画面編集手段は、ユーザに前記GUI部品汎用構造データ生成手段が生成した前記GUI部品汎用構造データで表現されるGUI部品を用いてGUI画面を作成する手段を提供し、ユーザが作成したGUI画面をプログラム言語に依存しない形式の汎用GUI画面構造データとして生成する。
GUIプログラム生成手段は、GUI画面編集手段で生成された汎用GUI画面構造データとターゲット機器で実行可能なプログラムを用いて、ターゲット機器で実行できる形式のGUIアプリケーションを生成する。
【選択図】 図1
Description
本発明はグラフィカル・ユーザー・インターフェース(GUI)アプリケーションの開発を容易にする技術に関する。
デジタルテレビなど組込み機器向けのアプリケーションの開発は、プログラミングスキルだけでなく、そのアプリケーションを実行させる環境の専門知識が必要である。上記組込み機器向けのアプリケーションの開発に関して、例えば、特許文献1に開示されている。
特許文献1では、システムソフトウェアのUML設計書とインターフェースから、そのソフトウェアを使用するUIプログラムを自動生成する方法が記載されている。
GUIアプリケーションは、ユーザの操作に対応した画面の状態遷移処理など組込み機器向けのアプリケーションの開発とは異なる知識が必要になる。このような状況で、昨今の組込み機器はネットワーク対応など高機能化が進み、UIアプリケーションは複雑になる一方である。
特許文献1はアプリケーション開発者がGUI部分の開発に専念できるようにすることを目的としており、システム上で動作するアプリケーションを自動生成すること主眼としている。
ところで、アプリケーションの開発では、GUI部分そのものを作ることに対しての開発支援についても、考慮される必要が有ると言える。
デジタルテレビやレコーダーなどAV系の組込み機器は、製品の特徴付けや他社差別化のため、GUI画面のデザインは重要である。今後、製品競争力強化のため、より洗練された画面デザインが要求され、機能の複雑化ともあいまってGUIプログラムの開発負荷が大きくなり、開発者に要求されるスキルも高くなると考える。また、製品の開発サイクルは短くなっており、複雑になったプログラムを短い期間で開発する事が要求される。
本発明の目的は、組込み機器向けのユーザー・インターフェース(UI)アプリケーションを従来よりも容易にする開発支援を行う技術を提供することである。組込み機器向けのアプリケーション開発の経験のない開発者や、デザイナーなどプログラム開発の経験のない人も従来よりも簡単にGUI画面を作成することができ、作成したGUI画面から、組込み機器の実機上で動作するGUIアプリケーションを従来よりも簡単に生成できる開発支援の技術を提供することである。
上記目的を達成するために、本発明において、GUIアプリケーションの開発を支援する技術ではGUI部品汎用構造データ生成手段とGUI画面編集手段とGUIプログラム生成手段とを設けるものとする。
GUI部品汎用構造データ生成手段ではターゲット機器で独自に定義されたGUI部品のライブラリである独自定義GUI部品ライブラリからプログラム言語に依存しない形式のGUI部品汎用構造データを生成する。若しくは、GUI部品汎用構造データ生成手段ではターゲット機器で独自に定義されたGUI部品のライブラリである独自定義GUI部品ライブラリから汎用のプログラム言語で使用出来るGUI部品汎用構造データを生成するようにするものでも良い。
そして、GUI画面編集手段は、ユーザに前記GUI部品汎用構造データ生成手段が生成した前記GUI部品汎用構造データで表現されるGUI部品を用いてGUI画面を作成する手段を提供し、ユーザが作成したGUI画面をプログラム言語に依存しない形式の汎用GUI画面構造データとして生成する。若しくは、前記汎用GUI画面構造データとは、GUIの画面を汎用のプログラム言語で使用出来るGUI画面構造データであるものとしても良い。
GUIプログラム生成手段は、GUI画面編集手段で生成された汎用GUI画面構造データとターゲット機器で実行可能なプログラムである雛形プログラムを用いて、ターゲット機器で実行できる形式のGUIアプリケーションを生成する。
本発明によれば、組込み機器向けなどのGUIアプリケーションの開発の効率を従来よりも改善させるものである。
以下、本発明の実施の形態について図面を用いて説明する。
図1は本発明の実施例であるGUIアプリケーション開発支援装置の構成を示す図である。
100は本発明のGUIアプリケーション開発支援装置である。図1に示すように、GUIアプリケーション開発支援装置100はGUI部品汎用構造データ生成手段103、汎用GUI構造データライブラリ104、GUI画面編集手段105、GUIプログラム生成手段106、入力手段107、表示手段108で構成する。110はターゲット機器で独自に定義されたGUI部品のライブラリであるGUI部品ライブラリ、111は本実施例のGUIアプリケーション開発支援装置が生成するGUIブログラムである。
汎用GUI部品ライブラリ110はGUI部品汎用構造データ生成手段103でターゲット機器の実行環境、記述されるプログラム言語に依存しないGUI部品の構造やプロパティ値を表現する構造データに変換される。ターゲット機器環境に非依存の形式に変換することで、様々な機器、若しくは汎用の機器のGUI画面を生成することが可能となる。
GUI画面編集手段はアプリケーション開発者にグラフィカルなGUI画面作成環境を提供し、ユーザ操作に従って編集されたGUI画面を表現するGUI画面構造データを生成し、GUIプログラム生成手段106に出力する。
GUIプログラム生成手段106は予め登録されているターゲット機器のアプリケーションコードである雛形アプリケーションコード、または雛形プログラムにGUI画面を構成するGUI部品のコードを挿入しGUIアプリケーションを生成する。また、GUIプログラム生成手段106は、GUI画面の構造や、各GUI部品に設定されているプロパティ値を汎用GUI画面構造データから取得する。
以下、GUI部品汎用構造データの生成処理、GUI画面の編集と汎用GUI画面構造データの生成処理、GUIプログラムの生成処理について順次説明する。
先ず、図4、5、6、7を用いてGUI部品構造データの生成処理について説明する。
図4はGUI部品汎用構造データ生成手段103におけるGUI部品汎用構造データ生成処理フローの一例である。
1)ステップ1
ユーザにから、GUIアプリケーション開発支援装置100に取り込むGUI部品ライブラリが指定されるとGUI部品汎用構造データ生成手段103はGUI部品汎用構造データ生成処理を開始する。
2)ステップ2
GUI部品ライブラリに含まれる各GUI部品クラスから、GUI部品のクラス名とプロパティ情報(プロパティの名前、型、初期値など)を取得する。プロパティ情報とは、GUI部品の大きさや、配置する位置、GUI部品に表示する文字、文字の色、背景の色、背景のイメージなどを設定するものである。但し、これらに限定されるものではなく、GUI部品の仕様を特定する情報であれば、上記プロパティ情報として扱えるものとする。
1)ステップ1
ユーザにから、GUIアプリケーション開発支援装置100に取り込むGUI部品ライブラリが指定されるとGUI部品汎用構造データ生成手段103はGUI部品汎用構造データ生成処理を開始する。
2)ステップ2
GUI部品ライブラリに含まれる各GUI部品クラスから、GUI部品のクラス名とプロパティ情報(プロパティの名前、型、初期値など)を取得する。プロパティ情報とは、GUI部品の大きさや、配置する位置、GUI部品に表示する文字、文字の色、背景の色、背景のイメージなどを設定するものである。但し、これらに限定されるものではなく、GUI部品の仕様を特定する情報であれば、上記プロパティ情報として扱えるものとする。
ここでは、具体的な取得方法は示さないが、例えば、Java(登録商標)のGUI部品クラスであって、JavaBeansの仕様を満たすクラスであれば、Javaで規定されているjava.beans.IntrospectorクラスのAPI(Application Program Interface)を使って取得することができる。
3)ステップ3
ステップ1で取得した情報から、図5に示すようなGUI部品の構造データをGUIクラス毎に生成し、そのGUIクラスに対応するGUI部品汎用構造データとしてGUI部品汎用構造データライブラリ(104)に保存する。
4)ステップ4
ステップ3で生成したGUI部品をGUI部品選択手段203へ示す際に使う、GUI部品名やアイコン情報と、構造データへのリンク情報を図6に示すような汎用GUI部品一覧へ追加し、保存する。汎用GUI部品一覧は汎用GUI部品ライブラリ毎に1つ生成する。
5)ステップ5
汎用GUI部品ライブラリに含まれる全てのGUI部品のGUI部品汎用構造データを生成すると処理を終了する。
3)ステップ3
ステップ1で取得した情報から、図5に示すようなGUI部品の構造データをGUIクラス毎に生成し、そのGUIクラスに対応するGUI部品汎用構造データとしてGUI部品汎用構造データライブラリ(104)に保存する。
4)ステップ4
ステップ3で生成したGUI部品をGUI部品選択手段203へ示す際に使う、GUI部品名やアイコン情報と、構造データへのリンク情報を図6に示すような汎用GUI部品一覧へ追加し、保存する。汎用GUI部品一覧は汎用GUI部品ライブラリ毎に1つ生成する。
5)ステップ5
汎用GUI部品ライブラリに含まれる全てのGUI部品のGUI部品汎用構造データを生成すると処理を終了する。
図7はGUI部品を表現するGUI構造データを表す定義の一例である。
本例ではXML(Extensible Markup Language)でGUI部品のデータ構造を記述している。XMLは文書やデータの意味や構造を記述するためのマークアップ言語の一つでユーザが独自のタグを定義することができる。
図7に示すように、<gui_widget>タグで各GUI部品の構造を表す。<properties>タグはGUI部品に設定できるプロパティ一覧を表す。各プロパティは<property>、プロパティの値は<value>で表す。また他のGUI部品を継承しているGUI部品は<hierarchy_properties>タグで継承するプロパティの一覧を表す。<children>は他のGUI部品を含むことができるGUI部品であることを示すタグである。<child>はGUI部品が含むGUI部品(子GUI部品)を表す。
GUI構造データはGUI部品との対応付けのための属性情報も定義する。
<gui_widget>タグはGUI部品のクラス名を示すclass属性と、GUI部品のインスタンス名を表すname属性を持つ。<property>タグはプロパティの名前を表すname属性と、設定したプロパティをGUI部品に設定するメソッド名を表すmethod属性を持つ。<value>
はプロパティの型を示すtype属性とプロパティ値に設定されているデフォルト値を示すdefault属性を持つ。<hierarchy_properties>タグは継承クラスの名前を示すclass属性
を持つ。<children>タグはGUI部品に子GUI部品を追加するメソッド名を表すmethod 属性を持つ。<child>タグは子GUI部品のクラス名を表すclass属性と子GUI部品のインスタンス名を表すname属性を持つ。
はプロパティの型を示すtype属性とプロパティ値に設定されているデフォルト値を示すdefault属性を持つ。<hierarchy_properties>タグは継承クラスの名前を示すclass属性
を持つ。<children>タグはGUI部品に子GUI部品を追加するメソッド名を表すmethod 属性を持つ。<child>タグは子GUI部品のクラス名を表すclass属性と子GUI部品のインスタンス名を表すname属性を持つ。
なお、タグの定義と構造は一例である。GUI部品の名前やGUI部品の持つプロパティ、そのプロパティを設定するメソッド名などGUI部品の構造を表現できる書式であればどのようなタグ定義を使ってもかまわない。また、本実施例ではGUI部品汎用構造データを定義する書式にXMLを用いたが、GUIの構造データに使用する言語は特に指定しない。汎用GUI部品ライブラリの言語に依存せず、共通の書式でGUI部品の構造を表現できるものでどのような書式を使っても良い。
また、汎用GUI部品ライブラリ110で使用されるプログラム言語は特に制限しない。Java、C/C++(登録商標)、C#(登録商標)など何でもかまわない。
以下、図3、図8、図9、図10を用いてGUI画面の編集とGUI画面構造データの生成処理について説明する。
図3はGUI画面編集手段103の構成を示す図である。
GUI画面編集手段103はGUI部品汎用構造データ生成手段が生成するGUI部品汎用構造データを用いて、アプリケーション開発者にGUI画面を作成する環境を提供する。
GUI部品選択手段203はユーザにGUI部品の一覧を示し、GUI画面に配置する部品を選択させる手段である。ユーザは入力手段107を介してマウス操作などでGUI画面に配置する部品を選択しGUI画面編集手段105によって提供される編集画面に貼り付ける。プロパティ編集手段204はGUI部品の大きさや配置位置、フォント、色など表示に関するプロパティの値を設定するインターフェースを提供する。GUI画面表示データ生成手段205は編集画面に表示する画面を生成する手段である。ユーザが設定したプロパティ値を反映したGUI部品の描画を表示する。この編集画面に表示する画面GUI部品ライブラリからGUI部品汎用構造データを生成するため、ターゲット機器で動作したときに表示される画面と同等のものとなる。
GUI画面構造データ生成手段201はユーザがGUI部品選択手段203を介してGUI部品を選択し、配置し、プロパティ編集手段204を介してプロパティ値を設定したGUI部品で構成されるGUI画面を表すGUI画面構造データを生成し、GUI画面構造データ記憶手段202に保存する。
1)S800
ユーザはGUI画面の作成を開始すると、この処理が開始する。
2)S810
作成するGUI画面が新規に作成されたものかどうかを判断する。新規作成の場合はS811に、そうでない場合はS820に処理が移る。
3)S811
新規に作成されたGUI画面であった場合は、そのGUI画面用のGUI画面構造データを作成する。以後、編集画面で追加されたGUI部品の情報や、GUI部品に設定されたプロパティ値はこのGUI画面構造データに追記される。
4)S820
ユーザによる操作が編集画面へのGUI部品の配置かどうかを判断する。配置の場合はS821、そうでない場合はS830に処理が移る。
5)S821
ユーザによる操作が編集画面へのGUI部品の配置が、GUI部品の追加か、削除かを判断する。追加の場合はS822、削除の場合はS825に処理が移る。
6)S822
S822〜S824はGUI部品の追加処理である。
GUI画面構造データ生成手段201は、GUI部品汎用構造データ生成手段103が生成した汎用GUI部品一覧データを参照し、配置されたGUI部品に対応するGUI部品汎用構造データを取得する。そして、配置されたGUI部品のGUI部品汎用構造データ(個別GUI部品汎用構造データ)を生成する。
1)S800
ユーザはGUI画面の作成を開始すると、この処理が開始する。
2)S810
作成するGUI画面が新規に作成されたものかどうかを判断する。新規作成の場合はS811に、そうでない場合はS820に処理が移る。
3)S811
新規に作成されたGUI画面であった場合は、そのGUI画面用のGUI画面構造データを作成する。以後、編集画面で追加されたGUI部品の情報や、GUI部品に設定されたプロパティ値はこのGUI画面構造データに追記される。
4)S820
ユーザによる操作が編集画面へのGUI部品の配置かどうかを判断する。配置の場合はS821、そうでない場合はS830に処理が移る。
5)S821
ユーザによる操作が編集画面へのGUI部品の配置が、GUI部品の追加か、削除かを判断する。追加の場合はS822、削除の場合はS825に処理が移る。
6)S822
S822〜S824はGUI部品の追加処理である。
GUI画面構造データ生成手段201は、GUI部品汎用構造データ生成手段103が生成した汎用GUI部品一覧データを参照し、配置されたGUI部品に対応するGUI部品汎用構造データを取得する。そして、配置されたGUI部品のGUI部品汎用構造データ(個別GUI部品汎用構造データ)を生成する。
ここで、個別GUI部品汎用構造データについて、説明をする。当該個別GUI部品汎用構造データとは、GUI部品汎用構造データに含まれる汎用の構造データであって、GUI画面上で配置され、画面仕様によって、新たにプロパティ値が変更、設定されたものである。そして、プログラムの実行において、一意に識別出来るような名称や、識別子などを有するものである。このとき、GUI画面でGUI部品を識別するための識別名(例えばGUI部品クラス名+通し番号)を生成し、個別GUI部品汎用構造データに追加する。プロパティ値の内、位置、大きさは配置された編集画面に配置されたときの情報を使用する。その他のプロパティ値はGUI部品汎用構造データで設定されている初期値を使用する。
7)S823
次に、GUI部品が配置された位置から、このGUI部品がベースとなるGUI画面に配置されたのか、GUI画面に配置された他のGUI部品の要素として配置されたのかを判断する。そして、GUI画面構造データのどの位置に個別GUI部品汎用構造データを挿入するかを判断する。
8)S824
S823で判定した挿入場所へ個別GUI部品汎用構造データを挿入する。
図9はGUI画面構造データへの個別GUI部品汎用構造データの挿入例である。
図9はGUI画面900にGUI部品910、GUI部品920、GUI部品930が配置されていることを示し、更に、GUI部品910はGUI部品911、GUI部品912を含み、GUI部品930はGUI部品931を含んでいることを示している。
9)S825
S825、S826はGUI部品の削除処理である。
削除されたGUI部品の識別名(S822で設定)からGUI画面構造データのどの部分から個別GUI部品汎用構造データを削除するかを判断する。
10)S826
S825で判断した部分をGUI画面構造データから削除する。フローには記述していないが、GUI部品の移動は追加処理(S822〜S824)と削除処理(S825、S826)の組み合わせで実現できる。
11)S830
ユーザによる操作が編集画面へのGUI部品のプロパティ値の変更かどうかを判断する。プロパティ値の変更の場合はS830、そうでない場合はS840に処理が移る。
12)S831
S831、S832はプロパティ値の変更処理である。
7)S823
次に、GUI部品が配置された位置から、このGUI部品がベースとなるGUI画面に配置されたのか、GUI画面に配置された他のGUI部品の要素として配置されたのかを判断する。そして、GUI画面構造データのどの位置に個別GUI部品汎用構造データを挿入するかを判断する。
8)S824
S823で判定した挿入場所へ個別GUI部品汎用構造データを挿入する。
図9はGUI画面構造データへの個別GUI部品汎用構造データの挿入例である。
図9はGUI画面900にGUI部品910、GUI部品920、GUI部品930が配置されていることを示し、更に、GUI部品910はGUI部品911、GUI部品912を含み、GUI部品930はGUI部品931を含んでいることを示している。
9)S825
S825、S826はGUI部品の削除処理である。
削除されたGUI部品の識別名(S822で設定)からGUI画面構造データのどの部分から個別GUI部品汎用構造データを削除するかを判断する。
10)S826
S825で判断した部分をGUI画面構造データから削除する。フローには記述していないが、GUI部品の移動は追加処理(S822〜S824)と削除処理(S825、S826)の組み合わせで実現できる。
11)S830
ユーザによる操作が編集画面へのGUI部品のプロパティ値の変更かどうかを判断する。プロパティ値の変更の場合はS830、そうでない場合はS840に処理が移る。
12)S831
S831、S832はプロパティ値の変更処理である。
まず、プロパティ値を編集されたGUI部品の識別名とプロパティ名からGUI画面構造データの中の編集するプロパティに該当する箇所を検出する。
13)S832
次に、該当部分のプロパティ値をユーザが設定した値で置き換える。
14)S840
S840はGUI画面構造データの生成処理の終了判定である。終了していない場合はS810に処理を戻す。
13)S832
次に、該当部分のプロパティ値をユーザが設定した値で置き換える。
14)S840
S840はGUI画面構造データの生成処理の終了判定である。終了していない場合はS810に処理を戻す。
図10は、GUI画面構造データ生成手段201により生成されるGUI画面構造データの一例である。
<view type ="parent" name="flavorList">のviewタグはこのデータがGUI画面構造データであることを示す。図10の実施例ではGUI画面はGUI部品950、GUI部品951、GUI部品951の3つの部品で構成され、GUI部品951、GUI部品951はGUI部品950に含まれていることを示している。この例では、GUI部品の包含関係を<children>タグで表し、<child>の中に、追加されるGUI部品の構造データを挿入している。
構造データをこのような階層構造にすることで、GUI部品の追加、削除、移動の処理、および、プロパティ値の編集処理が簡単になる。
以下、図4を用いてGUIプログラムの生成処理について説明する。
図4はGUIプログラム生成手段106の構成を示す図である。
GUIプログラム生成手段106は、GUI画面編集手段105の生成するGUI画面構造データからターゲット機器の環境で動作するGUIアプリケーションを生成する手段である。
図中、GUI部品コード生成手段300は、GUI画面構造データに記述された各GUI部品の構造データとプロパティの設定値を参照し、ターゲット機器で使用するプログラム言語でGUI部品を生成するコードを生成する。図7で示したとおり、プロパティ値を設定するためのメソッド名や、引数の名前、型などはGUI部品構造データに記述されている。
GUIプログラム生成手段301はGUI画面全体を構成するプログラムコードを生成する手段である。雛形コード保持手段302に保持されている、ターゲット機器のアプリケーションの基本構造をベースに、GUI画面自体の設定値のコード、GUI部品コード生成手段300で生成されたGUI部品を生成するコードを挿入し、GUIプログラムコードを構築する。
図11にGUIプログラム生成手段が生成するGUIプログラムの一例を示す。
図中、961,962,963はGUI画面を構成するGUI部品のコードを挿入した部分に相当する。
このように、GUI部品のコードを生成するための情報をGUI部品汎用構造データに記述しておくことで、ターゲット機器の環境に対応したコードの生成が容易になる。
なお、本実施例ではGUI部品汎用構造データライブラリ104、GUI画面構造データ202、雛形コード保持手段302が異なる記憶手段に存在するように記載しているが、同じ記憶手段に記憶しても問題ない。
以上のように、本発明の実施例によればターゲット機器のプログラム言語に依存しない汎用の形式で、プログラム言語に依存しない形式の汎用GUI画面構造データを用いて、GUI画面を編集してから、ターゲットの環境で実行可能なGUIプログラムに変換する。このため、組込み機器向けのアプリケーション開発の経験のない開発者や、デザイナーなどのプログラミングの知識の無い開発者でも従来に比較して容易にGUI画面を構築できる。また、作成したGUI画面から組込み機器の実機上で動作するGUIアプリケーションを簡単に生成できる。
なお、上記実施例の説明では、XMLを例に説明をしたが、これに限定されるものではなく、データの意味や構造が記述されるマークアップ言語と呼ばれるものであっても良い。例えば、XHTML(登録商標)と呼ばれるマークアップ言語を用いても、本発明に基づく上記実施例を実施することは可能である。
100:GUIアプリケーション開発支援装置
103:GUI部品汎用構造データ生成手段
104:GUI構造データライブラリ
105:GUI画面編集手段
106:GUIプログラム生成手段
107:入力手段
108:表示手段
110:GUI部品ライブラリ
111:GUIプログラム
201:GUI画面構造データ生成手段
202:GUI画面構造データ記録手段
203:GUI部品選択手段
204:プロパティ編集手段
205:GUI画面表示データ生成手段
300:GUI部品コード生成手段
301:GUIプログラム生成手段
302:雛形プログラム保持手段
900:GUI画面
910、920、930、911,912,931:GUI部品
950、951:GUI部品
103:GUI部品汎用構造データ生成手段
104:GUI構造データライブラリ
105:GUI画面編集手段
106:GUIプログラム生成手段
107:入力手段
108:表示手段
110:GUI部品ライブラリ
111:GUIプログラム
201:GUI画面構造データ生成手段
202:GUI画面構造データ記録手段
203:GUI部品選択手段
204:プロパティ編集手段
205:GUI画面表示データ生成手段
300:GUI部品コード生成手段
301:GUIプログラム生成手段
302:雛形プログラム保持手段
900:GUI画面
910、920、930、911,912,931:GUI部品
950、951:GUI部品
Claims (19)
- グラフィカル・ユーザーインターフェースアプリケーションを開発するGUIアプリケーション開発支援装置であって、
汎用のプログラム言語で使用出来るGUI部品汎用構造データと、
前記GUI部品汎用構造データに含まれるGUI部品を用いてGUIの画面を汎用のプログラム言語で使用出来るGUI画面構造データとして生成するGUI画面編集手段と
を備えることを特徴とするGUIアプリケーション開発支援装置。 - グラフィカル・ユーザーインターフェースアプリケーションを開発するGUIアプリケーション開発支援装置であって、
汎用のプログラム言語で使用出来るGUI部品汎用構造データと、
前記GUI部品汎用構造データに含まれるGUI部品を用いてGUIの画面を汎用のプログラム言語で使用出来るGUI画面構造データとして生成するGUI画面編集手段と、
前記GUI画面構造データと、ターゲット機器で実行可能なプログラムである雛形プログラムを用いて、ターゲット機器で実行できる形式のGUIアプリケーションを生成するGUIプログラム生成手段と
を備えることを特徴とするGUIアプリケーション開発支援装置。 - 請求項1、または請求項2に記載のGUIアプリケーション開発支援装置であって、
ターゲット機器で定義されたGUI部品のライブラリである独自定義GUI部品ライブラリから汎用のプログラム言語で使用出来るGUI部品汎用構造データを生成するGUI部品汎用構造データ生成手段を備えることを特徴とするGUIアプリケーション開発支援装置。 - 請求項1、または請求項2に記載のGUIアプリケーション開発支援装置において
前記GUI部品汎用構造データ生成手段は、
前記独自定義GUI部品ライブラリに含まれるGUI部品の一覧データと、
GUI部品毎にGUI部品を表すGUI部品汎用構造データとを生成すること
を特徴とするGUIアプリケーション開発支援装置。 - 請求項1、または請求項2に記載のGUIアプリケーション開発支援装置において
前記GUI部品の一覧データには少なくとも
GUI部品クラスに対応するGUI部品汎用構造データへのリンク情報と
を含むことを特徴とするGUIアプリケーション開発支援装置。 - 請求項1、または請求項2に記載のGUIアプリケーション開発支援装置において
前記GUI部品汎用構造データには少なくとも、
前記独自定義GUI部品ライブラリで使われるGUI部品クラスの名前と、
前記独自定義GUI部品の特性を設定するプロパティの名前と当該プロパティのデータ型と、
GUI部品クラスが継承している他のGUI部品クラスである継承GUI部品クラスのGUI部品汎用構造データへのリンク情報と
を含むことを特徴とするGUIアプリケーション開発支援装置。 - 請求項6に記載のGUIアプリケーション開発支援装置において
前記独自定義GUI部品の特性とは、大きさ、色を含むGUI部品の特性であることを特徴とするGUIアプリケーション開発支援装置。 - 請求項1、または請求項2に記載のGUIアプリケーション開発支援装置において
前記汎用GUI部品構造データはXMLで記述されることを特徴とするGUIアプリケーション開発支援装置。 - 請求項1、または請求項2に記載のGUIアプリケーション開発支援装置において
前記GUI画面編集手段は、
ユーザに利用可能なGUI部品の一覧を提示し、GUI画面に配置するGUI部品を選択、配置させるGUI部品選択手段と、
GUI部品のプロパティ値を設定するI/Fを提供するプロパティ編集手段と
選択、配置された前記GUI部品に対して、前記GUI部品汎用構造データライブラリから各々に対応するGUI部品汎用構造データを取得し、前記プロパティ編集手段でプロパティ値を設定して個別GUI部品汎用構造データを生成し、当該各個別GUI部品汎用構造データからGUI画面構造データを生成するGUI画面構造データ生成手段と
を有することを特徴とするGUIアプリケーション開発支援装置。 - 請求項1、または請求項2に記載のGUIアプリケーション開発支援装置において
前記GUIプログラム生成手段は
前記GUI画面構造データから個別GUI部品汎用構造データを参照し、ターゲット機器で定義されたGUI部品のコードを生成するGUI部品のコード生成部と
ターゲット機器で実行できるアプリケーションの基本構造を持ったプログラムである雛形プログラムと、前記GUI部品のコード生成部で生成されるGUI部品のコードを用いて、
ターゲット機器で実行できる形式のGUIアプリケーションを生成するGUI画面プログラム生成手段と
を有することを特徴とするGUIアプリケーション開発支援装置。 - グラフィカル・ユーザーインターフェースアプリケーションを開発するGUIアプリケーション開発支援方法であって、
汎用のプログラム言語で使用出来るGUI部品汎用構造データと、
前記GUI部品汎用構造データに含まれるGUI部品を用いてGUIの画面を汎用プログラム言語で使用できるGUI画面構造データとして生成するGUI画面編集ステップと
を備えることを特徴とするGUIアプリケーション開発支援方法。 - グラフィカル・ユーザーインターフェースアプリケーションを開発する環境を提供するGUIアプリケーション開発支援方法であって、
汎用のプログラム言語で使用出来るGUI部品汎用構造データと、
前記GUI部品汎用構造データに含まれるGUI部品を用いてGUIの画面を汎用のプログラム言語で使用出来るGUI画面構造データとして生成するGUI画面編集ステップと、
前記GUI画面構造データと、ターゲット機器で実行可能なプログラムである雛形プログラムを用いて、ターゲット機器で実行できる形式のGUIアプリケーションを生成するGUIプログラム生成ステップと
を備えることを特徴とするGUIアプリケーション開発支援方法。 - 請求項11、または請求項12に記載のGUIアプリケーション開発支援方法であって、
ターゲット機器で定義されたGUI部品のライブラリである独自定義GUI部品ライブラリから汎用のプログラム言語で使用出来るGUI部品汎用構造データを生成するGUI部品汎用構造データ生成ステップを備えることを特徴とするGUIアプリケーション開発支援方法。 - 請求項11、または請求項12に記載のGUIアプリケーション開発支援方法において
前記GUI部品汎用構造データ生成ステップは、
前記独自定義GUI部品ライブラリに含まれるGUI部品の一覧データと、
GUI部品毎にGUI部品を表すGUI部品汎用構造データとを生成すること
を特徴とするGUIアプリケーション開発支援方法。 - 請求項11、または請求項12に記載のGUIアプリケーション開発支援方法において
前記GUI部品の一覧データには少なくとも
GUI部品クラスに対応するGUI部品汎用構造データへのリンク情報と
を含むことを特徴とするGUIアプリケーション開発支援方法。 - 請求項11、または請求項12に記載のGUIアプリケーション開発支援方法において
前記GUI部品汎用構造データには少なくとも、
前記独自定義GUI部品ライブラリで使われるGUI部品クラスの名前と、
前記独自定義GUI部品の特性を設定するプロパティの名前と当該プロパティのデータ型と、
GUI部品クラスが継承している他のGUI部品クラスである継承GUI部品クラスのGUI部品汎用構造データへのリンク情報と
を含むことを特徴とするGUIアプリケーション開発支援方法。 - 請求項16に記載のGUIアプリケーション開発支援方法において
前記独自定義GUI部品の特性とは、大きさ、色を含むGUI部品の特性であることを特徴とするGUIアプリケーション開発支援方法。 - 請求項11、または請求項12に記載のGUIアプリケーション開発支援方法において
前記汎用GUI部品構造データはXMLで記述されることを特徴とするGUIアプリケーション開発支援方法。 - 請求項11、または請求項12に記載のGUIアプリケーション開発支援方法において
前記GUI画面編集ステップは、
ユーザに利用可能なGUI部品の一覧を提示し、GUI画面に配置するGUI部品を選択、配置させるGUI部品選択ステップと、
GUI部品のプロパティ値を設定するI/Fを提供するプロパティ編集ステップと
選択、配置された前記GUI部品に対して、前記GUI部品汎用構造データライブラリから各々に対応するGUI部品汎用構造データを取得し、前記プロパティ編集ステップでプロパティ値を設定して個別GUI部品汎用構造データを生成し、当該各個別GUI部品汎用構造データからGUI画面構造データを生成するGUI画面構造データ生成ステップと
を有することを特徴とするGUIアプリケーション開発支援方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007182747A JP2009020705A (ja) | 2007-07-12 | 2007-07-12 | Guiアプリケーション開発支援装置及び開発支援方法 |
EP08251865A EP2017723A1 (en) | 2007-07-12 | 2008-05-29 | Device and method for supporting graphical user interface application development |
CNA2008101093722A CN101344846A (zh) | 2007-07-12 | 2008-06-02 | Gui应用程序开发支持装置和开发支持方法 |
KR1020080054132A KR20090006727A (ko) | 2007-07-12 | 2008-06-10 | Gui 어플리케이션 개발 지원 장치 및 개발 지원 방법 |
US12/164,855 US20090019380A1 (en) | 2007-07-12 | 2008-06-30 | Device and method for supporting graphical user interface application development |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007182747A JP2009020705A (ja) | 2007-07-12 | 2007-07-12 | Guiアプリケーション開発支援装置及び開発支援方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009020705A true JP2009020705A (ja) | 2009-01-29 |
Family
ID=39768922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007182747A Pending JP2009020705A (ja) | 2007-07-12 | 2007-07-12 | Guiアプリケーション開発支援装置及び開発支援方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090019380A1 (ja) |
EP (1) | EP2017723A1 (ja) |
JP (1) | JP2009020705A (ja) |
KR (1) | KR20090006727A (ja) |
CN (1) | CN101344846A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012108907A (ja) * | 2010-11-18 | 2012-06-07 | Korea Electronics Telecommun | ユーザーフィードバック基盤の動的エコシステム再構成方法 |
JP2014106966A (ja) * | 2012-11-29 | 2014-06-09 | Tobesoft Co Ltd | 統合開発環境を利用したui実現方法 |
JP2021514093A (ja) * | 2018-02-20 | 2021-06-03 | タタ・コンサルタンシー・サーヴィシズ・リミテッド | テーブル構造のウィジェットを制御するためのサーバ制御フレームワーク |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120005603A1 (en) * | 2009-09-17 | 2012-01-05 | The Bank Of Tokyo-Mitsubishi Ufj, Ltd. | Application development supporting apparatus, program, and recording medium |
US9098310B2 (en) * | 2009-10-29 | 2015-08-04 | International Business Machines Corporation | Constructing and deploying patterns of flows |
CN102096582A (zh) * | 2009-12-11 | 2011-06-15 | 谷歌公司 | 离线小工具集成开发环境 |
US10089119B2 (en) | 2009-12-18 | 2018-10-02 | Microsoft Technology Licensing, Llc | API namespace virtualization |
US9513882B2 (en) * | 2010-04-15 | 2016-12-06 | Microsoft Technology Licensing, Llc | Platform independent presentation composition |
US8935666B2 (en) * | 2010-06-30 | 2015-01-13 | Gordon G. MILLER, III | Systems and methods for dynamic mobile applications |
CH703401B1 (de) * | 2010-07-02 | 2019-04-30 | Ferag Ag | Verfahren und Vorrichtung zum Erzeugen einer Benutzerschnittstelle zum Bedienen von Maschinen. |
CN102063307B (zh) * | 2011-01-07 | 2015-07-15 | 杭州海康威视数字技术股份有限公司 | 嵌入式硬盘录像机的图形用户界面创建方法及其系统 |
US8776094B2 (en) | 2011-08-11 | 2014-07-08 | Microsoft Corporation | Runtime system |
US20130055291A1 (en) * | 2011-08-31 | 2013-02-28 | Microsoft Corporation | Describing native application programming interfaces of an operating system with metadata |
US8695021B2 (en) | 2011-08-31 | 2014-04-08 | Microsoft Corporation | Projecting native application programming interfaces of an operating system into other programming languages |
CN102520899B (zh) * | 2011-12-07 | 2014-08-06 | 中国航空无线电电子研究所 | 通用座舱显示管理系统 |
US9286032B2 (en) | 2013-03-15 | 2016-03-15 | International Business Machines Corporation | Automated software composition |
US10635504B2 (en) | 2014-10-16 | 2020-04-28 | Microsoft Technology Licensing, Llc | API versioning independent of product releases |
WO2022000293A1 (zh) * | 2020-06-30 | 2022-01-06 | 西门子(中国)有限公司 | 图形化编程方法和处理器、终端 |
CN115048097B (zh) * | 2022-08-15 | 2022-10-28 | 湖南云畅网络科技有限公司 | 用于低代码的前端统一打包编译系统及方法 |
US20240296022A1 (en) * | 2023-03-03 | 2024-09-05 | Kobai, Inc. | Metadata-driven visualization library integration |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0929873A1 (en) * | 1997-07-15 | 1999-07-21 | Koninklijke Philips Electronics N.V. | A method and system for designing a graphical user interface for an electronic consumer product |
US7111242B1 (en) * | 1999-01-27 | 2006-09-19 | Gateway Inc. | Method and apparatus for automatically generating a device user interface |
US6990654B2 (en) * | 2000-09-14 | 2006-01-24 | Bea Systems, Inc. | XML-based graphical user interface application development toolkit |
US6957418B2 (en) * | 2001-01-23 | 2005-10-18 | Altia, Inc. | System and method of designing, testing, and employing graphical computer code |
JP2003140893A (ja) | 2001-11-02 | 2003-05-16 | Nippon Telegr & Teleph Corp <Ntt> | ユーザインタフェースプログラム自動生成装置、自動生成方法およびプログラムと記録媒体 |
US20030135842A1 (en) * | 2002-01-16 | 2003-07-17 | Jan-Erik Frey | Software development tool for embedded computer systems |
US20030202014A1 (en) * | 2002-04-25 | 2003-10-30 | International Business Machines Corporation | Graphical user interface development tool |
US7681176B2 (en) * | 2005-03-04 | 2010-03-16 | Microsoft Corporation | Generating a graphical designer application for developing graphical models |
-
2007
- 2007-07-12 JP JP2007182747A patent/JP2009020705A/ja active Pending
-
2008
- 2008-05-29 EP EP08251865A patent/EP2017723A1/en not_active Withdrawn
- 2008-06-02 CN CNA2008101093722A patent/CN101344846A/zh active Pending
- 2008-06-10 KR KR1020080054132A patent/KR20090006727A/ko not_active Ceased
- 2008-06-30 US US12/164,855 patent/US20090019380A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012108907A (ja) * | 2010-11-18 | 2012-06-07 | Korea Electronics Telecommun | ユーザーフィードバック基盤の動的エコシステム再構成方法 |
JP2014106966A (ja) * | 2012-11-29 | 2014-06-09 | Tobesoft Co Ltd | 統合開発環境を利用したui実現方法 |
JP2021514093A (ja) * | 2018-02-20 | 2021-06-03 | タタ・コンサルタンシー・サーヴィシズ・リミテッド | テーブル構造のウィジェットを制御するためのサーバ制御フレームワーク |
JP7048765B2 (ja) | 2018-02-20 | 2022-04-05 | タタ・コンサルタンシー・サーヴィシズ・リミテッド | テーブル構造のウィジェットを制御するためのサーバ制御フレームワーク |
Also Published As
Publication number | Publication date |
---|---|
EP2017723A1 (en) | 2009-01-21 |
CN101344846A (zh) | 2009-01-14 |
KR20090006727A (ko) | 2009-01-15 |
US20090019380A1 (en) | 2009-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009020705A (ja) | Guiアプリケーション開発支援装置及び開発支援方法 | |
JP5031242B2 (ja) | データバインドされたリッチなアプリケーション | |
CN102609271A (zh) | 一种元数据驱动的SaaS应用的可视化定制方法及系统 | |
CN104798036A (zh) | 使用声明性模板来标记出控件的用户界面控件框架 | |
TW200411419A (en) | User interface element representation with simplified view | |
KR20110127686A (ko) | 리치 웹 사이트 저작 및 디자인 | |
KR20140019623A (ko) | 웹 어플리케이션 저작을 위한 통합 플랫폼 및 그 저작 방법 | |
WO2003081436A1 (fr) | Navigateur et programme a contenu multimedia | |
US20090259952A1 (en) | Information processing apparatus and method of controlling same | |
JP7113765B2 (ja) | コード管理システムおよびコード管理方法 | |
CN108369514A (zh) | 用于可执行内容和可执行内容流创建的系统和方法 | |
US20110023014A1 (en) | Method and apparatus for modifying an executable application using in-memory object representation | |
CA2686367A1 (en) | Dynamic native editor code view facade | |
KR20140042537A (ko) | 템플릿을 이용한 매쉬업 저작 장치 및 그 방법 | |
JP4626675B2 (ja) | 通信ネットワークを利用したファームウェアの提供方法、そのシステムおよびサービスサーバ | |
KR102067661B1 (ko) | 위젯 저작 시스템 및 방법 | |
Vos et al. | Pro JavaFX 9: A Definitive Guide to Building Desktop, Mobile, and Embedded Java Clients | |
JP2006163855A (ja) | Webアプリケーション開発支援装置及び開発支援方法 | |
Lincke et al. | Lively fabrik a web-based end-user programming environment | |
JP2010033500A (ja) | Guiデータ変換システムおよびguiデータ変換方法 | |
US10222944B1 (en) | Embedding user interface elements in documents containing code | |
Weaver et al. | Pro JavaFX 8: A Definitive Guide to Building Desktop, Mobile, and Embedded Java Clients | |
KR20100137364A (ko) | 패턴을 그래픽적으로 구성 및 가시화하기 위한 툴 | |
KR101456507B1 (ko) | N-스크린 적용을 위한 웹 어플리케이션 ui 저작 장치 및 그 저작 방법 | |
Sun | Practical application development with apprun |