(57)【要約】【課題】リモートコントローラーで操作される機器内で実行されるソフトウェアを効率的に開発することのできる開発支援技術を提供することを目的とする。【解決手段】本発明に係るリモートコントローラーで操作される機器用組み込みソフトウェア開発支援プログラムは、リモートコントローラー上のボタンの一覧を画面表示し、開発者にそのボタンのなかからいずれかを選択させ、選択されたボタンに対応する機能を実現するために必要となるＡＰＩの一覧を画面表示する。【選択図】図４
2011191961.tif 000002
【特許請求の範囲】
【請求項１】
リモートコントローラーで操作される機器内で実行されるソフトウェアを開発することを支援する処理をコンピュータに実行させるプログラムにおいて、
前記コンピュータに、
前記リモートコントローラー上の機能の一覧を前記コンピュータの画面に表示する機能一覧表示ステップと、
前記機能の一覧のうちいずれかの機能を選択する選択入力を受け取る機能選択ステップと、
前記機能選択ステップにおいて選択された機能を組み合わせることによって構成される新たな機能を前記コンピュータの画面に表示するステップと、
前記機能と、その機能を実現するために必要となるＡＰＩとの対応関係を記述したテーブルを読み込むステップと、
前記機能選択ステップにおいて選択された機能、および前記機能選択ステップにおいて選択された機能を組み合わせることによって構成される新たな機能を実現するために必要となるＡＰＩの一覧を前記テーブルから取得して、前記コンピュータの画面に表示するステップと、
前記ＡＰＩの詳細機能説明を前記コンピュータに画面に表示するステップと、
前記ＡＰＩを実行するよう前記機器に要求するステップと、
前記機器が前記ＡＰＩを実行した結果を受け取って前記コンピュータの画面に表示するステップと、
を実行させることを特徴とするソフトウェア開発支援プログラム。
【請求項２】
前記機能一覧表示ステップでは、前記コンピュータに、
前記機能の一覧をリモートコントローラーで操作される機器のリモコンが備えるボタンに対応する形式で前記コンピュータの画面に表示させる
ことを特徴とする請求項１記載のソフトウェア開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リモートコントローラー（以下リモコン）で操作される機器内で実行されるソフトウェアを開発することを支援する技術に関するものである。
【背景技術】
【０００２】
一般に、ＳＤＫ（Ｓｏｆｔｗａｒｅ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｋｉｔ）を使用したソフトウェア開発では、利用者はＳＤＫが提供するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）について、ＡＰＩ仕様書を参照しながら開発作業を進める必要がある。このとき、ＡＰＩ仕様書に記載されている膨大なＡＰＩ一覧の中から、使用したいＡＰＩを探す必要がある。
【０００３】
また、開発者が作成したい機能を実現するためには、複数のＡＰＩを使用しなければならない場合もある。それらのＡＰＩは、ＡＰＩ仕様書の中であらかじめ同一箇所にまとめて記載されているとは限らないため、開発者は実現したい機能に必要となるＡＰＩの組み合わせを検討する必要がある。
【０００４】
下記特許文献１には、画面フローを用いてビジュアルプログラムを設計し、作成し、検査することにより、開発効率を改善する技術が記載されている。
【０００５】
下記特許文献２には、プログラミングや画像処理に関する知識が少ない一般ユーザでも、複数の処理を実行させるための設定を容易に行うことができるようにする技術が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−３０７７１６号公報
【特許文献２】特開２００９−１１４５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記特許文献１〜２に記載の技術では、ある機能を実現するために必要なＡＰＩやソフトウェアコンポーネントを、結局は画面上で探す必要がある。また、画面上で自動的に作成することのできるプログラムは、必ずしも開発者が意図しているものとは限らず、改めてプログラムを作成し直す必要が生じる場合もある。
【０００８】
本発明は、上記のような課題を解決するためになされたものであり、リモコンで操作される機器内で実行されるソフトウェアを効率的に開発することのできる開発支援技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るソフトウェア開発支援プログラムは、機器を操作するためのリモコン上のボタン一覧を画面表示し、開発者にそのボタンのなかからいずれかを選択させ、選択されたボタンに対応する機能を実現するために必要となるＡＰＩの一覧を画面表示する。
【発明の効果】
【００１０】
本発明に係るソフトウェア開発支援プログラムによれば、開発者が作成したい機能に必要なＡＰＩの一覧が画面上に表示されるので、開発者はＡＰＩを逐一探す必要がなくなる。これにより、ソフトウェアの開発効率を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係るソフトウェア開発支援プログラム１１０を実行するコンピュータ１００およびその周辺環境の構成図である。
【図２】ディスプレイ１２０が表示する機能選択画面１２１の画面例を示す図である。
【図３】ディスプレイ１２０が表示する選択機能一覧画面１２２の画面例を示す図である。
【図４】ディスプレイ１２０が表示する使用ＡＰＩ一覧画面１２３の画面例を示す図である。
【図５】ディスプレイ１２０が表示するＡＰＩ説明画面１２４の画面例を示す図である。
【図６】機能組合せテーブル１１７の構成とデータ例を示す図である。
【図７】使用ＡＰＩテーブル１１８の構成とデータ例を示す図である。
【図８】機能選択画面１２１以降の画面遷移を説明するフローである。
【発明を実施するための形態】
【００１２】
＜実施の形態１＞
図１は、本発明の実施の形態１に係るソフトウェア開発支援プログラム１１０を実行するコンピュータ１００およびその周辺環境の構成図である。コンピュータ１００は、開発者がソフトウェア開発支援プログラム１１０を用いてデジタルテレビ２００向けのソフトウェアを開発するために使用するコンピュータである。デジタルテレビ２００は、開発作業用のデジタルテレビであり、開発作業に必要なソフトウェア環境があらかじめインストールされている。コンピュータ１００とデジタルテレビ２００は、シリアルケーブルで接続されている。
【００１３】
コンピュータ１００は、ソフトウェア開発支援プログラム１１０、ディスプレイ１２０、キーボード１３０、マウス１４０を備える。また、ソフトウェア開発支援プログラム１１０を実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリなどの構成を適宜備える。
【００１４】
以下の説明では、記載の便宜上、ソフトウェア開発支援プログラム１１０を動作主体として説明することがあるが、実際にソフトウェア開発支援プログラム１１０を実行するのはＣＰＵであることを付言しておく。
【００１５】
ディスプレイ１２０は、ソフトウェア開発支援プログラム１１０が提示する画面を表示する。キーボード１３０とマウス１４０は、開発者がコンピュータ１００に対して操作指示を与える入力デバイスである。
【００１６】
ソフトウェア開発支援プログラム１１０は、画面表示処理部１１１、開発支援プログラム部１１２、プログラム実行制御部１１３、データ送受信部１１４、送受信データ処理部１１５、入力処理部１１６、機能組合せテーブル１１７、使用ＡＰＩテーブル１１８を備える。上記各機能部は、ソフトウェア開発支援プログラム１１０を構成するソフトウェアモジュールなどの形態で実装することができる。各テーブルは、テーブルの内容を記述するデータファイルなどの形態で実装することができる。
【００１７】
画面表示処理部１１１は、ディスプレイ１２０の動作を制御して画面表示を行う機能部である。開発支援プログラム部１１２は、後述の図２以降で説明する開発支援機能を提供する。プログラム実行制御部１１３は、ＳＤＫが提供するＡＰＩ機能を実行する。データ送受信部１１４は、シリアルケーブルを介して、デジタルテレビ２００との間でデータを送受信する。送受信データ処理部１１５は、デジタルテレビ２００との間で送受信するデータとプログラム実行制御部１１３の間を仲介する。入力処理部１１６は、キーボード１３０とマウス１４０から受け取った操作指示入力を解釈する。機能組合せテーブル１１７と使用ＡＰＩテーブル１１８については、後述の図６〜図７で説明する。
【００１８】
デジタルテレビ２００は、制御プログラム２１０、ディスプレイ２２０を備える。
ディスプレイ２２０は、画像を表示する装置である。
【００１９】
制御プログラム２１０は、画面表示処理部２１１、データ送受信部２１２、送受信データ処理部２１３、ＳＤＫプログラム格納部２１４、ＳＤＫプログラム実行制御部２１５を備える。
【００２０】
画面表示処理部２１１は、ディスプレイ２２０の動作を制御して画面表示を行う機能部である。データ送受信部２１２は、シリアルケーブルを介して、コンピュータ１００との間でデータを送受信する。送受信データ処理部２１３は、コンピュータ１００との間で送受信するデータとＳＤＫプログラム実行制御部２１５の間を仲介する。ＳＤＫプログラム格納部２１４は、デジタルテレビ２００のＳＤＫが提供する各ＡＰＩに対応するソフトウェアモジュールを格納している。ＳＤＫプログラム実行制御部２１５は、ＳＤＫが提供するＡＰＩ機能を実行する。
【００２１】
図２は、ディスプレイ１２０が表示する機能選択画面１２１の画面例を示す図である。機能選択画面１２１は、開発者がこれから開発したい機能を選択するための画面である。デジタルテレビ２００の機能の多くはリモコン操作をトリガーにして実行されるため、リモコンが搭載している各ボタンの一覧画面を表示する。
【００２２】
開発支援プログラム部１１２は、デジタルテレビ２００が実行する機能の一覧（ここではリモコンが搭載している各ボタンに対応する機能の一覧）を、例えばあらかじめコンピュータ１００内に格納されているテーブルから取得し、画面表示処理部１１１を介してディスプレイ１２０に機能選択画面１２１を表示させる。
【００２３】
機能選択画面１２１上では、リモコンが備えるボタンに対応する機能名１２１１とチェックボックス１２１２がペアになって表示されている。開発者は、機能名１２１１のうちこれから開発するものを選択し、チェックボックス１２１２をＯＮにする。開発者は、複数の機能を組み合わせて機能を実現したい場合は、２以上のチェックボックス１２１２をＯＮにすることもできる。
【００２４】
開発者は、これから開発する機能をチェックボックス１２１２で選択した後、決定ボタン１２１３を押下する。開発支援プログラム部１１２は、決定ボタン１２１３が押下されると、次の図３で説明する選択機能一覧画面１２２をディスプレイ１２０に表示させる。
【００２５】
図３は、ディスプレイ１２０が表示する選択機能一覧画面１２２の画面例を示す図である。選択機能一覧画面１２２は、図２の機能選択画面１２１で開発者が選択した機能をボタンとして表示する画面である。開発支援プログラム部１１２は、開発者の選択内容を受け取り、画面表示処理部１１１を介してディスプレイ１２０に選択機能一覧画面１２２を表示させる。
【００２６】
画面表示処理部１１１は、開発者が機能選択画面１２１で複数の機能を選択した場合は、対応する複数のボタンを表示させる。ここでは、図２でチェックボックス１２１２がＯＮになっている機能に対応する、入力切替ボタン１２２１とチャンネル＋ボタン１２２２を画面表示する例を示した。
【００２７】
画面表示処理部１１１はさらに、開発者が機能選択画面１２１で選択した機能を組み合わせることによって実現される機能に対応するボタンを、選択機能一覧画面１２２上に表示させる。ここでは、「入力切替」と「チャンネル＋」の組み合わせによって実現される、入力切替を伴うチャンネル＋ボタン１２２３を画面表示する例を示した。なお、各機能とその組合せによって実現される機能との対応関係は、後述の図６で説明する機能組合せテーブル１１７に記述されている。
【００２８】
開発者は、選択機能一覧画面１２２に表示されている機能ボタンのうちいずれかを押下し、次の図４に示す使用ＡＰＩ一覧画面１２３に進む。機能選択画面１２１で機能を選択し直すときは、戻るボタン１２２４を押下する。
【００２９】
選択機能一覧画面１２２は、機能選択画面１２１で開発者が選択した機能が１つのみである場合は、省略することもできる。
【００３０】
図４は、ディスプレイ１２０が表示する使用ＡＰＩ一覧画面１２３の画面例を示す図である。使用ＡＰＩ一覧画面１２３は、図３の選択機能一覧画面１２２で開発者が押下したボタンに対応する機能を実現するためのＡＰＩ一覧を表示する画面である。開発支援プログラム部１１２は、選択機能一覧画面１２２で開発者が機能ボタンを押下した結果を受け取り、画面表示処理部１１１を介してディスプレイ１２０に使用ＡＰＩ一覧画面１２３を表示させる。なお、各機能とその実現に必要となるＡＰＩの対応関係は、後述の図７で説明する使用ＡＰＩテーブル１１８に記述されている。
【００３１】
選択機能名表示欄１２３１は、選択機能一覧画面１２２で開発者が押下したボタンに対応する機能名を表示する。ＡＰＩ名表示欄１２３２は、当該機能を実現するために必要となるＡＰＩの一覧を表示する。ＡＰＩ説明表示ボタン１２３３は、ＡＰＩ名表示欄１２３２が表示している各ＡＰＩの詳細説明を表示するためのボタンである。ＡＰＩ実行ボタン１２３４は、ＡＰＩ名表示欄１２３２が表示している各ＡＰＩをデジタルテレビ２００に実行させるためのボタンである。以下、図４の画面で実行される処理の手順を説明する。
【００３２】
（図４：ステップ１）
開発者がＡＰＩ実行ボタン１２３４を押下すると、開発支援プログラム部１１２は、対応するＡＰＩをデジタルテレビに実行させるよう、プログラム実行制御部１１３に指示する。プログラム実行制御部１１３は、送受信データ処理部１１５およびデータ送受信部１１４の機能を用いて、デジタルテレビ２００に対し当該ＡＰＩ機能を実行するようリクエストする。
（図４：ステップ１：補足）
本ステップで実行指示するＡＰＩにパラメータ（引数）を渡す場合、開発者はＡＰＩ実行ボタン１２３４を押下する前に、パラメータ入力欄１２３５にそのパラメータを入力しておく。
【００３３】
（図４：ステップ２）
デジタルテレビ２００の送受信データ処理部２１３およびデータ送受信部２１２は、そのリクエストを受け取り、ＳＤＫプログラム実行制御部２１５に通知する。ＳＤＫプログラム実行制御部２１５は、対応するＡＰＩをＳＤＫプログラム格納部２１４から読み出して実行し、送受信データ処理部２１３およびデータ送受信部２１２の機能を用いて、コンピュータ１００に実行結果を返信する。
（図４：ステップ３）
コンピュータ１００の送受信データ処理部１１５およびデータ送受信部１１４は、デジタルテレビ２００からの返信を受け取り、プログラム実行制御部１１３に通知する。プログラム実行制御部１１３は、デジタルテレビ２００からの返信を開発支援プログラム部１１２に通知する。
【００３４】
（図４：ステップ４）
開発支援プログラム部１１２は、画面表示処理部１１１を介して、デジタルテレビ２００から受け取った返信をＡＰＩ実行結果表示欄１２３６に表示させる。
（図４：ステップ５）
開発者は、他の機能ボタンを選択する場合は、戻るボタン１２３７を押下して選択機能一覧画面１２２に戻る。
【００３５】
図５は、ディスプレイ１２０が表示するＡＰＩ説明画面１２４の画面例を示す図である。ＡＰＩ説明画面１２４は、各ＡＰＩの詳細説明を表示するための画面である。開発者が図４のＡＰＩ説明表示ボタン１２３３を押下すると、開発支援プログラム部１１２は、画面表示処理部１１１を介してディスプレイ１２０にＡＰＩ説明画面１２４を表示させる。ＡＰＩ説明画面１２４の内容は、後述の図７で説明する使用ＡＰＩテーブル１１８のＡＰＩ詳細列１１８３から取得することができる。
【００３６】
ＡＰＩ説明表示欄１２４１は、開発者が押下したＡＰＩ説明表示ボタン１２３３に対応するＡＰＩの詳細説明を表示する。表示内容は、（ａ）ＡＰＩ名、（ｂ）引数、（ｃ）戻り値、（ｄ）機能説明、などである。開発者が閉じるボタン１２４２を押下すると、図４の使用ＡＰＩ一覧画面１２３に戻る。
【００３７】
図６は、機能組合せテーブル１１７の構成とデータ例を示す図である。機能組合せテーブル１１７は、デジタルテレビ２００が実行する機能と、機能を複数組み合わせることによって実現される新たな機能との対応関係を記述するテーブルである。
【００３８】
機能組合せテーブル１１７は、１番目の機能名を記述する第１機能列１１７１、２番目の機能名を記述する第２機能列１１７２、第１機能と第２機能を組み合わせることによって実現される新たな機能を記述する組合せ機能列１１７３を有する。
【００３９】
１行目のデータ例は、図２の選択例に対応する機能組合せを記述している。１行目のデータ例によれば、「入力切替」機能と「チャンネル＋」機能を組み合わせることにより、「入力切替を伴うチャンネル＋」機能が実現されることが分かる。
【００４０】
図６では、２つの機能を組み合わせて新たな機能を実現する例を示したが、３以上の機能を組み合わせる場合についても同様に定義することができる。
【００４１】
図７は、使用ＡＰＩテーブル１１８の構成とデータ例を示す図である。使用ＡＰＩテーブル１１８は、デジタルテレビ２００が実行する各機能を実現するために必要なＡＰＩの一覧を記述したテーブルである。使用ＡＰＩテーブル１１８は、複数の機能を組み合わせることによって実現する機能についても同様に、必要なＡＰＩの一覧を記述している。
【００４２】
使用ＡＰＩテーブル１１８は、機能名列１１８１、使用ＡＰＩ一覧列１１８２、ＡＰＩ詳細列１１８３を有する。機能名列１１８１は、デジタルテレビ２００が実行する機能の名称を記述する。使用ＡＰＩ一覧列１１８２は、機能名列１１８１が記述する機能を実現するために必要なＡＰＩの一覧を記述する。ＡＰＩ詳細列１１８３は、各ＡＰＩの詳細説明を記述する。ＡＰＩ詳細列１１８３の内容は、ＡＰＩ説明画面１２４が表示する内容と同一である。
【００４３】
図８は、機能選択画面１２１以降の画面遷移を説明するフローである。以下、図８の各ステップについて説明する。
（図８：ステップＳ８０１）
開発者が機能選択画面１２１で決定ボタン１２１３を押下すると、開発支援プログラム部１１２は、チェックボックス１２１２のＯＮ／ＯＦＦをチェックする。
【００４４】
（図８：ステップＳ８０２）
ＯＮになっているチェックボックス１２１２が１つであればステップＳ８０３へ進み、２つ以上であればステップＳ８０４へ進む。
（図８：ステップＳ８０３）
開発支援プログラム部１１２は、画面表示処理部１１１を介してディスプレイ１２０に使用ＡＰＩ一覧画面１２３を表示させる。
【００４５】
（図８：ステップＳ８０４）
開発支援プログラム部１１２は、ＯＮになっているチェックボックス１２１２の組合せを取得する。
（図８：ステップＳ８０５）
開発支援プログラム部１１２は、ＯＮになっているチェックボックス１２１２の組合せをキーにして機能組合せテーブル１１７を検索する。該当する組合せが機能組合せテーブル１１７内に存在する場合はステップＳ８０６へ進み、存在しない場合はステップＳ８０７へ進む。
【００４６】
（図８：ステップＳ８０６）
開発支援プログラム部１１２は、ＯＮになっているチェックボックス１２１２に対応する機能と、その組合せによって実現される機能に対応する機能ボタンを、選択機能一覧画面１２２上で画面表示する機能ボタンとして生成する。
（図８：ステップＳ８０７）
開発支援プログラム部１１２は、ＯＮになっているチェックボックス１２１２に対応する機能に対応する機能ボタンを、選択機能一覧画面１２２上で画面表示する機能ボタンとして生成する。
【００４７】
（図８：ステップＳ８０８）
開発支援プログラム部１１２は、画面表示処理部１１１を介してディスプレイ１２０に選択機能一覧画面１２２を表示させる。
【００４８】
以上のように、本実施の形態１に係るデジタルテレビソフトウェア開発支援プログラム１１０は、開発者が開発しようとしている機能を実現するために必要なＡＰＩ一覧を画面表示する。これにより、開発者は所望の機能を実現するために必要なＡＰＩを逐一探す必要がなくなり、開発効率を向上させることができる。
【００４９】
また、本実施の形態１によれば、ＡＰＩをデジタルテレビ２００に実行させた結果をＡＰＩ実行結果表示欄１２３６上で確認することができるので、開発者は機能を実行したときの様子をイメージし易い。これにより、開発者がソフトウェアの完成後イメージを把握しやすくなるので、開発者の設計負担を軽減することができる。
【００５０】
また、本実施の形態１に係るソフトウェア開発支援プログラム１１０は、機能の組み合わせによって実現する新たな機能を定義する機能組合せテーブル１１７を用いて、組合せ機能を把握し、選択機能一覧画面１２２上に機能ボタンとして表示する。これにより、開発者は開発したい機能を実現するＡＰＩの組合せを検討する必要がなくなり、開発負担を軽減することができる。
【００５１】
また、本実施の形態１に係るソフトウェア開発支援プログラム１１０は、デジタルテレビ２００が実行する機能の一覧を、リモコンが搭載しているボタンと対応させて、機能選択画面１２１上に表示する。これにより、開発者はユーザインターフェースを開発する際に、ユーザの使用感をイメージしながら開発を進めることができるので、ユーザインターフェースを効率よく開発することができる。
【００５２】
＜実施の形態２＞
実施の形態１では、開発者が開発しようとしている機能を実現するために必要なＡＰＩ一覧を画面表示することにより、開発者がＡＰＩを探す手間を削減することを説明した。その他の機能として、例えばＡＰＩを用いたソースコードを自動生成するなど、開発者の負担を低減する機能を適宜設けることもできる。
【符号の説明】
【００５３】
１００：コンピュータ、１１０：ソフトウェア開発支援プログラム、１１１：画面表示処理部、１１２：開発支援プログラム部、１１３：プログラム実行制御部、１１４：データ送受信部、１１５：送受信データ処理部、１１６：入力処理部、１１７：機能組合せテーブル、１１７１：第１機能列、１１７２：第２機能列、１１７３：組合せ機能列、１１８：使用ＡＰＩテーブル、１１８１：機能名列、１１８２：使用ＡＰＩ一覧列、１１８３：ＡＰＩ詳細列、１２０：ディスプレイ、１２１：機能選択画面、１２１１：機能名、１２１２：チェックボックス、１２１３：決定ボタン、１２２：選択機能一覧画面、１２２１：入力切替ボタン、１２２２：チャンネル＋ボタン、１２２３：入力切替を伴うチャンネル＋ボタン、１２２４：戻るボタン、１２３：使用ＡＰＩ一覧画面、１２３１：選択機能名表示欄、１２３２：ＡＰＩ名表示欄、１２３３：ＡＰＩ説明表示ボタン、１２３４：ＡＰＩ実行ボタン、１２３５：パラメータ入力欄、１２３６：ＡＰＩ実行結果表示欄、１２３７：戻るボタン、１２４：ＡＰＩ説明画面、１２４１：ＡＰＩ説明表示欄、１２４２：閉じるボタン、１３０：キーボード、１４０：マウス、２００：デジタルテレビ、２１０：制御プログラム、２１１：画面表示処理部、２１２：データ送受信部、２１３：送受信データ処理部、２１４：ＳＤＫプログラム格納部、２１５：ＳＤＫプログラム実行制御部、２２０：ディスプレイ。
【図１】
2011191961.tif 000003
【図２】
2011191961.tif 000004
【図３】
2011191961.tif 000005
【図４】
2011191961.tif 000006
【図５】
2011191961.tif 000007
【図６】
2011191961.tif 000008
【図７】
2011191961.tif 000009
【図８】
2011191961.tif 000010