JP4208460B2 - ソフトウエアシステム動作確認装置 - Google Patents

ソフトウエアシステム動作確認装置 Download PDF

Info

Publication number
JP4208460B2
JP4208460B2 JP2001377242A JP2001377242A JP4208460B2 JP 4208460 B2 JP4208460 B2 JP 4208460B2 JP 2001377242 A JP2001377242 A JP 2001377242A JP 2001377242 A JP2001377242 A JP 2001377242A JP 4208460 B2 JP4208460 B2 JP 4208460B2
Authority
JP
Japan
Prior art keywords
program execution
state
model
event
system operation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001377242A
Other languages
English (en)
Other versions
JP2003177946A (ja
JP2003177946A5 (ja
Inventor
健 黒田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2001377242A priority Critical patent/JP4208460B2/ja
Publication of JP2003177946A publication Critical patent/JP2003177946A/ja
Publication of JP2003177946A5 publication Critical patent/JP2003177946A5/ja
Application granted granted Critical
Publication of JP4208460B2 publication Critical patent/JP4208460B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は工学的開発方法論に則ったモデル分析を行い、そのモデルからソフトウエアコードに変換されたプログラム(ソフトウエアモデル)の実行に際して、その実行状態を記録、出力表示すると共に、元となったソフトウエアモデルを出力表示させる方法ならびに装置のソフトウエアシステム動作確認装置に関するものである。
【0002】
【従来の技術】
従来、ソフトウエアの保守とメンテナンス、あるいは開発時の動作確認やデバッグのために、ファンクションモジュールの呼び出しやイベント送受信や、その際の各変数の値など、プログラムの実行状態を実行ログとして記録する事が行われてきた。
【0003】
特に最近では、工学的開発方法論であるオブジェクト指向開発が取り入れられて来た事により、プログラム構造をオブジェクトモデル図(以下モデル図)という可視化された図面によって、一層開発者が把握し易くなってきており、実行ログとプログラム論理との対応付けが容易となり、その保守効率が向上されてきた。その場合の記録内容としては、インスタンス名、イベント名、状態名、属性値と、その他時刻などの付加情報が挙げられる。
【0004】
【発明が解決しようとする課題】
ところが、オブジェクトモデル図によってプログラムの論理が可視化された事により、その実行状態をトレースする事自体は容易になってはいるが、しかし、一般的にモデル図は分析を記したものであり、「タスク」といった実装/設計に依存する情報までは表現されないものである。
【0005】
モデル上のオブジェクト(のインスタンス)が、どのタスクに属するのかは把握できていても、前記プログラム実行ログとタスクスイッチ状態を相関して表現するのは容易ではないため、マルチタスク環境下での実行ログのトレースにはコツを要していた。特に、処理途中のタスクスイッチ(プリエンプション)により、処理を中断されたタスク側と、新たに処理を行うタスク側で、たまたま同一のデータを更新する事になるような場合、その更新タイミングによって思わぬ計算違いを起こしてプログラムが正しく動作しなくなるような状況が生じる場合がある。そのような問題を避けるために、そのデータの一貫性を保証する必要があるのだが、それと同時に、その状況を記録し検証することが可能な環境が望まれている。記録と検証のための環境として、処理実行された状況について、その時のデータ更新状態、ならびに、プリエンプション発生状況などのタスク状態についての情報一覧を、開発者が容易に読み取れる仕組みが必要となっている。
【0006】
さらに、モデルすなわちプログラムのバージョンが複数存在するような場合に、ある装置にインストールされているバージョンがどのような機能をもったものか特定するためには、バージョン番号から過去のプログラム履歴を照合し、その機能について資料を辿る必要があり、その作業は煩雑なものであった。
【0007】
本発明は、以上に点に着目して成されたもので、モデル図とそれに対応されたタスク情報を相関してプログラムの実行履歴として記録し、読み出す事を可能とすると同時に、プログラムの元となったモデルを確認することができることによって、複数の異なるバージョンが存在する場合にでも、適切にプログラムの保守やメンテナンス、あるいは開発時の動作確認やデバッグを、より容易で効率的に行えるソフトウエアシステム動作確認装置を提供することを目的とする。
【0008】
【課題を解決するための手段】
上記課題を解決するために、本発明によれば、ソフトウエアシステム動作確認装置に、工学的開発方法論に基づいて作成されたモデルを記憶するモデル記憶手段と、前記モデル記憶手段に記憶されたモデルをコードに変換したプログラムをマルチタスク環境下にて動作実行するプログラム実行手段と、前記プログラム実行手段によるプログラム実行ログとして、受信されたイベントに対して、そのイベントを受信したタスクと、そのタスクを実行するオブジェクトのインスタンスと、そのイベントをトリガとして状態遷移したオブジェクトの状態と、その状態の振る舞いにより更新された属性の値と、そのイベントの処理中にプリエンプションが発生したか否かを示す情報とを、逐次記録していくプログラム実行ログ記録手段と、前記プログラム実行ログ記録手段に記録されたプログラム実行ログを読み出すプログラム実行ログ読み出し手段と、前記プログラム実行ログ読み出し手段により読み出されたプログラム実行ログを、複数のイベントについてイベント毎に1行で表現した表形式により出力するプログラム実行ログ出力手段とを備える。
【0021】
【発明の実施の形態】
図10は、本プログラムが動作する装置を説明するものである。
【0022】
CPU201は画像形成装置全体の制御をつかさどるマイクロプロセッサーで、マルチタスク・リアルタイムOSによって動作をしている。
【0023】
HDD202は前記CPU201が動作を行う上での複数のアプリケーションを蓄積しておく大容量ハードディスクであり、本件におけるシステム分析を行ったモデル図の情報や、そのプログラム実行状態記録情報などが含まれる。前述のCPU201の管理下にあるものである。
【0024】
メモリ203はCPU201が動作する上でのワークメモリであり、HDD202と同じく本件におけるシステム分析を行ったモデル図の情報や、そのプログラム実行状態記録情報などが含まれる。CPU201から高速にアクセスできるものである。
【0025】
高速CPUバス204は前述したCPU201、HDD202、メモリ203や、後述する各機能ユニットとを接続するバスで、CPU201が処理したデータを各機能ユニットに転送したり、各機能ユニット間同士でデータを高速に転送(DMA転送)するためのものである。一般的にはVLバス又はPCIバスがあげられる。
【0026】
RIP205は後述するコンピュータと接続される外部インターフェースより入力された、画像形成コマンドを受け、その内容に従ってビットマップ画像に変換を行う機能ユニットであると同時に、メモリ203またはHDD202上に存在するプログラム実行状態記録情報を受け、その内容に従ってビットマップ画像に変換を行う機能ユニットである。画像形成コマンドは高速CPUバス204より入力され、後述する高速イメージバス216にイメージ画像を出力するものである。RIPの種類としては、ポストスクリプト、PCL、LIPS、CaPSL等があげられる。
【0027】
画像処理206は、高速イメージバス216から入力されたイメージ画像をCPU201の指示による処理命令に従って、スムージング処理やエッジ処理などのイメージ画像に対するフィルタリング処置を行う機能ユニットである。
【0028】
この他にも、画像処理206の機能としては、高速イメージバス216より入力された画像に対して文字認識(OCR)機能や、文宇部とイメージ部を分離するイメージセパレート機能をも有する。
【0029】
圧縮/伸長207は、高速イメージバス216から入力されたイメージ画像に対して、MH,MR,MMR,JPEG等の画像圧縮方法により圧縮をかけ、高速CPUバス204又は、再び高速イメージバス216にその圧縮されたデータを送出したり、その逆にそれらの2つのバスから入力された圧縮データを、この機能ユニットにより圧縮された方式に従って伸長し、高速イメージバス216に送出する機能を持つものである。
【0030】
バスブリッジ208は高速CPUバス204と後述する低速CPUバス209とをつなぐためのバスブリッジコントローラで、バス間の処理スピードの差を吸収するものである。このバスブリッジ208を介することで高速に動作するCPU201は低速CPUバス209に接続された低速に動作する機能ユニットをアクセスすることができる。
【0031】
低速CPUバス209は、前記高速CPUバス204よりは転送速度の遅いバス構成で、処理能力の比較的遅い機能ユニットがつながるためのバスである。一般的にはISAバス等があげられる。
【0032】
モデム210は、公衆回線211と低速CPUバス209とを介在する機能ユニットで、低速CPUバス209より送られてきたデジタルデータを公衆回線にデータを流せるように変調する機能と、公衆回線より送られてきた変調されたデータを画像形成装置内で処理できるデジタルデータに変換する機能を持つ。HDD202またはメモリ203上に存在するプログラム実行状態記録情報を読み出す事が可能である。
【0033】
LAN213は、本画像形成装置を構内ネットワークに接続するための機能ユニットで、構内ネットワークとのデータの送受信を行うためのものである。一般的には、イーサネット(R)等があげられる。HDD202またはメモリ203上に存在するプログラム実行状態記録情報を読み出す事が可能である。
【0034】
管理装置インターフェース214は、本画像形成装置と管理装置とを接続するための機能ユニットで、本インターフェース214を介して、管理装置へ本画像形成装置から制御コマンドを送ったり、管理装置から本画像形成装置ヘイネーブル信号を返したりするのに使用される機能ユニットである。HDD202またはメモリ203上に存在するプログラム実行状態記録情報を読み出す事が可能である。
【0035】
パネルインターフェース215は、画像形成装置における操作部221との各種制御信号をやりとりするところで、後述する操作部221に配置されているキー等の入力スイッチの信号をCPU201に伝えたり、RIP205、画像処理部206、圧縮/伸長部207で作成された画像データを操作部221にある液晶表示部に表示するための解像度変換を行うユニットである。HDD202またはメモリ203上に存在するプログラム実行状態記録情報を読み出す事が可能である。
【0036】
高速イメージバス216は各種画像生成ユニット(RIP205、画像処理206、圧縮/伸長207)における画像入出力バスと後述するスキャナインターフェース217、プリンタインターフェース219とを相互に接続するためのバスである。このバスの制御はCPU201の管理下にはおかれず、後述するバスコントローラによって制御されデータ転送を行う。
【0037】
スキャナユニット218は原稿自動送り装置を備えた可視画像読みとり装置で、RGBの3ラインのCCDカラーセンサーまたは、1ラインの白黒のCCDラインセンサーを有するものである。このスキャナユニット218で読みとられた画像データは、スキャナインターフェースユニット217によって、高速イメージバス216に転送される。
【0038】
スキャナインターフェースユニット217においては、前記スキャナユニット218で読みとられた画像データを、その後の過程における処理の内容によって、最適な2値化を行い、高速イメージバス216のデータ幅にあわせたシリアル−パラレル変換を行ったり、読み込まれたRGBの3原色のカラーデータをCMYBkのデータに変換したりする機能を持ち合わせる。
【0039】
プリンタユニット220は、後述するプリンタインターフェースユニット219から受け取った画像データを、記録用紙上に可視画像データとして印刷するものである。読み出したプログラム実行状態記録情報結果を出力印刷するものである。プリンタユニット220には、バブルジェット(R)方式を用いて記録用紙上に印刷するバブルジェット(R)プリンタや、レーザ光線を利用して感光ドラム上に画像を形成し記録用紙に画像を形成する電子写真技術を利用したレーザビームプリンタがあげられる。レーザビームプリンタには単色のものと、CMYBkによるカラーレーザビームプリンタがある。
【0040】
プリンタインターフェースユニット219は高速イメージバス216から送られてきた画像データをプリンタユニットに転送するもので、高速イメージバス216のバス幅から出力しようとするプリンタの階調にあわせたバス幅に変換するバス幅変換機能や、プリンタの印刷速度と高速イメージバス216の画像データの転送速度の差を吸収するための機能を有する。
【0041】
操作部221は液晶表示部と液晶表示部上に張り付けられたタッチパネル入力装置と、複数個のハードキーを有する。タッチパネルまたはハードキーにより入力された信号は前述したパネルインターフェース215を介してCPU201に伝えられ、液晶表示部はパネルインターフェース215から送られてきた画像データを表示するものである。液晶表示部には、本画像形成装置の操作における機能表示や画像データ等を表示する。読み出したプログラム実行状態記録情報結果を出力表示するものである。
【0042】
次に、オブジェクト指向分析におけるモデル図について説明する。
【0043】
工学的手法であるオブジェクト指向を用いた一般的なソフトウエア開発において、モデル図としてどのようなものを必要とするかは、各工学的手法、各方法論によってそれぞれ定められているが、一般的には情報モデル、状態モデルを列挙することができる。
【0044】
オブジェクトとは、システムが対象とする実世界に存在する実体を抽象化したものであり、その中には、その抽象化された実体の識別を可能とする識別子と、その実体が持つ性質を抽象化した属性が含まれる。それぞれのオブジェクトは、実世界の中で体系的に成立する関連の集合を抽象化した関係で結ばれている。これら定義されたオブジェクトと、その相互関係を定義し、システムの静的側面を表現したものが情報モデルである。
【0045】
インスタンスとは、その抽象化したオブジェクトの実体そのものである。例えばある人が保有している2台の自動車を抽象化してオブジェクトとした場合、自動車というオブジェクトは1つだが、実際に存在する1号車、2号車それぞれが別々なインスタンスとなる。
【0046】
前記情報モデルから、それぞれのオブジェクトの動作側面を表したものが状態モデルである。オブジェクトの状態遷移(ライフサイクルとも言う)を定め、それぞれの状態での動的な振る舞いを記述していく。それぞれの状態はイベントによって遷移され、それぞれの状態がオブジェクトの行う処理の単位である。
【0047】
次に、ソフトウエア開発にて作成されたモデル図について説明する。
【0048】
まず、情報モデルについて図1を用いて説明する。
【0049】
オブジェクトObj1は、その識別子をobj_IDとし、aという属性を持っている。同じく、オブジェクトObj2は、その識別子をobj2_IDとし、zという属性を持っている。両オブジェクトは関係R1によって関係付けられており、その対応は1対1である。つまり、Obj1のインスタンスは必ず1つのObj2のインスタンスと関係し、その反対に、Obj2のインスタンスは必ず1つのObj1のインスタンスと関係すると記されている。
【0050】
次に、Obj1の状態モデルについて図2を用いて説明する。
【0051】
状態としてはState1とState2が定義されており、オブジェクトはそのいづれかの状態をとるという事がわかる。それぞれの状態遷移のトリガとして、init,next,backのイベントが定義されている。プログラム立ち上げ時の初期状態位置は、その数字の小さい方、すなわちState1であり、nextイベントを受ける事により、State2の振る舞いを実行する事になる。各状態遷移を起こす有効なイベント以外のイベントは無視される事になる。
【0052】
例えばState1の状態である場合に、backイベントを受信しても無視され、何の振る舞いも実行されない。initイベントは、State1の状態で受け取る限り、State1の振る舞いを実行する事になる。特にinitイベントは、プログラムの立ち上げ時にその初期化処理の終了とともに、外部処理部であるBootモジュールから1回だけ送信される特別なイベントである。
【0053】
次に、State1の状態での振る舞いとして、post(Self:next)と記されている。これは、nextというイベントを、Self、つまり自インスタンスヘ送信している意である。また、State2の状態での振る舞いとしては、Self[a]=func1(Self[a])にて、func1という関数を呼び出している。その引数としてSelf[a]、つまり、自インスタンスの属性aの値を渡し、同じくその返値を改めて自インスタンスの属性aに代入している。
【0054】
次に、post(Self:back)によって、backというイベントを、Self、つまり自インスタンスヘ送信している。これにより、現在の状態State2からState1への状態遷移を行わせている。
【0055】
次に、Obj2の状態モデルについて図3を用いて説明する。
【0056】
状態としてはState1が定義されている。取り得る状態はただ1つであるが、その振る舞いを呼び出すイベントとしてonが定義されている。onイベントを受け取る度に、State1の振る舞いを実行する事になる。State1の振る舞いとしては、Self[z]=func2(Self[z])にて、func2という関数を呼び出している。その引数としてSelf[z]、つまり、自インスタンスの属性zの値を渡し、同じくその返値を改めて自インスタンスの属性zに代入するものである。
【0057】
ここで、状態から呼び出される関数func1について図4を用いて説明する。
【0058】
func1はプログラム言語を用いてコーディングされたソースコードである。引数aをインクリメントした結果を返す。
【0059】
同じく関数func2について図5を用いて説明する。
【0060】
func2はプログラム言語を用いてコーディングされたソースコードである。引数zを2倍した結果を返す。
【0061】
さて、ここで、Obj1とObj2の実行が、それぞれ別々のタスクTask1とTask2として実装する場合を考える。より正確にいえば、Obj1のインスタンスはTask1として実行され、Obj2のインスタンスはTask2として実行される事になる。以降、それぞれのオブジェクトが1つのインスタンスをそれぞれ持つ場合を考える。
【0062】
タスクの実行状態を図6を用いて説明する。
【0063】
Task1にはObj1のインスタンスが属す。そのインスタンスはState1とState2の状態のどちらかをとる。Task2にはObj2のインスタンスが属し、取り得る状態はState1のみである。実行されている期間は太線で表現されている。先端の黒丸印は、その状態が始まった箇所(それ以前の状態から遷移を起こす箇所)を意味し、次の黒丸印の箇所までは状態遷移が発生していない事を意味するものである。点線で表現されている部分は、本来ある処理を実行したいのだが、タスクの制限により他の処理が実行されているため、そのタスク自体が処理待ちとなっている期間を意味している。
【0064】
太矢印はオブジェクトObj1,Obj2以外の外的要因から送られてくるイベントを受信するタイミングを表現している。細矢印はオブジェクトObj1,Obj2の振る舞いとして発せられたイベントを意味しており、実際にそのイベントが受信されたタイミング箇所に記されている。前記イベントが送信されたタイミングは☆印で表現されており、注釈線にてそのイベントが送られた状態モデルでの振る舞い記述が参考までに記されている。
【0065】
ここで、ある一方のオブジェクトの状態の振る舞い処理を実行している最中にはタスクスイッチを起こさない、つまり状態の切れ目でのみタスクスイッチを許可するという場合を例にする。これは、オブジェクト間でプリエンプションを行わない、というように表現する事もできる。図6を用いて詳細に説明する。
【0066】
タスク優先順位は、Task1よりもTask2の方が高い(Task1<Task2)とする。
【0067】
※1にて、Bootモジュールよりinitイベントを受け取る。これにより、以降、処理が進む事になる。Task1が実行状態となり、State1の振る舞いを実行する。Task2は依然として処理を必要とせず休眠状態である。State1の振る舞いの最後に自分に対してnextイベントを送信する。未処理イベントを判断し、他に実行を待っているタスクはないため、※2にて、Task1がそのままnextイベントを受信し、State2の振る舞いを実行する。その実行途中に※3に示されるonイベントがTask2に送信された場合、本来ならばタスク優先順位の高いTask2の処理を即座に実行したいところだが、ここではオブジェクト間でのプリエンプション不可として実装されているため、Task1の処理、つまり、Obj1のState2の振る舞いの終了までTask2の実行は待たされる事になる。Obj1のState2の振る舞いの最後に自分に対してbackイベントを送信する。この時点で、Obj1に対してbackイベントが、そして、Obj2に対してonイベントがそれぞれ送られている。さて、State2の振る舞いが終了したら、※4で示されるようにそのタスクの優先順位を判断し、高い優先順位を持つTask2の処理が実行される事になる。その後Task2の処理、すなわちState1の振る舞い処理が終了した段階で、※5に示す通り改めて残されている未処理イベントを判断し、Task1のbackイベントを処理する。これによりTask1が実行状態となり、Obj1の状態はState1へと移り、該振る舞いを実行することになる。以降、一連の処理を続けていく。
【0068】
この場合の動作実行ログの記録について図8を用いて説明する。
【0069】
ログとして記録される情報は図8に示されるようなものであり、その記録内容として、受信したイベント、受信したタスク、受信したオブジェクト、受信したインスタンス、それにより実行された状態名、状態中で更新された属性の値、プリエンプションが発生したか否か、の各情報が記録される。
【0070】
記録は、前述した図6の処理説明に対応して行われるものであり、イベントを受信してから、その状態が終了するまでの間の、その振る舞い実行による属性値の更新結果を1行に表現する。ここでは、Obj1のインスタンスは、識別子(obj_ID)の値が1であるとし、Obj2のインスタンスは、識別子(obj2_ID)の値が10であるとする。属性値が更新されなかった場合には「−」表示となる。属性は図1で示されるとおり、Obj1ではa,Obj2ではzを指す。ここでは、それぞれ初期値は「1」であるものとしている。
【0071】
プリエンプション欄で、「No」と記されているものは、実行状態の振る舞い処理が、途中タスクスイッチ、つまりプリエンプションされる事無く最後まで連続して処理する事ができた結果を意味するものである。この実行ログ結果を確認する事により、それぞれのモデルの実行状態を確認すると同時に、プリエンプション不可という実装通りにプリエンプションが発生していないかどうかを確認する事が可能となる。
【0072】
(実施例2)
Obj1とObj2の実行が、それぞれ別々のタスクTask1とTask2として実装する場合を考える。より正確にいえば、Obj1のインスタンスはTask1として実行され、Obj2のインスタンスはTask2として実行される事になる。以降、それぞれのオブジェクトが1つのインスタンスをそれぞれ持つ場合を考える。
【0073】
タスクの実行状態を図7を用いて説明する。
【0074】
Task1にはObj1のインスタンスが属す。そのインスタンスはState1とState2の状態のどちらかをとる。Task2にはObj2のインスタンスが属し、取り得る状態はState1のみである。実行されている期間は太線で表現されている。先端の黒丸印は、その状態が始まった箇所(それ以前の状態から遷移を起こす箇所)を意味し、次の黒丸印の箇所までは状態遷移が発生していない事を意味するものである。点線で表現されている部分は、本来ある処理を実行したいのだが、タスクの制限により他の処理が実行されているため、そのタスク自体が処理待ちとなっている期間を意味している。
【0075】
太矢印はオブジェクトObj1,Obj2以外の外的要因から送られてくるイベントを受信するタイミングを表現している。細矢印はオブジェクトObj1,Obj2の振る舞いとして発せられたイベントを意味しており、実際にそのイベントが受信されたタイミング箇所に記されている。前記イベントが送信されたタイミングは☆印で表現されており、注釈線にてそのイベントが送られた状態モデルでの振る舞い記述が参考までに記されている。
【0076】
ここで、ある一方のオブジェクトの状態の振る舞い処理を実行している最中でも、それよりも優先順位の高いタスクを実行する必要が生じた場合には瞬時にタスクスイッチを起こす、つまり状態の切れ目以外でもタスクスイッチを許可するという場合を例にする。これは、オブジェクト間でプリエンプションを行う、というように表現する事もできる。図7を用いて詳細に説明する。
【0077】
タスク優先順位は、Task1よりもTask2の方が高い(Task1<Task2)とする。
【0078】
※1にて、Bootモジュールよりinitイベントを受け取る。これにより、以降、処理が進む事になる。Task1が実行状態となり、State1の振る舞いを実行する。Task2は依然として処理を必要とせず休眠状態である。State1の振る舞いの最後に自分に対してnextイベントを送信する。未処理イベントを判断し、他に実行を待っているタスクはないため、※2にて、Task1がそのままnextイベントを受信し、State2の振る舞いを実行する。その実行途中に※3に示されるonイベントがTask2に送信された場合、タスク優先順位の高いTask2の処理を即座に実行する事になる。ここではオブジェクト間でのプリエンプションを可として実装されているため、Task1の処理、つまり、Obj1のState2の振る舞いは、その処理途中ではあるが一旦停止され、Task2の実行へと移る事になる。
【0079】
※4にてTask2の振る舞い処理が終了した段階で、待たされていたTask1の処理、つまりObj1のState2の振る舞いの残り箇所が実行される事になる。振る舞いの最後に自分に対してbackイベントを送信し、State2の振る舞い処理が終了となる。
【0080】
続いて、※5に示す通り改めて残されている未処理イベントを判断し、Task1のbackイベントを処理する。これによりTask1が実行状態となり、Obj1の状態はState1へと移り、該振る舞いを実行することになる。以降、一連の処理を続けていく。
【0081】
この場合の動作実行ログの記録について図9を用いて説明する。
【0082】
ログとして記録される情報は図8に示されるようなものであり、その記録内容として、受信したイベント、受信したタスク、受信したオブジェクト、受信したインスタンス、それにより実行された状態名、状態中で更新された属性の値、プリエンプションが発生したか否か、の各情報が記録される。
【0083】
記録は、前述した図6の処理説明に対応して行われるものであり、イベントを受信してから、その状態が終了するまでの間の、その振る舞い実行による属性値の更新結果を1行に表現する。ここでは、Obj1のインスタンスは、識別子(obj1_ID)の値が1であるとし、Obj2のインスタンスは、識別子(obj2_ID)の値が10であるとする。属性値が更新されなかった場合には「−」表示となる。属性は図1で示されるとおり、Obj1ではa,Obj2ではzを指す。ここでは、それぞれ初期値は「1」であるものとしている。プリエンプション欄で、「No」と記されているものは、実行状態の振る舞い処理が、途中タスクスイッチ、つまりプリエンプションされる事無く最後まで連続して処理する事ができた結果を意味するものであり、「Yes」と記されているものは、その振る舞い処理の途中でタスクスイッチ、つまりプリエンプションが発生したということを意味するものである。その本質上、「Yes」となっている状態は、いづれ再開される事になる。それを表現するのは、受信イベントで「continue」と記される行である。ただし、continueイベントは予約されているものとし、モデル図中では使用できないという前提である。
【0084】
図中では、2行目にてTask1,Obj1,State2の処理を実行している途中で、3行目の通り、Task2,Obj2,State1へとプリエンプションが発生し、その処理終了後、4行目に記されているとおり、割り込まれたTask1,Obj1,State2の処理が続行されている事が確認できる。この実行ログ結果を確認する事により、それぞれのモデルの実行状態と、プリエンプション状態を容易に確認する事が可能となる。
【0085】
(実施例3)
記録された実行ログ結果を操作部221に出力表示する場合について図11、図12を用いて説明する。
【0086】
図11は本装置における操作部221での画面表示状態である。画面はグラフィッカルに構成され、メッセージ表示や各種ボタン表示がなされている。その中で、実行ログ表示ボタン11−1を押下する事により、実行ログ表示画面へと切り替わる。モデル確認ボタン11−2については、後述のモデルを確認する項にて説明する。
【0087】
図12は実行ログが表示されている状態を表す。画面内には、記録されているプログラム実行状態が1度に5行分表示される。ただし、ここでは全部で4行分の情報である例となっている。上スクロールボタン12−1は、画面を上ヘスクロールするボタンであり、前の5行分を表示する事になる。上スクロールに値する情報がある場合には黒く有効表示となるが、図のように上スクロールに値しないような場合には、網掛け表示され、押されても何も機能しない。下スクロールボタン12−3も同様である。ページ表示部12−2は、総ページ数を分母に、現在表示ページを分子とするものであり、全体の情報量と、現在表示中の情報の位置を特定する事が可能なものである。閉じるボタン12−4は本画面を閉じ、図11の画面へ戻るものである。現ページ印刷ボタン12−5は、現在表示中のページ(5行分)を用紙にプリントアウトするためのボタンである。全印刷ボタン12−6は、記録されている全ての実行ログ情報を用紙にプリントアウトするためのボタンである。
【0088】
(実施例4)
動作しているプログラムの元となっている、記憶されているモデルを操作部221に出力表示する場合について図11、13、14、15を用いて説明する。
【0089】
図11は本装置における操作部221での画面表示状態である。画面はグラフィッカルに構成され、メッセージ表示や各種ボタン表示がなされている。実行ログ表示ボタン11−1を押下する場合の説明は、実行ログを表示確認する項にて前述したとおり。モデル確認ボタン11−2を押下すると、モデル確認表示画面へ切り替わる。
【0090】
図13は情報モデルが表示されている状態であり、それと分かるよう、情報モデルタブ13−1が反転表示されている。モデル確認ボタン11−2を押下すると、情報モデル画面が最初に表示される。情報モデルはシステムに1つとは限らないが、ここでは1つである場合を例に示している。複数ある場合には、後述の状態モデルを特定する場合のように、プルダウンメニューから選択する事になる。その場合は、情報モデルタブ13−1を押下する事によってプルダウンメニューの表示となる。13−9は表示マットであり、モデルを表示するエリアである。表示エリアは限られている範囲なので、上下左右スクロールが可能である。
【0091】
13−3,13−4,13−7,13−8は各スクロールボタンであり、押下するとその方向へ表示マットを移動し、モデルの全体を確認する事が可能となる。閉じるボタン13−10は本画面を閉じ、図11の画面へ戻るものである。現モデル印刷ボタン13−5は、現在表示マット13−9上に表示中のモデルだけを用紙にプリントアウトするためのボタンである。全印刷ボタン13−6は、記憶されている全てのモデルを用紙にプリントアウトするためのボタンである。状態モデルタブ13−2を押下する事により、各オブジェクトの状態モデルをそれぞれ表示させる事が可能である。
【0092】
状態モデルタブ14−1を押下すると、図14に示すとおり、表示する状態モデルを特定する事が可能となる。
【0093】
システムの状態モデルがプルダウンメニュー表示されており、プルダウンメニュー14−2を押下する事により、Obj1オブジェクトの状態モデルを表示する事ができる。プルダウンメニュー14−3を押下する事により、Obj2オブジェクトの状態モデルを表示する事ができる。
【0094】
プルダウンメニュー14−2を押下してObj1のオブジェクトの状態モデルを表示した結果が図15である。
【0095】
表示マット15−1上では、先ほどまでの情報モデルに代わり、Obj1オブジェクトの状態モデルが表示されている。その表示状態を示すために、状態モデルタブ15−2は反転表示され、更に、識別を容易にするため、表示しているオブジェクト名であるObj1が表示されている。
【0096】
プルダウンメニュー14−3を押下してObj2のオブジェクトの状態モデルを表示した結果が図16である。
【0097】
表示マット16−1上では、先ほどまでの情報モデルに代わり、Obj2オブジェクトの状態モデルが表示されている。その表示状態を示すために、状態モデルタブ16−2は反転表示され、更に、識別を容易にするため、表示しているオブジェクト名であるObj2が表示されている。
【0098】
【発明の効果】
以上説明したように、本発明によれば、プログラムが処理実行された状況について、その時のデータ更新状態、ならびに、プリエンプション発生状況などのタスク状態についての情報を一覧化して記録し、そしてそれを読み出し可能とする事で、開発者が容易にプログラムの動作確認を行うことができる。それにより、プログラムの保守やメンテナンス、あるいは開発時の動作確認やデバ
ッグを、より容易で効率的に行う事が可能となる。
【0099】
さらに、モデルすなわちプログラムのバージョンが複数存在するような場合で、ある装置にインストールされているバージョンがどのような機能をもったものか特定する必要がある場合にも、装置内のプログラムの元となっているモデルを表示する事で有する機能を即座に判断する事ができ、その確認の手間を省く事ができる。
【図面の簡単な説明】
【図1】 システム分析による情報モデル図
【図2】 システム分析による状態モデル図
【図3】 システム分析による状態モデル図
【図4】 状態内で読み出される関数コード
【図5】 状態内で読み出される関数コード
【図6】 非プリエンプション時のタスク動作図
【図7】 プリエンプション時のタスク動作図
【図8】 非プリエンプション時の動作記録内容
【図9】 プリエンプション時の動作記録内容
【図10】 装置の全体図
【図11】 操作部表示画面図
【図12】 操作部表示画面図
【図13】 操作部表示画面図
【図14】 操作部表示画面図
【図15】 操作部表示画面図
【図16】 操作部表示画面図
【符号の説明】
201 CPU
202 HDD
203 メモリ
204 高速CPUバス
205 RIP
206 画像処理
207 圧縮/伸長
208 バスブリッジ
209 低速CPUバス
210 モデム
211 公衆回線
213 LAN
214 管理装置インターフェース
215 パネルインターフェース
216 高速イメージバス
217 スキャナインターフェース
218 スキャナユニット
219 プリンタインターフェース
220 プリンタユニット
221 操作部
11−1 実行ログ表示ボタン
11−2 モデル確認ボタン
12−1 上スクロールボタン
12−2 ページ表示部
12−3 下スクロールボタン
12−4 閉じるボタン
12−5 現ページ印刷ボタン
12−6 全印刷ボタン
13−1 情報モデルタブ
13−2 状態モデルタブ
13−3,13−4,13−7,13−8 スクロールボタン
13−5 現モデル印刷ボタン
13−6 全印刷ボタン
13−9 表示マット
13−10 閉じるボタン
14−1 状態モデルタブ
14−2,14−3 プルダウンメニュー
15−1 表示マット
15−2 状態モデルタブ
16−1 表示マット
16−2 状態モデルタブ

Claims (9)

  1. 工学的開発方法論に基づいて作成されたモデルを記憶するモデル記憶手段と、
    前記モデル記憶手段に記憶されたモデルをコードに変換したプログラムをマルチタスク環境下にて動作実行するプログラム実行手段と、
    前記プログラム実行手段によるプログラム実行ログとして、受信されたイベントに対して、そのイベントを受信したタスクと、そのタスクを実行するオブジェクトインスタンスと、そのイベントをトリガとして状態遷移したオブジェクトの状態と、その状態振る舞いにより更新された属性の値と、そのイベントの処理中にプリエンプションが発生したか否かを示す情報とを、逐次記録していくプログラム実行ログ記録手段と、
    前記プログラム実行ログ記録手段に記録されたプログラム実行ログを読み出すプログラム実行ログ読み出し手段と、
    前記プログラム実行ログ読み出し手段により読み出されたプログラム実行ログを、複数のイベントについてイベント毎に1行で表現した表形式により出力するプログラム実行ログ出力手段とを有することを特徴とするソフトウエアシステム動作確認装置。
  2. 前記プログラム実行ログ読み出し手段は、通信回線を介して外部の機器と通信を行うことを特徴とする請求項1に記載のソフトウエアシステム動作確認装置。
  3. 前記モデル記憶手段に記憶された情報を読み出して出力するモデル読み出し手段を有することを特徴とする請求項1に記載のソフトウエアシステム動作確認装置。
  4. 前記モデル読み出し手段は、通信回線を介して外部の機器と通信を行うことを特徴とする請求項3に記載のソフトウエアシステム動作破認装置。
  5. ユーザとの情報交換を行うユーザインターフェース手段を有することを特徴とする請求項1に記載のソフトウエアシステム動作確認装置。
  6. 前記プログラム実行ログ出力手段は、前記ユーザインターフェース手段を用いて出力表示を行うことを特徴とする請求項5に記載のソフトウエアシステム動作確認装置。
  7. ユーザとの情報交換を行うユーザインターフェース手段を有し、前記モデル読み出し手段は、前記ユーザインターフェース手段を用いて出力表示を行うことを特徴とする請求項3に記載のソフトウエアシステム動作確認装置。
  8. 前記モデル読み出し手段は、用紙媒体に印刷出力することを特徴とする請求項3に記載のソフトウエアシステム動作確認装置。
  9. 前記プログラム実行状態出力手段は、用紙媒体に印刷出力することを特徴とする請求項1に記載のソフトウエアシステム動作確認装置。
JP2001377242A 2001-12-11 2001-12-11 ソフトウエアシステム動作確認装置 Expired - Fee Related JP4208460B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001377242A JP4208460B2 (ja) 2001-12-11 2001-12-11 ソフトウエアシステム動作確認装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001377242A JP4208460B2 (ja) 2001-12-11 2001-12-11 ソフトウエアシステム動作確認装置

Publications (3)

Publication Number Publication Date
JP2003177946A JP2003177946A (ja) 2003-06-27
JP2003177946A5 JP2003177946A5 (ja) 2007-01-25
JP4208460B2 true JP4208460B2 (ja) 2009-01-14

Family

ID=19185258

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001377242A Expired - Fee Related JP4208460B2 (ja) 2001-12-11 2001-12-11 ソフトウエアシステム動作確認装置

Country Status (1)

Country Link
JP (1) JP4208460B2 (ja)

Also Published As

Publication number Publication date
JP2003177946A (ja) 2003-06-27

Similar Documents

Publication Publication Date Title
US7209249B2 (en) Method of and apparatus for image formation, and computer product
JP3826038B2 (ja) 印刷システム及びその印刷方法並びに印刷装置
US8339636B2 (en) Multi-function peripheral apparatus for processing unified job steps
US7698471B2 (en) Print system, information processing device and control method for the same, printer and control method for the same, storage medium, and program
US8014014B2 (en) Status information processor
JP5700093B2 (ja) 画像形成装置
US20080130033A1 (en) Image forming apparatus, content display method, and computer program product
JP4208460B2 (ja) ソフトウエアシステム動作確認装置
JP4208461B2 (ja) ソフトウエアシステム動作確認装置
JP2015108857A (ja) システム、その制御方法、情報処理装置、その制御方法及びプログラム
JP4208468B2 (ja) ソフトウェアシステム動作確認装置
JP3920893B2 (ja) 情報処理装置、プロセス間通信履歴表示方法およびその方法をコンピュータに実行させるプログラム
JPH08289068A (ja) 複合型デジタル複写機
KR101405920B1 (ko) 잡 컨트롤 장치 및 복합장치 그리고 그들의 동작 방법
JP4482526B2 (ja) 画像形成装置
CN100394386C (zh) 信息处理装置
JP3689380B2 (ja) 画像形成装置用端末エミュレータにおける描画処理方法、その方法をコンピュータに実行させるプログラムおよび画像形成装置
JP3284457B2 (ja) プリンタ
JPH10173897A (ja) 画像処理装置、画像処理システム及び画像処理方法
JP4494329B2 (ja) 情報処理装置
CN105763757A (zh) 信息设备
JP2004062828A (ja) 画像形成装置およびカスタマイズプログラム試験方法
JPH1024635A (ja) プリンタシステム
US20150169264A1 (en) Image forming apparatus and display device
JP3012748B2 (ja) 計算機システム及び帳票編集出力装置

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20041206

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080701

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080901

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080930

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081021

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111031

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111031

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131031

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees