(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-27
(45)【発行日】2024-01-11
(54)【発明の名称】アプリケーション開発装置、アプリケーション開発方法、及びアプリケーション開発プログラム
(51)【国際特許分類】
G06F 8/38 20180101AFI20231228BHJP
G06F 3/048 20130101ALI20231228BHJP
【FI】
G06F8/38
G06F3/048
(21)【出願番号】P 2019114027
(22)【出願日】2019-06-19
【審査請求日】2022-04-19
(73)【特許権者】
【識別番号】398040527
【氏名又は名称】株式会社オービック
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】吉井 聡
(72)【発明者】
【氏名】馬場 健人
(72)【発明者】
【氏名】上野 剛光
【審査官】金田 孝之
(56)【参考文献】
【文献】特開2008-191993(JP,A)
【文献】特開2011-070500(JP,A)
【文献】特開2001-253513(JP,A)
【文献】特開2013-235382(JP,A)
【文献】特開2013-050868(JP,A)
【文献】特開2007-066077(JP,A)
【文献】特開2011-124665(JP,A)
【文献】特開2005-190212(JP,A)
【文献】特開2017-156891(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/048
G06F 8/00 - 8/77
G06F 9/00 - 9/54
(57)【特許請求の範囲】
【請求項1】
記憶部及び制御部を備えたアプリケーション開発装置であって、
前記制御部は、
表示部に、状態制御するための関数の内容を設定するためのGUIを表示するGUI表示制御手段と、
前記GUIでのユーザ操作に応じて、前記状態制御する関数の条件部分と処理部分を設定する関数設定手段と、
前記関数設定手段の設定に応じたオブジェクトを作成して前記記憶部に保存するオブジェクト保存手段と、
を備え、
前記関数設定手段は、前記GUIでのユーザ操作に応じて、前記関数の条件部分の一部を命名して前記記憶部に登録し、名前を参照することで前記記憶部の対応する条件を参照し、前記GUIには、前記関数の処理部分を定義したテンプレートを選択するためのエリアと、登録されている条件部分の名前の一覧と、前記状態制御の対象であるコントロールが表示され、前記関数設定手段は、ユーザ操作により、名前が対象の1又は複数のコントロールへドラッグ&ドロップ操作された場合に、当該コントロールに対応する条件部分を設定し、ユーザ操作により選択されたテンプレートを使用して前記関数の処理部分を設定することを特徴とす
るアプリケーション開発装置。
【請求項2】
前記GUIにおいて、ユーザ操作により、名前がマウスオーバーされた場合に条件部分が設定されたコントロールを識別表示することを特徴とする請求項1に記載のアプリケーション開発装置。
【請求項3】
前記コントロールは、テキストボックス、チェックボックス、ラベル、ボタン、ラジオボタン、パネル、及びタブ
を含むことを特徴とする請求項1又は2に記載のアプリケーション開発装置。
【請求項4】
制御部及び記憶部を備えた情報処理装置に実行させるためのアプリケーション開発方法であって、
前記制御部で実行される、
表示部に、状態制御するための関数の内容を設定するためのGUIを表示するGUI表示ステップと、
前記GUIでのユーザ操作に応じて、前記状態制御する関数の条件部分と処理部分を設定する関数設定ステップと、
前記関数設定ステップの設定に応じたオブジェクトを作成して前記記憶部に保存するオブジェクト保存ステップと、
を含み、
前記関数設定ステップでは、前記GUIでのユーザ操作に応じて、前記関数の条件部分の一部を命名して前記記憶部に登録し、名前を参照することで前記記憶部の対応する条件を参照し、前記GUIには、前記関数の処理部分を定義したテンプレートを選択するためのエリアと、登録されている条件部分の名前の一覧と、前記状態制御の対象であるコントロールが表示され、前記関数設定ステップでは、ユーザ操作により、名前が対象の1又は複数のコントロールへドラッグ&ドロップ操作された場合に、当該コントロールに対応する条件部分を設定し、ユーザ操作により選択されたテンプレートを使用して前記関数の処理部分を設定することを特徴とするアプリケーション開発方法。
【請求項5】
制御部及び記憶部を備えた情報処理装置に実行させるためのアプリケーション開発プログラムであって、
前記制御部において、
表示部に、状態制御するための関数の内容を設定するためのGUIを表示するGUI表示ステップと、
前記GUIでのユーザ操作に応じて、前記状態制御する関数の条件部分と処理部分を設定する関数設定ステップと、
前記関数設定ステップの設定に応じたオブジェクトを作成して前記記憶部に保存するオブジェクト保存ステップと、
を実行させるためのアプリケーション開発プログラムであり、
前記関数設定ステップでは、前記GUIでのユーザ操作に応じて、前記関数の条件部分の一部を命名して前記記憶部に登録し、名前を参照することで前記記憶部の対応する条件を参照し、前記GUIには、前記関数の処理部分を定義したテンプレートを選択するためのエリアと、登録されている条件部分の名前の一覧と、前記状態制御の対象であるコントロールが表示され、前記関数設定ステップでは、ユーザ操作により、名前が対象の1又は複数のコントロールへドラッグ&ドロップ操作された場合に、当該コントロールに対応する条件部分を設定し、ユーザ操作により選択されたテンプレートを使用して前記関数の処理部分を設定することを特徴とするアプリケーション開発プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーション開発装置、アプリケーション開発方法、及びアプリケーション開発プログラムに関する。
【背景技術】
【0002】
従来、GUI(Graphical User Interface)によって利用者にアプリケーションを開発させるアプリケーション開発装置として、例えば、特許文献1が公知である。かかるアプリケーション開発装置は、GUIによって利用者にアプリケーションを開発させるGUI開発手段、および、CUIによってGUI開発手段を制御するCUI用GUI制御手段を備え、GUI開発手段は、操作部の操作によって発生するイベントである入力イベントに応じて動作し、CUI用GUI制御手段は、入力イベントをCUIによって擬似的に発生させる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術では、アプリケーションの開発を高速かつ保守性高く実現することが課題となっている。
【0005】
本発明は、上記に鑑みてなされたものであり、アプリケーションの開発を高速かつ保守性高く実現することが可能なアプリケーション開発装置、アプリケーション開発方法、及びアプリケーション開発プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本発明は、記憶部及び制御部を備えたアプリケーション開発装置であって、前記制御部は、表示部に、状態制御するための関数の内容を設定するためのGUIを表示するGUI表示制御手段と、前記GUIでのユーザ操作に応じて、前記状態制御する関数の条件部分と処理部分を設定する関数設定手段と、前記関数設定手段の設定に応じたオブジェクトを作成して前記記憶部に保存するオブジェクト保存手段と、を備えたことを特徴とする。
【0007】
また、本実施の形態によれば、前記状態制御の対象は、コントロールのプロパティであり、前記コントロールは、テキストボックス、チェックボックス、ラベル、ボタン、ラジオボタン、パネル、及びタブを含み、前記プロパティは、可視/不可視、入力可否、初期値、固定値、文字数、有効桁数、及びアイテムを含むことにしてもよい。
【0008】
また、本実施の形態によれば、前記関数設定手段は、前記GUIでのユーザ操作に応じて、前記関数の条件部分の一部を命名して前記記憶部に登録し、当該名前を参照することで前記記憶部の対応する条件を参照することにしてもよい。
【0009】
また、本実施の形態によれば、前記GUIには、登録されている条件部分の名前の一覧が表示され、前記関数設定手段は、ユーザ操作により、名前が対象のコントロールへドラッグ&ドロップ操作された場合に対応する条件部分を設定することにしてもよい。
【0010】
また、本実施の形態によれば、前記関数設定手段は、前記GUIでの利用者の操作に応じて、前記関数の処理部分を定義したテンプレートを使用して前記関数の処理部分を設定することにしてもよい。
【0011】
また、上述した課題を解決し、目的を達成するために、本発明は、制御部及び記憶部を備えた情報処理装置に実行させるためのアプリケーション開発方法であって、前記制御部で実行される、表示部に、状態制御するための関数の内容を設定するためのGUIを表示するGUI表示ステップと、前記GUIでのユーザ操作に応じて、前記状態制御する関数の条件部分と処理部分を設定する関数設定ステップと、前記関数設定ステップの設定に応じたオブジェクトを作成して前記記憶部に保存するオブジェクト保存ステップと、を含むことを特徴とする。
【0012】
また、上述した課題を解決し、目的を達成するために、本発明は、制御部及び記憶部を備えた情報処理装置に実行させるためのアプリケーション開発プログラムであって、前記制御部において、表示部に、状態制御するための関数の内容を設定するためのGUIを表示するGUI表示ステップと、前記GUIでのユーザ操作に応じて、前記状態制御する関数の条件部分と処理部分を設定する関数設定ステップと、前記関数設定ステップの設定に応じたオブジェクトを作成して前記記憶部に保存するオブジェクト保存ステップと、を実行させるためのアプリケーション開発プログラム。
【発明の効果】
【0013】
本発明によれば、アプリケーションの開発を高速かつ保守性高く実現することが可能になるという効果を奏する。
【図面の簡単な説明】
【0014】
【
図1】
図1は、「区分1がA」かつ「区分2がA」の場合、テキスト1を編集不可とする仕様を説明するための図である。
【
図2】
図2は、イベント型及び常時反映型がGUI操作により設定可能かを示す図である。
【
図3】
図3は、イベント型の課題を説明するための図である。
【
図4】
図4は、本発明の対象を説明するための図である。
【
図5】
図5は、本実施の形態に係る不動産評価装置の一例を示すブロック図である。
【
図6】
図6は、CASE関数をGUIで表現する場合のGUI画面の表示例を示す図である。
【
図7】
図7は、
図6のGUI画面のエリアの機能(WHEN、THEN、ELSE)を説明するための説明図である。
【
図8】
図8は、
図6のGUI画面の操作により作成されるオブジェクトの一例を示す図である。
【
図9】
図9は、作成されるオブジェクと
図6のGUI画面の設定の対応関係を示す図である。
【
図10】
図10は、アプリケーション実行時の処理フローの一例を示す図である。
【
図11-A】
図11-Aは、本実施の形態での状態制御の対象となるコントロール及びそのプロパティの一例を示す図である。
【
図11-B】
図11-Bは、本実施の形態での状態制御の対象となるコントロール及びそのプロパティの一例を示す図である。
【
図12】
図12は、WHENが複雑な場合のGUI画面の一例を示す図である。
【
図13】
図13は、条件の一部を命名するためのGUI画面の一例を示している。
【
図14】
図14は、条件を参照形式としたGUI画面の一例を示す図である。
【
図15】
図15は、条件を参照形式とした場合に作成されるオブジェクトを説明するための図である。
【
図16】
図16は、テキスト1とテキスト2に対して、同じ条件で入力可否制御をしたい場合を説明するための図である。
【
図17】
図17は、対象プロパティ、THENの値、ELSEの値の3要素を定義したTHEN/ELSEテンプレートを用いる場合を説明するための図である。
【
図18】
図18は、THEN/ELSEテンプレートと条件のドラッグ/ドロップ形式によって、複数のコントロールへの同条件かつ同制御を設定する場合のGUI画面の一例を説明するための図である。
【
図19】
図19は、THEN/ELSEテンプレートと条件のドラッグ/ドロップ形式によって、複数のコントロールへの同条件かつ同制御を設定する場合のGUI画面の一例を説明するための図である。
【
図21】
図21は、GUI画面において、条件にマウスオーバーすると紐づけられたコントロールをハイライト表示する例を示す図である。
【
図22】
図22は、THEN/ELSEテンプレートと条件のドラッグ/ドロップ形式を使用した場合に作成されるオブジェクトを説明するための図である。
【
図23】
図23は、WHEN/THENを2つにした場合のGUI画面の例を示す図である。
【
図24】
図24は、
図23のGUI画面のエリアの機能(WHEN、THEN、ELSE)を説明するための説明図である。
【発明を実施するための形態】
【0015】
以下に、本発明に係るアプリケーション開発装置、アプリケーション開発方法、及びアプリケーション開発プログラムの実施の形態を、図面に基づいて詳細に説明する。なお、本実施形態によりこの発明が限定されるものではない。
【0016】
[1.概要]
近時、ビジネスの変化の高速化に伴い、業務アプリケーションを高速に開発、変更するニーズが高まっている。例えば、コントロール(例えば、テキストボックスなど)の状態(例えば、可視/不可視、入力可能/不可能等)などを制御(例えば、ユーザの操作やデータベースの値などに応じて動的に状態を変化させる)させる場合を考える。
【0017】
状態制御手法として、例えば、(1)イベント型と、(2)常時反映型がある。(1)イベント型の場合は、ボタンクリックやテキスト変更(イベント)時に反映し、イベントごとに別々の制御ロジックを持つ。すなわち、イベント型では、イベントハンドラ内に手続き的に制御ロジックが実装される。(2)常時反映型の場合は、常に反映し、制御ロジックは1つである。
【0018】
図1は、「区分1がA」かつ「区分2がA」の場合、テキスト1を編集不可とする仕様を説明するための図である。
図1の仕様の場合のイベント型と常時反映型の状態制御を説明する。
【0019】
イベント型の場合は、区分1が変更された場合は、区分1の値と区分2を確認し、どちらも「A」である場合にテキスト1を入力不可とする。そうでない場合は、テキスト1を入力可能とする。同様に、区分2が変更された場合、区分1の値と区分2を確認し、どちらも「A」である場合にテキスト1を入力不可とする。そうでない場合はテキスト1を入力可能とする。
【0020】
常時反映型の場合は、テキスト1の入力可否は、区分1の値と区分2のどちらも「A」である場合に入力不可、そうでない場合に入力可能という不変な関数によって決まる。関数(入力を処理し結果を返すもの)は常に評価され続けており、結果が変わった際に反映される。
【0021】
図2は、イベント型及び常時反映型がGUI操作により設定可能かを示す図である。
図2に示すように、常時反映型でGUI操作により設定可能な製品は現状では存在していない。
【0022】
図3は、イベント型の課題を説明するための図である。
図3に示すように、イベント型の場合は、ロジックが散らばってしまう。具体的には、イベント型の場合は、1制御対象に対する制御が複数のイベントに散らばっているため、完全な制御仕様を知るには全てのイベントを確認する必要があり、また、修正時には全ての箇所が対象になる。そのため、時間的コスト大、バグを生みやすい(品質低)という課題がある。
【0023】
そこで、本実施の形態のアプリケーション開発装置では、
図4に示すように、常時反映型の状態制御をGUIベースで設定可能な構成を採用することで、高速開発ツールによるGUIベースのアプリケーション開発において、状態制御(可視/不可視、入力可否等)を高速かつ保守性高く設定可能としている。
【0024】
また、制御条件をGUIで宣言的に設定できるようにしている。また、制御条件の部分条件を命名し、参照することで可読性や保守性を向上させることができる。また、制御テンプレートを用いることで複数コントロールへの同条件同制御をより高速化、高保守性を実現することが可能となる。
【0025】
[2.構成]
本実施の形態に係るアプリケーション開発装置100の構成について、
図5を参照して説明する。
図5は、本実施の形態に係るアプリケーション開発装置100の構成の一例を示すブロック図である。
【0026】
アプリケーション開発装置100は、市販のデスクトップ型パーソナルコンピュータである。なお、アプリケーション開発装置100は、デスクトップ型パーソナルコンピュータのような据置型情報処理装置に限らず、市販されているノート型パーソナルコンピュータ、PDA(Personal Digital Assistants)、スマートフォン、タブレット型パーソナルコンピュータなどの携帯型情報処理装置であってもよい。
【0027】
アプリケーション開発装置100は、
図5に示すように、制御部102と通信インターフェース部104と記憶部106と入出力インターフェース部108と、を備えている。アプリケーション開発装置100が備えている各部は、任意の通信路を介して通信可能に接続されている。
【0028】
通信インターフェース部104は、ルータ等の通信装置および専用線等の有線または無線の通信回線を介して、アプリケーション開発装置100をネットワーク300に通信可能に接続する。通信インターフェース部104は、他の装置と通信回線を介してデータを通信する機能を有する。ここで、ネットワーク300は、アプリケーション開発装置100とサーバ200とを相互に通信可能に接続する機能を有し、例えばインターネットやLAN(Local Area Network)等である。なお、後述する記憶部106に格納されるデータは、サーバに格納されてもよい。
【0029】
入出力インターフェース部108には、入力装置112および出力装置114が接続されている。出力装置114には、モニタ(家庭用テレビを含む)の他、スピーカやプリンタを用いることができる。入力装置112には、キーボード、マウス、およびマイクの他、マウスと協働してポインティングデバイス機能を実現するモニタを用いることができる。なお、以下では、出力装置114をモニタ114とし、入力装置112をキーボード112またはマウス112として記載する場合がある。また、ユーザが出力装置(モニタ)114の画面(GUI等)に対して入力装置112で操作することを、単に「ユーザ操作」と記載する場合がある。
【0030】
記憶部106には、各種のデータベース、テーブル、およびファイルなどが格納される。記憶部106には、OS(Operating System)と協働してCPU(Central Processing Unit)に命令を与えて各種処理を行うためのコンピュータプログラムが記録される。記憶部106として、例えば、RAM(Random Access Memory)・ROM(Read Only Memory)等のメモリ装置、ハードディスクのような固定ディスク装置、フレキシブルディスク、および光ディスク等を用いることができる。
【0031】
記憶部106は、ファイル106a等を備えている。ファイル106aは、作成したアプリケーションのオブジェクト(ソースファイル)、条件部分、THEN/ELSEテンプレート等のデータを格納するためのファイルである。
【0032】
制御部102は、アプリケーション開発装置100を統括的に制御するCPU等である。制御部102は、OS等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどを格納するための内部メモリを有し、格納されているこれらのプログラムに基づいて種々の情報処理を実行する。制御部102は、機能概念的に、GUI表示制御部102aと、関数設定部102bと、オブジェクト保存部102cと、を備えている。
【0033】
GUI表示制御部102aは、モニタ114に状態制御するための関数の内容を設定するためのGUI(例えば、
図6等参照)を表示する。
【0034】
状態制御の対象は、例えば、コントロールのプロパティとしてもよい。コントロールは、例えば、テキストボックス、チェックボックス、ラベル、ボタン、ラジオボタン、パネル、及びタブを含むことにしてもよい。また、プロパティは、可視/不可視、入力可否、初期値、固定値、文字数、有効桁数、及びアイテムを含むことにしてもよい。
【0035】
関数設定部102bは、GUIでのユーザ操作に応じて、状態制御する関数(例えば、CASE関数)の条件部分(例えば、WHEN)と処理部分(例えば、THEN/ELSE)を設定する。
【0036】
また、関数設定部102bは、モニタ114に表示されるGUIでのユーザ操作に応じて、関数の条件部分の一部の条件を命名して記憶部106のファイル106aに登録し、当該名前を参照することでファイル106aの対応する条件を参照することにしてもよい。
【0037】
また、GUIには、登録されている条件部分の名前の一覧が表示され、関数設定部102bは、GUI上でのユーザ操作により、名前が対象のコントロールへドラッグ&ドロップ操作された場合に対応する条件部分を設定することにしてもよい。
【0038】
また、関数設定部102bは、GUIでの利用者の操作に応じて、関数の処理部分のテンプレート(例えば、THEN/ELSEテンプレート)を使用して関数の処理部分を設定することにしてもよい。
【0039】
オブジェクト保存部102cは、関数設定部102bの設定に応じたオブジェクト(「アプリケーションのオブジェクト、パッケージ、ソース」とも言う)を作成して、記憶部106のファイル106aに保存する。
【0040】
[3.処理の具体例]
図5~
図24を参照して、本実施の形態におけるアプリケーション開発装置100の制御部102の処理の具体例を説明する。
【0041】
以下の説明では、CASE関数をGUIで表現する場合を一例として説明する。
図6は、CASE関数をGUIで表現する場合のGUI画面の表示例を示す図である。
図7は、
図6のGUI画面のエリアの機能(WHEN、THEN、ELSE)を説明するための説明図である。ここでは、CASE関数を使用して、「区分1がA」かつ「区分2がA」の場合、コントロール(テキストボックス)のテキスト1を編集不可とする場合を説明する。なお、WHENとTHENのペアは、1つのCASE関数に対して複数となる場合がある。
【0042】
図6及び
図7に示すGUI画面500の例では、CASE関数のうち、「WHEN」の条件を設定するためのエリア501と、「THEN」の場合(「WHEN」が真となる場合)の値を設定するためのエリア502と、「ELSE」の場合(全ての「WHEN」が偽となる場合)の値を設定するためのエリア503とを備えている。
【0043】
エリア501では、コントロールの値と固定値の比較や比較同士の論理演算結果等を設定可能である。WHENの左辺や右辺として使えるものは、例えば、(1)コントロールのプロパティ(例えば、テキストボックスのテキスト等)、(2)変数(例えば、値を出し入れできる箱。画面に表示する必要のない隠し項目を保持する。)、(3)システム変数(例えば、「現在日付」、「ユーザ名」などである。)、(4)定数(例えば、固定の文字や数値、真偽値など)等である。
【0044】
エリア501の例では、AND、OR等の設定、区分の設定、等しい(=)、等しくないない(≠)、小さい(<)、大きい(>)等の設定、真偽値・文字列・数値の設定等が可能となっている。
図6に示す例では、「AND」、「区分1の値」、「等しい」、「文字列A」と、「区分2の値」、「等しい」、「文字列A」が選択されており、すなわち、「区分1=A AND 区分2=A」が選択されている。
【0045】
エリア502は、「THEN」の場合(「WHEN」が真となる場合)、すなわち、対となるWHENが条件を満たした場合に採用する値を設定するためのエリアである。
図6に示す例では、コントロールのロックと非ロックを設定することが可能となっており、ロックが選択されている。
【0046】
エリア503は、「ELSE」の場合(全ての「WHEN」が偽となる場合)、すなわち、WHENが条件を満たさなかった場合に採用する値を設定するためのエリアである。
図6に示す例では、コントロールのロックと非ロックを設定することが可能となっており、非ロックが選択されている。
【0047】
つぎに、作成されるオブジェクトについて説明する。GUI画面での状態制御の関数の設定は構造化されたオブジェクトとして保存される。
図8は、
図6のGUI画面の操作により作成されるオブジェクト601の一例を示す図である。
図8において、一部を省略し、抽象化している。
【0048】
図9は、作成されるオブジェクト601と
図6のGUI画面500の設定の対応関係を示す図である。不図示のGUI画面で対象のコントロール、プロパティを設定する。同図において、GUI画面の設定と、オブジェクトの対応する部分には同一の符号を付してある。
図9に示すオブジェクト601の例では、コントロールId:(テキスト1のId)、プロパティ:入力可否が設定されている。作成したオブジェクト601は記憶部106のファイル106aに格納される。
【0049】
図10は、アプリケーション実行時の処理フローの一例を示す図である。アプリケーション実行時は、再描画要否チェックと状態制御の処理を行う。
図10において、あらゆる変更イベントを検知し(ステップS1)、イベントを検知した場合には(ステップS1の「Yes」)、状態制御の条件に使われている項目が変更されかを判断する(ステップS2)。
【0050】
状態制御の条件に使われている項目が変更された場合は(ステップS2の「Yes」)、全ての状態制御について、WHENを先頭から順に処理し、採用するTHEN又はELSEを決定する(ステップS3)。採用されたTHEN又はELSEの値を取得し、対象コントロールの対象プロパティをその値に変更する(ステップS4)。
【0051】
上記の例では、状態制御の対象をテキストボックスの入力可否の例を示したが、本実施の形態の状態制御の対象はこれに限られるものではなく、例えば、
図11-A及び
図11-Bに示すような各種のコントロールのプロパティにも適用可能である。
図11-A及び
図11-Bは、本実施の形態での状態制御の対象となるコントロール及びそのプロパティの一例を示す図である。
【0052】
(変形例1)
1つの条件(WHEN)が複雑になると、一目で理解するのが難しくなる。
図12は、WHENが複雑な場合の一例を示す図である。
図12に示す例では、WHEN(条件)が、「区分1=A、区分2=A、変数(入力モード)=1,AND 変数(ユーザ確認)=1」の場合を示している。本実施の形態では、条件の一部を(1)分離し、それぞれに(2)命名し、それらを(3)参照することで可読性の向上を図る。
【0053】
図13は、条件の一部を命名するためのGUI画面510の一例を示している。GUI画面510のWHENの条件の一部を、命名してファイル106aに登録する。同図に示すGUI画面510の例では、
図12に示す条件の一部である「区分1=A、AND 区分2=A」を抽出(1)して、「区分1と区分2がともにA」の名前(命名(2))でファイル106aに登録する。より具体的には、例えば、利用者は、GUI画面510で条件を選択(設定)して、名前を入力し、不図示の登録ボタンを押すことで、ファイル106aに条件を登録することができる。また、図示を省略するが、「変数(入力モード)=1,AND 変数(ユーザ確認)=1」の条件を、「読取専用」の名前でファイル106aに登録する。ファイル106aに登録した名前を選択することで、登録した条件を参照することができる。
【0054】
図14は、条件を参照形式としたGUI画面520の一例を示す図である。
図14において、「コンディション参照」に登録した名前を設定することで、登録した条件を参照することができる。
図14に示す例では、「コンディション参照」に、「区分1と区分2がともにA」と、「読取専用」の2つが設定されており、ファイル106aに登録されている「区分1=A、AND 区分2=A」の条件と、「変数(入力モード)=1,AND 変数(ユーザ確認)=1」の条件が参照される。
【0055】
命名された条件を参照する形に変えることで、命名により可読性が向上し、情報量が減り、条件を使いまわすことができ、これにより作業減・修正漏れを削減することが可能となる。
【0056】
図15は、条件を参照形式とした場合に作成されるオブジェクト610を説明するための図である。
図15において、参照形式の場合は、オブジェクト610に示すように、オブジェクトが外部にある条件を参照するためのIdのみを持つようにすることで、参照形式を使用していない
図9のオブジェクト601に比して、オブジェクトの構造を簡素化することができる。オブジェクト610の例では、タイプ:条件参照、条件Id:(区分1と区分2がともにAのId)となっている。
【0057】
(変形例2)
複数のコントロールに同じ条件で同じ制御をする際に、簡単に設定したい、同じ制御がされていることを視覚的に把握したい場合がある。THEN/ELSEテンプレートと条件のドラッグ/ドロップ形式によって、複数のコントロールへの同条件かつ同制御を高速に設定する場合の例を説明する。
図16は、テキスト1とテキスト2に対して、同じ条件で入力可否制御をしたい場合を説明するための図である。
【0058】
図17は、対象プロパティ、THENの値、ELSEの値の3要素を定義したTHEN/ELSEテンプレートを用いる場合を説明するための図である。
図17において、対象プロパティ、THENの値、ELSEの値をTHEN/ELSEテンプレートで定義する。WHENについては、上述の参照形式を使用するため、THEN/ELSEテンプレートには定義しない。
図17に示す例では、対象のプロパティ:入力可否、THEN:ロック、ELSE:ロックなし(何もしない)をTHEN/ELSEテンプレートで定義する。THEN/ELSEテンプレートは、予め用意してファイル106aに登録しておいてもよいし、利用者が、GUI画面で、THEN/ELSEテンプレートを定義して、ファイル106aに登録することにしてもよい。ファイル106aに登録されているTHEN/ELSEテンプレートは必要に応じて読み出される。
【0059】
図18及び
図19は、THEN/ELSEテンプレートと条件のドラッグ/ドロップ形式によって、複数のコントロールへの同条件かつ同制御を設定する場合のGUI画面530の一例を説明するための図である。
図18(A)において、エリア531では、THEN/ELSEテンプレートの一覧からTHEN/ELSEテンプレートを選択することができ、選択されたTHEN/ELSEテンプレートの3要素(対象プロパティ、THENの値、ELSEの値)を設定可能である。
【0060】
エリア532には、登録した条件の一覧が表示され、条件を選択してエリア533の対象のコントロールにドラッグ&ドロップすることで、条件を設定可能である。エリア532には、対象のコントロールが表示される。エリア532は、例えば、利用者の操作に応じて、記憶部106に格納されているコントロールを表示可能である。
【0061】
図18(B)に示すように、エリア531では、利用者は、例えば、ロックする(入力可否)のTHEN/ELSEテンプレートを選択する。これにより、対象のプロパティ:入力可否、THEN:ロック、ELSE:ロックなし(何もしない)が設定される。
【0062】
次に、
図19(A)に示すように、エリア532において、利用者がマウス等により、「区分1と2がともにA」をエリア533のコントロールのテキスト1にドラッグ&ドロップすることで、テキスト1に、「区分1と2がともにA」の条件が設定される。
【0063】
同様に、
図19(B)に示すように、エリア532において、利用者がマウス等により、「区分1と2がともにA」をエリア533のコントロールのテキスト2にドラッグ&ドロップすることで、テキスト2に、「区分1と2がともにA」の条件が設定される。
【0064】
図20は、変形例2を纏めた図であり、
図20に示すように、WHENの条件は、命名された条件を対象のコントロールにドラッグ&ドロップすることで設定可能であり、また、THEN/ELSEテンプレートを使用して、対象プロパティ、THENの値、ELSEの値の3要素を設定可能である。
【0065】
GUI画面において、条件にマウスオーバーした場合に紐づけられたコントロールをハイライトするようにしてもよい。
図21は、GUI画面において、条件にマウスオーバーすると紐づけられたコントロールをハイライト表示する例を示す図である。
図21に示す例では、エリア532において、「区分1と2がともにA」がマウスオーバーされて、テキスト1,テキスト2がハイライト表示されている。これにより、可読性を向上させることができる。
【0066】
図22は、THEN/ELSEテンプレートと条件のドラッグ/ドロップ形式を使用した場合に作成されるオブジェクト620を説明するための図である。
図22に示すように、THEN/ELSEテンプレートと条件のドラッグ/ドロップ形式を使用した場合は、オブジェクト620に示すように、オブジェクトが外部にあるテンプレートを参照するためのIdと条件Idのみを持つようにすることで、オブジェクトをより簡素化することができる。
図22に示す例では、テンプレートId:(入力可否のテンプレートId)、条件Id:(区分1と区分2がともにAのId)となっている。
【0067】
(変形例3)
上記の例では、WHEN/THENを1つの場合について説明したが、本発明はこれに限られるものではなく、複数の場合にも適用可能である。
図23は、WHEN/THENを2つにした場合のGUI画面の例を示す図である。
図24は、
図23のGUI画面のエリアの機能(WHEN、THEN、ELSE)を説明するための説明図である。
図23において、区分1=Aの場合にロック、区分2=Aの場合にロックしない、それ以外の場合にロックとなっている。
【0068】
以上説明したように、本実施の形態によれば、モニタ114に、状態制御するための関数の内容を設定するためのGUIを表示するGUI表示制御部102aと、GUI上でのユーザ操作に応じて、状態制御する関数の条件部分と処理部分を設定する関数設定部102bと、関数設定部102bの設定に応じたオブジェクトを作成して記憶部106に保存するオブジェクト保存部102cと、を備えているので、アプリケーションの開発を高速かつ保守性高く実現することが可能になる。付言すると、状態制御を常時反映型で実現することによって1対象に対する制御が1か所に集約されることで可読性が向上し修正コストを下げることができる。
【0069】
また、本実施の形態では、条件を分離/命名/参照することによって命名と情報量減により可読性が向上し、条件を使いまわすことで、作業量と修正漏れを低減することができる。
【0070】
また、本実施の形態では、複数コントロールへの同条件同制御を高速に設定可能となり、また、制御群を俯瞰可能となり可読性を向上させることが可能となる。このように、可読性が高いと、現仕様が理解しやすくなり、どう変更すればいいのかがすぐに理解でき(高速)、変更の仕方を間違えにくい(高品質)という利点がある。
【0071】
[4.他の実施形態]
本発明は、上述した実施の形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
【0072】
例えば、実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【0073】
また、本明細書中や図面中で示した処理手順、制御手順、具体的名称、各処理の登録データや検索条件等のパラメータを含む情報、画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
【0074】
また、アプリケーション開発装置100に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【0075】
例えば、アプリケーション開発装置100が備える処理機能、特に制御部102にて行われる各処理機能については、その全部または任意の一部を、CPUおよび当該CPUにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、本実施形態で説明した処理を情報処理装置に実行させるためのプログラム化された命令を含む一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じてアプリケーション開発装置100に機械的に読み取られる。すなわち、ROMまたはHDD(Hard Disk Drive)などの記憶部などには、OSと協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAMにロードされることによって実行され、CPUと協働して制御部を構成する。
【0076】
また、このコンピュータプログラムは、アプリケーション開発装置100に対して任意のネットワークを介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
【0077】
また、本実施形態で説明した処理を実行するためのプログラムを、一時的でないコンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、USB(Universal Serial Bus)メモリ、SD(Secure Digital)カード、フレキシブルディスク、光磁気ディスク、ROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable and Programmable Read Only Memory)、CD-ROM(Compact Disk Read Only Memory)、MO(Magneto-Optical disk)、DVD(Digital Versatile Disk)、および、Blu-ray(登録商標) Disc等の任意の「可搬用の物理媒体」を含むものとする。
【0078】
また、「プログラム」とは、任意の言語または記述方法にて記述されたデータ処理方法であり、ソースコードまたはバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OSに代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施形態に示した各装置において記録媒体を読み取るための具体的な構成および読み取り手順ならびに読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
【0079】
記憶部106に格納される各種のデータベース等は、RAM、ROM等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および、ウェブページ用ファイル等を格納する。
【0080】
また、アプリケーション開発装置100は、既知のパーソナルコンピュータまたはワークステーション等の情報処理装置として構成してもよく、また、任意の周辺装置が接続された当該情報処理装置として構成してもよい。また、アプリケーション開発装置100は、当該装置に本実施形態で説明した処理を実現させるソフトウェア(プログラムまたはデータ等を含む)を実装することにより実現してもよい。
【0081】
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じてまたは機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。
【符号の説明】
【0082】
100 アプリケーション開発装置
102 制御部
102a GUI表示制御部
102b 関数設定部
102c オブジェクト保存部
104 通信インターフェース部
106 記憶部
106a ファイル
108 入出力インターフェース部
112 入力装置
114 出力装置
200 サーバ
300 ネットワーク