国際・国内特許データベース検索
このアプリケーションの一部のコンテンツは現在ご利用になれません。
この状況が続く場合は、次のお問い合わせ先までご連絡ください。フィードバック & お問い合わせ
1. (WO2015136607) ソフトウェア開発支援システム、ソフトウェア開発支援方法およびソフトウェア開発支援プログラム
Document

明 細 書

発明の名称 ソフトウェア開発支援システム、ソフトウェア開発支援方法およびソフトウェア開発支援プログラム

技術分野

0001  

背景技術

0002  

先行技術文献

特許文献

0003  

発明の概要

発明が解決しようとする課題

0004   0005   0006  

課題を解決するための手段

0007   0008   0009   0010   0011   0012   0013   0014  

発明の効果

0015  

図面の簡単な説明

0016  

発明を実施するための形態

0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080  

産業上の利用可能性

0081  

符号の説明

0082  

請求の範囲

1   2   3   4   5   6   7  

図面

1   2   3   4   5   6   7   8   9   10  

明 細 書

発明の名称 : ソフトウェア開発支援システム、ソフトウェア開発支援方法およびソフトウェア開発支援プログラム

技術分野

[0001]
 この発明は、ソフトウェアの開発を支援するソフトウェア開発支援システム、ソフトウェア開発支援方法およびソフトウェア開発支援プログラムに関する。

背景技術

[0002]
 組み込み機器等におけるソフトウェアの開発は、1.仕様書の作成後、各プラットフォーム別に2.設計書、3.コード、4.テストを行っている。従来、例えば、要求機能に対応する複数のソフトウェア部品を組み合わせて、新規なソフトウェアの開発を効率化する技術が開示されている(例えば、下記特許文献1参照。)。

先行技術文献

特許文献

[0003]
特許文献1 : 特開2002-342083号公報

発明の概要

発明が解決しようとする課題

[0004]
 従来の技術では、上記1.~4.の各工程完了後に次の工程を実行し、各工程別に専門の開発者が独立して作業を行っていた。したがって、最後の4.テスト段階でデバッグが生じたときには修正が必要な工程への手戻りが必要となり、この際、修正が必要な工程を特定しなければならず手戻りの工数がかかった。
[0005]
 また、工程の修正により前後の工程についても新たな修正が必要になる場合が生じた。これにより、ソフトウェア開発を効率的に行えず、全体工数を削減することができなかった。
[0006]
 本発明は、上記課題に鑑み、ソフトウェアの開発を効率化できることを目的とする。

課題を解決するための手段

[0007]
 上記目的を達成するため、本発明のソフトウェア開発支援システムは、ソフトウェア開発の対象装置をソフトウェア開発支援装置に接続してなるソフトウェア開発支援システムにおいて、前記ソフトウェア開発支援装置は、ユーザ操作による前記対象装置のソフトウェア開発の設計情報を作成し、当該設計情報に対応するデータを前記対象装置に転送し、前記対象装置は、前記設計情報の作成毎の前記データを受信し、前記設計情報に対応して前記対象装置を実際に動作させる、ことを特徴とする。
[0008]
 また、前記ソフトウェア開発支援装置は、ユーザ操作による前記対象装置のソフトウェア開発の設計情報を作成する設計機能部と、前記設計情報に基づき、前記対象装置を動作させるソースコードを生成するソースコード生成機能部と、前記対象装置を動作させるために、前記ソースコードを前記対象装置に転送する通信機能部と、を有し、前記対象装置は、前記ソースコードを受信する通信機能部と、前記ソースコードを解読し、オブジェクトコードを生成するコンパイラ部と、前記オブジェクトコードをバーチャルマシン上で実行する実行部と、を有する、ことを特徴とする。
[0009]
 また、前記ソフトウェア開発支援装置は、ユーザ操作による前記対象装置の動作テスト用のテストデータを作成するテスト機能部と、前記テストデータを前記対象装置に転送する通信機能部と、を有し、前記対象装置は、前記テストデータを受信する通信機能部と、開発したプログラムに対し、前記テストデータを用いて動作テストを行うテスト管理機能部と、を有する、ことを特徴とする。
