(57)【特許請求の範囲】
【請求項１】
工学的システム開発手法に基づいて作成されたプログラム構造を表す、オブジェクト間の相互関係を定義した情報モデルと各オブジェクトの状態遷移を定義した状態モデルとを記憶するモデル記憶手段と、
該モデル記憶手段に記憶された情報モデル及び状態モデルをコードに変換したプログラムを実行するプログラム実行手段と、
前記プログラム実行手段によるプログラム実行ログとして、受信されたイベントに対して、そのイベントを受信したタスクと、そのタスクを実行するオブジェクトのインスタンスと、そのイベントをトリガとして状態遷移したオブジェクトの状態と、その状態の振る舞いにより更新された属性の値とを、逐次記録していくプログラム実行ログ記録手段と、
該プログラム実行ログ記録手段に記録されたプログラム実行ログを、複数のイベントについてイベント毎に１行で表現した表形式により表示するプログラム実行ログ表示手段と、
該プログラム実行ログ表示手段により表示されたプログラム実行ログの中から任意に選択されたログに関わる情報モデルまたは状態モデルの表示指示操作を受け付けるモデル表示指示操作受付手段と、
該モデル表示指示操作受付手段において情報モデルの表示指示操作を受け付けた場合は、選択された前記プログラム実行ログに含まれるオブジェクトの属する情報モデルを表示するとともに、該情報モデルにおいて当該プログラム実行ログに含まれるオブジェクト及び更新された属性の値を識別表示する情報モデル表示手段と、
前記モデル表示指示操作受付手段において状態モデルの表示指示操作を受け付けた場合は、選択された前記プログラム実行ログに含まれるオブジェクトの状態モデルを表示するとともに、該状態モデルにおいて当該プログラム実行ログに含まれるイベント及びそのイベントの処理後のオブジェクトの状態を識別表示する状態モデル表示手段とを備えることを特徴とするソフトウェアシステム動作確認装置。
【請求項２】
前記モデル表示指示操作受付手段は、前記プログラム実行ログの表示中に前記情報モデルの表示の指示操作を受け付け、前記情報モデルの表示中に前記状態モデルの表示の指示操作を受け付けることを特徴とする請求項１記載のソフトウェアシステム動作確認装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、工学的開発方法論に則ったモデリングを行い、その分析モデルからソフトウェアコードに変換されたプログラムの実行に際して、その実行状態を記録、出力表示すると共に、元となった分析モデルを出力表示させるソフトウェアシステム動作確認装置に関する。
【０００２】
【従来の技術】
従来、ソフトウェアの保守とメンテナンス、或は開発時の動作確認やデバッグのために、ファンクションモジュールの呼び出しやイベント送受信、その際の各変数の値等、プログラムの実行状態を実行ログとして記録することが行われてきた。
【０００３】
特に最近では、工学的開発方法論であるオブジェクト指向開発が取り入れられてきたことにより、プログラム構造を分析モデル図（以下、モデル図）という可視化された図面によって、より一層開発者が把握し易くなってきており、実行ログからモデル図、即ちプログラム論理を辿ることが容易となり、その保守効率が向上されてきた。
【０００４】
実行ログの記録内容としては、インスタンス名、イベント名、状態名、属性値と、その他時刻等の付加情報等が挙げられる。
【０００５】
【発明が解決しようとする課題】
ところが、前記ログ情報はあくまでもテキストデータの羅列であり、その膨大な情報からエンジニアが対応するモデルを特定し、双方を照らし合わせながら１つ１つ確認作業を行っていくことは大変煩雑な作業であった。
【０００６】
更に、モデル図は異なる視点から階層的に複数表記されるものであり、実行ログ上の或る１つの情報が、例えば情報モデルと状態モデルの両方に関連するような場合がある。そのような場合にも、エンジニアが関連するであろうモデル図を推測したとしても、念のため全てのモデル図を確認する必要がある等、煩雑で不確定な面があるものであった。
【０００７】
本発明は上記問題に鑑みてなされたもので、その目的とする処は、実行ログがプログラムのどの処理部分にあるかを判断することができるとともに、プログラムが正しく動作しているか否かを容易に判断して保守及びデバッグ業務を効率的に行うことができるソフトウェアシステム動作確認装置を提供することにある。
【０００８】
【課題を解決するための手段】
上記目的を達成するため、本発明のソフトウェアシステム動作確認装置は、工学的システム開発手法に基づいて作成されたプログラム構造を表す、オブジェクト間の相互関係を定義した情報モデルと各オブジェクトの状態遷移を定義した状態モデルとを記憶するモデル記憶手段と、該モデル記憶手段に記憶された情報モデル及び状態モデルをコードに変換したプログラムを実行するプログラム実行手段と、前記プログラム実行手段によるプログラム実行ログとして、受信されたイベントに対して、そのイベントを受信したタスクと、そのタスクを実行するオブジェクトのインスタンスと、そのイベントをトリガとして状態遷移したオブジェクトの状態と、その状態の振る舞いにより更新された属性の値とを、逐次記録していくプログラム実行ログ記録手段と、該プログラム実行ログ記録手段に記録されたプログラム実行ログを、複数のイベントについてイベント毎に１行で表現した表形式により表示するプログラム実行ログ表示手段と、該プログラム実行ログ表示手段により表示されたプログラム実行ログの中から任意に選択されたログに関わる情報モデルまたは状態モデルの表示指示操作を受け付けるモデル表示指示操作受付手段と、該モデル表示指示操作受付手段において情報モデルの表示指示操作を受け付けた場合は、選択された前記プログラム実行ログに含まれるオブジェクトの属する情報モデルを表示するとともに、該情報モデルにおいて当該プログラム実行ログに含まれるオブジェクト及び更新された属性の値を識別表示する情報モデル表示手段と、前記モデル表示指示操作受付手段において状態モデルの表示指示操作を受け付けた場合は、選択された前記プログラム実行ログに含まれるオブジェクトの状態モデルを表示するとともに、該状態モデルにおいて当該プログラム実行ログに含まれるイベント及びそのイベントの処理後のオブジェクトの状態を識別表示する状態モデル表示手段とを備える。
【０００９】
【発明の実施の形態】
以下に本発明の実施の形態を添付図面に基づいて説明する。
【００１０】
＜実施の形態１＞
図７は本プログラムが動作する装置を説明するブロック図である。
【００１１】
ＣＰＵ２０１は画像形成装置全体の制御を司るマイクロプロセッサーである。ＨＤ２０２は前記ＣＰＵ２０１が動作を行う上での複数のアプリケーションを蓄積しておく大容量ハードディスクであり、本件におけるシステム分析を行ったモデル図の情報や、そのプログラム実行状態記録情報等が含まれる。前述のＣＰＵ２０１の管理下にあるものである。
【００１２】
メモリ２０３はＣＰＵ２０１が動作する上でのワークメモリであり、ＨＤ２０２と同じく本件におけるシステム分析を行ったモデル図の情報や、そのプログラム実行状態記録情報等が含まれる。ＣＰＵ２０１から高速にアクセスできるものである。
【００１３】
高速ＣＰＵバス２０４は前述したＣＰＵ２０１、ＨＤ２０２、メモリ２０３や、後述する各機能ユニットとを接続するバスで、ＣＰＵ２０１が処理したデータを各機能ユニットに転送したり、各機能ユニット間同士でデータを高速に転送（ＤＭＡ転送）するためのものである。一般的にはＶＬバス又はＰＣＩバスが挙げられる。
【００１４】
ＲＩＰ２０５は後述するコンピュータと接続される外部インターフェースより入力された、画像形成コマンドを受け、その内容に従ってビットマップ画像に変換を行う機能ユニットであると同時に、メモリ２０３又はＨＤＤ２０２上に存在するプログラム実行状態記録情報やモデル図情報を受け、その内容に従ってビットマップ画像に変換を行う機能ユニットである。画像形成コマンドは高速ＣＰＵバス２０４より入力され、後述する高速イメージバス２１６にイメージ画像を出力するものである。ＲＩＰの種類としては、ポストスクリプト、ＰＣＬ、ＬＩＰＳ、ＣａＰＳＬ等が挙げられる。
【００１５】
画像処理２０６は、高速イメージバス２１６から入力されたイメージ画像をＣＰＵ２０１の指示による処理命令に従ってスムージング処理やエッジ処理等のイメージ画像に対するフイルタリング処置を行う機能ユニットである。
【００１６】
この他にも、画像処理２０６の機能としては、高速イメージバス２１６より入力された画像に対して文字認識（ＯＣＲ）機能や文宇部とイメージ部を分離するイメージセパレート機能をも有する。
【００１７】
圧縮／伸長部２０７は、高速イメージバス２１６から入力されたイメージ画像に対して、ＭＨ、ＭＲ、ＭＭＲ、ＪＰＥＧ等の画像圧縮方法により圧縮を掛け、高速ＣＰＵバス２０４又は再び高速イメージバス２１６にその圧縮されたデータを送出したり、その逆にそれらの２つのバスから入力された圧縮データをこの機能ユニットにより圧縮された方式に従って伸長し、高速イメージバス２１６に送出する機能を持つものである。
【００１８】
バスブリッジ２０８は高速ＣＰＵ２０４と後述する低速ＣＰＵバス２０９とを繋ぐためのバスブリッジコントローラであり、バス間の処理スピードの差を吸収するものである。このバスブリッジ２０８を介することで高速に動作するＣＰＵ２０１は低速ＣＰＵバス２０９に接続された低速に動作する機能ユニットをアクセスすることができる。
【００１９】
低速ＣＰＵバス２０９は、前記高速ＣＰＵバス２０４よりは転送速度の遅いバス構成で、処理能力の比較的遅い機能ユニットが繋がるためのバスである。一般的にはＩＳＡバス等が挙げられる。
【００２０】
モデム２１０は、公衆回線２１１と低速ＣＰＵバス２０９とを介在する機能ユニットで、低速ＣＰＵバス２０９より送られてきたデジタルデータを公衆回線にデータを流せるように変調する機能と、公衆回線より送られてきた変調されたデータを画像形成装置内で処理できるデジタルデータに変換する機能を持つ。ＨＤ２０２又はメモリ２０３上に存在するプログラム実行状態記録情報を読み出すことが可能である。
【００２１】
ＬＡＮ２１２は、本画像形成装置を構内ネットワークに接続するための機能ユニットで、構内ネットワークとのデータの送受信を行うためのものである。一般的には、イーサネット等が挙げられる。ＨＤ２０２又はメモリ２０３上に存在するプログラム実行状態記録情報やモデル図情報を読み出すことが可能である。
【００２２】
管理装置インターフェース２１４は、本画像形成装置と管理装置２２２とを接続するための機能ユニットで、本インターフェース２１４を介して管理装置へ本画像形成装置から制御コマンドを送ったり、管理装置から本画像形成装置ヘイネーブル信号を返したりするのに使用される機能ユニットである。ＨＤ２０２又はメモリ２０３上に存在するプログラム実行状態記録情報を読み出すことが可能である。
【００２３】
パネルインターフェース２１５は、画像形成装置における操作部２２１との各種制御信号をやり取りするところで、後述する操作部２２１に配置されているキー等の入力スイッチの信号をＣＰＵ２０１に伝えたり、ＲＩＰ２０５、画像処理部２０６、圧縮／伸長部２０７で作成された画像データを操作部２２１にある液晶表示部に表示するための解像度変換を行うユニットである。ＨＤ２０２又はメモリ２０３上に存在するプログラム実行状態記録情報やモデル図情報を読み出すことが可能である。
【００２４】
高速イメージバス２１６は、各種画像生成ユニット（ＲＩＰ２０５、画像処理部２０６、圧縮／伸長部２０７）における画像入出力バスと後述するスキャナインターフェース２１７、プリンタインターフェース２１９とを相互に接続するためのバスである。このバス２１６の制御はＣＰＵ２０１の管理下には置かれず、後述するバスコントローラ２２２によって制御されデータ転送を行う。
【００２５】
スキャナユニット２１８は、原稿自動送り装置を備えた可視画像読み取り装置で、ＲＧＢの３ラインのＣＣＤカラーセンサー又は１ラインの白黒のＣＣＤラインセンサーを有するものである。このスキャナユニット２１８で読み取られた画像データは、スキャナインターフェースユニット２１７によって高速イメージバス２１６に転送される。
【００２６】
スキャナインターフェースユニット２１７においては、前記スキャナユニット２１８で読み取られた画像データをその後の過程における処理の内容によって最適な２値化を行い、高速イメージバス２１６のデータ幅に合わせたシリアルーパラレル変換を行ったり、読み込まれたＲＧＢの３原色のカラーデータをＣＭＹＢｋのデータに変換したりする機能を持ち合わせる。
【００２７】
プリンタユニット２２０は、後述するプリンタインターフェースユニット２１９から受け取った画像データを記録用紙上に可視画像データとして印刷するものである。読み出したプログラム実行状態記録情報結果やモデル図情報を出力印刷するものである。プリンタユニット２２０には、バブルジェット方式を用いて記録用紙上に印刷するバブルジェットプリンタやレーザ光線を利用して感光ドラム上に画像を形成し記録用紙に画像を形成する電子写真技術を利用したレーザビームプリンタが挙げられる。レーザービームプリンタには単色のものと、ＣＭＹＢｋによるカラーレーザビームプリンタがある。
【００２８】
プリンタインターフェースユニット２１９は高速イメージバス２１６から送られてきた画像データをプリンタユニットに転送するもので、高速イメージバス２１６のバス幅から出力しようとするプリンタの階調に合わせたバス幅に変換するバス幅変換機能やプリンタの印刷速度と高速イメージバス２１６の画像データの転送速度の差を吸収するための機能を有する。
【００２９】
操作部２２１は液晶表示部と液晶表示部上に張り付けられたタッチパネル入力装置と、複数個のハードキーを有する。タッチパネル又はハードキーにより入力された信号は前述したパネルインターフェース２１５を介してＣＰＵ２０１に伝えられ、液晶表示部はパネルインターフェース２１５から送られてきた画像データを表示するものである。液晶表示部には、本画像形成装置の操作における機能表示や画像データ等を表示する。読み出したプログラム実行状態記録情報結果やモデル図情報を出力表示するものである。
【００３０】
次に、オブジェクト指向分析におけるモデル図について説明する。
【００３１】
工学的手法であるオブジェクト指向を用いた一般的なソフトウェア開発において、モデル図としてどのようなものを必要とするかは、各工学的手法、各方法論によって多少違いがあり、それぞれ定められているが、一般的には情報モデル、状態モデルを列挙することができる。
【００３２】
オブジェクトとは、システムが対象とする実世界に存在する実体を抽象化したものであり、その中には、その抽象化された実体の識別を可能とする識別子と、その実体が持つ性質を抽象化した属性が含まれる。それぞれのオブジェクトは、実世界の中で体系的に成立する関連の集合を抽象化した関係で結ばれている。これら定義されたオブジェクトと、その相互関係を定義し、システムの静的側面を表現したものが情報モデルである。
【００３３】
インスタンスとは、その抽象化したオブジェクトの実体そのものである。例えば、或る人が保有している２台の自動車を抽象化してオブジェクトとした場合、自動車というオブジェクトは１つであるが、実際に存在する１号車、２号車それぞれが別々なインスタンスとなる。
【００３４】
前記情報モデルから、それぞれのオブジェクトの動作側面を表したものが状態モデルである。オブジェクトの状態遷移（ライフサイクルとも言う）を定め、それぞれの状態での動的な振る舞いを記述していく。それぞれの状態はイベントによって遷移され、それぞれの状態がオブジェクトの行う処理の単位である。
【００３５】
次に、ソフトウェア開発にて作成されたモデル図について説明する。
【００３６】
先ず、情報モデルについて図１を用いて説明する。
【００３７】
オブジェクト0bj1は、その識別子をobj 1_IDとし、ａという属性を持っている。同じく、オブジェクト0bj2は、その識別子をobj2_ID とし、ｚという属性を持っている。両オブジェクトは関係Ｒ１によって関係付けられており、その対応は１対１である。つまり、0bj1のインスタンスは必ず１つの0bj2のインスタンスと関係し、その反対に、0bj2のインスタンスは必ず１つの0bj1のインスタンスと関係すると記されている。
【００３８】
次に、0bj1の状態モデルについて図２を用いて説明する。
【００３９】
状態としてはState1とState2が定義されており、オブジェクトはその何れかの状態を取るということが分かる。それぞれの状態遷移のトリガとして、init，next，backのイベントが定義されている。プログラム立ち上げ時の初期状態位置は、その数字の小さい方、即ちState1であり、nextイベントを受けることにより、State2の振る舞いを実行することになる。各状態遷移を起こす有効なイベント以外のイベントは無視されることになる。例えばState1の状態である場合に、backイベントを受信しても無視され、何の振る舞いも実行されない。
【００４０】
init イベントは、State1の状態で受け取る限り、State1の振る舞いを実行することになる。特に、initイベントは、プログラムの立ち上げ時にその初期化処理の終了とともに、外部処理部であるBootモジュールから１回だけ送信される特別なイベントである。次に、State1の状態での振る舞いとして、post(Self:next) と記されている。これは、nextというイベントを、Self、つまり自インスタンスヘ送信している意である。又、State2の状態での振る舞いとしては、Self[a]=fund(Self[a]) にて、fundという関数を呼び出している。その引数としてSelf[a] 、つまり、自インスタンスの属性ａの値を渡し、同じくその返値を改めて自インスタンスの属性ａに代入している。次に、post(Self:back) によって、backというイベントを、Self、つまり自インスタンスヘ送信している。これにより、現在の状態State2からState1への状態遷移を行わせている。
【００４１】
次に、0bj2の状態モデルについて図３を用いて説明する。
【００４２】
状態としてはState1が定義されている。取り得る状態はただ１つであるが、その振る舞いを呼び出すイベントとしてonが定義されている。onイベントを受け取る度に、State1の振る舞いを実行することになる。State1の振る舞いとしては、Self[z]=func2(Self[z])にて、func2 という関数を呼び出している。その引数としてSelf[z] 、つまり、自インスタンスの属性ｚの値を渡し、同じくその返値を改めて自インスタンスの属性ｚに代入するものである。
【００４３】
ここで、状態から呼び出される関数func1 について図４を用いて説明する。
【００４４】
func1 はプログラム言語を用いてコーディングされたソースコードである。引数ａをインクリメントした結果を返す。
【００４５】
同じく関数func2 について図５を用いて説明する。
【００４６】
func2 はプログラム言語を用いてコーディングされたソースコードである。引数ｚを２倍した結果を返す。
【００４７】
この場合の動作実行ログの記録について図６を用いて説明する。
【００４８】
ログとして記録される情報は図６に示されるようなものであり、その記録内容として、受信したイベント、受信したオブジェクト、受信したインスタンス、それにより実行された状態名、状態中で更新された属性の値、の各情報が記録される。
【００４９】
記録は、前述した処理説明に対応して行われるものであり、イベントを受信してから、その状態が終了するまでの間の、その振る舞い実行による属性値の更新結果を１行に表現する。ここでは、0bj1のインスタンスは、識別子（obj1_ID ）の値が１であるとし、0bj2のインスタンスは、識別子（obj2_ID ）の値が１０であるとする。属性値が更新されなかった場合には「−」表示となる。属性は図１で示される通り、0bj1ではａ、0bj2ではｚを指す。ここでは、それぞれ初期値は「１」であるものとしている。この実行ログ結果を確認することにより、それぞれのモデルの実行状態を確認することが可能となる。
【００５０】
＜実施の形態２＞
次に、本発明の実施の形態２について説明する。
【００５１】
記録された実行ログ結果を操作部２２１に出力表示する場合について図８を用いて説明する。
【００５２】
図８は本装置における操作部２２１での画面表示状態である。画面はグラフイッカルに構成され、メッセージ表示や各種ボタン表示がなされている。その中で、実行ログ表示ボタン１１−１を押下することにより、実行ログ表示画面へと切り替わる。
【００５３】
図９は実行ログが表示されている状態を表す。画面内には、記録されているプログラム実行状態が１度に５行分表示される。但し、ここでは全部で４行分の情報である例となっている。実行ログ表示行は指等で押下されることで行単位で反転表示となる。実行ログのない空自行は押下することができない。図上ではログ番号４の行が反転して表示されている。反転行は、再度押下されることでその反転を解除し、通常表示と切り替えられる。又、反転している行は１つに限り、或る行が反転中に他の行が押下されると、それまで反転していた行の反転は解除され、新たに押下された行が反転表示となる。
【００５４】
上スクロールボタン１２−１は、画面をページ単位で上ヘスクロールするボタンであり、前の５行分を表示することになる。上スクロールに値する情報がある場合には黒く有効表示となるが、図のように上スクロールに値しないような場合には、網掛け表示され、押されても何も機能しない。下スクロールボタン１２−３も同様である。
【００５５】
ページ表示部１２−２は、総ページ数を分母に、現在表示ページを分子とするものであり、全体の情報量と、現在表示中の情報の位置を特定することが可能なものである。閉じるボタン１２−４は本画面を閉じ、図８の画面へ戻るものである。現ページ印刷ボタン１２−５は、現在表示中のページ（５行分）を用紙にプリントアウトするためのボタンである。全印刷ボタン１２−６は、記録されている全ての実行ログ情報を用紙にプリントアウトするためのボタンである。モデル表示ボタン１２−７は、実行ログ表示中に前記反転行がある場合にのみ有効表示となり、押下可能である。反転行がない場合には網掛け表示となり押下されても何の処理も行わない、つまり、押下することはできない。モデル表示ボタン１２−７が押下された場合には、その反転実行ログ表示行に関係の深いモデル図表示へと切り替わる。
【００５６】
＜実施の形態３＞
次に、本発明の実施の形態３について説明する。
【００５７】
モデル表示ボタン１２−７が押下され、前記反転実行ログ表示行に関係の深いモデル図を表示する場合の例について図９〜図１１を用いて説明する。
【００５８】
前述したように、図９において、ログ番号４の行が反転している場合にモデル表示ボタン１２−７が押下された場合、ログ番号４の情報から、0bj1に関する動作ログであることと、その0bj1のState1状態が実行されたことが分かる。
【００５９】
更に、実行状態State1では属性値が４へ変更されたことも読み取れる。そこで、モデル表示ボタン１２−７が押下されたならば、前記実行ログから判断し、該実行ログに関連する適切なモデル図を表示する。その場合、どのモデル図を表示するかの選択は、より広範囲の情報を表すモデル図から徐々にその範囲を絞り込んでいく形を取る。例えば、前述の実行ログ番号４では、0bj1に関する情報モデル→状態State1に関する状態モデルという表示順序となる。勿論、状態モデル表示中に情報モデルヘ戻ることも可能ではある。
【００６０】
図１０は本装置における操作部２２１での情報モデル表示状態である。画面はグラフイッカルに構成され、メッセージ表示や各種ボタン表示がなされている。
【００６１】
図１０はより広範囲の情報として最初に表示されている画面である。１３−１は表示マットであり、モデルを表示するエリアである。表示エリアは限られている範囲であるため、上下左右スクロールが可能である。１３−４，１３−５，１３−６，１３−７はそれぞれスクロールボタンであり、押下するとその方向へ表示マットを移動し、全てのモデルを表示し切れない場合にモデルの全体を確認することが可能となる。今、表示マット１３−１上に0bj1が属する情報モデルが表示されている。それと分かるよう、表示モデル名表示エリア１３−２には「情報モデル：0bj1」と表示される。情報モデルはシステムに１つとは限らないが、実行ログから判断し0bj1の属する情報モデルを自動的に選択表示される。
【００６２】
又、0bj1の存在が一目で分かるよう目立つ表示方法にてハイライト表示される。同じく、実行ログ上の情報から、属性値の変更が読み取れるため、属性ａもハイライト表示される。
【００６３】
続いて更に情報を絞り込み表示を行わせる場合には、絞込ボタン１３−９を押下する。押下すると図１１に示すような状態モデルが表示され、更に詳しいオブジェクトの振る舞いについてモデルから確認することができる。それ以上絞り込み表示ができない場合には絞り込みボタンは網掛け表示され、押下不能となる。反対に絞込んだモデル図から、より広範囲なモデル図表示に戻す場合には、広範囲ボタン１３−８を押下する。
【００６４】
同様に、それ以上広範囲なモデル図がない場合には広範囲ボタン１３−８は網掛け表示され、押下不能となる。閉じるボタン１３−１２は本画面を閉じ、図８の画面へ戻るものである。現モデル印刷ボタン１３−１１は現在表示マット１３−１上に表示中のモデルだけを用紙にプリントアウトするためのボタンである。全印刷ボタン１３−１０は、記憶されている全てのモデルを用紙にプリントアウトするためのボタンである。
【００６５】
絞込みボタン１３−９を押下して0bj1のState1状態を含む状態モデルを表示した結果が図１１である。１４−１〜１４−１２までのそれぞれの機能は図１０のものと同じである。
【００６６】
表示マット１４−１上に0bj1の状態モデルが表示されている。それと分かるよう、表示も出る名表示エリア１４−２には「情報モデル：State1」と表示されている。更に、State1の存在が一目で分かるよう目立つ表示方法にてハイライト表示される。同じく、実行ログ上の情報から、その状態へ遷移するきっかけとなったイベントbackもハイライト表示される。それ以上表示モデルを絞り込むことができないため、絞込みボタン１４−９は網掛け表示され、押下不能となっている。広範囲ボタン１４−８を押下すると、図１０の表示へ戻ることができる。
【００６７】
＜実施の形態４＞
次に、本発明の実施の形態４について説明する。
【００６８】
選択反転実行ログ表示行に関係の深いモデル図を表示する場合の別な例について、図１２〜図１４を用いて説明する。
【００６９】
前述の図９とほぼ同様な図が図１２であるが、１５−７，１５−８，１５−９の各ボタンの機能が異なる。実行ログ表示ボタン１５−７は図１２に示す実行ログ情報を表示するためのボタンで、既に図１２の表示中であれば押下しても何ら変化を起こさない。その階層状態を視覚的に表現するため、状態モデルボタン１５−９は情報モデルボタン１５−８内に配置される。情報モデルボタン１５−８は、状態モデル１５−９よりも外側の部分を押下されることで機能する。情報モデルボタン１５−８を押下すれば選択実行ログに関連するオブジェクトが含まれる情報モデルの表示へ切り替わり、状態モデルボタン１５−９を押下すれば選択実行ログに関連する状態モデルの表示へと切り替わる。
【００７０】
ここで、情報モデルボタン１５−８が押下されると、選択反転実行ログに関連するオブジエクトが含まれる情報モデルが図１３の通り表示される。図１３は図１０とほぼ同様な図であり、その詳細はここでは割愛する。
【００７１】
１６−１３，１６−１４，１６−１５の各ボタンが異なり、それぞれ図１２で説明したボタン１５−７，１５−８，１５−９と同じ機能を有する。図１３では既に情報モデルを表示中であるため、情報モデルボタン１６−１４を押下しても何ら変化を起こさないが、状態モデルボタン１６−１５を押下することで、図１４に示される状態モデル表示となる。
【００７２】
図１２において、状態モデルボタン１５−９が押下されると、選択反転実行ログに関連する状態モデルが図１４の通り表示される。図１４は図１１とほぼ同様な図であり、その詳細はここでは割愛する。
【００７３】
１７−１３，１７−１４，１７−１５の各ボタンが異なり、それぞれ図１２で説明したボタン１５−７，１５−８，１５−９と同じ機能を有する。図１４では既に情報モデルを表示中であるため、状態モデルボタン１７−１４を押下しても何ら変化を起こさないが、情報モデルボタン１６−１４を押下することで、図１３に示される情報ｙモデル表示となる。
【００７４】
【発明の効果】
以上の説明で明らかなように、本発明によれば、プログラムが処理実行された状況について、プログラム実行状態を記録した情報と、そのプログラム構造を表すモデル情報とを関連づけて表示することによって、記録されたプログラム実行状態がプログラムのどの位置に相当するかをモデル（プログラムを可視化したの）を通してエンジニアが把握することができる。その場合、モデルの階層構造をそのオペレーションに対応付けすることによって、開発段階でモデルを作成した際に行った思考を反映した自然な操作感を提供することができる。
【００７５】
又、モデルを表示する場合にも、選択されたプログラム実行状態に関連する情報を識別表示することにより、多くの情報の中からも一目でそれと判断できることが可能となる。それにより、選択されたプログラム実行状態がプログラムのどの処理部分であるか、そしてプログラムが正しく動作しているかを容易に判断することが可能となり、その保守またはデバッグ業務をより効率的に行うことが可能となる。
【００７６】
更に、その動作確認を実機上にてそのまま確認することが可能であるため、複雑な機器接続や煩雑なオペレーションから開放され、例えば不具合が発生したマシンの上で直接現象の解析が可能となる。
【図面の簡単な説明】
【図１】システム分析による情報モデル図である。
【図２】システム分析による状態モデル図である。
【図３】システム分析による状態モデル図である。
【図４】状態内で読み出される関数コードを示す図である。
【図５】状態内で読み出される関数コードを示す図である。
【図６】動作記録内容図である。
【図７】プログラムが動作する装置を説明するブロック図である。
【図８】操作パネル上に表示される動作記録図である。
【図９】操作パネル上に表示される動作記録図である。
【図１０】操作パネル上に表示されるモデル図である。
【図１１】操作パネル上に表示されるモデル図である。
【図１２】操作パネル上に表示される動作記録図である。
【図１３】操作パネル上に表示されるモデル図である。
【図１４】操作パネル上に表示されるモデル図である。
【符号の説明】
２０１      ＣＰＵ
２０２      ＨＤＤ
２０３      メモリ
２０４      高速ＣＰＵバス
２０５      ＲＩＰ
２０６      画像処理部
２０７      圧縮／伸長部
２０８      バスブリッジ
２０９      低速ＣＰＵバス
２１０      モデム
２１１      公衆回線
２１３      ＬＡＮ
２１４      インターフェース（Ｉ／Ｆ）
２１６      高速イメージバス
２１７      スキャナインターフェースユニット
２１８      スキャナ
２１９      プリンタインターフェースユニット
２２０      プリンタユニット
２２１      操作部
【図１】
0004208468.tif 000002
【図２】
0004208468.tif 000003
【図３】
0004208468.tif 000004
【図４】
0004208468.tif 000005
【図５】
0004208468.tif 000006
【図６】
0004208468.tif 000007
【図７】
0004208468.tif 000008
【図８】
0004208468.tif 000009
【図９】
0004208468.tif 000010
【図１０】
0004208468.tif 000011
【図１１】
0004208468.tif 000012
【図１２】
0004208468.tif 000013
【図１３】
0004208468.tif 000014
【図１４】
0004208468.tif 000015