(57)【要約】      （修正有）【課題】効率良くデバッグ情報を出力可能な画像形成装置および情報処理方法を提供する。【解決手段】画像形成装置２０は、操作部２６と、表示部２６ａと、記憶部２９と、操作部および表示部を用いて開発者にログを出力する範囲を選択させ、選択結果をログ出力選択テーブルとして記憶部に記憶させるログ出力選択部２１ａと、ログ出力選択テーブル２９ａを参照し、自身によるログ出力が指示されているとき、ログを出力する１以上のログ出力部２１ｄと、１以上のログ出力部をそれぞれ含んだ１以上のサブルーチン２１ｃとを備える。【選択図】図５
2018072911.tif 000002
【特許請求の範囲】
【請求項１】
操作部と、
表示部と、
記憶部と、
前記操作部および前記表示部を用いて開発者にログを出力する範囲を選択させ、選択結果をログ出力選択テーブルとして前記記憶部に記憶させるログ出力選択部と、
前記ログ出力選択テーブルを参照し、自身によるログ出力が指示されているとき、ログを出力する１以上のログ出力部と、
前記１以上のログ出力部をそれぞれ含んだ１以上のサブルーチンと
を備えた画像形成装置。
【請求項２】
請求項１に記載の画像形成装置であって、
前記ログ出力部は、
マクロとして前記１以上のサブルーチンのそれぞれに記述される
画像形成装置。
【請求項３】
請求項１または２に記載の画像形成装置であって、
前記ログ出力選択部は、
ログを出力する範囲をコンポーネント単位で受け付ける
画像形成装置。
【請求項４】
請求項１または２に記載の画像形成装置であって、
前記ログ出力選択部は、
ログを出力する範囲を前記画像形成装置が提供する機能単位で受け付ける
画像形成装置。
【請求項５】
開発者が、デバッグ対象ソフトウェアの各サブルーチンの所属するコンポーネント名および使用される機能の名称を指定して、前記各サブルーチン内にログ出力部を記述し、
前記開発者が、前記デバッグ対象ソフトウェアを製造し、
前記開発者が、製造した前記ソフトウェアを画像形成装置に組み込み、
ログ出力選択部が、前記開発者に対し、ログ出力の範囲を選択する画面を提示し、選択結果を受け付け、ログ出力選択テーブルに記録し、
前記開発者が、デバッグ対象とする機能を実行し、
呼び出された前記サブルーチン内の前記ログ出力部が、前記ログ出力選択テーブルを参照し、自身がログ出力を行うべきか否かを判断し、
ログ出力すべき場合、呼び出された前記サブルーチン内の前記ログ出力部が、ログを出力する
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置（ＭＦＰ、Multifunction Peripheral）上で動作するソフトウェアをデバッグする際のデバッグ情報の出力制御に関する。
【背景技術】
【０００２】
従来、ソフトウェアをデバッグする際に出力されるデバッグ情報の膨大さに対処するための様々な工夫がなされてきた。
【０００３】
例えば、特許文献１において開示されている技術では、複数あるソフトウェア機能のそれぞれにおいてデバッグ情報を生成するが、ログファイルに出力する時点でユーザーの指定したデバッグ情報だけに絞っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−１５６９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１の技術では、最終的なログファイルは小さくすることが出来るものの、全てのソフトウェア機能が常にデバッグ情報を出力し続けるので、ソフトウェア実行の効率という観点からは問題があった。
【０００６】
以上のような事情に鑑み、本発明の目的は、効率良くデバッグ情報を出力可能な画像形成装置および情報処理方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の一形態に係る画像形成装置は、操作部と、表示部と、記憶部と、前記操作部および前記表示部を用いて開発者にログを出力する範囲を選択させ、選択結果をログ出力選択テーブルとして前記記憶部に記憶させるログ出力選択部と、前記ログ出力選択テーブルを参照し、自身によるログ出力が指示されているとき、ログを出力する１以上のログ出力部と、前記１以上のログ出力部をそれぞれ含んだ１以上のサブルーチンとを備える。
【０００８】
そのため、効率良くデバッグ情報を出力できる。
【０００９】
上記目的を達成するため、本発明の一形態に係る画像形成装置では、前記ログ出力部は、マクロとして前記１以上のサブルーチンのそれぞれに記述される構成でもよい。
【００１０】
上記目的を達成するため、本発明の一形態に係る画像形成装置では、前記ログ出力選択部は、ログを出力する範囲をコンポーネント単位で受け付ける構成でもよい。
【００１１】
上記目的を達成するため、本発明の一形態に係る画像形成装置では、前記ログ出力選択部は、ログを出力する範囲を前記画像形成装置が提供する機能単位で受け付ける構成でもよい。
【００１２】
上記目的を達成するため、本発明の一形態に係る情報処理方法では、開発者が、デバッグ対象ソフトウェアの各サブルーチンの所属するコンポーネント名および使用される機能の名称を指定して、前記各サブルーチン内にログ出力部を記述し、前記開発者が、前記デバッグ対象ソフトウェアを製造し、前記開発者が、製造した前記ソフトウェアを画像形成装置に組み込み、ログ出力選択部が、前記開発者に対し、ログ出力の範囲を選択する画面を提示し、選択結果を受け付け、ログ出力選択テーブルに記録し、前記開発者が、デバッグ対象とする機能を実行し、呼び出された前記サブルーチン内の前記ログ出力部が、前記ログ出力選択テーブルを参照し、自身がログ出力を行うべきか否かを判断し、ログ出力すべき場合、呼び出された前記サブルーチン内の前記ログ出力部が、ログを出力する。
【発明の効果】
【００１３】
以上のように、本発明によれば、効率良くデバッグ情報を出力できる。
【図面の簡単な説明】
【００１４】
【図１】画像形成装置２０のＣＯＰＹ機能で用いられるコンポーネントが記述されたコミュニケーション図である。
【図２】各サブルーチン内へのログ取得マクロの記述方法について説明するための図である。
【図３】ログ出力範囲の選択方法の例を示す図である。
【図４】ログ出力範囲の選択方法の例を示す図である。
【図５】画像形成装置２０の構成を概略的に示す構成図である。
【図６】ソフトウェア製造時の詳細な処理の流れについて説明するためのフローチャートである。
【図７】デバッグ時の詳細な処理の流れについて説明するためのフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら、本発明の実施形態を説明する。
【００１６】
［概要］
最初に、概要について説明する。
【００１７】
本発明の一実施形態に係る画像形成装置２０では、概略的に、以下の手順でログの選択的な出力を行う：
【００１８】
（１）まず、画像形成装置の開発段階でデバッグ対象となるソフトウェアの各サブルーチン（または、関数、手続き、メソッドなど）ごとに、所属するコンポーネントおよびそのサブルーチンが使われる機能（ＣＯＰＹ機能、ＳＥＮＤ機能など）を定め、ソースコード内にログ取得用マクロを記述する。
（２）ソフトウェアを製造し、画像形成装置２０に組み込む。
（３）デバッグ前に、ログを出力する範囲を開発者が選択する。
（４）デバッグする機能を実行する。
（５）ログを選択的に出力する。
【００１９】
以上、概要について説明した。なお、以下では、各ステップの詳細について例を挙げながら順を追って説明する。
【００２０】
［サブルーチンごとのコンポーネントおよび使用される機能の決定］
次に、デバッグ機能をデバッグ対象であるソフトウェアに組み込む最初の段階である、サブルーチンごとに、所属するコンポーネントおよび使用される機能を決定する方法について説明する。
【００２１】
図１は、画像形成装置２０のＣＯＰＹ機能で用いられるコンポーネントが記述されたコミュニケーション図である。この図から画像形成装置２０がＣＯＰＹ機能を実行する際には、Ａコンポーネント、Ｃコンポーネント、およびＤコンポーネントが使用されることが分かる。
【００２２】
この図に基づいて、デバッグ機能を組み込む開発者は、Ａコンポーネント、Ｃコンポーネント、およびＤコンポーネントに含まれるサブルーチンに対しては、ＣＯＰＹ機能で用いられることをサブルーチンに教えるために、特定の引数を指定したログ取得マクロ（後述）を各サブルーチン内に記述していく。
【００２３】
以上、デバッグ機能をデバッグ対象であるソフトウェアに組み込む最初の段階である、サブルーチンごとに、所属するコンポーネントおよび使用される機能を決定する方法について説明した。
【００２４】
［ログ取得マクロの記述方法］
次に、各サブルーチン内へのログ取得マクロの記述方法について説明する。図２は、各サブルーチン内へのログ取得マクロの記述方法について説明するための図である。なお、図ではＣ＋＋言語を例に挙げているが、使用する言語はこれに限られるものではない。
【００２５】
図から分かるように、例えば最初の関数（サブルーチン）test_method1には、ログ取得マクロGET_LOG_MACROの引数として、ＡコンポーネントとＣＯＰＹ機能が指定されている。
【００２６】
これは、開発者が、関数test_method1は、Ａコンポーネントに所属し、画像形成装置２０のＣＯＰＹ機能が使用される場合に呼び出される関数であると認識した上で、引数に記述した、ということである。
【００２７】
なお、図２に記述してある他の３つの関数（サブルーチン）２１ｃについても同様であり、各関数２１ｃ内にはログ取得マクロ２１ｄが記述され、各関数２１ｃが所属するコンポーネント名と使用される機能名が引数として記述される。
【００２８】
なお、ログ取得マクロ２１ｄには、「その他」の項目があるが、ここには、コンポーネント名、機能名以外の単位でログを出力させる時の範囲を指定することが出来る。
【００２９】
以上、各サブルーチン内へのログ取得マクロの記述方法について説明した。
【００３０】
［ログ出力範囲の選択］
次に、ログ出力範囲の選択方法について説明する。図３および図４は、ログ出力範囲の選択方法の例を示す図である。なお、図３および図４の画面は、デバッグを行う開発者のみがアクセス出来るものとしてもよい。
【００３１】
図３に示す方法は、画面上にＡコンポーネントからＤコンポーネントまでの一覧を表示し、開発者がログを出力させたいコンポーネントの左側のチェックボックスにチェックを入れて「決定」を選ぶことにより、ログ出力範囲を選択するものである。
【００３２】
また、図４に示す方法は、画面上にＣＯＰＹ機能からＢＯＸ機能までに一覧を表示し、開発者がログを出力させたい機能の左側のチェックボックスにチェックを入れて「決定」を選ぶことにより、ログ出力範囲を選択するものである。
【００３３】
以上、ログ出力範囲の選択方法について説明した。
【００３４】
［画像形成装置の構成］
次に、画像形成装置２０の構成について説明する。図５は画像形成装置２０の構成を概略的に示す構成図である。
【００３５】
画像形成装置２０は、制御部２１を備える。制御部２１は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、および専用のハードウェア回路等から構成され、画像形成装置２０の全体的な動作制御を司る。
【００３６】
制御部２１は、原稿読取部２２、画像処理部２３、画像メモリー２４、画像形成部２５、操作部２６、表示部２６ａ、ファクシミリ通信部２７、通信部２８、記憶部２９等と接続されている。制御部２１は、接続されている上記各部の動作制御や、各部との間での信号又はデータの送受信を行う。
【００３７】
制御部２１は、ユーザーから、操作部２６またはネッワーク接続されたＰＣ等を通じて入力されるジョブの実行指示に従って、スキャナ機能、印刷機能、コピー機能、およびファクシミリ送受信機能などの各機能についての動作制御を実行するために必要な機構の駆動及び処理を制御する。
【００３８】
また、制御部２１は、ログ出力選択部２１ａおよび１以上のサブルーチン２１ｃを有している。ログ出力選択部２１ａおよびサブルーチン２１ｃは、ＲＯＭなどからＲＡＭにロードされたプログラムがＣＰＵにより実行されることで実現される機能ブロックである。なお、各サブルーチン２１ｃには、ログ出力部２１ｄが含まれている。
【００３９】
ログ出力選択部２１ａは、上述したログ出力範囲を選択する画面を開発者に提示し、ログ出力の範囲を選択させる。ログ出力選択部２１ａは、選択されたログ出力の範囲をログ出力選択テーブル２９ａに記録する。
【００４０】
サブルーチン２１ｃのそれぞれは、画像形成装置２０が提供する機能を実現するためのソフトウェアを構成する。
【００４１】
ログ出力部２１ｄは、上述したログ取得マクロ２１ｄに相当する部分である。ログ出力部２１ｄが記述されたサブルーチンが呼び出されると、ログ出力部２１ｄは、ログ出力選択テーブル２９ａを参照し、自身のサブルーチンにフラグが立っている場合は、ログ出力を行う構成でもよい。
【００４２】
原稿読取部２２は、原稿から画像を読み取る。
【００４３】
画像処理部２３は、原稿読取部２２で読み取られた画像の画像データを必要に応じて画像処理する。例えば、画像処理部２３は、原稿読取部２２により読み取られた画像が画像形成された後の品質を向上させるために、シェーディング補正等の画像処理を行う。
【００４４】
画像メモリー２４は、原稿読取部２２による読み取りで得られた原稿画像のデータを一時的に記憶したり、画像形成部２５での印刷対象となるデータを一時的に記憶したりする領域である。
【００４５】
画像形成部２５は、原稿読取部２２で読み取られた画像データ等の画像形成を行う。
【００４６】
操作部２６は、画像形成装置２０が実行可能な各種動作及び処理についてユーザーからの指示を受け付けるタッチパネル部および操作キー部を備える。タッチパネル部は、タッチパネルが設けられたＬＣＤ（Liquid Crystal Display）等の表示部２６ａを備えている。
【００４７】
ファクシミリ通信部２７は、図示しない符号化／復号化部、変復調部、およびＮＣＵ（Network Control Unit）を備え、公衆電話回線網を用いてのファクシミリの送信を行う。
【００４８】
通信部２８は、ＬＡＮボード等の通信モジュールから構成され、通信部２８に接続されたＬＡＮ等を介して、ＰＣなどの装置と種々のデータの送受信を行う。
【００４９】
記憶部２９は、原稿読取部２２によって読み取られた原稿画像などを記憶する。記憶部２９は、ＨＤＤなどの大容量の記憶装置である。記憶部２９は、ログ出力選択テーブル２９ａおよびログファイル２９ｂを記憶している。
【００５０】
ログ出力選択テーブル２９ａは、ログ出力選択部２１ａにより選択されたログ出力の範囲を記録するテーブルである。なお、記録は、サブルーチンごとにフラグを立てることで行われてもよい。
【００５１】
ログファイル２９ｂは、ログが吐き出されるファイルである。なお、ログは、画像形成装置２０に外部接続されたＵＳＢ（Universal Serial Bus）メモリー上やネットワーク接続されたＰＣ上に吐き出される構成でもよい。
【００５２】
以上、画像形成装置２０の構成について説明した。
【００５３】
［処理の流れ（製造時）］
次に、ソフトウェア製造時の詳細な処理の流れについて説明する。図６は、ソフトウェア製造時の詳細な処理の流れについて説明するためのフローチャートである。
【００５４】
まず、開発者が、デバッグ対象ソフトウェアの各サブルーチンの所属するコンポーネント名および使用される機能の名称を指定して、デバッグ対象ソフトウェアの各サブルーチン内にログ取得マクロ２１ｄを記述する（ステップＳ１）。
【００５５】
次に、開発者は、ソースコードのコンパイル等を行い、デバッグ対象ソフトウェアを製造する（ステップＳ２）。
【００５６】
次に、開発者は、製造したソフトウェアを画像形成装置２０に組み込む（ステップＳ３）。
【００５７】
以上、ソフトウェア製造時の詳細な処理の流れについて説明した。
【００５８】
［処理の流れ（デバッグ時）］
次に、デバッグ時の詳細な処理の流れについて説明する。図７は、デバッグ時の詳細な処理の流れについて説明するためのフローチャートである。
【００５９】
まず、ログ出力選択部２１ａが、開発者に対し、ログ出力の範囲を選択する画面を提示し、選択結果を受け付け、ログ出力選択テーブル２９ａに記録する（ステップＳ１０）。
【００６０】
次に、開発者が、デバッグ対象とする機能を実行する（ステップＳ１１）。
【００６１】
次に、呼び出されたサブルーチン２１ｃ内のログ出力部２１ｄが、ログ出力選択テーブル２９ａを参照し、自身がログ出力を行うべきか否かを判断する（ステップＳ１２）。
【００６２】
次に、呼び出されたサブルーチン２１ｃ内のログ出力部２１ｄは、ログ出力すべき場合、ログファイル２９ｂにログを出力する（ステップＳ１３）。
【００６３】
なお、上記の説明では、ステップＳ１２およびＳ１３は一度実行するように記述したが、実際にはステップＳ１２およびＳ１３は、デバッグ対象とする機能が実行されている間、繰り返される。
【００６４】
以上、デバッグ時の詳細な処理の流れについて説明した。
【００６５】
［補足事項］
以上のように、本発明に係る画像形成装置２０は、操作部２６と、表示部２６ａと、記憶部２９と、前記操作部２６および前記表示部２６ａを用いて開発者にログを出力する範囲を選択させ、選択結果をログ出力選択テーブル２９ａとして前記記憶部２９に記憶させるログ出力選択部２１ａと、前記ログ出力選択テーブル２９ａを参照し、自身によるログ出力が指示されているとき、ログを出力する１以上のログ出力部２１ｄと、前記１以上のログ出力部２１ｄをそれぞれ含んだ１以上のサブルーチン２１ｃとを備える。
【００６６】
そのため、効率良くデバッグ情報を出力できる。
【００６７】
その他、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【００６８】
２０  …  画像形成装置
２１  …  制御部
２１ａ…  ログ出力選択部
２１ｃ…  サブルーチン
２１ｄ…  ログ出力部
２２  …  原稿読取部
２３  …  画像処理部
２４  …  画像メモリー
２５  …  画像形成部
２６  …  操作部
２６ａ…  表示部
２７  …  ファクシミリ通信部
２８  …  通信部
２９  …  記憶部
２９ａ…  ログ出力選択テーブル
２９ｂ…  ログファイル
【図１】
2018072911.tif 000003
【図２】
2018072911.tif 000004
【図３】
2018072911.tif 000005
【図４】
2018072911.tif 000006
【図５】
2018072911.tif 000007
【図６】
2018072911.tif 000008
【図７】
2018072911.tif 000009