[0010]
 また、前記テスト管理機能部は、前記動作テストの実行結果を前記ソフトウェア開発支援装置に対して転送する、ことを特徴とする。
[0011]
 また、本発明のソフトウェア開発支援方法は、ソフトウェア開発の対象装置をソフトウェア開発支援装置に接続してなるソフトウェア開発支援方法において、前記ソフトウェア開発支援装置は、ユーザ操作による前記対象装置のソフトウェア開発の設計情報を作成し、当該設計情報に対応するデータを前記対象装置に転送し、前記対象装置は、前記設計情報の作成毎の前記データを受信し、前記設計情報に対応して前記対象装置を実際に動作させる、ことを特徴とする。
[0012]
 また、本発明のソフトウェア開発支援プログラムは、ソフトウェア開発の対象装置をソフトウェア開発支援装置に接続してなるソフトウェア開発支援プログラムにおいて、前記ソフトウェア開発支援装置のコンピュータに、ユーザ操作による前記対象装置のソフトウェア開発の設計情報を作成し、当該設計情報に対応するデータを前記対象装置に転送する処理を実行させる、ことを特徴とする。
[0013]
 また、本発明のソフトウェア開発支援プログラムは、前記対象装置のコンピュータに、前記設計情報の作成毎の前記データを受信し、前記設計情報に対応して前記対象装置を実際に動作させる処理を実行させる、ことを特徴とする。
[0014]
 上記構成によれば、ソフトウェア開発支援装置は、対象装置のソフトウェア開発の設計情報を作成すると、設計情報に対応するデータを接続された対象装置に転送する。対象装置は、設計情報の作成毎のデータを受信し、設計情報に対応して対象装置を実際に動作させる。これにより、設計毎の実機の実際の動作確認を行うことができ、設計の手戻りをなくし、ソフトウェア開発を効率的に行えるようになる。

発明の効果

[0015]
 本発明によれば、ソフトウェアの開発を効率化できるという効果を奏する。

図面の簡単な説明

[0016]
[図1] 図1は、実施の形態にかかるソフトウェア開発支援装置が支援するソフトウェア開発支援の概要処理を示すフローチャートである。
[図2] 図2は、ソフトウェア開発支援装置のハードウェア構成例を示すブロック図である。
[図3] 図3は、ソフトウェア開発の実機の例としてのキッチンタイマーを示す図である。
[図4] 図4は、実施の形態にかかるソフトウェア開発の手順を説明する図である。(その1)
[図5] 図5は、実施の形態にかかるソフトウェア開発の手順を説明する図である。(その2)
[図6] 図6は、実施の形態にかかるソフトウェア開発の手順を説明する図である。(その3)
[図7] 図7は、実施の形態のソフトウェア開発支援装置のプログラム動作確認にかかる機能ブロック図である。
[図8] 図8は、実施の形態のソフトウェア開発支援装置のプログラム動作確認の手順を説明する図である。
[図9] 図9は、実施の形態のソフトウェア開発支援装置の自動テスト実行にかかる機能ブロック図である。
[図10] 図10は、実施の形態のソフトウェア開発支援装置の自動テスト実行の手順を説明する図である。

発明を実施するための形態

[0017]
(実施の形態)
 以下に添付図面を参照して、この発明にかかるソフトウェア開発支援システム、ソフトウェア開発支援方法およびソフトウェア開発支援プログラムの好適な実施の形態を詳細に説明する。
[0018]
(ソフトウェア開発支援の概要処理)
 図1は、実施の形態にかかるソフトウェア開発支援装置が支援するソフトウェア開発支援の概要処理を示すフローチャートである。ソフトウェア開発支援装置は、下記の手順でソフトウェア開発を支援する。以下の説明では、実機としての組み込み機器を対象装置とするソフトウェア開発の支援を例に説明する。
