(57)【要約】【課題】オブジェクトの選択し直しを防止することができるビジュアルプログラミング支援装置、ビジュアルプログラミング支援装置のビジュアルプログラミング支援方法、プログラム、および記憶媒体を提供する。【解決手段】オブジェクト管理領域８０１に表示されているラベル８０２のオブジェクト編集領域８０３へのドラッグアンドドロップに応じて、オブジェクト編集領域８０３にラベル８０５が表示されたオブジェクト２０５の仮実行結果をプレビュー領域８０６に表示することにより、プログラムの構成要素とするオブジェクト２０５の選択過程において、当該オブジェクト２０５の動作結果を直感的に利用者に示すことができるので、オブジェクト２０５の選択し直しを防止することができる。【選択図】        図７
2010134879.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの構成要素であって、他の構成要素と連携して固有の処理を実行するオブジェクトの視覚情報を表示画面上の管理領域に表示する管理手段と、
前記管理領域に前記視覚情報を表示した前記オブジェクトの中から、固有の処理を実行させる前記オブジェクトおよび当該オブジェクト間の関係の入力を受け付ける入力受付手段と、
入力を受け付けた前記オブジェクトの前記視覚情報および前記オブジェクト間の関係を前記表示画面上の編集領域に表示する編集手段と、
前記編集領域の前記視覚情報および前記オブジェクト間の関係から、固有の処理を実行する際の前記オブジェクト間の連携を判断する判断手段と、
判断した前記オブジェクト間の連携に従って、前記オブジェクトがあたかも固有の処理を実行したかのような仮実行結果を生成する実行手段と、
前記仮実行結果を前記表示画面上のプレビュー領域に表示するプレビュー手段と、
を備えたことを特徴とするビジュアルプログラミング支援装置。
【請求項２】
前記編集領域に表示されている前記視覚情報の表示制御を受け付けるグラフィカルユーザインターフェースを前記プレビュー領域に表示するプレビュー編集手段と、
前記グラフィカルユーザインターフェースにより受け付けた表示制御を前記編集領域に反映させるフィードバック手段と、
をさらに備えたことを特徴とする請求項１に記載のビジュアルプログラミング支援装置。
【請求項３】
前記グラフィカルユーザインターフェースは、プルダウンメニューまたはチェックボックスであることを特徴とする請求項２に記載のビジュアルプログラミング支援装置。
【請求項４】
前記実行手段は、最後に前記固有の処理を実行する前記オブジェクト以外の前記オブジェクトの前記仮実行結果を生成することを特徴とする請求項１から３のいずれか一に記載のビジュアルプログラミング支援装置。
【請求項５】
管理手段が、プログラムの構成要素であって、他の構成要素と連携して固有の処理を実行するオブジェクトの視覚情報を表示画面上の管理領域に表示する管理工程と、
入力受付手段が、前記管理領域に前記視覚情報を表示した前記オブジェクトの中から、固有の処理を実行させる前記オブジェクトおよび当該オブジェクト間の関係の入力を受け付ける入力受付工程と、
編集手段が、入力を受け付けた前記オブジェクトの前記視覚情報および前記オブジェクト間の関係を前記表示画面上の編集領域に表示する編集工程と、
判断手段が、前記編集領域の前記視覚情報および前記オブジェクト間の関係から、固有の処理を実行する際の前記オブジェクト間の連携を判断する判断工程と、
実行手段が、判断した前記オブジェクト間の連携に従って、前記オブジェクトがあたかも固有の処理を実行したかのような仮実行結果を生成する実行工程と、
プレビュー手段が、前記仮実行結果を前記表示画面上のプレビュー領域に表示するプレビュー工程と、
を有することを特徴とするビジュアルプログラミング支援装置のビジュアルプログラミング支援方法。
【請求項６】
プレビュー編集手段が、前記編集領域に表示されている前記視覚情報の表示制御を受け付けるグラフィカルユーザインターフェースを前記プレビュー領域に表示するプレビュー編集工程と、
フィードバック手段が、前記グラフィカルユーザインターフェースにより受け付けた表示制御を前記編集領域に反映させるフィードバック工程と、
をさらに有することを特徴とする請求項５に記載のビジュアルプログラミング支援装置のビジュアルプログラミング支援方法。
【請求項７】
前記グラフィカルユーザインターフェースは、プルダウンメニューまたはチェックボックスであることを特徴とする請求項６に記載のビジュアルプログラミング支援装置のビジュアルプログラミング支援方法。
【請求項８】
前記実行工程は、最後に前記固有の処理を実行する前記オブジェクト以外の前記オブジェクトの前記仮実行結果を生成することを特徴とする請求項５から７のいずれか一に記載のビジュアルプログラミング支援装置のビジュアルプログラミング支援方法。
【請求項９】
請求項５から８のいずれか一に記載のビジュアルプログラミング支援装置のビジュアルプログラミング支援方法の各工程をコンピュータに実行させるためのプログラム。
【請求項１０】
請求項５から８のいずれか一に記載のビジュアルプログラミング支援装置のビジュアルプログラミング支援方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータ読取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビジュアルプログラミング支援装置、ビジュアルプログラミング支援装置のビジュアルプログラミング支援方法、プログラム、および記憶媒体に関するものである。
【背景技術】
【０００２】
近年、パーソナルコンピュータの進歩に伴い、ウェブなどのネットワーク上のサービスが活用される機会が増えてきている。今後は、Web2.0に代表されるWeb関連の技術により、ネットワーク上のサービスを組み合わせて、新しいサービスとして利用することが一般的に増えてくることが予想される。それに伴い、従来の文字ベースの人工言語によるプログラミングに加えて、ネットワーク上のサービス等のオブジェクトを視覚的に表現したアイコン等を組み合わせることによりプログラムを作成することができるビジュアルプログラミング環境を提供するソフトウェアが幾つか登場している。
【０００３】
しかし、一般の利用者がネットワーク上のサービスを組み合わせて新たなサービスとして活用するためには、利用者自身がプログラミングするという煩雑な処理を行う必要がある。そのため、今後、ネットワーク上のサービスの恩恵を受けられない利用者が増えてしまう恐れがある。また、ビジュアルプログラミングによりプログラムを作成する場合であっても、実際にはオブジェクトを視覚的に表現したアイコン等の組み合わせを、コンピュータ言語にコンパイルし、かつコンパイルしたプログラムを実行しない限り、プログラミングの結果を確認することができないので、利用者に対して利用上の心理的な障壁を与えることが予想される。
【０００４】
そこで、コンピュータスクリーン上でソフトウェア（オブジェクト）の抽象概念（グラフィック表現）を線で結んでいくことにより、ソフトウェアの機能を連携させる技術が提案されている（特許文献１参照）。特許文献１に記載のグラフィカルプログラミングのための方法では、複数のグラフィック表現のうちの第１のグラフィック表現からの出力を、該複数のグラフィック表現のうちの該第１のグラフィック表現の入力および該複数のグラフィック表現のうちの第２のグラフィック表現の入力の少なくとも一方に、グラフィカルに相互接続することに応答して、該第１のグラフィック表現と関連する第１のオペレータ（オブジェクト）と、該第２のグラフィック表現と関連する第２のオペレータ（オブジェクト）とを自動的に連携させるものである。
【０００５】
【特許文献１】特表２００３−５２９８２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上記特許文献１に記載された発明によれば、第１のオペレータと連携可能な第２のオペレータの第２のグラフィック表現が提示されるので、連携させるソフトウェアの機能の選択は容易になるものの、連携させるソフトウェアの機能を全て選択し、当該選択したグラフィック表現の組み合わせをコンピュータ言語にコンパイルし、かつコンパイルしたプログラムを実行しない限り、利用者は当該プログラムの実行結果を確認することができない。
【０００７】
したがって、連携させるソフトウェアの機能の選択の過程で、利用者が望まないソフトウェアの機能が選択されたとしても、コンパイルしたプログラムを実行しない限り、当該プログラムの実行結果を確認することができないため、所望の実行結果が得られなかった場合には、ソフトウェアの機能を再度選択し直さなければならない、という問題がある。
【０００８】
本発明は、上記に鑑みてなされたものであって、オブジェクトの選択し直しを防止することができるビジュアルプログラミング支援装置、ビジュアルプログラミング支援装置のビジュアルプログラミング支援方法、プログラム、および記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明にかかるビジュアルプログラミング支援装置は、プログラムの構成要素であって、他の構成要素と連携して固有の処理を実行するオブジェクトの視覚情報を表示画面上の管理領域に表示する管理手段と、前記管理領域に前記視覚情報を表示した前記オブジェクトの中から、固有の処理を実行させる前記オブジェクトおよび当該オブジェクト間の関係の入力を受け付ける入力受付手段と、入力を受け付けた前記オブジェクトの前記視覚情報および前記オブジェクト間の関係を前記表示画面上の編集領域に表示する編集手段と、前記編集領域の前記視覚情報および前記オブジェクト間の関係から、固有の処理を実行する際の前記オブジェクト間の連携を判断する判断手段と、判断した前記オブジェクト間の連携に従って、前記オブジェクトがあたかも固有の処理を実行したかのような仮実行結果を生成する実行手段と、前記仮実行結果を前記表示画面上のプレビュー領域に表示するプレビュー手段と、を備えたことを特徴とする。
【００１０】
また、請求項２にかかるビジュアルプログラミング支援装置は、請求項１に記載の発明において、前記編集領域に表示されている前記視覚情報の表示制御を受け付けるグラフィカルユーザインターフェースを前記プレビュー領域に表示するプレビュー編集手段と、前記グラフィカルユーザインターフェースにより受け付けた表示制御を前記編集領域に反映させるフィードバック手段と、をさらに備えたことを特徴とする。
【００１１】
また、請求項３にかかるビジュアルプログラミング支援装置は、請求項２に記載の発明において、前記グラフィカルユーザインターフェースは、プルダウンメニューまたはチェックボックスであることを特徴とする。
【００１２】
また、請求項４にかかるビジュアルプログラミング支援装置は、請求項１から３のいずれか一に記載の発明において、前記実行手段は、最後に前記固有の処理を実行する前記オブジェクト以外の前記オブジェクトの前記仮実行結果を生成することを特徴とする。
【００１３】
また、請求項５にかかるビジュアルプログラミング支援装置のビジュアルプログラミング支援方法は、管理手段が、プログラムの構成要素であって、他の構成要素と連携して固有の処理を実行するオブジェクトの視覚情報を表示画面上の管理領域に表示する管理工程と、入力受付手段が、前記管理領域に前記視覚情報を表示した前記オブジェクトの中から、固有の処理を実行させる前記オブジェクトおよび当該オブジェクト間の関係の入力を受け付ける入力受付工程と、編集手段が、入力を受け付けた前記オブジェクトの前記視覚情報および前記オブジェクト間の関係を前記表示画面上の編集領域に表示する編集工程と、判断手段が、前記編集領域の前記視覚情報および前記オブジェクト間の関係から、固有の処理を実行する際の前記オブジェクト間の連携を判断する判断工程と、実行手段が、判断した前記オブジェクト間の連携に従って、前記オブジェクトがあたかも固有の処理を実行したかのような仮実行結果を生成する実行工程と、プレビュー手段が、前記仮実行結果を前記表示画面上のプレビュー領域に表示するプレビュー工程と、を有することを特徴とする。
【００１４】
また、請求項６にかかるビジュアルプログラミング支援装置のビジュアルプログラミング支援方法は、請求項５にかかる発明において、プレビュー編集手段が、前記編集領域に表示されている前記視覚情報の表示制御を受け付けるグラフィカルユーザインターフェースを前記プレビュー領域に表示するプレビュー編集工程と、フィードバック手段が、前記グラフィカルユーザインターフェースにより受け付けた表示制御を前記編集領域に反映させるフィードバック工程と、をさらに有することを特徴とする。
【００１５】
また、請求項７にかかるビジュアルプログラミング支援装置のビジュアルプログラミング支援方法は、請求項６に記載の発明において、前記グラフィカルユーザインターフェースは、プルダウンメニューまたはチェックボックスであることを特徴とする。
【００１６】
また、請求項８にかかるビジュアルプログラミング支援装置のビジュアルプログラミング支援方法は、請求項５から７のいずれか一にかかる発明において、前記実行工程は、最後に前記固有の処理を実行する前記オブジェクト以外の前記オブジェクトの前記仮実行結果を生成することを特徴とする。
【００１７】
また、請求項９にかかるプログラムは、請求項５から８のいずれか一に記載のビジュアルプログラミング支援装置のビジュアルプログラミング支援方法の各工程をコンピュータに実行させるためのものである。
【００１８】
また、請求項１０にかかる記憶媒体は、請求項５から８のいずれか一に記載のビジュアルプログラミング支援装置のビジュアルプログラミング支援方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータ読取り可能なものである。
【発明の効果】
【００１９】
本発明によれば、プログラムの構成要素とするオブジェクトの選択過程において、当該オブジェクトの動作結果を直感的に利用者に示すことができるので、オブジェクトの選択し直しを防止することができる、という効果を奏する。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、この発明にかかるビジュアルプログラミング支援装置、ビジュアルプログラミング支援装置のビジュアルプログラミング支援方法、プログラム、および記憶媒体の最良な実施の形態を詳細に説明する。
【００２１】
（第１実施の形態）
まず、図１を用いて、本発明にかかるビジュアルプログラミング支援装置、ビジュアルプログラミング支援装置のビジュアルプログラミング支援方法、プログラム、および記憶媒体が適用されるシステム環境について説明する。図１は、本発明にかかるビジュアルプログラミング支援装置が適用されるシステム環境の一例を示す図である。
【００２２】
本発明にかかるビジュアルプログラミング支援装置、ビジュアルプログラミング支援装置のビジュアルプログラミング支援方法、プログラム、および記憶媒体は、パーソナルコンピュータやワークステーションなどのコンピュータ１０１のソフトウェアまたはウェブなどの様々なネットワーク上のサービスが稼動しているインターネット１０２に接続されているパーソナルコンピュータ（ＰＣ）１００に適用されるものである。なお、ＰＣ１００は、表示画面であるビットマップスクリーン、入力部であるマウスなどのポインティングデバイスやキーボードなどの操作表示部を備えているものとする。
【００２３】
図２は、本実施の形態にかかるＰＣのハードウェアおよびソフトウェアの構成を説明するための説明図である。図２に示すように、本実施の形態にかかるＰＣ１００は、各種機器からなるハードウェアリソース２０７を有する。このハードウェアリソース２０７に含まれる機器には、ＨＤＤ（Hard  Disk  Drive）、ネットワークインターフェース、上述した操作表示部などがある。
【００２４】
このハードウェアリソース２０７を制御するソフトウェアシステムは、ウェブブラウザ（Web  Browser）２０１、エンジン（Engine）２０２、ウェブサーバ（Web  Server）２０３、ＣＧＩ（Common  Gateway  Interface）２０４、オブジェクト２０５、およびオペレーティングシステム２０６を有している。
【００２５】
オペレーティングシステム２０６は、その他のソフトウェアが動作するための基盤を提供する。ウェブブラウザ２０１は、操作表示部に画像データ等を表示するソフトウェアである。
【００２６】
エンジン２０２は、ウェブブラウザ２０１を通じて、利用者にビジュアルプログラミング環境を提供するソフトウェアである。ここで、ビジュアルプログラミング環境とは、コンピュータ１０１のソフトウェアやインターネット１０２上のサービスなどのプログラムの構成要素であって、固有の処理を実行するオブジェクト２０５を視覚的に表現した視覚情報であるアイコン等のラベルを操作表示部の表示画面に表示し、ポインティングデバイスの操作に応じて、オブジェクト２０５が固有の処理を実行するプログラムを作成する環境である。
【００２７】
ＣＧＩ２０４は、エンジン２０２により提供されるビジュアルプログラミング環境により選択されたオブジェクト２０５を起動するためのソフトウェアである。
【００２８】
ウェブサーバ２０３は、ＣＧＩ２０４とエンジン２０２との間での情報送信を行うソフトウェアである。
【００２９】
オブジェクト２０５は、上述したように、プログラムの構成要素であって、他の構成要素との通信、対話、協調により連携して固有の処理を実行するものである。より具体的には、オブジェクト２０５は、オブジェクト２０５間の共通の通信路を流れるメッセージに対して各オブジェクト２０５が反応して固有の処理を実行するものである。また、オブジェクト２０５は、ソフトウェアシステムへの参加、離脱により、ソフトウェアシステム全体の動作を柔軟に変更させることができる。
【００３０】
ここで、共通の通信路は、単にＬＡＮなどの物理的ネットワークに限定されるものではなく、無線、音声、光などメッセージを流すことができる媒体を介在するものであればよい。また、共通の通信路は、各オブジェクトが共通に呼び出し可能なメモリ等の記憶媒体、さらには通信路上のポートアドレス等など仮想的な存在であってもよい。
【００３１】
次に、オブジェクト２０５のオブジェクトモデルについて説明する。図３は、オブジェクトのＵＭＬクラス図である。ＵＭＬ（Unified  Modeling  Language）とは、ＯＭＧ（Object  Management  Group）が使用を策定しているシステムモデリング言語であり、モデリングの成果を記述する記法を定義したものである。このＵＭＬは、オブジェクト指向によるソフトウェアの設計において広く用いられている。
【００３２】
クラスとは、オブジェクトの設計図に相当する概念であり、オブジェクトの内部状態である属性やその内部状態を変化させる内部関数である操作や、他のオブジェクトとの関係を定義するものである。より具体的には、クラスは、ＵＭＬクラス図において、３段の区画を有する矩形として記述される。それぞれの区画は、上から名前区画、属性区画、および操作区画と呼ばれる。名前区画には、当該クラスの名称が記述され、属性区画には、当該クラスが有するデータ（属性）が記述され、操作区画には、当該クラスが有する手続（操作）が記述される。
【００３３】
このように、クラスは、データ（属性）を所持するための属性区画と、かかる属性の書込みおよび読み出しを行う手続き（操作）を所持するための操作区画とを有している。これらのクラスは、ソフトウェアの一部として含まれるので、ソフトウェアが実行されると、各クラスは所定の記憶領域に実体化され、属性区画に含まれる各データ（属性）が所定の記憶領域上に展開される。したがって、クラスが実体化したオブジェクトは、所定の記憶領域上の各データ（属性）の書き込みおよび読み出しを行うことが可能となる。
【００３４】
なお、クラス図において、属性や操作の左側に「-」記号を付した場合は、当該属性や操作が外部のクラスに非公開であることを示し、「+」記号を付した場合は、当該属性や操作が外部のクラスに公開されていることを示す。また、操作については「メッセージ受信（）」のように「（）」記号を付すことが通例であり、「（引数１，引数２）」のように、かかる操作に引き渡す引数を記述する場合もある。
【００３５】
本実施の形態にかかるオブジェクト２０５のクラスは、操作として、メッセージ受信（）、不整合受信（）、および処理（）を有する。
【００３６】
メッセージ受信（）は、オブジェクト２０５の固有の処理の実行（または仮実行）を要求するメッセージを受信する処理である。ここで、仮実行とは、あたかも固有の処理を実行したかのような実行結果（以下、仮実行結果とする）を生成する処理であり、例えば、オブジェクトの固有の処理がスキャン処理である場合、スキャナが備える原稿がセットされていないコンタクトガラスを読み取った画像データ（以下、ダミーデータとする）を生成する処理である。
【００３７】
また、不整合受信（）は、他のオブジェクトから固有の処理を実行できない原因を通知する不整合通知メッセージを受信する処理である。処理（）は、オブジェクト２０５の固有の処理である。
【００３８】
また、オブジェクト２０５のクラスは、属性として、オブジェクトＩＤ、オブジェクトの名前、オブジェクトのＵＲＬ、オブジェクトの種類、設定情報名、設定情報値、およびテンプレートを有する。これらの属性と操作のうち、処理（）、設定情報名、設定情報値、およびテンプレートは、クラスの外部に公開されない。
【００３９】
オブジェクトＩＤは、オブジェクトを特定するための情報である。オブジェクトの名前は、オブジェクトの名称である。オブジェクトのＵＲＬは、オブジェクトを指定する情報である。オブジェクトの種類は、オブジェクトが実行する固有の処理の種類である。設定情報名は、固有の処理の実行に用いるパラメータ等の設定情報の名称である。設定情報値は、固有の処理の実行に用いるパラメータの値である。テンプレートは、オブジェクト間で送受信するメッセージの書式である。
【００４０】
ここで、図４および図５を用いて、スキャン処理を実行するオブジェクト（以下、スキャンオブジェクトとする）、およびスキャンオブジェクトによるスキャン処理により得られた画像データに含まれるＱＲコードの解析処理を実行するオブジェクト（以下、ＱＲコード解析オブジェクトとする）のオブジェクトモデルについて説明する。図４は、スキャンオブジェクトのＵＭＬクラス図である。図５は、ＱＲコード解析オブジェクトのＵＭＬクラス図である。
【００４１】
スキャンオブジェクトのクラスは、操作として、メッセージ受信（）、不整合受信（）、およびスキャン処理（）を有する。
【００４２】
メッセージ受信（）は、スキャンオブジェクトの固有の処理の実行（または仮実行）を要求するメッセージを受信する処理である。不整合受信（）は、ＱＲコード解析オブジェクトから固有の処理を実行できない原因を通知する不整合通知メッセージを受信する処理である。スキャン処理（）は、スキャンオブジェクトの固有の処理であり、固有の処理の実行を要求するメッセージを受信した場合、原稿を読み取った画像データを生成し、仮実行を要求するメッセージを受信した場合、コンタクトガラスを読み取ったダミーデータを生成する。
【００４３】
また、スキャンオブジェクトのクラスは、属性として、オブジェクトＩＤ、オブジェクトの名前、オブジェクトのＵＲＬ、オブジェクトの種類、設定情報名、設定情報値、および仮実行結果の生成用テンプレートを有する。これらの属性と操作のうち、スキャン処理（）、設定情報名、設定情報値、テンプレート、および仮実行結果の生成用テンプレートは、クラスの外部に公開されない。
【００４４】
オブジェクトＩＤは、スキャンオブジェクトを特定するための情報であり、例えば、“Scan  Object”等である。オブジェクトの名前は、スキャンオブジェクトの名称であり、例えば、“スキャンオブジェクト”等である。オブジェクトのＵＲＬは、スキャンオブジェクトを指定する情報であり、例えば、“http://example.com/ScanObject”等である。オブジェクトの種類は、スキャンオブジェクトの固有の処理の種類であり、例えば、“入力”等である。設定情報名は、スキャンオブジェクトの固有の処理に用いるパラメータ等の設定情報の名称であり、例えば、“解像度”等である。設定情報値は、スキャンオブジェクトの固有の処理に用いるパラメータの値であり、例えば、“300dpi”等である。
【００４５】
テンプレートは、固有の処理の実行により生成される画像データの書式を示す情報であり、例えば、「ＪＰＥＧデータ」である。仮実行結果の生成用テンプレートは、仮実行結果であるダミーデータの書式を示す情報であり、例えば、「ダミーのＪＰＥＧデータ」である。
【００４６】
ＱＲコード解析オブジェクトのクラスは、操作として、メッセージ受信（）、不整合受信（）、およびＱＲコード解析処理（）を有する。
【００４７】
メッセージ受信（）は、ＱＲコード解析オブジェクトの固有の処理の実行（または仮実行）を要求するメッセージをスキャンオブジェクトから受信する処理である。不整合受信（）は、他のオブジェクトから固有の処理を実行できない原因を通知する不整合通知メッセージを受信する処理である。ＱＲコード解析処理（）は、ＱＲコード解析オブジェクトの固有の処理であり、固有の処理の実行を要求するメッセージを受信した場合、スキャンオブジェクトの固有の処理の実行により生成された画像データに含まれるＱＲコードの解析結果を生成し、仮実行を要求するメッセージを受信した場合、スキャンオブジェクトによる仮実行結果であるダミーデータに含まれるＱＲコードの解析結果を生成する。
【００４８】
また、ＱＲコード解析オブジェクトのクラスは、属性として、オブジェクトＩＤ、オブジェクトの名前、オブジェクトのＵＲＬ、オブジェクトの種類、設定情報名、設定情報値、テンプレート、および仮実行結果の生成用テンプレートを有する。これらの属性と操作のうち、ＱＲコード解析処理（）、設定情報名、設定情報値、テンプレート、および仮実行結果の生成用テンプレートは、クラスの外部に公開されない。
【００４９】
オブジェクトＩＤは、ＱＲコード解析オブジェクトを特定するための情報であり、例えば、“QR  Code  Object”である。オブジェクトの名前は、ＱＲコード解析オブジェクトの名称であり、例えば、“ＱＲコード解析オブジェクト”である。オブジェクトのＵＲＬ（Uniform  Resource  Locator）は、ＱＲコード解析オブジェクトを指定する情報であり、例えば、“http://example.com/qrCodeObject”である。オブジェクトの種類は、ＱＲコード解析オブジェクトが実行する固有の処理の種類であり、例えば、“加工”である。設定情報名は、ＱＲコード解析オブジェクトが固有の処理に用いるパラメータ等の設定情報の名称であり、例えば、“解像度”である。設定情報値は、ＱＲコード解析オブジェクトが固有の処理に用いるパラメータの値であり、例えば、“600dpi”である。
【００５０】
テンプレートは、固有の処理の実行により生成された解析結果の書式を示す情報であり、「なし」である。仮実行結果の生成用テンプレートは、仮実行結果である解析結果の書式を示す情報であり、「なし」である。
【００５１】
図６は、本実施の形態にかかるＰＣのハードウェア構成を示すブロック図である。図６に示すように、ＰＣ１００は、コントローラ６００と、ＵＳＢ（Universal  Serial  Bus）インターフェース６０１と、ＩＥＥＥ１３９４（the  Institute  of  Electrical  and  Electronics  Engineers  1394）インターフェース６０２と、をＰＣＩ（Peripheral  Component  Interconnect）バス６０３で接続した構成となる。
【００５２】
コントローラ６００は、ＰＣ１００の全体制御を行う制御装置であり、ＣＰＵ（Central  Processing  Unit）６０４と、システムメモリ（ＭＥＭ−Ｐ）６０５と、ノースブリッジ（ＮＢ）６０６と、サウスブリッジ（ＳＢ）６０７と、ＡＳＩＣ（Application  Specific  Integrated  Circuit）６０８と、ローカルメモリ（ＭＥＭ−Ｃ）６０９と、ハードディスクドライブ（ＨＤＤ：Hard  Disk  Drive）６１０と、を有し、ノースブリッジ（ＮＢ）６０６とＡＳＩＣ６０８との間をＡＧＰ（Accelerated  Graphics  Port）６１２で接続した構成となる。
【００５３】
ＣＰＵ６０４は、各種ソフトウェアを実行するための演算装置である。ＰＣ１００の各種機能を実現するためのソフトウェアシステム（図２に示す）は、ＭＥＭ−Ｃ６０９もしくはＨＤＤ６１０に記憶保持され、必要に応じてＭＥＭ−Ｐ６０５にロードされてこのＣＰＵ６０４により実行される。
【００５４】
ＭＥＭ−Ｐ６０５は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタに出力する画像データの描画用メモリなどとして用いるシステムメモリであり、ＲＯＭ（Read  Only  Memory）６０５ａとＲＡＭ(Random  Access  Memory)６０５ｂとからなる。ＲＯＭ６０５ａは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ６０５ｂは、プログラムやデータの展開用メモリ、プリンタに出力する画像データの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
【００５５】
ＮＢ６０６およびＳＢ６０７は、ＭＥＭ−Ｐ６０５やＡＧＰ６１２を制御する制御装置であり、ＮＢ６０６を介してＣＰＵ６０４とＭＥＭ−Ｐ６０５とＳＢ６０７とＡＧＰ６１２とが接続される形をとる。ＮＢ６０６は、ＡＧＰ６１２を介してＡＳＩＣ６０８とも接続され、その先にＰＣＩバス６０３が接続される。
【００５６】
ＡＳＩＣ６０８は、画像処理のための制御装置である。このＡＳＩＣ６０８は、ＭＥＭ−Ｃ６０９やＨＤＤ６１０や操作表示部６１１のような周辺機器と接続され、これらの制御もおこなう。ＭＥＭ−Ｃ６０９は、ＡＳＩＣ６０８が画像処理をおこなう画像データ等を一時記憶する記憶部であり、ＨＤＤ６１０は、各種ソフトウェア、フォントデータ、蓄積するよう指示された画像データ等を記憶する記憶部である。操作表示部６１１は、表示画面および入力部などを備えて構成される。
【００５７】
ＵＳＢインターフェース６０１およびＩＥＥＥ１３９４インターフェース６０２は、外部機器を接続するためのインターフェースである。ＰＣＩバス６０３には、これら以外にネットワーク接続のためのインターフェース装置等も接続される。
【００５８】
次に、ＭＥＭ−Ｐ６０５にロードされたソフトウェアシステムのうち、ビジュアルプログラミング環境を提供するエンジン２０２の機能構成について説明する。図７は、エンジンの機能構成を示すブロック図である。エンジン２０２は、図７に示すように、オブジェクト管理部７０１、オブジェクト編集部７０２、オブジェクト連携判断部７０３、オブジェクト連携テーブル部７０４、実行部７０５、プレビュー部７０６、および入力受付部７０７を備えて構成される。
【００５９】
オブジェクト管理部７０１は、オブジェクト２０５を視覚的に表現した視覚情報であるアイコン等のラベルを、オブジェクト２０５の手続（操作）であるメソッドに従って分類して、操作表示部６１１が備える表示画面８００のオブジェクト管理領域８０１に表示する。
【００６０】
図８は、操作表示部が有する表示画面の一例を示す図である。オブジェクト管理部７０１は、図８に示すように、オブジェクト２０５のラベル８０２を、オブジェクト２０５のメソッド（例えば、収集・加工・出力）に従って分類して、操作表示部６１１が備える表示画面８００のオブジェクト管理領域８０１に表示する。
【００６１】
本実施の形態では、オブジェクト管理部７０１は、ＨＤＤ６１０に予めインストールされているオブジェクト管理テーブルを参照して、オブジェクト２０５のメソッドに従ってラベル８０２を分類するものとする。図９は、オブジェクト管理テーブルの一例を示す図である。
【００６２】
オブジェクト管理テーブルは、図９に示すように、オブジェクト２０５のＩＤと、オブジェクト２０５のラベルと、オブジェクト２０５のメソッドと、オブジェクト２０５の機能と、を対応付けるものである。
【００６３】
オブジェクト２０５のＩＤは、オブジェクト２０５を特定するユニークな数値や文字列である。ラベルは、上述したように、オブジェクト２０５を視覚的に表現した視覚情報であり、利用者がオブジェクト２０５を特定することができる文字列やアイコン等である。
【００６４】
メソッドは、オブジェクト２０５の属性の書き込みおよび読み出しを行う手続（操作）であり、例えば、ＨＴＴＰ（Hypertext  Transfer  Protocol）において、サーバから情報を取得する収集（ＧＥＴ）、オブジェクト２０５から情報を送出する出力（ＰＯＳＴ）、オブジェクト２０５が所持するデータ（属性）を更新する加工（ＰＵＴ）するコマンドである。
【００６５】
利用者は、オブジェクト管理領域８０１に表示されたオブジェクト２０５の分類に従って、プログラムの構成要素とするオブジェクト２０５のラベル８０２を選択することにより、プログラムを作成することができる。具体的には、「収集」に分類されたラベル８０２および「出力」に分類されたラベル８０２が選択された場合、「収集」に分類されたラベル８０２のオブジェクト２０５により取得した情報を、「出力」に分類されたラベル８０２のオブジェクト２０５から出力する、というプログラムを作成することができる。
【００６６】
例えば、「Files」のオブジェクト２０５は、ファイルのリストを取得するメソッド（ＧＥＴ）を有する。また、「Scanner」のオブジェクト２０５は、スキャナにより読み取った情報を取得するメソッド（ＧＥＴ）を有する。また、「Title」，「Author」，「Published」，「Search」のオブジェクト２０５は、情報を取得するメソッド（ＧＥＴ）および情報を出力するメソッド（ＰＯＳＴ）を有する。また、「Printer」，「Storage」のオブジェクト２０５は、情報を更新するメソッド（ＰＵＴ）および情報を出力するメソッド（ＰＯＳＴ）を有する。
【００６７】
機能は、ビジュアルプログラミング言語において、アイコンで視覚的に表現されるオブジェクト２０５であるアプリケーションモジュールやネットワーク上のサービスの場所を指し示す情報である。
【００６８】
入力受付部７０７は、操作表示部６１１の入力部が備えるポインティングデバイスの操作に応じて、オブジェクト管理領域８０１にラベル８０２が表示されたオブジェクト２０５の中から、固有の処理を実行させるオブジェクト２０５および当該オブジェクト２０５間の関係であるオブジェクト２０５のメソッド（収集・加工・出力）の入力を受け付ける。
【００６９】
オブジェクト編集部７０２は、入力を受け付けたオブジェクト２０５のラベル８０５を、入力を受け付けたオブジェクト２０５のメソッド８０４に従って分類してオブジェクト編集領域８０３に表示する。
【００７０】
なお、本実施の形態では、ラベル８０５をメソッドに従って分類して表示することにより、オブジェクト２０５間の関係を示しているが、これに限定するものではない。例えば、操作表示部６１１の入力部が備えるポインティングデバイスの操作に応じて、オブジェクト編集領域８０３内に描かれたリンク線や矢印などによりオブジェクト２０５間の関係を示しても良い。
【００７１】
また、オブジェクト編集部７０２は、オブジェクト編集領域８０３にオブジェクトの設定情報であるオプションの設定を受け付けるグラフィカルユーザインターフェースを表示することができる。
【００７２】
図１０は、オプションの設定を受け付けるためのＧＵＩ（グラフィカルユーザインターフェース）が表示された表示画面の一例を示す図である。オブジェクト編集部７０２は、例えば、オブジェクト編集領域８０３のラベル（「抽出（Search）」）８０５のオブジェクト２０５のオプションの設定を受け付ける場合、当該オブジェクト２０５の固有の処理である抽出処理に用いるフィルタ（例えば、「ユーザ」，「本日」，「title」，「summary」など）を設定するためのチェックボックスを含むＧＵＩ１０００を、オブジェクト編集領域８０３に表示する。なお、入力受付部７０７は、ＧＵＩ１０００で受け付けたオプションの設定の入力を受け付けるものとする。
【００７３】
オブジェクト連携判断部７０３は、オブジェクト編集領域８０３に表示されたラベル８０５およびメソッド８０４から、固有の処理を実行する際のオブジェクト２０５間の連携であって、具体的には最初に固有の処理を実行するオブジェクト２０５から最後に固有の処理を実行するオブジェクト２０５までの一連のリンクを判断する。
【００７４】
オブジェクト連携テーブル部７０４は、オブジェクト連携判断部７０３により判断した一連のリンクを表すオブジェクト連携テーブル、および入力受付部７０７により入力を受け付けたオプションの設定を記憶する。図１１は、一連のリンクを表すオブジェクト連携テーブルの一例を示す図である。図１１に示すオブジェクト連携テーブルでは、オブジェクトＩＤと、オブジェクトのラベルと、オブジェクト編集領域におけるラベルの位置を表す座標（Ｘ，Ｙ）と、オブジェクト間のリンクを表すリンク情報であるリンク（前）およびリンク（後）と、が対応付けられている。
【００７５】
なお、リンク（前）は、オブジェクトＩＤにより特定されるオブジェクトの前に固有の処理を実行するオブジェクトのオブジェクトＩＤを示し、リンク（後）はオブジェクトＩＤにより特定されるオブジェクトの後に固有の処理を実行するオブジェクトのオブジェクトＩＤを示している。
【００７６】
例えば、オブジェクトＩＤ：「１」と対応付けられたリンク（後）：「８」は、オブジェクトＩＤ：「１」により特定されるオブジェクトの固有の処理の後に、オブジェクトＩＤ：「８」により特定されるオブジェクトの固有の処理が実行されることを示している。また、オブジェクトＩＤ：「２」と対応付けられたリンク（前）：「８」は、オブジェクトＩＤ：「２」により特定されるオブジェクトの固有の処理の前に、オブジェクトＩＤ：「８」により特定されるオブジェクトの固有の処理が実行されることを示している。また、オブジェクトＩＤ：「８」と対応付けられたリンク（前）：「１」は、オブジェクトＩＤ：「８」により特定されるオブジェクトの固有の処理の前に、オブジェクトＩＤ：「１」により特定されるオブジェクトの固有の処理が実行されることを示し、オブジェクトＩＤ：「８」と対応付けられたリンク（後）：「２」は、オブジェクトＩＤ：「８」により特定されるオブジェクトの固有の処理の後に、オブジェクトＩＤ：「２」により特定されるオブジェクトの固有の処理が実行されることを示している。
【００７７】
なお、オブジェクト連携判断部７０３は、オブジェクト編集領域８０３に表示されたラベル８０５およびメソッド８０４から、一連のリンクを判断する毎に、オブジェクト連携テーブル部７０４に記憶されるオブジェクト連携テーブルを更新するものとする。
【００７８】
実行部７０５は、オブジェクト連携テーブル部７０４に記憶されているオブジェクト連携テーブルが表す一連のリンクに従って、オブジェクト２０５の仮実行を要求するメッセージをオブジェクト２０５に送信することにより、仮実行結果を生成する。
【００７９】
なお、実行部７０５は、一連のリンクに従って生成する仮実行結果のうち、最後に仮実行するオブジェクト２０５以外のオブジェクト２０５に対して仮実行を要求するメッセージを送信しても良い。
【００８０】
具体的には、実行部７０５は、図１１に示すオブジェクト連携テーブルが表す一連のリンクに従ってオブジェクト２０５の仮実行結果を生成する場合、最後に仮実行するオブジェクトＩＤ：「２」のオブジェクト２０５にメッセージを送信せずに、途中まで仮実行結果を生成する。
【００８１】
より具体的には、実行部７０５は、図１１に示すオブジェクト連携テーブルから、リンク（前）が空でかつリンク（後）にオブジェクトＩＤが記録されているオブジェクトＩＤのオブジェクト２０５を最初に仮実行するオブジェクトと認識し、そのオブジェクトＩＤにより特定されるオブジェクトにメッセージを送信する。続いて、実行部７０５は、リンク（後）にオブジェクトＩＤが記録されているオブジェクトＩＤのオブジェクト２０５に順次メッセージを送信し、リンク（後）にオブジェクトＩＤが記録されていないオブジェクト２０５までメッセージを送信する。そして、実行部７０５は、リンク（後）にオブジェクトＩＤが記録されていないオブジェクト２０５にはメッセージを送信せずに処理を終了する。
【００８２】
プレビュー部７０６は、図８に示すように、オブジェクト２０５の仮実行結果を、表示画面８００上のプレビュー領域８０６に表示する。
【００８３】
次に、図１２を用いて、プレビュー領域８０６への仮実行結果の表示処理の手順について説明する。図１２は、プレビュー領域への仮実行結果の表示処理の手順を示すフローチャートである。
【００８４】
まず、入力受付部７０７は、操作表示部６１１の入力部が備えるポインティングデバイスの操作により、オブジェクト管理領域８０１のラベル８０２がドラッグされ（ステップＳ１２０１）、かつオブジェクト編集領域８０３にラベル８０２がドロップされると（ステップＳ１２０２）、ドロップされたラベル８０２から特定されるオブジェクト２０５および当該ラベル８０２がドロップされた位置に対応するメソッド８０４の入力を受け付ける。そして、オブジェクト編集部７０２は、入力を受け付けたオブジェクト２０５のラベル８０５を、入力を受け付けたメソッド８０４に従って分類してオブジェクト編集領域８０３に表示する。
【００８５】
オブジェクト連携判断部７０３は、入力受付部７０７によりオブジェクト２０５およびメソッド８０４が受け付けられる毎に、一連のリンクを判断し、オブジェクト連携テーブル部７０４に記憶されているオブジェクト連携テーブルが表す一連のリンクと比較して、オブジェクト編集領域８０３のラベル８０５およびメソッド８０４の表示が更新されたか否かを判断する（ステップＳ１２０３）。
【００８６】
さらに、オブジェクト連携判断部７０３は、オブジェクト編集領域８０３のラベル８０５およびメソッド８０４の表示が更新されていないと判断した場合（ステップＳ１２０３：Ｎｏ）、入力受付部７０７によりオプションと、オブジェクト連携テーブル部７０４に記憶されているオプションと、を比較して当該オプションが更新されたか否かを判断する（ステップＳ１２０４）。そして、オプションが更新されていないと判断した場合（ステップＳ１２０４：Ｎｏ）、仮実行結果の表示処理は終了する。
【００８７】
一方、オブジェクト編集領域８０３のラベル８０５およびメソッド８０４の表示が更新されたと判断した場合（ステップＳ１２０３：Ｙｅｓ）またはオプションが更新されたと判断した場合（ステップＳ１２０４：Ｙｅｓ）、オブジェクト連携判断部７０３は、オブジェクト連携テーブル部７０４に記憶されているオブジェクト連携テーブルを更新する（ステップＳ１２０５）。
【００８８】
そして、実行部７０５は、更新されたオブジェクト連携テーブルを参照して（ステップＳ１２０６）、当該オブジェクト連携テーブルが示すリンク情報に従って、仮実行結果を生成する（ステップＳ１２０７）。プレビュー部７０６は、生成した仮実行結果をプレビュー領域８０６に表示する（ステップＳ１２０８）。
【００８９】
次に、図１３を用いて、図１２に示すステップＳ１２０５のオブジェクト連携テーブルの更新処理の手順について説明する。図１３は、オブジェクト連携テーブルの更新処理の手順を示すフローチャートである。
【００９０】
まず、オブジェクト連携判断部７０３は、オブジェクト管理領域８０１からオブジェクト編集領域８０３にドラックアンドドロップされたオブジェクトを順次探索することにより、オブジェクト編集領域８０３にラベル８０５が表示されたオブジェクト２０５をリストアップする（ステップＳ１３０１）。
【００９１】
次に、オブジェクト連携判断部７０３は、リストアップしたオブジェクト２０５のうち先頭オブジェクトから順に、オブジェクト連携テーブル部７０４に記憶されているオブジェクト連携テーブルからオブジェクトＩＤを順次探索する（ステップＳ１３０２）。
【００９２】
次に、オブジェクト連携判断部７０３は、リストアップしたオブジェクト２０５のうち、探索したオブジェクトＩＤにより特定されるオブジェクトの前に固有の処理を実行するオブジェクトがあるか否かを判断する（ステップＳ１３０３）。例えば、オブジェクト編集領域８０３において、探索したオブジェクトＩＤにより特定されるオブジェクトのラベルの前に（つまり、Ｘ座標が小さい方向）にラベルが存在するか否かを判断する。
【００９３】
オブジェクト連携判断部７０３は、探索したオブジェクトＩＤにより特定されるオブジェクトの前に固有の処理を実行するオブジェクトがあると判断した場合（ステップＳ１３０３：Ｙｅｓ）、当該探索したオブジェクトＩＤにより特定されるオブジェクトの前に固有の処理を実行するオブジェクトのオブジェクトＩＤにより、探索したオブジェクトＩＤと対応付けられているリンク（前）を更新する（ステップＳ１３０４）。
【００９４】
さらに、オブジェクト連携判断部７０３は、探索したオブジェクトＩＤにより特定されるオブジェクトの前に固有の処理を実行するオブジェクトがないと判断した場合（ステップＳ１３０３：Ｎｏ）またはリンク（前）が更新された後、探索したオブジェクトＩＤにより特定されるオブジェクトの後に固有の処理を実行するオブジェクトがあるか否かを判断する（ステップＳ１３０５）。例えば、オブジェクト編集領域８０３において、探索したオブジェクトＩＤにより特定されるオブジェクトのラベルの後ろに（つまり、Ｘ座標が大きい方向）にラベルが存在するか否かを判断する。
【００９５】
そして、オブジェクト連携判断部７０３は、探索したオブジェクトＩＤにより特定されるオブジェクトの後に固有の処理を実行するオブジェクトがあると判断した場合（ステップＳ１３０５：Ｙｅｓ）、当該探索したオブジェクトＩＤにより特定されるオブジェクトの後に固有の処理を実行するオブジェクトのオブジェクトＩＤにより、探索したオブジェクトＩＤと対応付けられているリンク（後）を更新する（ステップＳ１３０６）。
【００９６】
オブジェクト連携判断部７０３は、リンク情報の更新が終了または探索したオブジェクトＩＤにより特定されるオブジェクトの後に固有の処理を実行するオブジェクトがないと判断した場合（ステップＳ１３０５：Ｎｏ）、オブジェクト編集領域８０３にラベルが表示されたオブジェクト（リストアップしたオブジェクト）についてオブジェクトＩＤの探索を行ったか否かを判断する（ステップＳ１３０７）。そして、オブジェクト連携判断部７０３は、リストアップした全てのオブジェクトについてオブジェクトＩＤの探索を行うまで（ステップＳ１３０７：Ｎｏ）、上述の処理を繰返すものとする。一方、オブジェクト連携判断部７０３は、リストアップした全てのオブジェクトのオブジェクトＩＤの探索が終了した場合（ステップＳ１３０７：Ｙｅｓ）、オブジェクト連携テーブルの更新処理を終了する。
【００９７】
このように、本実施の形態にかかるＰＣ１００によれば、オブジェクト管理領域８０１に表示されているラベル８０２のオブジェクト編集領域８０３へのドラッグアンドドロップに応じて、オブジェクト編集領域８０３にラベル８０５が表示されたオブジェクト２０５の仮実行結果をプレビュー領域８０６に表示することにより、プログラムの構成要素とするオブジェクト２０５の選択過程において、当該オブジェクト２０５の動作結果を直感的に利用者に示すことができるので、オブジェクト２０５の選択し直しを防止することができる。
【００９８】
（第２実施の形態）
本実施の形態では、オブジェクト編集領域に表示されているラベルの表示制御を受け付けるＧＵＩをプレビュー領域に表示し、当該ＧＵＩで受け付けた表示制御をオブジェクト編集領域にフィードバックするものである。なお、ＰＣ１００の構成については、第１実施の形態とほぼ同様であるため、第１実施の形態と異なる部分の処理のみを説明する。
【００９９】
まず、図１４および図１５を用いて、本実施の形態にかかるエンジン２０２の機能構成について説明する。図１４は、エンジンの機能構成を示すブロック図である。図１５は、操作表示部が有する表示画面の一例を示す図である。エンジン２０２は、図１４に示すように、第１実施の形態にかかるエンジン２０２の機能構成に、プレビュー編集部１４０１およびオブジェクト編集フィードバック部１４０２が追加されている。
【０１００】
プレビュー編集部１４０１は、図１５に示す表示画面１５００のように、オブジェクト編集領域８０３に表示されているラベル８０５の表示制御を受け付けるＧＵＩであるラベル８０５毎のチェックボックス１５０２をプレビュー領域１５０１に表示する。利用者は、操作表示部６１１が備える入力部であるマウス等のポインティングデバイスを操作して、ラベル８０５毎のチェックボックス１５０２のオン／オフを切り替えることができる。
【０１０１】
オブジェクト編集フィードバック部１４０２は、チェックボックス１５０２によりラベル８０５の表示制御を、オブジェクト編集領域８０３へのラベル８０５の表示に反映させる。これにより、利用者は、プレビュー領域１５０１上でラベル８０５の表示を切り替えることができるので、仮実行結果を見ながら直接的にオブジェクト編集領域８０３上に表現されるプログラムの構造を編集することができる。
【０１０２】
図１６および図１７は、プレビュー領域でのラベルの表示制御がオブジェクト編集領域に反映された場合の表示画面の一例を示す図である。例えば、図１５に示すように、オブジェクト編集領域８０３に「Files」,「Title」,「Published」,「Author」,「Contents」,および「Storage」というオブジェクト２０５のラベル８０５が表示されている場合、プレビュー編集部１４０１は、「Files」から出力を、検索するためのフィルタである「Title」,「Published」,「Author」,および「Contents」のラベル８０５の表示制御を受け付けるチェックボックス１５０２をプレビュー領域１５０１に表示する。
【０１０３】
そして、図１５に示すチェックボックス１５０２の状態から図１６に示すチェックボックス１５０２の状態に変化した場合（つまり、「Published」および「Contents」のチェックボックスがオフされた場合）、オブジェクト編集フィードバック部１４０２は、オブジェクト編集領域８０３から「Published」および「Contents」のラベル８０５を非表示にする。
【０１０４】
また、図１５に示すチェックボックス１５０２の状態から図１７に示すチェックボックス１５０２の状態に変化した場合（つまり、「Author」および「Contents」のチェックボックスがオフされた場合）、オブジェクト編集フィードバック部１４０２は、オブジェクト編集領域８０３から「Author」および「Contents」のラベル８０５を非表示にする。
【０１０５】
これにより、オブジェクト連携判断部７０３によりオブジェクト連携テーブル部７０４に記憶されているオブジェクト連携テーブルが更新され、更新されたオブジェクト連携テーブルが示す一連のリンクに従って仮実行結果が生成され、その仮実行結果がプレビュー領域１５０１に表示される。
【０１０６】
図１８は、プレビュー領域に表示された異なる表示形式のＧＵＩを含む表示画面の一例を示す図である。プレビュー編集部１４０１は、図１８に示す表示画面１８００のように、プレビュー領域１８０１に表示された各オブジェクト２０５の仮実行結果の近辺にチェックボックス１８０２を表示しても良い。
【０１０７】
なお、本実施の形態では、チェックボックス形式でラベルの表示制御を受け付けるＧＵＩについて説明したが、これに限定するものではない。例えば、プルダウンメニュー形式でラベルの表示制御を受け付けることも可能である。具体的には、マウスを操作して表示画面に１８００に表示されているカーソル（図示しない）をプレビュー領域１８０１に移動させ、マウスのボタンの押下に応じてプルダウンメニューを展開し、再度押下されると当該プルダウンメニューを閉じるようにしても良い。
【０１０８】
次に、図１９を用いて、プレビュー領域１５０１に表示されたＧＵＩにより受け付けたラベル８０５の表示制御をオブジェクト編集領域８０３に反映させる処理の手順について説明する。図１９は、ラベルの表示制御をオブジェクト編集領域に反映させる処理の手順を示すフローチャートである。
【０１０９】
まず、プレビュー編集部１４０１は、利用者によるポインティングデバイスの操作に応じてプレビュー領域１５０１に表示されたチェックボックス１５０２のオン／オフを待つ（ステップＳ１９０１）。
【０１１０】
そして、プレビュー編集部１４０１は、チェックボックス１５０２のオン／オフされたか否かを判断する（ステップＳ１９０２）。チェックボックス１５０２のオン／オフが行われなかった場合（ステップＳ１９０２：Ｎｏ）、ラベル８０５の表示制御の受け付けを行わず処理を終了する。
【０１１１】
一方、チェックボックス１５０２のオン／オフされた場合（ステップＳ１９０２：Ｙｅｓ）、プレビュー編集部１４０１は、オブジェクト連携テーブル部７０４に記憶されているオブジェクト連携テーブルからオブジェクトＩＤを順次探索する（ステップＳ１９０３）。
【０１１２】
そして、プレビュー編集部１４０１は、探索したオブジェクトＩＤにより特定されるオブジェクト２０５に対応するチェックボックスがオフされたか（つまり、チェックが外されたか）否かを判断する（ステップＳ１９０４）。そして、探索したオブジェクトＩＤにより特定されるオブジェクト２０５に対応するチェックボックスがオフされたと判断した場合（ステップＳ１９０４：Ｙｅｓ）、プレビュー編集部１４０１は、オブジェクト連携テーブルを参照して、当該探索したオブジェクトＩＤに対応するオブジェクト２０５のラベル８０５がオブジェクト編集領域８０３に表示されているか否かを判断する（ステップＳ１９０５）。
【０１１３】
オブジェクト編集フィードバック部１４０２は、探索したオブジェクトＩＤに対応するオブジェクト２０５のラベル８０５がオブジェクト編集領域８０３に表示されている場合（ステップＳ１９０５：Ｙｅｓ）、当該オブジェクト２０５のラベル８０５をオブジェクト編集領域８０３から削除する（ステップＳ１９０６）。
【０１１４】
探索したオブジェクトＩＤにより特定されるオブジェクト２０５に対応するチェックボックスがオフされていないと判断した場合（ステップＳ１９０４：Ｎｏ）、当該探索したオブジェクトＩＤにより特定されるオブジェクト２０５に対応するラベル８０５がオブジェクト編集領域８０３に表示されていないと判断された場合（ステップＳ１９０５：Ｎｏ）、またはラベル８０５がオブジェクト編集領域８０３から削除された場合、プレビュー編集部１４０１は、全てのオブジェクトＩＤの探索が終ったか否かを判断する（ステップＳ１９０７）。全てのオブジェクトＩＤの探索が終った場合（ステップＳ１９０７：Ｙｅｓ）、そのまま処理を終了する。一方、全てのオブジェクトＩＤの探索が終っていない場合（ステップＳ１９０７：Ｎｏ）、プレビュー編集部１４０１は、ステップＳ１９０３に戻りオブジェクトＩＤの探索を行う。
【０１１５】
このように、本実施の形態にかかるＰＣ１００によれば、仮実行結果が表示されているプレビュー領域１５０１においてオブジェクト編集領域８０３に表示されているラベル８０５の表示制御を行うことができるので、オブジェクトの動作結果をより直感的に利用者に示すことができる。
【０１１６】
（第３実施の形態）
第１実施の形態および第２実施の形態では、ＭＥＭ−Ｃ６０９に格納されているソフトウェアを起動して、エンジン２０２を実体化する例について説明したが、これに限定するものではない。プログラムをＰＣ１００にインストールし、当該プログラムを起動することによりエンジン２０２を実体化できる媒体であればよい。
【０１１７】
図２０は、エンジンを実体化できるプログラムを格納する記憶媒体の一例を示す図である。
【０１１８】
図２０（ａ）は、ＰＣ１００が備えるＨＤＤ６１０にインストールされているプログラムを起動することによりエンジン２０２をＲＡＭ６０５ｂ上に実体化する例を示す図である。この場合、ＨＤＤ６１０が記憶媒体に相当する。
【０１１９】
図２０（ｂ）は、ＰＣ１００が記憶媒体２００１を着脱可能なインターフェースを備える場合、またはＰＣ１００に記憶媒体を組み込むことが可能な場合に、当該記憶媒体に一時的または永続的に格納されているプログラムを起動することにより、エンジン２０２をＲＡＭ６０５ｂ上に実体化する例を示す図である。なお、記憶媒体は、図２０（ｃ）に示すように、フレキシブルディスク２００２、ＣＤ−ＲＯＭ（Compact  Disc  Read  Only  Memory）２００３、ＭＯ（Magneto  Optical）ディスク２００４、ＤＶＤ（Digital  Versatile  Disc）２００６、磁気ディスク２００５、半導体メモリ２００７などが利用できる。
【０１２０】
図２０（ｄ）は、ＰＣ１００がＬＡＮ（Local  Area  Network）インターネット等のネットワークに接続され、ネットワーク上のダウンロードサイト２００８から有線または無線でプログラムをＰＣ１００のＨＤＤ６１０にダウンロードし、ダウンロードしたプログラムを起動することにより、エンジン２０２をＲＡＭ６０５ｂ上に実体化する例を示す図である。この場合、ダウンロードサイト２００８が記憶媒体に相当する。
【図面の簡単な説明】
【０１２１】
【図１】本発明にかかるビジュアルプログラミング支援装置が適用されるシステム環境の一例を示す図である。
【図２】第１実施の形態にかかるＰＣのハードウェアおよびソフトウェアの構成を説明するための説明図である。
【図３】オブジェクトのＵＭＬクラス図である。
【図４】スキャンオブジェクトのＵＭＬクラス図である。
【図５】ＱＲコード解析オブジェクトのＵＭＬクラス図である。
【図６】第１実施の形態にかかるＰＣのハードウェア構成を示すブロック図である。
【図７】エンジンの機能構成を示すブロック図である。
【図８】操作表示部が有する表示画面の一例を示す図である。
【図９】オブジェクト管理テーブルの一例を示す図である。
【図１０】オプションの設定を受け付けるためのＧＵＩ（グラフィカルユーザインターフェース）が表示された表示画面の一例を示す図である。
【図１１】一連のリンクを表すオブジェクト連携テーブルの一例を示す図である。
【図１２】プレビュー領域への仮実行結果の表示処理の手順を示すフローチャートである。
【図１３】オブジェクト連携テーブルの更新処理の手順を示すフローチャートである。
【図１４】エンジンの機能構成を示すブロック図である。
【図１５】操作表示部が有する表示画面の一例を示す図である。
【図１６】プレビュー領域でのラベルの表示制御がオブジェクト編集領域に反映された場合の表示画面の一例を示す図である。
【図１７】プレビュー領域でのラベルの表示制御がオブジェクト編集領域に反映された場合の表示画面の一例を示す図である。
【図１８】プレビュー領域に表示された異なる表示形式のＧＵＩを含む表示画面の一例を示す図である。
【図１９】ラベルの表示制御をオブジェクト編集領域に反映させる処理の手順を示すフローチャートである。
【図２０】エンジンを実体化できるプログラムを格納する記憶媒体の一例を示す図である。
【符号の説明】
【０１２２】
１００  ＰＣ
７０１  オブジェクト管理部
７０２  オブジェクト編集部
７０３  オブジェクト連携判断部
７０５  実行部
７０６  プレビュー部
７０７  入力受付部
８００  表示画面
１４０１  プレビュー編集部
１４０２  オブジェクト編集フィードバック部
【図１】
2010134879.tif 000003
【図２】
2010134879.tif 000004
【図３】
2010134879.tif 000005
【図４】
2010134879.tif 000006
【図５】
2010134879.tif 000007
【図６】
2010134879.tif 000008
【図７】
2010134879.tif 000009
【図８】
2010134879.tif 000010
【図９】
2010134879.tif 000011
【図１０】
2010134879.tif 000012
【図１１】
2010134879.tif 000013
【図１２】
2010134879.tif 000014
【図１３】
2010134879.tif 000015
【図１４】
2010134879.tif 000016
【図１５】
2010134879.tif 000017
【図１６】
2010134879.tif 000018
【図１７】
2010134879.tif 000019
【図１８】
2010134879.tif 000020
【図１９】
2010134879.tif 000021
【図２０】
2010134879.tif 000022