(57)【要約】  ソフトウェア開発支援装置（２００）の制御部は、実機（３００）のソフトウェア開発の概要の設計段階で必要な処理と、概要設計に基づく実機（３００）の動作確認に必要な処理とを実行し、概要設計の動作確認後に、概要設計に関連する詳細な設計段階に必要な処理と、詳細設計に基づく実機（３００）の動作確認に必要な処理とを実行する。制御部は、ユーザ操作による概要設計および詳細設計に基づく設計情報を作成する設計機能部と、設計情報に基づき、実機（３００）を動作させるソースコードを生成するソースコード生成機能部と、を有し、さらに、実機（３００）を動作させるために、ソースコードを実機（３００）に転送する通信機能部を有する。
2015136606.tif 000002
【特許請求の範囲】
【請求項１】
対象装置のソフトウェア開発の概要の設計段階で必要な処理と、当該概要設計に基づく前記対象装置の動作確認に必要な処理とを実行し、
前記概要設計の動作確認後に、当該概要設計に関連する詳細な設計段階に必要な処理と、当該詳細設計に基づく前記対象装置の動作確認に必要な処理とを実行する制御部、
を有することを特徴とするソフトウェア開発支援装置。
【請求項２】
前記制御部は、
ユーザ操作による前記概要設計および前記詳細設計に基づく設計情報を作成する設計機能部と、
前記設計情報に基づき、前記対象装置を動作させるソースコードを生成するソースコード生成機能部と、を有し、
さらに、前記対象装置を動作させるために、前記ソースコードを前記対象装置に転送する通信機能部を有する、
ことを特徴とする請求項１に記載のソフトウェア開発支援装置。
【請求項３】
前記制御部は、
前記概要設計の動作確認時に問題が生じた場合、再度前記概要設計と当該概要設計の動作確認に必要な処理を実行し、
前記概要設計の動作確認時の問題の修正後に前記詳細設計に移行する、
ことを特徴とする請求項１または２に記載のソフトウェア開発支援装置。
【請求項４】
前記制御部は、
前記概要設計および前記詳細設計時の前記設計情報を表示することにより、前記表示内容に対応する前記対象装置の動作を確認できる、
ことを特徴とする請求項２に記載のソフトウェア開発支援装置。
【請求項５】
コンピュータが、
対象装置のソフトウェア開発の概要の設計段階で必要な処理と、当該概要設計に基づく前記対象装置の動作確認に必要な処理と、
前記概要設計の動作確認後に、当該概要設計に関連する詳細な設計段階に必要な処理と、当該詳細設計に基づく前記対象装置の動作確認に必要な処理と、
を実行することを特徴とするソフトウェア開発支援方法。
【請求項６】
コンピュータに、
対象装置のソフトウェア開発の概要の設計段階で必要な処理と、当該概要設計に基づく前記対象装置の動作確認に必要な処理と、
前記概要設計の動作確認後に、当該概要設計に関連する詳細な設計段階に必要な処理と、当該詳細設計に基づく前記対象装置の動作確認に必要な処理と、
を実行させることを特徴とするソフトウェア開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソフトウェアの開発を支援するソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラムに関する。
【背景技術】
【０００２】
組み込み機器等におけるソフトウェアの開発は、１．仕様書の作成後、各プラットフォーム別に２．設計書、３．コード、４．テストを行っている。従来、例えば、要求機能に対応する複数のソフトウェア部品を組み合わせて、新規なソフトウェアの開発を効率化する技術が開示されている（例えば、下記特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３４２０８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の技術では、上記１．〜４．の各工程完了後に次の工程を実行し、各工程別に専門の開発者が独立して作業を行っていた。したがって、最後の４．テスト段階でデバッグが生じたときには修正が必要な工程への手戻りが必要となり、この際、修正が必要な工程を特定しなければならず手戻りの工数がかかった。【０００５】
また、工程の修正により前後の工程についても新たな修正が必要になる場合が生じた。これにより、ソフトウェア開発を効率的に行えず、全体工数を削減することができなかった。【０００６】
本発明は、上記課題に鑑み、ソフトウェアの開発を効率化できることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明のソフトウェア開発支援装置は、対象装置のソフトウェア開発の概要の設計段階で必要な処理と、当該概要設計に基づく前記対象装置の動作確認に必要な処理とを実行し、前記概要設計の動作確認後に、当該概要設計に関連する詳細な設計段階に必要な処理と、当該詳細設計に基づく前記対象装置の動作確認に必要な処理とを実行する制御部、を有することを特徴とする。【０００８】
また、前記制御部は、ユーザ操作による前記概要設計および前記詳細設計に基づく設計情報を作成する設計機能部と、前記設計情報に基づき、前記対象装置を動作させるソースコードを生成するソースコード生成機能部と、を有し、さらに、前記対象装置を動作させるために、前記ソースコードを前記対象装置に転送する通信機能部を有する、ことを特徴とする。【０００９】
また、前記制御部は、前記概要設計の動作確認時に問題が生じた場合、再度前記概要設計と当該概要設計の動作確認に必要な処理を実行し、前記概要設計の動作確認時の問題の修正後に前記詳細設計に移行する、ことを特徴とする。【００１０】
また、前記制御部は、前記概要設計および前記詳細設計時の前記設計情報を表示することにより、前記表示内容に対応する前記対象装置の動作を確認できる、ことを特徴とする。【００１１】
本発明のソフトウェア開発支援方法は、コンピュータが、対象装置のソフトウェア開発の概要の設計段階で必要な処理と、当該概要設計に基づく前記対象装置の動作確認に必要な処理と、前記概要設計の動作確認後に、当該概要設計に関連する詳細な設計段階に必要な処理と、当該詳細設計に基づく前記対象装置の動作確認に必要な処理と、を実行することを特徴とする。【００１２】
本発明のソフトウェア開発支援プログラムは、コンピュータに、対象装置のソフトウェア開発の概要の設計段階で必要な処理と、当該概要設計に基づく前記対象装置の動作確認に必要な処理と、前記概要設計の動作確認後に、当該概要設計に関連する詳細な設計段階に必要な処理と、当該詳細設計に基づく前記対象装置の動作確認に必要な処理と、を実行させることを特徴とする。【００１３】
上記構成によれば、概要設計と動作確認を行った後に、詳細設計と動作確認を行うことができ、これら概要設計と詳細設計とを分離してソフトウェア開発を行うことができる。また、概要設計時および詳細設計時にそれぞれ実機による動作確認を行うため、ソフトウェア開発の序盤から実機で動作を確認することができ、設計の手戻りを極力防ぐことができ、全体の開発工数を削減できるようになる。
【発明の効果】
【００１４】
本発明によれば、ソフトウェアの開発を効率化できるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施の形態にかかるソフトウェア開発支援装置が支援するソフトウェア開発支援の概要処理を示すフローチャートである。
【図２】図２は、ソフトウェア開発支援装置のハードウェア構成例を示すブロック図である。
【図３】図３は、ソフトウェア開発の実機の例としてのキッチンタイマーを示す図である。
【図４】図４は、実施の形態にかかるソフトウェア開発の手順を説明する図である。（その１）
【図５】図５は、実施の形態にかかるソフトウェア開発の手順を説明する図である。（その２）
【図６】図６は、実施の形態にかかるソフトウェア開発の手順を説明する図である。（その３）
【図７】図７は、実施の形態のソフトウェア開発支援装置のプログラム動作確認にかかる機能ブロック図である。
【図８】図８は、実施の形態のソフトウェア開発支援装置のプログラム動作確認の手順を説明する図である。
【図９】図９は、実施の形態のソフトウェア開発支援装置の自動テスト実行にかかる機能ブロック図である。
【図１０】図１０は、実施の形態のソフトウェア開発支援装置の自動テスト実行の手順を説明する図である。
【発明を実施するための形態】
【００１６】
（実施の形態）
以下に添付図面を参照して、この発明にかかるソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラムの好適な実施の形態を詳細に説明する。
【００１７】
（ソフトウェア開発支援の概要処理）
図１は、実施の形態にかかるソフトウェア開発支援装置が支援するソフトウェア開発支援の概要処理を示すフローチャートである。ソフトウェア開発支援装置は、下記の手順でソフトウェア開発を支援する。以下の説明では、実機としての組み込み機器を対象装置とするソフトウェア開発の支援を例に説明する。
【００１８】
はじめに、設計者がソフトウェア開発支援装置を用いてソフトウェアの概要を設計する（ステップＳ１０１）。この後、設計したソフトウェアの概要を実機で動作させ、実機上での動作を確認する（ステップＳ１０２）。ここで、概要の動作確認で問題が生じデバッグや仕様の変更が必要な場合、ステップＳ１０１に戻り、概要の設計の修正を行う（図中点線）。
【００１９】
次に、設計者がソフトウェア開発支援装置を用いてソフトウェアの詳細を設計する（ステップＳ１０３）。詳細とは、ステップＳ１０１で設計した概要を構成する複数の設計項目の一部についてのより詳細な設計内容である。この後、設計したソフトウェアの詳細を実機で動作させ、実機上での動作を確認する（ステップＳ１０４）。
【００２０】
そして、概要に含まれる複数の詳細の設計、実機確認の終了を判断し（ステップＳ１０５）、未だ設計していない詳細があればステップＳ１０３に戻る（ステップＳ１０５：Ｎｏ）。一方全ての詳細について設計および実機確認が終了すれば（ステップＳ１０５：Ｙｅｓ）、以上の処理を終了する。
【００２１】
なお、ステップＳ１０４の処理後、詳細の動作確認で問題が生じデバッグや仕様の変更が必要な場合についてもステップＳ１０３に戻り、詳細の設計の修正を行う。なお、概要の設計に対して修正が必要な場合には、ステップＳ１０１に戻ることもできる（図中点線）。
【００２２】
上記処理によれば、概要設計と詳細設計とを分離し、現時点で行っている設計についてその場で実機による動作確認を行いながらソフトウェア開発を行うことができる。これにより、概要設計に関わる開発者のみで概要設計でき、詳細設計に関わる開発者のみで詳細設計できるようになる。したがって、開発の各工程で直接関係する開発者のみで開発を進めることができ、不必要に他の開発者の手間（同席等）を煩わせることがなく、開発を効率化できる。
【００２３】
また、概要設計時および詳細設計時にそれぞれ実機による動作確認を行うため、ソフトウェア開発の序盤から実機で動作を確認することができ、設計の手戻りを極力防ぐことができ、全体の開発工数を削減できるようになる。
【００２４】
そして、詳細は後述するが、ソフトウェア開発支援装置と実機とを通信接続し、設計したソフトウェア（ソースコード）を実機に転送することにより、設計に対応する動作確認をリアルタイムに行うこともできるようになり、より効率的なソフトウェア開発が行えるようになる。
【００２５】
（ソフトウェア開発支援装置のハードウェア構成）
図２は、ソフトウェア開発支援装置のハードウェア構成例を示すブロック図である。図２において、ソフトウェア開発支援装置２００は、制御部（ＣＰＵ）２０１と、Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）２０２と、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）２０３と、半導体メモリやディスクドライブ等の記憶部２０４と、通信インターフェース（Ｉ／Ｆ）２０５と、を含む。これらＣＰＵ２０１〜通信インターフェース２０５、キーボード２０６、ディスプレイ２０７は、バス２０８によってそれぞれ接続されている。
【００２６】
ＣＰＵ２０１は、ソフトウェア開発支援装置２００の全体の制御を司る演算処理装置である。ＲＯＭ２０２は、ソフトウェア開発支援装置２００のプログラム等を記憶する不揮発性メモリである。ＲＡＭ２０３は、ＣＰＵ２０１によるプログラムの演算処理実行時のワークエリアとして使用される揮発性メモリである。記憶部２０４には、作成した設計データや実機動作データ等が格納保持される。
【００２７】
通信インターフェース２０５は、ネットワーク２１０等とのインターフェースを司り、データの入出力を制御する。具体的に、通信インターフェース２０５は、通信回線を通じてネットワーク２１０となるＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）、Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＷＡＮ）、インターネットなどに接続され、ネットワーク２１０を介して他の装置に接続される。また、通信インターフェース２０５は、ネットワーク２１０に限らず、シリアル通信やＵＳＢ接続によって他の装置に接続する構成とすることもできる。
【００２８】
特に、実施の形態では、通信インターフェース２０５を介して、ソフトウェア開発支援装置２００には、ソフトウェア開発の実機（組み込み機器）が接続される。詳細は後述するが、実機には、ソフトウェア開発支援装置２００が作成したソースコードが転送され、実機上のコンパイラがスクリプト言語のソースコードをＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）やインタプリタ形式で実行する。これによりソフトウェア開発支援装置２００で設計した内容を実機で動作させることができる。
【００２９】
キーボード２０６は、設計時や動作テスト時にユーザ操作によるデータ入力を行うために設けられる。ディスプレイ２０７は、ＣＰＵ２０１のプログラム実行により、記憶部２０４から読み出した設計データや実機動作データを表示する装置である。ディスプレイ２０７には、例えば、Ｔｈｉｎ  Ｆｉｌｍ  Ｔｒａｎｓｉｓｔｏｒ（ＴＦＴ）液晶表示部、プラズマ表示部、有機ＥＬ表示部などを採用することができる。
【００３０】
（ソフトウェア開発例）
図３は、ソフトウェア開発の実機の例としてのキッチンタイマーを示す図である。組み込み機器としてのキッチンタイマーのソフトウェア開発を例に説明する。キッチンタイマー３００は、表示部３０１と、操作ボタン３０２を有する。
【００３１】
操作ボタン３０２は、分操作ボタン３０２ａと、秒操作ボタン３０２ｂと、スタート／ストップ操作ボタン３０２ｃとを有する。また、不図示であるが、内部には、プロセッサおよびメモリによる計時機能を有する。
【００３２】
このキッチンタイマー３００は、以下の３つの状態と、４つのイベントがある。
［状態］
１．停止状態
２．カウントダウン状態
３．アラーム状態
［イベント］
１．スタート／ストップ押下イベント（ハードウェアのスタート／ストップ操作ボタン３０２ｃ）
２．分押下イベント（ハードウェアの分操作ボタン３０２ａ）
３．秒押下イベント（ハードウェアの秒操作ボタン３０２ｂ）
４．タイマー通知イベント（ＣＰＵのソフトウェア処理：カウントダウンの終了通知）
【００３３】
図４〜図６は、実施の形態にかかるソフトウェア開発の手順を説明する図である。はじめに、図４に示すように、キッチンタイマー３００のソフトウェア開発の概要設計を行う。この概要設計では、キッチンタイマー３００の画面の遷移を設計する。図４〜図６には、それぞれ画面の状態遷移を記載してあり、図４に示す各画面の表示内容はこの後の詳細設計で行う。
【００３４】
後述するが、ソフトウェア開発支援装置２００は、このソフトウェア開発の設計時に、実機であるキッチンタイマー３００をソフトウェア開発支援装置２００に接続し、動作確認を行う。
【００３５】
この概要設計では、キッチンタイマー３００が有する複数の画面を定めて、各画面間の遷移を設計する。表示部３０１の表示画面は、タイマー画面４０１と、ストップウォッチ画面４０２と、タイマー時間設定画面４０３と、がある。
【００３６】
タイマー画面４０１は、タイマーのタイムアップによりタイマー時間設定画面４０３に遷移する（状態遷移：Ｄ１）。ストップウォッチ画面４０２は、分操作ボタン３０２ａと秒操作ボタン３０２ｂの同時押しでタイマー時間設定画面４０３に遷移する（状態遷移：Ｄ２）。
【００３７】
タイマー時間設定画面４０３は、０秒以外のタイマー設定の状態でスタート／ストップ操作ボタン３０２ｃを押すとタイマー画面４０１に遷移する（状態遷移：Ｄ３）。また、０秒のタイマー設定の状態でスタート／ストップ操作ボタン３０２ｃを押すとストップウォッチ画面４０２に遷移する（状態遷移：Ｄ４）。
【００３８】
上記のように、概要設計では、表示部３０１の各表示画面４０１〜４０３と、各画面遷移だけを設計する。この際、ソフトウェア開発支援装置２００は、各表示画面４０１〜４０３と、表示画面間の遷移Ｄ１〜Ｄ４を含むソースコードを作成し、実機であるキッチンタイマー３００に転送する。
【００３９】
図４の概要設計時には、各表示画面４０１〜４０３には、例えばタイマー画面４０１であれば文字列で「タイマー画面」と表示するなど、各表示画面４０１〜４０３を識別できる程度の内容を設定しておく。これにより、ソフトウェア開発支援装置２００に接続されたキッチンタイマー３００は、各表示画面４０１〜４０３の状態で操作ボタン３０２の操作により画面遷移し、ユーザ（開発者）は、この画面遷移（動作）を実機（キッチンタイマー３００）上で確認することができる。
【００４０】
そして、この実機での確認により、画面遷移が冗長となる場合や、遷移手順が複雑となるような問題、機能に対する画面の不足問題、などをこの概要設計の時点で検出することができ、早期に対応できるようになる。
【００４１】
次に、図５に示すように、キッチンタイマー３００のソフトウェア開発の詳細設計を行う。この詳細設計では、図４により概要設計した各表示画面４０１〜４０３に表示する内容（画像、文字等）をより具体的に設計する。図５に示す例では、各表示画面４０１〜４０３に１秒単位で１時間までの時間範囲でタイマーカウント用の数値５０１を表示する例を示している。
【００４２】
表示画面４０１〜４０３に表示する画像などは、仕様設計者などが仮に作成した画像でもよい。そして、作成した表示の内容（画像、文字等）は、ソフトウェア開発支援装置２００の表示画面上でキッチンタイマー３００相当の表示画面内にドラッグ＆ドロップすることもできる。
【００４３】
これにより、ソフトウェア開発支援装置２００に接続されたキッチンタイマー３００は、各表示画面４０１〜４０３の状態で操作ボタン３０２の操作により画面遷移し、ユーザ（開発者）は、この画面遷移時の動作、すなわち、数値５０１のカウント状態等の使用感覚を実機（キッチンタイマー３００）上で確認することができる。
【００４４】
次に、図６に示すように、キッチンタイマー３００のソフトウェア開発の詳細設計を行う。この詳細設計では、図５により詳細設計した各表示画面４０１〜４０３のデザインをより具体的に設計する。図６に示す例では、各表示画面４０１〜４０３のタイマーカウント用の数値５０１のデザイン６０１（文字フォントに相当）を設計する例について示している。
【００４５】
これにより、ソフトウェア開発支援装置２００に接続されたキッチンタイマー３００は、各表示画面４０１〜４０３の状態で操作ボタン３０２の操作により画面遷移し、ユーザ（開発者）は、この画面遷移時の動作、すなわち、所定のデザイン６０１でデザインされた数値５０１のカウント状態の使用感覚を実機（キッチンタイマー３００）上で確認することができる。
【００４６】
上記のソフトウェア開発の手順によれば、図４に示した概要設計の段階で実機動作によりソフトウェア開発にかかる根本的な問題を検出可能となり、修正等の対応が可能となる。この後、図５や図６に示した詳細設計に移行することができる。
【００４７】
この点、従来では、図４〜図６に示したような階層的なソフトウェア開発を行っていないため、例えば、図６に示した詳細設計後の実機テストで問題が発生した場合、図４に示す概要設計についても見直しが必要となり、手戻りの作業にかかる工数が大きくなる。同時に、修正後には、図５、図６に示した詳細設計を再度やり直すこともある。
【００４８】
（ソフトウェア開発支援装置のプログラム動作確認の機能）
図７は、実施の形態のソフトウェア開発支援装置のプログラム動作確認にかかる機能ブロック図である。この図には、実機（キッチンタイマー３００）側の機能についても併記してある。
【００４９】
ソフトウェア開発支援装置２００は、設計機能部７０１と、ソースコード生成機能部７０２と、通信機能部７０３と、を有する。
【００５０】
設計機能部７０１は、ユーザ操作により上述した概要設計と詳細設計を行い設計情報７１１を作成する。ソースコード生成機能部７０２は、作成された設計情報７１１に基づきスクリプト言語のソースコード７１２を自動生成する。このソースコード７１２は、通信機能部７０３を介して実機（キッチンタイマー３００）に送信される。
【００５１】
図７に記載の設計機能部７０１と、ソースコード生成機能部７０２の機能は、図２に記載の制御部（ＣＰＵ２０１）がＲＯＭ２０２に格納されたプログラムを実行し、ＲＡＭ２０３を作業領域に用いることにより実現できる。図７に記載の設計情報７１１と、ソースコード７１２は、図２に記載の記憶部２０４に格納保持される。また、図７に記載の通信機能部７０３は、図２に記載の通信インターフェース２０５を用いて実現できる。
【００５２】
実機（キッチンタイマー３００）は、キッチンタイマーとしての基本機能に加えて、プログラム動作確認の追加機能部として通信機能部７２１と、スクリプト言語コンパイラ部７２２と、スクリプト言語実行部７２３と、ライブラリ機能部７２４と、を有する。なお、これらの追加機能部は、全体でも数百Ｋｂｙｔｅ程度であり、実機（キッチンタイマー３００）のメモリ消費や処理負担を抑えることができる。
【００５３】
通信機能部７２１は、ソフトウェア開発支援装置２００から送信されたソースコード７１２を受信する。スクリプト言語コンパイラ部７２２は、ソースコード７１２をコンパイルし、スクリプト言語のオブジェクトコード（ユーザの作成プログラム）７３２を生成する。
【００５４】
スクリプト言語実行部７２３は、生成されたオブジェクトコード７３２をＶＭ上で実行する。ＶＭに限らずインタプリタ形式で実行してもよい。ライブラリ機能部７２４には、予め処理速度の必要な部分や静的に処理が決まっている部分などを予めＣ言語等で作成してライブラリとして実機（キッチンタイマー３００）に組み込まれ、オブジェクトコード７３２によって呼び出される。
【００５５】
実機（キッチンタイマー３００）についても、図２同様のＣＰＵ，ＲＯＭ，ＲＡＭ，メモリを有する。また、通信機能部７２１は、このプログラム動作確認時にのみ外付けしてもよい。
【００５６】
図８は、実施の形態のソフトウェア開発支援装置のプログラム動作確認の手順を説明する図である。ソフトウェア開発支援装置２００は、汎用のＰＣを用い、通信インターフェース２０５により、通信ケーブル８００やネットワーク２１０を介して実機（キッチンタイマー３００）に通信接続する。
【００５７】
はじめに、（１）ソフトウェア開発支援装置（ＰＣ）２００の表示画面８０１上で、ユーザがソフトウェア設計する。このソフトウェア設計では、上述した概要設計および詳細設計の階層構造により状態遷移や画面レイアウトを設計する。
【００５８】
そして、（２）ソフトウェア開発支援装置（ＰＣ）２００は、設計情報７１１からスクリプト言語のソースコード７１２を自動生成する。次に、（３）ソフトウェア開発支援装置（ＰＣ）２００は、実機（キッチンタイマー３００）に対してソースコード７１２を転送する。
【００５９】
次に、（４）実機（キッチンタイマー３００）上で動作しているスクリプト言語コンパイラ部７２２に、ソースコード７１２を渡してコンパイルする。そして、生成されたオブジェクトコード７３２をスクリプト言語実行部（ＶＭ）７２３上で実行する。
【００６０】
これにより、ソフトウェア開発支援装置２００上で設計した内容を実機（キッチンタイマー３００）上で動作させることができる。そして、この動作確認は、上述したように、概要設計時、および詳細設計時、のそれぞれにおいて行うことができる。このような階層的なソフトウェア開発により、逐次確認しながら実機（キッチンタイマー３００）の動作をリアルタイムに直接見ながら行えるため、ソフトウェア開発を効率的に行えるようになる。
【００６１】
そして、ソフトウェア開発支援装置２００の表示画面８０１上には設計情報７１１に基づく期待した動作状態が表示され、実機（キッチンタイマー３００）の表示部３０１には、ソースコード７１２の実行に基づく動作状態が表示される。したがって、これら表示画面８０１と表示部３０１の異同等に基づく設計の問題抽出も行える。
【００６２】
（ソフトウェア開発支援装置の自動テスト実行の機能）
図９は、実施の形態のソフトウェア開発支援装置の自動テスト実行にかかる機能ブロック図である。この図には、実機（キッチンタイマー３００）側の機能についても併記してある。
【００６３】
上記プログラム動作確認（図７，図８参照）により所定の設計が終了した後、実機（キッチンタイマー３００）の動作確認のためのテストを自動実行することができる。
【００６４】
ソフトウェア開発支援装置２００は、テスト機能部９０１と、通信機能部７０３（図７参照）と、を有する。
【００６５】
テスト機能部９０１は、ユーザ操作によるテストシナリオによってテストシナリオデータ９１１を作成する。このテストシナリオデータ９１１は、通信機能部７０３を介して実機（キッチンタイマー３００）に転送される。
【００６６】
図９に記載のテスト機能部９０１の機能についても、図２に記載のＣＰＵ２０１がＲＯＭ２０２に格納されたプログラムを実行し、ＲＡＭ２０３を作業領域に用いることにより実現できる。図９に記載のテストシナリオデータ９１１は、図２に記載の記憶部２０４に格納保持される。
【００６７】
実機（キッチンタイマー３００）は、キッチンタイマーとしての基本機能に加えて、自動テスト実行の追加機能部として通信機能部７２１と、テスト管理機能部９２１と、を有する。
【００６８】
通信機能部７２１は、ソフトウェア開発支援装置２００から送信されたテストシナリオデータ９１１を受信する。テスト管理機能部９２１は、テストシナリオデータ９１１を読み込み解釈する。
【００６９】
そして、テスト管理機能部９２１は、ユーザ作成プログラム９３１、すなわち、実機（キッチンタイマー３００）として作成したプログラム（アプリケーション）に対して、テスト用模擬情報（イベント／データ）の通知を行い、テストを自動実行する。また、テスト管理機能部９２１は、テスト実行結果を取得して、ソフトウェア開発支援装置２００に転送する。
【００７０】
図１０は、実施の形態のソフトウェア開発支援装置の自動テスト実行の手順を説明する図である。ソフトウェア開発支援装置２００は、上述したプログラム動作確認（図８参照）の後に、実機（キッチンタイマー３００）として作成したプログラム（アプリケーション）に対する自動テストを実行する。
【００７１】
はじめに、（１）ソフトウェア開発支援装置（ＰＣ）２００の表示画面８０１上で、ユーザ操作によるテストシナリオによってテストシナリオデータ９１１を作成する。そして、（２）このテストシナリオデータ９１１は、通信機能部７０３を介して実機（キッチンタイマー３００）に転送される。
【００７２】
そして、（３）実機（キッチンタイマー３００）では、ソフトウェア開発支援装置２００から送信されたテストシナリオデータ９１１を受信し、テスト管理機能部９２１がテストシナリオデータ９１１を読み込み解釈する。そして、テスト管理機能部９２１は、ユーザ作成プログラム９３１（キッチンタイマー３００のアプリケーション）に対して、テスト用模擬情報（イベント／データ）の通知を行い、テストを自動実行する。
【００７３】
この後、（４）テスト管理機能部９２１は、テスト結果を取得して、ソフトウェア開発支援装置２００に送信する。（５）ソフトウェア開発支援装置２００は、実機（キッチンタイマー３００）から送信されたテスト結果を受信し、テスト結果を管理する。例えば、テスト結果をソフトウェア開発支援装置２００の表示画面８０１上に表示したり、外部出力したりする。
【００７４】
これにより、ソフトウェア開発支援装置２００上で作成したテストデータを実機（キッチンタイマー３００）上で動作させ自動テストを実行することができる。そして、この自動テストは、ソフトウェア開発支援装置２００に実機（キッチンタイマー３００）を接続した状態で、実機（キッチンタイマー３００）の動作をリアルタイムに直接見ながら行える。
【００７５】
この際、テストシナリオデータ９１１にしたがい、例えばイベント毎にテストを実行していくことができ、テスト実行結果、例えば合否結果やテスト動作状態を逐次確認できるため、テスト効率を向上できるようになる。
【００７６】
上記実施の形態では、実機としてキッチンタイマーの表示の設計例を説明したが、これに限らず各種の組み込み機器や表示以外の設計にも同様に適用することができ、組み込み機器のソフトウェア開発を効率化できるようになる。
【００７７】
以上説明したように、実施の形態によれば、概要設計と詳細設計とを明確に分離してソフトウェア開発を行うことができ、開発の各工程で直接関係する開発者のみで開発を進めることができるため、開発を効率化できる。
【００７８】
また、概要設計時および詳細設計時にそれぞれ実機による動作確認を行うことができるため、ソフトウェア開発の序盤から実機で動作を確認することができ、設計の手戻りを極力防ぐことができ、全体の開発工数を削減できるようになる。
【００７９】
さらには、テストデータを実機に転送することにより、実機の動作をリアルタイムに直接見ながら動作のテストを自動実行することができるようになり、テストを含めたソフトウェア開発の効率化を図ることができるようになる。
【産業上の利用可能性】
【００８０】
以上のように、本発明は、組み込み機器等の対象装置のプログラム開発を支援する装置に有用である。
【符号の説明】
【００８１】
２００  ソフトウェア開発支援装置
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  記憶部
２０５  通信インターフェース
３００  実機（キッチンタイマー）
３０１  表示部
３０２  操作ボタン
４０１〜４０３，８０１  表示画面
７０１  設計機能部
７０２  ソースコード生成機能部
７０３，７２１  通信機能部
７１１  設計情報
７１２  ソースコード
７２２  スクリプト言語コンパイラ部
７２３  スクリプト言語実行部
７２４  ライブラリ機能部
７３２  スクリプト言語オブジェクトコード
８００  通信ケーブル
９０１  テスト機能部
９１１  テストシナリオデータ
９２１  テスト管理機能部
９３１  ユーザ作成プログラム
【図１】
2015136606.tif 000003
【図２】
2015136606.tif 000004
【図３】
2015136606.tif 000005
【図４】
2015136606.tif 000006
【図５】
2015136606.tif 000007
【図６】
2015136606.tif 000008
【図７】
2015136606.tif 000009
【図８】
2015136606.tif 000010
【図９】
2015136606.tif 000011
【図１０】
2015136606.tif 000012
【国際調査報告】
2015136606.tif 000013
2015136606.tif 000014
2015136606.tif 000015
2015136606.tif 000016