[0019]
 はじめに、設計者がソフトウェア開発支援装置を用いてソフトウェアの概要を設計する(ステップS101)。この後、設計したソフトウェアの概要を実機で動作させ、実機上での動作を確認する(ステップS102)。ここで、概要の動作確認で問題が生じデバッグや仕様の変更が必要な場合、ステップS101に戻り、概要の設計の修正を行う(図中点線)。
[0020]
 次に、設計者がソフトウェア開発支援装置を用いてソフトウェアの詳細を設計する(ステップS103)。詳細とは、ステップS101で設計した概要を構成する複数の設計項目の一部についてのより詳細な設計内容である。この後、設計したソフトウェアの詳細を実機で動作させ、実機上での動作を確認する(ステップS104)。
[0021]
 そして、概要に含まれる複数の詳細の設計、実機確認の終了を判断し(ステップS105)、未だ設計していない詳細があればステップS103に戻る(ステップS105:No)。一方全ての詳細について設計および実機確認が終了すれば(ステップS105:Yes)、以上の処理を終了する。
[0022]
 なお、ステップS104の処理後、詳細の動作確認で問題が生じデバッグや仕様の変更が必要な場合についてもステップS103に戻り、詳細の設計の修正を行う。なお、概要の設計に対して修正が必要な場合には、ステップS101に戻ることもできる(図中点線)。
[0023]
 上記処理によれば、概要設計と詳細設計とを分離し、現時点で行っている設計についてその場で実機による動作確認を行いながらソフトウェア開発を行うことができる。これにより、概要設計に関わる開発者のみで概要設計でき、詳細設計に関わる開発者のみで詳細設計できるようになる。したがって、開発の各工程で直接関係する開発者のみで開発を進めることができ、不必要に他の開発者の手間(同席等)を煩わせることがなく、開発を効率化できる。
[0024]
 また、概要設計時および詳細設計時にそれぞれ実機による動作確認を行うため、ソフトウェア開発の序盤から実機で動作を確認することができ、設計の手戻りを極力防ぐことができ、全体の開発工数を削減できるようになる。
[0025]
 そして、詳細は後述するが、ソフトウェア開発支援装置と実機とを通信接続し、設計したソフトウェア(ソースコード)を実機に転送することにより、設計に対応する動作確認をリアルタイムに行うこともできるようになり、より効率的なソフトウェア開発が行えるようになる。
[0026]
(ソフトウェア開発支援装置のハードウェア構成)
 図2は、ソフトウェア開発支援装置のハードウェア構成例を示すブロック図である。図2において、ソフトウェア開発支援装置200は、制御部(CPU)201と、Read-Only Memory(ROM)202と、Random Access Memory(RAM)203と、半導体メモリやディスクドライブ等の記憶部204と、通信インターフェース(I/F)205と、を含む。これらCPU201~通信インターフェース205、キーボード206、ディスプレイ207は、バス208によってそれぞれ接続されている。
[0027]
 CPU201は、ソフトウェア開発支援装置200の全体の制御を司る演算処理装置である。ROM202は、ソフトウェア開発支援装置200のプログラム等を記憶する不揮発性メモリである。RAM203は、CPU201によるプログラムの演算処理実行時のワークエリアとして使用される揮発性メモリである。記憶部204には、作成した設計データや実機動作データ等が格納保持される。
[0028]
 通信インターフェース205は、ネットワーク210等とのインターフェースを司り、データの入出力を制御する。具体的に、通信インターフェース205は、通信回線を通じてネットワーク210となるLocal Area Network(LAN)、Wide Area Network(WAN)、インターネットなどに接続され、ネットワーク210を介して他の装置に接続される。また、通信インターフェース205は、ネットワーク210に限らず、シリアル通信やUSB接続によって他の装置に接続する構成とすることもできる。
[0029]
 特に、実施の形態では、通信インターフェース205を介して、ソフトウェア開発支援装置200には、ソフトウェア開発の実機(組み込み機器)が接続される。詳細は後述するが、実機には、ソフトウェア開発支援装置200が作成したソースコードが転送され、実機上のコンパイラがスクリプト言語のソースコードをVM(Virtual Machine)やインタプリタ形式で実行する。これによりソフトウェア開発支援装置200で設計した内容を実機で動作させることができる。
