(57)【要約】      （修正有）【課題】検証対象ソフトウエアの動作と比較対象動作を比較・検証するソフトウエア検証装置を提供する。【解決手段】検証対象ＣＰＵシミュレータ１０１は、制御対象装置のソフトウエアの動作をシミュレートする。比較対象制御模擬手段１０２は、比較対象となるソフトウエアの動作をシミュレートする。制御対象物シミュレータ１０７及び１０８は、ソフトウエアの制御対象装置の動作を模擬する。ＨＵＢ１０３は、複数のシミュレータアプリケーションを接続し、同期手段１０４は、検証対象ＣＰＵシミュレータと制御対象物シミュレータ１０７を第一のグループ、比較対象制御模擬手段と制御対象物シミュレータ１０８を第二のグループとし、動作起点到達以前は各グループ内で同期し、動作起点到達以降はグループ間で同期する。結果表示手段１０９は、検証対象ＣＰＵシミュレータと比較対象制御模擬手段によってそれぞれ制御される制御対象物の動作を重ねて表示する。【選択図】図１
2019066913.tif 000002
【特許請求の範囲】
【請求項１】
検証対象ソフトウエアが実行されるターゲットＣＰＵの動作をシミュレーションするＣＰＵシミュレータと、
前記検証対象ソフトウエアによって制御される制御対象物の動作の変化を解析し、該制御対象物の動作を視覚化する第一の視覚化データを生成する第一の制御対象物シミュレータと、
前記検証対象ソフトウエアによる制御と比較される比較対象の制御機能をシミュレーションする比較制御シミュレータと、
前記比較制御シミュレータによってシミュレーションされる制御機能に基づく前記制御対象物の動作の変化を解析し、該制御対象物の動作を視覚化する第二の視覚化データを生成する第二の制御対象物シミュレータと、
前記第一の視覚化データと、前記第二の視覚化データに基づいて、前記検証対象ソフトウエアによって制御される前記制御対象物の動作と、前記比較制御シミュレータによってシミュレーションされる制御機能に基づく前記制御対象物の動作とを重ね合わせて表示する結果表示手段と、
前記ＣＰＵシミュレータと前記第一の制御対象物シミュレータを第一のシミュレーショングループとし、前記比較制御シミュレータと前記第二の制御対象物シミュレータを第二のシミュレーショングループとしたときに、各シミュレーショングループのシミュレーションの結果から、該シミュレーショングループにおけるシミュレーション実行が、前記制御対象物の動作における起点となる動作起点に到達しているか否かを判断する到達判断手段と、
複数の前記シミュレータ間における時間同期を行う同期手段と、
を備え、
前記同期手段は、前記第一及び前記第二のシミュレーショングループのいずれもが前記動作起点に到達したと判断されると、前記第一及び前記第二のシミュレーショングループの間で時間同期を行うよう時間同期の方法を変更する同期変更手段を有することを特徴とするソフトウエア検証装置。
【請求項２】
前記同期手段は、各シミュレーショングループにおけるシミュレーションが前記動作起点に到達したと判断されるまでは各グループ内で時間同期を行い、前記第一及び第二のシミュレーショングループのいずれもが前記動作起点に到達したと判断されると、前記同期変更手段によって、前記第一及び前記第二のシミュレーショングループを構成するシミュレータ及び前記結果表示手段で時間同期を行うことを特徴とする請求項１に記載のソフトウエア検証装置。
【請求項３】
前記比較制御シミュレータは、前記検証対象ソフトウエアと比較される比較対象ソフトウエアが実行されるターゲットＣＰＵの動作のシミュレーションを行う比較対象ＣＰＵシミュレータであることを特徴とする請求項１又は２に記載のソフトウエア検証装置。
【請求項４】
前記到達判断手段は、前記検証対象ソフトウエアが扱う制御情報又は比較対象の制御機能が扱う制御情報により、前記動作起点を定めることを特徴とする請求項１ないし３のいずれか１項に記載のソフトウエア検証装置。
【請求項５】
前記到達判断手段は、前記制御対象物の動作又は状態により、前記動作起点を定めることを特徴とする請求項１ないし３のいずれか１項に記載のソフトウエア検証装置。
【請求項６】
前記ＣＰＵシミュレータ又は前記比較制御シミュレータが、前記到達判断手段を有し、該到達判断手段は、前記動作起点に到達したことを表す情報を前記同期変更手段に通知することを特徴とする請求項１ないし３のいずれか１項に記載のソフトウエア検証装置。
【請求項７】
前記第一の制御対象物シミュレータ又は前記第二の制御対象物シミュレータが、前記到達判断手段を有し、該到達判断手段は、前記動作起点に到達したことを表す情報を前記同期変更手段に通知することを特徴とする請求項１ないし３のいずれか１項に記載のソフトウエア検証装置。
【請求項８】
前記同期手段が、前記到達判断手段を有し、該同期手段の外部から通知される前記動作起点を定める情報の変化により、前記動作起点に到達したか否かを判断することを特徴とする請求項１ないし５のいずれか１項に記載のソフトウエア検証装置。
【請求項９】
前記到達判断手段は、前記動作起点へ到達したか否かの判断の有効及び無効を切り替える効力切替手段を有することを特徴とする請求項１ないし８のいずれか１項に記載のソフトウエア検証装置。
【請求項１０】
前記効力切替手段は、検証対象ソフトウエアの制御情報又は前記比較対象の制御機能が扱う制御情報が所定条件を満たしたか否かにより、前記動作起点へ到達したか否かの判断の有効及び無効を切り替えることを特徴とする請求項９に記載のソフトウエア検証装置。
【請求項１１】
前記効力切替手段は、前記制御対象物の動作又は状態を決定する情報が所定条件を満たしたか否かにより、前記動作起点へ到達したか否かの判断の有効及び無効を切り替えることを特徴とする請求項９に記載のソフトウエア検証装置。
【請求項１２】
前記結果表示手段は、前記第一及び前記第二のシミュレーショングループのシミュレーションの結果である前記制御対象物の動作の差異を検出することを特徴とする請求項１ないし１１のいずれか１項に記載のソフトウエア検証装置。
【請求項１３】
前記結果表示手段は、前記第一及び前記第二のシミュレーショングループの前記制御対象物の動作の差異を検出したことを表す情報を前記同期手段に通知し、
前記同期手段は、前記第一及び前記第二のシミュレーショングループの前記制御対象物の動作の差異を検出された後は、前記第一及び前記第二のシミュレーショングループを構成する各シミュレータの時間同期を一時停止することを特徴とする請求項１２に記載のソフトウエア検証装置。
【請求項１４】
前記同期手段は、一つの前記シミュレーショングループを構成する複数のシミュレータ間で時間同期を行う複数の同期モジュールを有し、
前記同期変更手段は、
前記第一及び前記第二のシミュレーショングループのいずれもが動作起点に到達したと判断されるまでは、一つの前記同期モジュールで一つの前記シミュレーショングループ内での時間同期を行い、
前記第一及び前記第二のシミュレーショングループのいずれもが動作起点に到達したと判断された後は、いずれかの前記同期モジュールで、第一及び第二のシミュレーショングループの時間同期を行うよう時間同期の方法を切り替えることを特徴とする請求項１ないし１３のいずれか１項に記載のソフトウエア検証装置。
【請求項１５】
前記同期手段は、一つのシミュレーショングループを構成する複数のシミュレータ間で時間同期を行なう複数の同期モジュールと、該同期モジュールの間での時間同期を行う統括同期モジュールを有し、
前記同期変更手段は、
前記第一及び前記第二のシミュレーショングループのいずれもが動作起点に到達したと判断されるまでは、前記同期モジュールが各グループ内での時間同期を行い、
前記第一及び前記第二のシミュレーショングループのいずれもが動作起点に到達したと判断された後は、前記統括同期モジュールで前記第一及び前記第二のシミュレーショングループ間の時間同期を行うよう時間同期の方法を切り替えることを特徴とする請求項１ないし１３のいずれか１項に記載のソフトウエア検証装置。
【請求項１６】
前記同期モジュールは、時間同期の対象となるシミュレータに所定時間分の処理実行を指示する機能を有し、
前記ＣＰＵシミュレータ、前記比較制御シミュレータ、前記第一及び前記第二の制御対象物シミュレータ並びに前記結果表示手段は、前記同期モジュールから指示を受けた所定時間分の処理を終了すると、前記同期モジュールへ実行終了を通知する機能を有し、
前記同期変更手段は、前記第一及び前記第二のシミュレーショングループのいずれか一方が前記動作起点に到達した後に、該動作起点に到達したグループのシミュレーション実行の指示を一時停止し、前記第一及び前記第二のシミュレーショングループのいずれもが前記動作起点に到達した時点で、前記ＣＰＵシミュレータ、前記比較制御シミュレータ、前記第一及び前記第二の制御対象物シミュレータ並びに前記結果表示手段へシミュレーションの実行を指示することを特徴とする請求項１４又は１５に記載のソフトウエア検証装置。
【請求項１７】
請求項１ないし１６のいずれか１項に記載のソフトウエア検証装置としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御ソフトウエアを検証するソフトウエア検証装置に関する。
【背景技術】
【０００２】
ソフトウエアは、不正な動作を行っていないかテストをし、デバッグ作業を経てリリースされる。特許文献１は、２つのプログラムを比較検証する検証方法を開示している。特許文献１では、ユーザが比較対象プログラムと検証対象プログラムに同期点を設定し、同期点に同期コマンドを挿入した検証用プログラムを生成し、プログラム検証を行っている。また、特許文献２は、ソフトウエアで制御したメカの動きをアニメーションで見ながらソフトウエアのデバッグを行う方法が提案されている。このように、メカ装置を制御するソフトウエアのデバッグや検証に、機器制御シミュレーションを用いることがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１６５１２１号公報
【特許文献２】特開平１１−３２７９５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ソフトウエアに何かしらの変更を加えた場合、変更箇所以外のソフトウエア動作が、変更前のソフトウエア動作と同じであるか動作検証を行う。ここで、例えば、画像形成装置の制御ソフトウエアの画像形成動作に変更を加えた場合、画像形成以外の動作である用紙搬送動作に弊害がないか確認する必要がある。変更前の制御ソフトウエアでは、正常に用紙搬送されていたが、変更後の制御ソフトウエアの用紙搬送動作の確認時に、用紙が異常な状態（例えばジャム）になると、ソフトウエア変更による弊害を認識できる。しかし、用紙が異常な状態にならずとも、変更前後の２つのソフトウエアによる用紙搬送状態の遷移が一致しなければ、実際はソフトウエア変更による弊害が出ていることになる。上記のような異常動作にならない弊害を発見するには、変更前後の２つのソフトウエアによる用紙搬送状態の遷移を比較し、用紙動作の不一致を認識しやすくする必要がある。
検証対象の動作である用紙搬送状態の遷移を比較するためには、ソフトウエアの制御対象物である用紙動作について、２つのソフトウエアでの検証起点を合わせる必要がある。
しかしながら、特許文献１は、２つのソフトウエアの制御対象物動作の起点を合わせることを開示するものではなく、制御対象物動作の比較はできない。
また、特許文献２のように、変更前後の２つのソフトウエアを各々シミュレーションし、検証動作の起点を合わせてシミュレーション結果ログを保存後、シミュレーション結果ログから検証動作を再生、及び比較する方法が考えられる。しかし、１回のシミュレーション実行でソフトウエアの検証とデバッグを同時に行うことはできないため、検証に多くの時間を要する。
【０００５】
本発明は、検証対象の制御ソフトウエアの制御対象物動作と比較対象動作を比較し、制御ソフトウエアの動作を検証する検証装置及びプログラムを提供するものである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明に係るソフトウエア検証装置は、
検証対象ソフトウエアが実行されるターゲットＣＰＵの動作をシミュレーションするＣＰＵシミュレータと、
前記検証対象ソフトウエアによって制御される制御対象物の動作の変化を解析し、該制
御対象物の動作を視覚化する第一の視覚化データを生成する第一の制御対象物シミュレータと、
前記検証対象ソフトウエアによる制御と比較される比較対象の制御機能をシミュレーションする比較制御シミュレータと、
前記比較制御シミュレータによってシミュレーションされる制御機能に基づく前記制御対象物の動作の変化を解析し、該制御対象物の動作を視覚化する第二の視覚化データを生成する第二の制御対象物シミュレータと、
前記第一の視覚化データと、前記第二の視覚化データに基づいて、前記検証対象ソフトウエアによって制御される前記制御対象物の動作と、前記比較制御シミュレータによってシミュレーションされる制御機能に基づく前記制御対象物の動作とを重ね合わせて表示する結果表示手段と、
前記ＣＰＵシミュレータと前記第一の制御対象物シミュレータを第一のシミュレーショングループとし、前記比較制御シミュレータと前記第二の制御対象物シミュレータを第二のシミュレーショングループとしたときに、各シミュレーショングループのシミュレーションの結果から、該シミュレーショングループにおけるシミュレーション実行が、前記制御対象物の動作における起点となる動作起点に到達しているか否かを判断する到達判断手段と、
複数の前記シミュレータ間における時間同期を行う同期手段と、
を備え、
前記同期手段は、前記第一及び前記第二のシミュレーショングループのいずれもが前記動作起点に到達したと判断されると、前記第一及び前記第二のシミュレーショングループの間で時間同期を行うよう時間同期の方法を変更する同期変更手段を有することを特徴とする。
【０００７】
また、本発明に係るプログラムは、上記ソフトウエア検証装置としてコンピュータを機能させることを特徴とする。
【発明の効果】
【０００８】
以上説明したように、本発明によれば、検証対象動作と比較対象動作の起点を同期させ、検証対象ソフトウエアの動作と比較対象動作を視覚情報で比較できるため、検証者は異常動作を発見しやすくなる。また、１回のシミュレーション実行で動作比較とデバッグができる。結果として、検証者の検証工数を削減できる。
【図面の簡単な説明】
【０００９】
【図１】本発明に係るソフトウエア検証装置の機能構成図
【図２】本発明に係るソフトウエア検証装置のハードウェア構成図
【図３】検証対象ソフトウエアの制御対象装置である電子写真装置の断面図
【図４】実施例に挙げる検証対象及び比較対象ソフトウエアの実施処理の概念図
【図５】実施例１に係る動作起点到達情報の例を示す図
【図６】実施例１に係る動作起点到達判断機能の処理のフローチャート
【図７】画像形成装置シミュレータの出力イメージの説明図
【図８】シミュレーショングループ情報の例を示す図
【図９】同期手段での処理のフローチャート
【図１０】本発明に係る結果表示手段の出力イメージの説明図
【図１１】実施例２に係るソフトウエア検証装置の機能構成図
【図１２】実施例２に係る動作起点到達情報の例を示す図
【図１３】実施例２に係る動作差異検出機能の処理のフローチャート
【図１４】実施例３に係るソフトウエア検証装置の機能構成図
【図１５】実施例３に係る判断実施可否状態決定部の処理のフローチャート
【発明を実施するための形態】
【００１０】
以下に図面を参照して、この発明を実施するための形態を、実施例に基づいて例示的に詳しく説明する。ただし、この実施の形態に記載されている構成部品の寸法、材質、形状それらの相対配置などは、発明が適用される装置の構成や各種条件により適宜変更されるべきものである。すなわち、この発明の範囲を以下の実施の形態に限定する趣旨のものではない。
なお、以下の各図においては、実施形態の説明に必要ではない構成要素については図から省略する。
【実施例１】
【００１１】
本実施形態によるソフトウエア検証装置は、コンピュータシステム上でプログラムを実行することで実現でき、そのハードウェア構成を図２に示す。図２の本体部２０２のハードディスク２０２ｃには、検証装置の各機能を実現するためのプログラムや、制御対象装置に関する情報を含む各種データや、検証対象の制御ソフトウエアが格納される。中央処理部２０２ａは、プログラム及び各種データを主記憶部２０２ｂにロードして実行し、これによりコンピュータシステム２０１は検証装置として動作する。なお、表示装置２０３は、本体部２０２からの指示により画面表示を行う。また、キーボード２０４は、このコンピュータシステム２０１にユーザの指示や文字情報を入力するためのものである。さらに、マウス２０５は、表示装置２０３上の任意の位置を指定することによりその位置に表示されていたアイコン等に応じた指示を入力するためのものである。
これらコンピュータシステム２０１の基本動作は、基本プログラムであるオペレーティングシステム（以下、ＯＳと記す）を介して実行される。
【００１２】
本実施形態では、制御ソフトウエアの制御対象装置（制御対象物）が画像形成装置であり、検証対象動作が用紙搬送動作であるものとして説明を行うものの、制御対象装置は、画像形成装置以外の装置であってもよい。さらに、検証対象動作は用紙搬送動作以外でもよく、制御ソフトウエアの制御対象物の動作で、後述の制御対象物シミュレータ上で視覚化データが生成されるものであればよい。
【００１３】
ここで、ソフトウエアの制御対象装置について説明する。図３はソフトウエアの制御対象装置である画像形成装置３０１の断面図である。画像形成装置３０１は図３に示すように用紙Ｓを収納するカセット３０２を有する。前記カセット３０２上には、用紙をピックアップするピックアップローラ３０３、更にピックアップされた用紙をくり出す給紙ローラ３０４が設けられている。そして、給紙ローラ３０４の下流には給紙された用紙Ｓを後述のレジストローラまで搬送する搬送ローラ３０５が配設されている。前記搬送ローラ３０５の下流には、画像の副走査同期信号に用紙Ｓを同期させて搬送するレジストローラ３０７が配設されており、該レジストローラ３０７の直前には用紙センサであるレジ前センサ３０６が配設されている。レジストローラ３０７の下流には、レーザスキャナ部３０９からのレーザ光により画像を形成する画像形成部３０８が配設されている。さらに、該画像形成部３０８の下流には定着器３１０が配設されており、定着器３１０の下流には定着排紙ローラ３１１が、その下流には定着排紙センサ３１２が配設されている。定着排紙センサ３１２の下流には排紙トレイ３１５への搬送路がある。排紙トレイ３１５への搬送路下流には排紙搬送ローラ３１３、３１４が配設されて、排紙トレイ３１５まで用紙Ｓを搬送する。
【００１４】
画像形成装置３０１は、前記の機能の他に下記の機能を有し、画像形成装置の制御ソフトウエアは、下記機能を制御している。ピックアップローラ３０３、給紙ローラ３０４、搬送ローラ３０５は不図示の給紙モータを駆動源としている。そして、レジストローラ３０７から下流の用紙搬送ローラ（画像形成部３０８の感光ドラム、転写ローラ、定着器３１０の定着ローラを含む）は全て不図示のメインモータを駆動源としている。ピックアッ
プローラ３０３は不図示のカム機構によって上下動する構成になっており、カム機構駆動のトリガを不図示のピックアップソレノイドによってコントロールする。レジストローラ３０７は不図示のレジストローラクラッチを介してメインモータからの駆動力を受けており、レジストローラクラッチの制御によって駆動・停止が制御される。画像形成部３０８の光学機構は半導体レーザと半導体レーザからのレーザ光を反射させるポリゴンミラーを回転させ感光ドラム上にレーザ光を照射させるスキャナモータとを有している。また、定着器には定着器を加熱するための定着ヒータ、定着器の温度を測定するサーミスタ、ヒータへの通電接続又は遮断をコントロールするリレーを有している。
【００１５】
以上に示した構成、機能を有する画像形成装置３０１の制御ソフトウエアは以下に示す制御を行う。すなわち、画像形成装置の外部機器より画像形成の指示を受けると、カセット３０２内に用紙Ｓがあるかをチェックし、定着器３１０の加熱処理を実施し、定着器３１０が所定温度に達すると、画像形成処理を実行する。画像形成処理においては、まず、カセット３０２から用紙Ｓをピックアップし、ピックアップに続き用紙Ｓを給紙し、画像形成部３０８の感光ドラム上にレーザ光を照射し、レーザ照射部分に電荷を帯びたトナーを載せてトナー画像を形成する。そして、搬送した用紙Ｓに感光ドラム上に載ったトナー画像を転写し、用紙Ｓを定着器３１０へ搬送し、転写されたトナー画像を熱で用紙Ｓに定着させ、用紙Ｓを排紙トレイ３１５へ排紙し、印刷物を作成する処理を行う。
【００１６】
続いて、本実施形態によるソフトウエア検証装置のシステム構成を説明する。なお、本実施例では、検証対象ソフトウエアと比較対象ソフトウエアとで、画像形成装置３０１で１ページ分の印刷を実施し、用紙Ｓの搬送動作に差異がないことを確認する検証を実施するものとする。
図１は、本実施形態による制御ソフトウエア検証装置（以下、単に検証装置と記す）の構成図である。本実施形態の検証装置は、検証対象ＣＰＵシミュレータ１０１と比較対象制御模擬手段１０２と第一の制御対象物シミュレータ１０７と第二の制御対象物シミュレータ１０８とシミュレータハブ（以下、ＨＵＢと記す）１０３と結果表示手段１０９を備えている。ここで、比較対象模擬手段１０２は、比較制御シミュレータに相当する。なお、検証対象ＣＰＵシミュレータ１０１、比較対象制御模擬手段１０２、制御対象物シミュレータ１０７、１０８、及び結果表示手段１０９では、時間同期を取る。
ここで、シミュレーション上の時間について説明する。検証装置を構成する各アプリケーションは、各々が模擬時間の概念をもっている。模擬時間とは、シミュレーション対象物の模擬状態の変化に伴い進行する時間のことである。例えば、移動速度が時速１０キロメートルである物体の動きをシミュレーションする場合、物体の移動量が１０キロメートル分のシミュレーションをすると、シミュレーションに要する実際の時間にかかわらず、模擬時間は１時間進行する。本実施形態による検証装置では、各々異なる模擬対象に対応する複数のシミュレータが連係する形態である。この場合、同一の模擬時間分の解析処理に要する実時間は、シミュレータごとに異なる。言い換えると、実時間の経過に伴う模擬時間の進行度合いは、シミュレータによって異なる。従って、本検証装置では、シミュレータ間における模擬時間同期処理を行うことで模擬時間の進行を一致させ連携シミュレーションを可能としている。以下の説明において、特に指定しない限り、「時間」とは「模擬時間」を示すものとする。
【００１７】
検証対象ＣＰＵシミュレータ１０１は、制御対象装置のソフトウエアのプログラムの動きを模擬する。つまり、検証対象ＣＰＵシミュレータ１０１は、制御対象装置の制御部（ターゲットＣＰＵ）が実行する制御ソフトウエアをホストＰＣ上で実行する。そして、検証対象ＣＰＵシミュレータ１０１は、制御対象装置のセンサ等が出力する制御対象装置の動作状態を示す信号を受け取り、制御対象装置の各部品に制御信号を出力する。前記制御ソフトウエアが検証対象ソフトウエア１１１に相当する。
比較対象制御模擬手段１０２は、検証対象ソフトウエアの比較対象となるソフトウエア
（以下、単に比較対象ソフトウエアと記す）の動作、すなわち比較対象の制御機能を模擬する。比較対象制御模擬手段１０２は、比較対象となるソフトウエアのプログラムをホストＰＣ上実行するＣＰＵシミュレータ（比較対象ＣＰＵシミュレータ）であってもよい。また、比較対象制御模擬手段１０２は、比較対象ソフトウエアの機能を模擬する手段でもよい。本例では、比較対象制御模擬手段１０２は比較対象ソフトウエアを実行するＣＰＵシミュレータであるものとして説明を行う。
【００１８】
画像形成装置３０１の制御ソフトウエアにおいて、用紙搬送制御に無関係な変更が加えられた場合、制御結果としての用紙搬送動作は、変更前後で違いが発生しないはずである。もし、ソフトウエアの変更前後で用紙搬送動作に違いがあるとすれば、ソフトウエア変更による弊害であるといえる。このような弊害確認のためには変更前後のソフトウエアを実行して、用紙の動きを重ね合わせて表示し直接目視確認するのが、最も明快な方法であるといえる。そこで、ソフトウエア検証装置において、用紙搬送動作を検証対象として、２つのソフトウエアの動作を比較する処理について説明する。
検証対象ソフトウエア及び比較対象ソフトウエアが、検証対象の動作である用紙搬送を実施するまでに行う処理について説明する。図４は、２つのソフトウエアの実施処理の概念図である。どちらのソフトウエアも画像形成装置の外部機器から画像形成指示を受け付けると、カセット３０２内に用紙Ｓがあるかをチェックし、定着器３１０の加熱処理を実施し、定着器３１０が所定温度に達すると、用紙搬送処理を開始する。ただし、検証対象ソフトウエアと比較対象ソフトウエアでは、定着器３１０の加熱処理の処理内容が異なる。検証対象ソフトウエアでは、定着器３１０の加熱処理に新たな機能が加わり、比較対象ソフトウエアの方が、定着器加熱処理に要する実時間が少ない。この処理内容の違いにより、画像形成指示を受け付けてから、用紙搬送処理は、比較対象ソフトウエアの方が早く開始する。なお、検証対象ソフトウエア及び比較対象ソフトウエアは、ピックアップソレノイド駆動信号がハイになったことをもって、用紙搬送動作を開始する。
以上のような制御の違いがある検証対象ソフトウエアと比較対象ソフトウエアに対して、単純に同じタイミングで画像形成指示を出して並列に実行しても、検証対象である用紙搬送動作を重ね合わせることはできない。そこで、本実施例におけるソフトウエア検証装置においては、検証対象物の動作起点から検証対象と比較対象のソフトウエアのシミュレーションを同期させることにより、検証対象物の動作を重ね合わせて表示し、比較できるようにしている。
なお、本実施例では、検証対象ソフトウエアは、検証対象動作である用紙搬送の処理以外の箇所に変更を加えたものとして説明を行うが、本発明の検証対象ソフトウエアは、検証対象動作の処理に変更を加えたものでもよい。例えば、ソフトウエアの用紙搬送制御に変更は加えるものの、制御対象の用紙搬送動作は同じである場合、本検証装置を用いて検証対象物である用紙の搬送動作を比較することができる。
【００１９】
図１の説明に戻る。検証対象ＣＰＵシミュレータ１０１及び比較対象制御模擬手段１０２は、検証動作の起点（以下、動作起点と記す）に到達したかを判断する動作起点到達判断機能１１４及び１１５を有している。ここでは、動作起点到達判断機能１１４及び１１５が到達判断手段に相当する。動作起点を指定する起点指定情報（以下、動作起点指定情報と記す）としては、ソフトウエアの扱う制御情報を用いる。この制御情報とは、例えば、ソフトウエア内の変数や、ソフトウエアの制御対象装置に搭載されるＣＰＵ（以下、ターゲットＣＰＵと記す）のレジスタや、ソフトウエアのプログラムカウンタである。図５はターゲットＣＰＵのレジスタ信号を用いて検証動作起点を定義する例である。前述のように、検証動作起点がソフトウエアの制御対象装置である画像形成装置の構成部品のピックアップソレノイド駆動信号がハイレベルである場合、図５（ａ）に示すように、
‐ソフトウエアの制御情報は、ピックアップソレノイド駆動信号
‐検証動作起点到達条件は、制御情報がハイレベル
として設定される。図５（ｂ）は動作起点到達判断機能１１４及び１１５内で扱われる動
作起点情報の設定例であり、検証動作起点に用いる制御情報と、前記制御情報の検証動作起点到達条件の情報で設定する。検証動作起点に用いる制御情報は、ターゲットＣＰＵ上のアドレス、制御情報のビット長とビット位置で指定され、検証動作起点到達条件は、制御情報の条件を指定する。ピックアップソレノイド信号がアドレス０ｘ０００１の２ビット目の１ビット長さの制御情報である場合、図５（ｂ）のように設定され、この情報は、動作起点情報１１６及び１１７に格納される。図６は動作起点到達判断機能１１４及び１１５の処理のフローチャートである。検証対象ＣＰＵシミュレータ１０１及び比較対象制御模擬手段１０２でシミュレーションを開始後、動作起点指定情報の変化を監視する（Ｓ６０１）。動作起点指定情報の変化である場合、動作起点成立条件を満たしているかチェックする（Ｓ６０２）。Ｓ６０２にて条件成立と判断の場合、ＨＵＢ１０３に検証動作起点到達を通知（以下、動作起点到達通知と記す）する（Ｓ６０３）。なお、動作起点情報と動作起点成立条件は、動作起点情報１１６及び１１７に格納されている。検証動作起点到達を定める制御情報は、ソフトウエアの扱う制御情報が画像形成装置を構成する機械部品の駆動信号ではなく、ソフトウエア内の変数でも、ターゲットＣＰＵのプログラムカウンタでもよい。
【００２０】
制御対象物シミュレータ１０７及び１０８は、ソフトウエアの制御対象装置、本例では、画像形成装置の各部品の動作を模擬する。制御対象物シミュレータ１０７及び１０８は、各部品の動作の変化を連続的に解析し、解析結果から視覚化データを生成する。制御対象物シミュレータ１０７が生成する視覚化データは、第一の視覚化データに相当し、制御対象シミュレータ１０８が生成する視覚化データは、第二の視覚化データに相当する。そして、表示装置２０３上に各部品の動作状態を表示する。なお、画像形成装置の各部品とは、画像形成装置を構成するモータやローラ、クラッチ等の機械部品に加え、画像転写材の紙など機械部品以外の画像形成装置で取扱われる物体、及び、定着器温度といった物性も含まれる。
図７に、制御対象物シミュレータ１０７及び１０８のコンピュータシステム２０１の表示装置２０３上の出力イメージの例を示す。７０１は給紙カセット、７０２は給紙カセット上の給紙待ち用紙、７０４は給紙クラッチ、７０５は給紙センサ、７０６は給紙モータ、７０７はピックアップソレノイド、７０８はピックアップローラ、７０９は給紙ローラを示している。また、７１０は搬送パス、７１１は搬送ローラ、７１２はレジストローラ、７１３はレジセンサ、７１４はレジストローラクラッチ、７１５は感光ドラム、７１６は転写ローラ、７１７はレーザ光表示、７１８はメインモータを示している。そして、７１９は定着ローラ、７２０は定着排紙ローラ、７２１、７２２、７２３は排紙搬送ローラ、７２８は画像形成装置から排出された用紙、７２９は排紙トレイを示している。太い実線は用紙を示し、太い破線はトナー像形成領域を示す。トナー像形成領域は、画像データの出力タイミング、画像マスク解除設定、各種高圧制御信号の設定値と設定タイミングからトナー像が正常に形成できる範囲を求めて表示される。そして、転写位置以降用紙上のトナー像形成領域が斜線で表示される。
【００２１】
制御対象物シミュレータ１０７及び１０８は、生成した視覚化データを結果表示手段１０９に通知する。制御対象物シミュレータ１０７及び１０８は、少なくとも検証時に動作比較する制御対象物の視覚化データを結果表示手段１０９に通知する。ここで、制御対象物シミュレータ１０７及び１０８の視覚化データ生成及び管理方法について説明する。制御対象物シミュレータ１０７及び１０８は、各部品の視覚化データを制御対象物シミュレータ１０７及び１０８の制御対象物描画エリア内の基準点からの座標で管理する。座標はＸ座標とＹ座標で示され、以降ではＸ座標の値とＹ座標の値を（Ｘ座標値、Ｙ座標値）と記す。搬送パス７１０は、複数の直線をつなぎ合わせて定義され、直線は始点と終点の２つの座標で構成される。始点は用紙搬送路上の上流であり、終点は、用紙搬送路上の下流である。また、用紙の視覚化データは、用紙先端と用紙後端の座標で構成される。制御対象物シミュレータ１０７及び１０８は、単位時間分の用紙移動量を算出し、現在（単位時
間分処理実行前の時点）の用紙位置から移動後の用紙先端、後端の座標値を算出して、用紙搬送路上での用紙位置を決定する。なお、上述の視覚化データ生成及びデータ管理方法は一例であり、本発明は、上述の視覚化データ生成方法に限定されるものではない。
【００２２】
制御対象物シミュレータ１０７は、検証対象ソフトウエアの制御対象物の動作をシミュレーションし、制御対象物シミュレータ１０８は、比較対象ソフトウエアの制御対象物の動作をシミュレーションする。具体的には、制御対象物シミュレータ１０７は、検証対象ＣＰＵシミュレータ１０１から出力される制御対象装置の制御情報で検証対象ソフトウエア１１１の制御対象物の動作を模擬する。そして、制御対象物シミュレータ１０８は、比較対象制御模擬手段１０２から出力される制御対象装置の制御情報で比較対象ソフトウエアの制御対象物の動作をシミュレーションする。
なお、検証対象ＣＰＵシミュレータ１０１と制御対象物シミュレータ１０７は、検証対象ソフトウエアの動作を模擬するためのシミュレーショングループである。そのため、検証対象ＣＰＵシミュレータ１０１と制御対象物シミュレータ１０７を検証対象シミュレーショングループと定義する。同様に、比較対象制御模擬手段１０２と制御対象物シミュレータ１０８は、比較対象ソフトウエアの動作を模擬するための比較対象シミュレーショングループと定義する。
【００２３】
ＨＵＢ１０３は、独立プロセスとして動作する複数のシミュレータアプリケーションを接続し、連携動作させる。ＨＵＢ１０３は、同期手段１０４と配線データ管理手段１０５から構成される。各シミュレータアプリケーションは、他アプリケーションに結線されているデータが変化すると、データをＨＵＢ１０３に出力する。配線データ管理手段１０５は、各シミュレータ間でのデータのつながりを、配線情報として管理し、各シミュレータ間でのデータやりとりを行う。
【００２４】
同期手段１０４は、検証装置を構成するアプリケーション間の同期をとる機能である。同期手段１０４は、２つの同期モードを有している。１つは、検証対象シミュレーショングループと比較対象シミュレーショングループの両シミュレーショングループが検証動作の起点到達前の起点到達前同期モード、もう１つは、両シミュレーショングループが検証動作の起点到達後の起点到達後同期モードである。シミュレーション実行中、検証対象及び比較対象シミュレーショングループの各々のグループ内は、常に時間同期が必要であり、各グループ間の時間同期は、動作起点到達以降のみ必要である。なぜなら、時間経過に伴うソフトウエアの制御対象物の動作を比較検証するには、２つのシミュレーショングループの検証動作起点を同期させる必要がある。しかし、検証動作起点に至るまでは各々のグループ内で時間同期がとれていればよく、グループ間の同期は不要だからである。一方、動作起点到達以降は、２つの検証動作の比較を行うため、グループ間での時間同期をとる必要があるからである。そのため、検証動作起点到達前後で、同期モードを変更し、シミュレーションを実行している。すなわち、同期手段１０４は、同期方法を変更する同期変更手段を有している。本例では、起点到達前同期モードとして、シミュレーショングループ内のシミュレータのみで同期するグループ内同期、起点到達後同期モードとして、シミュレーショングループ間のすべてのシミュレータで同期するグループ間同期として説明する。なお、１つのシミュレーショングループ内での時間同期方法は公知であるので詳述は避ける。
【００２５】
同期手段１０４は、動作起点同期機能１０６を有している。動作起点同期機能１０６は、検証対象ソフトウエアと比較対象ソフトウエアの検証対象動作の起点を同期させる機能である。動作起点同期機能１０６は、シミュレーショングループ情報１１２と動作起点到達情報１１３を有している。シミュレーショングループ情報１１２は、検証対象シミュレーショングループ及び比較対象シミュレーショングループのシミュレータ構成を示す情報である。具体的には、シミュレーショングループ情報１１２はシミュレーショングループ
とそのグループを構成するシミュレータアプリケーションを関連付けた情報である。動作起点到達情報１１３は、各シミュレーショングループの動作起点到達状態を示す情報であり、シミュレーショングループと動作起点到達状態を関連付けた情報である。図８（ａ）にシミュレーショングループ情報１１２の具体例を、図８（ｂ）に動作起点到達情報１１３の具体例を示す。検証対象ＣＰＵシミュレータ１０１及び比較対象制御模擬手段１０２が有する動作起点到達判断機能１１４及び１１５より動作起点到達通知を受領すると、動作起点到達通知の通知元アプリケーションが、どのシミュレーショングループに属するかチェックする。そして、動作起点到達情報１１３において、動作起点到達したシミュレーショングループの動作起点到達状態を更新する。
【００２６】
図９は、検証対象シミュレーショングループと比較対象シミュレーショングループの検証動作起点を同期するための同期手段１０４の処理フローチャートである。同期手段１０４は、各々のシミュレーショングループ内で同期をとる（Ｓ９０１）。全シミュレーショングループが動作起点到達したかをチェックし（Ｓ９０２）、両シミュレーショングループが動作起点に到達していれば、全アプリケーションで同期を行う（Ｓ９０３）。なお、検証装置全体のシミュレーション時間は、２つのシミュレーショングループの動作起点到達を起点に管理する。
【００２７】
ここで、Ｓ９０１とＳ９０３の同期方法について、具体例を挙げて説明する。同期手段１０４は、１つのシミュレーショングループを構成するシミュレータ間で時間同期をする同期モジュールを複数有している。Ｓ９０１では、第一の同期モジュールが検証対象シミュレーショングループ内で時間同期をとり、第二の同期モジュールが比較対象シミュレーショングループ内で時間同期とることで、各々のシミュレーショングループが並行にシミュレーションを進行する。当該シミュレーショングループが動作起点に到達以降、２つのシミュレーショングループの動作起点到達を待って、全アプリケーションで時間同期をとる。
動作起点到達以降、全アプリケーションで時間同期をとる方法は２つある。
１つは、動作起点到達以降、第一の同期モジュール又は第二の同期モジュールが、同期対象のアプリケーションを全アプリケーションに変更し、検証装置を構成する全アプリケーション間で時間同期をとる方法である。第一及び第二の同期モジュールは、どのアプリケーション間で時間同期をするか同期アプリケーション情報を有している。このため、シミュレーショングループが動作起点に到達すると、当該同期モジュールは、他方のシミュレーショングループの動作起点到達を待つ。もう一方のシミュレーショングループが動作起点に到達すると、一方のシミュレーショングループの同期モジュールは、同期アプリケーション情報を全アプリケーションに更新する。このとき、他方のシミュレーショングループの同期モジュールは同期アプリケーション情報を同期アプリケーションなしに更新する。２つのシミュレーショングループが動作起点に到達した後は、同期アプリケーション情報が全アプリケーションに更新された第一もしくは第二の同期モジュールのいずれか一方が、検証装置を構成する全アプリケーション間で時間同期をとる方法である。
もう１つは、第一の同期モジュールと第二の同期モジュールを同期させる第三の同期モジュール（統括同期モジュール）を有し、検証装置を構成する全アプリケーション間で時間同期をとる方法である。第一及び第二の同期モジュールの同期対象のシミュレーショングループが動作起点に到達すると、第三の同期モジュールは、第一と第二の同期モジュールの時間同期処理を同期させる。なお、第一及び第二の同期モジュールのいずれか一方は、動作起点到達時に、同期処理対象のアプリケーションに結果表示手段１０９を加える。
ここで、同期方法の一例をあげる。同期手段１０４が所定時間の実行を検証装置の構成アプリケーションに指示し、各アプリケーションが同期手段１０４から指示された所定時間分の処理を終了すると、ＨＵＢ１０３に対して実行終了を通知する同期方法の場合である。
本実施例で示した時間同期の方法は一例であって、本発明の同期方法に限定されるもの
ではなく、関連するアプリケーション間で模擬時間を同期させる方法であれば、本発明での同期方法は問わない。
【００２８】
配線データ管理手段１０５は、シミュレータ間を結ぶデータに関する各種設定情報（不図示）より各シミュレータ間のデータ伝達を行う。
結果表示手段１０９は、制御対象物シミュレータ１０７及び制御対象物シミュレータ１０８が生成する視覚化データを重ね合わせて表示する結果表示手段である。なお、視覚化データを重ね合わせて表示する手法に関しては公知技術であるので詳述は省略する。図１０に結果表示手段１０９のコンピュータシステム２０１の表示装置２０３上の出力イメージの例を示す。制御対象物シミュレータ１０７及び１０８の搬送用紙を重ねて表示している。２枚の用紙のうち一方の用紙７０２１を太線で、もう一方の用紙７０２２を破線と点線の組み合わせで表示している。
【００２９】
以下、本実施例のシミュレーション同期動作について、本実施例での具体例を挙げて説明する。
同期手段１０４は、Ｓ９０１で、検証対象ソフトウエアのシミュレータと検証対象ソフトウエアから出力される制御信号により動作する画像形成装置シミュレータとで時間同期をとりシミュレーションを実行する。同様に、同期手段１０４は、Ｓ９０１で、比較対象ソフトウエアのシミュレータと比較対象ソフトウエアから出力される制御信号により動作する画像形成装置シミュレータとで時間同期をとりシミュレーションを実行する。検証対象シミュレーショングループのシミュレーション実行が進み、検証対象ソフトウエア１１１がピックアップソレノイド駆動信号へハイレベル信号を出力する。そうすると、検証対象ソフトウエアのシミュレータが有する動作起点判断機能１１４が動作起点到達と判断し、ＨＵＢ１０３へ動作起点到達通知を行う。動作起点到達通知を受領したＨＵＢ１０３は、動作起点同期機能１０６のシミュレーショングループ情報１１２より、動作起点到達通知したアプリケーション（検証対象ソフトウエアシミュレータ）が検証対象シミュレーショングループであると判断する。そして、検証対象シミュレーショングループは動作起点到達と判断し、動作起点到達情報１１３を変更する。検証対象シミュレーショングループの同期モジュールは、同期アプリケーション情報を検証対象シミュレーショングループと比較対象シミュレーショングループ及び結果表示手段を含めた全アプリケーションを同期処理対象に変更する。ここで、検証対象シミュレーショングループはシミュレーション時間が一時停止の状態になる。比較対象ソフトウエアがピックアップソレノイド駆動信号へハイレベル信号を出力すると、比較対象ソフトウエアのシミュレータが有している動作起点到達判断機能１１５が動作起点到達と判断し、ＨＵＢ１０３へ動作起点到達通知を行う。動作起点到達通知を受領したＨＵＢ１０３は、動作起点同期機能１０６のシミュレーショングループ情報１１２より、動作起点到達通知したアプリケーション（比較対象ソフトウエアシミュレータ）が比較対象シミュレーショングループであると判断する。そして、比較対象シミュレーショングループは動作起点到達と判断し、動作起点到達情報１１３を変更する。比較対象シミュレーショングループの同期モジュールは、同期アプリケーション情報を同期アプリケーションなしに変更する。Ｓ９０２で、動作起点同期機能１０６は、動作起点到達情報１１３をチェックし、検証対象シミュレーショングループと比較対象シミュレーショングループのどちらもが動作起点に到達しているので、Ｓ９０３へ進む。そして、Ｓ９０３で、全アプリケーションで同期をとり、シミュレーション時間を進めてゆく。
【００３０】
なお、本実施例では、動作起点到達判断機能１１４及び１１５を検証対象ＣＰＵシミュレータ１０１及び比較対象制御模擬手段１０２が有している構成で説明を行ったが、ＨＵＢ１０３が動作起点到達判断機能１１４及び１１５を有していてもよい。その場合には、検証対象ＣＰＵシミュレータ１０１及び比較対象制御模擬手段１０２は、動作起点到達判断に必要なソフトウエアの制御情報をＨＵＢ１０３へ伝達する機能を有する。
また、検証対象ソフトウエアと比較対象ソフトウエアは異なるソフトウエアであるとして説明を行ったが、検証対象ソフトウエアと比較対象ソフトウエアが同じソフトウエアでもよい。例えば、画像形成装置３０１の定着器３１０の温度上昇率が異なるシミュレーションモデルで制御対象物シミュレータ１０７と１０８を動作させることがある。これは、定着器３１０の加熱処理において制御ソフトウエアにおける用紙搬送以外の処理が異なる条件でも、用紙搬送動作に差異がないことを確認する場合である。
【００３１】
以上、ソフトウエアの制御情報に変化がある度に、予め定めた動作起点の情報に基づき、動作起点に到達したかを判断し、検証対象シミュレーショングループと比較対象シミュレーショングループとの検証動作起点を同期させる。そして、検証動作について、２つのソフトウエアの制御対象物の動きを重ね合わせて視覚化データを表示する。この構成により、２つの制御ソフトウエアの制御結果である制御対象物の動きの差異を検証することができる。したがって、ソフトウエアの動作検証時に、２つのソフトウエアの動作の違いを認識しやすくなり、ソフトウエア検証の作業効率が向上する。また、２つのソフトウエア動作の違いが認識しやすくなるため、想定外動作の検出率が向上し、ソフトウエア開発工程において後工程への想定外動作の流出防止につながる。
【実施例２】
【００３２】
実施例１では、検証動作の起点がソフトウエアの制御情報を用いて定められていた。しかし、検証動作起点がソフトウエアの制御情報を用いて定義できない場合がある。例えば、ソフトウエアの制御対象物が所定の状態になることが検証動作起点の場合である。そこで、実施例２では、検証装置においてソフトウエアの制御情報ではなく、ソフトウエアの制御対象物の動作を決める情報を用いて検証動作起点を定め、制御対象物の動作を決める情報の変化をトリガに検証動作起点到達の判断を行う。また、検証動作の差異発生を検証装置が自動検出し、差異発生検出後シミュレーション実行を一時停止させる。以下、実施例１との相違点を中心に説明する。
【００３３】
図１１は、実施例２における検証装置の機能構成図である。実施例１の検証装置の機能構成との相違点は、動作起点到達判断機能が、ソフトウエアの制御情報ではなく、ソフトウエアの制御結果としての制御対象物の状態変化から動作起点を検出する点である。このため、動作起点到達判断機能１１１４、１１１５は、各々、制御対象物シミュレータ１１０７及び１１０８に有する構成となっている。
【００３４】
以下、機能構成の相違点の詳細を説明する。
動作起点到達判断機能１１１４及び１１１５は、ソフトウエアの制御対象物の動作が動作起点として予め定められた状態になったことを判断し、ＨＵＢ１０３へ動作起点到達を通知する機能である。実施例２では、画像形成装置３０１の用紙搬送路上のレジストローラ３０７のへの用紙先端到達が検証動作の起点である場合を例に挙げて、制御対象物シミュレータ１１０７及び１１０８の処理を説明する。
図１２は、ソフトウエアの制御対象物である用紙７０２先端のレジストローラ７１２への到達が動作起点である場合の検証動作の起点情報の設定例である。動作起点を示す情報は、部品を示す情報と動作起点到達時の部品状態を示す情報の２つの情報で構成される。部品を示す情報として部品ＩＤと部品部位を、部品状態を示す情報として前記部品と接する部品及び条件を設定する。図１２は、検証対象物である用紙を示す部品ＩＤ“ＰＡＰ”、用紙先端を示す“ＬＥＡＤ”、レジストローラを示す“ＲＯＬ４”が設定されていることを示す。なお、制御対象物シミュレータ１１０７及び１１０８では、レジストローラ７１２は部品ＩＤが“ＲＯＬ４”とする。さらに、用紙先端位置がレジストローラの外周位置と等しくなる、すなわち用紙先端が前記レジストローラの外周位置に到達を示す条件“＝＝”が設定されていることを示す。なお、“＝＝”は２つの情報が等しくなることを示す。
制御対象物シミュレータ１１０７及び１１０８は、各部品の配設位置及び他部品との接点位置を座標情報で管理する。例えば、レジストローラ７１２は、ローラ中心点座標でローラの配設位置を定義し、用紙搬送路上に配設される接点ポイント（不図示）の座標でローラと用紙との接点を定義する。及び動作起点情報１１１６及び１１１７が図１２に示される情報である場合、動作起点到達判断機能１１１４及び１１１５は、レジストローラ７１２の接点ポイントの座標に用紙先端の座標が到達したことを検知して、動作起点到達と判断する。
【００３５】
図６の動作起点到達判断機能の処理フローチャートを用いて動作起点到達判断機能１１１４及び１１１５の処理を説明する。Ｓ６０１では、動作起点の指定に用いられる部品の動きを決める情報に変化があるかをチェックする。本実施例では、用紙を用いて動作起点を指定しているので、用紙の動きを決める情報に変化があるかをチェックすることになる。前述の通り、制御対象物シミュレータ１１０７及び１１０８では、単位時間分の用紙移動量を算出しており、用紙の動きを決める情報として用紙移動量を用いる。用紙移動量がゼロであれば、用紙の動きを決める情報に変化なしと判断し、用紙移動量がゼロ以外であれば、用紙の動きを決める情報に変化ありと判断する。Ｓ６０１で用紙の動きを決める情報に変化ありと判断すると、Ｓ６０２にて、用紙搬送路上での用紙先端位置の座標がレジストローラ７１２の接点ポイントの座標に到達したかを判断する。
なお、用紙先端の座標がレジストローラ７１２の接点ポイントより搬送パス７１０上の下流に位置している場合に、レジストローラに到達と判断する。Ｓ６０２にてレジストローラ７１２の接点ポイントに用紙先端到達と判断すると、検証動作起点到達をＨＵＢ１０３に通知する（Ｓ６０３）。レジストローラ７１２の接点ポイントより用紙先端が搬送パス７１０上の下流に位置しているかの判断は、以下の方法で行う。搬送パス７１０は前述の通り複数の直線をつなぎ合わせて定義されている。レジストローラ７１２の接点ポイントが存在する搬送パスを構成する１つの直線上で用紙先端の座標とレジストローラ７１２の接点ポイントの座標のいずれが直線の終点座標に近いかにより、用紙先端がレジストローラ７１２より下流に位置しているかを判断する。すなわち、用紙先端の座標とレジストローラ７１２の接点ポイントの座標のいずれが用紙搬送路の下流側座標との距離が短いかにより、用紙先端がレジストローラ７１２より下流に位置しているかを判断する。
【００３６】
結果表示手段１１０９は、動作差異検出機能１１１８を有する。動作差異検出機能１１１８は、比較する２つの動作の差異を検出する機能である。検証動作制御対象物シミュレータ１１０７及び１１０８から、視覚化データを受領し、前記視覚化データから２つの検証動作の差異を検出する。
図１３は動作差異検出機能１１１８の処理フローチャートである。結果表示手段１１０９は、制御対象物シミュレータ１１０７及び１１０８から視覚化データを受領するまで待つ（Ｓ１３０１）。制御対象物シミュレータ１１０７及び１１０８から視覚化データを受領すると、制御対象物シミュレータ１１０７及び１１０８の２つから視覚化データを受領したかをチェックする（Ｓ１３０２）。Ｓ１３０２で２つの視覚化データ受領と判断すると、２つの視覚化データを比較する（Ｓ１３０３）。Ｓ１３０３の比較処理の結果、２つの視覚化データに差異があるかをチェックする（Ｓ１３０４）。Ｓ１３０４で、比較結果に差異がなければ、Ｓ１３０１に戻り、新たな視覚化データを受領するまで待つ。Ｓ１３０４で、比較結果に差異があれば、表示部２０３に動作差異発生を表示する（Ｓ１３０５）。
なお、結果表示手段１１０９は、動作差異検出機能１１１８が動作差異を検出すると、結果表示手段１１０９のシミュレーション時間の進行を停止する。結果表示手段１１０９がシミュレーション時間を止めることで、同期手段１０４は検証対象シミュレーショングループ及び比較対象シミュレーショングループの時間同期を一時停止する。結果として検証装置全体のシミュレーション時間が一時停止し、検証対象動作の差異発生時点で、シミュレーションを一時停止することができる。
【００３７】
以下、本実施例の具体例を挙げて、動作差異検出機能１１１８の処理を説明する。制御対象物シミュレータ１１０７及び１１０８から、視覚化データとして用紙先端と用紙後端の座標情報を通知される。よって、Ｓ１３０３では、制御対象物シミュレータ４０７から通知される用紙先端座標と用紙後端座標と制御対象物シミュレータ４０８から通知される用紙先端座標と用紙後端座標を比較する。具体的には、制御対象物シミュレータ４０７から通知される用紙先端座標は（Ｐｌｘ１，Ｐｌｙ１）、用紙後端座標は（Ｐｔｘ１，Ｐｔｙ１）である。そして、制御対象物シミュレータ４０８から通知される用紙先端座標は（Ｐｌｘ２，Ｐｌｙ２）、用紙後端座標は（Ｐｔｘ２，Ｐｔｙ２）である。Ｐｌｘ１＝＝Ｐｌｘ２、Ｐｌｙ１＝＝Ｐｌｙ２、Ｐｔｘ１＝＝Ｐｔｘ２、Ｐｔｙ１＝＝Ｐｔｙ２が全て成立する場合は、制御対象物シミュレータ１１０７及び１１０８とで用紙位置が同じである、すなわち、Ｓ１３０４にて検証動作に差異なしと判断する。Ｐｌｘ１＝＝Ｐｌｘ２、Ｐｌｙ１＝＝Ｐｌｙ２、Ｐｔｘ１＝＝Ｐｔｘ２、Ｐｔｙ１＝＝Ｐｔｙ２のどれか１つでも成立しない場合は、Ｓ１３０４にて検証動作に差異ありと判断し、動作差異発生を表示部２０３に表示する（Ｓ１３０５）。
なお、本実施例では、動作起点到達判断機能１１１４及び１１１５を制御対象物シミュレータ１１０７及び１１０８が有している構成で説明を行ったが、ＨＵＢ１０３が動作起点到達判断機能１１１４及び１１１５を有していてもよい。その場合には、制御対象物シミュレータ１１０７及び１１０８は、動作起点到達判断に必要な制御装置を構成する部品の動作を決める情報をＨＵＢ１０３へ伝達する機能を有する。
【００３８】
本実施例では、動作起点を定める部品が用紙であるとして説明を行ったが、動作起点を定める部品は用紙以外の部品でもよい。用紙以外の部品とは、例えばローラであり、ピックアップローラ３０３がカセット３０２内にある給紙前の用紙Ｓと接することを動作起点と定めてもよい。この場合、ピックアップローラの外周が用紙と接すること示すデータで動作起点を設定する。また、動作起点到達時の部品状態を示す情報は、部品自体の動作状態を示す情報でもよく、例えば、用紙Ｓが停止状態から移動状態になることを動作起点のとして定める。この場合、動作起点到達判断機能１１１４及び１１１５は、用紙先端と用紙後端の座標がシミュレーション開始時点での用紙配設位置座標と異なることをチェックすればよい。
【００３９】
以上、検証装置が検証動作の差異を自動検出することで、ソフトウエア検証者がシミュレーション実行開始から終了まで、シミュレーション結果を一部始終チェックせずに、ソフトウエアの想定外動作を発見でき、ソフトウエアの検証工数削減につながる。また、検証動作の差異検出時に、シミュレーション実行を一時停止することで、制御対象物動作の差異発生時点での検証対象ソフトウエア及び比較対象ソフトウエアのソフトウエア実行状況をチェックでき、動作差異の原因を見つけるための工数を削減できる。
【実施例３】
【００４０】
画像形成装置で１０ページ分の連続印刷を実施し、１ページ目から１０ページ目までの用紙搬送動作を、１ページずつの用紙搬送状態の遷移比較ではなく、１０ページ分の用紙搬送動作を一連の検証動作として、用紙搬送状態の遷移比較を行う場合がある。例えば、用紙の搬送路上の所定位置到達が検証動作起点の場合、用紙１枚ずつに対して動作起点到達判断機能が動作起点到達と判断するため、１０ページ分を一連の用紙搬送動作として比較することができない。
そこで実施例３では、動作起点到達判断の実行にマスクを設け、所定条件下では動作起点判断を実施しない。以下、実施例２との相違点を中心に説明を行う。
【００４１】
図１４は、実施例３における検証装置の機能構成図である。実施例２の検証装置の機能構成図との相違点は、動作起点到達判断機能１４１４及び１４１５が判断実施可否状態決
定部１４１６及び１４１７を有していることである。
判断実施可否状態決定部１４１６及び１４１７は、図６に示した動作起点到達判断を実施するか否かの状態（以下、判断実施可否状態と記す）を決定する。判断実施可否状態決定部１４１６及び１４１７は、マスク情報１４１８及び１４１９を有しており、マスク情報１４１８及び１４１９は、動作起点到達判断を実施する条件を定めるための情報が格納されている。判断実施可否状態決定部１４１６及び１４１７は、マスク情報１４１８及び１４１９に従い、判断実施可否状態を切り替える。ここでは、判断実施可否状態決定部１４１６及び１４１７が効力切替手段に相当する。
マスク情報１４１８及び１４１９は、マスク開始条件とマスク解除条件の２つの情報を対にして定める。例えば、用紙先端がレジストローラ７１２に到達後、搬送パス７１０内に用紙が存在しなくなるまで、動作起点到達判断を実施しない場合、マスク情報１４１８及び１４１９は、
マスク開始条件：用紙先端がレジストローラ７１２に到達
マスク解除条件：搬送パス上の用紙０枚
となる。
動作起点到達判断機能１４１４及び１４１５は、判断実施可否状態によって、図６の処理のフローを実施するか否かを変更する。判断実施可否状態が“判断実施可能”の場合、図６の処理を実施し、“判断実施不可”の場合、図６の処理は実施しない。
【００４２】
図１５は、判断実施可否状態決定部１４１８及び１４１９の処理のフローである。シミュレーション開始後、判断実施可否状態を判断実施可能に設定する（Ｓ１５０１）。その後、マスク開始条件が成立するかをチェックし（Ｓ１５０２）、マスク開始条件が成立すると、判断実施可否状態を判断実施不可に設定する（Ｓ１５０３）。Ｓ１５０３の後は、マスク解除条件が成立するかをチェックし（Ｓ１５０４）、マスク解除条件が成立するとＳ１５０１に戻り、判断実施可否状態を判断実施可能に設定し、以降Ｓ１５０２の処理を続ける。Ｓ１５０２とＳ１５０４の処理で、マスク開始条件又はマスク解除条件の成立をチェックする際に、マスク情報１４１８及び１４１９を参照する。
【００４３】
画像形成装置で１０ページ分の連続印刷を実施し、１ページ目から１０ページ目までの用紙搬送動作を、一連の検証動作として比較検証する場合、本検証装置は以下のように動作する。ここで、用紙搬送状態の遷移比較を行う場合、マスク情報１４１８及び１４１９が前述の例であり、かつ、動作起点到達がマスク開始条件と同様に、用紙先端のレジストローラ７１２への到達であるとする。シミュレーション実行の結果、制御対象物シミュレータ１４０７及び１４０８において、用紙１枚目が給紙カセットから給紙され、レジストローラ７１２に到達する。すると、動作起点到達判断機能１４１４及び１４１５は、動作起点到達、かつ、マスク開始条件成立（Ｓ１５０２）と判断し、判断実施可否状態を判断実施不可（Ｓ１５０３）とする。その後、シミュレーション実行が進行し、制御対象物シミュレータ１４０７及び１４０８において、用紙２枚目が給紙カセットから給紙される。しかし、給紙された２枚目の用紙がレジストローラ７１２に到達しても、判断実施可否状態は判断実施不可であり、動作起点到達判断の実行が無効であるため、動作起点到達と判断しない。よって、同期手段１０４は、動作起点を同期させないので、用紙１枚目と２枚目の用紙搬送状態遷移を１連の用紙搬送動作として比較することができる。用紙２枚目と同様に、用紙３枚目から１０枚目までも給紙カセットから給紙され、搬送パス７１０上を通り排紙トレイ７２９に排紙される。用紙１０枚目が排紙されると、判断実施可否状態決定部１４１６及び１４１７が搬送パス７１０上に存在する用紙がなくなったことをもって、マスク解除条件成立と判断し（Ｓ１５０４）、判断実施可否状態は判断実施可能（Ｓ１５０１）とする。このように動作起点到達判断の実行を再び有効とすることで、継続してソフトウエアの検証をおこなうことができる。
【００４４】
以上、制御ソフトウエアの検証動作の動作起点到達判断の実施にマスクを設けることで
、本実施例で挙げたようなソフトウエアの制御対象物の一連動作の比較が可能になる。これは、ソフトウエアの制御対象物のさまざまな動作の検証を可能にし、結果、ソフトウエアの検証可能動作の範囲を拡大することができる。
【符号の説明】
【００４５】
１０１…検証対象ＣＰＵシミュレータ、１０２…比較対象制御模擬手段、１０４…同期手段、１０６…動作起点同期機能、１０７…制御対象物シミュレータ、１０８…制御対象物シミュレータ、１０９…結果表示手段、１１１…検証対象ソフトウエア、１１２…シミュレータグループ情報、１１４…動作起点到達判断機能、１１５…動作起点到達判断機能
【図１】
2019066913.tif 000003
【図２】
2019066913.tif 000004
【図３】
2019066913.tif 000005
【図４】
2019066913.tif 000006
【図５】
2019066913.tif 000007
【図６】
2019066913.tif 000008
【図７】
2019066913.tif 000009
【図８】
2019066913.tif 000010
【図９】
2019066913.tif 000011
【図１０】
2019066913.tif 000012
【図１１】
2019066913.tif 000013
【図１２】
2019066913.tif 000014
【図１３】
2019066913.tif 000015
【図１４】
2019066913.tif 000016
【図１５】
2019066913.tif 000017