(57)【要約】      （修正有）【課題】利用者が望む処理全体の流れをイメージしながら連携させるオブジェクトを選択することができる、ビジュアルプログラミング支援装置、ビジュアルプログラミング支援方法、プログラム、および記録媒体を提供する。【解決手段】連携処理が可能なオブジェクト１４０１のラベルが１つのまとまりとして表示されるように、表示されているラベルの配置を変更することにより、次以降のオブジェクトの選択においてどのオブジェクトを選択すれば所望の処理を実行できるかを明確に利用者に提示することができるので、利用者が望む処理全体の流れをイメージしながら連携させるオブジェクト１４０１を選択することができ、かつオブジェクトの選択ミスを大幅に減らすことができる。【選択図】図１４
2010072881.tif 000002
【特許請求の範囲】
【請求項１】
固有の内部処理を実行するオブジェクトが連携して内部処理を実行するプログラムを作成するビジュアルプログラミング支援装置であって、
オブジェクトを視覚的に表現した視覚情報を記憶するオブジェクト記憶手段と、
前記オブジェクト記憶手段が記憶する前記視覚情報を表示部に表示する表示制御手段と、
前記表示部に前記視覚情報が表示されたオブジェクトの中から、内部処理を実行させるオブジェクトを選択する選択手段と、
選択したオブジェクトと、前記オブジェクト記憶手段に前記視覚情報が記憶されているオブジェクトのうち、当該選択したオブジェクトの次以降に前記視覚情報を選択可能なオブジェクトと、を連携させて内部処理を仮実行させる仮実行制御手段と、
内部処理の仮実行の結果に応じて、選択したオブジェクトと連携して内部処理を実行可能なオブジェクトの組合せおよび当該組合せに含まれるオブジェクトが内部処理を実行する順序を検出する組合せ・順序検出手段と、
検出した組合せおよび順序に従って、前記表示部に表示されている前記視覚情報の配置を変更する配置手段と、
を備えたことを特徴とするビジュアルプログラミング支援装置。
【請求項２】
前記選択手段は、さらに、検出した組合せに含まれるオブジェクト群を選択することを特徴とする請求項１に記載のビジュアルプログラミング支援装置。
【請求項３】
前記配置手段は、前記視覚情報の配置を段階的に変更することを特徴とする請求項１または２に記載のビジュアルプログラミング支援装置。
【請求項４】
前記表示制御手段は、検出した組合せに含まれないオブジェクトの前記視覚情報を半透明で表示することを特徴とする請求項１から３のいずれか一に記載のビジュアルプログラミング支援装置。
【請求項５】
前記表示制御手段は、検出した組合せに含まれるオブジェクトの前記視覚情報を、検出した順序に従って三次元的に重ね合わせて表示することを特徴とする請求項１から４のいずれか一に記載のビジュアルプログラミング支援装置。
【請求項６】
前記表示制御手段は、さらに、検出した組合せに含まれるオブジェクト群が一度に選択可能であることを示す操作表示を前記表示部に表示することを特徴とする請求項１から５のいずれか一に記載のビジュアルプログラミング支援装置。
【請求項７】
前記選択手段は、さらに、検出した組合せに含まれるオブジェクト群の選択を一度に解除することを特徴とする請求項２に記載のビジュアルプログラミング支援装置。
【請求項８】
前記選択手段は、さらに、検出した組合せに含まれるオブジェクト群から少なくとも１つのオブジェクトを選択することを特徴とする請求項２に記載のビジュアルプログラミング支援装置。
【請求項９】
固有の内部処理を実行するオブジェクトが連携して内部処理を実行するプログラムを作成するビジュアルプログラミング支援装置のビジュアルプログラミング支援方法であって、
オブジェクト記憶手段が、オブジェクトを視覚的に表現した視覚情報を記憶するオブジェクト記憶工程と、
表示制御手段が、前記オブジェクト記憶手段が記憶する前記視覚情報を表示部に表示する表示制御工程と、
選択手段が、前記表示部に前記視覚情報が表示されたオブジェクトの中から、内部処理を実行させるオブジェクトを選択する選択工程と、
仮実行制御手段が、選択したオブジェクトと、前記オブジェクト記憶手段に前記視覚情報が記憶されているオブジェクトのうち、当該選択したオブジェクトの次以降に前記視覚情報を選択可能なオブジェクトと、を連携させて内部処理を仮実行させる仮実行制御工程と、
組合せ・順序検出手段が、内部処理の仮実行の結果に応じて、選択したオブジェクトと連携して内部処理を実行可能なオブジェクトの組合せおよび当該組合せに含まれるオブジェクトが内部処理を実行する順序を検出する組合せ・順序検出工程と、
配置手段が、検出した組合せおよび順序に従って、前記表示部に表示されている前記視覚情報の配置を変更する配置工程と、
を有することを特徴とするビジュアルプログラミング支援方法。
【請求項１０】
前記選択工程は、さらに、検出した組合せに含まれるオブジェクト群を選択することを特徴とする請求項９に記載のビジュアルプログラミング支援方法。
【請求項１１】
前記配置工程は、前記視覚情報の配置を段階的に変更することを特徴とする請求項９または１０に記載のビジュアルプログラミング支援方法。
【請求項１２】
前記表示制御工程は、検出した組合せに含まれないオブジェクトの前記視覚情報を半透明で表示することを特徴とする請求項９から１１のいずれか一に記載のビジュアルプログラミング支援方法。
【請求項１３】
前記表示制御工程は、検出した組合せに含まれるオブジェクトの前記視覚情報を、検出した順序に従って三次元的に重ね合わせて表示することを特徴とする請求項９から１２のいずれか一に記載のビジュアルプログラミング支援方法。
【請求項１４】
前記表示制御工程は、さらに、検出した組合せに含まれるオブジェクト群が一度に選択可能であることを示す操作表示を前記表示部に表示することを特徴とする請求項９から１３のいずれか一に記載のビジュアルプログラミング支援方法。
【請求項１５】
前記選択工程は、さらに、検出した組合せに含まれるオブジェクト群の選択を一度に解除することを特徴とする請求項１０に記載のビジュアルプログラミング支援方法。
【請求項１６】
前記選択工程は、さらに、検出した組合せに含まれるオブジェクト群から少なくとも１つのオブジェクトを選択することを特徴とする請求項１０に記載のビジュアルプログラミング支援方法。
【請求項１７】
請求項９から１６のいずれか一に記載のビジュアルプログラミング支援方法の各工程をコンピュータに実行させるためのプログラム。
【請求項１８】
請求項９から１６のいずれか一に記載のビジュアルプログラミング支援方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータにより読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビジュアルプログラミング支援装置、ビジュアルプログラミング支援方法、プログラム、および記録媒体に関するものである。
【背景技術】
【０００２】
近年、パーソナルコンピュータの進歩に伴い、ウェブなどのネットワーク上のサービスが活用される機会が増えてきている。今後は、Web2.0に代表されるWeb関連の技術により、ネットワーク上のサービスを組み合わせて、新しいサービスとして利用することが一般的に増えてくることが予想される。それに伴い、従来の文字ベースの人工言語によるプログラミングに加えて、ネットワーク上のサービス等のオブジェクトを視覚的に表現したアイコン等を組み合わせることによりプログラムを作成することができるビジュアルプログラミング環境を提供するソフトウェアが幾つか登場している。
【０００３】
しかし、一般の利用者がネットワーク上のサービスを組み合わせて新たなサービスとして活用するためには、利用者自身がプログラミングするという煩雑な処理を行う必要がある。そのため、今後、ネットワーク上のサービスの恩恵を受けられない利用者が増えてしまう恐れがある。また、ビジュアルプログラミング環境を提供するソフトウェアを用いるためには、各オブジェクトに割り当てられた処理や連携させるオブジェクトの前後関係を、利用者が把握した上でオブジェクトを選択する必要があるが、どのような組み合わせのオブジェクトをどのような順番で選択すれば利用者が望む処理を実現できるかを習得するのは容易ではない。
【０００４】
そこで、コンピュータスクリーン上でソフトウェア（オブジェクト）の抽象概念（グラフィック表現）を線で結んでいくことにより、ソフトウェアの機能を連携させる技術が提案されている（特許文献１参照）。特許文献１に記載のグラフィカルプログラミングのための方法では、複数のグラフィック表現のうちの第１のグラフィック表現からの出力を、該複数のグラフィック表現のうちの該第１のグラフィック表現の入力および該複数のグラフィック表現のうちの第２のグラフィック表現の入力の少なくとも一方に、グラフィカルに相互接続することに応答して、該第１のグラフィック表現と関連する第１のオペレータ（オブジェクト）と、該第２のグラフィック表現と関連する第２のオペレータ（オブジェクト）とを自動的に連携させるものである。
【０００５】
【特許文献１】特表２００３−５２９８２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載された発明によれば、第１のオペレータと連携可能な第２のオペレータの第２のグラフィック表現が提示されるので、第２のオペレータまでの処理の流れはイメージできるが、第２のオペレータ以降に連携可能なオペレータを含めた処理全体の流れをイメージすることが困難である、という問題がある。
【０００７】
本発明は、上記に鑑みてなされたものであって、利用者が望む処理全体の流れをイメージしながらオブジェクトを選択することができる、ビジュアルプログラミング支援装置、ビジュアルプログラミング支援方法、プログラム、および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、固有の内部処理を実行するオブジェクトが連携して内部処理を実行するプログラムを作成するビジュアルプログラミング支援装置であって、オブジェクトを視覚的に表現した視覚情報を記憶するオブジェクト記憶手段と、前記オブジェクト記憶手段が記憶する前記視覚情報を表示部に表示する表示制御手段と、前記表示部に前記視覚情報が表示されたオブジェクトの中から、内部処理を実行させるオブジェクトを選択する選択手段と、選択したオブジェクトと、前記オブジェクト記憶手段に前記視覚情報が記憶されているオブジェクトのうち、当該選択したオブジェクトの次以降に前記視覚情報を選択可能なオブジェクトと、を連携させて内部処理を仮実行させる仮実行制御手段と、内部処理の仮実行の結果に応じて、選択したオブジェクトと連携して内部処理を実行可能なオブジェクトの組合せおよび当該組合せに含まれるオブジェクトが内部処理を実行する順序を検出する組合せ・順序検出手段と、検出した組合せおよび順序に従って、前記表示部に表示されている前記視覚情報の配置を変更する配置手段と、を備えたことを特徴とする。
【０００９】
また、請求項２にかかる発明は、請求項１にかかる発明において、前記選択手段は、さらに、検出した組合せに含まれるオブジェクト群を選択することを特徴とする。
【００１０】
また、請求項３にかかる発明は、請求項１または２にかかる発明において、前記配置手段は、前記視覚情報の配置を段階的に変更することを特徴とする。
【００１１】
また、請求項４にかかる発明は、請求項１から３のいずれか一にかかる発明において、前記表示制御手段は、検出した組合せに含まれないオブジェクトの前記視覚情報を半透明で表示することを特徴とする。
【００１２】
また、請求項５にかかる発明は、請求項１から４のいずれか一にかかる発明において、前記表示制御手段は、検出した組合せに含まれるオブジェクトの前記視覚情報を、検出した順序に従って三次元的に重ね合わせて表示することを特徴とする。
【００１３】
また、請求項６にかかる発明は、請求項１から５のいずれか一にかかる発明において、前記表示制御手段は、さらに、検出した組合せに含まれるオブジェクト群が一度に選択可能であることを示す操作表示を前記表示部に表示することを特徴とする。
【００１４】
また、請求項７にかかる発明は、請求項２にかかる発明において、前記選択手段は、さらに、検出した組合せに含まれるオブジェクト群の選択を一度に解除することを特徴とする。
【００１５】
また、請求項８にかかる発明は、請求項２にかかる発明において、前記選択手段は、さらに、検出した組合せに含まれるオブジェクト群から少なくとも１つのオブジェクトを選択することを特徴とする。
【００１６】
また、請求項９にかかる発明は、固有の内部処理を実行するオブジェクトが連携して内部処理を実行するプログラムを作成するビジュアルプログラミング支援装置のビジュアルプログラミング支援方法であって、オブジェクト記憶手段が、オブジェクトを視覚的に表現した視覚情報を記憶するオブジェクト記憶工程と、表示制御手段が、前記オブジェクト記憶手段が記憶する前記視覚情報を表示部に表示する表示制御工程と、選択手段が、前記表示部に前記視覚情報が表示されたオブジェクトの中から、内部処理を実行させるオブジェクトを選択する選択工程と、仮実行制御手段が、選択したオブジェクトと、前記オブジェクト記憶手段に前記視覚情報が記憶されているオブジェクトのうち、当該選択したオブジェクトの次以降に前記視覚情報を選択可能なオブジェクトと、を連携させて内部処理を仮実行させる仮実行制御工程と、組合せ・順序検出手段が、内部処理の仮実行の結果に応じて、選択したオブジェクトと連携して内部処理を実行可能なオブジェクトの組合せおよび当該組合せに含まれるオブジェクトが内部処理を実行する順序を検出する組合せ・順序検出工程と、配置手段が、検出した組合せおよび順序に従って、前記表示部に表示されている前記視覚情報の配置を変更する配置工程と、を有することを特徴とする。
【００１７】
また、請求項１０にかかる発明は、請求項９にかかる発明において、前記選択工程は、さらに、検出した組合せに含まれるオブジェクト群を選択することを特徴とする。
【００１８】
また、請求項１１にかかる発明は、請求項９または１０にかかる発明において、前記配置工程は、前記視覚情報の配置を段階的に変更することを特徴とする。
【００１９】
また、請求項１２にかかる発明は、請求項９から１１のいずれか一にかかる発明において、前記表示制御工程は、検出した組合せに含まれないオブジェクトの前記視覚情報を半透明で表示することを特徴とする。
【００２０】
また、請求項１３にかかる発明は、請求項９から１２のいずれか一にかかる発明において、前記表示制御工程は、検出した組合せに含まれるオブジェクトの前記視覚情報を、検出した順序に従って三次元的に重ね合わせて表示することを特徴とする。
【００２１】
また、請求項１４にかかる発明は、請求項９から１３のいずれか一にかかる発明において、前記表示制御工程は、さらに、検出した組合せに含まれるオブジェクト群が一度に選択可能であることを示す操作表示を前記表示部に表示することを特徴とする。
【００２２】
また、請求項１５にかかる発明は、請求項１０にかかる発明において、前記選択工程は、さらに、検出した組合せに含まれるオブジェクト群の選択を一度に解除することを特徴とする。
【００２３】
また、請求項１６にかかる発明は、請求項１０にかかる発明において、前記選択工程は、さらに、検出した組合せに含まれるオブジェクト群から少なくとも１つのオブジェクトを選択することを特徴とする。
【００２４】
また、請求項１７にかかる発明は、請求項９から１６のいずれか一に記載のビジュアルプログラミング支援方法の各工程をコンピュータに実行させるためのものである。
【００２５】
また、請求項１８にかかる発明は、請求項９から１６のいずれか一に記載のビジュアルプログラミング支援方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータにより読み取り可能なものである。
【発明の効果】
【００２６】
本発明によれば、次以降のオブジェクトの選択においてどのオブジェクトを選択すれば所望の処理を実行できるかを明確に利用者に提示することができので、利用者が望む処理全体の流れをイメージしながらオブジェクトを選択することができる、という効果を奏する。
【発明を実施するための最良の形態】
【００２７】
以下に添付図面を参照して、この発明にかかるビジュアルプログラミング支援装置、ビジュアルプログラミング支援方法、プログラム、および記録媒体の最良な実施の形態を詳細に説明する。なお、本実施の形態では、パーソナルコンピュータ（ＰＣ）に本発明のビジュアルプログラミング支援装置を適用した例について説明する。但し、ＰＣ機に限られず、複合機（ＭＦＰ：Multi  Function  Peripheral）、プリンタ、ファクシミリ、コピー機等の画像形成装置などにも本発明を適用することができる。
【００２８】
（第１実施の形態）
図１は、本実施の形態にかかるＰＣのハードウェアおよびソフトウェアの構成を説明するための説明図である。図１に示すように、本実施の形態にかかるＰＣ１００は、各種機器からなるハードウェアリソース１０７を有する。このハードウェアリソース１０７に含まれる機器には、ＨＤＤ（Hard  Disk  Drive）、ネットワークインターフェース、表示部やキーボード等の操作表示部などがある。
【００２９】
このハードウェアリソース１０７を制御するソフトウェアシステムは、ウェブブラウザ（Web  Browser）１０１、エンジン（Engine）１０２、ウェブサーバ（Web  Server）１０３、ＣＧＩ（Common  Gateway  Interface）１０４、オブジェクト１０５、およびオペレーティングシステム１０６を有している。
【００３０】
オペレーティングシステム１０６は、その他のソフトウェアが動作するための基盤を提供する。ウェブブラウザ１０１は、操作表示部に画像データ等を表示するソフトウェアである。
【００３１】
エンジン１０２は、ウェブブラウザ１０１を通じて、利用者にビジュアルプログラミングシステムを提供するソフトウェアである。ここで、ビジュアルプログラミングシステムとは、プログラムのモジュール等、固有の内部処理を実行するオブジェクト１０５を視覚的に表現した視覚情報であるアイコン等のラベルを表示し、ラベルが表示されたオブジェクト１０５の中から選択したオブジェクト１０５が連携して内部処理を実行するプログラムを作成・実行させるシステムである。
【００３２】
ＣＧＩ１０４は、エンジン１０２により選択されたオブジェクト１０５を起動するためのソフトウェアである。
【００３３】
オブジェクト１０５は、分散したオブジェクト１０５間での通信、対話、協調といった連携処理を行うものである。また、オブジェクト１０５は、オブジェクト１０５間を流れるメッセージに対して各オブジェクト１０５が反応して内部処理を実行するものである。また、オブジェクト１０５は、ソフトウェアシステムへの参加、離脱により、ソフトウェアシステム全体の動作を柔軟に変更させることができる。
【００３４】
なお、本実施の形態では、ＰＣ１００のソフトウェアシステム内を流れるメッセージに対してオブジェクト１０５が反応して内部処理を実行する例について説明するが、これに限定するものではない。例えば、共通の通信路を流れるメッセージに対して、他のＰＣ、デバイス、当該他のＰＣやデバイス内で動作する個々のアプリケーションプログラム、または当該アプリケーションプログラム内で動作する個々のプログラムコンポーネント内で実現されたオブジェクト１０５が反応する形で内部処理を実行することも可能である。
【００３５】
ここで、共通の通信路は、単にＬＡＮなどの物理的ネットワークに限定されるものではなく、無線、音声、光などメッセージを流すことができる媒体を介在するものであればよい。また、共通の通信路は、各オブジェクトが共通に呼び出し可能なメモリ等の記憶媒体、さらには通信路上のポートアドレス等など仮想的な存在であってもよい。
【００３６】
ウェブサーバ１０３は、ＣＧＩ１０４とエンジン１０２との間での情報送信を行うソフトウェアである。
【００３７】
図２は、本実施の形態にかかるＰＣのハードウェア構成を示すブロック図である。図２に示すように、本実施の形態にかかるＰＣ１００は、コントローラ２００と、ＵＳＢ（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)２０５ｂとからなる。ＲＯＭ２０５ａは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ２０５ｂは、プログラムやデータの展開用メモリ、プリンタに出力する画像データの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
【００４１】
ＮＢ２０６およびＳＢ２０７は、ＭＥＭ−Ｐ２０５やＡＧＰ１５を制御する制御装置であり、ＮＢ２０６を介してＣＰＵ２０４とＭＥＭ−Ｐ２０５とＳＢ２０７とＡＧＰ１５とが接続される形をとる。ＮＢ２０６は、ＡＧＰ１５を介してＡＳＩＣ２０８とも接続され、その先にＰＣＩバス２０３が接続される。
【００４２】
ＡＳＩＣ２０８は、画像処理のための制御装置である。このＡＳＩＣ２０８は、ＭＥＭ−Ｃ２０９やＨＤＤ２１０や操作表示部２１１のような周辺機器と接続され、これらの制御もおこなう。ＭＥＭ−Ｃ２０９は、ＡＳＩＣ２０８が画像処理をおこなう画像データ等を一時記憶する記憶部であり、ＨＤＤ２１０は、各種ソフトウェア、フォントデータ、蓄積するよう指示された画像データ等を記憶する記憶部である。操作表示部２１１は、利用者の操作を受け付ける入力装置である。
【００４３】
ＵＳＢインターフェース２０１およびＩＥＥＥ１３９４インターフェース２０２は、外部機器を接続するためのインターフェースである。ＰＣＩバス２０３には、これら以外にネットワーク接続のためのインターフェース装置等も接続される。
【００４４】
次に、オブジェクト１０５のオブジェクトモデルについて説明する。図３は、オブジェクトのＵＭＬクラス図である。ＵＭＬ（Unified  Modeling  Language）とは、ＯＭＧ（Object  Management  Group）が使用を策定しているシステムモデリング言語であり、モデリングの成果を記述する記法を定義したものである。このＵＭＬは、オブジェクト指向によるソフトウェアの設計において広く用いられている。
【００４５】
クラスとは、オブジェクトの設計図に相当する概念であり、オブジェクト内部に有する属性や操作や、他のオブジェクトとの関係を定義するものである。クラスは、ＵＭＬクラス図においては、３段の区画を有する矩形として記述される。それぞれの区画は、上から名前区画、属性区画、および操作区画と呼ばれる。名前区画には、当該クラスの名称が記述され、属性区画には、当該クラスが有するデータ（属性）が記述され、操作区画には、当該クラスが有する手続（操作）が記述される。
【００４６】
このように、クラスは、データ（属性）を所持するための属性区画と、かかる属性の書込みおよび読み出しを行う手続き（操作）を所持するための操作区画とを有している。これらのクラスは、ソフトウェアの一部として含まれるので、予めＭＥＭ−Ｃ２０９に格納されたソフトウェアが実行されると、各クラスはＲＡＭ２０５ｂの所定領域に実体化され、属性区画に含まれる各データ（属性）がＲＡＭ２０５ｂ上に展開される。したがって、クラスが実体化したオブジェクト１０５は、ＲＡＭ２０５ｂ上の各データ（属性）の書き込みおよび読み出しを行うことが可能となる。
【００４７】
なお、クラス図において、属性や操作の左側に「-」記号を付した場合は、当該属性や操作が外部のクラスに非公開であることを示し、「+」記号を付した場合は、当該属性や操作が外部のクラスに公開されていることを示す。また、操作については「メッセージ受信（）」のように「（）」記号を付すことが通例であり、「（引数１，引数２）」のように、かかる操作に引き渡す引数を記述する場合もある。
【００４８】
オブジェクト１０５のクラスは、操作として、メッセージ受信（）、不整合受信（）、および処理（）を有する。
【００４９】
メッセージ受信（）は、オブジェクト１０５の内部処理の実行を要求するメッセージを受信する処理である。また、不整合受信（）は、連携処理を行えない原因を通知する不整合通知メッセージを受信する処理である。処理（）は、オブジェクトの内部処理（内部状態や内部関数）である。
【００５０】
また、オブジェクト１０５のクラスは、属性として、オブジェクトＩＤ、オブジェクトの名前、オブジェクトのＵＲＬ、オブジェクトの種類、設定情報名、設定情報値、およびテンプレートを有する。これらの属性と操作のうち、処理（）、設定情報名、設定情報値、およびテンプレートは、クラスの外部に公開されない。
【００５１】
オブジェクトＩＤは、オブジェクトを特定するための情報である。オブジェクトの名前は、オブジェクトの名称である。オブジェクトのＵＲＬは、オブジェクトを指定する情報である。オブジェクトの種類は、オブジェクトが実行する内部処理の種類である。設定情報名は、オブジェクトが内部処理に用いるパラメータ等の設定情報の名称である。設定情報値は、オブジェクトが内部処理に用いるパラメータの値である。テンプレートは、オブジェクト間で送受信するメッセージの書式である。
【００５２】
ここで、図４を用いて、ＵＳＢインターフェース２０１やＩＥＥＥ１３９４インターフェース２０２を介して接続されたスキャナを用いてスキャン処理を行い、スキャン処理により得られたデータに含まれるＱＲコードの解析処理を行う例について説明する。図４は、スキャン処理およびＱＲコードの解析処理を行うオブジェクトの関係を示す図である。
【００５３】
図４に示すより、スキャン処理およびＱＲコードの解析処理は、ＵＳＢインターフェース２０１やＩＥＥＥ１３９４インターフェース２０２を介して接続されたスキャナを用いてスキャン処理を行うスキャンオブジェクト４０１、およびスキャンオブジェクト４０１によるスキャン処理により得られた画像データに含まれるＱＲコードの解析処理を行うＱＲコード解析オブジェクト４０２の連携により行われるものとする。スキャンオブジェクト４０１およびＱＲコード解析オブジェクト４０２は、互いにメッセージ４０３およびメッセージ４０４を送出し、送出されたメッセージに反応して内部処理を実行する。
【００５４】
次に、図５および図６を用いて、スキャンオブジェクト４０１およびＱＲコード解析オブジェクト４０２のオブジェクトモデルについて説明する。図５は、スキャンオブジェクトのＵＭＬクラス図である。図６は、ＱＲコード解析オブジェクトのＵＭＬクラス図である。
【００５５】
スキャンオブジェクト４０１のクラスは、操作として、メッセージ受信（）、不整合受信（）、およびスキャン処理（）を有する。
【００５６】
メッセージ受信（）は、スキャンオブジェクト４０１の内部処理の実行（または後述する仮実行）を要求するメッセージを外部機器から受信する処理である。また、不整合受信（）は、連携処理を行えない原因を通知する不整合通知メッセージをＱＲコード解析オブジェクト４０２から受信する処理である。
【００５７】
スキャン処理（）は、スキャンオブジェクト４０１の内部処理（内部状態や内部関数）であり、ＵＳＢインターフェース２０１やＩＥＥＥ１３９４インターフェース２０２を介して接続されたスキャナを制御する処理である。スキャン処理（）は、スキャンオブジェクト４０１の操作であるスキャン処理を仮実行することができる。
【００５８】
ここで、仮実行とは、実際にスキャンオブジェクト４０１の内部処理であるスキャン処理を行わず、あたかもスキャン処理を行ったかのようなデータ（例えば、ダミーのＪＰＥＧデータ）を生成する処理である。例えば、ＡＤＦの原稿台にセットされた原稿の読み取りを行わず、原稿がセットされていないコンタクトガラスをスキャンする処理である。
【００５９】
具体的には、スキャン処理のような処理前と処理後とでスキャナの物理的な状態が変化してしまう処理においては、スキャン処理の実行後に不整合通知メッセージを受信した場合、当該不整合通知メッセージに従って設定情報を再設定したとしても、再度スキャン処理を行うためには物理的な状態を元に戻さなければならない。例えば、ＡＤＦを用いて原稿のスキャン処理を実行した場合、再度スキャン処理を行うためには、排出部に排出された原稿を再度ＡＤＦの原稿台にセットしなおさなければならない。
【００６０】
また、スキャンオブジェクト４０１は、ＱＲコード解析オブジェクト４０２の内部処理の実行または仮実行を要求するものであって、内部処理の実行または仮実行により得られたデータ（例えば、ダミーのＪＰＥＧデータ）および当該内部処理の実行または仮実行に用いた設定情報を反映したメッセージ４０２を生成し、ＱＲコード解析オブジェクト４０２に送信する。
【００６１】
また、スキャンオブジェクト４０１のクラスは、属性として、オブジェクトＩＤ、オブジェクトの名前、オブジェクトのＵＲＬ、オブジェクトの種類、設定情報名、設定情報値、および仮実行結果の生成用テンプレートを有する。これらの属性と操作のうち、スキャン処理（）、設定情報名、設定情報値、および仮実行結果の生成用テンプレートは、クラスの外部に公開されない。
【００６２】
オブジェクトＩＤは、オブジェクトを特定するための情報であり、例えば、“Scan  Object”等である。オブジェクトの名前は、オブジェクトの名称であり、例えば、“スキャンオブジェクト”等である。オブジェクトのＵＲＬは、オブジェクトを指定する情報であり、例えば、“http://example.com/ScanObject”等である。オブジェクトの種類は、オブジェクトが実行する内部処理の種類であり、例えば、“入力”等である。設定情報名は、オブジェクトが内部処理に用いるパラメータ等の設定情報の名称であり、例えば、“解像度”等である。設定情報値は、オブジェクトが内部処理に用いるパラメータの値であり、例えば、“300dpi”等である。テンプレートは、オブジェクト間で送受信するメッセージの書式である。仮実行結果の生成用テンプレートは、メッセージに含めるダミーのデータであり、例えば、“ダミーのＪＰＥＧデータ”である。
【００６３】
ＱＲコード解析オブジェクト４０２のクラスは、操作として、メッセージ受信（）、不整合受信（）、およびＱＲコード解析処理（）を有する。
【００６４】
メッセージ受信（）は、ＱＲコード解析オブジェクト４０２の内部処理の実行または仮実行を要求するメッセージをスキャンオブジェクト４０１から受信する処理である。また、不整合受信（）は、連携処理を行えない原因を通知する不整合通知メッセージを他のオブジェクトから受信する処理である。ＱＲコード解析処理（）は、ＱＲコード解析オブジェクト４０２の内部処理であり、スキャンオブジェクト４０１のスキャン処理により得られた画像データに含まれるＱＲコードを解析する処理である。なお、ＱＲコード解析処理（）は、内部処理の仮実行を行わないものとする。
【００６５】
また、ＱＲコード解析オブジェクト４０２のクラスは、属性として、オブジェクトＩＤ、オブジェクトの名前、オブジェクトのＵＲＬ、オブジェクトの種類、設定情報名、設定情報値、および仮実行結果の生成用テンプレートを有する。これらの属性と操作のうち、ＱＲコード解析処理（）、設定情報名、設定情報値、および仮実行結果の生成用テンプレートは、クラスの外部に公開されない。
【００６６】
オブジェクトＩＤは、オブジェクトを特定するための情報であり、例えば、“QR  Code  Object”である。オブジェクトの名前は、オブジェクトの名称であり、例えば、“ＱＲコード解析オブジェクト”である。オブジェクトのＵＲＬは、オブジェクトを指定する情報であり、例えば、“http://example.com/qrCodeObject”である。オブジェクトの種類は、オブジェクトが実行する内部処理の種類であり、例えば、“加工”である。設定情報名は、オブジェクトが内部処理に用いるパラメータ等の設定情報の名称であり、例えば、“解像度”である。設定情報値は、オブジェクトが内部処理に用いるパラメータの値であり、例えば、“600dpi”である。テンプレートは、オブジェクト間で送受信するメッセージの書式である。仮実行結果の生成用テンプレートは、メッセージに含めるダミーのデータであり、ＱＲコード解析オブジェクト４０２は内部処理の仮実行を行わないため、“なし”である。
【００６７】
次に、図７および図８を用いて、ビジュアルプログラミングシステムを提供するエンジン１０２の機能構成およびビジュアルプログラミングシステムを提供する処理手順について説明する。図７は、エンジンの機能構成を示すブロック図である。図８は、ビジュアルプログラミングシステムを提供する処理手順を示すフローチャートである。エンジン１０２は、図７に示すように、オブジェクト記憶部７０１、表示制御部７０２、選択部７０３、選択オブジェクト記憶部７０４、組合せ・順序検出部７０５、組合せ・順序記憶部７０６、および配置部７０７を備えて構成される。
【００６８】
オブジェクト記憶部７０１は、オブジェクトを視覚的に表現する視覚情報であるラベルを記憶するものである。図９は、オブジェクト記憶部に記憶されるラベルの一覧を含むテーブルを示す図である。本実施の形態にでは、オブジェクト記憶部７０１は、オブジェクトＩＤと、オブジェクトのラベルと、オブジェクトに割り振られたコマンドと、オブジェクトの属性と、ラベルの表示に用いる位置座標と、同じくラベルの表示に用いるz-indexと、利用可能性のフィールドと、を対応付けたテーブルを記憶している。
【００６９】
ここで、オブジェクトＩＤは、オブジェクトを特定するための情報であり、ユニークな数値や文字列で表されるものである。ラベルは、オブジェクトを視覚的に表現したものであって、利用者がオブジェクトを識別可能な文字列（テキスト）やアイコン（任意の図形）である。属性は、オブジェクトの大まかな役割を指定するものであり、例えば、“入力”、“加工”、“出力”である。
【００７０】
なお、連携して内部処理が実行可能なオブジェクトの属性のルール（以下、属性ルールとする）を予め設定しておき、属性ルールに従って連携して内部処理が実行可能なオブジェクトを選択することも可能である。これにより、選択対象のオブジェクトの数を減らすことができるので、ビジュアルプログラミングに必要な計算量を下げることが可能である。属性ルールの例としては、属性が“入力”のオブジェクトの前には属性が“出力”または“加工”のオブジェクトを配置できないというルール、属性が“出力”のオブジェクトの後には属性が“入力”または“加工”のオブジェクトを配置できないというルール等である。
【００７１】
位置情報は、ラベルを表示する操作表示部２１１上の位置座標（Ｘ，Ｙ）である。z-indexは、ラベルを重ねて表示する場合に、操作表示部２１１の奥行き方向へのラベルの位置情報であり、番号が大きいものほど操作表示部２１１の手前に表示するものとする。
【００７２】
まず、表示制御部７０２は、オブジェクト記憶部７０１に記憶されているオブジェクトのラベルを、当該ラベルと対応付けて記憶される位置情報（Ｘ，Ｙ）およびz-indexに従って、操作表示部２１１に表示する（ステップＳ８０１）。
【００７３】
図１０は、オブジェクトを選択する前の操作表示部の表示例を示す図である。操作表示部２１１は、選択可能なオブジェクトのラベルを表示する領域であるオブジェクト管理領域１００１、および選択されたオブジェクトのラベルを表示する領域であるオブジェクト選択領域１００２を有して構成される。
【００７４】
表示制御部７０２は、オブジェクト記憶部７０１に記憶されている各オブジェクトのラベルを、当該ラベルと対応付けて記憶される位置情報（Ｘ，Ｙ）およびz-indexに従って、操作表示部２１１のオブジェクト管理領域１００１に表示する。さらに、本実施の形態では、表示制御部７０２は、オブジェクト選択領域１００２にラベルが表示されたオブジェクトの内部処理の実行を要求する実行コマンドを表すラベル１００３、および実行コマンドの選択に応じてオブジェクト選択領域１００２にラベルが表示されたオブジェクトが内部処理を実行する順序を表す矢印１００４を操作表示部２１１に表示するものとする。
【００７５】
次に、選択部７０３は、オブジェクト管理領域１００１にラベルが表示されたオブジェクトの中から、内部処理を実行させるオブジェクトを選択する（ステップＳ８０２）。図１１は、オブジェクトが選択された場合の操作表示部の表示例を示す図である。選択部７０３は、図１１に示すように、操作表示部２１１が備えるマウス等のポインティングデバイス（図示しない）が操作されて、オブジェクト管理領域１００１でドラッグされ、オブジェクト選択領域１００２にドロップされたラベルが表すオブジェクトを、内部処理を実行させるオブジェクトとして選択する。
【００７６】
なお、本実施の形態では、ポインティングデバイスによるラベルのドラッグアンドドロップに応じて、内部処理を実行させるオブジェクトを選択しているが、これに限定するものではない。例えば、ポインティングデバイスが備えるボタン（図示しない）の押下に応じて、内部処理を実行させるオブジェクトを選択してもよい。
【００７７】
次に、選択オブジェクト記憶部７０４は、オブジェクト記憶部７０１から、選択部７０３により選択したオブジェクトのオブジェクトＩＤを取得し、記憶する（ステップＳ８０３）。図１２は、選択オブジェクト記憶部に記憶されるオブジェクトＩＤの一覧を含むテーブルである。選択オブジェクト記憶部７０４は、図１２に示すように、選択されたオブジェクトのオブジェクトＩＤを、オブジェクトが内部処理を実行する順番に記憶するものとする。よって、オブジェクトが内部処理を実行する際の処理ロジック（オブジェクトが内部処理を実行する順番）は、選択オブジェクト記憶部７０４に記憶されているオブジェクトＩＤの順番に従うものとする。
【００７８】
組合せ・順序検出部７０５は、オブジェクト記憶部７０１にラベルが記憶されているオブジェクトのうち、選択オブジェクト記憶部７０４にオブジェクトＩＤが記憶されたオブジェクトの次に選択可能なオブジェクトであって、オブジェクトＩＤが変数ｉのオブジェクトを選択し、かつ変数ｉが閾値ｎより小さいか否かを判断する（ステップＳ８０４）。なお、変数ｉは、ＲＡＭ２０５ｂに記憶されているものとする。
【００７９】
次に、組合せ・順序検出部７０５（本発明にかかる仮実行制御手段）は、変数ｉが閾値ｎより小さいと判断した場合（ステップＳ８０４：Ｙｅｓ）、選択オブジェクト記憶部７０４にオブジェクトＩＤが記憶されたオブジェクトのうち、最初に内部処理を実行するオブジェクトに対して内部処理の仮実行を要求するメッセージを送信して、当該択オブジェクト記憶部７０４にオブジェクトＩＤが記憶されたオブジェクトと、オブジェクトＩＤが変数ｉのオブジェクトとを連携させて内部処理を仮実行させる（ステップＳ８０５）。なお、組合せ・順序検出部７０５から内部処理の仮実行を要求するメッセージが送信された後は、オブジェクト間におけるメッセージの送受信により各オブジェクトの内部処理の仮実行が行われるものとする。
【００８０】
そして、組合せ・順序検出部７０５は、オブジェクト間で送受信されるメッセージを監視し、メッセージが示す内部処理の仮実行の結果に応じて、実行エラーが発生したか否かを判断する（ステップＳ８０６）。なお、本実施の形態では、組合せ・順序検出部７０５は、オブジェクト間で不整合通知メッセージが送受信された場合に、実行エラーが発生したと判断する。
【００８１】
そして、組合せ・順序検出部７０５は、実行エラーが発生したと判断した場合（ステップＳ８０６：Ｙｅｓ）、ＲＡＭ２０５ｂに記憶されている変数ｉをインクリメントし（ステップＳ８１０）、ステップＳ８０４に示す処理に戻る。
【００８２】
組合せ・順序検出部７０５は、実行エラーが発生していないと判断した場合（ステップＳ８０６：Ｎｏ）、変数ｉ（オブジェクトＩＤ）を組合せ・順序記憶部７０６に記憶させる（ステップＳ８０７）。さらに、組合せ・順序検出部７０５は、組合せ・順序記憶部７０６にオブジェクトＩＤが記憶されたオブジェクト（以下、選択オブジェクトとする）の次に選択可能なオブジェクトであって、オブジェクトＩＤが変数ｊのオブジェクトを選択し、かつ変数ｊが閾値ｎより小さいか否かを判断する（ステップＳ８０８）。そして、変数ｊが閾値ｎより小さいと判断した場合（ステップＳ８０８：Ｙｅｓ）、組合せ・順序検出部７０５は、変数ｊをインクリメントする（ステップＳ８０９）。なお、変数ｊは、ＲＡＭ２０５ｂに記憶されているものとする。
【００８３】
次いで、組合せ・順序検出部７０５（本発明にかかる仮実行制御手段）は、選択オブジェクト記憶部７０４にオブジェクトＩＤが記憶されているオブジェクトのうち、最初に内部処理を実行するオブジェクトに対して内部処理の仮実行を要求するメッセージを送信して、当該選択オブジェクト記憶部７０４にオブジェクトＩＤが記憶されているオブジェクトと、選択オブジェクトと、オブジェクトＩＤが変数ｊのオブジェクトと、を連携させて内部処理を仮実行させる（ステップＳ８０５）。
【００８４】
そして、組合せ・順序検出部７０５は、実行エラーが発生していないと判断した場合（ステップＳ８０６：Ｎｏ）、選択オブジェクトおよびオブジェクトＩＤが変数ｊのオブジェクトを、選択オブジェクト記憶部７０４にオブジェクトＩＤが記憶されているオブジェクトと連携して内部処理が実行可能なオブジェクトの組合せとして検出する。さらに、組合せ・順序検出部７０５は、選択オブジェクトおよびオブジェクトＩＤが変数ｊのオブジェクトが内部処理を仮実行した順序を、検出した組合せに含まれるオブジェクトが、選択オブジェクト記憶部７０４にオブジェクトＩＤが記憶されているオブジェクトと連携して内部処理を実行する順序として検出する。
【００８５】
次いで、組合せ・順序検出部７０５は、検出した組合せおよび順序に従って、変数ｊ（オブジェクトＩＤ）を組合せ・順序記憶部７０６に記憶させる（ステップＳ８０７）。以下、組合せ・順序検出部７０６は、実行エラーが発生したと判断されるまで、または変数ｊが閾値ｎに達するまで、ステップＳ８０５〜ステップＳ８０７の処理を繰り返す。
【００８６】
図１３は、組合せ・順序記憶部７０６に記憶されているテーブルである。組合せ・順序記憶部７０６は、図１３に示すように、組合せ・順序検出部７０５により検出した組合せおよび順序に従って、当該組合せに含まれるオブジェクトのオブジェクトＩＤを並べて記憶する。例えば、組合せ「５，６，７」は、オブジェクトＩＤが「５」のオブジェクト、オブジェクトＩＤが「６」オブジェクト、およびオブジェクトＩＤが「７」のオブジェクトの順序で内部処理が実行されることを示している。すなわち、組合せ・順序記憶部７０６に記憶されているテーブルは、組合せ・順序検出部７０５の処理の結果、内部処理の仮実行が成功したオブジェクトの組合せと順序とを記憶している。
【００８７】
配置部７０７は、変数ｉが閾値ｎより小さくないと判断した場合（ステップＳ８０４：Ｎｏ）、組合せ・順序記憶部７０６に記憶されているオブジェクトＩＤの組合せおよび順序に従って、オブジェクト管理領域１００１に表示されているオブジェクトのラベルの配置を変更する。
【００８８】
具体的には、配置部７０７は、組合せ・順序記憶部７０６に記憶されているオブジェクトＩＤの組合せを取り出し、取り出したオブジェクトＩＤの組合せが複数のオブジェクトＩＤを含む場合、当該複数のオブジェクトＩＤのラベルが１つのまとまりとして表示されるように、オブジェクト記憶部７０１に記憶されている当該複数のオブジェクトＩＤと対応付けられた位置情報（Ｘ，Ｙ）およびz-indexを変更する（ステップＳ８１１、ステップＳ８１２）。例えば、配置部７０７は、取り出したオブジェクトＩＤの組合せに含まれる先頭のオブジェクトＩＤを基準に、次のオブジェクトＩＤと対応付けられた位置情報を変更（例えば、（Ｘ，Ｙ）に２０ｐｘずつを加算）し、さらにz-indexを一つ減らす。さらに以降のオブジェクトＩＤと対応付けられた位置情報およびz-indexについても同様の手順でラベルの配置を変更する。
【００８９】
そして、表示制御部７０２は、位置情報およびz-indexが変更されると、オブジェクト記憶部７０１に記憶されている位置情報（Ｘ，Ｙ）およびz-indexに従って、オブジェクト管理領域１００１にオブジェクトのラベルを表示する（ステップＳ８１３）。
【００９０】
さらに、表示制御部７０２は、組合せ・順序記憶部７０６に記憶されている組合せにオブジェクトＩＤが含まれていないオブジェクトは利用不可と判断して、当該オブジェクトのラベルを半透明、非表示など、選択することができないことを明示する表示にすることも可能である（ステップＳ８１４）。または、オブジェクトのラベルは表示するが、オブジェクトの選択を受け付けないようにしてもよい。
【００９１】
図１４は、オブジェクトの配置を変更した操作表示部の表示例である。図１４に示すように、配置部７０７は、組合せ・順序記憶部７０６から取り出した組合せが複数のオブジェクトＩＤを含む場合、組合せに含まれるオブジェクトＩＤと対応付けられたラベルを、連携させて内部処理を実行する順序に従って三次元的に重ね合わせて表示する（符号１４０１で示す）。つまり、配置部７０７は、次に選択できるオブジェクトのラベルを手前に表示し、次以降で選択できるオブジェクトのラベルを順に奥に並べる。若しくは、配置部７０７は、次以降で選択できるオブジェクトのラベルを順に右側に並べてもよい。
【００９２】
さらに、配置部７０７は、オブジェクト管理領域１００１に表示されているラベルの配置を、組合せ・順序記憶部７０６から取り出した組合せに含まれるオブジェクトＩＤと対応付けられたラベルが１つのまとまりとして表示される配置に段階的に変更してもよい。これにより、ラベルの配置を変更する際、アニメーションによる連続的な画面の遷移によりラベルの配置を変更することができる。
【００９３】
また、表示制御部７０２は、組合せ・順序記憶部７０６に記憶されている組合せに含まれないオブジェクトのラベルを半透明の表示にする（符合１４０２で示す）。
【００９４】
このように、本実施の形態にかかるＰＣ１００によれば、次以降のオブジェクトの選択においてどのオブジェクトを選択すれば所望の処理を実行できるかを明確に利用者に提示することができので、利用者が望む処理全体の流れをイメージしながら連携処理を行わせるオブジェクトを選択することができ、かつ連携して内部処理を実行できないオブジェクトの選択などのオブジェクトの選択ミスを大幅に減らすことができる。
【００９５】
（第２実施の形態）
本実施の形態にかかるＰＣ１００は、オブジェクト群を一度の操作で選択することができるようにすることで、利用者によるオブジェクトの選択による操作負担を大幅に軽減することができる。なお、ＰＣ１００の構成については、第１実施の形態とほぼ同様であるため、第１実施の形態と異なる部分の処理のみを説明する。
【００９６】
図１５〜１７を用いて、本実施の形態にかかるエンジンの機能構成およびビジュアルプログラミングシステムを提供する処理手順について説明する。図１５は、エンジンの機能構成を示すブロック図である。図１６は、ビジュアルプログラミングシステムを提供する処理手順を示すフローチャートである。エンジン１５００は、図１５に示すように、オブジェクト記憶部７０１、表示制御部１５０２、選択部１５０３、選択オブジェクト記憶部７０４、組合せ・順序検出部７０５、組合せ・順序記憶部７０６、配置部７０７、およびオブジェクト群記憶部１５０１を備えて構成される。なお、図１６のステップＳ１６０１〜ステップＳ１６１２およびステップＳ１６１５に示す処理については、第１実施の形態と同様であるため、ここでは説明を省略する。
【００９７】
オブジェクト群記憶部１５０１は、組合せ・順序記憶部７０６に記憶されているオブジェクトＩＤの組合せのうち、複数のオブジェクトＩＤを含む組合せを記憶するものである。つまり、オブジェクト群記憶部１５０１は、図１３に示すテーブルに含まれるオブジェクトＩＤの組合せのうち、複数のオブジェクトＩＤを含む組合せ（「５，６，７」および「５，８」）を記憶する（ステップＳ１６１３）。
【００９８】
そして、表示制御部１５０２は、選択可能なオブジェクトのラベルに加えて、オブジェクト群記憶部１５０１に記憶されている組合せに含まれるオブジェクトＩＤのオブジェクト群のラベルを一度に選択可能であることを示す操作表示を、オブジェクト管理領域１００１に表示する（ステップＳ１６１４）。
【００９９】
図１７は、オブジェクトの配置を変更した操作表示部の表示例である。表示制御部１５０２は、図１７に示すように、オブジェクト群のラベルを一度に選択可能であることを示す操作表示１７０１をオブジェクト管理領域１００１に表示する。さらに、本実施の形態では、表示制御部１５０２は、オブジェクト群の選択を受け付ける操作ハンドル１７０２をオブジェクト管理領域１００１に表示する。利用者は、ポインティングデバイス（図示しない）を操作して、オブジェクト管理領域１００１に表示した操作ハンドル１７０２をドラッグして、さらにオブジェクト選択領域１００２にドロップすることにより、当該オブジェクト群の選択を指示することができる。
【０１００】
ここで、図１８を用いて、オブジェクト群を一度に選択した際の処理手順について説明する。図１８は、ビジュアルプログラミングシステムを提供する処理手順を示すフローチャートである。まず、操作ハンドル１７０２がオブジェクト選択領域１００２にドロップされると、選択部１５０３は、オブジェクト群記憶部１５０１を参照して（ステップＳ１８０１）、オブジェクト記憶部７０１から、オブジェクト群のオブジェクトＩＤを取得し、記憶する（ステップＳ１８０２）。
【０１０１】
そして、表示制御部１５０２は、選択オブジェクト記憶部７０４に記憶されているオブジェクト群のオブジェクトＩＤを参照して、オブジェクト群のラベルをオブジェクト管理領域１００２に表示する（ステップＳ１８０３）。
【０１０２】
図１９は、オブジェクト群が選択された場合の操作表示部の表示例である。表示制御部１５０２は、図１９に示すように、一度に選択されたオブジェクト群のラベルをオブジェクト選択領域１００２に表示する。
【０１０３】
また、本実施の形態では、表示制御部１５０２は、オブジェクト群の選択を一度に解除できることを示す操作表示１９０１をオブジェクト選択領域１００２に表示する。さらに、本実施の形態では、表示制御部１５０２は、オブジェクト群の選択解除を受け付ける操作ハンドル１９０２をオブジェクト選択領域１００２に表示する。利用者は、ポインティングデバイス（図示しない）を操作して、オブジェクト選択領域１００２に表示された操作ハンドル１９０２をドラッグして、さらにオブジェクト管理領域１００１にドロップすることにより、当該オブジェクト群の選択を解除することができる。それに伴い、選択部１５０３は、当該オブジェクト群のオブジェクトＩＤを選択オブジェクト記憶部７０４から削除するものとする。
【０１０４】
なお、選択部１５０３は、オブジェクト群記憶部１５０１にオブジェクトＩＤが記憶されているオブジェクト群に含まれるオブジェクトを少なくとも１つ選択することも可能である。図２０は、オブジェクトが選択された場合の操作表示部の表示例である。利用者は、ポインティングデバイス（図示しない）を操作して、オブジェクト管理領域１００１に表示されたオブジェクトのラベル２００１をドラッグして、さらにオブジェクト選択領域１００２にドロップすることにより、当該オブジェクトを選択することができる。それに伴い、選択部１５０３は、１つのオブジェクトのオブジェクトＩＤを選択オブジェクト記憶部７０４に記憶させるものとする。
【０１０５】
また、選択部１５０３は、オブジェクト群記憶部１５０１にオブジェクトＩＤが記憶されているオブジェクト群の中の任意の組み合わせのオブジェクト群を選択することも可能である。図２１は、任意の組み合わせのオブジェクト群が選択する場合の操作表示部の表示例である。表示制御部１５０２は、任意の組み合わせのオブジェクトからなるオブジェクト群が選択できることを示す操作表示２１０１をオブジェクト選択領域１００２に表示する。さらに、本実施の形態では、表示制御部１５０２は、当該任意の組み合わせのオブジェクト群の選択を受け付ける操作ハンドル２１０２をオブジェクト選択領域１００２に表示する。
【０１０６】
利用者は、ポインティングデバイス（図示しない）を操作して、オブジェクト管理領域１００１に表示された操作ハンドル２１０２をドラッグして、さらにオブジェクト選択領域１００２にドロップすることにより、任意の組み合わせのオブジェクト群の選択を指示することができる。それに伴い、選択部１５０３は、当該任意の組み合わせのオブジェクト群を選択し、選択したオブジェクト群のオブジェクトＩＤを選択オブジェクト記憶部７０４に記憶させるものとする。なお、２つの操作表示１７０１および２１０１は、マウスオーバーにより表示／非表示を切り替えるようにしてもよい。
【０１０７】
このように、本実施の形態にかかるＰＣ１００によれば、オブジェクト群を一度の操作で選択することができるようにすることで、利用者によるオブジェクトの選択による操作負担を大幅に軽減することができる。
【０１０８】
（第３実施の形態）
第１実施の形態および第２実施の形態では、ＭＥＭ−Ｃ２０９に格納されているソフトウェアを起動して、エンジン１０２を実体化する例について説明したが、これに限定するものではない。プログラムをＰＣ１００にインストールし、当該プログラムを起動することによりエンジン１０２を実体化できる媒体であればよい。
【０１０９】
図２２は、エンジンを実体化できるプログラムを格納する記憶媒体の一例を示す図である。
【０１１０】
図２２（ａ）は、ＰＣ１００が備えるＨＤＤ２１０にインストールされているプログラムを起動することによりエンジン１０２をＲＡＭ２０５ｂ上に実体化する例を示す図である。この場合、ＨＤＤ２１０が記憶媒体に相当する。
【０１１１】
図２２（ｂ）は、ＰＣ１００が記憶媒体２２０１を着脱可能なインターフェースを備える場合、またはＰＣ１００に記憶媒体を組み込むことが可能な場合に、当該記憶媒体に一時的または永続的に格納されているプログラムを起動することにより、エンジン１０２をＲＡＭ２０５ｂ上に実体化する例を示す図である。なお、記憶媒体は、図２２（ｃ）に示すように、フレキシブルディスク２２０２、ＣＤ−ＲＯＭ（Compact  Disc  Read  Only  Memory）２２０３、ＭＯ（Magneto  Optical）ディスク２２０４、ＤＶＤ（Digital  Versatile  Disc）２２０６、磁気ディスク２２０５、半導体メモリ２２０７などが利用できる。
【０１１２】
図２２（ｄ）は、ＰＣ１００がＬＡＮ（Local  Area  Network）インターネット等のネットワークに接続され、ネットワーク上のダウンロードサイト２２０８から有線または無線でプログラムをＰＣ１００のＨＤＤ２１０にダウンロードし、ダウンロードしたプログラムを起動することにより、エンジン１０２をＲＡＭ２０５ｂ上に実体化する例を示す図である。この場合、ダウンロードサイト２２０８が記憶媒体に相当する。
【図面の簡単な説明】
【０１１３】
【図１】第１実施の形態にかかるＰＣのハードウェアおよびソフトウェアの構成を説明するための説明図である。
【図２】第１実施の形態にかかるＰＣのハードウェア構成を示すブロック図である。
【図３】オブジェクトのＵＭＬクラス図である。
【図４】スキャン処理およびＱＲコードの解析処理を行うオブジェクトの関係を示す図である。
【図５】スキャンオブジェクトのＵＭＬクラス図である。
【図６】ＱＲコード解析オブジェクトのＵＭＬクラス図である。
【図７】エンジンの機能構成を示すブロック図である。
【図８】ビジュアルプログラミングシステムを提供する処理手順を示すフローチャートである。
【図９】オブジェクト記憶部に記憶されるラベルの一覧を含むテーブルを示す図である。
【図１０】オブジェクトを選択する前の操作表示部の表示例を示す図である。
【図１１】オブジェクトが選択された場合の操作表示部の表示例を示す図である。
【図１２】選択オブジェクト記憶部に記憶されるオブジェクトＩＤの一覧を含むテーブルである。
【図１３】組合せ・順序記憶部に記憶されているテーブルを示す図である。
【図１４】オブジェクトの配置を変更した操作表示部の表示例を示す図である。
【図１５】エンジンの機能構成を示すブロック図である。
【図１６】ビジュアルプログラミングシステムを提供する処理手順を示すフローチャートである。
【図１７】オブジェクトの配置を変更した操作表示部の表示例を示す図である。
【図１８】ビジュアルプログラミングシステムを提供する処理手順を示すフローチャートである。
【図１９】オブジェクト群が選択された場合の操作表示部の表示例を示す図である。
【図２０】オブジェクトが選択された場合の操作表示部の表示例を示す図である。
【図２１】任意の組み合わせのオブジェクト群が選択する場合の操作表示部の表示例を示す図である。
【図２２】エンジンを実体化できるプログラムを格納する記憶媒体の一例を示す図である。
【符号の説明】
【０１１４】
１００  ＰＣ
１０１  ウェブブラウザ
１０２，１５００  エンジン
１０３  ウェブサーバ
１０４  ＣＧＩ
１０５  オブジェクト
１０６  オペレーティングシステム
１０７  ハードウェアリソース
２００  コントローラ
２０１  ＵＳＢインターフェース
２０２  ＩＥＥＥ１３９４インターフェース
２０３  ＰＣＩバス
２０４  ＣＰＵ
２０５  ＭＥＭ−Ｐ
２０５ａ  ＲＯＭ
２０５ｂ  ＲＡＭ
２０６  ＮＢ
２０７  ＳＢ
２０８  ＡＳＩＣ
２０９  ＭＥＭ−Ｃ
２１０  ＨＤＤ
２１１  操作表示部
４０１  スキャンオブジェクト
４０２  ＱＲコード解析オブジェクト
７０１  オブジェクト記憶部
７０２，１５０２  表示制御部
７０３，１５０３  選択部
７０４  選択オブジェクト記憶部
７０５  組合せ・順序検出部
７０６  組合せ・順序記憶部
７０７  配置部
１５０１  オブジェクト群記憶部
２２０１  記憶媒体
２２０２  フレキシブルディスク
２２０３  ＣＤ−ＲＯＭ
２２０４  ＭＯディスク
２２０５  磁気ディスク
２２０６  ＤＶＤ
２２０７  半導体メモリ
２２０８  ダウンロードサイト
【図１】
2010072881.tif 000003
【図２】
2010072881.tif 000004
【図３】
2010072881.tif 000005
【図４】
2010072881.tif 000006
【図５】
2010072881.tif 000007
【図６】
2010072881.tif 000008
【図７】
2010072881.tif 000009
【図８】
2010072881.tif 000010
【図９】
2010072881.tif 000011
【図１０】
2010072881.tif 000012
【図１１】
2010072881.tif 000013
【図１２】
2010072881.tif 000014
【図１３】
2010072881.tif 000015
【図１４】
2010072881.tif 000016
【図１５】
2010072881.tif 000017
【図１６】
2010072881.tif 000018
【図１７】
2010072881.tif 000019
【図１８】
2010072881.tif 000020
【図１９】
2010072881.tif 000021
【図２０】
2010072881.tif 000022
【図２１】
2010072881.tif 000023
【図２２】
2010072881.tif 000024