[0030]
 キーボード206は、設計時や動作テスト時にユーザ操作によるデータ入力を行うために設けられる。ディスプレイ207は、CPU201のプログラム実行により、記憶部204から読み出した設計データや実機動作データを表示する装置である。ディスプレイ207には、例えば、Thin Film Transistor(TFT)液晶表示部、プラズマ表示部、有機EL表示部などを採用することができる。
[0031]
(ソフトウェア開発例)
 図3は、ソフトウェア開発の実機の例としてのキッチンタイマーを示す図である。組み込み機器としてのキッチンタイマーのソフトウェア開発を例に説明する。キッチンタイマー300は、表示部301と、操作ボタン302を有する。
[0032]
 操作ボタン302は、分操作ボタン302aと、秒操作ボタン302bと、スタート/ストップ操作ボタン302cとを有する。また、不図示であるが、内部には、プロセッサおよびメモリによる計時機能を有する。
[0033]
 このキッチンタイマー300は、以下の3つの状態と、4つのイベントがある。
[状態]
 1.停止状態
 2.カウントダウン状態
 3.アラーム状態
[イベント]
 1.スタート/ストップ押下イベント(ハードウェアのスタート/ストップ操作ボタン302c)
 2.分押下イベント(ハードウェアの分操作ボタン302a)
 3.秒押下イベント(ハードウェアの秒操作ボタン302b)
 4.タイマー通知イベント(CPUのソフトウェア処理:カウントダウンの終了通知)
[0034]
 図4~図6は、実施の形態にかかるソフトウェア開発の手順を説明する図である。はじめに、図4に示すように、キッチンタイマー300のソフトウェア開発の概要設計を行う。この概要設計では、キッチンタイマー300の画面の遷移を設計する。図4~図6には、それぞれ画面の状態遷移を記載してあり、図4に示す各画面の表示内容はこの後の詳細設計で行う。
[0035]
 後述するが、ソフトウェア開発支援装置200は、このソフトウェア開発の設計時に、実機であるキッチンタイマー300をソフトウェア開発支援装置200に接続し、動作確認を行う。
[0036]
 この概要設計では、キッチンタイマー300が有する複数の画面を定めて、各画面間の遷移を設計する。表示部301の表示画面は、タイマー画面401と、ストップウォッチ画面402と、タイマー時間設定画面403と、がある。
[0037]
 タイマー画面401は、タイマーのタイムアップによりタイマー時間設定画面403に遷移する(状態遷移:D1)。ストップウォッチ画面402は、分操作ボタン302aと秒操作ボタン302bの同時押しでタイマー時間設定画面403に遷移する(状態遷移:D2)。
[0038]
 タイマー時間設定画面403は、0秒以外のタイマー設定の状態でスタート/ストップ操作ボタン302cを押すとタイマー画面401に遷移する(状態遷移:D3)。また、0秒のタイマー設定の状態でスタート/ストップ操作ボタン302cを押すとストップウォッチ画面402に遷移する(状態遷移:D4)。
[0039]
 上記のように、概要設計では、表示部301の各表示画面401~403と、各画面遷移だけを設計する。この際、ソフトウェア開発支援装置200は、各表示画面401~403と、表示画面間の遷移D1~D4を含むソースコードを作成し、実機であるキッチンタイマー300に転送する。
[0040]
 図4の概要設計時には、各表示画面401~403には、例えばタイマー画面401であれば文字列で「タイマー画面」と表示するなど、各表示画面401~403を識別できる程度の内容を設定しておく。これにより、ソフトウェア開発支援装置200に接続されたキッチンタイマー300は、各表示画面401~403の状態で操作ボタン302の操作により画面遷移し、ユーザ(開発者)は、この画面遷移(動作)を実機(キッチンタイマー300)上で確認することができる。
