(57)【要約】【課題】異なるプログラミング言語を用いて開発された各ユーティリティーについての修正や機能追加を効率よく行う。【解決手段】ＸＭＬ形式からなるプラグインプログラム５１が組み込まれたサポートパッケージ５０を、ユーティリティー３１〜３３に関連付けて、画像形成装置１のＨＤＤ１５０に記憶させ、ユーティリティー３１〜３３内においては、ＸＭＬパーサー部３１２，３２２，３３２が、サポートパッケージ５０内のプラグインプログラム５１を、プログラム言語に適した状態にパースする。当該パースされたプラグインプログラムは、上記プログラム言語に対応して各ユーティリティーで実行可能な言語にインタープリター部３１３，３２３，３３３により変換される。プラグインマネージャー部３１１，３２１，３３１は、当該変換されたプラグインプログラムに従った処理を実行する。【選択図】図２
2016148928.tif 000002
【特許請求の範囲】
【請求項１】
予め定められたプログラム言語により作成されるユーティリティーソフトウェアであって、コンピューターを、
予め定められたデータ形式からなるプラグインプログラムを、前記プログラム言語に適した状態にパースするパーサー部と、
前記パーサー部によりパースされた前記プラグインプログラムを、前記プログラム言語に対応する予め定められた言語に変換するインタープリター部と、
前記パーサー部及び前記インタープリター部との間における当該プラグインプログラムの取り扱いを管理し、前記インタープリター部により変換された前記予め定められた言語からなる前記プラグインプログラムに従って処理を実行するプラグインマネージャー部と、して機能させるユーティリティーソフトウェア。
【請求項２】
予め定められたデータ形式からなるプラグインプログラムをパッケージに組み込む組込行程と、
前記組込行程で前記プラグインプログラムが組み込まれた前記パッケージを、ユーティリティーソフトウェアに関連付けて、コンピューターの記憶領域に記憶させる設定行程と、
前記ユーティリティーソフトウェア内において、前記パッケージに組み込まれている前記プラグインプログラムを、前記ユーティリティーソフトウェアの作成に用いられているプログラム言語に適した状態にパースするパース行程と、
前記パース行程でパースされた前記プラグインプログラムを、前記プログラム言語に対応して前記ユーティリティーソフトウェアで実行可能な言語に変換するインタープリター行程と、を備えたソフトウェアサポート方法。
【請求項３】
前記設定行程において、前記パッケージを複数のユーティリティーソフトウェアに関連付けて、コンピューターの記憶領域に記憶させ、
前記パース行程において、前記複数のユーティリティーソフトウェアのそれぞれの内部において、前記パッケージに組み込まれている前記プラグインプログラムを、前記各ユーティリティーソフトウェアの作成に用いられているそれぞれのプログラム言語に適した状態にパースし、
前記インタープリター行程において、前記各ユーティリティーソフトウェアのそれぞれの内部において、前記パース行程でパースされた前記プラグインプログラムを、前記プログラム言語に対応して前記ユーティリティーソフトウェアで実行可能な前記予め定められた言語に変換する、請求項２に記載のソフトウェアサポート方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーティリティーソフトウェア及びソフトウェアサポート方法に関し、特に、ユーティリティーソフトウェアの機能を追加又は修正する技術に関する。
【背景技術】
【０００２】
ユーティリティーソフトウェア（以下、単にユーティリティーという）の開発においては、Ｃ＋＋，ＪＡＶＡ，Ｃ♯，Ｃ／Ｃ＋＋等の様々なプログラミング言語が用いられる。これら各プログラミング言語は、処理内容に得手不得手があるため、ユーティリティーの使用環境や用途に応じて、開発に用いられるプログラミング言語が使い分けられる。
【０００３】
また、プリンターや複合機等の電子機器には多くのユーティリティーが実装されるが、各ユーティリティーのプログラミング言語が異なっていることも多い。例えば、１つの電子機器に、Ｃ＋＋，ＪＡＶＡ，Ｃ♯，Ｃ／Ｃ＋＋等の異なるプログラミング言語からなるそれぞれのユーティリティーが実装されることもある。
【０００４】
また、下記特許文献１には、開発者が、異なるプログラミング言語を使用して複数のプログラムを開発するときに、それぞれのプログラムに使用可能な共通言語ライブラリーを使用して、共通言語ファイルを生成する技術が示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２４０３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように異なるプログラミング言語を用いて開発され、例えば上記電子機器に実装される各ユーティリティーには、共通する機能であり同様のロジックが用いられる機能について、追加や修正が必要になる場合がある。このように各ユーティリティーで共通する機能について追加や修正を行う場合であっても、当該追加や修正に必要なプログラムは、各ユーティリティーに用いられているそれぞれのプログラミング言語、上記例で言えば、Ｃ＋＋，ＪＡＶＡ（登録商標），Ｃ♯，Ｃ／Ｃ＋＋を用いて、ユーティリティー別に作成する作業が必要である。このような作業は、同一のロジックからなるプログラムであるにも拘わらず、異なるプログラミング言語を用いてユーティリティー別に作成することになるため、新機能のコーディングや、ソースコードの作成や編集を行うにあたり作業に無駄が生じる。プリンターや複合機等の電子機器は、今日では、新製品が速いペースで開発されるため、当該電子機器に実装されている各ユーティリティーも速いペースでの開発を要するが、異なるプログラミング言語で各ユーティリティーが作成されているため、従前のユーティリティーを修正又は機能追加して新たなユーティリティーを作成することは容易ではない。
【０００７】
また、上記特許文献１に示される技術によっても、異なるプログラミング言語を用いて既に作成されている各ユーティリティーについて追加や修正を行う際には、各ユーティリティーで用いられたそれぞれのプログラミング言語を用いて、当該追加や修正に必要なプログラムを作成しなければならず、上記作業の無駄を解消することはできない。
【０００８】
本発明は、上記の事情に鑑みなされたものであり、異なるプログラミング言語を用いて開発された各ユーティリティーについての修正や機能追加を効率よく行うことを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一局面に係るユーティリティーソフトウェアは、予め定められたプログラム言語により作成されるユーティリティーソフトウェアであって、コンピューターを、
予め定められたデータ形式からなるプラグインプログラムを、前記プログラム言語に適した状態にパースするパーサー部と、
前記パーサー部によりパースされた前記プラグインプログラムを、前記プログラム言語に対応する予め定められた言語に変換するインタープリター部と、
前記パーサー部及び前記インタープリター部との間における当該プラグインプログラムの取り扱いを管理し、前記インタープリター部により変換された前記予め定められた言語からなる前記プラグインプログラムに従って処理を実行するプラグインマネージャー部と、して機能させるものである。
【００１０】
また、本発明の一局面に係るソフトウェアサポート方法は、予め定められたデータ形式からなるプラグインプログラムをパッケージに組み込む組込行程と、
前記組込行程で前記プラグインプログラムが組み込まれた前記パッケージを、ユーティリティーソフトウェアに関連付けて、コンピューターの記憶領域に記憶させる設定行程と、
前記ユーティリティーソフトウェア内において、前記パッケージに組み込まれている前記プラグインプログラムを、前記ユーティリティーソフトウェアの作成に用いられているプログラム言語に適した状態にパースするパース行程と、
前記パース行程でパースされた前記プラグインプログラムを、前記プログラム言語に対応して前記ユーティリティーソフトウェアで実行可能な言語に変換するインタープリター行程と、を備えたものである。
【００１１】
また、本発明の他の一局面に係るソフトウェアサポート方法としては、上記のソフトウェアサポート方法であって、前記設定行程において、前記パッケージを複数のユーティリティーソフトウェアに関連付けて、コンピューターの記憶領域に記憶させ、
前記パース行程において、前記複数のユーティリティーソフトウェアのそれぞれの内部において、前記パッケージに組み込まれている前記プラグインプログラムを、前記各ユーティリティーソフトウェアの作成に用いられているそれぞれのプログラム言語に適した状態にパースし、
前記インタープリター行程において、前記各ユーティリティーソフトウェアのそれぞれの内部において、前記パース行程でパースされた前記プラグインプログラムを、前記プログラム言語に対応して前記ユーティリティーソフトウェアで実行可能な前記予め定められた言語に変換するものがある。
【発明の効果】
【００１２】
本発明によれば、パーサー部がプラグインプログラムをパースし、インタープリター部が当該パースされたプラグインプログラムを、ユーティリティーソフトウェアの作成に用いられているプログラミング言語に対応した予め定められた言語に変換し、そして、プラグインマネージャー部が、当該予め定められた言語からなるプラグインプログラムに従って処理を実行するので、パーサー部に提供される上記プラグインプログラムが上記プログラミング言語で作成されていなくても、プラグインマネージャー部は、当該プラグインプログラムに従って処理を実行可能である。
【００１３】
このため、複数のユーティリティーに対して上記プラグインプログラムを用いる場合であっても、各ユーティリティーにおいて、そのユーティリティーの作成に用いられているプログラミング言語に対応した上記パーサー部、インタープリター部、及びプラグインマネージャー部による上記処理を行うことで、それぞれのユーティリティーソフトウェアにおいて、同一の上記プラグインプログラムを実行することが可能である。
【００１４】
これにより、ユーティリティーソフトウェアを修正又は機能追加する場合に、ユーティリティーの作成に用いられているプログラミング言語にこだわらずに、プラグインプログラムの開発が可能になるため、複数のユーティリティーソフトウェアに共通する機能について追加や修正を行う場合であっても、当該追加や修正に必要なプラグインプログラムを、各ユーティリティーに用いられているそれぞれのプログラミング言語を用いて作成する作業が不要となり、同一のプラグインプログラムを各ユーティリティーソフトウェアに用いることが可能になる。
【００１５】
このため、同一のロジックを有するプラグインプログラムを、異なるプログラミング言語が用いられたユーティリティーソフトウェア毎に作成するといった作業が不要になるので、新機能のコーディングや、ソースコードの作成や編集を無駄なく効率よく行うことができる。
【００１６】
従って、異なるプログラミング言語を用いて開発された各ユーティリティーソフトウェアについての修正や機能追加を効率よく行うことができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態に係るユーティリティーソフトウェアが用いられる画像形成装置の制御ユニットに関する構成を示す図である。
【図２】複数のユーティリティー部が同一のサポートパッケージに基づいた動作を行う場合の処理を概念的に示す図である。
【図３】ユーティリティーによる処理を示すフローチャートである。
【図４】ユーティリティーにおいてプラグインマネージャー部が行う処理を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の一実施形態に係るユーティリティーソフトウェア及びソフトウェアサポート方法について図面を参照して説明する。図１は、本発明の一実施形態に係るユーティリティーソフトウェアが用いられる画像形成装置の制御ユニットに関する構成を示す図である。
【００１９】
画像形成装置１は、制御ユニット１００と、ＨＤＤ１５０とを備えている。制御ユニット１００は、ＣＰＵ、ＲＡＭ、及びＲＯＭ等を備え、画像形成装置１の全体的な動作制御を司る。ＨＤＤ１５０は、大容量の記憶領域を備え、オペレーションシステム、アプリケーション、ユーティリティーソフトウェア、及びサポートパッケージを記憶している。なお、ＨＤＤ１５０に代えて、不揮発性のメモリーを用いてもよい。また、制御ユニット１００を有する画像形成装置１は、特許請求の範囲におけるコンピューターの一例である。
【００２０】
制御ユニット１００は、上記オペレーションシステムに従った制御の下、上記アプリケーション２０に従って動作することで、アプリケーション部１０１として機能する。
【００２１】
また、制御ユニット１００は、上記オペレーションシステムに従った制御の下、上記ユーティリティーソフトウェア（以下、単にユーティリティーという）に従った動作を行う。本実施形態では、ＨＤＤ１５０には、３つのユーティリティー３１〜３３が記憶されている。ユーティリティー３１〜３３は、それぞれ予め定められたプログラミング言語により作成され、上記アプリケーション２０が示す各種の処理に対して、補助的な処理を実行するためのプログラムである。
【００２２】
制御ユニット１００は、ユーティリティー３１〜３３に従って動作することにより、ユーティリティーソフトウェア部（以下、単にユーティリティー部という）１０２〜１０４として機能する。ユーティリティー３１〜３３は、それぞれ異なるプログラミング言語で作成されている。本実施形態では、ユーティリティー３１がＣ＋＋により作成され、ユーティリティー３２がＪＡＶＡにより作成され、ユーティリティー３３がＣ♯により作成されている例を示す。
【００２３】
ユーティリティー部１０２〜１０４は、アプリケーション部１０１と連携して、ユーティリティー３１〜３３のうち、対応するユーティリティーが示す各種の処理を実行する。なお、本実施形態に示す、ＨＤＤ１５０に記憶されるユーティリティーの数やそれらに用いられるプログラミング言語の種類は単なる一例である。
【００２４】
サポートパッケージ５０は、上記ユーティリティー３１〜３３のそれぞれに共通して用いられるプラグインプログラム５１（図２）を含んでいる。例えば、プラグインプログラム５１は、ＸＭＬ形式のデータ形式とされる。サポートパッケージ５０の製造過程において、予め定められたデータ形式としてのＸＭＬ形式からなるプラグインプログラム５１がサポートパッケージ５０に組み込まれる。
【００２５】
本実施形態では、当該ＸＭＬ形式からなるプラグインプログラム５１は、Ｐｙｔｈｏｎにより取り扱いが可能とされている。プラグインプログラム５１は、ユーティリティー３１〜３３において共通して実行される処理を示すものである。すなわち、ユーティリティー３１〜３３では、ＸＭＬ形式のファイルで表されたプログラムにより、同一のロジックからなる処理が実行される。具体的には、ユーティリティー部１０２〜１０４が、サポートパッケージ５０内の同一のプラグインプログラム５１に従った動作を行う。
【００２６】
次に、ユーティリティー部１０２〜１０４が、サポートパッケージ５０に基づいた動作を行う場合の処理を説明する。図２はユーティリティー部１０２〜１０４がサポートパッケージ５０に基づいた動作を行う場合の処理を概念的に示す図である。
【００２７】
上述したように、ＨＤＤ１５０には、Ｃ＋＋からなるユーティリティー３１と、ＪＡＶＡからなるユーティリティー３２と、Ｃ♯からなるユーティリティー３３とが記憶されている。制御ユニット１００は、上記アプリケーション２０の実行時にアプリケーション部１０１として機能すると共に、当該ユーティリティー３１〜３３に従って動作することで、ユーティリティー部１０２〜１０３として機能する。ＨＤＤ１５０には、ユーティリティー３１〜３３による機能を追加又は修正する場合に、画像形成装置１の操作者により、ユーティリティー３１〜３３に関連付けてサポートパッケージ５０が記憶される。
【００２８】
制御ユニット１００は、ユーティリティー３１に従った動作により、プラグインマネージャー部３１１と、ＸＭＬパーサー部３１２と、インタープリター部３１３とを備えたユーティリティー部１０２として機能する。なお、プラグインマネージャー部３１１、ＸＭＬパーサー部３１２、及びインタープリター部３１３による機能はユーティリティー部１０２に付加された処理であり、ユーティリティー部１０２は、プラグインマネージャー部３１１、ＸＭＬパーサー部３１２、及びインタープリター部３１３としての処理以外に、ユーティリティー３１に従って行うべき本来の処理も行う。
【００２９】
プラグインマネージャー部３１１、ＸＭＬパーサー部３１２、及びインタープリター部３１３として制御ユニット１００を機能させる各プログラムは、(1)ユーティリティー３１の作成時に、ユーティリティー３１に組み込まれていてもよいし、(2)ユーティリティー３１とは別個のファイルとして、ユーティリティー３１に関連付けてＨＤＤ１５０に記憶されるようにしてもよい。
【００３０】
プラグインマネージャー部３１１は、サポートパッケージ５０と、ＸＭＬパーサー部３１２と、インタープリター部３１３との間におけるデータの受け渡しと、インタープリター部３１３により変換されたプラグインプログラム５１に従って処理とを実行する。プラグインマネージャー部３１１は、サポートパッケージ５０から上記ＸＭＬ形式のプラグインプログラム５１を読み出し、当該読み出したＸＭＬ形式のプラグインプログラム５１をＸＭＬパーサー部３１２に送り、ＸＭＬパーサー部３１２でパースされたプラグインプログラム５１をインタープリター部３１３に送る。
【００３１】
ＸＭＬパーサー部３１２は、プラグインマネージャー部３１１を介して例えばＰｙｔｈｏｎによりＸＭＬ形式のプラグインプログラム５１を扱い、ユーティリティー３１の作成に用いられているプログラミング言語、すなわちＣ＋＋で扱うことが可能なデータ形式に変換（パース）する。
【００３２】
インタープリター部３１３は、ＸＭＬパーサー部３１２により変換された上記プラグインプログラム５１を、ユーティリティー３１の作成に用いられている言語Ｃ＋＋に適した言語からなるデータに変換する。本実施形態では、当該適した言語は、Ｐｙｔｈｏｎ Ｃ ＡＰＩ 又は Ｂｏｏｓｔ.Ｐｙｔｈｏｎのいずれかであるものとする。
【００３３】
プラグインマネージャー部３１１は、インタープリター部３１３によりＰｙｔｈｏｎ Ｃ ＡＰＩ 又は Ｂｏｏｓｔ.Ｐｙｔｈｏｎに変換されたプラグインプログラム５１に従った処理を実行する。
【００３４】
ＪＡＶＡにより作成されているユーティリティー３２も、同様に、制御ユニット１００を、プラグインマネージャー部３２１と、ＸＭＬパーサー部３２２と、インタープリター部３２３とを備えたユーティリティー部１０３として機能させる。これらプラグインマネージャー部３２１、ＸＭＬパーサー部３２２、及びインタープリター部３２３による機能は、ユーティリティー３１の場合と同様である。
【００３５】
ここで、上記サポートパッケージ５０内のプラグインプログラム５１は、ユーティリティー部１０２と、後述するユーティリティー部１０３，１０４にも用いられる。
【００３６】
但し、ＸＭＬパーサー部３２２は、サポートパッケージ５０内のＸＭＬ形式のプラグインプログラム５１を、例えばＰｙｔｈｏｎで取り扱い、ユーティリティー３２の作成に用いられている言語、すなわちＪＡＶＡで扱うことが可能なデータ形式に変換する。
【００３７】
また、インタープリター部３２３は、ＸＭＬパーサー部３２２により変換された上記プラグインプログラム５１を、ユーティリティー３１の作成に用いられている言語ＪＡＶＡに適した言語からなるデータに変換する。本実施形態では、当該適した言語を、Ｊｙｔｈｏｎとする。
【００３８】
Ｃ♯により作成されているユーティリティー３３も、同様に、制御ユニット１００を、プラグインマネージャー部３３１と、ＸＭＬパーサー部３３２と、インタープリター部３３３とを備えたユーティリティー部１０４として機能させる。これらプラグインマネージャー部３３１、ＸＭＬパーサー部３３２、及びインタープリター部３３３による機能は、ユーティリティー３１の場合と同様である。
【００３９】
但し、ＸＭＬパーサー部３３２は、サポートパッケージ５０内のＸＭＬ形式のプラグインプログラム５１を、例えばＰｙｔｈｏｎで取り扱い、ユーティリティー３３の作成に用いられている言語、すなわちＣ♯で扱うことが可能なデータ形式に変換する。
【００４０】
また、インタープリター部３３３は、ＸＭＬパーサー部３３２により変換された上記プラグインプログラム５１を、ユーティリティー３３の作成に用いられている言語Ｃ♯に適した言語からなるデータに変換する。本実施形態では、当該適した言語を、ＩｒｏｎＰｙｔｈｏｎとする。
【００４１】
次に、アプリケーション実行時におけるユーティリティーによる処理を説明する。図３はユーティリティーによる処理を示すフローチャートである。図４はユーティリティーにおいてプラグインマネージャー部が行う処理を示すフローチャートである。
【００４２】
最初に、ユーティリティー３１〜３３に追加又は修正したい処理を実行可能に作成されたＸＭＬ形式のプラグインプログラム５１を有するサポートパッケージ５０が、ユーティリティー３１〜３３に関連付けて、操作者により、ＨＤＤ１５０に記憶される（Ｓ１）。すなわち、サポートパッケージ５０を画像形成装置１のＨＤＤ１５０にインストールする。これにより、ユーティリティー３１〜３３はユーティリティー部１０２〜１０４として、サポートパッケージ５０内のＸＭＬ形式のプラグインプログラム５１が読み出し可能な状態となる。
【００４３】
そして、アプリケーション部１０１が動作しているときに、ユーティリティー部１０２〜１０４のいずれかにおいて、サポートパッケージ５０内のプラグインプログラム５１による処理の実行が必要になると、これらのうち、処理が必要になったユーティリティー部は、当該処理を行うために必要なプロパティーを示すプロパティーＩＤと、プロパティー名称とを、プラグインマネージャー部に出力する（♯１）。なお、ユーティリティー部１０２〜１０４による処理は同様であるため、以下には、ユーティリティー部１０２を例にして説明する。
【００４４】
プラグインマネージャー部３１１は、当該プロパティーＩＤ及びプロパティー名称をユーティリティー部１０２から受け取ると、サポートパッケージ５０内のＸＭＬ形式のプラグインプログラム５１のうち、当該プロパティーＩＤ及びプロパティー名称に対応するデータをプラグインプログラム５１から取り出してロードする（Ｓ２，♯２）。
【００４５】
続いて、プラグインマネージャー部３１１により読み出された上記データをＰｙｔｈｏｎを用いてＸＭＬパーサー部３１２が、Ｃ＋＋に適したデータ形式に変換（パース）する（Ｓ３，♯３）。
【００４６】
さらに、プラグインマネージャー部３１１は、ＸＭＬパーサー部３１２によりパースされたデータから、ユーティリティー部１０２により実行される処理の対象とされるロジックを読み出す（Ｓ４）。
【００４７】
そして、インタープリター部３１３が、上記ロジックを、Ｐｙｔｈｏｎ Ｃ ＡＰＩ 又は Ｂｏｏｓｔ.Ｐｙｔｈｏｎに変換する（Ｓ５）。
【００４８】
プラグインマネージャー部３１１は、上記変換されたロジックを画像形成装置１の機構に対して実行し（♯４）、画像形成装置１から、当該ロジックの実行に対する結果値を取得して（♯５）、ユーティリティー部１０２に出力する（♯６）。なお、ここで得られる結果値は、いずれのユーティリティー部にも互換性のある数値である。
【００４９】
以上のように、本実施形態によれば、操作者が、サポートパッケージ５０を画像形成装置１のＨＤＤ１５０にインストールすると、ユーティリティー部１０２においては、ＸＭＬパーサー部３１２がサポートパッケージ５０内のプラグインプログラム５１をパースし、インタープリター部３１３が当該パースされたプラグインプログラム５１を、ユーティリティー３１の作成に用いられているプログラミング言語に対応した言語に変換し、そして、プラグインマネージャー部３１１が、当該言語に変換されたプラグインプログラムに従って処理を実行するので、ＸＭＬパーサー部３１２に提供される上記プラグインプログラム５１が上記プログラミング言語で作成されていなくても、プラグインマネージャー部３１１は、当該プラグインプログラム５１に従った処理を実行可能である。
【００５０】
このため、複数のユーティリティー３１〜３３に対して同一の上記プラグインプログラム５１（同一言語を用いて作成されたプラグインプログラム５１）を用いる場合であっても、各ユーティリティー３１〜３３において、そのユーティリティーの作成に用いられているプログラミング言語に対応した上記ＸＭＬパーサー部、インタープリター部、及びプラグインマネージャー部による上記処理を行うことで、それぞれのユーティリティー部３１〜３３において、同一の上記プラグインプログラム５１に従った処理を実行することが可能になる。
【００５１】
これにより、ユーティリティー３１〜３３を修正又は機能追加する場合に、ユーティリティー３１〜３３の作成に用いられているプログラミング言語に拘らずに、プラグインプログラムの開発が可能になるため、複数のユーティリティー３１〜３３に共通する機能について追加や修正を行う場合であっても、当該追加や修正に必要なプラグインプログラムを、各ユーティリティーに用いられているそれぞれのプログラミング言語を用いて作成する作業が不要となり、同一のプラグインプログラムを各ユーティリティー３１〜３３に用いることが可能になる。
【００５２】
このため、同一のロジックを有するプラグインプログラム５１を、異なるプログラミング言語が用いられたユーティリティー毎に作成するといった作業が不要になるので、新機能のコーディングや、ソースコードの作成や編集を無駄なく効率よく行うことができる。
【００５３】
従って、異なるプログラミング言語を用いて開発された各ユーティリティーについての修正や機能追加を効率よく行うことができる。
【００５４】
なお、本発明は上記実施の形態の構成に限られず種々の変形が可能である。また、上記実施形態では、図１乃至図４を用いて上記実施形態により示した構成及び処理は、本発明の一実施形態に過ぎず、本発明を当該構成及び処理に限定する趣旨ではない。
【符号の説明】
【００５５】
１        画像形成装置
２０      アプリケーション
５０      サポートパッケージ
５１      プラグインプログラム
１００    制御ユニット
１０１    アプリケーション部
１０２，１０３，１０４  ユーティリティー部
３１，３２，３３        ユーティリティー  
３１１，３２１，３３１  プラグインマネージャー部
３１２，３２２，３３２  ＸＭＬパーサー部
３１３，３２３，３３３  インタープリター部
【図１】
2016148928.tif 000003
【図２】
2016148928.tif 000004
【図３】
2016148928.tif 000005
【図４】
2016148928.tif 000006