(57)【特許請求の範囲】
【請求項１】
アプリケーションプログラムに組み込まれる候補となるプログラム要素を蓄積する蓄積部と、
前記アプリケーションプログラムの利用者に対応して、前記蓄積部に蓄積されたプログラム要素毎の推奨度合いを示すパラメータを設定するパラメータ設定部と、
前記利用者に提供されるアプリケーションプログラムが作成される際、当該利用者に対応して前記パラメータ設定部が設定したパラメータに応じた提示方法で、前記蓄積部に蓄積されたプログラム要素を提示する提示部と、
前記提示部が提示したプログラム要素から指示されたプログラム要素を組み込んで、アプリケーションプログラムを作成するアプリケーション作成部と
を備えることを特徴とするアプリケーション作成装置。
【請求項２】
前記アプリケーション作成部により作成されたアプリケーションプログラムに組み込まれたプログラム要素毎に、当該アプリケーションプログラムを実行した前記利用者の端末装置での利用実績を取得する利用実績取得部を備え、
前記パラメータ設定部は、
前記利用実績取得部により取得された利用実績に応じて前記パラメータを設定する
ことを特徴とする請求項１に記載のアプリケーション作成装置。
【請求項３】
前記利用実績取得部は、
前記利用者を識別する利用者ＩＤとともに前記利用実績を取得し、
前記パラメータ設定部は、
前記利用実績取得部により取得された利用者ＩＤが示す利用者毎に、前記利用実績に応じて前記パラメータを設定する
ことを特徴とする請求項２に記載のアプリケーション作成装置。
【請求項４】
前記アプリケーション作成部により作成されたアプリケーションプログラムの作成者とは別の作成者により入力された、前記パラメータを指定する入力情報を取得する入力情報取得部を備え、
前記パラメータ設定部は、
前記入力情報取得部により取得された入力情報に応じて前記パラメータを設定する
ことを特徴とする請求項１から３のいずれか１項に記載のアプリケーション作成装置。
【請求項５】
前記蓄積部に蓄積された各プログラム要素のアルゴリズムを解析する解析部を備え、
前記パラメータ設定部は、
前記解析部による前記プログラム要素毎の解析結果に応じて、当該プログラム要素の前記パラメータを設定する
ことを特徴とする請求項１から４のいずれか１項に記載のアプリケーション作成装置。
【請求項６】
アプリケーション作成装置と、アプリケーションプログラムの作成者により操作される端末装置とを備えるアプリケーション作成システムであって、
前記アプリケーション作成装置は、
アプリケーションプログラムに組み込まれる候補となるプログラム要素を蓄積する蓄積部と、
前記アプリケーションプログラムの利用者に対応して、前記蓄積部に蓄積されたプログラム要素毎の推奨度合いを示すパラメータを設定するパラメータ設定部と、
前記利用者に提供されるアプリケーションプログラムが作成される際、当該利用者に対応して前記パラメータ設定部が設定したパラメータに応じた提示方法で、前記蓄積部に蓄積されたプログラム要素を提示する提示部と、
前記提示部が提示したプログラム要素から前記端末装置により指示されたプログラム要素を組み込んで、アプリケーションプログラムを作成するアプリケーション作成部と
を有し、
前記端末装置は、
前記提示部により提示されたプログラム要素のいずれかが前記作成者の操作により選択されると、選択されたプログラム要素を組み込んだアプリケーションプログラムの作成を、前記アプリケーション作成装置に指示する作成指示部
を有していることを特徴とするアプリケーション作成システム。
【請求項７】
アプリケーションプログラムの利用者に対応して、当該アプリケーションプログラムに組み込まれる候補となるプログラム要素を蓄積する蓄積部に蓄積されたプログラム要素毎の推奨度合いを示すパラメータを設定するパラメータ設定ステップと、
前記利用者に提供されるアプリケーションプログラムが作成される際、当該利用者に対応して前記パラメータ設定ステップにおいて設定されたパラメータに応じた提示方法で、前記蓄積部に蓄積されたプログラム要素を提示する提示ステップと、
前記提示ステップで提示したプログラム要素から指示されたプログラム要素を組み込んで、アプリケーションプログラムを作成するアプリケーション作成ステップと
を有することを特徴とするアプリケーション作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムの作成を支援する技術に関する。
【背景技術】
【０００２】
ユーザのプログラム言語の理解能力やプログラミング能力の高低に関わらず、そのユーザが手軽にアプリケーションプログラム（以下、「アプリケーション」と省略する。）を作成することができるよう、その作成を支援する技術が提案されている。例えばビジュアルプログラミング言語を用いれば、ユーザはアプリケーションへ組み込むことが可能な機能を視覚的に理解し、それらの機能を組み合わせる操作によって、アプリケーションを作成することができる。このような支援技術の進展により、今後もアプリケーションの作成者となるユーザの裾野は広がると考えられる。アプリケーションの作成を支援する技術として、特許文献１及び特許文献２に開示された技術も提案されている。
【０００３】
特許文献１は、画面生成処理の実装とアプリケーション処理の実装とを分離し、画面遷移のシミュレーションや処理内容の可視化を行うための技術を開示している。特許文献１に記載の発明によれば、簡易な画面デザインのための知識でアプリケーションの画面遷移を定義することができ、実装漏れを防止し、アプリケーションに必要な画面のデザイン及び動作の仕様を確定するまでの時間を短縮することができる。特許文献２は、アプリケーションの作成時に各プログラム部品の利用実績を記録し、以前に利用されたアプリケーションにおいて、各プログラム部品がどのプログラム部品と組み合わせて使用されたかを参照可能にする技術を開示している。特許文献２に記載の発明によれば、アプリケーションの作成者の過去の利用実績から、相性の良い実績のある組み合わせを参考できるようにプログラム部品を取捨選択して、新しいアプリケーションの作成を支援することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１１０３６２号公報
【特許文献２】特開平９−２５８９７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、アプリケーションの作成者は、利用者のニーズに合致した仕様のアプリケーションを作成したい場合があり、この観点から実装候補となる機能を取捨選択できるような支援技術が求められると考えられる。特許文献１に記載の発明は、アプリケーションへの実装を推奨する機能を作成者に選択させやすくする仕組みを有しておらず、作成者が実装機能の選択に迷うことがあると考えられる。特許文献２に記載された発明は、アプリケーションの作成者の過去における利用実績に照らして好適なプログラム部品を提示するものであり、言い換えれば、作成者の主観に基づいて推奨するプログラム部品を提示するものである。しかしながら、アプリケーションの利用者には、特定の機能を使い慣れた利用者もいれば、そうではない利用者もいるように、作成者の主観だけを考慮してプログラム部品を提示することが、必ずしも利用者のことを考慮した仕様のアプリケーションの作成の助けになるとは限らない。
これに対し、本発明の目的は、アプリケーションへ組み込む候補となるプログラム要素の利用者に対する推奨度合いを、アプリケーションの作成者に意識させることである。
【課題を解決するための手段】
【０００６】
上述した課題を解決するため、本発明のアプリケーション作成装置は、アプリケーションプログラムに組み込まれる候補となるプログラム要素を蓄積する蓄積部と、前記アプリケーションプログラムの利用者に対応して、前記蓄積部に蓄積されたプログラム要素毎の推奨度合いを示すパラメータを設定するパラメータ設定部と、前記利用者に提供されるアプリケーションプログラムが作成される際、当該利用者に対応して前記パラメータ設定部が設定したパラメータに応じた提示方法で、前記蓄積部に蓄積されたプログラム要素を提示する提示部と、前記提示部が提示したプログラム要素から指示されたプログラム要素を組み込んで、アプリケーションプログラムを作成するアプリケーション作成部とを備えることを特徴とする。
【０００７】
本発明のアプリケーション作成装置において、前記アプリケーション作成部により作成されたアプリケーションプログラムに組み込まれたプログラム要素毎に、当該アプリケーションプログラムを実行した前記利用者の端末装置での利用実績を取得する利用実績取得部を備え、前記パラメータ設定部は、前記利用実績取得部により取得された利用実績に応じて前記パラメータを設定するようにしてもよい。
このアプリケーション作成装置において、前記利用実績取得部は、前記利用者を識別する利用者ＩＤとともに前記利用実績を取得し、前記パラメータ設定部は、前記利用実績取得部により取得された利用者ＩＤが示す利用者毎に、前記利用実績に応じて前記パラメータを設定するようにしてもよい。
【０００８】
本発明のアプリケーション作成装置において、前記アプリケーション作成部により作成されたアプリケーションプログラムの作成者とは別の作成者により入力された、前記パラメータを指定する入力情報を取得する入力情報取得部を備え、前記パラメータ設定部は、前記入力情報取得部により取得された入力情報に応じて前記パラメータを設定するようにしてもよい。
【０００９】
本発明のアプリケーション作成装置において、前記蓄積部に蓄積された各プログラム要素のアルゴリズムを解析する解析部を備え、前記パラメータ設定部は、前記解析部による前記プログラム要素毎の解析結果に応じて、当該プログラム要素の前記パラメータを設定するようにしてもよい。
【００１０】
本発明のアプリケーション作成システムは、アプリケーション作成装置と、アプリケーションプログラムの作成者により操作される端末装置とを備えるアプリケーション作成システムであって、前記アプリケーション作成装置は、アプリケーションプログラムに組み込まれる候補となるプログラム要素を蓄積する蓄積部と、前記アプリケーションプログラムの利用者に対応して、前記蓄積部に蓄積されたプログラム要素毎の推奨度合いを示すパラメータを設定するパラメータ設定部と、前記利用者に提供されるアプリケーションプログラムが作成される際、当該利用者に対応して前記パラメータ設定部が設定したパラメータに応じた提示方法で、前記蓄積部に蓄積されたプログラム要素を提示する提示部と、前記提示部が提示したプログラム要素から前記端末装置により指示されたプログラム要素を組み込んで、アプリケーションプログラムを作成するアプリケーション作成部とを有し、前記端末装置は、前記提示部により提示されたプログラム要素のいずれかが前記作成者の操作により選択されると、選択されたプログラム要素を組み込んだアプリケーションプログラムの作成を、前記アプリケーション作成装置に指示する作成指示部を有していることを特徴とする。
【００１１】
本発明のアプリケーション作成方法は、アプリケーションプログラムの利用者に対応して、当該アプリケーションプログラムに組み込まれる候補となるプログラム要素を蓄積する蓄積部に蓄積されたプログラム要素毎の推奨度合いを示すパラメータを設定するパラメータ設定ステップと、前記利用者に提供されるアプリケーションプログラムが作成される際、当該利用者に対応して前記パラメータ設定ステップにおいて設定されたパラメータに応じた提示方法で、前記蓄積部に蓄積されたプログラム要素を提示する提示ステップと、前記提示ステップで提示したプログラム要素から指示されたプログラム要素を組み込んで、アプリケーションプログラムを作成するアプリケーション作成ステップとを有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、アプリケーションへ組み込む候補となるプログラム要素の利用者に対する推奨度合いを、アプリケーションの作成者に意識させることができる。
【図面の簡単な説明】
【００１３】
【図１】アプリケーション作成システムの全体構成を示す図。
【図２】サーバ装置のハードウェア構成を示すブロック図。
【図３】プログラム要素ＤＢのデータ構造を示す図。
【図４】パラメータＤＢのデータ構造を示す図。
【図５】作成者端末のハードウェア構成を示すブロック図。
【図６】利用者端末のハードウェア構成を示すブロック図。
【図７】利用実績ＤＢのデータ構造を示す図。
【図８】アプリケーション作成システムの機能的構成を示す機能ブロック図。
【図９】アプリケーション作成システムの処理の流れを示すシーケンスチャート。
【図１０】作成者端末における画面表示の例を示す図。
【図１１】作成者端末における画面表示の例を示す図。
【図１２】作成者端末における画面表示の例を示す図。
【図１３】作成者端末における画面表示の例を示す図。
【図１４】作成者端末における画面表示の例を示す図。
【図１５】パラメータＤＢのデータ構造を示す図。
【図１６】アプリケーション作成システムの機能的構成を示す機能ブロック図。
【図１７】アプリケーション作成システムの処理の流れを示すシーケンスチャート。
【図１８】パラメータＤＢのデータ構造を示す図。
【図１９】アプリケーション作成システムの機能的構成を示す機能ブロック図。
【図２０】アプリケーション作成システムの処理の流れを示すシーケンスチャート。
【図２１】作成者端末の機能的構成を示す図。
【図２２】アプリケーション作成システムの機能的構成を示す機能ブロック図。
【発明を実施するための形態】
【００１４】
以下、図面を参照しつつ本発明の実施形態を説明する。
［第１実施形態］
図１は、アプリケーション作成システム１の全体構成を示す図である。
アプリケーション作成システム１は、サーバ装置１０と、作成者端末２０と、利用者端末３０とを備える通信システムである。図１には、作成者端末２０のうち作成者端末２０ａ，２０ｂの２つのみを図示し、利用者端末３０のうち１つのみを図示している。アプリケーション作成システム１を構成する各装置は、ネットワークＮＷ経由で互いに通信可能に接続されている。ネットワークＮＷは、ここでは、移動体通信網、ゲートウェイ及びインターネットを含む通信網である。
【００１５】
サーバ装置１０は、アプリケーションを作成するためのサービスを提供するアプリケーション作成装置である。サーバ装置１０は、アプリケーションに組み込む候補となるプログラム要素を、作成者端末２０によりアプリケーションの作成者に提示する。作成者端末２０及び利用者端末３０は、ここでは各々がスマートフォンである。作成者端末２０は、アプリケーションの作成者（以下、単に「作成者」ということがある。）により所有される端末装置である。利用者端末３０は、作成者端末２０により作成されたアプリケーションの利用者（以下、単に「利用者」ということがある。）により所有される端末装置である。
なお、作成者端末２０及び利用者端末３０はスマートフォンに限らず、例えば、携帯電話端末やタブレット型端末、パーソナルコンピュータ、ＰＤＡ（Personal Digital Assistant）等の他の端末装置であってもよい。また、作成者端末２０及び利用者端末３０は別々の端末装置とは限らず、アプリケーションの作成時には作成者端末２０となり、アプリケーションの利用時には利用者端末３０となることが可能である。
【００１６】
図２は、サーバ装置１０のハードウェア構成を示すブロック図である。図２に示すように、サーバ装置１０は、制御部１１と、通信部１２と、記憶部１３とを備える。
制御部１１は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）を備えるマイクロプロセッサである。ＣＰＵは、ＲＯＭや記憶部１３に記憶されたプログラムをＲＡＭに読み出して実行することにより、サーバ装置１０の各部を制御する。通信部１２は、ネットワークＮＷに接続するためのインタフェースである。記憶部１３は、例えばハードディスク装置を備え、ソフトウェアや各ソフトウェアを実行するためのＯＳ(Operating System)のほか、プログラム要素ＤＢ（Data base）１３１、及びパラメータＤＢ１３２を記憶する。プログラム要素ＤＢ１３１は、アプリケーションへ組み込まれる候補となるプログラム要素を蓄積するデータベース（要素蓄積部に相当。）である。パラメータＤＢ１３２は、プログラム要素ＤＢ１３１に蓄積されたプログラム要素毎の推奨度合いを示すパラメータを記憶するデータベースである。
なお、サーバ装置１０は、前掲以外のハードウェア以外にも、例えばキーボードやマウスを含み操作を受け付ける操作部等のハードウェアデバイスを備える。
【００１７】
図３は、プログラム要素ＤＢ１３１のデータ構造を示す図である。
図３に示すように、プログラム要素ＤＢ１３１は、「テンプレートＩＤ」と、「要素ＩＤ」と、「プログラム要素」とで示される各情報を対応付けて記憶するデータベースである。テンプレートＩＤは、アプリケーションの雛形となるテンプレートを識別する識別情報である。テンプレートは、アプリケーションの用途に応じて複数種類のデータが記憶部１３に記憶されている。テンプレートは、例えば、利用者を所定の場所に案内するために用いられるアプリケーションを作成するためのナビゲーションテンプレートや、パーティ等のイベントの案内に用いられるアプリケーションを作成するためのご案内テンプレート、家庭での各人への家事の役割分担を管理するために用いられるアプリケーションを作成するための家事分担テンプレートである。本実施形態のアプリケーションは、比較的少人数向けに作成されるものを想定する。よって、アプリケーションの作成者は、ある目的のためにアプリケーションを作成する際に、利用者毎にアプリケーションの仕様を異ならせることが可能である。要素ＩＤは、プログラム要素を識別する識別情報であり、ここでは、テンプレートに予め組み込まれた各プログラム要素を識別する。プログラム要素は、アプリケーションに組み込まれる候補となるプログラム要素であり、アプリケーションに実装される機能に対応している。
【００１８】
ここで、ナビゲーションテンプレートのテンプレートＩＤを「Ｔｅｍｐ１」とする。プログラム要素「ｐｒｏｇ１０１」は、要素ＩＤ「ＰＩＤ１０１」が割り当てられ、指定時刻に待ち合わせ相手の電話番号を表示し発信できる状態にする機能（以下、「機能Ａ」又は「電話発信アシスト機能」と称する。）に対応したプログラム要素である。プログラム要素「ｐｒｏｇ１０２」は、要素ＩＤ「ＰＩＤ１０２」が割り当てられ、指定時刻に画面点灯が行われた場合に既に起床したことを示す電子メールを送信する機能（以下、「機能Ｂ」又は「起きたよメール機能」と称する。）に対応したプログラム要素である。プログラム要素「ｐｒｏｇ１０３」は、要素ＩＤ「ＰＩＤ１０３」が割り当てられ、指定時刻に画面点灯が行われない場合にメッセージを表示する機能（以下、「機能Ｃ」又は「スケジュール表示機能」と称する。）に対応したプログラム要素である。プログラム要素「ｐｒｏｇ１０４」は、要素ＩＤ「ＰＩＤ１０４」が割り当てられ、指定時刻に画面点灯が行われず、かつ、端末位置が指定範囲内である場合に電子メール（例えば、主催者に現在位置を通知するための電子メール）を送信する機能（以下、「機能Ｄ」又は「自動お知らせ機能」と称する。）に対応したプログラム要素である。
なお、画面点灯が行われない場合とは、利用者によって利用者端末３０が利用されていない場合が想定され、具体的には、最後に利用者端末３０が操作されてから所定時間経過した後や、折り畳み式の携帯電話端末であれば折り畳まれた状態である場合がありうる。
【００１９】
また、ご案内テンプレートのテンプレートＩＤを「Ｔｅｍｐ２」とする。このご案内テンプレートにも、ナビゲーションテンプレートと同様に、各機能に対応したプログラム要素が含まれる。家事分担テンプレートのテンプレートＩＤを「Ｔｅｍｐ３」とし、家事分担テンプレートにも各機能に対応したプログラム要素が含まれる。テンプレートに組み込まれているプログラム要素（機能）の内容は、テンプレート毎に異なるが、同じ機能に対応したプログラム要素が複数のテンプレートに組み込まれていることがある。
更に、前掲以外のテンプレートが記憶部１３に記憶されていてもよい。また、プログラム要素としても、いわゆるリマインド機能を実現するものや、ＧＰＳ（Global Positioning System）測位を用いて指定場所に利用者を道案内するための機能、特定のＷｅｂサイトへ誘導するためのハイパーリンクを画面表示させる機能、チェックリストを提供する機能に対応するもの等の、様々な機能に対応するものが想定される。
なお、図３に括弧書きした文字列は、各情報の理解を助けるために記載されたもので、プログラム要素ＤＢ１３１に実際に記憶された情報を意味するものではない。
【００２０】
図４は、パラメータＤＢ１３２のデータ構造を示す図である。
図４に示すように、パラメータＤＢ１３２は、「利用者ＩＤ」と、「要素ＩＤ」と、「パラメータ」とで示される各情報を対応付けて記憶するデータベースである。利用者ＩＤは、利用者端末３０のユーザを識別するユーザ識別情報である。利用者ＩＤは、ここではアプリケーションの利用者に対して割り当てられ、各利用者に互いに重複しないように付された識別番号である。利用者ＩＤは、これ以外にも、利用者端末３０に割り当てられた電話番号、ＳＩＭ（Subscriber Identity Module）カードから特定される端末識別情報等であってもよい。要素ＩＤは、プログラム要素ＤＢ１３１に記述された要素ＩＤと同じ情報である。パラメータは、プログラム要素ＤＢ１３１に蓄積されたプログラム要素毎に個別に設定されていて、プログラム要素の推奨度合いを示すパラメータである。
【００２１】
パラメータは、例えば、アプリケーションの利用者にとっての、プログラム要素に対応した機能の使い勝手の良さの指標となる値である。本実施形態のパラメータの値は、利用者端末３０におけるプログラム要素の利用実績で定まり、アプリケーションの作成者の指示によらないで設定される。パラメータは、ここでは「１」、「２」、「３」の３段階の値のいずれかをとる。パラメータの値が小さいほど、利用者端末３０でプログラム要素が利用された回数が多かったり、利用の頻度が高かったりすることを意味する。すなわち、パラメータの値が小さいほど、利用者にとって使い勝手が良い機能に対応したプログラム要素である、という判断の指標にすることができる。反対に、パラメータの値が大きいほど、利用者端末３０でプログラム要素が利用された回数が少なかったり、利用の頻度が低かったりすることを意味する。すなわち、パラメータの値が大きいほど、利用者にとって使い勝手が良くない機能に対応したプログラム要素である、という判断の指標にすることができる。要するに、利用者の機能の使い勝手の良さの観点からいえば、パラメータの値が小さいほど、利用者に対するプログラム要素の推奨度合いが高い。
以上のようにパラメータは、アプリケーションの利用者毎に個別に、且つ、プログラム要素毎に個別に設定されている。
なお、本実施形態では、パラメータは、３段階の数値で表されているが、２段階の数値で表されてもよいし、４段階以上の数値で表されてもよい。
【００２２】
図５は、作成者端末２０のハードウェア構成を示すブロック図である。図５に示すように、作成者端末２０は、制御部２１と、音声入出力部２２と、無線通信部２３と、ＵＩ（User Interface）部２４と、記憶部２５とを備える。
制御部２１は、ＣＰＵ、ＲＯＭ、及びＲＡＭを備えるマイクロプロセッサである。ＣＰＵは、ＲＯＭや記憶部２５に記憶されたプログラムをＲＡＭに読み出して実行することにより、作成者端末２０の各部を制御する。音声入出力部２２は、受話音声等を収音するマイクロホンと送話音声を放音するスピーカとを備え、音声の入出力に関する機能を実現する。音声入出力部２２は、マイクロホンによって作成者端末２０のユーザが発した音声を検出し、音声の検出結果を制御部２１に出力する。無線通信部２３は、無線通信回路やアンテナを備え、ネットワークＮＷに無線通信により接続するためのインタフェースである。ＵＩ部２４は、画像を表示する表示面と、表示面に重ねられたタッチパネルとを備え、ＧＵＩ（Graphical User Interface）を提供する。すなわち、ＵＩ部２４は、タッチパネルによりユーザからの操作を受け付ける操作部と、表示面に表示する画像により情報を報知する表示部としての双方の機能を実現する。作成者端末２０においては、操作部と表示部とがそれぞれ独立したハードウェアで実現されてもよい。記憶部２５は、例えばＥＥＰＲＯＭ（Electronically Erasable and Programmable ROM）を備え、作成者端末２０のユーザ（つまり、作成者）に割り当てられた作成者ＩＤのほか、ＯＳを含むソフトウェアを記憶する。
【００２３】
図６は、利用者端末３０のハードウェア構成を示すブロック図である。
図６に示すように、利用者端末３０は、制御部３１と、音声入出力部３２と、無線通信部３３と、ＵＩ部３４と、記憶部３５とを備える。利用者端末３０のハードウェア構成は、基本的には作成者端末２０と同じである。すなわち、利用者端末３０の各部は、作成者端末２０の同名の構成要素と同等の構成を有する。
ただし、記憶部３５は、利用者端末３０のユーザ（つまり、利用者）に割り当てられた利用者ＩＤ及び利用実績ＤＢ３５１を記憶する。利用実績ＤＢ３５１は、利用者端末３０が実行したアプリケーションに組み込まれていたプログラム要素毎の利用実績を蓄積するデータベースである。
なお、利用者端末３０は、前掲以外のハードウェア以外にも、例えばＧＰＳ機能による測位を行う測位部等のハードウェアデバイスを備える。
【００２４】
図７は、利用実績ＤＢ３５１のデータ構造を示す図である。
図７に示すように、利用実績ＤＢ３５１は、「要素ＩＤ」と、「利用頻度」とで示される各情報を対応付けて記憶したデータベースである。要素ＩＤは、プログラム要素ＤＢ１３１やパラメータＤＢ１３２に記述された要素ＩＤと同じ情報である。利用頻度は、ここでは、利用者端末３０が実行したアプリケーションにプログラム要素が組み込まれていた回数に占める、このプログラム要素の利用回数の割合で表される。ここにおいて利用とは、例えば、そのプログラム要素に関する所定条件を満たす処理（例えば、画面表示）を利用者端末３０が実行したことをいうが、少なくともアプリケーションに組み込まれたプログラム要素が制御部３１によって実行されたという要件を含む。
なお、利用頻度を管理するために、利用者端末３０が実行したアプリケーションにおいてプログラム要素が組み込まれていた回数や、このプログラム要素の利用回数を示すデータを利用者端末３０は記憶している。
【００２５】
例えば、要素ＩＤ「ＰＩＤ１０１」のプログラム要素が、利用者端末３０が過去に実行したアプリケーションに５回含まれていて、そのうち利用された回数が１回であった場合、図７に示すように利用頻度は「２０％」となる。この利用頻度の値が大きいプログラム要素ほど、利用者によって利用された頻度が高いから、その利用者にとっては使い勝手の良い機能に対応すると判断することができる。反対に、利用頻度の値が小さいプログラム要素ほど、その利用者にとって使い勝手の悪い機能に対応すると判断することができる。以下、利用実績ＤＢ３５１で対応付けられた要素ＩＤと利用頻度とのセットを、「利用実績」と称することがある。また、利用実績においては、利用頻度に代えて利用回数が用いられてもよく、この場合、利用回数が多いほど、利用者にとって使い勝手の良い機能に対応するという判断することができる。これ以外にも、同判断の指標とすることができる情報を、利用実績において利用頻度の代わりに採用してもよい。
続いて、アプリケーション作成システム１の機能的構成を説明する。
【００２６】
図８は、アプリケーション作成システム１の機能的構成を示す機能ブロック図である。
サーバ装置１０は、提示部１０１と、指示受付部１０２と、アプリケーション作成部１０３と、アプリケーション提供部１０４と、利用実績取得部１０５と、パラメータ設定部１０６とに相当する機能を実現する。作成者端末２０は、要素表示部２０１と、作成指示部２０２とに相当する機能を実現する。利用者端末３０は、アプリケーション受信部３０１と、アプリケーション実行部３０２と、利用実績送信部３０３とに相当する機能を実現する。
提示部１０１は、利用者に提供されるアプリケーションプログラムが作成される際、この利用者に対応してパラメータＤＢ１３２に記憶されたパラメータに応じた提示方法で、プログラム要素ＤＢ１３１に蓄積されたプログラム要素を提示する。ここでは、提示部１０１は、作成者端末２０に対し通信によりプログラム要素を提示する。パラメータは、例えば、プログラム要素の配列（ソート）順やプログラム要素の提示の有無等の提示方法を規定するために、提示部１０１によって参照される。
【００２７】
作成者端末２０の要素表示部２０１は、提示部１０１により提示されたプログラム要素を、提示部１０１で規定された提示方法に従って表示する。
作成指示部２０２は、要素表示部２０１により表示されたプログラム要素のいずれかが作成者により選択されると、選択されたプログラム要素を組み込んだアプリケーションプログラムの作成を、サーバ装置１０に対し指示する。作成指示部２０２は、例えば、提示部１０１により提示されたプログラム要素のいずれかを選択する指示を行うが、これ以外のサーバ装置１０に対する指示も行う。例えば、作成指示部２０２は、作成者がアプリケーションに対して設定することができる設定情報を指示する。設定情報は、アプリケーションの実行時に表示されるメッセージやその表示時刻など、アプリケーションに対して設定される情報で、アプリケーションを実行した装置の動作に関わる情報である。
【００２８】
サーバ装置１０の指示受付部１０２は、作成指示部２０２からの指示を通信により受け付ける。指示受付部１０２は、提示部１０１が提示したプログラム要素から、作成者端末２０によりアプリケーションに組み込むれたプログラム要素の選択指示を受け付ける。
アプリケーション作成部１０３は、指示受付部１０２が受け付けた指示に応じてプログラム要素ＤＢ１３１に蓄積されたプログラム要素を組み込んで、アプリケーションを作成する。
アプリケーション提供部１０４は、アプリケーション作成部１０３により作成されたアプリケーションを利用者端末３０に送信して、利用者にアプリケーションを提供する。
【００２９】
利用者端末３０のアプリケーション受信部３０１は、アプリケーション提供部１０４により送信されたアプリケーションを受信する。
アプリケーション実行部３０２は、アプリケーション受信部３０１により受信されたアプリケーションを実行する。アプリケーション実行部３０２は、アプリケーションを実行した際に、そのアプリケーションに組み込まれた各プログラム要素の利用の有無に応じて、利用実績ＤＢ３５１に蓄積された利用実績を更新する。
利用実績送信部３０３は、利用実績ＤＢ３５１に蓄積された利用実績を、利用者端末３０のユーザ（利用者）に割り当てられた利用者ＩＤとともに、サーバ装置１０宛てに送信する。
【００３０】
利用実績取得部１０５は、利用者端末３０から受信された利用実績と利用者ＩＤとを取得する。
パラメータ設定部１０６は、利用実績取得部１０５により取得された利用実績と利用者ＩＤとに応じて、パラメータＤＢ１３２におけるプログラム要素毎のパラメータを設定する。例えば、パラメータ設定部１０６は、利用実績において利用頻度が高いプログラム要素ほどパラメータの値を小さくし、利用頻度が低いプログラム要素ほどパラメータの値を大きくするよう、各利用者に対応したパラメータを設定する。利用実績とパラメータの値との対応関係については、サーバ装置１０において予め決められていればよい。
次に、アプリケーション作成システム１の動作を説明する。
【００３１】
図９は、アプリケーション作成システム１の処理の流れを示すシーケンスチャートである。図１０〜図１４は、それぞれ、アプリケーション作成システム１でのアプリケーションの作成過程における作成者端末２０の画面表示の例を示す図である。
作成者端末２０の制御部２１は、作成者によるアプリケーションの作成開始を指示する操作をＵＩ部２４により受け付ける（ステップＳＡ１）。ここでは、制御部２１は、まず、図１０（ａ）に示すテンプレート選択画面をＵＩ部２４に表示させる。図１０（ａ）に示すように、テンプレート選択画面では、アプリケーションの作成に利用可能なテンプレートの名称を付したソフトボタンＢ１〜Ｂ３が配置されている。作成者は、自身が作成したいアプリケーションに応じて、ＵＩ部２４を操作してテンプレートを選択する。また、制御部２１は、どの利用者向けのアプリケーションを作成するのかを指定する操作をＵＩ部２４により受け付けて、その利用者に割り当てられた利用者ＩＤを特定する。
なお、パラメータＤＢ１３２には利用者端末３０のユーザ（利用者）の利用者ＩＤが記述されている。よって、サーバ装置１０は、このパラメータＤＢ１３２に記述された利用者ＩＤのいずれかを作成者に指定させればよい。
【００３２】
次に、制御部２１は、プログラム要素の提示要求を、無線通信部２３によりサーバ装置１０宛てに送信する（ステップＳＡ２）。ここでは、制御部２１は、使用するテンプレートのテンプレートＩＤと、アプリケーションを提供する利用者の利用者ＩＤとを含む提示要求を送信する。ここでは、制御部２１は、ナビゲーションテンプレートを示すテンプレートＩＤ「Ｔｅｍｐ１」と、利用者ＩＤ「ＵＩＤ００１」とを含む提示要求を送信する。
【００３３】
サーバ装置１０の制御部１１は、通信部１２により提示要求を受信すると、パラメータＤＢ１３２を参照する（ステップＳＡ３）。ここでは、制御部１１は、パラメータＤＢ１３２のうち、提示要求に含まれる利用者ＩＤ（ここでは、「ＵＩＤ００１」）に対応するフィールドを参照する。
【００３４】
そして、制御部１１は、プログラム要素ＤＢ１３１に蓄積されたプログラム要素の提示方法を規定する（ステップＳＡ４）。ここでは、制御部１１は、プログラム要素ＤＢ１３１において、提示要求に含まれるテンプレートＩＤ及び利用者ＩＤに対応付けられたすべてのプログラム要素を提示対象とする。そして、制御部１１は、パラメータＤＢ１３２に記述されたパラメータの値が小さい順に提示対象のプログラム要素を配列（ソート）する、という提示方法を規定する。すなわち、制御部１１は、利用者に対して推奨度合いがプログラム要素の配列順を先にするような提示方法を規定する。
なお、パラメータの値が同じであるプログラム要素が複数あった場合には、制御部１１は、例えば、プログラム要素ＤＢ１３１において先（図中上側）に要素ＩＤが記述されたプログラム要素を上位の配列順とする。ここでは、利用者ＩＤ「ＵＩＤ００１」の作成者に対し、テンプレートＩＤ「Ｔｅｍｐ１」のテンプレートに基づいてプログラム要素を提示するから、制御部１１は、図４に示すパラメータＤＢ１３２に従って、「機能Ｃ」（要素ＩＤ；ＰＩＤ１０３）→「機能Ｄ」（要素ＩＤ；ＰＩＤ１０４）→「機能Ａ」（要素ＩＤ；ＰＩＤ１０１）→「機能Ｂ」（要素ＩＤ；ＰＩＤ１０２）という提示方法を規定する。
【００３５】
次に、制御部１１は、ステップＳＡ４の処理で規定した提示方法に従って、作成者端末２０に対しプログラム要素を提示する（ステップＳＡ５）。ここでは、制御部１１は、プログラム要素に対応する機能とその機能の説明とを付した画面表示を行わせるためデータを、通信部１２により作成者端末２０宛てに送信する。
【００３６】
作成者端末２０の制御部２１は、無線通信部２３の通信により受信したデータに基づき、サーバ装置１０により提示されたプログラム要素を、ステップＳＡ４の処理で規定された提示方法に従ってＵＩ部２４に表示させる（ステップＳＡ６）。ここでは、制御部２１はブラウザを実行して、画面情報に基づいて図１１に示すような要素表示画面をＵＩ部２４に表示させる。
【００３７】
ここでは、制御部２１は、パラメータの値が小さいプログラム要素ほど、その利用の推奨度合いが高いという意味で上位に表示させる。すなわち、制御部２１は、パラメータの値が小さい（すなわち、利用者にとって使い勝手が良いと判断できる）順に配列してプログラム要素を表示させる。提示対象のプログラム要素が更に多い場合には、ＵＩ部２４を操作する（例えば、フリック操作）ことで配列順が下位のプログラム要素が提示される。よって、制御部２１は、配列順が先のプログラム要素ほど、より少ない操作量で作成者に選択できるように表示させることになる。図１１に示す要素表示画面において、「◎」は、パラメータが「１」であることを意味し、「○」は、パラメータが「２」であることを意味し、「△」は、パラメータが「３」であることを意味する。よって、作成者は、プログラム要素の配列順のみならず、「◎」、「○」、「△」という表示を見て、各プログラム要素の利用者に対する推奨度合いを把握することができる。
【００３８】
次に、制御部２１は、作成者によるＵＩ部２４の操作により、アプリケーションの作成に関する指示を受け付ける（ステップＳＡ７）。例えば、制御部２１は、アプリケーションに組み込むプログラム要素を選択する操作を受け付ける。制御部２１は、図１１において、「○」印の中に「×」を付したソフトボタンＢ５がＵＩ部２４の操作で指定されると、対応するプログラム要素を削除し、アプリケーションに組み込まないようにする。一方、別のプログラム要素をアプリケーションに組み込む場合、作成者により「機能の追加」と付されたソフトボタンＢ４が選択されると、制御部２１は組み込む候補となるプログラム要素を作成者に指定させる画面（図示せず）をＵＩ部２４に表示させる。ここで、制御部２１は、例えば、追加可能なプログラム要素をＵＩ部２４に一覧表示させるが、別のテンプレートに組み込まれたプログラム要素を追加可能なプログラム要素として表示させてもよい。
また、制御部２１は、アプリケーションに組み込むように選択されたプログラム要素について、設定情報を指定する操作をＵＩ部２４により受け付ける。
【００３９】
図１２は、設定情報が指定されるときのＵＩ部２４の画面表示の例を示す図である。図１２（ａ）は、「スケジュール表示機能」（機能Ｃ）について設定情報が指定されるときの画面表示の一例を示す図である。図１２（ｂ）は、「電話発信アシスト機能」（機能Ａ）について設定情報が指定されるときの画面表示の一例を示す図である。
図１２（ａ）に示すようなスケジュール表示機能（機能Ｃ）においては、作成者により、プルダウンメニューＰ１を用いてメッセージを表示する日付が指定され、プルダウンメニューＰ２を用いてメッセージを表示する時刻が指定される。また、テキストボックスＴ１を用いて表示メッセージが指定される。また、図１２（ｂ）に示す電話発信アシスト機能においては、プルダウンメニューＰ３を用いて電話番号を発信できる状態で表示する日付が指定され、プルダウンメニューＰ４を用いて電話番号を表示する時刻が指定され、プルダウンメニューＰ５を用いて電話番号を表示する場合の条件が指定される。また、テキストボックスＴ２を用いて、電話番号とともに表示するメッセージが指定される。
作成者端末２０は、他のプログラム要素についても同様にして、作成者に設定情報を指定させる。ただし、本実施形態において、全プログラム要素が設定情報を必須とする機能に対応している必要はない。
【００４０】
図９に戻って説明する。
制御部２１は、ステップＳＡ７の処理で受け付けたアプリケーションの作成に関する指示（以下、「作成指示」という。）を、無線通信部２３によりサーバ装置１０宛てに送信する（ステップＳＡ８）。作成者端末２０が送信する情報には、アプリケーションに組み込むプログラム要素を示す要素ＩＤと、そのプログラム要素について指定された設定情報とが含まれている。
【００４１】
サーバ装置１０の制御部１１は、作成指示を通信部１２により受信すると、作成指示に従ってアプリケーションを作成する（ステップＳＡ９）。ここでは、制御部１１は、作成指示に含まれる要素ＩＤに対応付けられたプログラム要素をプログラム要素ＤＢ１３１から取得してアプリケーションに組み込み、更に、そのプログラム要素に対応した設定情報を組み込んでアプリケーションを作成する。
なお、作成者端末２０は、ステップＳＡ７の処理でアプリケーションの作成に関するすべての指示を受け付けてから、サーバ装置１０宛てに作成指示を送信する構成である必要はない。例えば、ＵＩ部２４によりアプリケーションの作成に関する操作が行われたびに、作成者端末２０はその操作に応じた作成指示を送信してもよい。この場合、サーバ装置１０は、操作のたびにその操作後に対応する画面表示を行わせるための画面情報を、作成者端末２０宛てに送信すればよい。
アプリケーション作成システム１において、作成者によるプログラム要素の指示からアプリケーションへのプログラム要素の組み込みまでの処理について、本実施形態で特別な構成を有していなくてもよい。
【００４２】
次に、サーバ装置１０の制御部１１は、アプリケーションの作成が完了すると、そのアプリケーションを、ステップＳＡ２の処理で取得した利用者ＩＤが示す利用者の利用者端末３０宛てに、通信部１２によって送信する（ステップＳＡ１０）。ここでは、制御部１１は、記憶部１３におけるアプリケーションの格納場所を記述した電子メールを利用者端末３０宛てに送信し、利用者端末３０からこの格納場所を指定したアプリケーションの送信要求を受信してから、アプリケーションを送信してもよい。
なお、サーバ装置１０は各利用者ＩＤに対応付けて、利用者にアプリケーションを提供するための電子メールを記憶しているものとする。
【００４３】
利用者端末３０の制御部３１は、無線通信部３３によりアプリケーションを受信すると、ＵＩ部３４の操作に応じてそのアプリケーションを実行する（ステップＳＡ１１）。ここでは、制御部３１は、実行したアプリケーションに応じた画面表示をＵＩ部３４に行わせる等して、ＵＩ部３４の操作に応じた処理を実行する。そして、制御部３１は、アプリケーションの実行によるプログラム要素の利用に応じて、利用実績ＤＢ３５１を更新する（ステップＳＡ１２）。ここでは、制御部３１は、各プログラム要素の利用回数を、当該プログラム要素がアプリケーションに実装されていた回数で除して利用頻度を算出し、算出した利用頻度とプログラム要素の要素ＩＤとを対応付けて、利用実績ＤＢ３５１に記述する。
なお、利用者端末３０は、一のアプリケーションにおいて同一のプログラム要素が何回利用されたとしても、利用実績において１回の利用としてカウントする。
【００４４】
制御部３１は、アプリケーションの実行が完了した後などの決められた時期に、当該アプリケーションについての利用実績を利用実績ＤＢ３５１から読み出して、無線通信部３３によりサーバ装置１０宛てに送信する（ステップＳＡ１３）。
【００４５】
サーバ装置１０の制御部１１は、通信部１２の通信により利用実績を取得すると、取得した利用実績に応じて、パラメータＤＢ１３２においてパラメータを設定する（ステップＳＡ１４）。ここで、制御部１１は、利用頻度が第１閾値（例えば、７０％）以上であるプログラム要素のパラメータを「１」と設定し、利用頻度が第２閾値（例えば４０％）以上第１閾値未満であるプログラム要素のパラメータを「２」と設定し、利用頻度が第２閾値未満であるプログラム要素のパラメータを「３」と設定して、パラメータＤＢ１３２を更新する。
以降において、アプリケーションの作成が行われる際には、この更新後のパラメータＤＢ１３２に従って、サーバ装置１０はステップＳＡ４の処理で提示方法を規定する。
アプリケーション作成システム１におけるアプリケーションの作成の流れの説明は以上である。
なお、利用実績が利用実績ＤＢ３５１にある程度蓄積されるまでは、利用者の使い勝手を十分に反映させたパラメータになっていないことが考えられる。そこで、ある量の利用実績が蓄積されるまでは、サーバ装置１０はデフォルト設定の提示方法でプログラム要素を提示してもよい。
【００４６】
ところで、利用者ＩＤ「ＵＩＤ００１」の利用者向けのアプリケーションの作成時には、サーバ装置１０は図１１に示す提示方法でプログラム要素を提示するが、別の利用者向けのアプリケーションが作成される際には、これとは異なる提示方法に変更してプログラム要素を提示する。
【００４７】
図１３は、要素表示画面の他の例を示す図である。図１３（ａ）は、利用者ＩＤ「ＵＩＤ００２」の利用者向けのアプリケーションの作成時における要素表示画面を示す図である。図１３（ｂ）は、利用者ＩＤ「ＵＩＤ００３」の利用者向けのアプリケーションの作成時における要素表示画面を示す図である。
図１３（ａ）に示すように、利用者ＩＤ「ＵＩＤ００２」の利用者向けのアプリケーションの作成時においては、図４に示すパラメータＤＢ１３２に従って、「機能Ａ」（要素ＩＤ；ＰＩＤ１０１）→「機能Ｃ」（要素ＩＤ；ＰＩＤ１０３）→「機能Ｂ」（要素ＩＤ；ＰＩＤ１０２）→「機能Ｄ」（要素ＩＤ；ＰＩＤ１０４）という配列となる。これは、図４を見ても分かるように、利用者ＩＤ「ＵＩＤ００１」の利用者と、利用者ＩＤ「ＵＩＤ００２」の利用者とでは、各プログラム要素の利用実績が異なることによる。利用実績の相違は、各利用者による機能の使い慣れの程度の相違や趣向の相違等が原因として考えられる。このような理由から、利用実績は、各利用者の各機能の使い勝手の良し悪しの判断材料として用いることができる。よって、作成者は、利用者ＩＤ「ＵＩＤ００１」の利用者向けのアプリケーションの作成時には、「機能Ｃ」や「機能Ｄ」を優先的に選択しやすくなり、利用者ＩＤ「ＵＩＤ００２」の利用者向けのアプリケーションの作成時には、「機能Ａ」や「機能Ｃ」を優先的に選択することができる。このようにして、作成者は、利用者に対する推奨度合いが高い機能に特化した仕様のアプリケーションを作成することが可能となる。
【００４８】
また、図１３（ｂ）に示すように、利用者ＩＤ「ＵＩＤ００３」の利用者向けのアプリケーションの作成時においては、図４のパラメータＤＢ１３２に従って、「機能Ａ」（要素ＩＤ；ＰＩＤ１０１）→「機能Ｂ」（要素ＩＤ；ＰＩＤ１０２）→「機能Ｃ」（要素ＩＤ；ＰＩＤ１０３）→「機能Ｄ」（要素ＩＤ；ＰＩＤ１０４）という配列となる。図４及び図１３（ｂ）を見ても分かるように、このユーザは全プログラム要素についてパラメータの値が「１」であるため、アプリケーションの利用にかなり慣れた利用者と判断することができる。よって、作成者は、利用者ＩＤ「ＵＩＤ００３」の利用者向けのアプリケーションでは、利用者の使い勝手をあまり気にしなくてもよい。したがって、作成者は、多数のプログラム要素をアプリケーションに組み込んだり、便利な機能あるが利用が難しい機能に対応するプログラム要素をこの利用者に限って組み込んだりすることも可能である。
【００４９】
図１４は、要素表示画面の他の例を示す図である。ただし、利用者ＩＤ「ＵＩＤ００１」の利用者に対応した要素表示画面とする。
図１４（ａ）は、サーバ装置１０が、プログラム要素の配列順をパラメータＤＢ１３２における要素ＩＤの記述順で規定し、代わりに、「◎」、「○」、「△」という情報で各プログラム要素の推奨度合いを作成者に知らしめる、という提示方法を採用した要素表示画面を示す。この提示方法であっても、作成者は、要素表示画面を見て各プログラム要素の推奨度合いを把握することができ、上述したようなアプリケーションの仕様を異ならせることができる。図１４（ｂ）は、サーバ装置１０が、パラメータが決められた条件を満たすプログラム要素（ここでは、パラメータが「１」という条件を満たすプログラム要素）のみを提示する、という提示方法を採用した要素表示画面を示す。この提示方法は、作成者が推奨度合いが特に高いプログラム要素のみを用いてアプリケーションを作成する場合に適している。
【００５０】
また、サーバ装置１０は、パラメータの値を作成者に知らしめるための情報を提示しなくてもよいし、パラメータの値が低い順にプログラム要素を配列するという提示方法を採用しなくてもよい。後者の場合、サーバ装置１０は、パラメータの値が大きい順にプログラム要素を配列することで、利用者に慣れてもらうという目的で、推奨度合いが低いプログラム要素を敢えてアプリケーションに選択させやすくすることもできる。
以上のとおり、サーバ装置１０は、プログラム要素毎のパラメータに応じた提示方法でプログラム要素を提示すればよく、具体的な提示方法については様々な方法がありうる。
【００５１】
以上説明した第１実施形態によれば、サーバ装置１０は、利用者毎のプログラム要素の利用実績に応じてパラメータを設定し、アプリケーションがどの利用者に提供されるものかによって、プログラム要素の提示方法を異ならせる。アプリケーションの利用者にも、プログラム言語の理解能力やプログラミング能力にはばらつきがあるし、特定の機能を使い慣れた利用者もいれば、そうではない利用者もいるはずである。このような事実に対し、アプリケーション作成システム１によれば、アプリケーションの作成者の主観のみによらないで、アプリケーションへ組み込む候補となるプログラム要素の利用者に対する推奨度合いを、アプリケーションの作成者に意識させることができる。したがって、作成者は、利用者にとって推奨度合いが高いプログラム要素を組み込んだアプリケーションを作成することが容易になる。逆に言えば、利用者が過去にあまり利用していない機能も作成者は把握することができるので、この機能を利用者が好んでないと考えて、作成者は、この機能に対応するプログラム要素をアプリケーションに組み込まないといった対応を採ることもできる。
【００５２】
また、アプリケーション作成システム１では、利用実績に応じてパラメータＤＢ１３２は逐一更新されるので、利用者によるアプリケーションの利用が増えるほど、より各利用者の使い勝手をより正確に反映させた提示方法を規定することができる。また、利用者による機能の利用の状況に変化が生じても（例えば、ある機能の利用が急激に増えてきたなど）、その変化に対応して提示方法でプログラム要素を提示することも可能である。
【００５３】
［第２実施形態］
次に、本発明の第２実施形態を説明する。
上述した第１実施形態では、サーバ装置１０は、作成者端末２０でアプリケーションが作成される際に、利用者毎のプログラム要素の利用実績に基づいてパラメータを設定していたが、他の作成者端末２０のユーザたる作成者に指定されたパラメータを用いるようにしてもよい。例えば、別の作成者が既にアプリケーションを作成していれば、その作成実績を、今回のアプリケーションの作成に適したプログラム要素の選定に利用することもできるからである。このように、本実施形態のアプリケーション作成システム１は、複数の作成者端末２０でパラメータを共有する仕組みを有している。
以下、作成者端末２０ａ（第２端末装置）が、作成者端末２０ｂ（第１端末装置）により指定されたパラメータを利用してアプリケーションを作成する構成を説明する。
アプリケーション作成システム１の各装置のハードウェア構成は基本的には上述した第１実施形態と同じである。ただし、サーバ装置１０は、パラメータＤＢ１３２に代えてパラメータＤＢ１３２ａを記憶部１３に記憶している。
【００５４】
図１５は、パラメータＤＢ１３２ａのデータ構造を示す図である。
図１５に示すように、パラメータＤＢ１３２ａは、「作成者ＩＤ」と、「利用者ＩＤ」と、「要素ＩＤ」と、「パラメータ」とで示される各情報を対応付けて記憶したデータベースである。作成者ＩＤは、作成者端末２０のユーザ（作成者）を識別するユーザ識別情報である。利用者ＩＤ、要素ＩＤ及びパラメータは、それぞれ上述した第１実施形態と同じ意味の情報である。
ここでは、作成者ＩＤ「ＵＩＤ００２」は、作成者端末２０ｂの記憶部２５に記憶されたものとする。すなわち、作成者ＩＤ「ＵＩＤ００２」に対応付けられたプログラム要素毎のパラメータは、作成者端末２０ｂのユーザたる作成者に指定されてパラメータＤＢ１３２ａに記述されたものである。
パラメータＤＢ１３２ａに記述された作成者ＩＤは、他の作成者により指定されたパラメータをプログラム要素の提示方法の規定に用いるために、作成者自らが指定したパラメータが提示方法に反映されるのを防止するために用いられる。すなわち、本実施形態でも、パラメータは、アプリケーションの作成者の指示によらないで設定される。
【００５５】
図１６は、アプリケーション作成システム１の機能的構成を示す機能ブロック図である。図１６において、上述した第１実施形態と同等に機能する機能ブロックは同じ符号を付して表しその説明を省略する。ただし、作成者端末２０ａは上述の第１実施形態と同等の機能を実現し、作成者端末２０ｂは入力情報受付部２０３と、入力情報送信部２０４とに相当する機能を実現する。
入力情報受付部２０３は、作成者端末２０ｂのユーザ（作成者）により入力されたパラメータを指定する入力情報を受け付ける。例えば、入力情報受付部２０３は、利用者ＩＤと、要素ＩＤと、パラメータとを入力情報として受け付ける。
入力情報送信部２０４は、入力情報受付部２０３により受け付けられた利用者ＩＤと、要素ＩＤと、パラメータとを含む入力情報を、作成者端末２０ｂの作成者ＩＤとともにサーバ装置１０宛てに送信する。
【００５６】
サーバ装置１０の入力情報取得部１０７は、入力情報送信部２０４によって送信された入力情報と作成者ＩＤとを取得する。
パラメータ設定部１０６は、入力情報取得部１０７により取得された入力情報と作成者ＩＤとに応じて、パラメータＤＢ１３２におけるパラメータを設定する。
アプリケーション作成システム１の他の機能的構成は上述の第１実施形態と同じである。ただし、提示部１０１は、作成者端末２０ｂにより指定されたパラメータに応じた提示方法で、作成者端末２０ａに対しプログラム要素を提示する。
【００５７】
図１７は、アプリケーション作成システム１の処理の流れを示すシーケンスチャートである。
作成者端末２０ｂの制御部２１は、利用者ＩＤ、要素ＩＤ及びパラメータを含む入力情報を、作成者によるＵＩ部２４の操作により受け付ける（ステップＳＢ１）。そして、制御部２１は、受け付けた入力情報を、記憶部２５に記憶された作成者ＩＤ（つまり、「ＵＩＤ００２」）とともに、無線通信部２３によりサーバ装置１０宛てに送信する（ステップＳＢ２）。
【００５８】
サーバ装置１０の制御部１１は、通信部１２により作成者端末２０ｂから作成者ＩＤと入力情報とのセットを受信すると、受信したデータに従ってパラメータＤＢ１３２においてパラメータを設定する（ステップＳＢ３）。ここで、制御部１１が作成者ＩＤ「ＵＩＤ００２」と、利用者ＩＤ「ＵＩＤ００１」と、要素ＩＤ「ＰＩＤ１０１」と、パラメータ「２」とのセットを受信すると、これらを対応付けたデータをパラメータＤＢ１３２に記述してパラメータを設定する。
以降、上述した第１実施形態と同様にして、アプリケーション作成システム１においてステップＳＡ１〜ＳＡ１０の処理ステップが実行されてアプリケーションが作成される。ただし、サーバ装置１０は、ある作成者によりアプリケーションが作成される際には、他の作成者によって指定されたパラメータに従って提示方法を規定し、同一作成者によって指定されたパラメータに従って提示方法を規定しないようにする。ここでは、サーバ装置１０は、作成者端末２０ａによりアプリケーションが作成される際には、作成者ＩＤ「ＵＩＤ００２」に対応付けられたパラメータを参照することを許可するが、作成者ＩＤ「ＵＩＤ００１」に対応付けられたパラメータを参照することを許可しない。
なお、複数の作成者により、同一の利用者で、かつ、同一のプログラム要素についてのパラメータが設定されている場合、どの作成者のパラメータを使うのかを、作成者端末２０ａのユーザが指定してもよい。また、作成者端末２０ａが複数の作成者によるパラメータを統計した結果（例えば、平均値等のパラメータの分布）を算出し、算出したパラメータを用いて提示方法を規定してもよい。この場合において、他の作成者により指定されたパラメータが反映されている限り、統計結果に作成者端末２０ａのユーザたる作成者により指定されたパラメータが反映されていてもよい。
【００５９】
以上説明した第２実施形態では、作成者端末２０は、自装置のユーザ（作成者）とは別の作成者により指定されたパラメータを指定する。これにより、複数の作成者端末２０でパラメータを共有して、サーバ装置１０は各利用者に対応したパラメータに応じた提示方法で、プログラム要素を提示することができる。また、上述した第１実施形態のように、十分な利用実績が蓄積されていない状況であっても、本実施形態のアプリケーション作成システム１によれば、利用者にとって使い勝手のよいと思われるプログラムが選択されやすくなる。
これ以外にも、本実施形態のアプリケーション作成システム１によれば、上述の第１実施形態と同等の効果を奏する。
【００６０】
［第３実施形態］
次に、本発明の第３実施形態を説明する。
上述した第１及び２実施形態では、サーバ装置１０は、利用者のプログラム要素の利用実績又は他の作成者の指定によってパラメータを設定していたが、ユーザによる指定を介在させないでパラメータを設定してもよい。本実施形態では、サーバ装置１０はプログラム要素ＤＢ１３１に蓄積されたプログラム要素毎にアルゴリズムを解析して、その解析結果に応じたパラメータをプログラム要素毎に設定する。すなわち、本実施形態でも、パラメータは、アプリケーションの作成者の指示によらないで設定される。
アプリケーション作成システム１の各装置のハードウェア構成は基本的には上述した第１実施形態と同じである。ただし、サーバ装置１０は、パラメータＤＢ１３２に代えてパラメータＤＢ１３２ｂを記憶部１３に記憶しているものとする。
【００６１】
図１８は、パラメータＤＢ１３２ｂのデータ構造を示す図である。
図１８に示すように、パラメータＤＢ１３２ｂは、「利用者ＩＤ」と、「要素ＩＤ」と、「パラメータ」とで示される各情報を対応付けて記憶したデータベースである。利用者ＩＤ、要素ＩＤ及びパラメータは、それぞれ上述した第１実施形態と同じ意味である。本実施形態では、プログラム要素のアルゴリズムに応じてパラメータが一意に定まるので、どの利用者向けのアプリケーションの作成時にも同じパラメータが参照され、また、どの作成者によるアプリケーションの作成時にも同じパラメータが参照される。したがって、パラメータＤＢ１３２ｂの「利用者ＩＤ」のフィールドは「ＡＬＬ」になっていて、全利用者に対応して同一のパラメータが設定されている。
【００６２】
図１９は、アプリケーション作成システム１の機能的構成を示す機能ブロック図である。図１９において、第１実施形態と同等に機能する機能ブロックは同じ符号を付して表しその説明を省略する。
解析部１０８は、プログラム要素ＤＢ１３１に蓄積された各プログラム要素のアルゴリズムを解析する。解析部１０８は、プログラム要素毎の解析結果をパラメータ設定部１０６に供給する。
パラメータ設定部１０６は、パラメータＤＢ１３２において解析部１０８の解析結果に応じたパラメータを設定する。例えば、パラメータ設定部１０６は、解析部１０８の解析結果から、利用が難しく、多くの利用者にとって使い勝手が悪いと推測される機能のプログラム要素については、パラメータの値を大きくするよう設定する。反対に、パラメータ設定部１０６は、解析部１０８の解析結果から、利用が簡単で、多くの利用者にとって使い勝手が良いと推測される機能のプログラム要素については、パラメータの値を小さくするよう設定する。
【００６３】
図２０は、アプリケーション作成システム１の処理の流れを示すシーケンスチャートである。
サーバ装置１０の制御部１１は、新たなプログラム要素がプログラム要素ＤＢ１３１に加えられたとき等の所定のタイミングで、プログラム要素のアルゴリズムを解析する（ステップＳＣ１）。ここで、制御部１１は、例えば、プログラム要素に対応した機能を実現した際の処理内容に関する情報を解析する。具体的には、制御部１１は、画面遷移数や入力項目数、入力部品の種類や入力部品の数、その他利用者が行うべき操作量等の、利用者の使い勝手の良さの指標となるような、予め決められた条件を満たす情報を解析により得る。
【００６４】
次に、制御部１１は、プログラム要素のアルゴリズムの解析結果に従ってパラメータＤＢ１３２においてパラメータを設定する（ステップＳＣ２）。ここで、制御部１１は、例えば画面遷移数や入力項目数、入力部品の種類や入力部品の数、その他利用者が行うべき操作量等が少なくて利用者にとっての扱いが容易であり、利用者にとって使い勝手が良いと推測したプログラム要素については、パラメータの値を小さくする。一方、制御部１１は、画面遷移数や入力項目数、入力部品の種類や入力部品の数、その他利用者が行うべき操作量等が多くて扱いが難しく、利用者にとっての使い勝手が悪いと推測したプログラム要素については、パラメータの値を大きくする。ここでは、制御部１１は、使い勝手の良さ以外の指標でパラメータを設定してもよい。例えば、ユーザによって利便性の高いとみなせる予め決められた条件を満たす解析結果が得られた場合には、制御部１１は、パラメータの値を低くしてもよい。制御部１１が解析結果に応じてどのようなパラメータを設定するかについては、解析結果とパラメータとの関係が予め決められていて、これに従えばよい。
以降、上述した第１実施形態と同様にして、アプリケーション作成システム１ではステップＳＡ１〜ＳＡ１１の処理が実行されてアプリケーションが作成される。
【００６５】
以上説明した第３実施形態によれば、サーバ装置１０は、プログラム要素のアルゴリズム解析の結果からパラメータを設定するので、客観的な視点で利用者の使い勝手の指標となるパラメータを設定することができる。また、上述した第１実施形態のように、十分な利用実績が蓄積されていない状況であっても、本実施形態のアプリケーション作成システム１によれば、利用者にとって使い勝手のよいと思われるプログラムが選択されやすくなる。また、上述した第２実施形態のような作成者にパラメータを指定させるといった手間を強いることもないし、人間による主観がパラメータに反映されないことになる。
【００６６】
［変形例］
本発明は、上述した実施形態と異なる形態で実施することが可能である。本発明は、例えば、以下のような形態で実施することも可能である。また、以下に示す変形例は、各々を適宜に組み合わせてもよい。
［変形例１］
アプリケーション作成システム１では、上述した第１実施形態から第３実施形態におけるプログラム要素の提示方法を組み合わせて、プログラム要素を提示してもよい。要するに、サーバ装置１０は、利用者による利用実績と、他の作成者により指定されたパラメータと、プログラム要素のアルゴリズム解析の結果とを組み合わせてパラメータを設定してもよい。
アプリケーション作成システム１の各装置のハードウェア構成は基本的には上述した第１実施形態から第３実施形態と同じである。
本変形例のアプリケーション作成システム１において、あるプログラム要素についてどのパラメータを用いるかについては、作成者端末２０を用いて作成者により指定されてもよいし、複数の方法で設定したパラメータを統計した結果（例えば、パラメータの平均値）を、最終的なパラメータとしてもよい。また、サーバ装置１０は、第１実施形態から第３実施形態におけるいずれかの方法で規定した提示方法を、それ以外の実施形態の方法で設定したパラメータに応じて変更してもよい。
【００６７】
［変形例２］
上述した第１実施形態で、アプリケーション作成システム１では、利用者毎に個別のパラメータを設定していたが、複数の利用者のパラメータを統計した結果を用いて、複数ユーザで共通のパラメータを設定してもよい。ある利用者にとって使い勝手が良い機能は、他の利用者にとっても使い勝手が良い機能であることは多いし、ある利用者にとって使い勝手が悪い機能は、他の利用者にとっても使い勝手が良い機能であることは悪いと考えられるからである。
【００６８】
［変形例３］
上述した第２実施形態において、作成者端末２０ｂのユーザ（作成者）は利用者毎に個別のパラメータを指定していたが、利用者の指定を省略してもよい。この場合、ある作成者により指定されたパラメータが、互いに異なる複数の利用者向けのアプリケーションの作成時の提示方法に反映される。ある利用者にとって使い勝手が良い機能は、他の利用者にとっても使い勝手が良い機能であることは多いし、ある利用者にとって使い勝手が悪い機能は、他の利用者にとっても使い勝手が良い機能であることは悪いと考えられるからである。
また、上述した第２実施形態において、入力情報はパラメータの値そのものを含んでいたが、入力情報はパラメータの値を指定する情報であれば、他の情報を含んでいてもよい。
【００６９】
［変形例４］
上述した第１実施形態では、サーバ装置１０は、プログラム要素毎に個別のパラメータを設定していたが、あるプログラム要素のパラメータを基に他のプログラム要素のパラメータを設定してもよい。
例えばリマインド機能やアドレス表示機能などの汎用性の高い機能は、複数のテンプレートに組み込まれている場合がある。そこで、このような同一又は類似の機能に対応する複数のプログラム要素については、サーバ装置１０は、一のプログラム要素のパラメータを設定した際に、同一又は類似の機能に対応する他のプログラム要素のパラメータも同じになるように設定してもよい。
なお、同一又は類似と判定する機能（プログラム要素）の関係については、サーバ装置１０において予め決められた設定されその関係が記憶されていればよい。
【００７０】
［変形例５］
上述した各実施形態では、サーバ装置１０は、プログラム要素毎のパラメータを設定していたが、テンプレート毎のパラメータを設定してもよい。テンプレートは、アプリケーションの利用目的に応じて使い分けられるが、テンプレートに予め組み込まれた機能に応じて、テンプレートの使い勝手の良し悪しも決まると考えられるからである。
テンプレートのパラメータは、例えば、その中のプログラム要素のパラメータを統計した結果（例えば、平均値等のパラメータの分布）を用いる等、総合的な判断で設定されてもよいし、他の作成者により設定されてもよいし、プログラム要素のアルゴリズムの解析結果から設定されてもよい。このように、サーバ装置１０は、プログラム要素の集合に対応したテンプレートに対し、利用者に対応した推奨度合いを示すパラメータを設定することも可能である。
また、本発明は、テンプレートを扱うことを必須とするものではなく、プログラム要素を組み合わせてアプリケーションを作成する構成を有していればよい。
【００７１】
［変形例６］
上述した各実施形態では、サーバ装置１０及び作成者端末２０の協働によりアプリケーションを作成していたが、そのために必要な構成要素をすべて作成者端末２０が備えていてもよい。
図２１は、この変形例の作成者端末２０の機能的構成を示す図である。図２１に示すように、作成者端末２０は、提示部１０１と、要素表示部２０１と、作成指示部２０２と、指示受付部１０２と、アプリケーション作成部１０３と、アプリケーション提供部１０４と、パラメータ設定部１０６とに相当する機能を少なくとも実現する。各機能的構成は、上述した各実施形態の同一名称の機能と同等に機能する。パラメータ設定部１０６は、上述した第１〜第３実施形態のいずれかの方法でパラメータを設定すればよい。
本変形例において、作成者端末２０がプログラム要素ＤＢ１３１を有するが、更新データを外部サーバ（図示せず）から受信することでプログラム要素ＤＢ１３１を更新してもよい。また、プログラム要素ＤＢ１３１が外部サーバにあり、作成者端末２０が外部サーバからプログラム要素をダウンロードしてアプリケーションを作成する構成であってもよい。
なお、この変形例においては、作成者端末２０が本発明のアプリケーション作成装置に相当する。
【００７２】
［変形例７］
上述した各実施形態では、サーバ装置１０がプログラム要素の提示に係る構成と、提示結果を用いてアプリケーションを作成する構成との双方を有していたが、それぞれ別の装置が有していてもよい。
図２２は、この変形例のアプリケーション作成システム１の機能的構成を示す図である。図２２に示すように、作成者端末２０の機能的構成は上述した各実施形態と同じであるが、提示部１０１と、パラメータ設定部１０６とに相当する機能を要素提示装置１０ａが実現し、指示受付部１０２と、アプリケーション作成部１０３と、アプリケーション提供部１０４とに相当する機能を作成処理装置１０ｂが実現する。各機能的構成は、上述した各実施形態の同一名称の機能と同等に機能する。パラメータ設定部１０６は、上述した第１〜第３実施形態のいずれかの方法でパラメータを設定すればよい。
この変形例のアプリケーション作成システム１の構成であっても、パラメータＤＢ１３２とプログラム要素ＤＢ１３１とにおける要素ＩＤが共通しているので、上述した各実施形態と同様にしてアプリケーションを作成可能である。
この変形例においては、要素提示装置１０ａ及び作成処理装置１０ｂの協働により本発明のアプリケーション作成装置が構成される。
【００７３】
［変形例８］
また、サーバ装置１０、作成者端末２０及び利用者端末３０のそれぞれが実現する各機能は、複数のプログラムの組み合わせによって実現され、又は、複数のハードウェア資源の協働によって実現されうる。
また、本発明のパラメータは、値が小さいほど推奨度合いが高くなることを示すものに限らず、値が大きいほど推奨度合いが高くなることを示すものであってもよい。
【符号の説明】
【００７４】
１…アプリケーション作成システム、１０…サーバ装置、１０ａ…要素提示装置、１０ｂ…作成処理装置、１０１…提示部、１０２…指示受付部、１０３…アプリケーション作成部、１０４…アプリケーション提供部、１０５…利用実績取得部、１０６…パラメータ設定部、１０７…入力情報取得部、１０８…解析部、１１…制御部、１２…通信部、１３…記憶部、２０，２０ａ，２０ｂ…作成者端末、２０１…要素表示部、２０２…作成指示部、２０３…入力情報受付部、２０４…入力情報送信部、２１，３１…制御部、２２，３２…音声入出力部、２３，３３…無線通信部、２４，３４…ＵＩ部、２５，３５…記憶部、３０…利用者端末、３０１…アプリケーション受信部、３０２…アプリケーション実行部、３０３…利用実績送信部、３５１…利用実績ＤＢ
【図１】
0005654959.tif 000002
【図２】
0005654959.tif 000003
【図３】
0005654959.tif 000004
【図４】
0005654959.tif 000005
【図５】
0005654959.tif 000006
【図６】
0005654959.tif 000007
【図７】
0005654959.tif 000008
【図８】
0005654959.tif 000009
【図９】
0005654959.tif 000010
【図１０】
0005654959.tif 000011
【図１１】
0005654959.tif 000012
【図１２】
0005654959.tif 000013
【図１３】
0005654959.tif 000014
【図１４】
0005654959.tif 000015
【図１５】
0005654959.tif 000016
【図１６】
0005654959.tif 000017
【図１７】
0005654959.tif 000018
【図１８】
0005654959.tif 000019
【図１９】
0005654959.tif 000020
【図２０】
0005654959.tif 000021
【図２１】
0005654959.tif 000022
【図２２】
0005654959.tif 000023