[0041]
 そして、この実機での確認により、画面遷移が冗長となる場合や、遷移手順が複雑となるような問題、機能に対する画面の不足問題、などをこの概要設計の時点で検出することができ、早期に対応できるようになる。
[0042]
 次に、図5に示すように、キッチンタイマー300のソフトウェア開発の詳細設計を行う。この詳細設計では、図4により概要設計した各表示画面401~403に表示する内容(画像、文字等)をより具体的に設計する。図5に示す例では、各表示画面401~403に1秒単位で1時間までの時間範囲でタイマーカウント用の数値501を表示する例を示している。
[0043]
 表示画面401~403に表示する画像などは、仕様設計者などが仮に作成した画像でもよい。そして、作成した表示の内容(画像、文字等)は、ソフトウェア開発支援装置200の表示画面上でキッチンタイマー300相当の表示画面内にドラッグ&ドロップすることもできる。
[0044]
 これにより、ソフトウェア開発支援装置200に接続されたキッチンタイマー300は、各表示画面401~403の状態で操作ボタン302の操作により画面遷移し、ユーザ(開発者)は、この画面遷移時の動作、すなわち、数値501のカウント状態等の使用感覚を実機(キッチンタイマー300)上で確認することができる。
[0045]
 次に、図6に示すように、キッチンタイマー300のソフトウェア開発の詳細設計を行う。この詳細設計では、図5により詳細設計した各表示画面401~403のデザインをより具体的に設計する。図6に示す例では、各表示画面401~403のタイマーカウント用の数値501のデザイン601(文字フォントに相当)を設計する例について示している。
[0046]
 これにより、ソフトウェア開発支援装置200に接続されたキッチンタイマー300は、各表示画面401~403の状態で操作ボタン302の操作により画面遷移し、ユーザ(開発者)は、この画面遷移時の動作、すなわち、所定のデザイン601でデザインされた数値501のカウント状態の使用感覚を実機(キッチンタイマー300)上で確認することができる。
[0047]
 上記のソフトウェア開発の手順によれば、図4に示した概要設計の段階で実機動作によりソフトウェア開発にかかる根本的な問題を検出可能となり、修正等の対応が可能となる。この後、図5や図6に示した詳細設計に移行することができる。
[0048]
 この点、従来では、図4~図6に示したような階層的なソフトウェア開発を行っていないため、例えば、図6に示した詳細設計後の実機テストで問題が発生した場合、図4に示す概要設計についても見直しが必要となり、手戻りの作業にかかる工数が大きくなる。同時に、修正後には、図5、図6に示した詳細設計を再度やり直すこともある。
[0049]
(ソフトウェア開発支援装置のプログラム動作確認の機能)
 図7は、実施の形態のソフトウェア開発支援装置のプログラム動作確認にかかる機能ブロック図である。この図には、実機(キッチンタイマー300)側の機能についても併記してある。
[0050]
 ソフトウェア開発支援装置200は、設計機能部701と、ソースコード生成機能部702と、通信機能部703と、を有する。
[0051]
 設計機能部701は、ユーザ操作により上述した概要設計と詳細設計を行い設計情報711を作成する。ソースコード生成機能部702は、作成された設計情報711に基づきスクリプト言語のソースコード712を自動生成する。このソースコード712は、通信機能部703を介して実機(キッチンタイマー300)に送信される。
[0052]
 図7に記載の設計機能部701と、ソースコード生成機能部702の機能は、図2に記載の制御部(CPU201)がROM202に格納されたプログラムを実行し、RAM203を作業領域に用いることにより実現できる。図7に記載の設計情報711と、ソースコード712は、図2に記載の記憶部204に格納保持される。また、図7に記載の通信機能部703は、図2に記載の通信インターフェース205を用いて実現できる。
[0053]
 実機(キッチンタイマー300)は、キッチンタイマーとしての基本機能に加えて、プログラム動作確認の追加機能部として通信機能部721と、スクリプト言語コンパイラ部722と、スクリプト言語実行部723と、ライブラリ機能部724と、を有する。なお、これらの追加機能部は、全体でも数百Kbyte程度であり、実機(キッチンタイマー300)のメモリ消費や処理負担を抑えることができる。
