(57)【特許請求の範囲】
【請求項１】
調査員が携帯する携帯端末装置で、複数の調査項目を含む所定の調査内容に基づいて、所定の調査地点で調査を行うための調査プログラムを生成するプログラム生成システムであって、
前記携帯端末装置は、前記調査プログラムを実行したとき、前記所定の調査内容の前記複数の調査項目に対する回答を入力するための複数の入力インターフェースが形成された作業画面を表示する表示部と、自装置の位置情報を取得する位置情報取得部と、対象物を撮影する撮影部と、を含み、
前記携帯端末装置が前記調査プログラムを実行したとき、前記携帯端末装置の前記表示部に表示される前記作業画面上に、前記所定の調査内容の前記複数の調査項目の内容を示す情報を表示するための複数の調査項目指示領域、および前記複数の調査項目に対する回答を入力するための前記複数の入力インターフェースが形成された調査結果入力領域を形成するためのコンポーネント、または、前記携帯端末装置の前記位置情報取得部または前記撮影部を利用することを指定するためのコンポーネントをそれぞれ形成させる前記調査プログラムを作成するために必要な情報をユーザに入力させてパラメータとして受け付けるためのコンポーネント設定領域、前記作業画面に前記調査項目を追加する場合に利用され、前記コンポーネントの複数のタイプの中から、前記作業画面に追加する前記調査項目に適した前記コンポーネントのタイプを前記ユーザに選択させ、選択された前記タイプの前記コンポーネントを追加する指示を受け付けるコンポーネント追加操作ボタン群、および前記ユーザの操作により入力される、前記タイプに応じた前記コンポーネントを形成するために必要な情報を利用してソースコードを生成することを指示するための生成ボタンを有する入力画面を形成する画像情報を生成し、前記コンポーネント追加操作ボタン群が操作される度に、選択された前記タイプに応じた前記コンポーネントを形成するために必要な情報を前記ユーザに入力させて前記パラメータとして受け付けるための前記コンポーネント設定領域がそれぞれ形成される前記入力画面を形成する前記画面情報を保持する画面情報格納部と、
ネットワークを介して接続された設定装置に前記画面情報を提供する提供部と、
前記画面情報に基づいて表示された、前記複数の調査項目に適した複数の前記コンポーネントを前記作業画面に形成するための複数の前記パラメータを入力するための複数の前記コンポーネント設定領域が形成された入力画面に入力されたパラメータを、前記設定装置から前記ネットワークを介して受け付ける受付部と、
前記コンポーネントをそれぞれ形成するためのプログラムコードを、前記コンポーネントのタイプを特定するタイプ情報に対応付けて、前記パラメータを引数とする複数種類のひな形として保持するひな形格納部と、
前記受付部が受け付けた前記複数のパラメータに含まれる複数の前記調査項目に対応する複数の前記コンポーネントの各タイプ情報に基づいて、前記ひな形格納部から複数の前記コンポーネントの前記各タイプ情報に対応する各コンポーネントを形成するための複数のひな形を選択して組み合わせ、各ひな形の前記引数に前記パラメータを設定して、前記調査プログラムのソースコードを生成するとともに、前記ソースコードを生成し終えると、その旨をソースコード完成通知として出力する生成部と、
前記生成部により生成された前記調査プログラムの前記ソースコードをコンパイルして、前記携帯端末装置で実行可能な前記調査プログラムを生成するコンパイル部と、
前記生成部から出力された前記ソースコード完成通知を契機として、そのソースコードをコンパイルすることを前記コンパイル部に指示する指示部と、
を備えることを特徴とするプログラム生成システム。
【請求項２】
前記コンパイル部により生成された前記調査プログラムのサイズが所定のサイズより小さいことを検査し、前記調査プログラムのサイズが所定のサイズより小さい場合、その調査プログラムを前記携帯端末装置に提供可能にする検査部を更に備えることを特徴とする請求の範囲第１項に記載のプログラム生成システム。
【請求項３】
前記調査プログラムのサイズが前記所定のサイズより大きい場合、前記パラメータの数を減らすことを促す通知を前記設定装置に行う通知部を更に備えることを特徴とする請求の範囲第２項に記載のプログラム生成システム。
【請求項４】
前記所定のサイズは、前記調査プログラムを利用する前記携帯端末装置毎に設定されることを特徴とする請求の範囲第２項に記載のプログラム生成システム。
【請求項５】
前記検査部により検査された調査プログラムを格納する第１プログラム格納部と、
前記第１プログラム格納部に格納されている調査プログラムを前記携帯端末装置にネットワークを介して配信して提供するプログラム提供部と、
を更に備え、
前記検査部は、前記コンパイル部が生成した前記調査プログラムのサイズが所定のサイズより小さい場合、その調査プログラムを前記第１プログラム格納部に格納することを特徴とする請求の範囲第２項に記載のプログラム生成システム。
【請求項６】
前記画面情報格納部が、前記調査項目を削除するために、前記調査項目に対応する前記コンポーネント設定領域を削除する操作を受け付け、対応する前記コンポーネント設定領域を削除する調査項目削除コンポーネントを前記入力画面に形成するための画像情報をさらに保持し、
前記プログラム生成システムは、
前記設定装置に、前記パラメータの種類にプログラムサイズを対応付けたテーブルを保持させるとともに、
前記設定装置に、前記テーブルを参照して、前記設定装置が受け付けた前記複数のパラメータの前記種類に対応する前記プログラムサイズを特定して、加算して、前記調査プログラムのサイズを推定させ、
前記設定装置に、推定された前記調査プログラムのサイズが、前記所定のサイズより大きい場合、前記調査項目の数を減らす必要があると判定させ、前記所定のサイズより小さい場合、前記調査項目の数を減らす必要がないと判定させ、
前記調査項目の数を減らす必要があると判定された場合、前記調査プログラムのサイズが所定のサイズより小さくなるように、前記設定装置に、前記パラメータの出力を前記生成部に許可せず、再度、前記入力画面に入力された情報を前記パラメータとして受け付け、前記推定および前記判定を繰り返させ、
前記調査項目の数を減らす必要がないと判定された場合、前記設定装置に、受け付けた前記パラメータを出力させる制限部を、前記設定装置に形成させる検査プログラムを保持する第２プログラム格納部を更に備え、
前記提供部は、前記画像情報格納部が保持する前記画面情報とともに前記検査プログラムを前記設定装置に提供することを特徴とする請求の範囲第１項に記載のプログラム生成システム。
【請求項７】
さらに、前記設定装置を有し、
前記設定装置が、
前記提供部から、前記画像情報を、ネットワークを介して取得する取得部と、
前記画面情報に基づいて、前記複数の調査項目に適した複数の前記コンポーネントを前記作業画面に形成するための複数の前記パラメータを入力するための複数の前記コンポーネント設定領域が形成された前記入力画面を表示部に表示する表示処理部と、
前記入力画面を介して前記ユーザの操作により入力された情報を、前記作業画面を形成するための複数のパラメータとして管理し、前記生成ボタンの操作を受け付けたとき、前記入力画面に形成された複数の前記調査項目に対応する複数の前記コンポーネント設定領域に入力された複数の前記コンポーネントを形成するために必要な複数の前記パラメータを、対応する複数の前記コンポーネントの前記タイプを特定するタイプ情報とそれぞれ関連付けて出力する管理部と、
前記管理部が管理しているパラメータを、前記受付部に前記ネットワークを介して出力する送信部と、を備えることを特徴とする請求の範囲第６項に記載のプログラム生成システム。
【請求項８】
前記設定装置の前記取得部が、前記提供部から前記検査プログラムを、前記ネットワークを介して取得し、前記制限部を形成し、
前記設定装置の前記送信部は、前記設定装置の前記制限部による制限内のパラメータを前記受付部に出力することを特徴とする請求の範囲第７項に記載のプログラム生成システム。
【請求項９】
前記設定装置は、
前記パラメータの数を制限する必要がある場合、前記パラメータの数を減らすことを促すメッセージを前記表示部に表示させるよう前記表示処理部に通知を行う通知部を更に備えることを特徴とする請求の範囲第８項に記載のプログラム生成システム。
【請求項１０】
前記設定装置の前記管理部は、前記調査項目ごとに前記コンポーネントの前記パラメータをグループ化し、一調査項目に対応する一グループのパラメータを前記作業画面の一ページを形成するためのパラメータ群とし、前記調査項目ごとにグループ化された前記パラメータ群を、前記調査項目ごとに分けて保持して管理し、
前記提供部が、前記管理部が受け付けた前記パラメータ群の数に基づいて、前記調査項目の数を減らす必要があるか否かを判定する前記制限部を前記設定装置に形成させる前記検査プログラムを、前記設定装置に提供することを特徴とする請求の範囲第８項に記載のプログラム生成システム。
【請求項１１】
前記提供部が、前記管理部が管理しているパラメータの数と予め設定された数とを比較して、前記調査項目の数を減らす必要があるか否かを判定する前記制限部を前記設定装置に形成させる前記検査プログラムを、前記設定装置に提供することを特徴とする請求の範囲第９項に記載のプログラム生成システム。
【請求項１２】
前記提供部が、前記管理部が管理しているパラメータの数が、前記予め設定された数より多い場合、前記調査項目の数を減らす必要があると判定する前記制限部を前記設定装置に形成させる前記検査プログラムを、前記設定装置に提供することを特徴とする請求の範囲第１１項に記載のプログラム生成システム。
【請求項１３】
調査員が携帯する携帯端末装置で、複数の調査項目を含む所定の調査内容に基づいて、所定の調査地点で調査を行うための調査プログラムを生成するプログラム生成プログラムであって、
前記携帯端末装置は、前記調査プログラムを実行したとき、前記所定の調査内容の前記複数の調査項目に対する回答を入力するための複数の入力インターフェースが形成された作業画面を表示する表示部と、自装置の位置情報を取得する位置情報取得部と、対象物を撮影する撮影部と、を含み、
前記携帯端末装置が前記調査プログラムを実行したとき、前記携帯端末装置の前記表示部に表示される前記作業画面上に、前記所定の調査内容の前記複数の調査項目の内容を示す情報を表示するための複数の調査項目指示領域、および前記複数の調査項目に対する回答を入力するための前記複数の入力インターフェースが形成された調査結果入力領域を形成するためのコンポーネント、または、前記携帯端末装置の前記位置情報取得部または前記撮影部を利用することを指定するためのコンポーネントをそれぞれ形成させる前記調査プログラムを作成するために必要な情報をユーザに入力させてパラメータとして受け付けるためのコンポーネント設定領域、前記作業画面に前記調査項目を追加する場合に利用され、前記コンポーネントの複数のタイプの中から、前記作業画面に追加する前記調査項目に適した前記コンポーネントのタイプを前記ユーザに選択させ、選択された前記タイプの前記コンポーネントを追加する指示を受け付けるコンポーネント追加操作ボタン群、および前記ユーザの操作により入力される、前記タイプに応じた前記コンポーネントを形成するために必要な情報を利用してソースコードを生成することを指示するための生成ボタンを有する入力画面を形成する画像情報を生成し、前記コンポーネント追加操作ボタン群が操作される度に、選択された前記タイプに応じた前記コンポーネントを形成するために必要な情報を前記ユーザに入力させて前記パラメータとして受け付けるための前記コンポーネント設定領域がそれぞれ形成される前記入力画面を形成する前記画面情報を保持する画面情報格納部と、
前記コンポーネントをそれぞれ形成するためのプログラムコードを、前記コンポーネントのタイプを特定するタイプ情報に対応付けて、前記パラメータを引数とする複数種類のひな形として保持するひな形格納部と、を備えたコンピュータに、
ネットワークを介して接続された設定装置に前記画面情報を提供する提供部と、
前記画面情報に基づいて表示された入力画面に入力されたパラメータを、前記設定装置から前記ネットワークを介して受け付ける受付部と、
前記受付部が受け付けた前記複数のパラメータに含まれる複数の前記調査項目に対応する複数の前記コンポーネントの各タイプ情報に基づいて、前記ひな形格納部から複数の前記コンポーネントの前記各タイプ情報に対応する各コンポーネントを形成するための複数のひな形を選択して組み合わせ、各ひな形の前記引数に前記パラメータを設定して、前記調査プログラムのソースコードを生成するとともに、前記ソースコードを生成し終えると、その旨をソースコード完成通知として出力する生成部と、
前記生成部により生成された前記調査プログラムの前記ソースコードをコンパイルして、前記携帯端末装置で実行可能な前記調査プログラムを生成するコンパイル部と、
前記生成部から出力された前記ソースコード完成通知を契機として、そのソースコードをコンパイルすることを前記コンパイル部に指示する指示部と、
を実現させるためのプログラム生成プログラム。
【請求項１４】
請求の範囲第１項乃至１２項のいずれかに記載のプログラム生成システムの前記設定装置を実現するためのプログラム生成プログラムであって、
前記プログラム生成システムの前記提供部から、前記画面情報を、ネットワークを介して取得する取得部と、
前記画面情報に基づいて、前記複数の調査項目に適した複数の前記コンポーネントを前記作業画面に形成するための複数の前記パラメータを入力するための複数の前記コンポーネント設定領域が形成された前記入力画面を表示部に表示する表示処理部と、
前記入力画面を介して前記ユーザの操作により入力された情報を、前記作業画面を形成するための複数のパラメータとして管理し、前記生成ボタンの操作を受け付けたとき、前記入力画面に形成された複数の前記調査項目に対応する複数の前記コンポーネント設定領域に入力された複数の前記コンポーネントを形成するために必要な複数の前記パラメータを、対応する複数の前記コンポーネントの前記タイプを特定するタイプ情報とそれぞれ関連付けて出力する管理部と、
前記管理部が管理しているパラメータを、前記プログラム生成システムの前記受付部に前記ネットワークを介して出力する送信部と、
をコンピュータに実現させるためのプログラム生成プログラム。
【請求項１５】
前記プログラム提供部は、前記携帯端末装置からの要求に応じて前記調査プログラムを前記携帯端末装置に提供することを特徴とする請求の範囲第５項に記載のプログラム生成システム。
【請求項１６】
前記プログラム提供部は、前記調査プログラムを提供する際に、前記携帯端末装置に固有に割り当てられている識別情報により、前記調査員の認証を行い、認証に成功した場合に、前記調査プログラムを前記携帯端末装置に提供することを特徴とする請求の範囲第５項に記載のプログラム生成システム。
【請求項１７】
前記画像情報格納部が、
前記作業画面の前記調査項目指示領域に、前記調査内容を前記調査員に伝えるための前記調査内容を表す調査内容文字列と、その調査内容に関連する画像と、を表示させるために、
前記コンポーネント設定領域にて、前記調査内容文字列、および前記画像を前記ユーザに指定させる前記入力画面を形成する画像情報をさらに保持することを特徴とする請求の範囲第１項に記載のプログラム生成システム。
【請求項１８】
前記画像情報格納部が、
前記作業画面の前記調査項目指示領域に表示させる前記画像として、商品の外観、前記調査内容に含まれる専門用語の説明のための画像を、前記コンポーネント設定領域にて、前記ユーザに指定させる前記入力画面を形成する画像情報をさらに保持することを特徴とする請求の範囲第１７項に記載のプログラム生成システム。
【請求項１９】
前記入力インターフェースを形成するためのコンポーネントは、テキスト入力をするためのテキストボックス、複数の選択肢の中からひとつの回答を選択可能なラジオボタン、および複数の選択肢の中から任意の数の回答を選択可能なチェックボックスを含むことを特徴とする請求の範囲第１８項に記載のプログラム生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、プログラムを生成する技術に関し、とくにユーザが直接的にソースコードを入力することなくプログラムを生成する技術に関する。
【背景技術】
【０００２】  コンピュータは、今や日常生活に欠かすことのできないものになっている。コンピュータは、例えば端末装置、携帯電話、家庭電化製品など種々の装置に搭載され、それらの装置が有するハードウエアを適切に制御し、所定の機能を実現する。例えば、端末装置は、企業では業務管理のために利用され、研究機関では実験結果の解析のために利用され、個人レベルでは電子メールの送受信やウェブページの閲覧のために利用される。一般に、コンピュータを利用して所定の機能を実現するためには、プログラムをコンピュータで実行する必要がある。【０００３】  そうしたプログラムを作成するためには、高い専門知識が必要である。例えばＣ言語、Ｃ＋＋言語、ＪＡＶＡ（登録商標）などのプログラミング言語でソースプログラムを作成し、それをコンパイラでコンパイルすることで、コンピュータで実行可能なマシン語のプログラムが作られる。こうしたソースプログラムを、表形式のプログラム仕様書に基づいて自動的に生成する技術がある（特許文献１参照）。
【特許文献１】特開２００３−２０８３０７号公報
【発明の開示】
【０００４】
【０００５】  コンピュータの普及や、コンピュータの利用分野の多様化にともない、プログラムの必要数は年々増加している。さらに、そうしたプログラムの開発期間も短縮される傾向にある。しかしながら、慢性的なプログラマーの不足、プログラム技術の急速な発達、プログラムを実行する装置の急速な発達などにより、必要な時にプログラムの供給を受けることができないことが多々生じる。
【０００６】  本発明の目的は、プログラムの開発期間を短くする技術、プログラムの開発に必要な労力を減らす技術、プログラムを容易に作成する技術を提供することにある。
【０００７】
本発明のある態様は、プログラムを生成するシステムである。このシステムは、調査員が携帯する携帯端末装置で、複数の調査項目を含む所定の調査内容に基づいて、所定の調査地点で調査を行うための調査プログラムを生成するプログラム生成システムであって、
前記携帯端末装置は、前記調査プログラムを実行したとき、前記所定の調査内容の前記複数の調査項目に対する回答を入力するための複数の入力インターフェースが形成された作業画面を表示する表示部と、自装置の位置情報を取得する位置情報取得部と、対象物を撮影する撮影部と、を含み、
前記携帯端末装置が前記調査プログラムを実行したとき、前記携帯端末装置の前記表示部に表示される前記作業画面上に、前記所定の調査内容の前記複数の調査項目の内容を示す情報を表示するための複数の調査項目指示領域、および前記複数の調査項目に対する回答を入力するための前記複数の入力インターフェースが形成された調査結果入力領域を形成するためのコンポーネント、または、前記携帯端末装置の前記位置情報取得部または前記撮影部を利用することを指定するためのコンポーネントをそれぞれ形成させる前記調査プログラムを作成するために必要な情報をユーザに入力させてパラメータとして受け付けるためのコンポーネント設定領域、前記作業画面に前記調査項目を追加する場合に利用され、前記コンポーネントの複数のタイプの中から、前記作業画面に追加する前記調査項目に適した前記コンポーネントのタイプを前記ユーザに選択させ、選択された前記タイプの前記コンポーネントを追加する指示を受け付けるコンポーネント追加操作ボタン群、および前記ユーザの操作により入力される、前記タイプに応じた前記コンポーネントを形成するために必要な情報を利用してソースコードを生成することを指示するための生成ボタンを有する入力画面を形成する画像情報を生成し、前記コンポーネント追加操作ボタン群が操作される度に、選択された前記タイプに応じた前記コンポーネントを形成するために必要な情報を前記ユーザに入力させて前記パラメータとして受け付けるための前記コンポーネント設定領域がそれぞれ形成される前記入力画面を形成する前記画面情報を保持する画面情報格納部と、
ネットワークを介して接続された設定装置に前記画面情報を提供する提供部と、
前記画面情報に基づいて表示された、前記複数の調査項目に適した複数の前記コンポーネントを前記作業画面に形成するための複数の前記パラメータを入力するための複数の前記コンポーネント設定領域が形成された入力画面に入力されたパラメータを、前記設定装置から前記ネットワークを介して受け付ける受付部と、
前記コンポーネントをそれぞれ形成するためのプログラムコードを、前記コンポーネントのタイプを特定するタイプ情報に対応付けて、前記パラメータを引数とする複数種類のひな形として保持するひな形格納部と、
前記受付部が受け付けた前記複数のパラメータに含まれる複数の前記調査項目に対応する複数の前記コンポーネントの各タイプ情報に基づいて、前記ひな形格納部から複数の前記コンポーネントの前記各タイプ情報に対応する各コンポーネントを形成するための複数のひな形を選択して組み合わせ、各ひな形の前記引数に前記パラメータを設定して、前記調査プログラムのソースコードを生成するとともに、前記ソースコードを生成し終えると、その旨をソースコード完成通知として出力する生成部と、
前記生成部により生成された前記調査プログラムの前記ソースコードをコンパイルして、前記携帯端末装置で実行可能な前記調査プログラムを生成するコンパイル部と、
前記生成部から出力された前記ソースコード完成通知を契機として、そのソースコードをコンパイルすることを前記コンパイル部に指示する指示部と、
を備える。
【０００８】  これにより、ネットワークを介して受け付けたパラメータに基づいて、ソースコードを生成できる。そして、そのソースコードが完成したことを契機にコンパイルすることにより自動的に第１プログラムを作成できる。つまり、ユーザがウェブブラウザを利用して、パラメータを入力すれば、自動的にソースの生成、およびコンパイルを行い所定のプログラムを作成できる。また、ネットワークを介して、パラメータを受け付けることができるので、複数のユーザが利用することができ、更に遠隔のユーザも同様に利用することができる。
【０００９】
このシステムはコンパイル部により生成された調査プログラムのサイズが所定のサイズより小さいことを検査し、調査プログラムのサイズが所定のサイズより小さい場合、その調査プログラムを携帯端末装置に提供可能にする検査部を更に備えてもよい。これにより、プログラム生成システムは、所定のサイズより小さい調査プログラムを携帯端末装置に提供でき、例えば実行できるプログラムのサイズに制限が設定されている携帯端末装置に対しても、その制限を満たすプログラムを提供できる。
【００１０】
このシステムは、調査プログラムのサイズが所定のサイズより大きい場合、パラメータの数を減らすことを促す通知を設定装置に行う通知部を更に備えてもよい。これにより、ユーザが調査プログラムのサイズが所定のサイズより大きいことを把握できる。そして、サイズが大きいことを認識したうえで、パラメータの数を変更することにより、プログラムのサイズが所定のサイズより小さくなるように調査プログラムを生成できる。
【００１１】
所定のサイズは、調査プログラムを利用する携帯端末装置毎に設定されてよい。これにより、携帯端末装置ごとのプログラムの実行条件に合わせて調査プログラムを生成できる。
【００１２】
このシステムは、検査部により検査された調査プログラムを格納する第１プログラム格納部と、第１プログラム格納部に格納されている調査プログラムを携帯端末装置にネットワークを介して配信して提供するプログラム提供部とを更に備え、検査部は、コンパイル部が生成した調査プログラムのサイズが所定のサイズより小さい場合、その調査プログラムを第１プログラム格納部に格納してもよい。これにより、生成した調査プログラムを携帯端末装置に提供できる状態になる。
【００１３】
上記システムにおいて、画面情報格納部が、調査項目を削除するために、調査項目に対応するコンポーネント設定領域を削除する操作を受け付け、対応するコンポーネント設定領域を削除する調査項目削除コンポーネントを入力画面に形成するための画像情報をさらに保持することができる。
このシステムは、設定装置に、パラメータの種類にプログラムサイズを対応付けたテーブルを保持させるとともに、設定装置に、テーブルを参照して、設定装置が受け付けた複数のパラメータの種類に対応するプログラムサイズを特定して、加算して、調査プログラムのサイズを推定させ、設定装置に、推定された調査プログラムのサイズが、所定のサイズより大きい場合、調査項目の数を減らす必要があると判定させ、所定のサイズより小さい場合、調査項目の数を減らす必要がないと判定させ、調査項目の数を減らす必要があると判定された場合、調査プログラムのサイズが所定のサイズより小さくなるように、設定装置に、パラメータの出力を生成部に許可せず、再度、入力画面に入力された情報をパラメータとして受け付け、推定および判定を繰り返させ、調査項目の数を減らす必要がないと判定された場合、設定装置に、受け付けた前記パラメータを出力させる制限部を、設定装置に形成させる検査プログラムを保持する第２プログラム格納部を更に備え、提供部は、画像情報格納部が保持する画面情報とともに検査プログラムを設定装置に提供してもよい。これにより、設定装置側でパラメータの数を調整できるので、効率的なプログラムの生成が可能になる。
【００１４】
このシステムは、さらに、上記設定装置を有することができる。この設定装置が、提供部から、画像情報を、ネットワークを介して取得する取得部と、画面情報に基づいて、複数の調査項目に適した複数のコンポーネントを作業画面に形成するための複数のパラメータを入力するための複数のコンポーネント設定領域が形成された入力画面を表示部に表示する表示処理部と、入力画面を介してユーザの操作により入力された情報を、画面を形成するための複数のパラメータとして管理し、前記生成ボタンの操作を受け付けたとき、入力画面に形成された複数の調査項目に対応する複数のコンポーネント設定領域に入力された複数のコンポーネントを形成するために必要な複数のパラメータを、対応する複数のコンポーネントのタイプを特定するタイプ情報とそれぞれ関連付けて出力する管理部と、管理部が管理しているパラメータを、受付部にネットワークを介して出力する送信部と、を備えることができる。これにより、このシステムをネットワークに接続された複数の装置から利用できる。
【００１５】
このシステムは、設定装置の取得部が、提供部から検査プログラムを、ネットワークを介して取得し、制限部を形成し、設定装置の送信部は、設定装置の制限部による制限内のパラメータを受付部に出力してもよい。これにより、受付部にパラメータを送信する前に、パラメータの数を調整できるので、効率的なプログラムの生成ができる。
【００１６】
このシステムにおいて、設定装置は、パラメータの数を制限する必要がある場合、パラメータの数を減らすことを促すメッセージを表示部に表示させるよう表示処理部に通知を行う通知部を更に備えてもよい。
【００１７】
設定装置の管理部は、調査項目ごとにコンポーネントのパラメータをグループ化し、一調査項目に対応する一グループのパラメータを作業画面の一ページを形成するためのパラメータ群とし、調査項目ごとにグループ化されたパラメータ群を、調査項目ごとに分けて保持して管理し、提供部が、管理部が受け付けた前記パラメータ群の数に基づいて、調査項目の数を減らす必要があるか否かを判定する制限部を設定装置に形成させる検査プログラムを、設定装置に提供してもよい。
【００２０】
このシステムにおいて、提供部が、管理部が管理しているパラメータの数と予め設定された数とを比較して、調査項目の数を減らす必要があるか否かを判定する制限部を設定装置に形成させる検査プログラムを、設定装置に提供してもよい。
【００２１】
このシステムにおいて、提供部が、管理部が管理しているパラメータの数が、予め設定された数より多い場合、調査項目の数を減らす必要があると判定する制限部を設定装置に形成させる検査プログラムを、設定装置に提供してもよい。
上記プログラム生成システムにおいて、前記プログラム提供部は、前記携帯端末装置からの要求に応じて前記調査プログラムを前記携帯端末装置に提供することができる。
上記プログラム生成システムにおいて、前記プログラム提供部は、前記調査プログラムを提供する際に、前記携帯端末装置に固有に割り当てられている識別情報により、前記調査員の認証を行い、認証に成功した場合に、前記調査プログラムを前記携帯端末装置に提供することができる。
上記プログラム生成システムにおいて、画像情報格納部が、作業画面の前記調査項目指示領域に、前記調査内容を前記調査員に伝えるための前記調査内容を表す調査内容文字列と、その調査内容に関連する画像と、を表示させるために、コンポーネント設定領域にて、調査内容文字列、および画像をユーザに指定させる入力画面を形成する画像情報をさらに保持することができる。
上記プログラム生成システムにおいて、画像情報格納部が、調査項目指示領域に表示させる画像として、商品の外観、前記調査内容に含まれる専門用語の説明のための画像を、コンポーネント設定領域にて、ユーザに指定させる入力画面を形成する画像情報をさらに保持することができる。
上記プログラム生成システムにおいて、前記入力インターフェースを形成するためのコンポーネントは、テキスト入力をするためのテキストボックス、複数の選択肢の中からひとつの回答を選択可能なラジオボタン、および複数の選択肢の中から任意の数の回答を選択可能なチェックボックスを含むことができる。
【００２２】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。たとえば、本発明は以下の態様をも含む。
(i)  調査員が携帯する携帯端末装置で、複数の調査項目を含む所定の調査内容に基づいて、所定の調査地点で調査を行うための調査プログラムを生成するプログラム生成プログラムであって、
前記携帯端末装置は、前記調査プログラムを実行したとき、前記所定の調査内容の前記複数の調査項目に対する回答を入力するための複数の入力インターフェースが形成された作業画面を表示する表示部と、自装置の位置情報を取得する位置情報取得部と、対象物を撮影する撮影部と、を含み、
前記携帯端末装置が前記調査プログラムを実行したとき、前記携帯端末装置の前記表示部に表示される前記作業画面上に、前記所定の調査内容の前記複数の調査項目の内容を示す情報を表示するための複数の調査項目指示領域、および前記複数の調査項目に対する回答を入力するための前記複数の入力インターフェースが形成された調査結果入力領域を形成するためのコンポーネント、または、前記携帯端末装置の前記位置情報取得部または前記撮影部を利用することを指定するためのコンポーネントをそれぞれ形成させる前記調査プログラムを作成するために必要な情報をユーザに入力させてパラメータとして受け付けるためのコンポーネント設定領域、前記作業画面に前記調査項目を追加する場合に利用され、前記コンポーネントの複数のタイプの中から、前記作業画面に追加する前記調査項目に適した前記コンポーネントのタイプを前記ユーザに選択させ、選択された前記タイプの前記コンポーネントを追加する指示を受け付けるコンポーネント追加操作ボタン群、および前記ユーザの操作により入力される、前記タイプに応じた前記コンポーネントを形成するために必要な情報を利用してソースコードを生成することを指示するための生成ボタンを有する入力画面を形成する画像情報を生成し、前記コンポーネント追加操作ボタン群が操作される度に、選択された前記タイプに応じた前記コンポーネントを形成するために必要な情報を前記ユーザに入力させて前記パラメータとして受け付けるための前記コンポーネント設定領域がそれぞれ形成される前記入力画面を形成する前記画面情報を保持する画面情報格納部と、
前記コンポーネントをそれぞれ形成するためのプログラムコードを、前記コンポーネントのタイプを特定するタイプ情報に対応付けて、前記パラメータを引数とする複数種類のひな形として保持するひな形格納部と、を備えたコンピュータに、
ネットワークを介して接続された設定装置に前記画面情報を提供する提供部と、
前記画面情報に基づいて表示された入力画面に入力されたパラメータを、前記設定装置から前記ネットワークを介して受け付ける受付部と、
前記受付部が受け付けた前記複数のパラメータに含まれる複数の前記調査項目に対応する複数の前記コンポーネントの各タイプ情報に基づいて、前記ひな形格納部から複数の前記コンポーネントの前記各タイプ情報に対応する各コンポーネントを形成するための複数のひな形を選択して組み合わせ、各ひな形の前記引数に前記パラメータを設定して、前記調査プログラムのソースコードを生成するとともに、前記ソースコードを生成し終えると、その旨をソースコード完成通知として出力する生成部と、
前記生成部により生成された前記調査プログラムの前記ソースコードをコンパイルして、前記携帯端末装置で実行可能な前記調査プログラムを生成するコンパイル部と、
前記生成部から出力された前記ソースコード完成通知を契機として、そのソースコードをコンパイルすることを前記コンパイル部に指示する指示部と、
を実現させるためのプログラム生成プログラム。
(ii)  上記プログラム生成システムの前記設定装置を実現するためのプログラム生成プログラムであって、
前記プログラム生成システムの前記提供部から、前記画面情報を、ネットワークを介して取得する取得部と、
前記画面情報に基づいて、前記複数の調査項目に適した複数の前記コンポーネントを前記作業画面に形成するための複数の前記パラメータを入力するための複数の前記コンポーネント設定領域が形成された前記入力画面を表示部に表示する表示処理部と、
前記入力画面を介して前記ユーザの操作により入力された情報を、前記作業画面を形成するための複数のパラメータとして管理し、前記生成ボタンの操作を受け付けたとき、前記入力画面に形成された複数の前記調査項目に対応する複数の前記コンポーネント設定領域に入力された複数の前記コンポーネントを形成するために必要な複数の前記パラメータを、対応する複数の前記コンポーネントの前記タイプを特定するタイプ情報とそれぞれ関連付けて出力する管理部と、
前記管理部が管理しているパラメータを、前記プログラム生成システムの前記受付部に前記ネットワークを介して出力する送信部と、
をコンピュータに実現させるためのプログラム生成プログラム。
【００２３】  以上、本発明によれば、パラメータに基づいてソースコードを生成し、そのソースコードをコンパイルすることにより所定のプログラムを生成することにより、ユーザが直接ソースコードを入力しなくても所定のプログラムを生成する技術を提供できる。
【図面の簡単な説明】
【００２４】  上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。【００２５】
【図１】本実施の形態に係る調査システムの構成図である。
【図２】図１の表示部に表示される作業画面の遷移の一例を示す図である。
【図３】図１のプログラム生成装置の内部構成図である。
【図４】図１の設定装置の内部構成図である。
【図５】図４の表示部に表示される入力画面の一例を示す図である。
【図６】図４のパラメータ管理部が制限部に出力するパラメータファイルのデータ構造の一例を示す図である。
【図７】図１のプログラム提供装置の内部構成図である。
【図８】図１の解析装置の内部構成図である。
【図９】図３のプログラム生成装置と図４の設定装置とによる調査プログラム生成処理のフローチャートの一例である。
【発明を実施するための最良の形態】
【００２６】  図１は、本実施の形態に係る調査システム１０の構成図である。第１端末装置５０ａ、第２端末装置５０ｂ、第３端末装置５０ｃ、および第４端末装置５０ｄ（以下、単に「端末装置５０」という）は、例えば、携帯電話やＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）などの携帯可能な端末である。また端末装置５０は、プログラムの実行条件としてプログラムのデータサイズに上限が定められており、メモリサイズが一般的な端末と比較して小さい装置であってよい。端末装置５０は、例えばＧＰＳ衛星１６からＧＰＳ信号を受信して位置情報を取得するＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）ユニット、ＣＣＤカメラ、マイクなどを有する。また、それぞれの端末装置５０は、基地局１４を介してネットワーク１２に接続し、プログラム提供装置２００および解析装置３００と通信を行う機能を有する。【００２７】  プログラム生成装置１００は、調査内容を端末装置５０の表示部５２に表示させ、調査結果を受け付けるためのプログラムを生成し、プログラム提供装置２００に格納する。第１設定装置５００ａおよび第２設定装置５００ｂ（以下、単に「設定装置５００」という）は、ネットワーク１２を介してプログラム生成装置１００と接続する。設定装置５００は、プログラム生成装置１００がプログラムを生成するために必要な種々の情報をユーザから受け付け、各パラメータをプログラム生成装置１００に出力する。プログラム生成装置１００は、そのパラメータに基づいてプログラムを生成し、プログラム提供装置２００に出力する。具体的には、プログラム生成装置１００は、プログラムを生成するために必要なパラメータを入力する入力画面を形成するための情報（以下、単に「入力画面情報」という）を設定装置５００に提供する。設定装置５００は、その入力画面情報に基づいて入力画面を形成し、その画面を介してユーザから各パラメータを受け付ける。【００２８】  そして、プログラム提供装置２００は、ネットワーク１２を介して、そのプログラムを端末装置５０に提供する。つまり、プログラム生成装置１００は、ＡＳＰ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）としてプログラム作成機能を提供し、ネットワーク１２に接続された設定装置５００から利用できるように形成されている。【００２９】  調査員は、そのプログラムを実行することにより表示部５２に表示された調査内容に基づいて調査を行う。例えば、調査員は、指定された調査地点まで端末装置５０を所持して移動し、その場で調査を行う。端末装置５０は、その移動地点の位置情報（以下、単に「調査位置情報」という）を、ＧＰＳユニットを利用して取得する。その取得指示は、調査員の指示に基づいて行われてもよいし、端末装置５０内部のプログラムにより自動的に行われてもよいし、その他外部からの信号に基づいて行われてもよい。調査員は、端末装置５０のＣＣＤカメラを利用して指定された対象物を撮影したり、調査内容に沿った事項を、例えばキーボタンなどの操作部５４を利用して端末装置５０に入力したりする。【００３０】  これらの調査位置情報、画像、およびその他の調査員に直接的に入力された情報以外��端末装置５０が取得する情報は、調査結果として利用されるだけでなく、調査結果の信頼性を判断するための情報として利用される。つまり、端末装置５０が有するＧＰＳ、ＣＣＤカメラ、マイクなどから得られるデータは、一般的には調査員が任意に書き換えることが出来ないので、調査結果の信頼性を保証するための情報として利用できる。端末装置５０は、調査員に入力された事項、および各デバイスで得られた画像、調査位置情報などを調査結果として解析装置３００に送信する。解析装置３００は、調査結果を収集し、それぞれの調査結果の信頼性を判断した後、所定の解析を行う。このように、解析装置３００は、複数の端末装置５０から調査位置情報の対応付けられた調査結果を収集する。【００３１】  図２は、図１の表示部５２に表示される作業画面４００の遷移の一例を示す図である。プログラムを実行することにより、図１の表示部５２には、まず第１作業画面４００ａが表示され、第２作業画面４００ｂ、第３作業画面４００ｃ、第４作業画面４００ｄ、第５作業画面４００ｅ、および第６作業画面４００ｆの順に表示される。第１作業画面４００ａは、タイトル領域４０２、入力開始ボタン４０４、およびデータ送信ボタン４０６を有する。タイトル領域４０２は、例えば調査名などを表示するための領域であり、作業画面４００の上部に表示される。【００３２】  作業画面４００は、調査内容を示す情報を表示するための調査項目指示領域４４０と、その調査内容に対する調査結果を調査員が入力するための調査結果入力領域４４２とを含む。詳細は後述するが、調査内容を明確に調査員に伝えるために、調査項目指示領域４４０には、例えば調査内容を表す調査内容文字列４３４や、その調査内容に関連する例えば商品の外観や、調査内容に含まれる専門用語の説明のための画像４２０が含まれる。また調査結果入力領域４４２には、後述するテキストボックス、ラジオボタン、チェックボックスなどのコンポーネントが含まれ、回答を効率的かつ正確に行うために、例えば選択肢の中から回答を選択できるように形成される。【００３３】  入力開始ボタン４０４は、調査を開始するための指示を受け付けるボタンである。入力開始ボタン４０４を選択することにより、調査項目が表示部５２に表示される。ここで、調査内容は、複数の調査項目により構成されている。データ送信ボタン４０６は、各調査項目に対する回答を完了した後、その回答を調査結果として図１の解析装置３００に送信するためのボタンである。データ送信ボタン４０６を押下すなわち選択することにより、調査結果が解析装置３００に送信される。【００３４】  第２作業画面４００ｂは、入力開始ボタン４０４を押下すると表示される。本実施の形態では、調査項目毎にページが設けられ、その調査項目に適した回答入力用のコンポーネントが配置される。ページ番号領域４０８は、そのページ番号を表示する領域である。回答内容文字列４１０は、後述のテキスト入力領域４１２に入力する回答内容を示す文字列を表示する領域である。テキスト入力領域４１２は、回答を入力するためのテキストボックスであり、任意の文字列を入力することができる。また、第４作業画面４００ｄのラジオボタン群４２２は、予め用意された選択肢からひとつ回答を選択するためのコンポーネントである。また、図示していないが、予め用意された選択肢の中から任意の数の回答を選択するためのチェックボックスが、調査結果入力領域４４２に設けられてもよい。【００３５】  第２作業画面４００ｂに戻り、次画面表示ボタン４１４ａは、次の調査項目に進むためのボタンであり、このボタンを押下することにより作業画面４００が切り替わる。第２作業画面４００ｂの次画面表示ボタン４１４ａを押下すると、第３作業画面４００ｃが表示される。このとき端末装置５０は、ＧＰＳユニットを利用して位置情報を取得している。位置情報の取得が完了すると、第４作業画面４００ｄが表示される。第４作業画面４００ｄの調査項目に回答し、第４作業画面４００ｄの次画面表示ボタン４１４ｂを押下すると、第５作業画面４００ｅが表示される。このように作業画面４００を順次切り替えながら、調査員は一連の調査項目に回答を入力する。【００３６】  第５作業画面４００ｅの撮影開始ボタン４３０は、図１の端末装置５０が有するＣＣＤカメラを利用して撮影を行うためのボタンである。撮影開始ボタン４３０を押下することにより、ＣＣＤカメラがアクティブになり、撮影可能となる。このように、図１のプログラム提供装置２００が提供するプログラムは、端末装置５０が有するＧＰＳユニットやＣＣＤカメラなどのハードウエアを利用して得たデータを調査結果とすることができるようにコーディングされている。【００３７】  本図では最後の作業画面４００になる第６作業画面４００ｆは、保存ボタン４３２を有する。保存ボタン４３２は、各作業画面４００で入力した回答を保存するためのボタンである。保存ボタン４３２を押下することにより、端末装置５０の記憶領域に調査結果として保存される。そして、調査員が第１作業画面４００ａのデータ送信ボタン４０６を選択すると、端末装置５０は、保存中の調査結果を図１の解析装置３００に送信する。【００３８】  このように、調査結果を保存した後、送信する形態にすることにより、例えば電波が届かない場所で調査を行い、電波の届く場所で調査結果を送信することができる。つまり、電波状態を気にせず、調査を行うことができるので、様々な場所での調査が可能になる。また、こうした調査項目と、回答のための入力インターフェースをプログラムにより実現することにより、調査項目に適した入力インターフェースを設けることができるので、入力ミスなど人為的なミスを防止できるとともに、迅速な調査が可能になる。また、例えば調査項目をウェブページで提供する場合と比べて、サーバへのアクセス数が大幅に減少するので、サーバの負荷を下げることができる。【００３９】  このような作業画面４００を表示するためのプログラムは、例えばＪＡＶＡ（登録商標）などのプログラミング言語で作成されたプログラムであってよい。このプログラムを調査毎に毎回プログラマーが作成していたのでは、開発期間の問題により必要なタイミングで必要な調査を実施できないなど、迅速な調査を行うことができないこともある。また、人為的なミスにより、誤った調査項目や選択肢が含まれる場合もある。また、プログラムの開発コストの問題により、調査をひか��るということもあり得る。【００４０】  そのため、こうしたプログラムを自動的に生成することが、図１の調査システム１０を運用するためには必要になる。一般に、プログラムは、ソースコードをコンパイルすることにより生成される。プログラマーは、各種の開発ツールを利用してソースコードを作成するが、その作業には高い知識が必要となるため、一般の人は容易にソースコードを作成できない。【００４１】  本発明者は、様々な調査を想定し、その入力インターフェースを検討した結果、調査項目毎の入力インターフェースを統一し、ひな形を作ることにより、ひな形の組合せ処理と、ひな形中の文字列を他の文字列に置換する処理とにより自動的にソースコードを生成することが可能であるということに想到した。図１のプログラム生成装置１００は、この手法に準じてソースコードを生成し、コンパイルすることによりプログラムを自動的に生成する。【００４２】  図３は、図１のプログラム生成装置１００の内部構成図である。プログラム生成装置１００の各構成要素は、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インターフェースを中心にハードウエアとソフトウエアの任意の組合せによって実現されるが、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各図は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。【００４３】  画面情報提供部６０２は、設定装置５００に入力画面情報を提供する。画面情報格納部６１０は、例えば入力画面情報のひな形など、各種の画面情報を保持する。検査プログラム格納部６１２は、図１の端末装置５０に後述する機能を実現するための検査プログラムを保持する。画面情報生成部６００は、画面情報格納部６１０および検査プログラム格納部６１２に保持されているデータに基づいて入力画面情報を生成し、画面情報提供部６０２に供給する。そして、画面情報提供部６０２は、その入力画面情報を設定装置５００に送信する。【００４４】  本実施の形態では、画面情報生成部６００は、ＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式のファイルを入力画面情報として生成する。また、検査プログラムは、例えば、ＪＡＶＡ（登録商標）、ＡｃｔｉｖｅＸなどの任意のプログラム手法により作られており、設定装置５００側で実行可能なプログラムである。詳細は後述するが、検査プログラムは、処理を実行するにあたり、図１の端末装置５０で実行可能なプログラムのサイズ（以下、単に「最大プログラムサイズ」という）を利用する。このため、画面情報生成部６００は、プログラム条件格納部１３２から最大プログラムサイズを読み込み、入力画面情報に付加する。つまり、画面情報提供部６０２は、検査プログラムと最大プログラムサイズと入力画面を形成するための画面情報とを含む入力画面情報を設定装置５００に送信する。【００４５】  設定装置５００から入力画面情報を要求された場合、画面情報提供部６０２は、認証部６０４に設定装置５００の認証を要求する。ユーザ情報格納部６０６��、ユーザＩＤ、パスワードなどユーザに関係する種々の情報を保持する。認証部６０４は、例えば設定装置５００を操作しているユーザのユーザＩＤやパスワードなどの認証に利用する認証情報を受け付け、認証情報に基づいてユーザ情報格納部６０６を参照することにより認証を行う。【００４６】  認証に成功した場合、認証部６０４は、その旨を画面情報提供部６０２に通知する。この通知を契機として、画面情報提供部６０２は、画面情報生成部６００に入力画面情報の生成を要求する。そして、画面情報提供部６０２は、生成された入力画面情報を設定装置５００に送信する。【００４７】  受付部１１０は、設定装置５００から調査プログラムを生成するためのパラメータを受け付け、生成部１１２に出力する。例えば、そのパラメータは、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式のファイル（以下、単に「パラメータファイル」という）として供給される。生成部１１２は、パラメータファイルに基づいて調査プログラムのソースコードを生成する。ひな形格納部１２８は、ソースコードを生成するための複数種類のひな形を保持する。生成部１１２は、そのひな形を組合せ、各ひな形の所定の箇所にパラメータファイルに含まれているパラメータを挿入、もしくはひな形中の所定の文字列をパラメータに置換することによりソースコードを生成する。【００４８】  ひな形格納部１２８は、ひな形と、そのひな形により実現する機能や入力インターフェースなどを特定する情報とを対応付けて保持する。例えば、ひな形格納部１２８は、回答を入力するためのコンポーネントの種類を特定するタイプ情報に対応付けて、それらのコンポーネントを端末装置５０で実現するためのプログラムコードをひな形として保持する。【００４９】  一般に、各種のプログラム言語には、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）として予め所定の処理を実現するための関数が用意されている。ソースコードは、それらのＡＰＩをプログラム言語毎の文法に準じて組み合わせて作られている。ひな形は、例えば複数の関数を組み合わせたプログラムコードであってもよいし、ひとつの関数から成るプログラムコードであってもよい。要は、ひな形格納部１２８は、コンポーネントタイプとそのひな形とを対応付けて保持すればよい。【００５０】  パラメータファイルに基づいて、ソースコードを生成するためのアルゴリズムは、いろいろと考えられる。ひな形格納部１２８が保持するひな形は、そのアルゴリズムに応じて適宜用意される。【００５１】  例えば、図２の調査結果入力領域４４２としてテキストボックスを有する調査内容表示画面４００を生成するためのひな形は、文字列を表示するための文字列表示関数とテキストボックスを表示するためのテキストボックス関数とを含んでいる。そして、それらの関数の引数に、パラメータファイルに含まれている、文字列、数字、画像等の各情報を設定できるように、例えば引数に所定の変数名が割り当てられている。例えば、生成部１１２は、その変数に対応するパラメータを代入することにより、ソースコードを生成してもよいし、その変数をパラメータに置き換えて、ソースコードを生成してもよい。【００５２】  また、図２の調査結果入力領域４４２としてラジオボックスやチェックボックスを有する調査内容表示画面４００を生成するためのひな形は、それぞれ文字表示関数を含み、ラジオボックスを表示するラジオボックス関数またはチェックボックスを表示するチェックボックス関数の少なくとも一方を含む。こうしたひな形に含まれるプログラムコードは、パラメータファイルに基づいてソースコードを生成するためのアルゴリズムに応じて適切に記述すればよい。要は、生成部１１２は、パラメータファイルに含まれるタイプ情報に基づいて、そのコンポーネントを形成するための関数もしくはひな形を特定し、その引数にパラメータを設定すればよい。【００５３】  パラメータファイルに図６の画像ファイル名欄１８２が含まれている場合、生成部１１２は、コンテンツ格納部１２６から該当する画像コンテンツを読み込み、所定のタイミングでソースコードとともにコンパイル部１１４に出力する。例えばそのタイミングは、後述するコンパイル部１１４がコンパイル処理を行うときであってもよい。【００５４】  生成部１１２は、ソースコードを生成し終えると、その旨をソースコード完成通知として指示部１２０に出力する。例えば、生成部１１２は、パラメータファイルのページ構成情報欄１６０を単位としてソースコードに変換する処理を順次行う。そして、全てのページ構成情報欄１６０について変換を終了した時点でソースコードが完成する。生成部１１２は、このとき、すなわち全てのページ構成情報欄１６０について変換を終了した時点で、その旨を指示部１２０に出力してもよい。また、生成部１１２は、パラメータファイルのパラメータ開始タグ１５１ａからパラメータ終了タグ１５１ｂまで、各パラメータに基づいて順次ソースコードに変換する処理を行い、パラメータ終了タグ１５１ｂに到達すると変換処理を終了するとともに、ソースコード完成通知を指示部１２０に出力してもよい。【００５５】  指示部１２０は、生成部１１２からソースコード完成通知を受け付けると、その通知を契機として、コンパイル部１１４にソースコードのコンパイルを指示する。基本関数格納部１３０は、コンパイルに必要な種々のファイルを保持する。コンパイル部１１４は、基本関数格納部１３０に保持されているファイルを利用して、ソースコードをオブジェクトコードに変換して、調査プログラムを生成する。【００５６】  検査部１１６は、コンパイル部１１４が生成した調査プログラムを図１の端末装置５０において実行可能であることを検査する。一般に、図１の端末装置５０は、例えばデスクトップコンピュータなどと比べるとメモリ容量が小さく、ＣＰＵの性能も劣るため、実行可能なプログラムの最大プログラムサイズが決められている。検査部１１６は、生成した調査プログラムのサイズが最大プログラムサイズより小さい場合に、実行可能であると判定し、その調査プログラムを格納処理部１１８に出力する。そして、格納処理部１１８は、調査プログラムをプログラム提供装置２００に出力し、配信可能にさせる。【００５７】  課金部６０８は、プログラム生成装置１００を利用し、配信可能となったプログラムを作成したユーザに対応付けて、使用料金を管理する。【００５８】  一方、生成した調査プログラムのサイズが最大プログラムサイズより大きい場合、検査部１１６は、プログラムサイズが大きいため、端末装置５０において実行できないことを示す情報を通知部１０６に出力する。通知部１０６は、その情報に基づいて、プログラムサイズが最大プログラムサイズを超えるため、端末装置５０において実行できないことを通知するとともに、調査項目を減らすことを促すメッセージを画面情報生成部６００に出力する。これにより、画面情報生成部６００は、そのメッセージを設定装置５００に伝えるための画面情報を生成し、画面情報提供部６０２に出力する。画面情報提供部６０２は、その画面情報を設定装置５００に送信する。これにより、設定装置５００には、プログラムサイズが最大プログラムサイズを超えていることと、プログラムを完成するためには調査項目を減らす必要があることとを伝達するためのメッセージが表示される。【００５９】  このように、調査プログラムのプログラムサイズを検査することにより、調査プログラムのプログラムサイズが、その調査プログラムを利用する図１の端末装置５０の最大プログラムサイズより大きいために実行できないという事態を回避できる。【００６０】  プログラム条件格納部１３２は、図１の端末装置５０を特定する情報（以下、単に「端末情報」という）に対応付けて、その端末装置５０の最大プログラムサイズを保持する。検査部１１６は、プログラム条件格納部１３２を参照して、最大プログラムサイズを特定して上述した検査を行う。例えば、その端末情報はパラメータファイルに含まれていてもよい。【００６１】  このプログラム生成装置１００により、ユーザが設定装置５００に表示された入力画面に単に調査項目を入力することにより、ソースコードを生成し、自動的にコンパイルして調査プログラムを生成することができる。【００６２】  図４は、図１の設定装置５００の内部構成図である。画面情報取得部５０２は、プログラム生成装置１００から前述した調査用のプログラム（以下、単に「調査プログラム」という）を形成するために必要な種々の情報を入力するための入力画面を、表示部１０２に形成するための入力画面情報を取得する。画面情報取得部５０２は、入力画面情報に含まれる最大プログラムサイズを実行条件格納部５０４に格納し、検査プログラムを起動する。検査プログラムを起動することにより、後述の制限部１２２および通知部５０８が形成される。【００６３】  画面情報生成部１２４は、入力画面情報または後述する通知部５０８からの通知に基づいて画面情報を生成し、表示処理部１０４に出力する。表示処理部１０４は、画面情報に基づいて入力画面を表示部１０２に表示させる。【００６４】  操作部１０８は、例えばキーボードやマウスなどの入力デバイスであり、ユーザから操作を受け付け、入力画面に対する種々の情報をパラメータ管理部１０９に出力する。パラメータ管理部１０９は、入力された情報をパラメータとして、パラメータ名などに対応付けて管理する。そして、画面情報生成部１２４は、パラメータ管理部１０９に管理されているパラメータを読み込み、新たに入力されたパラメータを入力画面に反映する。また、パラメータ管理部１０９は���所定のタイミングで管理中のパラメータをパラメータファイルとしてプログラム生成装置１００に出力する。【００６５】  制限部１２２は、パラメータファイルに含まれるパラメータに基づいて、調査プログラムが含む調査項目の数を制限する。つまり、図３の検査部１１６が最終的に生成した調査プログラムのプログラムサイズに基づいて、端末装置５０において利用可能か否かを判定するのに対して、制限部１２２は、図３のプログラム生成装置１００がソースコードを生成する前に、端末装置５０において利用可能か否かを予測する。そして、予測したプログラムサイズが最大プログラムサイズを超える場合、制限部１２２は、調査項目を減らすことを通知するように通知部５０８に指示する。通知部５０８は、その指示に応じて、プログラムサイズが最大プログラムサイズを超えることが予測されるため、調査項目を減らすことを促すメッセージを表示部１０２に表示させる。これにより、無駄なソースコードの生成やコンパイルを避けることができる。また、制限部１２２における処理は、設定装置５００側で行われるので、プログラム生成装置１００に負荷をかけない。【００６６】  制限部１２２は、実行条件格納部５０４から図１の端末装置５０に応じた最大プログラムサイズを読み込む。そして、制限部１２２は、例えばパラメータファイルに含まれるパラメータに基づいて、調査プログラムのプログラムサイズを予測する。このために、制限部１２２は、各パラメータ名すなわちパラメータの種類と、プログラムサイズとを対応付けたテーブルを保持する。そして、制限部１２２は、パラメータファイルに含まれるパラメータ毎に、そのテーブルを参照してプログラムサイズを特定し、例えば加算することにより調査プログラムのサイズを推定してもよい。【００６７】  制限部１２２は、パラメータ管理部１０９からパラメータファイルを受け付けると、そのパラメータファイルに基づいて、調査項目を減らす必要があるか否かを判定する。そして、調査項目を減らす必要がない場合、制限部１２２は送信部５０６にパラメータファイルを出力する。そして、送信部５０６は、パラメータファイルをプログラム生成装置１００に出力する。【００６８】  図５は、図４の表示部１０２に表示される入力画面４５０の一例を示す図である。諸情報入力領域４６０は、調査プログラムが前述した機能を実現するために必要な種々の情報を入力するための領域である。「調査ＩＤ」は、調査プログラムを識別するための情報であり、例えば調査結果を図１の解析装置３００に送信する際に、調査結果に対応付けて送信される。「調査名称」は、調査毎の名称であり、図２のタイトル領域４０２に表示される。「データ送信ＵＲＬ」は、調査結果の送信先である図１の解析装置３００をネットワーク１２上で特定するための情報を入力するための領域であり、例えば解析装置３００のＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）が設定される。【００６９】  コンポーネント追加操作ボタン群４６２は、調査項目を追加する場合に利用する。タイプ選択コンポーネント４７０は、追加する調査項目の回答の入力に利用するコンポーネントのタイプを指定するためのコンポーネントである。タイプ選択��ンポーネント４７０で選択可能なコンポーネントのタイプとして、例えば複数の選択肢の中からひとつの回答を選択可能なラジオボタン（図中では「ＳＡ」と表記）、複数の選択肢の中から任意の数の回答を選択可能なチェックボックス（図中では「ＭＡ」と表記）、テキスト入力をするためのテキストボックス（図中では「Ｔｅｘｔ」と表記）がある。任意のタイプをタイプ選択コンポーネント４７０から選択し、コンポーネント追加ボタン４７２を押下することにより、選択したタイプに応じたコンポーネント設定領域４６４が追加される。【００７０】  各コンポーネント設定領域４６４は、図２の調査項目指示領域４４０を形成するために必要な情報と、図２の調査結果入力領域４４２を形成するために必要な情報とを入力できるように、例えばテキストボックスやチェックボックスなどのコンポーネントにより構成されている。【００７１】  第１コンポーネント設定領域４６４ａは、コンポーネントタイプとして「テキストボックス」を選択した場合に追加される。タイプ表示領域４７６には、コンポーネントのタイプが表示される。第１コンポーネント設定領域４６４ａには、図２の調査項目指示領域４４０を形成するために、質問文入力領域４８０および画像選択コンポーネント４８６が設けられている。また、図２の調査結果入力領域４４２を形成するために、回答入力領域４８２、最大文字数指定領域４８８、および入力文字タイプ指定ボックス４９０が設けられている。【００７２】  質問文入力領域４８０は、例えば、調査員に調査させる事柄を指示するための文書を入力するための領域である。ここに入力した文字列が、図２の調査内容文字列４３４として表示される。画像選択コンポーネント４８６は、図２の画像４２０として表示する画像コンテンツを選択するためのコンポーネントであり、例えばリストの中から任意の画像コンテンツを選択できるように形成される。図３のコンテンツ格納部１２６は、画像コンテンツを格納しており、画像選択コンポーネント４８６を選択すると、画面情報取得部５０２は、プログラム生成装置１００からコンテンツ格納部１２６が保持する画像コンテンツのリストを取得する。そして、画面情報生成部１２４は、そのリストを利用して画像選択コンポーネント４８６を形成してもよい。【００７３】  回答入力領域４８２は、テキストボックスの周辺に表示される文字列を入力するための領域である。この文字列が、回答を入力するためのテキストボックスの上方、下方、左側、または右側のいずれかに配置される。最大文字数指定領域４８８は、テキストボックスに入力可能な文字数の上限を設定するための領域である。入力文字タイプ指定ボックス４９０は、テキストボックスに入力可能な文字タイプを指定するためのチェックボックスである。本実施の形態では、チェックすることにより数字の入力だけが可能になり、チェックをはずすことにより、例えばひらがな、カタカナ、漢字、アルファベット、数字など任意の文字タイプの入力が可能になる。なお、回答入力領域４８２、最大文字数指定領域４８８、および入力文字タイプ指定ボックス４９０は対応付けられている。【００７４】  本図では、回答入力領域４８２に「自販機ＩＤを入力」が記入さ���、最大文字数指定領域４８８に「４」が記入され、入力文字タイプ指定ボックス４９０がチェックされている。これにより、図２の第２作業画面４００ｂが形成される。すなわち、テキスト入力領域４１２の上方の回答内容文字列４１０に「自販機ＩＤを入力」と表示される。また、そのテキスト入力領域４１２は、数字のみ入力可能であり、その最大数は４文字になっている。【００７５】  図５に戻り、回答追加ボタン４７８は、回答入力領域４８２を追加する。すなわち、図２の調査結果入力領域４４２としてテキストボックスを複数設ける場合、回答追加ボタン４７８を所望の回数押下する。これにより、第１コンポーネント設定領域４６４ａには、回答追加ボタン４７８を押下した数の回答入力領域４８２が新たに追加される。追加したそれぞれの回答入力領域４８２は、個別に文字列を設定可能である。もちろん、各回答入力領域４８２に対応付けられた最大文字数指定領域４８８および入力文字タイプ指定ボックス４９０を個別に設定できる。また、後述する第２コンポーネント設定領域４６４ｂ、および第３コンポーネント設定領域４６４ｃの回答追加ボタン４７８は、それぞれラジオボタンならびにチェックボックス用の回答入力領域４８２を追加する。【００７６】  回答削除コンポーネント４９４は、回答入力領域４８２を削除するためのコンポーネントである。回答削除コンポーネント４９４を押下することにより、対応する回答入力領域４８２が削除される。【００７７】  ラジオボタン４７４は、調査結果に位置情報を対応付けるか否か、すなわち図１の端末装置５０が有するＧＰＳユニットを利用するか否かを指定するためのコンポーネントである。ラジオボタン４７４がチェックされている場合、調査結果に位置情報が対応付けられる。本実施の形態では、いずれかのコンポーネント設定領域４６４のラジオボタン４７４がチェックされている場合、調査プログラムを実行したのち、いずれかのタイミングで位置情報が取得される。【００７８】  調査項目削除コンポーネント４９６は、調査項目を削除するためのコンポーネントである。調査項目削除コンポーネント４９６を押下することにより、対応する調査項目のコンポーネント設定領域４６４が削除される。【００７９】  第２コンポーネント設定領域４６４ｂは、コンポーネントタイプとして「ラジオボタン」を選択した場合に追加される。第２コンポーネント設定領域４６４ｂの回答入力領域４８２に入力した文字列は、ラジオボタン毎に対応付けられて表示される。つまり、各回答入力領域４８２には各選択肢を入力する。リンク指定領域４９２は、その回答を選択した場合に、順番に調査項目を表示するのではなく、リンク先として指定された他の調査項目を表示するか否かを指定するためのコンポーネントである。例えば、リンク指定領域４９２は、調査項目のリストの中から任意の調査項目を選択できるように形成されている。そして、ラジオボタンが選択された場合に、リンク先として指定された調査項目の画面が表示される。【００８０】  第３コンポーネント設定領域４６４ｃは、コンポーネントタイプとして「チェックボックス」を選択した場合に追加される。第３コンポーネント設定領域４６４ｃの回答入力領域４８２���入力した文字列は、チェックボックス毎に対応付けて表示される。つまり、各回答入力領域４８２には各選択肢を入力する。【００８１】  こうした表示処理は、図３の操作部１０８におけるユーザの操作に応じて更新されたパラメータに基づいて、画面情報生成部１２４が入力画面４５０を形成するための情報を随時書き換えることにより実現する。【００８２】  生成ボタン４５２は、入力画面４５０に入力された種々の情報を利用してソースコードを生成することを指示するためのボタンである。キャンセルボタン４５４は、入力画面４５０への入力をキャンセルするためのボタンである。生成ボタン４５２を押下した場合、図４のパラメータ管理部１０９は、管理中のパラメータを制限部１２２に出力する。パラメータの出力形態はいろいろとあるが、本実施の形態では、パラメータ管理部１０９は、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式のファイル（以下、単に「パラメータファイル」という）として、各パラメータを制限部１２２に出力する。【００８３】  図６は、図４のパラメータ管理部１０９が制限部１２２に出力するパラメータファイルのデータ構造の一例を示す図である。ひとつの調査プログラムを生成するための全てのパラメータは、パラメータの開始を示すパラメータ開始タグ１５１ａと、パラメータの終了を示すパラメータ終了タグ１５１ｂとに囲まれて保持される。そして、各パラメータは、パラメータの名称を示すタグに囲まれて保持される。調査ＩＤ欄１５２、名称欄１５４、およびＵＲＬ欄１５６は、図５の諸情報入力領域４６０に入力した、「調査ＩＤ」、「調査名称」ならびに「データ送信ＵＲＬ」をそれぞれ保持する。また、図５のコンポーネント設定領域４６４に入力した種々の情報は、ページ構成情報欄１６０にそれぞれタグに囲まれて保持される。本実施の形態では、ひとつのページ、すなわち図２のひとつの作業画面４００を形成するための情報が、ひとつのページ構成情報欄１６０に含まれている。【００８４】  ページＮｏ欄１６２は、ページを識別するページ識別情報を保持し、例えば表示する順番を保持してもよい。すなわち、後述する図３の生成部１１２は、ページ識別情報に基づいて各ページを表示する順番を決め、その順番で各ページを表示するようにソースコードを生成する。このページ識別情報は、図５のコンポーネント追加ボタン４７２を操作して、コンポーネント設定領域４６４を追加した際に、図４のパラメータ管理部１０９により各コンポーネント設定領域４６４に例えば昇順で割り当てられる。【００８５】  コンポーネント欄１７４は、図２の調査結果入力領域４４２を形成するための種々の情報を保持する。データ名欄１６４は、そのコンポーネントにより入力もしくは選択された回答を特定するデータ名を保持する。図１の端末装置５０は、調査結果を解析装置３００に送信する際、そのデータ名に対応付けて回答を送信する。また、他の例で、調査結果をＣＳＶ形式で送信する場合には、データ名を設定しなくてもよい。【００８６】  タイプ欄１６６は、例えば、テキスト（図中「Ｔｅｘｔ」と表記）、ラジオボックス（図中「ＳＡ」と表記）、チェックボックス（図中「ＭＡ」と表記）などのコンポーネントのタイプを特定するタイプ情報を保持する。また、位置情報を取得するＧＰＳコンポーネント、ＣＣＤカメラを利用して画像を撮影する撮影コンポーネントなど端末装置５０のハードウエアを制御するためのコンポーネントを識別する情報も同様にタイプ情報としてタイプ欄１６６に保持される。【００８７】  文字列欄１６８は、図５の回答入力領域４８２に入力された文字列を保持する。文字種欄１７０は、入力可能な文字の種類を特定する情報を保持する。本実施の形態では、図５の入力文字タイプ指定ボックス４９０がチェックされている場合に、「数字」が設定され、チェックされていない場合に任意の文字の種類を示す情報が設定される。文字数欄１７２は、図５の最大文字数指定領域４８８に入力された数字を保持する。【００８８】  タイプ欄１６６にテキストが保持されている場合、コンポーネント欄１７４には、テキストボックスを形成するために文字種欄１７０および文字数欄１７２が含まれる。また、タイプ欄１６６にラジオボックスを示す「ＳＡ」またはチェックボックスを示す「ＭＡ」が保持されている場合、ラジオボックスまたはチェックボックスを形成するために、選択肢の枝数分の文字列欄１６８が含まれる。【００８９】  質問文欄１８０は、図５の質問文入力領域４８０に入力された文字列を保持する。画像ファイル名欄１８２は、図５の画像選択コンポーネント４８６で選択された画像ファイルのファイル名を保持する。他の例では、画像ファイル名欄１８２は、画像ファイルの格納場所を示すパスやＵＲＬを保持してもよい。【００９０】  図４のパラメータ管理部１０９は、このように図２の作業画面４００を形成するための各パラメータを、調査項目毎にグループに分けて、すなわちページ構成情報欄１６０毎に分けて保持するパラメータファイルを図４の制限部１２２に出力する。【００９１】  また、制限部１２２は、パラメータファイルに含まれる図６のページ構成情報欄１６０の数と、予め設定された調査項目数の上限（以下、単に「最大項目数」という）とを比較することにより、調査項目数を制限してもよい。例えば、制限部１２２は、パラメータファイルに含まれる図６のページ構成情報欄１６０の数が、最大項目数より大きい場合に、調査項目を減らすことを通知部１０６に通知させてもよい。【００９２】  図７は、図１のプログラム提供装置２００の内部構成図である。登録部２０２は、プログラム生成装置１００から調査プログラムを受け付ける。そして、登録部２０２は、受け付けた調査プログラムをプログラム格納部２０４に格納する。プログラム提供部２０６は、端末装置５０からの要求に応じて、プログラム格納部２０４に格納されている調査プログラムを提供する。プログラム提供部２０６は、調査プログラムを提供する際に、例えば端末装置５０に固有に割り当てられている識別情報などにより、調査員の認証を行い、認証に成功した場合に、調査プログラムを端末装置５０に提供してもよい。【００９３】  図８は、図１の解析装置３００の内部構成図である。収集部３０２は、端末装置５０から調査結果を受け付ける。収集部３０２は、その調査結果を、例えばＣＳＶ形式や調査項目を示すパラメータ名に対応付けた形式で端末装置５０から���集する。収集部３０２は、調査結果を調査結果格納部３０４に格納する。解析部３０６は、調査結果格納部３０４に格納されている調査結果に基づいて、例えば統計的な集計等の所定の解析を行い、解析結果を出力する。【００９４】  図９は、図３のプログラム生成装置１００と図４の設定装置５００とによる調査プログラム生成処理のフローチャートの一例である。図４の制限部１２２は、パラメータ管理部１０９からパラメータファイルを受け付け（Ｓ１０）、パラメータファイルに含まれるパラメータに基づいて、調査プログラムのプログラムサイズを予測する（Ｓ１２）。図４の制限部１２２は、予測したプログラムサイズが予め設定されている最大プログラムサイズより小さいか否かを判定する（Ｓ１４）。予測したプログラムサイズが、最大プログラムサイズより大きい場合（Ｓ１４のＮ）、図４の通知部５０８は、調査項目を減らすことを通知する（Ｓ２８）。【００９５】  Ｓ１４で、予測したプログラムサイズが最大プログラムサイズより小さい場合（Ｓ１４のＹ）、図４の送信部５０６は、そのパラメータファイルをプログラム生成装置１００に送信する（Ｓ１５）。図３の生成部１１２は、パラメータファイルに含まれるパラメータに基づいて、図３のひな形格納部１２８からひな形を選択し（Ｓ１６）、そのひな形中の所定の引数を、パラメータファイル中のパラメータに置き換える（Ｓ１８）。【００９６】  生成部１１２は、ソースコードが完成したか否かを判定する（Ｓ２０）。ソースコードが完成していない場合（Ｓ２０のＮ）、ステップ１６に戻る。ソースコードが完成した場合（Ｓ２０のＹ）、生成部１１２は、その旨を図３の指示部１２０に出力する。そして、指示部１２０は、そのソースコードをコンパイルすることを図３のコンパイル部１１４に指示する。これにより、コンパイル部１１４はコンパイルを実行する（Ｓ２２）。【００９７】  調査プログラムが完成した後、コンパイル部１１４は、その調査プログラムを図３の検査部１１６に出力する。検査部１１６は、調査プログラムのプログラムサイズが最大プログラムサイズより小さいか否かを判定する（Ｓ２４）。プログラムサイズが最大プログラムサイズより大きい場合（Ｓ２４のＮ）、通知部１０６は、調査項目を減らすことを通知する（Ｓ２８）。また、プログラムサイズが最大プログラムサイズより小さい場合（Ｓ２４のＹ）、検査部１１６は、図３の格納処理部１１８にその調査プログラムを出力し、格納処理部１１８はその調査プログラムを図１のプログラム提供装置２００に出力し、図１の端末装置５０に提供可能な状態にさせる（Ｓ２６）。【００９８】  調査プログラムを例に、プログラム生成装置１００の機能を説明したが、プログラム生成装置１００は、調査プログラムだけでなく、例えばアンケートやクイズなど種々のプログラムを生成してもよい。【００９９】  以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図１】
0004220520.tif 000002
【図２】
0004220520.tif 000003
【図３】
0004220520.tif 000004
【図４】
0004220520.tif 000005
【図５】
0004220520.tif 000006
【図６】
0004220520.tif 000007
【図７】
0004220520.tif 000008
【図８】
0004220520.tif 000009
【図９】
0004220520.tif 000010