(57)【要約】【課題】組込み系のシステムにあって大規模化、複雑化した制御ソフトウェアの早期段階からの設計を可能としかつデバックに最適な実機レスシミュレーション環境を整えて高品質なソフトウェア設計を実現する。【解決手段】組込み系システムでの制御対象の等価入力情報の読取り部３０２と、この入力情報にて制御ソフトウェアの処理をする処理部３０７と、制御ソフトウェアが処理した内容の書込み部３０３と、制御ソフトウェアの制御結果の判断部３０５と、を有する。読取り部３０２と書込み部３０３と判断部３０５との少なくとも一つが固定／変動部に分かれてフレームワーク化されている。処理部３０７は１プロセスを実際のシステムと同様に実行する機能を有する。【選択図】      図３
2005049947.tif 000002
【特許請求の範囲】
【請求項１】
組込み系システムの制御ソフトウェアのシミュレーション装置であって、
前記組込み系システムでの制御対象の等価入力情報を読取る読取り部と、前記制御ソフトウェアが処理した内容を書込む書込み部と、前記制御ソフトウェアの制御結果を判断する判断部と、を有することを特徴とする実機レスシミュレーション装置。
【請求項２】
前記読取り部、書込み部及び判断部の少なくとも一つが固定／変動部に分かれてフレームワーク化されていることを特徴とする請求項１記載の実機レスシミュレーション装置。
【請求項３】
前記処理部は、１プロセスを実際のシステムと同様に実行する機能を有することを特徴とする請求項１記載の実機レスシミュレーション装置。
【請求項４】
前記等価入力情報の読取り部は、テキストファイルを前記制御ソフトウェアの入力情報とする機能を有することを特徴とする請求項１記載の実機レスシミュレーション装置。
【請求項５】
前記等価入力情報の読取り部は、実際のシステムが存在する場合、ＣＰＵ−ＩＣＥで出力する実際の制御ソフトウェアの入力情報のトレース結果をそのまま前記制御ソフトウェアの入力情報とする機能を有することを特徴とする請求項１または４記載の実機レスシミュレーション装置。
【請求項６】
前記制御ソフトウェアが処理した内容を書込む書込み部は、前記制御ソフトウェアの制御内容をテキストファイルとして出力する機能を有することを特徴とする請求項１記載の実機レスシミュレーション装置。
【請求項７】
前記制御ソフトウェアの制御結果を判断する判断部は、期待値または前回の出力結果と比較する機能を有することを特徴とする請求項１記載の実機レスシミュレーション装置。
【請求項８】
前記制御ソフトウェアが処理した内容を書込む書込み部は、実機の制御対象に外部から入力手段がある場合、前記制御ソフトウェアの処理結果を前記外部からの入力手段のフォーマットに変換する機能を有することを特徴とする請求項１記載の実機レスシミュレーション装置。
【請求項９】
外部入力情報を保存する機能を有することを特徴とする請求項１記載の実機レスシミュレーション装置。
【請求項１０】
複数の機能を１つの実機レスシミュレーション環境で実現することを特徴とする請求項１記載の実機レスシミュレーション装置。
【請求項１１】
入力情報が追加されるたびにその期待値を保持し、以前の期待値も含めすべての結果を比較する機能を有することを特徴とする請求項１記載の実機レスシミュレーション装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばディジタルシグナルプロセッサの制御ソフトアウェアのシミュレータに係り、特に制御ソフトウェアの制御対象となる実機がない状態で制御ソフトウェアのシミュレーションを行う実機レスシミュレーション装置に関する。
【０００２】
【従来の技術】
例えば複写機にあっては、最近コピー機能のみならずＦＡＸ、ネットワーク端末等、ディジタル化、ネットワーク化に伴い組込み系システムの機能が多様化してきている。そして、この組込み系システムの多様化に伴い、そのシステムの制御ソフトウェア（制御プログラム）が大規模化、複雑化になってきている。その結果、制御ソフトウェアの評価、検証に時間をかけることが多くなってきている。
【特許文献１】特開２００１−０４３１１０公報
【特許文献２】特開平１１−０５３２２１号公報
【特許文献３】特表平１１−５１３５１２号公報
【特許文献４】特開平１０−３２０３７６号公報
【特許文献５】特開平１１−１４９３９４号公報
【０００３】
【発明が解決しようとする課題】
しかしながら、従来においては、一般には組み込み系システムの制御対象であるハードウェアが完成した後に制御仕様が決められ、その制御仕様にしたがって制御ソフトウェアを構築しているので、制御ソフトウェアの設計をハードウェア設計と並行して行なうことができない。このため、ソフトウェア設計の工数を製品設計の納期までに間に合わせることが困難となってきている。
この様なことから、従来では制御ソフトウェアの制御対象となる実機がない状態で、すなわち実機レスの状態で、制御ソフトウェアのシミュレーションを行う提案がある。特許文献１には特にソフトウェアのシミュレーション装置としてプログラムのデバック方法について開示されており、特許文献２には情報処理方法および情報処理装置について開示されており、特許文献３にはディジタル信号プロセッサの製造方法について開示されている。しかし、これらはコンピュータにおけるアプリケーション用プログラムや電気信号やハードウェアを対象としており、組込み系のシステムにあってそのシステムに組込まれている制御ソフトウェアのシミュレーションに適さないのが実情である。殊に、組込み系システムが複雑化している現在では、その制御ソフトウェアに特化した実機レスシミュレーション装置の存在が要請される。
また、本出願人提案の特許文献４に開示されているディジタル信号処理開発システムや特許文献５に開示されている制御ソフトウェア検証方法は、ソフトウェアのシミュレーション環境に関する発明ではあるが、その対象は異なる。
本発明は、上述の問題点に鑑み、組込み系のシステムにあって大規模化、複雑化した制御ソフトウェアの早期段階からの設計を可能とし、且つデバックに最適な実機レスシミュレーション環境を整えて高品質なソフトウェア設計を実現する実機レスシミュレーション装置の提供を目的とする。
【０００４】
【課題を解決するための手段】
請求項１の発明は、組込み系システムの制御ソフトウェアのシミュレーション装置であって、前記組込み系システムでの制御対象の等価入力情報を読取る読取り部と、前記制御ソフトウェアが処理した内容を書込む書込み部と、前記制御ソフトウェアの制御結果を判断する判断部と、を有することを特徴とする。
この発明によれば、実機である組込み系システムが無い段階で制御仕様が決定している場合、制御ソフトウェアの早期設計を実現しかつ、不具合が発生したときにその問題に対する最適なデバック情報を提供するシミュレーション環境を構築することができる。また、商品に実装する制御ソフトウェアの不具合を最小限に抑えることができる。
請求項２の発明は、前記読取り部と書込み部と判断部との少なくとも一つが固定／変動部に分かれてフレームワーク化されていることを特徴とする。
この発明によれば、フレームワーク化することによって固定／変動部に分離することによって、制御対象が同じで違う組込み系システムの制御ソフトウェアに１つの実機レスシミュレーション装置を用いる場合、実機レスシミュレーション装置の変更箇所を明確化しかつ変更を最小限にすることができる。
請求項３の発明は、前記処理部は１プロセスを実際のシステムと同様に実行する機能を有することを特徴とする。
この発明によれば、実際の組込み系システムの流れと同様に制御ソフトウェアを実機レスシミュレーション装置が実行することにより実機を用いてデバックする結果と同等の結果を得ることによってデバック効率を増し、商品に実装する制御ソフトウェアの不具合を最小限に抑えることができる。また、商品に実装する制御ソフトウェアの不具合を最小限に抑えることができる。
【０００５】
請求項４の発明は、前記等価入力情報の読取り部は、テキストファイルを前記制御ソフトウェアの入力情報とする機能を有することを特徴とする。
この発明によれば、入力情報の読取り部はテキストファイルを制御ソフトウェアの入力情報とすることによって入力情報を可視化し、現在何のデバックをしているのかを明確化することができる。また、テスト内容を変更したい場合も容易に行なえデバック効率を向上させ、商品に実装する制御ソフトウェアの不具合を最小限に抑えることができる。
請求項５の発明は、前記等価入力情報の読取り部は、実際のシステムが存在する場合、ＣＰＵ−ＩＣＥで出力する実際の制御ソフトウェアの入力情報のトレース結果をそのまま前記制御ソフトウェアの入力情報とする機能を有することを特徴とする。
この発明によれば、実際のシステムが存在する場合、ＣＰＵ−ＩＣＥで出力する実際の制御ソフト入力情報のトレース結果をそのまま制御ソフトの入力情報とすることによって入力のテキストファイルを作成する手間を省くことと、正確な入力情報を取得することができる。
請求項６の発明は、前記制御ソフトウェアが処理した内容を書込む書込み部は、前記制御ソフトウェアの制御内容をテキストファイルとして出力する機能を有することを特徴とする。
この発明によれば、制御ソフトが処理した内容の書込み部は制御ソフトウェアの制御内容をテキストファイルとして出力することによって、出力結果を可視化することによってデバック効率を増し、商品に実装する制御ソフトウェアの不具合を最小限に抑えることができる。
【０００６】
請求項７の発明は、前記制御ソフトウェアの制御結果を判断する判断部は、期待値または前回の出力結果と比較する機能を有することを特徴とする。
この発明によれば、制御ソフトウェアの制御結果の判断部は前回の出力結果と比較することによって制御ソフトウェアの変更により出力結果の変化の特定が容易に行なえ、その変更が正しいかどうか判断を明確化させ、商品に実装する制御ソフトウェアの不具合を最小限に抑えることができる。
請求項８の発明は、前記制御ソフトウェアが処理した内容を書込む書込み部は、実機の制御対象に外部から入力手段がある場合、前記制御ソフトウェアの処理結果を前記外部からの入力手段のフォーマットに変換する機能を有することを特徴とする。
この発明によれば、制御ソフトウェアが処理した内容の書込み部は実機の制御対象に外部から入力手段がある場合、制御ソフトウェアの結果をその入力手段のフォーマットに変換することによって、シミュレーション結果が実際の組込み系システムで動作するかデバックすることができ、テスト検証の結果をシステム動作で確認し、商品に実装する制御ソフトウェアの不具合を最小限に抑えることができる。
請求項９の発明は、外部入力情報を保存する機能を有することを特徴とする。
この発明によれば、外部入力情報を実機レスシミュレーション装置が保存することによって実際の制御ソフトウェアを実機環境と実機レスシミュレーション環境で変えることなく実装でき、環境を変えるたびに制御ソフトウェアを変更する手間を省くことができる。また、情報が必要なとき入力のテキストファイルから情報を得るのではなく、内部メモリに保存することによってシミュレーション実行効率を向上させる。
請求項１０の発明は、複数の機能を１つの実機レスシミュレーション環境で実現することを特徴とする。
この発明によれば、複数の機能を１つの実機レスシミュレーション環境で実現することによってデバック効率を向上し、商品に実装する制御ソフトウェアの不具合を最小限に抑えることができる。
請求項１１の発明は、入力情報が追加されるたびにその期待値を保持し、以前の期待値も含めすべての結果を比較する機能を有することを特徴とする。
この発明によれば、入力情報が追加されるたびにその期待値を保持し、以前の期待値も含めすべての結果を比較する機能を有することによって新規設計で以前設計した結果が異なるか確認でき、商品に実装する制御ソフトウェアの副作用的な不具合を最小限に抑えることができる。
【０００７】
【発明の実施の形態】
以下、図を参照して本発明の実施形態を説明する。
図１は、本実施形態の実機レスシミュレーション装置のための組込み系システムと制御ソフトウェアとの関係を示す。例えば複写機にあっては、前述したようにコピー機能のほかＦＡＸやインターネット端末などがあり、この制御対象（図１での対象Ａ、Ｂ…Ｚに対応する）に対してそれぞれ制御ソフトウェア１０２が存在し、この制御ソフトウェア１０２に対し操作部１０１からの情報により制御内容が決定される。この場合、操作部１０１では、ユーザが種々の設定を行いかつこの設定した内容を管理する。
そして、実機レスシミュレーションにあっては、この制御ソフトウェアの１つを対象として行なう。実機レスシミュレーションでは、仮想的に操作部１０１にて作成した情報を入力とし、その情報を元に例えば対象Ａのパラメータ設定を行い、制御ソフトウェアの処理後は制御結果を例えば期待値等と比較し評価する。
【０００８】
図２は、実機レスシミュレーション装置２０１と対象Ａの制御ソフトウェア１０２との関係を示す。シミュレーション装置は、組込み系制御ソフトウェアをパーソナルコンピュータ（ＰＣ）上のシミュレーション環境で実行するものである。この場合、入力情報としては、仮想的な操作部１０１からの連続的な設定値情報であり、この入力情報の個数と順番情報とが実機レスシミュレーション装置２０１に入力される。実機レスシミュレーション装置２０１は、この入力情報を読取り、操作部１０１で設定したような変換が行われる。対象Ａの制御ソフトウェア１０２は、その実機レスシミュレーション装置２０１が設定した値をあたかも操作部１０１が設定した値と同様に読取り、処理を実行する。そして、実行結果は、実機レスシミュレーション装置２０１に返され、その実行結果をテキストに変換して出力する。この場合、実機レスシミュレーション装置２０１は、期待値や前回のシミュレーション結果がある場合、今回の結果と比較を行い、その違いを出力する。評価者はその出力情報をもとにデバック、評価する。
【０００９】
図３は、本実施形態による実機レスシミュレーション装置２０１の構成をフローチャート形式で示す。入力情報のテキストファイル３０１とシナリオファイル３０９を順に入力情報の読取り部３０２に入力し、処理部３０７にて組込み系制御ソフトウェア１０２の処理を行い、制御ソフトウェア１０２が処理した内容は、書込み部３０３にて書込み処理をして出力情報のテキストファイル３０４を出力する。次に、制御ソフトの制御結果の判断部３０５では、その出力情報のテキストファイル３０４と前回のシミュレーション結果等の期待値３０８を入力として判断し、判断結果３０６を出力し処理を終了する。ここで、実機レスシミュレーションを構成する構成要素は、入力情報の読取り部３０２、処理部３０７、制御ソフトウェアが処理した内容の書込み部３０３、制御ソフトウェアの制御結果の判断部３０５からなり、組込み系制御ソフトウェア１０２の処理部３０７にシミュレーションしたい制御ソフトウェアのソースを組込む。
【００１０】
図４は、実際に用いた入力情報のテキストファイル３０１を示す。これは、複写機のＩＰＵ（画像処理ユニット）ボード内の画像処理を行なうＤＳＰ（ディジタルシグナルプロセッサ）制御ソフトウェア１０２のシミュレーションに用いた入力情報のテキストファイル３０１の１部である。「／／」で始まる文は無効文として改行コードまで読み飛ばし、順番を示す番号０番から８番までのパラメータを示している。この番号を元に入力情報の読取り部３０２は入力情報を判断し読取る。０行の２列目の数字は実際のパラメータの値で、ここではアプリタイプを０のコピーモードであることを示している。このようにして、８行の８番目までのパラメータが入力され得る。
【００１１】
図５は、実際に用いたシナリオファイル３０９を示す。この図５に示すシナリオファイル３０９は、複写機のＩＰＵボード内の画像処理を行なうＤＳＰ制御ソフトウェア１０２のシミュレーションに用いた入力情報のテキストファイル３０１（図４）を特定するために実機レスシミュレーション装置２０１に入力した１部である。「／／」以降の文の内容はコメントとして無視し、改行コードまで読み飛ばし、入力情報のテキストファイル３０１のファイル名を示す。ここでは、評価者がこのシナリオファイル３０９を見てどのようなシナリオをデバックしているのか、視覚的に理解しやすいようにコメント機能がついている。図５では、実機レスシミュレーション装置２０１が入力情報として取得しているのは、上から順に「ｒａｐｉｆｉｌｅ０．ｔｘｔ」、「ｒａｐｉｆｉｌｅ１．ｔｘｔ」…「ｒａｐｉｆｉｌｅ１２．ｔｘｔ」のファイル名の内容で、その入力情報のテキストファイル３０１に対し読取りを開始していく。実機レスシミュレーション装置２０１はこのシナリオファイル３０９の情報により入力情報のテキストファイル３０１の数と順番の特定を行なう。このシナリオファイル３０９の情報に従って順次入力情報の読取り部３０２は読取りを実行していくことになる。
【００１２】
次に、図３に戻り、入力情報のテキストファイル３０１から入力情報の読取り部３０２が入力情報を抽出する。読取り部３０２での処理内容は、実際の組込み系システムの操作部１０１が値を設定するように構造体に実際のパラメータの値を代入する。図４の例では、入力情報のテキストファイル３０１の１列目の順番を示す値を列挙型としてｅｎｕｍ宣言し、２列目の実際のパラメータを組込み系システムの操作部１０１が設定しているように構造体に代入する。
シミュレーションしたい制御ソフトウェア１０２はこの設定値を実機と同様に参照し、制御対象に対し、設定を行なっていく。入力情報の読取り部３０２は入力情報のテキストファイル３０１の読み出し処理以外に、組込み系システムと同様の処理手順で制御ソフトウェア１０２の処理を実行する関数を呼び、制御ソフトウェア１０２の処理を行なう。シミュレーション上では制御対象がないのでコンパイルスイッチによって制御ソフトウェア１０２が処理した内容の書込み部３０３が起動し、出力情報のテキストファイル３０４に変換して出力する。処理内容は、制御対象の持つメモリの内容を実機レスシミュレーション装置２０１内で定義した配列として保持し、制御ソフトウェア１０２が指定するアドレスと制御内容をその配列に保存し、制御ソフトウェア１０２の一連の処理終了後、出力情報のテキストファイル３０４として出力する。
【００１３】
図６は、実際に用いた出力情報のテキストファイル３０４を示す。これは、制御ソフトウェア１０２の制御対象であるＤＳＰのメモリ内容の一部である。すべて１６進数でメモリのＣ０００番地から順に設定値を示している。制御ソフトウェア１０２が処理した内容の書込み部３０３は、このフォーマットの出力情報のテキストファイル３０４を出力する。制御ソフトウェア１０２の制御結果の判断部３０５は、この出力情報のテキストファイル３０４と期待値（または以前の処理結果）とをメモリ内容にて比較し、完全に一致すればＯＫを、違う部分を発見したらＮＧと判断して判断結果３０６を出力する。この機能により、期待値との比較、処理を変えたことへの変更内容を確認する。
こうして、実機である組込み系システムが無い段階で制御仕様が決定している場合でも制御ソフトウェアの早期設計を実現しかつ、不具合が発生したときにその問題に対する最適なデバック情報を提供するシミュレーション環境を構築することができる。また、通常の組込み系システムの使われ方である連続動作に実機レスシミュレーション装置２０１が対応することによって、連続設定のみに起こるような不具合も含めて保証し、商品に実装する制御ソフトウェア１０２の不具合を最小限に抑えることができる。
【００１４】
以上の説明は、実機レスシミュレーション装置２０１について、組込み系システムである複写機のＩＰＵボード内の画像処理を行なうＤＳＰを制御対象にした場合の制御ソフトウェア１０２のシミュレーションを例にした。この場合、機種の変動、制御対象の変動などが生じた場合、この変動によって変更する部分あるいは変更しない部分をフレームワーク化して処理することが可能である。すなわち、実機レスシミュレーション装置２０１では、固定／変動を明確化したフレームワーク構造のアーキテクチャで実装した。図７は、図３の実機レスシミュレーション装置２０１のフレームワーク化を示す。図７では、入力情報のテキストファイル３０１とシナリオファイル３０９の入力情報の読取り部３０２と、制御ソフトウェア１０２が処理した内容の書込み部３０３の一部が変動部である。
実際の複写機のＩＰＵボード内の画像処理を行なうＤＳＰ制御ソフトウェア１０２では、機種ごとで操作部１０１が変わることになるので、設定される値と制御ソフトウェア１０２が参照する値が異なる。処理部３０７にて処理を実行するために必要な入力情報のテキストファイル３０１同様その情報を読取る入力情報の読取り部３０２も機種ごとに変動する。但し、変動するといっても全機種の設定に間に合う構造を作る場合には、必要な項目のみ設定すれば、追加の変更をせず入力テキストファイル３０１に対応した入力情報の読取り部３０２を設定するだけで実現できる。制御ソフトウェア１０２が参照していない値でも全機種で読取る構造を作っておけば、機種固有の制御ソフト３０７が設定に必要な値のみ注意して設定すれば全機種、同一入力で実現できる。
【００１５】
また、制御ソフトウェア１０２が処理した内容の書込み部３０３は、制御ソフトウェア１０２の制御対象が変わる場合、変動部となる。全機種同一のＤＳＰという同じ制御対象とすれば、書き込み部３０３も固定部となり変更することはなかった。しかし、制御対象がＡＳＩＣ等のＤＳＰとは異なる対象になればその対象に対応した出力に変更しなければならなくなる。しかし、制御ソフトウェア１０２が処理した内容の書込み部３０３が変動するといっても、全体的な変更はない。制御対象の情報を実機レスシミュレーション内に定義し、シミュレーションしている制御ソフトウェア１０２の制御対象を判断する手段を設ければよい。この手段は、コンパイルスイッチまたは１変数で可能である。実機レスシミュレーション装置は、その値を参照し、制御対象にあった出力にするために、制御ソフトウェア１０２が処理した内容の書込み部３０３で処理内容を変え、出力内容を変えることができる。このようにあらゆる制御対象のバリエーションを用意しておけば、入力テキストファイル３０１で制御対象を読取り、制御ソフトウェア１０２が処理した内容の書込み部３０３で処理内容を変える構造を作成すれば、固定部として意識しなくても制御対象に適した出力をする実機レスシミュレーション装置２０１になる。
このようにフレームワーク化することにより固定／変動部に分離することによって、制御対象が同じで違う組込み系システムの制御ソフトに１つの実機レスシミュレーション装置を用いる場合、実機レスシミュレーション装置２０１の変更箇所を明確化しかつ変更を最小限にすることができる。
【００１６】
図８は、入力情報の読取り部３０２の処理内容を示す。本実施形態にて実装した実機レスシミュレーション装置２０１の入力情報の読取り部３０２は、入力情報の読取り処理７０１、入力情報の判断７０２、入力情報に従った制御ソフトウェアの実行７０３とからなる。このうち、入力情報の読取り処理７０１は、前述の変動部である。まず、この処理で入力情報のファイル３０１を特定するためシナリオファイル３０９を読込む。その情報を元に入力情報の読込み処理をループさせ、連続読取り動作を実現する。入力情報の読取り処理は、前後の入力情報に影響なく決定された１入力情報のテキストファイル３０１に従って下流処理を実行させる。
入力情報に従った制御ソフトウェア実行７０３のための制御ソフトウェア１０２の実行シーケンス決定には、入力情報のテキストファイル３０１の設定値に制御のシーケンスを決定するためのパラメータがあり、その情報をもとに入力情報の判断７０２が行われる。入力情報の読取り処理７０１で、入力情報のテキストファイル３０１の内容を実際の操作部１０１が設定する構造体内に代入し、入力情報の判断７０２は、制御のシーケンスを決定するためのパラメータを参照し、制御ソフトウェア１０２に実行させる処理を変える。入力情報に従った制御ソフトウェア実行７０３では、入力情報の判断７０２が決定したシーケンスに沿って制御ソフトウェア１０２を実行させる。
この機能によってシステムが出来ていない開発の初期段階で制御ソフトウェア１０２の先行開発ができ、組込み系システムと同様に処理を実現し、その確認ができる。本実施形態では制御ソフトウェア１０２を実行するタイミングについて厳密な仕様がなく、タイミング制御を含んでいないが、タイミングが重要になるような組込み系システムの制御ソフトウェア１０２の場合、入力情報に従った入力情報の判断７０２と制御ソフトウェア実行７０３により、実際の組込み系システムと類似したタイミングで制御ソフトウェア１０２に処理を実現させることが可能である。
こうして、実際の組込み系システムの流れと同様に制御ソフトを実機レスシミュレーション装置２０１が実行することにより実機を用いてデバックする結果と同等の結果を得ることによってデバック効率を増し、商品に実装する制御ソフトウェア１０２の不具合を最小限に抑えることができる。また、通常の組込み系システムの使われ方である連続動作に実機レスシミュレーション装置２０１が対応することによって、連続設定のみに起こるような不具合も含めて保証し、商品に実装する制御ソフトウェア１０２の不具合を最小限に抑えることができる。
【００１７】
図９は、入力情報の読取り部３０２の実際の例を示し、入力情報のテキストファイル３０１のフォーマットにて（ａ）は図４に対応する順番を示すｅｎｕｍ宣言、（ｂ）は図４に対応するパラメータを示す。図４での入力情報のテキストファイル３０１の１列目に書いてある順番を示す値を、入力情報のテキストファイル３０１の１列目の順番を示す値のｅｎｕｍ宣言で実機レスシミュレーション装置２０１内に定義しておく。ここでは、機種ごとで用いるパラメータが異なるので変動部となる。入力するパラメータ情報が変わり追加や削除された場合、その変更に沿ってこのｅｎｕｍ宣言の内容も変更する。また、ｅｎｕｍ宣言の内容と入力テキストファイル３０１で対応が取れている場合は、図４の入力テキストファイル３０１の１列目に書いてある順番を示す値は必ずしも０から順番どおりでなくてもよい。
図９（ｂ）は、実際に用いた入力情報のテキストファイル３０１の２列目のパラメータ代入部である。この図９（ｂ）にて、ＤａｔａＩｄが入力情報のテキストファイル３０１の１列目の順番を示す値で、ＳＤａｔａが入力情報のテキストファイル３０１の２列目に書いてある実際のパラメータを示す値に対応する。ｅｎｕｍ宣言で定義したケースに分け、ＦｉｌｅＰｔｒ（操作部１０１が設定する構造体）に入力テキストファイルの情報を代入する。こうして、実機レスシミュレーション装置２０１は、入力情報を取得できる構造を有することになる。こうして、シナリオファイル３０９に従ってこの入力情報の読取りから始まる一連の制御ソフトウェア１０２の制御結果の判断までの処理を繰り返す。
こうして、入力情報の読取り部３０２は、テキストファイルを制御ソフトウェアの入力情報とすることによって入力情報を可視化し、現在何のデバックをしているのかを明確化することができる。また、テスト内容を変更したい場合も容易に行なえデバック効率を向上させ、商品に実装する制御ソフトウェア１０２の不具合を最小限に抑えることができる。また、通常の組込み系システムの使われ方である連続動作に実機レスシミュレーション装置２０１が対応することによって、連続設定のみに起こるような不具合も含めて保証し、商品に実装する制御ソフトウェア１０２の不具合を最小限に抑えることができる。
【００１８】
図１０は、ＣＰＵ−ＩＣＥ（ＣＰＵインサーキットエミュレータ）による変数のログファイルを例示する。このログファイルは、実機環境でメモリアドレス００４１４２０４にマッピングされた１変数に対し、書込みが行なわれたときにその値と時間をトレースしたものである。この図１０は実際の値であり、ＣＰＵ−ＩＣＥによって出力されるフォーマットは異なる。図１０のようなフォーマットの場合、このログファイルを入力情報のテキストファイル３０１として扱う。入力情報として有効なものは、数字から始まる行で、それ以外である「＊」「＝」は無効文とする。また、数字から始まる行も２列目の値はこの変数がマッピングされているメモリアドレス値で特に入力情報としては不要なので読み飛ばし、３列目の値を実際のパラメータとして抽出する。図４のように手動で入力情報のテキストファイル３０１を書いたものは１、２列目が有効な情報であるのに対し、図１０のようなＣＰＵ−ＩＣＥのトレース情報を入力情報のテキストファイル３０１とする場合は、入力情報の読取り部３０２は１、３列目が有効な情報として操作部１０１が設定する構造体に代入するように修正する。
【００１９】
実機環境でＣＰＵ−ＩＣＥを用いてトレースする場合、図９（ａ）に示す入力情報のテキストファイル３０１の１列目の順番を示す値のｅｎｕｍ宣言の順番と同様にＣＰＵ−ＩＣＥがトレースしている変数に書込み、ログファイルを作成しなくては実機レスシミュレーション装置２０１内で定義しているｅｎｕｍ宣言と対応が取れないため、必ず一致させる必要がある。対応していない場合は、操作部１０１の構造体の異なる場所に入力情報を代入してしまので、正しいシミュレーション結果が得られなくなる。また、シナリオファイル３０９に記述する入力情報のテキストファイル３０１名と同様のファイル名にＣＰＵ−ＩＣＥによる変数のログファイル名を出力するか、出力後に変更する必要がある。
こうして、実際のシステムが存在する場合、ＣＰＵ−ＩＣＥ等で出力する実際の制御ソフトウェア入力情報のトレース結果をそのまま制御ソフトウェア１０２の入力情報とすることによって入力のテキストファイルを作成する手間を省くことと、正確な入力情報を取得することができる。また、通常の組込み系システムの使われ方である連続動作に実機レスシミュレーション装置２０１が対応することによって、連続設定のみに起こるような不具合も含めて保証し、商品に実装する制御ソフトウェア１０２の不具合を最小限に抑えることができる。
本実施形態で実装した実機レスシミュレーション装置２０１は、図６の最終メモリマップ内容である出力情報のテキストファイル３０４と、制御ソフトウェア１０２が設定した順番に書込んだ内容をトレースした結果を示す出力情報のトレースファイル１００１を、制御ソフトウェア１０２が処理した内容の書込み部３０３にて出力する。図１１は、制御ソフトウェア１０２が制御対象に書込んだ内容のトレース結果の例を示す。出力情報のトレースファイル１００１である図１１は、書込んだ内容とその順番という書込みの時間を示す。この出力情報のトレースファイル１００１によりデバック時は、正しい設定か、または同一の設定を重複して行なっていないかを調べる。
【００２０】
図１２に制御ソフトウェア１０２の差分管理の例を示す。この図１２では、３回の設定の様子を示した例である。まず、１回目に操作部１０１の設定値Ａをして、その設定値Ａを参照し、そのときの制御内容を制御対象のメモリ内に設定する。今回の設定がＡということを差分情報１６０１に保存する。２回目の設定からはこの差分情報も参照する。２回目の設定では１回目と同様操作部１０１の設定値がＡの場合、差分情報と差異がなく、制御対象に設定を行なわない。３回目の設定では、操作部１０１の設定がＢに変わり、差分情報と差異があるので制御対象内のメモリに設定Ｂの内容を設定する。１回目同様に今回の設定がＢということを差分情報１６０１に保存する。
制御ソフトウェア１０２がこのような差分管理する場合、１回のシミュレーション結果では差分管理が正しく行なわれているか判断することができない。制御ソフトウェア１０２がこのような差分管理を行なっていて今回の設定内容が前回と同じと判断し設定を行なわない場合、このようなトレース情報によるデバックを行ない差分管理が正しく機能しているか判断する。トレース情報もテキスト化し、可視化することによってデバック効率を向上させる。制御ソフトウェア１０２の制御対象が複数存在する場合は、それぞれの制御対象に最終メモリマップファイルである出力情報のテキストファイル３０４、出力情報のトレースファイル１００１に分け、１つの制御対象に対し２ファイルを出力する。これらのファイルは、制御ソフトウェア１０２が処理した内容の書込み部３０３の出力である。
このように、制御ソフトウェア１０２が処理した内容の書込み部３０３は、制御ソフトウェアの制御内容をテキストファイルとして出力することによって、出力結果を可視化することによってデバック効率を増し、商品に実装する制御ソフト３０７の不具合を最小限に抑えることができる。
【００２１】
図１３は、実際に用いたシミュレーション結果判断ファイル１１０１を示す。このシミュレーション結果判断ファイル１１０１は、制御ソフトウェア１０２が処理した内容の書込み部３０３が出力する、出力情報のテキストファイル３０５である最終メモリマップファイルと、出力情報のトレースファイル１００１と期待値、もしくは前回の出力結果と制御ソフトの制御結果の判断部３０５が比較してその結果を示したファイルである。このシミュレーション結果判断ファイル１１０１は、実際に用いた制御対象が４つの例で、それぞれＤＥＶ０（デバイスの略）からＤＥＶ３である。図１３（ａ）  の出力情報のテキストファイル３０５である最終メモリマップファイルと、出力情報のトレースファイル１００１ともに一致した結果で、図１３（ｂ）の出力情報のトレースファイル１００１とＤＥＶ０の出力情報のファイル３０４である最終メモリマップファイルの結果が不一致になった例を示している。このように制御ソフトの制御結果の判断部３０５で判断出力することによってどの場所で不一致が生じたか特定することが容易になる。
こうして、制御ソフトウェア１０２の制御結果の判断部は前回の出力結果と比較することによって制御ソフトウェア１０２の変更により出力結果の変化の特定が容易に行なえ、その変更が正しいかどうか判断を明確化させ、商品に実装する制御ソフトウェア１０２の不具合を最小限に抑えることができる。
【００２２】
図１４は、制御対象であるデバイスに直接設定可能なシミュレータ１２０１のフォーマット変換の手順を示す。実機レスシミュレーション装置２０１は、実機がなくまた制御対象がない場合、その制御ソフトウェア１０２を先行開発するためにＰＣ上で仮想的に組込み系システムの動作をさせ、そのときの制御ソフトウェア１０２の処理結果を確認するのに対し、デバイスに直接設定でいるシミュレータ１２０１は制御対象につなぎ直接設定したいアドレスと値をＰＣにインストールしたアプリケーションから設定させるものである。実機レスシミュレーション装置２０１はそのデバイスに直接設定可能なシミュレータ１２０１のフォーマットに合った出力情報のトレースファイル１００１を出力する。図１４のフォーマットは、その１例である。このフォーマットでは、「ＭｅｍｏｒｙＣｈａｎｇｅ」命令とアドレスとそのアドレスに設定したい値を書く。デバイスに直接設定可能なシミュレータ１２０１は、その実機レスシミュレーションがフォーマットに合わせて出力した出力情報のトレースファイル１００１を入力として、制御対象であるデバイスに外部から直接設定する。組込み系システムが動作する場合、実機レスシミュレーション装置２０１によるシミュレーション結果を直接用いて実機確認させることができ、シミュレーション結果の実機出力が確認できる。実機の有無両方の側面からデバックすることに役立つ。
制御ソフトウェア１０２が処理した内容の書込み部３０３は、実機の制御対象に外部から入力手段がある場合、制御ソフトウェア１０２の結果をその入力手段のフォーマットに変換することによって、シミュレーション結果が実際の組込み系システムで動作するかデバックすることができ、テスト検証の結果をシステム動作で確認し、商品に実装する制御ソフトウェア１０２の不具合を最小限に抑えることができる。
【００２３】
図１５は、操作部１０１が設定する構造体の内部宣言を示す。入力情報の読取り部３０２の読取りを開始する前にこの宣言をしておき、実機レスシミュレーション装置２０１内で定義したｓｔａｔｉｃ  ＩＦＩＬＥ＿ｔ  Ｉｆｉｌｅに対して入力情報のテキストファイル３０１の情報を代入していく。ＰＣは組込み系システムと違いメモリ量は多く制約も少ないと考えられるので内部宣言し、その値を制御ソフトウェア１０２が参照し、制御対象への制御内容を決定して制御する。制御ソフトウェア１０２のソースを実機環境と実機レスシミュレーション環境で変更することがなくなるので、実際の組込み系のシステムと同等の動作ができる。制御ソフトウェア１０２は操作部１０１が設定したものか、実機レスシミュレーション装置２０１が設定したか意識することなく、ＩＦＩＬＥ＿ｔ  Ｉｆｉｌｅ構造体を参照し設定できる。
外部入力情報を実機レスシミュレーション装置２０１が保存することによって実際の制御ソフトウェア１０２を実機環境と実機レスシミュレーション環境で変えることなく実装でき、環境を変えるたびに制御ソフトウェア１０２を変更する手間を省くことができる。また、情報が必要なとき入力のテキストファイルから情報を得るのではなく、内部メモリに保存することによってシミュレーション実行効率を向上させる。
【００２４】
図１６は、多機能化を実現した実機レスシミュレーション装置２０１を示す。実機レスシミュレーション装置２０１にて、入力は入力情報のテキストファイル３０１とシナリオファイル３０９、出力は出力情報のテキストファイル３０４、出力情報のトレースファイル１００１、シミュレーション結果のファイル出力であるシミュレーション結果判断ファイル１１０１、制御対象であるデバイスに直接設定可能なシミュレータ１２０１のフォーマットに変換したファイル出力機能を実現した。これらの機能は競合することはなく、１つの装置に機能を追加して多機能化することができる。こうすることによって複数の１機能しかない実機レスシミュレーション装置２０１を何度も起動し複数の結果を得るのではなく、１つの実機レスシミュレーション装置２０１で複数のシミュレーション結果を得ることができ総合的な情報を用いてデバックできる。
複数の機能を１つの実機レスシミュレーション環境で実現することによってデバック効率を向上し、商品に実装する制御ソフトウェア１０２の不具合を最小限に抑えることができる。
【００２５】
図１７は、制御要求仕様追加時の実機レスシミュレーション装置の動作例を示す。図１７（ａ）に示されるように制御要求仕様１に従ったシナリオ１を作成し、テスト環境構築後、ソフトを実装して、検証する。外部入力である制御要求仕様１の期待値１と結果が一致せずＮＧの場合、もう一度実装をやり直す。制御要求仕様１の期待値１と一致の場合テストに合格したので実装ＯＫとなる。
図１７（ｂ）は、（ａ）の制御要求仕様１が実装され新たに制御要求仕様２を実装する例を示している。まず、制御要求仕様２のシナリオ２と期待値２を作成する。制御要求仕様２のために、テスト環境構築後、ソフトを実装して、検証する。ここでのテスト検証は、まず先ほどの外部出力である制御要求仕様１のシナリオ１をテストにかけ期待値１と比較する。次に今回加わった外部入力である制御要求仕様２のシナリオ２をテストにかけ期待値２と比較する。テストの合格基準は、この追加されたシナリオを含め登録されているすべてのシナリオの結果が期待値と一致しているかを比較し、１つでも不一致があれば不一致のシナリオを示し、ＮＧを示し、実装をやり直す。すべてのシナリオが完全に一致すれば実装ＯＫとなる。
このように制御要求仕様が追加されるたびにシナリオが増え、実機レスシミュレーション装置２０１が蓄積した以前のシナリオを含めすべてのシナリオをテストし、ソフト実装の合格判定に用いる。
入力情報が追加されるたびにその期待値を保持し、以前の期待値も含めすべての結果を比較する機能を有することによって新規設計で以前設計した結果が異なるか確認することによって、商品に実装する制御ソフトウェア１０２の副作用的な不具合を最小限に抑えることができる。
【００２６】
【発明の効果】
請求項１の発明によれば、実機がなく制御ソフトウェアの設計ができない段階でもソフトウェア設計ができ、かつ実機レスシミュレーション上によりデバックもできる。また、通常の組込み系システムの使われ方である連続動作に実機レスシミュレーション装置が対応することによって、連続設定のみに起こるような不具合も含めて保証し、商品に実装する制御ソフトウェアの不具合を最小限に抑えることが可能になる。
また、操作部からの複数の入力の組み合わせに対し、すべてをシミュレーション環境で検証できるので、すべての入力の組み合わせによる実機検証が難しい商品に対し、テスト検証によって動作が保証された商品を提供することができる。今までの機能に追加して新しい機能を追加した商品に対しては、今までの機能は同じシミュレーション環境で検証できるのでシミュレーション装置を変更せずテスト検証すれば、商品の動作が保証され、さらに新しい追加機能についても検証条件を追加すればテスト検証が可能になり高機能化による複雑化する製品に対しても追加機能をテストしていくことによってすべての動作を保証できる。
請求項２の発明によれば、制御対象が同じ場合、変動する入力部のみを組込んでいる制御ソフトウェアに対応させるだけで実機レスシミュレーション上で構築できる。また、制御対象が異なる場合でも、書込み部をそのフォーマットに変更するだけで対応できるので変更点が明確化する。
請求項３の発明によれば、実機レスシミュレーション上で実際のシステムと同等の動作を制御ソフトウェアに行なわせることができ、組込み系制御ソフトウェアをＰＣ上でデバックでき、デバック効率は向上する。テスト検証は容易に行なえかつ充実したデバック情報を出力するので、商品に組み込まれる制御ソフトウェアは向上し、不具合の混入を最小限に抑えることが可能になる。また、入力の組み合わせが多くなる商品に対しシミュレーション環境ですべての結果をテスト検証できる。追加機能に対してもテスト検証項目を追加するだけで今までの機能を含め商品の動作が保証できる。
【００２７】
請求項４の発明によれば、入力をテキスト化することによって、可視化できかつ入力情報の読込みも容易に行なえることができる。テスト検証は容易に行なえかつ充実したデバック情報を出力するので、商品に組み込まれる制御ソフトウェアは向上し、不具合の混入を最小限に抑えることが可能になる。また、入力の組み合わせが多くなる商品に対しシミュレーション環境ですべての結果をテスト検証できる。追加機能に対してもテスト検証項目を追加するだけで今までの機能を含め商品の動作が保証できる。
請求項５の発明によれば、実際のシステムの入力結果がそのまま入力情報になり、デバック時の入力情報を書くテキストファイル作成の手間が省ける。
請求項６の発明によれば、実機レスシミュレーション装置の出力をテキスト化することによって制御ソフトウェアの制御内容が可視化でき、デバック効率は向上する。また、テスト検証は容易に行なえかつ充実したデバック情報を出力するので、商品に組み込まれる制御ソフトウェアは向上し、不具合の混入を最小限に抑えることが可能になる。
また、入力の組み合わせが多くなる商品に対しシミュレーション環境ですべての結果をテスト検証できる。追加機能に対してもテスト検証項目を追加するだけで今までの機能を含め商品の動作が保証できる。
請求項７の発明によれば、前回との結果の差分比較や、制御ソフトウェア変更による結果の変更点の特定が容易になり、制御ソフトウェアの変更による予期しない副作用を防ぐので、商品に組み込まれる制御ソフトウェアは向上し、不具合の混入を最小限に抑えることが可能になる。
また、入力の組み合わせが多くなる商品に対しシミュレーション環境ですべての結果をテスト検証できる。追加機能に対してもテスト検証項目を追加するだけで今までの機能を含め商品の動作が保証できる。
【００２８】
請求項８の発明によれば、実際のシステム環境で制御ソフトウェアの結果である実機レスシミュレーションの出力を書込むことができるのでデバックすることができるので、商品に組み込まれる制御ソフトウェアは向上し、不具合の混入を最小限に抑えることが可能になる。
また、入力の組み合わせが多くなる商品に対しシミュレーション環境ですべての結果をテスト検証できる。追加機能に対してもテスト検証項目を追加するだけで今までの機能を含め商品の動作が保証できる。
請求項９の発明によれば、入力情報を実機レスシミュレーションが保存することにより何度も読込むこともなくかつ実際の制御ソフトウェアに影響させないで実現できる。
請求項１０の発明によれば、１つの実機レスシミュレーションで多機能化を実現でき、デバック効率は向上するので、商品に組み込まれる制御ソフトウェアは向上し、不具合の混入を最小限に抑えることが可能になる。また、入力の組み合わせが多くなる商品に対しシミュレーション環境ですべての結果をテスト検証できる。追加機能に対してもテスト検証項目を追加するだけで今までの機能を含め商品の動作が保証できる。
請求項１１の発明によれば、入力情報が追加されるたびにその期待値を保持し、以前の期待値も含めすべての結果を比較する機能を有することによって、商品に実装する制御ソフトウェアの副作用的な不具合を最小限に抑えることを可能になる。また、連続動作の検証も含め入力の組み合わせが多くなる商品に対しシミュレーション環境ですべての結果をテスト検証できる。追加機能に対してもテスト検証項目を追加するだけで今までの機能を含め商品の動作が保証できる。
【図面の簡単な説明】
【図１】組込み系システムと制御ソフトの関係を示す模式図。
【図２】実機レスシミュレーション装置と対象Ａの制御ソフトの関係を示す模式図。
【図３】実機レスシミュレーション装置の構成図。
【図４】入力情報のテキストファイルの具体的説明図。
【図５】シナリオファイルの具体的説明図。
【図６】出力情報のテキストファイルの具体的説明図。
【図７】実機レスシミュレーション装置のフレームワーク化を示す構成図。
【図８】入力情報の読取り部の処理内容を示す模式図。
【図９】入力情報の読取り部の具体的説明図。
【図１０】ＣＰＵ−ＩＣＥによる変数のログファイルの具体的説明図。
【図１１】出力情報のトレースファイルの具体的説明図。
【図１２】制御ソフトの差分管理の説明図。
【図１３】シミュレーション結果判断ファイル１１０１の具体的説明図。
【図１４】デバイスに直接設定可能なシミュレータ１２０１のフォーマット変換の手順説明図。
【図１５】操作部１０１が設定する構造体の内部宣言の説明図。
【図１６】多機能化を実現した実機レスシミュレーション装置の模式図。
【図１７】制御要求仕様追加時の実機レスシミュレーション装置の動作説明図。
【符号の説明】
１０１  操作部
１０２  制御ソフトウェア
２０１  実機レスシミュレーション装置
３０１  入力情報テキストファイル
３０２  読取り部
３０３  書込み部
３０４  出力情報テキストファイル
３０５  判断部
３０６  判定結果
３０７  処理部
３０８  期待値
３０９  シナリオファイル
【図１】
2005049947.tif 000003
【図２】
2005049947.tif 000004
【図３】
2005049947.tif 000005
【図４】
2005049947.tif 000006
【図５】
2005049947.tif 000007
【図６】
2005049947.tif 000008
【図７】
2005049947.tif 000009
【図８】
2005049947.tif 000010
【図９】
2005049947.tif 000011
【図１０】
2005049947.tif 000012
【図１１】
2005049947.tif 000013
【図１２】
2005049947.tif 000014
【図１３】
2005049947.tif 000015
【図１４】
2005049947.tif 000016
【図１５】
2005049947.tif 000017
【図１６】
2005049947.tif 000018
【図１７】
2005049947.tif 000019