[0054]
 通信機能部721は、ソフトウェア開発支援装置200から送信されたソースコード712を受信する。スクリプト言語コンパイラ部722は、ソースコード712をコンパイルし、スクリプト言語のオブジェクトコード(ユーザの作成プログラム)732を生成する。
[0055]
 スクリプト言語実行部723は、生成されたオブジェクトコード732をVM上で実行する。VMに限らずインタプリタ形式で実行してもよい。ライブラリ機能部724には、予め処理速度の必要な部分や静的に処理が決まっている部分などを予めC言語等で作成してライブラリとして実機(キッチンタイマー300)に組み込まれ、オブジェクトコード732によって呼び出される。
[0056]
 実機(キッチンタイマー300)についても、図2同様のCPU,ROM,RAM,メモリを有する。また、通信機能部721は、このプログラム動作確認時にのみ外付けしてもよい。
[0057]
 図8は、実施の形態のソフトウェア開発支援装置のプログラム動作確認の手順を説明する図である。ソフトウェア開発支援装置200は、汎用のPCを用い、通信インターフェース205により、通信ケーブル800やネットワーク210を介して実機(キッチンタイマー300)に通信接続する。
[0058]
 はじめに、(1)ソフトウェア開発支援装置(PC)200の表示画面801上で、ユーザがソフトウェア設計する。このソフトウェア設計では、上述した概要設計および詳細設計の階層構造により状態遷移や画面レイアウトを設計する。
[0059]
 そして、(2)ソフトウェア開発支援装置(PC)200は、設計情報711からスクリプト言語のソースコード712を自動生成する。次に、(3)ソフトウェア開発支援装置(PC)200は、実機(キッチンタイマー300)に対してソースコード712を転送する。
[0060]
 次に、(4)実機(キッチンタイマー300)上で動作しているスクリプト言語コンパイラ部722に、ソースコード712を渡してコンパイルする。そして、生成されたオブジェクトコード732をスクリプト言語実行部(VM)723上で実行する。
[0061]
 これにより、ソフトウェア開発支援装置200上で設計した内容を実機(キッチンタイマー300)上で動作させることができる。そして、この動作確認は、上述したように、概要設計時、および詳細設計時、のそれぞれにおいて行うことができる。このような階層的なソフトウェア開発により、逐次確認しながら実機(キッチンタイマー300)の動作をリアルタイムに直接見ながら行えるため、ソフトウェア開発を効率的に行えるようになる。
[0062]
 そして、ソフトウェア開発支援装置200の表示画面801上には設計情報711に基づく期待した動作状態が表示され、実機(キッチンタイマー300)の表示部301には、ソースコード712の実行に基づく動作状態が表示される。したがって、これら表示画面801と表示部301の異同等に基づく設計の問題抽出も行える。
[0063]
(ソフトウェア開発支援装置の自動テスト実行の機能)
 図9は、実施の形態のソフトウェア開発支援装置の自動テスト実行にかかる機能ブロック図である。この図には、実機(キッチンタイマー300)側の機能についても併記してある。
[0064]
 上記プログラム動作確認(図7,図8参照)により所定の設計が終了した後、実機(キッチンタイマー300)の動作確認のためのテストを自動実行することができる。
[0065]
 ソフトウェア開発支援装置200は、テスト機能部901と、通信機能部703(図7参照)と、を有する。
[0066]
 テスト機能部901は、ユーザ操作によるテストシナリオによってテストシナリオデータ911を作成する。このテストシナリオデータ911は、通信機能部703を介して実機(キッチンタイマー300)に転送される。
[0067]
 図9に記載のテスト機能部901の機能についても、図2に記載のCPU201がROM202に格納されたプログラムを実行し、RAM203を作業領域に用いることにより実現できる。図9に記載のテストシナリオデータ911は、図2に記載の記憶部204に格納保持される。
