(57)【要約】      （修正有）【課題】ハンドヘルドデジタル装置のためのメニューを開発環境中で作成するにあたって、ターゲットハンドヘルド装置ソフトウェアのルック＆フィールを、単一の開発システム上でエミュレートできるようにする。【解決手段】開発環境に適用可能な関連付けられたオペレーティングシステムを有するターゲット装置を選択し、そのオペレーティングシステムの制約を使用する、メニューを作成するためのエディタをコールする。エディタは、ターゲット装置の実際の挙動を閲覧することができるように、ターゲット装置のイメージ形態を表示し、メニューのための機能を定義し、オブジェクトコードを生成する。【選択図】図４
2006209759.tif 000002
【特許請求の範囲】
【請求項１】
開発環境中においてデジタル装置のためのアプリケーションコントロールを作成する方法であって、
前記開発環境において利用可能な、関連付けられたオペレーティングシステムを有する第１のターゲット装置を選択するステップと、
前記関連付けられたオペレーティングシステムの制約を使用する、前記アプリケーションコントロールを作成するためのエディタにアクセスするステップと、
前記選択されたターゲット装置のグラフィカルインタフェースを表すものが前記アプリケーションコントロールを表示するように、前記選択されたターゲット装置のイメージ形態を表示するステップと、
前記グラフィカルインタフェース上に表示される前記アプリケーションコントロールのための機能を定義するステップと、
前記アプリケーションコントロールを示すオブジェクトコードを生成するステップであって、前記オブジェクトコードは前記関連付けられたオペレーティングシステムの前記制約に準拠していることと、
を備えることを特徴とする方法。
【請求項２】
第１のターゲット装置を選択する前記ステップは、それぞれが関連付けられたオペレーティングシステムを有する複数の異なるターゲット装置から、第１のターゲット装置を選択するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記第１のターゲット装置は、カスタムのオペレーティングシステムを有するデジタル装置であることを特徴とする請求項１に記載の方法。
【請求項４】
前記アプリケーションコントロールのための機能を定義する前記ステップの後で、かつオブジェクトコードを生成する前記ステップの前に第２のターゲット装置を選択するステップであって、生成される前記オブジェクトコードは、前記第１のターゲット装置ではなく、前記第２のターゲット装置の前記アプリケーションコントロールを示していることをさらに備えることを特徴とする請求項１に記載の方法。
【請求項５】
前記アプリケーションコントロールを作成するためにエディタにアクセスする前記ステップは、前記第１のターゲット装置上のメニュー機能を作成するためのユーザインタフェースをインスタンス化するステップを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記第１のターゲット装置は、ポケットパーソナルコンピュータ、スマートフォン、および携帯情報端末のうちの１つであることを特徴とする請求項５に記載の方法。
【請求項７】
デジタル装置に対するアプリケーションコントロールを開発するためのコンピュータシステムであって、
ターゲット装置のアプリケーションコントロールを閲覧するためのディスプレイと、
少なくとも１つのターゲット装置のオペレーティングシステムを有するメモリストアと、
命令を有するコンピュータメモリへのアクセス権を有するプロセッサであって、前記命令が実行されたとき、
関連付けられたターゲット装置のオペレーティングシステムを有する第１のターゲット装置を選択するステップと、
前記ターゲット装置が関連付けられたオペレーティングシステムの制約を使用する、前記アプリケーションコントロールを作成するためのエディタにアクセスするステップと、
前記選択されたターゲット装置のグラフィカルインタフェースを表すものが前記アプリケーションコントロールを表示するように、前記選択されたターゲット装置のイメージ形態を表示するステップと、
前記アプリケーションコントロールのための機能を定義するステップと、
前記アプリケーションコントロールを示すオブジェクトコードを生成するステップであって、前記オブジェクトコードは前記関連付けられたオペレーティングシステムの前記制約に準拠していることと、
を含む方法を実施することと、
を備えることを特徴とするシステム。
【請求項８】
前記ディスプレイは、前記第１のターゲット装置のユーザが見るように、前記選択された第１のターゲット装置および前記アプリケーションコントロールの描画を表示することを特徴とする請求項７に記載のシステム。
【請求項９】
前記メモリストアは、デジタル装置のための１つもしくは複数のマルチターゲットオペレーティングシステム、並びにカスタムのデジタル装置ターゲットオペレーティングシステムを含むことを特徴とする請求項７に記載のシステム。
【請求項１０】
前記関連付けられたオペレーティングシステムは、前記開発のオペレーティングシステムとは別個のものであることを特徴とする請求項７に記載のシステム。
【請求項１１】
開発環境中において、デジタル装置のためのアプリケーションコントロールを作成する方法を実施するためのコンピュータ実行可能命令を有するコンピュータ読取り可能媒体であって、前記方法は、
前記開発環境において利用可能な、関連付けられたオペレーティングシステムを有する第１のターゲット装置を選択するステップと、
前記関連付けられたオペレーティングシステムの制約を使用する、前記アプリケーションコントロールを作成するためのエディタにアクセスするステップと、
前記選択されたターゲット装置のグラフィカルインタフェースを表すものが前記アプリケーションコントロールを表示するように、前記選択されたターゲット装置のイメージ形態を表示するステップと、
前記アプリケーションコントロールのための機能を定義するステップと、
前記アプリケーションコントロールを示すオブジェクトコードを生成するステップであって、前記オブジェクトコードは、前記関連付けられたオペレーティングシステムの前記制約に準拠していることと、
を備えることを特徴とするコンピュータ読取り可能媒体。
【請求項１２】
第１のターゲット装置を選択する前記ステップは、関連付けられたオペレーティングシステムをそれぞれが有する複数の異なるターゲット装置のうちの１つから第１のターゲット装置を選択するステップを含むことを特徴とする請求項１１に記載のコンピュータ読取り可能媒体。
【請求項１３】
前記アプリケーションコントロールのための機能を定義する前記ステップの後で、かつオブジェクトコードを生成する前記ステップの前に第２のターゲット装置を選択するステップであって、生成される前記オブジェクトコードは、前記第１のターゲット装置ではなく、前記第２のターゲット装置の前記アプリケーションコントロールを示していることをさらに備えることを特徴とする請求項１１に記載のコンピュータ読取り可能媒体。
【請求項１４】
前記アプリケーションコントロールを作成するためにエディタにアクセスする前記ステップは、前記第１のターゲット装置上のメニュー機能を作成するためのユーザインタフェースをインスタンス化するステップを含むことを特徴とする請求項１１に記載のコンピュータ読取り可能媒体。
【請求項１５】
前記第１のターゲット装置は、ポケットパーソナルコンピュータ、スマートフォン、および携帯情報端末のうちの１つであることを特徴とする請求項１４に記載のコンピュータ読取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラミングの分野に関する。より詳細には、本発明は、ターゲットデジタル装置上で動作するように設計されたソフトウェアを作成するための視覚的なプログラミング環境に関する。
【背景技術】
【０００２】
市販されている可搬型コンピュータ装置の数はますます増加している。これらの装置は、様々なフォームファクタおよび機能を有するハンドヘルドもしくはポケットサイズのコンピュータ、電話、および携帯情報端末を含む。ハンドヘルド装置の計算能力および記憶機能が増大すると、ユーザはより強力なソフトウェアアプリケーションの利用を要求するようになる。
【０００３】
ハンドヘルド装置間のインタフェース、画面サイズ、および解像度の多数のバリエーションを考慮に入れると、プログラマが、ハンドヘルド装置の特定の選択されたグラフィカルユーザインタフェース（ＧＵＩ）を複数の装置上で正しく表示させ動作できるようにすることは非常に困難なものとなり得る。例えば、ターゲットハンドヘルド装置の表示および機能が、開発システムの機能に十分反映されていないことがしばしばある。
【０００４】
通常、ハンドヘルド装置のプログラマは、まずデスクトップ開発システム上においてプログラミングし、次いで、新しく開発されたソフトウェアをハンドヘルド装置または実際の装置のエミュレータ上で動作させるということを交互に行って、ハンドヘルドＧＵＩが期待通り動作するかどうか調べる。それは時間がかかり非効率なことであり、特に、プログラマがそのアプリケーションを広範囲の可搬型装置に移植したい場合はそうである。プログラミングの一側面において、ハンドヘルド装置のプログラマは、典型的な開発環境を用いてハンドヘルドメニューなどの機能を生成することができるが、そのメニューをターゲットハンドヘルド装置において制御可能な形で実現することはできていない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、ターゲットハンドヘルド装置ソフトウェアのルック＆フィールを、単一の開発システム上においてエミュレートできるように、ターゲットハンドヘルド装置を適切にエミュレートする、ハンドヘルド装置のための「見たものが、手に入るもの」（ＷＹＳＩＷＹＧ：what you see is what you get）開発システムが求められている。開発システムが、将来の装置で動作できるように拡張可能な場合はさらに有利である。本発明は、前述したような必要性に取り組み、本明細書で述べるさらなる利点と共にそれらを解決するものである。
【課題を解決するための手段】
【０００６】
メニューエディタは、ターゲットデジタル装置のアプリケーション開発者にとって重要な要素である。メニューエディタの望ましい一側面は、あたかもターゲット装置上で見るようにメニューの実行時ルック＆フィールを正確に表すことを含む。メニューエディタの他の望ましい側面は、開発システムによって生成されるコードが、ターゲット装置と完全に互換性を有することである。メニューエディタの他の望ましい側面は、ターゲット装置で使用されるオペレーティングシステムとは関係なく、将来の装置に対して拡張可能とすることである。
【０００７】
本発明の一態様では、メニューエディタは、開発された機能に対するオブジェクトコードがターゲット装置の特有のオペレーティングシステムに対して完全に互換性を有して生成されることを可能にする。最終的なコードは、新しい機能が開発システム上で表示されていたのと同様な方法によってターゲット装置上で動作する。本発明の他の態様では、メニューなどの開発された機能は、１つのターゲット装置に対して定義され、次いで、他の装置を含むように変更することが可能であり、したがって機能設計の再利用が可能になる。本発明の他の態様では、メニューエディタを、新しいデジタル装置の将来の世代に対するメニュー項目の開発を含むように拡張することが可能である。
【０００８】
前述の要約、ならびに例示的な実施形態に関する以下の詳細な説明は、添付の図面と併せて読むことにより、良く理解される。本発明の諸実施形態を示すために、図面によって本発明の例示的な構成を示す。しかし、本発明はその開示された特定の方法および手段に限定されるものではない。
【発明を実施するための最良の形態】
【０００９】
概観
本発明の一実施形態では、開発システム上においてユーティリティを見出すソフトウェアアプリケーションである、ハンドヘルドデジタル装置のためのメニューエディタが実現される。この開発システムは、ハンドヘルドデジタル装置のための新しいアプリケーションを生成するためにハンドヘルド開発者によって使用される。それらの開発者は、事前に存在するオペレーティングシステム、あるいはハンドヘルド装置に対しカスタム化されたオペレーティングシステムを使用するハンドヘルド装置のグラフィカルユーザインタフェースを用いて、新しいアプリケーションを修正しまたは作成することができる。
【００１０】
本発明の一つの利点は、ユーザ／開発者が新しいメニュー機能を生成しているとき、ハンドヘルド装置の全体およびその応答を見ることができることである。ターゲット装置のオペレーティングシステムを使用することにより、開発者はいま開発中の新しいメニューに対してターゲットオペレーティングシステムがどのように応答するかを、すぐに見ることができるようになる。このようにすることで、全体の開発時間とデバッグ時間を共に節約することができる。本メニューエディタシステムの他の利点は、将来の装置を含む、異なる装置に対して拡張可能であり、カスタマイズできることである。本明細書に含まれるターゲットデジタル装置の諸実施例はハンドヘルドデジタル装置を含むが、本発明は、メニュー項目を有する任意の組込み型装置の応用例にも適している。このような組込み型装置の応用例には、それだけに限らないが、空港のキオスク（airline kiosk）、ガスポンプ、キャッシュレジスタ、電話または他の電気通信システム表示などの非ハンドヘルド装置が含まれる。
【００１１】
本発明の例示的な諸実施形態
図１は、本発明の諸態様を示すソフトウェア開発システムの部分的なスクリーンショット１００を示す。この実施形態では、ハンドヘルドターゲット装置１１０のグラフィカルユーザインタフェース（ＧＵＩ）の代表的な形態が開発システムのモニタ上に表示されている。したがって、開発者は、装置のための新しいメニュー機能を作成しているとき、ターゲット装置のＧＵＩを見ることができる。ハンドヘルド装置は、携帯電話、携帯情報端末、可搬型コンピュータ、ＧＰＳ受信プロセッサ、在庫追跡（inventory tracking）装置、可搬型ＰＯＳ装置、またはＧＵＩを有する他の任意のハンドヘルド装置のうちの任意の１つとすることができる。
【００１２】
図１の実施形態では、主メニューバー１２０が、ハンドヘルド装置画面１０５の下部に位置している。そのターゲット装置のＧＵＩ１１０に対する開発の現段階では、主メニュー１２０は、設定された２つの主メニュー項目もしくはソフトキー、すなわち、トップメニュー１、およびトップメニュー２のあることを示している。本発明の一態様として、ターゲットハンドヘルド装置のオペレーティングシステムが主メニュー１２０ソフトキーの拡張をサポートできる場合、ソフトキーを識別するための、またそのソフトキーの作動により実施される１つまたは複数の機能を定義するためのラベルをタイプするように、追加のメニュー項目スペース１２１が開発者に提供される。
【００１３】
図１の実施形態は、開発者がハンドヘルド装置ＧＵＩ上で複数のメニュー項目を介してナビゲートすることを示す。開発者は、主メニューバー１２０のトップメニュー１項目を選択している。トップメニュー１ソフトキーの選択の結果生じる機能は、メニュー項目ドロップダウンリスト１３０の表示である。メニュー項目リストには、メニュー項目１〜３、およびサブメニュー１、２を含む。図１の実施形態では、メニュー項目１〜３、およびサブメニュー１、２は、開発者によってすでにラベル付けされており、それらに関連付けられた機能を有している場合と、あるいはまだ有していない場合があり得る。本発明の一態様では、追加のメニュー項目１３１は、開発者によってラベル付けすることができ、また新しく定義されるメニュー項目を所望の機能により定義することもできる。本発明の一実施形態では、メニュー項目リスト１３０中の項目１３１などの新しいメニュー項目の合計数は、線表示（linear display）のサイズによって制限される。開発者がソフトウェアを開発しているときに、ハンドヘルド装置ＧＵＩの実際の制限を知ることができるように、その制限がデフォルトとして開発システム中で提示される。
【００１４】
図１の実施形態では、サブメニュー項目１および２を示す低位層メニュースタック１４０を表示するサブメニュー１を選択している。スタック１３０中のメニュー項目がすべて低位層サブメニュー項目を有するものではないことに留意されたい。例えば、スタック１３０のメニュー項目１は、ペースト機能を実施できるが、一方、サブメニュー１をインポート機能とすることができ、インポートのソースは、スタック１４０中に示された複数のサブメニュー項目１および２から選択することができる。本発明の一態様では、ハンドヘルド装置オペレーティングシステムによると、さらにサブメニューを含むように低位層のスタック１４０を拡張できる場合、開発システムは、次に利用可能なメニュー項目１４１の位置を表示することによりその機能を示すことができる。図１の実施形態では、メニュー項目の数を拡張する機能は、ソフトキー１２１、およびメニュー項目１３１、１４１など、現在表示されている各メニュー中で示される。図１の実施形態は、次に利用可能な１つのキーの位置を表示することによって、このような拡張機能をプログラマに示す。しかし、メニューの拡張が可能であることを開発者に示す拡張マーカまたは色をメニューまたはサブメニュー上に設定するなど、他の方法を使用することもできる。
【００１５】
図１で述べた機能を例として図２に示す。図２は、開発システムスクリーンショット２１０上に示されたポケットパーソナルコンピュータ（ＰＣ）を示す。ポケットＰＣ本体２２０は、開発者が開発しているハンドヘルド装置のルック＆フィールをより理解できるようにするために表示される。この実施形態では、主メニューバー２３０がポケットＰＣ装置２２０のＧＵＩインタフェース２０５の下部に位置する。メニューバーは、３個のソフトキーがすでに、ファイル（ｆｉｌｅ）、編集（ｅｄｉｔ）、およびヘルプ（ｈｅｌｐ）として定義されていることを示す。第４のソフトキー２３１は、利用可能であることを示している。新しいソフトキー２３１の可用性は、ポケットＰＣオペレーティングシステムの追加のソフトキーをサポートする能力を示している。
【００１６】
図２の実施例では、開発者は、主メニューバー２３０の編集ソフトキーを選択しており、サブメニュー項目スタック２４０が図示されている。サブメニュー項目スタック２４０は、６個のサブメニュー機能がプログラマによって以下のように定義されていることを表示し指示している。すなわち、コピー（ｃｏｐｙ）、ペースト（ｐａｓｔｅ）、カット（ｃｕｔ）、１００％、２００％、およびフォント（ｆｏｎｔ）である。サブメニュー中の新しいメニュー項目２４１を示すことによって、サブメニュー項目スタック２４０の拡張が潜在的に可能である。プログラマは、新しいアプリケーションの機能開発で、主メニューソフトキー２３１またはサブメニュー項目２４１を利用することができる。
【００１７】
図３は、本発明の諸態様に従って開発された別の装置の一実施例である。図３は、開発システムの画面表示３１０上に表示されたスマートフォン本体３２０を示す。ＧＵＩ表示３０５は、完了（ｄｏｎｅ）およびオプション（ｏｐｔｉｏｎｓ）とラベル付けされた２つのソフトキーを示すメニューバー３３０を有する。この実施例では、スマートフォンのオペレーティングシステムは、追加の他のソフトキーを使用できるようにしていない。したがって、開発者が利用できるオプションの新しいキーはない。この制限は、スマートフォンハンドヘルド装置３２０のオペレーティングシステムの制限を反映している。
【００１８】
表示３１０は、開発者がオプションメニューソフトキーをアクティブとして、サブメニュースタック３４０が表示されていることを示す。この実施例では、オペレーティングシステムは、サブメニュースタック３４０中のメニュー項目の拡張に対しては制限を有していない。したがって、スマートフォン装置開発者は、新しいサブメニュー項目３４１を利用することができる。
【００１９】
図４は、本発明の諸態様を使用する開発システムのソフトウェアエレメントの機能図４００を示す。開発システムへのユーザインタフェース４１０は、メニュー開発エディタ４８０と対話することができる。開発者は、ハンドヘルド装置に対する開発セッションを要求するために、ユーザインタフェース４１０を使用することができる。メニューエディタ４８０は、選択されたメニューデザイナにアクセスすることにより、選択されたユーザインタフェースをインスタンス化することができる。図４は、４つの異なるメニューデザイナ、すなわち、ポケットＰＣメニューデザイナ４７０、スマートフォンメニューデザイナ４６０、Ｍａｇｎｅｔｏメニューデザイナ４５０、カスタムメニューデザイナ４４０を示す。選択されるメニューデザイナは、ターゲットハンドヘルド装置のユーザ選択によって決まる。
【００２０】
選択された特定のメニューデザイナは、対応する装置本体を提供し、対応するオペレーティングシステム制限と対話して開発される装置の実際のビューを表示する。その実施形態の一態様では、データストア４３０が、選択された装置のオペレーティングシステムを含み、メニューエディタ４８０によってアクセスされ得る。したがって、データストアは、対応する複数の開発すべきハンドヘルド装置に対する複数のオペレーティングシステムを含むことができる。
【００２１】
開発エディタ４８０は、メニューの開発に共通のメニュー開発用メソッドを含む。それは、特定のハンドヘルド装置をターゲットにした特定のメニューデザイナ４４０、４５０、４６０、および４７０であり、ターゲット装置のメニューのインタフェースおよび機能をカスタマイズするために使用される。様々なデザイナは、本質的に、選択されたターゲット装置に対してメニューエディタをカスタマイズすることができる。そのカスタム化は、選択された装置の性能制限内で機能することのできるメニューエレメントの作成を可能とするために、対応する装置のオペレーティングシステムの関連部分を実行することと併せて行われる。
【００２２】
その結果、本発明は、選択されたハンドヘルド装置に対する新しい任意のオペレーティングシステムをメニューエディタ４８０と共に使用できるように拡張可能となり、したがって、その装置にオペレーティングシステムの新しいバージョンが使用される場合であっても、装置に対する新しいアプリケーションを生成することができる。したがって、アプリケーションの開発者だけが本発明を使用できるのではなく、より高度な開発者が、まだ開発途上の新しいオペレーティングシステム上で新しいアプリケーションを開発しテストするために本発明を使用することができる。
【００２３】
メニューエディタがデータストア４３０中の関連する装置デザイナおよび関連するハンドヘルド装置オペレーティングシステムの両方にアクセスできた後、ユーザインタフェース４１０を介したユーザとの対話により、ユーザは、ターゲットハンドヘルド装置のためのメニューをカスタマイズすることができる。メニューが生成されると、開発システムは、選択された装置のオペレーティングシステムが装置ＧＵＩ上に表示すべきものを示す表示と、作成あるいは変更されたソフトキーのプログラミングされた機能とを表示する。その開発の１つの部分に開発者が満足した場合、新しく作成または変更された装置メニューを保存することができ、オブジェクトコードが生成されて、出力コードファイル４２０に記憶される。この時点で、特にターゲット装置に対して利用に適したターゲットオペレーティングシステムのオブジェクトコードが生成される。そのコードは、開発プロセス中、開発されたメニューのルック＆フィールおよび機能を表示するようにターゲットハンドヘルド装置のオペレーティングシステムを用いて開発されているため、従来技術の開発システムよりも使用に適していると考えられる。
【００２４】
本発明のさらなる態様によると、１つの装置から次の装置へとメニュー項目を「すぐに（on the fly）」変更できるようになる。例えば、第１の装置タイプ上で開発者によりメニューエディタ４８０が使用された場合、ユーザは、新しい装置に対する新しいメニューの定義および機能の開発をすべて再度スタートさせる必要はない。開発者は、第１の装置中の既存の設計から所望のメニュー開発を取り込み、ターゲット装置の定義を変更することができ、またメニューエディタ４８０はそのメニュー設計を第２のターゲット装置にモーフィングすることができる。新しいターゲット装置上の新しいメニューは、完全に機能することができるように第２のターゲット装置に対する互換性が当然必要となる。しかし、このように１つの装置タイプから他のタイプにメニュー設計形態を移植することにより、開発定義時間を節約し、装置のファミリー全体でメニューを標準化することができる。
【００２５】
図５は、メニューエディタ４８０中のソフトウェアコンポーネントのクラスを示す。メニューエディタサービス５１０は、メニューエディタとその環境との間でブリッジとして動作する。ルートコンポーネントごとに１つのメニューエディタサービス５１０インスタンスが存在する。管理メニュー５２０は、メニューオブジェクトに対する設計時間開発ユーザインタフェースを表す。管理メニュークラス５２０は、メニューエディタ全体の挙動を制御し、単一のメニューエディタのユーザインタフェースを管理する。ハンドヘルド装置形態がＸ個のメニューを有する場合、Ｘ個の管理メニュー５２０オブジェクトを有することになる。メニューエディタサービス５１０は、管理メニュー５２０のうちのどれをユーザに視覚化するかを制御する。管理メニュークラス５２０は、メニューデザイナクラス５２５にアクセスし、メニューの設計時間サポートを提供する。
【００２６】
管理メニュー５２０の各インスタンスは、トップレベルのメニューバーユーザインタフェースを表すトップレベルメニュー項目リスト５３０を有する。これは、図１の項目１２０のための最上位コントロールに相当する。トップレベルリストは、トップレベルメニュー項目リスト５３０を処理し、図１の項目１３０である、メニュー項目のユーザインタフェースを表すメニュー項目セル５４０を含む。メニュー項目セル５４０は、メニュー項目のユーザインタフェースを表す。それは、サブレベルメニュー項目リストおよびトップレベルメニュー項目リストによって管理される。
【００２７】
メニュー項目セルクラス５４０は、メニュー項目デザイナクラス５４５にアクセスし、メニュー項目に対する設計時間サポートを提供する。メニュー項目セルクラス５４０は、メニュー項目プロパティがサブメニューを含む場合、サブレベルメニュー項目リスト５５０を有することができる。サブリストは、項目１４０として図１に示されている。その場合、サブリストは、メニュー項目リストで表される。サブレベルメニュー項目リスト５５０およびトップレベルメニュー項目リスト５３０は、サブリスト選択およびメニュー項目の追加／削除を処理する。
【００２８】
メニューエディタサービスクラス５１０は、メニューエディタサービスインタフェース５１５およびＯＬＥコマンドターゲットインタフェース５１７を実施する。メニューエディタサービスインタフェース５１５は、メニューエディタをいつ起動し、表示し、隠すかを制御するために使用される。ＯＬＥコマンドターゲットインタフェース５１７は、コピー／ペースト／カット／削除など、Ｖｉｓｕａｌ  Ｓｔｕｄｉｏ（商標）のシェルコマンドオペレーションと通信するのに使用される。Ｖｉｓｕａｌ  Ｓｔｕｄｉｏ（商標）は、本件特許出願人から市販されている。
【００２９】
図６は、本発明の諸態様を使用する例示的な方法のフロー図を示す。本方法６００は、デジタル装置のためのメニューを開発するのに使用される開発システム上において、ターゲットハンドヘルド装置を選択することにより開始することができる（ステップ６１０）。本システムは、コンパクトＰＣ、スマートフォン、携帯情報端末、デジタルプランナ（planner）、またはオペレーション用にディスプレイを使用するハンドヘルド装置の他の任意のタイプなど、選択可能な複数のターゲット装置を有することが好ましい。
【００３０】
ターゲット装置が選択されると、開発システムはその選択された装置に対するメニューエディタにアクセスすることができる。本発明の一態様によると、メニューエディタはターゲット装置のオペレーティングシステムへのアクセス権を有する。そのオペレーティングシステムは、開発者が作成している新しいメニュープログラムまたはアプリケーションに対するターゲット装置の応答をエミュレートするために有用である。装置のグラフィカル表示を示すターゲット装置を表すイメージ形態の表示が開発システムによって示される（ステップ６２５）。イメージ形態の表示により、開発者はターゲット装置のルック＆フィールと、装置ユーザとの対話を理解することができる。開発者は、メニューエディタを使用して、新しいメニューおよびそれに対応する機能を定義することができる（ステップ６３０）。一実施形態では、新しいメニューをソフトキーとすることができる。本発明の一態様によると、本メニューエディタにより、ターゲット装置のオペレーティングシステムの実際の制約をエミュレートするのにオペレーティングシステムが利用可能であるため、開発者は、ターゲット装置上で新しいメニューがどのように見えかつ動作するのか調べることが可能になる。
【００３１】
メニューオペレーションが、場合によってはソフトキーまたはメニュー項目として定義された後、開発者はターゲット装置コードを生成するように要求することができる（ステップ６４０）。それは、開発システムソフトウェアにより自動的に実行することができるが、開発者がセーブ機能の作動を開始させることによりコード生成を要求することもできる。新しく開発されたメニュー機能を表すコードは、ターゲットハンドヘルドデジタル装置の特定のオペレーティングシステムと完全に互換性があるように、シリアル化され、生成される。その特定のターゲットオペレーティングシステムは、開発プロセス中で使用されていたので、コードが予想もしない挙動をすることは考えられない。
【００３２】
本発明の一態様では、１つの装置をターゲットにした新しいメニュー機能は、他の装置に使用することもできる。特定の装置のためのメニュー機能定義の後に、オプションのステップ６５０を行うことができる。開発者は、新しいメニュー機能が定義された後、メニュー定義を失うこと無しに、ターゲットハンドヘルド装置を変更することができる。方法６００によると、特定のターゲット装置エディタに対するアクセスが変更される間、新しいメニュー定義が維持される。維持されたメニューは、新しく再定義されたターゲット装置中で使用することができ、また新しいソフトキーおよびメニュー項目を開発することができる。
【００３３】
例示的なコンピューティング装置
図７および以下の議論は、本発明の諸実施形態が実施できる適切なコンピューティング環境の簡単な一般的な説明を提供するものである。汎用コンピュータが以下で述べられているが、それは単一プロセッサの一実施例に過ぎず、複数のプロセッサを有する本発明の諸実施形態を、ネットワーク／バス相互運用性および相互作用を有するクライアントなどの他のコンピューティング装置と共に実施することができる。したがって、本発明の諸実施形態は、非常にわずかなまたは最小限のクライアント資源が含まれるネットワーク化されホストされたサービス環境中、例えば、クライアント装置が機器中に配置されたオブジェクト、または同様の他のコンピューティング装置およびオブジェクトなど、ネットワーク／バスへのインタフェースとして働くだけのネットワーク化された環境中において実施することができる。本質的には、データを記憶できる場所、またはそこからデータを取り出せる場所はどこでも望ましくまたは適切な動作環境である。
【００３４】
必ずしも必要ではないが、装置もしくはオブジェクト用サービスの開発者が使用するために、本発明の諸実施形態を、オペレーティングシステムを介して実施しかつ／またはアプリケーションソフトウェア内に含めることもできる。ソフトウェアは、クライアントワークステーション、サーバ、もしくは他の装置など、１つまたは複数のコンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで記述することができる。一般に、プログラムモジュールは、特定のタスクまたは特定の抽象データ型を実行するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。通常、プログラムモジュールの機能は、様々な実施形態中で所望に応じて組み合わされ、配布することができる。さらに、当業者であれば、本発明の様々な実施形態を他のコンピュータ構成を用いて実施できることが理解されよう。使用するのに適切な他の周知のコンピュータシステム、環境、および／または構成は、それだけに限らないが、パーソナルコンピュータ（ＰＣ）、自動窓口機、サーバコンピュータ、ハンドヘルドもしくはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な家庭用電子機器、ネットワークＰＣ、電気器具、照明器具、環境制御エレメント、ミニコンピュータ、メインフレームコンピュータなどを含む。本発明の諸実施形態はまた、タスクが、通信ネットワーク／バスまたは他のデータ伝送媒体を介してリンクされた遠隔処理装置によって実施される分散型コンピューティング環境中において実行することもできる。分散型コンピューティング環境中では、プログラムモジュールは、メモリ記憶装置を含むローカルと遠隔の両方のコンピュータ記憶媒体中に位置することができ、クライアントノードは、代わりにサーバノードとして働くことができる。
【００３５】
図７は、このように、本発明の諸実施形態を実施できる適切なコンピューティングシステム環境７００の一実施例を示している。しかし、上記で明確にしたように、コンピューティングシステム環境７００は、適切なコンピューティング環境の一実施例に過ぎず、本発明の実施形態の使用もしくは機能の範囲に関して何らの限定を示唆するものではない。コンピューティング環境７００は、例示的な動作環境７００に示されたコンポーネントの任意の１つまたは組合せとの依存関係またはそれに関する必要条件を有するものと解釈されるべきではない。
【００３６】
図７を参照すると、本発明の実施形態を実施するための例示的なシステムは、コンピュータシステム７１０の形の汎用コンピューティング装置を含む。コンピュータシステム７１０のコンポーネントは、それだけに限らないが、処理装置７２０と、システムメモリ７３０と、システムメモリを含む様々なシステムコンポーネントを処理装置７２０に結合するシステムバス７２１とを含むことができる。システムバス７２１は、メモリバスもしくはメモリ制御装置、周辺バス、および任意の様々なバスアーキテクチャを用いるローカルバスを含む任意のいくつかのタイプのバス構造とすることができる。例のためであり、限定するものではないが、このようなアーキテクチャは、ＩＳＡバス、ＭＣＡバス、ＥＩＳＡバス、ＶＥＳＡローカルバス、ＰＣＩバス（Ｍｅｚｚａｎｉｎｅバスとしても知られている）を含む。
【００３７】
コンピュータシステム７１０は、通常、様々なコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータシステム７１０によってアクセス可能な任意の利用可能な媒体とすることができ、また揮発性／不揮発性媒体、取外し可能／取外し不能媒体を共に含む。例のためであり、限定するものではないが、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術で実施される揮発性／不揮発性媒体、取外し可能／取外し不能媒体を含む。コンピュータ記憶媒体は、それだけに限らないが、ＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（読取り専用メモリ）、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ、もしくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶装置、あるいは所望の情報を記憶するのに使用することができ、コンピュータシステム７１０によってアクセスできる任意の他の媒体を含む。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の移送機構などの変調されたデータ信号中で実行するものであり、また任意の情報送達媒体を含む。用語「変調されたデータ信号」とは、情報を信号中に符号化するように１つまたは複数のその特性が設定されたまたは変更された信号を意味する。例示のためであり、限定するものではないが、通信媒体は、有線ネットワークや直接有線接続などの有線媒体、および音響、高周波、赤外線、他の無線媒体などの無線媒体を含む。上記の任意の組合せもまた、コンピュータ読取り可能媒体の範囲に含まれるべきである。
【００３８】
システムメモリ７３０は、ＲＯＭ（読取り専用メモリ）７３１やＲＡＭ（ランダムアクセスメモリ）７３２などの揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体を含む。起動中などに、コンピュータシステム７１０内の要素間において情報を転送できるようにする基本ルーチンを含むＢＩＯＳ（基本入出力システム）７３３が、通常、ＲＯＭ７３１に記憶されている。ＲＡＭ７３２は、通常、処理装置７２０が直接アクセス可能であり、および／または現在処理しているデータおよび／またはプログラムモジュールを含む。例のためであり、限定するものではないが、図７は、オペレーティングシステム７３４、アプリケーションプログラム７３５、他のプログラムモジュール７３６、およびプログラムデータ７３７を示す。
【００３９】
コンピュータ７１０はまた、他の取外し可能／取外し不能、揮発性／不揮発性コンピュータ記憶媒体を含むことができる。例示のためだけであるが、図７は、取外し不能、不揮発性磁気媒体から読み取りまたは書き込むハードディスクドライブ７４１と、取外し可能、不揮発性磁気ディスク７５２から読み取りまたは書き込む磁気ディスクドライブ７５１と、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ、または他の光媒体などの取外し可能、不揮発性光ディスク７５６から読み取りまたは書き込む光ディスクドライブ７５５とを示す。例示的な動作環境で使用することができる他の取外し可能／取外し不能、揮発性／不揮発性コンピュータ記憶媒体は、それだけに限らないが、磁気テープカセット、フラッシュメモリカード、ＤＶＤ、デジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどを含む。ハードディスクドライブ７４１は、通常、インタフェース７４０などの取外し不能メモリインタフェースを介してシステムバス７２１に接続され、磁気ディスクドライブ７５１および光ディスクドライブ７５５は、通常、インタフェース７５０などの取外し可能メモリインタフェースにより、システムバス７２１に接続されている。
【００４０】
上記のまた図７に示すドライブおよびその関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータシステム７１０のための他のデータのストレージを提供する。図７で、例えば、ハードディスクドライブ７４１は、オペレーティングシステム７４４、アプリケーションプログラム７４５、他のプログラムモジュール７４６、およびプログラムデータ７４７を記憶するものとして示されている。これらのコンポーネントは、オペレーティングシステム７３４、アプリケーションプログラム７３５、他のプログラムモジュール７３６、およびプログラムデータ７３７と同一にも、異なるものにもできることに留意されたい。オペレーティングシステム７４４、アプリケーションプログラム７４５、他のプログラムモジュール７４６、およびプログラムデータ７４７は、少なくとも、それは別のコピーであることを示すために、ここでは異なる数字を与えている。ユーザは、キーボード７６２、および、通常、マウス、トラックボール、もしくはタッチパッドと呼ばれるポインティング装置７６１などの入力装置を介してコンピュータシステム７１０にコマンドおよび情報を入力することができる。他の入力装置（図示せず）は、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどを含むことができる。これらのおよび他の入力装置は、システムバス７２１に結合されているユーザ入力インタフェース７６０を介して処理装置７２０に接続されることが多いが、パラレルポート、ゲームポート、またはＵＳＢなど、他のインタフェースおよびバス構造によって接続することもできる。モニタ７９１または他のタイプの表示装置がまた、ビデオインタフェース７９０などのインタフェースを介してシステムバス７２１に接続されており、それは、代わって、ビデオメモリ（図示せず）と通信することができる。モニタ７９１に加えて、コンピュータシステムはまた、スピーカ７９７やプリンタ７９６など他の周辺出力装置を含むことができ、それは、出力周辺装置インタフェース７９５を介して接続することができる。
【００４１】
コンピュータシステム７１０は、遠隔コンピュータ７８０などの１つまたは複数の遠隔コンピュータへの論理接続を用いて、ネットワーク化または分散型環境中で動作することができる。遠隔コンピュータ７８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置、または他の共通ネットワークノードとすることができ、図７にメモリ記憶装置７８１だけが示されているが、通常、コンピュータシステム７１０に関して上記で述べたエレメントの多くまたはすべてを含む。図７で示す論理接続は、ＬＡＮ７７１、およびＷＡＮ７７３を含むが、他のネットワーク／バスも含むことができる。このようなネットワーク化環境は、家庭、オフィスや企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて普通のものである。
【００４２】
ＬＡＮネットワーク化環境で使用されるとき、コンピュータシステム７１０は、ネットワークインタフェースもしくはアダプタ７７０を介してＬＡＮ７７１に接続される。ＷＡＮネットワーク化環境において使用されるときは、コンピュータシステム７１０は、通常、インターネットなどのＷＡＮ７７３を介して通信を確立するためのモデム７７２または他の手段を含む。モデム７７２は、内蔵または外付けのものとすることができるが、ユーザ入力インタフェース７６０、または他の適切な機構を介してシステムバス７２１に接続することができる。ネットワーク化環境では、コンピュータシステム７１０、またはその部分に関して図示されたプログラムモジュールは、遠隔メモリ記憶装置に記憶することができる。例のためだけであり、限定するものではないが、図７は、メモリ装置７８１上に常駐する遠隔アプリケーションプログラム７８５を示す。図示されたネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立する他の手段を使用できることも理解されたい。
【００４３】
様々な分散型コンピューティングフレームワークが、パーソナルコンピューティングおよびインターネットに絞り込んだ点において開発されまた開発途上にある。個人にもビジネスユーザにも同様に、アプリケーションおよびコンピューティング装置に対してシームレスに相互運用可能でかつウェブ可能なインタフェースが提供され、コンピューティング活動をますますウェブブラウザまたはネットワーク指向するようにしている。
【００４４】
例えば、本件特許出願人から市販されているＭＩＣＲＯＳＯＦＴ（登録商標）の.ＮＥＴ（商標）プラットフォームは、サーバ、ウェブベースのデータストレージなどのビルディングブロック方式サービス、およびダウンロード可能な装置ソフトウェアを含む。本明細書の例示的な実施形態が、コンピューティング装置上に常駐するソフトウェアに関して述べられているが、本発明の実施形態の１つまたは複数の部分はまた、オペレーティングシステム、ＡＰＩ（application programming interface）、または任意のコプロセッサ、表示装置、および要求オブジェクトの間の「仲介者（middle man）」オブジェクトを介して実装することが可能である。それによって、オペレーションは、すべての.ＮＥＴ（商標）の言語およびサービスによって実行され、サポートされ、あるいはアクセス可能となり、また他の分散型コンピューティングフレームワークにおいても同様である。
【００４５】
前述のように、本発明の例示的な諸実施形態が様々なコンピューティング装置およびネットワークアーキテクチャに関して述べられているが、その基礎となる概念を、デジタル装置のためのエディタを実装することが望ましい任意のコンピューティング装置またはシステムに適用することができる。したがって、本発明の諸実施形態に関して述べられた方法およびシステムを、様々なアプリケーションおよび装置に適用することができる。例示的なプログラミング言語、名前、および実施例が様々な選択肢を代表するものとして本明細書で選択されているが、それらの言語、名前、および実施例は、限定することを意図していない。当業者であれば、本発明の諸実施形態によって達成されたものと同一の、類似の、または等価なシステムおよび方法を実施するオブジェクトコードを提供するためには数多くの方法があることが理解されよう。
【００４６】
本明細書に述べた様々な技法は、ハードウェア、またはソフトウェア、あるいは、適切な場合はその両方の組合せによって実施することができる。したがって、本発明の方法および装置、またはそのいくつかの態様もしくは部分は、フロッピー（登録商標）ディスケット、ＣＤ−ＲＯＭ、ハードドライブ、または他の任意のマシン可読記憶媒体など有形の媒体中で実施されるプログラムコード（すなわち、命令）の形を取ることができ、そのプログラムコードがコンピュータなどのマシン中にロードされ実行されたとき、そのマシンは、本発明を実施するための装置になる。プログラムコードがプログラム可能コンピュータで実行される場合、コンピューティング装置は、一般に、プロセッサ、プロセッサによって読取り可能な記憶媒体（揮発性および不揮発性メモリおよび／または記憶エレメントを含む）、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。例えば、データ処理ＡＰＩなどの使用を介して、本発明の実施形態の信号処理サービスを利用できる１つまたは複数のプログラムは、コンピュータと通信するのに高級手続き型またはオブジェクト指向のプログラミング言語で実施されるのが好ましい。しかし、プログラムは、所望に応じて、アセンブリ言語またはマシン言語により実施することもできる。いずれの場合も、その言語はコンパイル型言語もしくはインタプリタ型言語とすることができ、またハードウェア実装形態と組み合わせることができる。
【００４７】
本発明の諸態様が様々な図の好ましい実施形態に関して述べられてきたが、本発明から逸脱することなく、本発明の同じ機能を実施するために、他の同様な実施形態を使用することが可能であり、あるいは変更および追加を前述の実施形態に加えることができることを理解されたい。さらに、特に、無線ネットワーク化装置の数が急増し続けるにつれて、ハンドヘルド装置のオペレーティングシステムおよび他のアプリケーション特有のオペレーティングシステムを含む様々なコンピュータプラットフォームが企図されていることを強調すべきである。したがって、特許請求する本発明は、どんな単一の実施形態にも限定することなく、添付の特許請求の範囲に従って、その広がりおよび範囲を解釈すべきである。
【図面の簡単な説明】
【００４８】
【図１】本発明の諸態様を示す開発システムの例示的なスクリーンショットの図である。
【図２】本発明の諸態様を示す他の例示的なスクリーンショットの図である。
【図３】本発明の諸態様を示す他の例示的なスクリーンショットの図である。
【図４】機能的なブロック図である。
【図５】例示的なクラス構造図である。
【図６】本発明の例示的な方法のためのフロー図である。
【図７】本発明の諸態様を実施できる例示的なコンピューティング環境を示すブロック図である。
【符号の説明】
【００４９】
１０５  ハンドヘルド装置画面            
２０５  ＧＵＩインタフェース
２２０  ポケットＰＣ本体
３０５  ＧＵＩ表示
３２０  スマートフォン本体
７５１  磁気ディスクドライブ
７５５  光ディスクドライブ
【図１】
2006209759.tif 000003
【図２】
2006209759.tif 000004
【図３】
2006209759.tif 000005
【図４】
2006209759.tif 000006
【図５】
2006209759.tif 000007
【図６】
2006209759.tif 000008
【図７】
2006209759.tif 000009