[0068]
 実機(キッチンタイマー300)は、キッチンタイマーとしての基本機能に加えて、自動テスト実行の追加機能部として通信機能部721と、テスト管理機能部921と、を有する。
[0069]
 通信機能部721は、ソフトウェア開発支援装置200から送信されたテストシナリオデータ911を受信する。テスト管理機能部921は、テストシナリオデータ911を読み込み解釈する。
[0070]
 そして、テスト管理機能部921は、ユーザ作成プログラム931、すなわち、実機(キッチンタイマー300)として作成したプログラム(アプリケーション)に対して、テスト用模擬情報(イベント/データ)の通知を行い、テストを自動実行する。また、テスト管理機能部921は、テスト実行結果を取得して、ソフトウェア開発支援装置200に転送する。
[0071]
 図10は、実施の形態のソフトウェア開発支援装置の自動テスト実行の手順を説明する図である。ソフトウェア開発支援装置200は、上述したプログラム動作確認(図8参照)の後に、実機(キッチンタイマー300)として作成したプログラム(アプリケーション)に対する自動テストを実行する。
[0072]
 はじめに、(1)ソフトウェア開発支援装置(PC)200の表示画面801上で、ユーザ操作によるテストシナリオによってテストシナリオデータ911を作成する。そして、(2)このテストシナリオデータ911は、通信機能部703を介して実機(キッチンタイマー300)に転送される。
[0073]
 そして、(3)実機(キッチンタイマー300)では、ソフトウェア開発支援装置200から送信されたテストシナリオデータ911を受信し、テスト管理機能部921がテストシナリオデータ911を読み込み解釈する。そして、テスト管理機能部921は、ユーザ作成プログラム931(キッチンタイマー300のアプリケーション)に対して、テスト用模擬情報(イベント/データ)の通知を行い、テストを自動実行する。
[0074]
 この後、(4)テスト管理機能部921は、テスト結果を取得して、ソフトウェア開発支援装置200に送信する。(5)ソフトウェア開発支援装置200は、実機(キッチンタイマー300)から送信されたテスト結果を受信し、テスト結果を管理する。例えば、テスト結果をソフトウェア開発支援装置200の表示画面801上に表示したり、外部出力したりする。
[0075]
 これにより、ソフトウェア開発支援装置200上で作成したテストデータを実機(キッチンタイマー300)上で動作させ自動テストを実行することができる。そして、この自動テストは、ソフトウェア開発支援装置200に実機(キッチンタイマー300)を接続した状態で、実機(キッチンタイマー300)の動作をリアルタイムに直接見ながら行える。
[0076]
 この際、テストシナリオデータ911にしたがい、例えばイベント毎にテストを実行していくことができ、テスト実行結果、例えば合否結果やテスト動作状態を逐次確認できるため、テスト効率を向上できるようになる。
[0077]
 上記実施の形態では、実機としてキッチンタイマーの表示の設計例を説明したが、これに限らず各種の組み込み機器や表示以外の設計にも同様に適用することができ、組み込み機器のソフトウェア開発を効率化できるようになる。
[0078]
 以上説明したように、実施の形態によれば、概要設計と詳細設計とを明確に分離してソフトウェア開発を行うことができ、開発の各工程で直接関係する開発者のみで開発を進めることができるため、開発を効率化できる。
[0079]
 また、概要設計時および詳細設計時にそれぞれ実機による動作確認を行うことができるため、ソフトウェア開発の序盤から実機で動作を確認することができ、設計の手戻りを極力防ぐことができ、全体の開発工数を削減できるようになる。
[0080]
 さらには、テストデータを実機に転送することにより、実機の動作をリアルタイムに直接見ながら動作のテストを自動実行することができるようになり、テストを含めたソフトウェア開発の効率化を図ることができるようになる。

産業上の利用可能性

[0081]
 以上のように、本発明は、組み込み機器等の対象装置のプログラム開発を支援する装置に有用である。

符号の説明

[0082]
 200 ソフトウェア開発支援装置
 201 CPU
 202 ROM
 203 RAM
 204 記憶部
 205 通信インターフェース
 300 実機(キッチンタイマー)
 301 表示部
 302 操作ボタン
 401~403,801 表示画面
 701 設計機能部
 702 ソースコード生成機能部
 703,721 通信機能部
 711 設計情報
 712 ソースコード
 722 スクリプト言語コンパイラ部
 723 スクリプト言語実行部
 724 ライブラリ機能部
 732 スクリプト言語オブジェクトコード
 800 通信ケーブル
 901 テスト機能部
 911 テストシナリオデータ
 921 テスト管理機能部
 931 ユーザ作成プログラム

請求の範囲

[請求項1]
 ソフトウェア開発の対象装置をソフトウェア開発支援装置に接続してなるソフトウェア開発支援システムにおいて、
 前記ソフトウェア開発支援装置は、
 ユーザ操作による前記対象装置のソフトウェア開発の設計情報を作成し、当該設計情報に対応するデータを前記対象装置に転送し、
 前記対象装置は、
 前記設計情報の作成毎の前記データを受信し、前記設計情報に対応して前記対象装置を実際に動作させる、
 ことを特徴とするソフトウェア開発支援システム。
[請求項2]
 前記ソフトウェア開発支援装置は、
 ユーザ操作による前記対象装置のソフトウェア開発の設計情報を作成する設計機能部と、
 前記設計情報に基づき、前記対象装置を動作させるソースコードを生成するソースコード生成機能部と、
 前記対象装置を動作させるために、前記ソースコードを前記対象装置に転送する通信機能部と、を有し、
 前記対象装置は、
 前記ソースコードを受信する通信機能部と、
 前記ソースコードを解読し、オブジェクトコードを生成するコンパイラ部と、
 前記オブジェクトコードをバーチャルマシン上で実行する実行部と、を有する、
 ことを特徴とする請求項1に記載のソフトウェア開発支援システム。
[請求項3]
 前記ソフトウェア開発支援装置は、
 ユーザ操作による前記対象装置の動作テスト用のテストデータを作成するテスト機能部と、
 前記テストデータを前記対象装置に転送する通信機能部と、を有し、
 前記対象装置は、
 前記テストデータを受信する通信機能部と、
 開発したプログラムに対し、前記テストデータを用いて動作テストを行うテスト管理機能部と、を有する、
 ことを特徴とする請求項1または2に記載のソフトウェア開発支援システム。
[請求項4]
 前記テスト管理機能部は、
 前記動作テストの実行結果を前記ソフトウェア開発支援装置に対して転送する、
 ことを特徴とする請求項3に記載のソフトウェア開発支援システム。
[請求項5]
 ソフトウェア開発の対象装置をソフトウェア開発支援装置に接続してなるソフトウェア開発支援方法において、
 前記ソフトウェア開発支援装置は、
 ユーザ操作による前記対象装置のソフトウェア開発の設計情報を作成し、当該設計情報に対応するデータを前記対象装置に転送し、
 前記対象装置は、
 前記設計情報の作成毎の前記データを受信し、前記設計情報に対応して前記対象装置を実際に動作させる、
 ことを特徴とするソフトウェア開発支援方法。
[請求項6]
 ソフトウェア開発の対象装置をソフトウェア開発支援装置に接続してなるソフトウェア開発支援プログラムにおいて、
 前記ソフトウェア開発支援装置のコンピュータに、
 ユーザ操作による前記対象装置のソフトウェア開発の設計情報を作成し、当該設計情報に対応するデータを前記対象装置に転送する処理を実行させる、
 ことを特徴とするソフトウェア開発支援プログラム。
[請求項7]
 前記対象装置のコンピュータに、
 前記設計情報の作成毎の前記データを受信し、前記設計情報に対応して前記対象装置を実際に動作させる処理を実行させる、
 ことを特徴とする請求項6に記載のソフトウェア開発支援プログラム。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]

[ 図 9]

[ 図 10]