(57)【要約】【課題】複数の設定項目及びこれら設定項目の所属する設定値の設定管理を効率よく実現する。【解決手段】設定項目を管理する設定項目クラスと、設定項目に所属する設定値を管理する設定値クラスと、設定値クラスを承継し且つ設定項目クラスと対応関係を保持可能なフォルダ設定値クラスと、を備え、設定項目クラスは、フォルダ設定値クラスが管理する設定値とツリー構造の下位階層として対応付けられた設定項目を管理する。これにより、設定項目及び設定値をツリー構造で保持できるので、設定項目及び設定値の設定管理を効率良く実現できる。【選択図】        図１５
2007158929.tif 000002
【特許請求の範囲】
【請求項１】
利用者が設定する対象となる設定項目を管理する設定項目管理手段と、
前記設定項目管理手段が管理する前記設定項目に所属する設定値を管理する設定値管理手段と、を備え、
前記設定項目管理手段は、前記設定値管理手段が管理する前記設定値と木構造の下位階層として対応付けられた設定項目を管理すること、
を特徴とする設定管理装置。
【請求項２】
前記設定項目管理手段は、前記設定値管理手段が管理する前記設定値の選択状態が変更された場合に、前記設定値と前記下位階層として対応付けて管理されている前記設定項目が利用者からの設定を受け付けるか否か変更することを特徴とする請求項１に記載の設定管理装置。
【請求項３】
前記設定値管理手段が管理する複数の設定値であって、異なる前記設定項目に所属しているが同時に設定されることが禁止されている設定値間において、一方の設定値が設定された場合、他方の設定値の選択状態に基づいて、どちらか一つ以上の該設定値に対して行われる所定の設定を有する組合せルールを保持する組合せルール手段を、さらに備えたことを特徴とする請求項１又は２に記載の設定管理装置。
【請求項４】
前記組合せルール手段は、前記組合せルールの適用元の前記設定値管理手段から呼び出された際に、前記設定の適用先の前記設定値管理手段を有する前記設定項目管理手段に対し、前記組み合わせルールの適用を依頼することを特徴とする請求項３に記載の設定管理装置。
【請求項５】
前記設定値管理手段の情報を承継し、前記設定項目管理手段を集約する関係を保持するフォルダ設定値管理手段をさらに備え、
前記設定項目管理手段は、前記フォルダ設定値管理手段との間で集約される関係を保持することで、前記設定値管理手段が管理する前記設定値と木構造の下位階層として対応付けられること、を特徴とする請求項１乃至４のいずれか一つに記載の設定管理装置。
【請求項６】
前記設定値管理手段は、前記設定項目に所属する設定値が数値であることを特徴とする請求項１乃至５のいずれか一つに記載の設定管理装置。
【請求項７】
前記設定値管理手段は、前記設定項目に所属する設定値が文字列であることを特徴とする請求項１乃至５のいずれか一つに記載の設定管理装置。
【請求項８】
利用者が設定する対象となる設定項目と、該設定項目に所属する設定値を管理する手段として、コンピュータを機能させるプログラムであって、
利用者が設定する対象となる設定項目を管理する設定項目管理手段と、
前記設定項目管理手段が管理する前記設定項目に所属する設定値を管理する設定値管理手段と、としてコンピュータに機能させ、
前記設定項目管理手段は、前記設定値管理手段が管理する前記設定値と木構造の下位階層として対応付けられた設定項目を管理すること、
を特徴とする設定管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設定管理装置及び設定管理プログラムに関するものであり、特に複数の設定値が所属する設定項目を管理する技術に関するものである。
【背景技術】
【０００２】
近年、プリンタ、コピーおよびスキャナなどの複数の機能を一つの筐体内に収納した複合機など、装置が多機能化していく傾向にある。
【０００３】
これら多機能化された装置においては、機能毎に複数の設定項目を有している。そして、これら設定項目毎に、それぞれ異なる設定値が所属している。そして、これら異なる設定項目に所属する設定値同士では、互いに影響し合うものもあり、同時に設定できないものも多い。このため、ユーザから同時に設定できない設定項目の設定値の選択を受け付けた場合のことを考慮して、優先順位等を予め定めて保持しておく必要がある。
【０００４】
そこで、特許文献１では、機能の有効／無効と、他の全ての機能の有効／無効との対応関係をマトリクス状に保持しているテーブルで、機能間の優先順位等を保持することが提案されている。そして、このテーブルを参照することで、ユーザから機能の有効／無効にする選択を受け付けた際に、当該機能あるいは他の機能を有効にするか否か判断することが可能となる。
【０００５】
【特許文献１】特開２０００−１３８７７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、この特許文献１で開示されている発明のように、機能の有効／無効の組合せを全て保持すると、近年の多機能化によりテーブルサイズが膨大になるという問題点があった。
【０００７】
本発明は、上記に鑑みてなされたものであって、複数の設定項目及びこれら設定項目の所属する設定値の設定管理を効率よく実現することができる設定管理装置及び設定管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、利用者が設定する対象となる設定項目を管理する設定項目管理手段と、前記設定項目管理手段が管理する前記設定項目に所属する設定値を管理する設定値管理手段と、を備え、前記設定項目管理手段は、前記設定値管理手段が管理する前記設定値と木構造の下位階層として対応付けられた設定項目を管理すること、を特徴とする。
【０００９】
また、請求項２にかかる発明は、請求項１にかかる発明において、前記設定項目管理手段は、前記設定値管理手段が管理する前記設定値の選択状態が変更された場合に、前記設定値と前記下位階層として対応付けて管理されている前記設定項目が利用者からの設定を受け付けるか否か変更することを特徴とする。
【００１０】
また、請求項３にかかる発明は、請求項１または２にかかる発明において、前記設定値管理手段が管理する複数の設定値であって、異なる前記設定項目に所属しているが同時に設定されることが禁止されている設定値間において、一方の設定値が設定された場合、他方の設定値の選択状態に基づいて、どちらか一つ以上の該設定値に対して行われる所定の設定を有する組合せルールを保持する組合せルール手段を、さらに備えたことを特徴とする。
【００１１】
また、請求項４にかかる発明は、請求項３にかかる発明において、前記組合せルール手段は、前記組合せルールの適用元の前記設定値管理手段から呼び出された際に、前記設定の適用先の前記設定値管理手段を有する前記設定項目管理手段に対し、前記組み合わせルールの適用を依頼することを特徴とする。
【００１２】
また、請求項５にかかる発明は、請求項１乃至４のいずれか一つにかかる発明において、前記設定値管理手段の情報を承継し、前記設定項目管理手段を集約する関係を保持するフォルダ設定値管理手段をさらに備え、前記設定項目管理手段は、前記フォルダ設定値管理手段との間で集約される関係を保持することで、前記設定値管理手段が管理する前記設定値と木構造の下位階層として対応付けられること、を特徴とする。
【００１３】
また、請求項６にかかる発明は、請求項１乃至５のいずれか一つにかかる発明において、前記設定値管理手段は、前記設定項目に所属する設定値が数値であることを特徴とする。
【００１４】
また、請求項７にかかる発明は、請求項１乃至５のいずれか一つにかかる発明において、前記設定値管理手段は、前記設定項目に所属する設定値が文字列であることを特徴とする。
【００１５】
また、請求項８にかかる発明は、利用者が設定する対象となる設定項目と、該設定項目に所属する設定値を管理する手段として、コンピュータを機能させるプログラムであって、利用者が設定する対象となる設定項目を管理する設定項目管理手段と、前記設定項目管理手段が管理する前記設定項目に所属する設定値を管理する設定値管理手段と、としてコンピュータに機能させ、前記設定項目管理手段は、前記設定値管理手段が管理する前記設定値と木構造の下位階層として対応付けられた設定項目を管理すること、を特徴とする。
【発明の効果】
【００１６】
請求項１にかかる発明によれば、設定値の下位階層に設定項目を備えることで、設定項目及び設定値の管理を効率よく実現することができるという効果を奏する。
【００１７】
また、請求項２にかかる発明によれば、設定値の設定状態が変更された際に、設定値の下位の階層の設定項目の選択を受け付けることが可能か否か変更されるので、複数の設定値間の設定状態により生じる矛盾を防止することができるという効果を奏する。
【００１８】
また、請求項３にかかる発明によれば、設定状態の矛盾を防止するために設定値に対して行う設定を効率的に管理することができるという効果を奏する。
【００１９】
また、請求項４にかかる発明によれば、組み合わせルールの適用元の設定値管理手段から呼び出された際に、設定状態を変更する際に行う設定として、適用先の設定値管理手段を有する設定項目管理手段に対し、かかる組み合わせルールの適用を依頼する構成を備えたので、組み合わせルールを効率的に適用することができるという効果を奏する。
【００２０】
また、請求項５にかかる発明によれば、フォルダ設定値管理手段と設定項目管理手段との間で集約関係を保持することで、木構造を容易に形成することが可能となり、設定項目及び設定値の設定管理を効率よく実現することができるという効果を奏する。
【００２１】
また、請求項６にかかる発明によれば、設定項目に所属する設定値として数値を管理できるので、設定値として様々な情報を一元管理することができるという効果を奏する。
【００２２】
また、請求項７にかかる発明によれば、設定項目に所属する設定値として文字列を管理できるので、設定値として様々な情報を一元管理することができるという効果を奏する。
【００２３】
また、請求項８にかかる発明によれば、設定値の下位階層に設定項目を備えることで、設定項目及び設定値の管理を効率よく実現することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２４】
以下に添付図面を参照して、この発明にかかる設定管理装置及び設定管理プログラムの最良な実施の形態を詳細に説明する。なお、本実施の形態では、この発明を画像形成装置に適用した場合について説明するが、本発明はこれに限らず、設定管理をおこなう各種装置に適用することができる。
【００２５】
まず、本実施の形態に係る画像形成装置（以下「複合機」と言う）１の概要について図１、図２、図３、図１８および図１９を用いて説明する。図１は、本実施の形態に係る複合機１を取り巻くネットワーク環境を説明するためのネットワーク図であり、図２は、図１に示した複合機１のハードウェア構成を示すブロック図であり、図３は、図１に示した複合機１のソフトウェアとハードウェアの関係を説明するための説明図であり、図１８は、複合機１に搭載されるソフトウェア構成の変遷を説明するための説明図であり、図１９は、従来の複合機のソフトウェアとハードウェアの関係を説明するための説明図である。
【００２６】
図１に示すように、近年のネットワーク化の進展により、オフィスなどに設けられたパーソナルコンピュータ（ＰＣ）などの機器は、ＬＡＮ（Local Area Network）などのネットワークに接続され、相互に通信することが通常となった。たとえば、本図に示したように、かかるネットワークには、クライアントＰＣ、ＳＭＴＰ（Simple Mail Transfer Protocol）サーバ、ＦＴＰ（File Transfer Protocol）サーバ、サーバＰＣなどが接続され、電子メールの送受信やファイル転送をすることができ、モデム接続された配信サーバは、オフィス外のファックス装置と通信することができる。
【００２７】
このようなネットワーク化の進展に伴い、複合機１もかかるネットワークに接続され、ＰＣ等の機器と相互に通信することが可能となり、ハードディスク等の記憶装置を内蔵することで、いわゆるネットワーク複合機へと進化し、ユーザの様々なニーズに応えることができるようになった。
【００２８】
たとえば、複合機１は、通常のコピー機能に加えて、クライアントＰＣからの印刷要求により文書データ等を印刷するプリンタ機能、クライアントＰＣからのファックス要求により文書データ等をサーバＰＣに接続されたモデムを経由して他のオフィスのファックス機器に送信するファックス機能、受信したファックス文書やコピー文書を内蔵したハードディスクに蓄積する蓄積機能などを有するようになった。
【００２９】
こうして複合化とネットワーク化の進展により必要となった多くの機能を実現するため、複合機１に搭載されるソフトウェアは、規模が大きく、複雑なものとなっている。そして、それにともなって、それらのソフトウェアの開発と維持管理のための工数も大幅に増大している。
【００３０】
図２は、かかる複合機１のハードウェア構成を示すブロック図である。本図に示すように、この複合機１は、コントローラ１０とエンジン部（Engine）６０とをＰＣＩ（Peripheral Component Interconnect）バスで接続した構成となる。コントローラ１０は、複合機１全体の制御と描画、通信、操作部２０からの入力を制御するコントローラである。エンジン部６０は、ＰＣＩバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、１ドラムカラープロッタ、４ドラムカラープロッタ、スキャナまたはファックスユニットなどである。なお、このエンジン部６０には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部分が含まれる。
【００３１】
コントローラ１０は、ＣＰＵ１１と、ノースブリッジ（ＮＢ）１３と、システムメモリ（ＭＥＭ−Ｐ）１２と、サウスブリッジ（ＳＢ）１４と、ローカルメモリ（ＭＥＭ−Ｃ）１７と、ＡＳＩＣ（Application Specific Integrated Circuit）１６と、ハードディスクドライブ（ＨＤＤ）１８とを有し、ノースブリッジ（ＮＢ）１３とＡＳＩＣ１６との間をＡＧＰ（Accelerated Graphics Port）バス１５で接続した構成となる。また、ＭＥＭ−Ｐ１２は、ＲＯＭ（Read Only Memory）１２ａと、ＲＡＭ(Random Access Memory)１２ｂとをさらに有する。
【００３２】
ＣＰＵ１１は、複合機１の全体制御をおこなうものであり、ＮＢ１３、ＭＥＭ−Ｐ１２およびＳＢ１４からなるチップセットを有し、このチップセットを介して他の機器と接続される。
【００３３】
ＮＢ１３は、ＣＰＵ１１とＭＥＭ−Ｐ１２、ＳＢ１４、ＡＧＰ１５とを接続するためのブリッジであり、ＭＥＭ−Ｐ１２に対する読み書きなどを制御するメモリコントローラと、ＰＣＩマスタおよびＡＧＰターゲットとを有する。
【００３４】
ＭＥＭ−Ｐ１２は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ＲＯＭ１２ａとＲＡＭ１２ｂとからなる。ＲＯＭ１２ａは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ１２ｂは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
【００３５】
ＳＢ１４は、ＮＢ１３とＰＣＩデバイス、周辺デバイスとを接続するためのブリッジである。このＳＢ１４は、ＰＣＩバスを介してＮＢ１３と接続されており、このＰＣＩバスには、ネットワークインターフェース（Ｉ／Ｆ）部なども接続される。
【００３６】
ＡＳＩＣ１６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ（Integrated Circuit）であり、ＡＧＰ１５、ＰＣＩバス、ＨＤＤ１８およびＭＥＭ−Ｃ１７をそれぞれ接続するブリッジの役割を有する。このＡＳＩＣ１６は、ＰＣＩターゲットおよびＡＧＰマスタと、ＡＳＩＣ１６の中核をなすアービタ（ＡＲＢ）と、ＭＥＭ−Ｃ１７を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のＤＭＡＣ（Direct Memory Access Controller）と、エンジン部６０との間でＰＣＩバスを介したデータ転送をおこなうＰＣＩユニットとからなる。このＡＳＩＣ１６には、ＰＣＩバスを介してＦＣＵ（Fax Control Unit）３０、ＵＳＢ（Universal Serial Bus）４０、ＩＥＥＥ１３９４（the Institute of Electrical and Electronics Engineers 1394）インターフェース５０が接続される。
【００３７】
ＭＥＭ−Ｃ１７は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、ＨＤＤ（Hard Disk Drive）１８は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
【００３８】
ＡＧＰ１５は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、ＭＥＭ−Ｐ１２に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
【００３９】
図３は、かかる複合機１のハードウェアおよびソフトウェアの構成を示した概念図であり、具体的には、後述する本実施形態の特徴部分である設定管理部１１１ｂを含む統合アプリケーション１１０と、ソフトウェア１００およびハードウェア２００の階層関係を示している。本図に示すように、ハードウェア２００は、ハードウェアリソース２０１を有し、このハードウェアリソース２０１は、スキャナ２０１ａ、プロッタ２０１ｂ、ＨＤＤ（Hard Disk Drive）２０１ｃ、ネットワーク２０１ｄおよびその他のリソース２０１ｅを有する。なお、その他のリソース２０１ｅは、２０１ａ〜２０１ｄ以外のハードウェアリソース２０１のことであり、たとえば、操作パネルなどの入出力デバイスを示す。
【００４０】
また、かかるハードウェア２００に搭載されるソフトウェア１００は階層化されており、オペレーティングシステム１０３の上層にはサービス層１０２が構築され、このサービス層１０２の上層にはアプリケーション層１０３が構築されている。そして、サービス層１０２は、各ハードウェアリソース（２０１ａ〜２０１ｅ）を制御するドライバーに相当する、スキャナ制御１０２部ａ、プロッタ制御部１０２ｂ、蓄積制御部１０２ｃ、配信／メール送受信制御部１０２ｄ、ＦＡＸ送受信制御部１０２ｅ、ネットワーク通信制御部１０２ｆおよびその他の制御部１０２ｇを有する。
【００４１】
ここで、図３に示したソフトウェア１００が、かかる階層構造をとるに至った経緯について、図１８および図１９を用いて説明する。図１８は、複合機１に搭載されるソフトウェア構成の変遷を示す説明図である。図１８のサービス層分離前アプリケーション５０１に示すように、多機能化した複合機１に搭載されるソフトウェアは、コピーアプリケーション、ＦＡＸアプリケーション、スキャナアプリケーションなどの機能別に独立したアプリケーションとして作成され、図３に示したオペレーティングシステム１０３上で動作していた。
【００４２】
しかしながら、これらのアプリケーションは、ハードウェアリソースを制御するドライバー（サービス層１０２）を含んでいたため、各アプリケーションには重複した処理が存在していた。その結果、各アプリケーションの規模は大きなものとなっていた。
【００４３】
そこで、図１８のサービス層分離後アプリケーション５０２に示すように、サービス層分離前アプリケーション５０１のサービス層１０２相当部分を括りだしサービス層１０２とするとともに、各アプリケーションは、このサービス層１０２の上層であるアプリケーション層１０１に構築する構成とした。かかる階層化構成をとることにより、各アプリケーションはスリム化され開発労力も軽減された。
【００４４】
しかしながら、複合機１のネットワーク化、多機能化がさらに進展するに従って、各アプリケーションに共通処理部分が存在することが問題となってきた。具体的には、アプリケーション層１０１の各アプリケーション、たとえば、コピーアプリケーションやスキャナアプリケーションなどは、それぞれ、スキャナ制御部１０２ａや蓄積制御部１０２ｃといったドライバーと通信をおこなう処理や、各種機能の設定管理などの同様な処理を内部に有していた。このように、同様な処理を各アプリケーションが有していると、各アプリケーションの開発規模が大きくなるとともに、サービス層の仕様変更に対する各アプリケーションの改修規模が大きくなることが問題となってきた。
【００４５】
この問題を解決するため、図１８の共通ルーチン分離アプリケーション５０３に示すように、かかる同様な処理（共通処理部分）を共通ルーチンとして括りだすことも考えられた。しかしながら、かかる共通ルーチンは、各アプリケーションにおいて微妙に異なる処理を共通化しようとするものであるため、共通ルーチン内部の処理は複雑なものとなってしまう。また、たとえば、プリンタアプリケーションなどの新規アプリケーションを追加する場合においては、かかる新規アプリケーションに適応するために、共通ルーチンの改修が必要となる。
【００４６】
しかし、共通ルーチンの内部処理は複雑であるため、改修要員が処理を把握することが困難となり、改修規模の増大や、改修ミスによる他のアプリケーションへの影響が懸念された。
【００４７】
そこで、図１８のオブジェクト指向アプリケーション５０４に示すように、オブジェクト指向による設計手法（オブジェクトモデリング）により、かかる複数のアプリケーションを、統合アプリケーション１１０に統合することとした。具体的には、各アプリケーションの共通処理部分をオブジェクトモデルとして抽出し、このオブジェクトモデルの集合体から、統合アプリケーション１１０を構成する。そして、従来のコピー機能やスキャナ機能といった機能は、かかるオブジェクトモデルの協調関係によって実現する。
【００４８】
このような構成をとることにより、たとえばプリンタ機能のような新規機能の追加は、かかるオブジェクトモデルに属するクラスのサブクラス化などにより対処できる。このため、改修部分が明確となり、改修による他の機能への影響を小さくすることができる。また、オブジェクトモデリングによるプログラムは、従来の手続き型プログラムに比べて、処理の把握が容易であるため、改修要員が処理を把握することも容易となり、改修規模の削減や、改修ミスによる他のアプリケーションへの影響を小さくすることができる。
【００４９】
図１９は、図１８に示したサービス層分離後アプリケーション５０２の段階における従来のアプリケーションの構成と、かかるアプリケーションとサービス層１０２の各ドライバーの関係を示した説明図である。本図に示すように、アプリケーション層１０１は、コピーアプリケーション１２０、スキャナアプリケーション１３０、ファックスアプリケーション１４０およびプリンタアプリケーション１５０を有する。
【００５０】
たとえば、コピーアプリケーション１２０は、コピー機能を実現するために、スキャナ制御部１０２ａ、プロッタ制御部１０２ｂ、蓄積制御部１０２ｃおよびその他の制御部１０２ｇとデータの送受信をおこなう。また、ファックスアプリケーション１４０は、ファックス機能を実現するために、プロッタ制御部１０２ｂ、蓄積制御部１０２ｃ、ＦＡＸ送受信制御部１０２ｅ、ネットワーク通信制御部１０２ｆおよびその他の制御部１０２ｇとデータの送受信をおこなう。このように、アプリケーション層１０１の各アプリケーションとサービス層１０２の各ドライバー間の通信は、複雑なものとなっていた。
【００５１】
図３の説明に戻ると、上述したオブジェクトモデリングにより、アプリケーション層１０１に存在した複数のアプリケーションは、統合アプリケーション１１０に統合されている。そして、各アプリケーションが重複しておこなっていた各ドライバーとの通信処理は、統合アプリケーション１１０を構成する所定のオブジェクトモデルにおこなわせるように構成したことにより、アプリケーション層１０１のアプリケーションと、サービス層１０２の各ドライバー間の通信は、図１９と比較して単純になっている。
【００５２】
次に、統合アプリケーション１１０の内部構成について説明する。図４は、後述する本実施形態の特徴部分である設定管理部１１１ｂの統合アプリケーション１１０における位置づけと、かかる統合アプリケーション１１０の概要構成を説明するための説明図である。
【００５３】
図４に示すように、統合アプリケーション１１０は、操作系サブシステム１１１と、管理系サブシステム１１２および実行系サブシステム１１３とを有する。操作系サブシステム１１１は、マンマシンインタフェースを担当するソフトウェア群である。具体的には、この操作系サブシステム１１１は、ユーザの要求の受付サービスをおこなうとともに、かかる要求に対応した成果物（たとえば、コピーした記録紙）の品質、コストおよび納期を考慮したうえで、ユーザに対して情報提供サービスをおこなう。
【００５４】
かかる操作系サブシステム１１１は、操作受付部１１１ａと後述する本実施形態の特徴部分である設定管理部１１１ｂとを有する。操作受付部１１１ａは、ユーザの操作により要求を受け付け、サービスの内容に応じて処理を振り分けるソフトウェア群である。
【００５５】
また、本実施形態の特徴部分である設定管理部１１１ｂは、かかる操作受付部１１１ａから、文書操作（たとえば、コピー）の設定に関する要求を受け取り、かかる設定の組み合わせに矛盾がないよう管理するソフトウェア群である。
【００５６】
管理系サブシステム１１２は、複合機１の資源を管理するソフトウェア群である。具体的には、この管理系サブシステム１１２は、ハードウェアリソース２０１およびこのハードウェアリソース２０１が保持するデータ状態の管理サービスをおこなう。
【００５７】
実行系サブシステム１１３は、ユーザ要求の実行を担当するソフトウェア群である。具体的には、この実行系サブシステム１１３は、コピーなどの文書操作要求から成果物の出力までの実行サービスをおこなう。そして、操作系サブシステム１１１、管理系サブシステム１１２および実行系サブシステム１１３は、必要に応じて相互に処理を依頼し結果を受け取ることで、統合アプリケーション１１０全体として複合機１に必要とされるサービス提供をおこなう。
【００５８】
図５は、図４に示した各サブシステムを、ＵＭＬ（Unified Modeling Language）のクラス図（ＵＭＬクラス図）に置き換えた図である。ここで、ＵＭＬとは、ＯＭＧ（Object Management Group）が仕様を策定しているシステムモデリング言語であり、モデリングの成果を記述する記法を定義したものである。このＵＭＬは、オブジェクト指向によるソフトウェアの設計において広く用いられている。
【００５９】
図５に示すように、統合アプリケーション１１０は複数のパッケージを有し、また、この統合アプリケーション１１０自体もひとつのパッケージとなっている。ここで、パッケージとはＵＭＬモデルの各構成要素（シンボル）をグループ化したものであり、左上にタブのついたフォルダの形をしたシンボルで表現される。また、各パッケージを相互に結ぶ直線は、各パッケージ間に処理依頼などの関連があることを示している。
【００６０】
図５に示したように、統合アプリケーション１１０は、操作系サブシステム１１１、管理系サブシステム１１２および実行系サブシステム１１３の３つのパッケージを内部に有するパッケージである。さらに、操作系サブシステム１１１は、操作受付部１１１ａおよび設定管理部１１１ｂの２つのパッケージを内部に有するパッケージである。そして、操作系サブシステム１１１、管理系サブシステム１１２および実行系サブシステム１１３を相互に結ぶ直線は、各パッケージ間に処理依頼（たとえば、メッセージ送受信）などの関連があることを示している。なお、操作系サブシステム１１１、管理系サブシステム１１２および実行系サブシステム１１３のタブの右端に記された記号は、かかるパッケージがサブシステムであることを示すＵＭＬのシンボルである。
【００６１】
次に、本実施形態の特徴部分である設定管理部１１１ｂについて詳細に説明する。なお、設定管理部１１１ｂは、オブジェクト指向に基づいて設計するにあたって、既存の処理を単純にオブジェクト化せず、機能追加や改修をより一層容易におこなうことができるようにオブジェクトモデルを構成した。かかるオブジェクトモデルの構成について図６〜図１０を用いて説明しておく。
【００６２】
図６は、複合機１の操作パネル４００の一例を示した図である。本図に示すように、かかる操作パネル４００は、初期設定キー４０１、コピーキー４０２、コピーサーバーキー４０３、プリンタキー４０４、送信キー４０５、テンキー４０６、クリア／ストップキー４０７、スタートキー４０８、予熱キー４０９、リセットキー４１０および液晶タッチパネル４２０を有する。
【００６３】
初期設定キー４０１をタッチすると、液晶タッチパネル４２０に初期設定用のメニューが表示され、かかるメニューにおいては、収納される用紙サイズなどを設定することができる。また、コピーをしたい場合にはコピーキー４０２を、コピー結果を複合機１に蓄積したい場合にはコピーサーバーキー４０３を、プリンタに係る操作をおこないたい場合には、プリンタキー４０４を、ファックスや蓄積画像などの送信をしたい場合には送信キー４０５を、それぞれタッチすると、液晶タッチパネル４２０に対応したメニューが表示される。
【００６４】
図７は液晶タッチパネル４２０に表示されるメニューの一例である。このメニューは、図６に示したコピーキー４０２をタッチすることにより表示される。図７に示すように、この液晶タッチパネル４２０には、入力モード４２１として、紙原稿４２１ａタブおよび電子原稿４２１ｂタブが表示され、紙原稿４２１ａタブを選択した場合には、入力モードエリア４２２には、濃度設定部４２２ａおよび特殊原稿設定部４２２ｂが表示される。また、出力モード４２３として、印刷４２３ａタブ、保存４２３ｂタブおよび送信４２３ｃタブが表示され、印刷４２３ａタブを選択した場合には、出力モードエリア４２４には、トレイ選択部４２４ａおよび倍率設定部４２４ｂが表示される。
【００６５】
たとえば、かかるトレイ選択部４２４ａでは、「トレイ１」〜「トレイ４」のいずれか一つを選択でき、倍率設定部４２４ｂでは、「等倍」あるいは「用紙指定変倍」のいずれか一つを選択できる。ここで、択一型の選択肢を有するトレイ選択部４２４ａなどを「設定項目」と呼び、択一型の選択肢「トレイ１」〜「トレイ４」のそれぞれを、「設定値」と呼ぶこととする。
【００６６】
図８は、設定値組み合わせテーブル４３０を説明するための説明図である。従来、かかる「設定値」の組み合わせ関係を管理するために、図８に示すような設定値組み合わせテーブル４３０を用いることが一般的であった。設定値組み合わせテーブル４３０では、すべての「設定値」を羅列して２次元のテーブルとし、同時選択が不可能な設定値の組み合わせを管理する。たとえば、設定値Ａと設定値Ｂとは同時に選択することができない組み合わせであり、かつ、後に選択した設定値が優先されるのであれば、かかる組み合わせ関係を「●」で示したセルで管理する。また、設定値Ａと設定値Ｄとは同時に選択することができない組み合わせであり、かつ、先に選択した設定値が優先されるのであれば、かかる組み合わせ関係を「×」で示したセルで管理する。なお、「●」や「×」の記号がないセルは、同時選択が可能な設定値の組み合わせをあらわす。
【００６７】
しかしながら、複合機１の多機能化により、かかる複合機１が多くの設定値を有するようになってくると、これにともなって、設定値組み合わせテーブル４３０のサイズは大規模化してきた。このため、複合機１の設計変更や機能追加をおこなう際に、かかるテーブルの修正ミスが生じやすくなり各機能の組み合わせ制御が正しくおこなわれない危険性が高まってきた。
【００６８】
そこで、この設定値組み合わせテーブル４３０を「設定対象」ごとに分割し、各「設定対象」と、かかる「設定対象」に属する「設定項目」と、かかる「設定項目」に属し択一的に選択可能な「設定値」との階層関係（階層モデル）であらわすこととした。ここで、「設定対象」とは、図７に示したメニュー例の各タブ（４２１ａなど）のように、「紙原稿による入力」、「電子原稿による入力」、「印刷物としての出力」、「保存（蓄積）文書としての出力」といった、機能別に区分けされた「設定項目」のグループのことをあらわす。
【００６９】
図９は、組み合わせテーブルから階層モデルへの置き換えについて説明するための説明図である。本図に示す紙原稿テーブル４４０は、設定値組み合わせテーブル４３０から「設定対象」が「紙原稿による入力」である部分を分割したものである。この紙原稿テーブル４４０の「設定項目−設定値モデル」への置き換えは、以下の手順によりおこなう。
【００７０】
すなわち、本図に示した転写面４４０ａ部分には、「片面」および「両面」の選択肢があり、これらの選択肢は同時に選択することはできない。したがって、転写面４４０ａ部分を、本図に示した転写面階層モデル４４１に置き換える。この転写面階層モデル４４１は、「設定項目」に相当する「転写面」配下に、択一的に選択可能な「設定値」に相当する「片面」および「両面」を有する階層構造（ツリー構造）であらわされる。
【００７１】
同様に、紙原稿テーブル４４０の原稿サイズ４４０ｂを、原稿サイズ階層モデル４４２に置き換える。このような置き換え作業を他の「設定対象」についてもおこなうことにより、設定値組み合わせテーブル４３０全体を「設定項目−設定値モデル」に置き換えていく。
【００７２】
図１０は、組み合わせルールの適用について説明するための説明図である。本図に示す印刷物テーブル４５０は、説明を容易にするために、設定値組み合わせテーブル４３０から、「設定対象」が「印刷物としての出力」である部分を分割したものである。なお、画像コピー４５０ａを画像コピー階層モデル４５１に置き換え、転写サイズ４５０ｂを転写サイズ階層モデル４５２に置き換える点は、上述した図９の説明と同様である。
【００７３】
しかしながら、本図に示した画像コピー４５０ａと転写サイズ４５０ｂとの間には、機能（設定項目）間にまたがった「組み合わせ制限４５０ｃ」が存在する。すなわち、画像コピーの「リピート」を先に選択した場合には、転写サイズの「定型」を後に選択することはできない。このような複数機能間の組み合わせ制限を表現するために、異なる機能（設定項目）に属する「設定値」間の組み合わせ制限を一括して管理する「組み合わせルール４６０」を用いることとした。なお、設定項目をまたいだ設定値間の選択制限がある場合にのみ、この組み合わせルール４６０を用いることとしたので、設定値の選択関係の整合性を効率的に保つことが可能となる。
【００７４】
このようなオブジェクトモデリングにより、従来の設定値組み合わせテーブル４３０を、「設定項目−設定値モデル」を用いて分割し、二次元テーブルのサーチをツリー構造のサーチに置き換えたので、設定値間の選択制限のサーチ処理を効率良くおこなうことができる。また、設定値を羅列したテーブル管理を、設定値の階層管理におきかえたことにより、設定値間の関係が明確になり効率的なメンテナンスをおこなうことができる。さらに、異なる設定項目に属する設定値間に選択制限がある場合にのみ、組み合わせルール４６０を用いることとしたので、選択制限のサーチ処理の効率をおとすことなく、組み合わせルールを適用することができる。
【００７５】
このように、組合せルール４６０により、異なる設定項目間にまたがった設定値における、選択矛盾を生じさせないための規則を効率的に管理できる。また、組合せルール４６０に従って設定を行うことで、同時設定禁止されている設定値が同時に設定された場合に、同時設定を回避することができる。
【００７６】
また、組み合わせルールとして設定可能な設置値は、「リピート」「ダブル」のような選択肢に制限するものではなく、数値や文字列等、あらゆる情報を「設定値」として用いても良い。
【００７７】
図１１は、本実施の形態の組み合わせルールの構成の例を示した説明図である。本図に示すように、組み合わせルールは、設定項目Ａと、設定値Ａと、適用方法と、設定項目Ｂと、設定値Ｂと、対応付けた構成で保持している。そして、設定値Ａと設定値Ｂに対する設定を適用方法に従って行われる。例えば、画像コピーの設定値「リピート」が選択された場合には、適用方法では、左が優先と記載されているため、転写サイズの「定型」は選択することができなくなる。また、転写サイズの「定型」が選択された後に、画像コピーの設定値「リピート」が選択された場合、同様に左が優先と記載されているため、転写サイズの「定型」の設定が解除され、転写サイズの「定型」は選択することができなくなる。このように、二つ以上の設定項目で、矛盾する設定項目の設定値が選択されるのを防止するのみならず、適用方法を設定することで、利用者が選択する際の利便性が向上する。
【００７８】
また、適法方法は、「左が優先」以外にも、本図に示した「互いに先優先」や、「右が優先」など、利用者の便宜などに応じて様々な設定を行うことができる。
【００７９】
図１２は、設定値組み合わせテーブルから、設定項目及び設定値の相互関係に基づいてツリー構造を作成した経緯を示す説明図である。本図で示した設定項目「転写面」と設定項目「転写両面開き方向」の関係では、設定項目「転写面」に設定値「両面」が設定されている場合に限り、設定項目「転写両面開き方向」の設定を可能とする必要がある。このため、設定値組み合わせテーブル１２０１では、設定値「転写面片面」に対して、「転写両面左右開き」及び「転写両面上下開き」に「×」等が設定される必要がある。これは、設定値組み合わせテーブル１２０１において、設定項目及び設定値間の下位上位等の相互関係に関わらず羅列して扱っているために生ずるものである。つまり、設定項目及び設定値間で明らかな上下関係がある場合でも、この上下関係を定義できないために、矛盾した設定が行われないように詳細に設定を行う必要があった。
【００８０】
そこで本実施の形態では、図１２のツリー構造１２０２の保持を可能とした。そして、このツリー構造では、設定値の子（下位階層）として設定項目を保持する。
【００８１】
具体的には、ツリー構造１２０２で示すように転写面の設定値「両面」が、ツリー構造の下位階層として設定項目「転写両面開き方向」を保持する。つまり、設定値「両面」の場合に限り、設定項目「転写両面開き方向」に設定値「左右」又は設定値「上下」が設定される。
【００８２】
つまり、設定項目及び設定値で構成されるツリー構造により、所定の設定値の場合に限り、所定の設定項目で詳細な設定を行うことが可能となる。このように、階層構造を用いて設定項目及び設定値を保持することで、矛盾を生じないようにするために必要な設定が軽減するので、設計者の負荷を軽減することができる。さらには、矛盾が生じないように予め設定するデータ量を低減することができる。また、不要な設定を行う必要がなくなるので、誤った設定がなされるのを防止することができる。
【００８３】
図１３は、紙原稿を印刷する際の設定項目の例を示した説明図である。本図に示すように、設定項目「転写面」では、設定値として「片面」、「両面」及び「見開き」が設定可能である。そして、設定値「両面」の場合に限り、設定項目「転写面両面開き方向」を設定することができることを示している。
【００８４】
図１４は、設定値の下の階層に設定項目を保持するツリー構造において、組合せルールを適用した場合の例を示した説明図である。本図の（Ａ）に示すように、設定項目に所属するそれぞれの設定値に対して、他の設定項目に所属する設定値の間に同じ組合せルールを設定することも多い。
【００８５】
そこで、図１４の（Ｂ）に示すように、上位階層の設定値「ＯＮ」と設定項目「出力トレイ」の設定値「手差し」との間に組合せルールを適用した。そして、上位階層の設定値が設定された際に下位階層の設定項目が設定可能になることから、上位階層の設定値で設定された組合せルールは、実質的に下位階層の設定値に適用されることを意味する。これにより、設定項目「表紙位置」のそれぞれの設定値に対して組合せルールを適用する必要がなくなる。このように、下位階層のそれぞれの設定値に組合せルールを設定せずとも、上位階層の設定値に対して組合せルールを適用することで、下位階層のそれぞれの設定値に対して組合せルールを適用させることができる。設定値及び設定項目の相関関係を効率的に管理することが可能となる。
【００８６】
つまり、組合せルールを設定する作業を軽減することができる。また、それぞれの設定値に対して設定せずともよくなるので、複合機１が保持する組合せルールのデータサイズが小さくなり、複合機１に係る負荷が軽減される。また、同時設定禁止されている設定値が同時に設定された場合に組合せルールに従って選択の解除等が行われるので、同時設定を回避することができる。
【００８７】
図１５は、本実施形態の特徴部分である設定管理部１１１ｂのクラス構成を示すＵＭＬクラス図である。ここで、クラスとＵＭＬクラス図におけるクラスの記述方法について説明しておく。クラスとは、オブジェクト指向システムを構成するオブジェクトの設計図に相当する概念であり、オブジェクト内部に有する属性と処理や、他のオブジェクトとの関係を定義するものである。
【００８８】
ＵＭＬクラス図におけるクラスは、３段の区画を有する矩形として記述される。それぞれの区画は、上から、クラス名を示す名前区画、クラスが有するデータ（属性）を示す属性区画およびクラスが有する処理（操作）を示す操作区画と呼ばれる。たとえば、設定対象クラス３１０を示す矩形の名前区画は、かかるクラスのクラス名が「設定対象」であることを示し、属性区画は、かかるクラスが有する属性が、「対象物名称」であることを示し、操作区画は、かかるクラスが有する操作が、「選択する（）」であることを示している。
【００８９】
このように、各クラスは、データ（属性）を所持するための属性区画と、かかる属性の書き込みおよび読み出しをおこなう処理（操作）を所持するための操作区画とを有している。これらのクラスは、プログラム（統合アプリケーション１１０）の一部として含まれるので、あらかじめＲＯＭ１２ａに格納されたこのプログラムが実行されると、各クラスはＲＡＭ１２ｂの所定領域に実体化され、属性区画に含まれる各データ（属性）がＲＡＭ１２ｂ上に展開される。したがって、クラスを実体化したオブジェクトは、ＲＡＭ１２ｂ上の各データ（属性）の書き込みおよび読み出しをすることが可能となる。
【００９０】
なお、属性や操作といったクラスの要素の左側に「−」記号を付した場合は、かかる要素は外部のクラスには非公開であることを示し、「＋」記号を付した場合は、かかる要素は外部のクラスに公開されていることを示す。また、操作については「選択する（）」のように「（）」記号を付することが通例であり、「（引数１，引数２）」のように、かかる操作に引き渡す引数を記述する場合もある。
【００９１】
次に、本実施形態の特徴部分である設定管理部１１１ｂのクラス構成について説明する。図１５に示すように、設定管理部１１１ｂは、設定対象クラス３１０と、設定項目クラス３２０と、設定値クラス３３０と、組み合わせルールクラス３４０と、末端設定値クラス３５０と、数値設定値クラス３６０と、文字列設定値クラス３７０と、フォルダ設定値クラス３８０とを有する。換言すれば、設定項目クラス３２０は設定項目管理手段に相当し、設定値クラス３３０を承継するフォルダ設定値クラス３８０は設定値管理手段に相当し、組み合わせルールクラス３４０は組み合わせルール手段に相当する。
【００９２】
設定対象クラス３１０は、上述した「設定対象」に相当するクラスであり、操作受付部１１１ａから文書操作の設定に関する要求を受け取り、各「設定対象」に属する「設定項目」の管理をおこなう。具体的には、この設定対象クラス３１０は、属性として、対象物名称３１０ａを有し、操作として、選択する（）３１０ｂを有する。なお、かかる設定対象クラス３１０を実体化したオブジェクトが生成されると、対象物名称３１０ａはＲＡＭ１２ｂ上に展開されるので、このデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【００９３】
対象物名称３１０ａは、複合機１内の「設定対象」を特定するための一意の名称であり、複合機１内に同一の名称を有する設定対象クラス３１０のオブジェクトが存在しないよう異なる値が設定される。この対象物名称３１０ａは、複合機１における各オプション機器の選択の有無により、各「設定対象」が存在するか否かの判定に用いられる。
【００９４】
選択する（）３１０ｂは、操作受付部１１１ａから文書操作の設定に関する要求を受け取り、受け取った要求が自身に関するものか否かを対象物名称３１０ａを用いて判定する。受け取った要求が自身に関する設定要求である場合には、設定要求に対応する配下の設定項目クラス３２０に対し、設定値クラス３３０の設定を依頼する。
【００９５】
設定項目クラス３２０は、上述した「設定項目」に相当するクラスであり、設定対象クラス３１０および組み合わせルールクラス３４０から設定依頼を受け取り、各「設定項目」に属する「設定値」の設定処理をおこなう。具体的には、この設定項目クラス３２０は、属性として、設定項目名３２０ａおよび状態３２０ｂを有し、操作として、設定値を選択する（）３２０ｃ、設定値を選択解除する（）３２０ｄ、設定値を選択禁止にする（）３２０ｅおよび設定値を選択可能にする（）３２０ｆ、有効にする（）３２０ｇ、無効にする（）３２０ｈを有する。なお、かかる設定項目クラス３２０を実体化したオブジェクトが生成されると、設定項目名３２０ａおよび状態３２０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【００９６】
設定項目名３２０ａは、「設定項目」を特定するための一意の名称であり、同一の「設定対象」に属する「設定項目」の設定項目名３２０ａには、それぞれ異なる値が設定される。この設定項目名３２０ａは、設定対象クラス３１０が設定値クラス３３０の設定依頼をおこなう際に、該当する設定項目クラス３２０を特定するために用いられる。また、状態３２０ｂは、設定対象クラス３１０または組み合わせルールクラス３４０からの設定依頼を受付可能であるか否かの状態を示し、たとえば、受付可能（有効）または受付不可能（無効）の２つの状態を有する。
【００９７】
設定値を選択する（）３２０ｃは、設定対象クラス３１０から設定依頼を受け付け、該当する設定値クラス３３０の選択状態に変化させることで設定内容の整合を保つ処理をおこなう。また、設定値を選択解除する（）３２０ｄは、設定対象クラス３１０から選択解除依頼を受け付け、該当する設定値クラス３３０の状態を選択可能状態に変化させることで設定内容の整合を保つ処理をおこなう。なお、この設定値を解除する（）３２０ｄは、組み合わせルールクラス３４０からの選択解除依頼も受け付ける。たとえば、「設定項目Ａ」に属する「設定値Ａ２」と「設定項目Ｂ」に属する「設定値Ｂ１」とが同時に選択することができない設定値であり、かつ、後に選択した設定値が有効である場合には、設定値Ａ２を選択した後に設定値Ｂ１を選択すると、設定項目Ａは、組み合わせルールクラス３４０から設定値Ａ１の選択解除依頼を受け付ける。
【００９８】
設定値を選択禁止にする（）３２０ｅは、組み合わせルール３４０から選択禁止依頼を受け付け、該当する設定値クラス３３０の状態を選択禁止状態に変化させることで設定内容の整合を保つ処理をおこなう。たとえば、「設定項目Ａ」に属する「設定値Ａ２」と「設定項目Ｂ」に属する「設定値Ｂ１」とが同時に選択することができない設定値であり、かつ、先に選択した設定値が有効である場合には、設定値Ａ２を選択すると、設定項目Ｂは、組み合わせルールクラス３４０から設定値Ｂ１の選択禁止依頼を受け付ける。
【００９９】
設定値を選択可能にする（）３２０ｆは、組み合わせルール３４０から選択可能依頼を受け付け、該当する設定値クラス３３０の状態を選択可能状態に変化させることで設定内容の整合を保つ処理をおこなう。たとえば、「設定項目Ａ」に属する「設定値Ａ２」と「設定項目Ｂ」に属する「設定値Ｂ１」とが同時に選択することができない設定値であり、かつ、先に選択した設定値が有効である場合について説明する。この場合、設定値Ａ２を選択することにより設定項目Ｂが設定値Ｂ１の選択禁止依頼を受け付けた後に設定値Ａ２を選択解除すると、設定項目Ｂは、組み合わせルールクラス３４０から設定値Ｂ１の選択可能依頼を受け付ける。
【０１００】
有効にする（）３２０ｇは、当該設定項目の上位階層の設定値を示すフォルダ設定値オブジェクト３８０Ａで設定値が選択された状態になった場合に、フォルダ設定値クラス３８０から呼び出される。そして、有効にする（）３２０ｇは、フォルダ設定値クラス３８０から、当該設定項目オブジェクト３２０Ａに対する設定を有効にする旨の依頼を受け付ける。次に、設定項目オブジェクト３２０Ａが、設定を有効にする旨の依頼を受け付けた場合、状態３２０ｂを受付可能に変更し、当該設定項目において設定された設定値が有効になる。そして、状態３２０ｂが受付可能となったことで、当該設定項目に所属する設定値の選択が受け付け可能になる。なお、フォルダ設定値クラス３８０については後述する。
【０１０１】
無効にする（）３２０ｈは、当該設定項目の上位階層の設定値を示すフォルダ設定値オブジェクト３８０Ａで設定値が選択されていない状態になった場合に、フォルダ設定値クラス３８０から呼び出される。そして、無効にする（）３２０ｈは、フォルダ設定値クラス３８０から、当該設定項目オブジェクト３２０Ａに対する設定を無効にする旨の依頼を受け付ける。次に、設定項目オブジェクト３２０Ａが、設定を無効にする旨の依頼を受け付けた場合、状態３２０ｂを受付不可能に変更し、当該設定項目において設定された設定値が無効になる。そして、状態３２０ｂが受付不可能となったことで、当該設定項目に所属する設定値の選択が受け付け不可能になる。
【０１０２】
設定値クラス３３０は、上述した「設定値」に相当するクラスであり、設定項目クラス３２０から設定依頼を受け取り、各「設定項目」に属する「設定値」の設定処理をおこなう。また、同時に設定することができない他の「設定値」が存在する場合には、組み合わせルールクラス３４０を起動する処理をおこなう。具体的には、この設定値クラス３３０は、属性として、設定値名３３０ａおよび選択状態３３０ｂを有し、操作として、選択する（）３３０ｃ、選択解除する（）３３０ｄ、選択禁止にする（）３３０ｅおよび選択可能にする（）３３０ｆを有する。
【０１０３】
また、設定値クラス３３０は、末端設定値クラス３５０、数値設定値クラス３６０、文字列設定値クラス３７０及びフォルダ設定値クラス３８０の上位クラス（スーパークラス）であり、設定値クラス３３０自体が実体化されることはないが、設定値クラス３３０の属性および操作は、下位クラス（サブクラス）である末端設定値クラス３５０、数値設定値クラス３６０、文字列設定値クラス３７０及びフォルダ設定値クラス３８０に継承される。
【０１０４】
設定値名３３０ａは、「設定値」を特定するための一意の名称であり、同一の「設定項目」に属する「設定値」の設定値名３３０ａには、それぞれ異なる値が設定される。この設定値名３３０ａは、設定項目クラス３２０が設定値クラス３３０の設定依頼をおこなう際に、該当する設定値クラス３３０を特定するために用いられる。
【０１０５】
選択状態３３０ｂは、設定項目クラス３２０からの設定依頼を受付可能であるか否かの状態を示し、「選択可能」、「選択禁止」および「選択中」のうちいずれか一つの状態を有する。そして、各状態の遷移関係は以下のようになる。すなわち、「選択可能」状態において、選択する（）３３０ｃが呼び出されると「選択中」状態に遷移する。「選択中」状態において、選択解除する（）３３０ｄが呼び出されると「選択可能」状態に遷移し、選択禁止にする（）３３０ｅが呼び出されると「選択禁止」状態に遷移する。
【０１０６】
また、「選択可能」状態において、選択禁止にする（）３３０ｅが呼び出されると「選択禁止」状態に遷移し、この状態において、選択可能にする（）３３０ｆが呼び出されると「選択可能」状態に遷移する。このように、選択状態３３０ｂは、各操作（３３０ｃ〜３３０ｄ）に応じて、「選択可能」、「選択禁止」および「選択中」のいずれか一つの状態に遷移する。
【０１０７】
選択する（）３３０ｃは、設定項目クラス３２０から呼び出され、選択状態３３０ｂを「選択中」状態に遷移させる処理をおこなうとともに、同時に設定することができない他の「設定値」が存在する場合には、組み合わせルールクラス３４０を起動する処理をおこなう。また、選択解除する（）３３０ｄは、設定項目クラス３２０から呼び出され、選択状態３３０ｂを「選択可能」状態に遷移させる処理をおこなうとともに、同時に設定することができない他の「設定値」が存在する場合には、組み合わせルールクラス３４０を起動する処理をおこなう。
【０１０８】
選択禁止にする（）３３０ｅは、設定項目クラス３２０から呼び出され、「選択可能」状態あるいは「選択中」状態の選択状態３３０ｂを「選択禁止」状態に遷移させる処理をおこなう。また、選択可能にする（）３３０ｆは、設定項目クラス３２０から呼び出され、選択状態３３０ｂを「選択可能」状態に遷移させる処理をおこなう。
【０１０９】
組み合わせルールクラス３４０は、「設定項目」をまたいだ「設定値」間に同時に選択できない組み合わせがある場合に、選択が禁止される組み合わせのルールを保持するとともに、該当する設定項目３２０クラスにかかるルールを適用するクラスである。具体的には、この組み合わせルールクラス３４０は、属性として、適用方法３４０ａおよび適用する設定値３４０ｂを有し、操作として、適用する（）３４０ｃを有する。なお、かかる組み合わせルールクラス３４０を実体化したオブジェクトが生成されると、適用方法３４０ａおよび適用する設定値３４０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１１０】
適用方法３４０ａは、「設定項目」をまたいだ「設定値」間に同時に選択できない組み合わせがある場合に、適用する設定値３４０ｂに保持される設定値クラス３３０を実体化したオブジェクトの状態遷移のルールを保持する。この適用方法３０４ａは、図１１で示したものと同様とする。そして、この適用方法３０４ａを参照することで、「設定項目」をまたいだ「設定値」に対する適用が明らかになる。
【０１１１】
たとえば、適用方法３０４ａを参照することで、設定値３４０ｂに設定されたオブジェクトの状態を「選択中」状態から「選択可能」状態に遷移させたり、「選択中」状態から「選択禁止」状態に遷移させることが可能となる。また、適用する設定値３４０ｂは、組み合わせルールを適用する対象となる、かかるオブジェクトの識別番号を保持する。
【０１１２】
適用する（）３４０ｃは、適用する設定値３４０ｂに保持される設定値クラス３３０のオブジェクトに対し、適用方法３４０ａに保持される状態遷移のルールを適用する処理をおこなう。たとえば、「選択中」に遷移した設定値クラス３３０オブジェクトから呼び出された場合、適用方法３４０ａに「選択禁止」状態に遷移させるルールが保持されていれば、適用する設定値３４０ｂに保持されるオブジェクトが所属する設定項目クラス３２０のオブジェクトに対し、設定値３４０ｂに保持されるオブジェクトの状態を「選択禁止」に遷移するよう指示する。
【０１１３】
末端設定値クラス３５０は、設定値クラス３３０のサブクラスであり設定値の設定状態を保持する処理をおこなうクラスである。また、末端設定値クラス３５０は、設定項目クラス３２０から設定依頼を受け取り、各「設定項目」に属する「設定値」の設定処理をおこなう。また、同時に設定することができない他の「設定値」が存在する場合には、組み合わせルールクラス３４０を起動する処理をおこなう。
【０１１４】
具体的には、この末端設定値クラス３５０は、属性として、設定値名３３０ａ、選択状態３３０ｂを承継し、操作として、選択する（）３３０ｃ、選択解除する（）３３０ｄ、選択禁止にする（）３３０ｅ、選択可能にする（）３３０ｆを継承する。なお、末端設定値クラス３５０を実体化した末端設定値オブジェクト３４０Ａが生成されると、設定値名３３０ａ、選択状態３３０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをおこなうことが可能となる。
【０１１５】
数値設定値クラス３６０は、設定値クラス３３０のサブクラスであり設定値として数値の設定状態を保持する処理をおこなうクラスである。また、数値設定値クラス３６０は、設定項目クラス３２０から設定依頼を受け取り、各「設定項目」に属する「数値」の設定処理をおこなう。また、同時に設定することができない他の「設定値」が存在する場合には、組み合わせルールクラス３４０を起動する処理をおこなう。
【０１１６】
具体的には、この数値設定値クラス３６０は、属性として、設定値３６０ａ、上限値３６０ｂ、下限値３６０ｃを有し、操作として、設定する（）３６０ｄ、取得する（）３６０ｅを有するとともに、設定値クラス３３０から、属性として、設定値名３３０ａ、選択状態３３０ｂを承継し、操作として、選択する（）３３０ｃ、選択解除する（）３３０ｄ、選択禁止にする（）３３０ｅ、選択可能にする（）３３０ｆを継承する。なお、かかる数値設定値クラス３６０を実体化した数値設定オブジェクト３６０Ａが生成されると、設定値３６０ａ、上限値３６０ｂ、下限値３６０ｃ、設定値名３３０ａ及び選択状態３３０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをおこなうことが可能となる。
【０１１７】
設定値３６０ａは、「設定値」として利用者により設定された数値である。この設定値３６０ａは、設定項目クラス３２０が数値設定値クラス３６０に対して設定を行う属性であり、当該設定項目における処理を行う際に用いられる数値を示している。
【０１１８】
上限値３６０ｂは、設定値３６０ａが設定可能な数値の上限値を示した数値である。この上限値３６０ｂにより、利用者が設定可能な数値の上限値が決定する。
【０１１９】
下限値３６０ｃは、設定値３６０ａが設定可能な数値の下限値を示した数値である。この下限値３６０ｃにより、利用者が設定可能な数値の下限値が決定する。
【０１２０】
設定する（）３６０ｄは、設定項目クラス３２０から呼び出され、設定項目としてユーザーインターフェースを介して入力された数値を、設定値３６０ａが保持する数値の設定を行うとともに、同時に設定することができない他の「設定値」が存在する場合には、組み合わせルールクラス３４０を起動する処理をおこなう。
【０１２１】
取得する（）３６０ｅは、設定項目クラス３２０から呼び出され、利用者が設定値３６０ａで設定された数値を確認したい場合に、設定値３６０ａが保持する数値を取得する。そして、取得した数値は、利用者に設定された内容を確認させる等に用いられる。
【０１２２】
文字列設定値クラス３７０は、設定値クラス３３０のサブクラスであり設定値として文字列の設定状態を保持する処理をおこなうクラスである。また、文字列設定値クラス３７０は、設定項目クラス３２０から設定依頼を受け取り、各「設定項目」に属する「文字列」の設定処理をおこなう。また、同時に設定することができない他の「設定値」が存在する場合には、組み合わせルールクラス３４０を起動する処理をおこなう。
【０１２３】
具体的には、この文字列設定値クラス３７０は、属性として、文字列３７０ａ、文字コード３７０ｂ、上限の長さ３７０ｃを有し、操作として、設定する（）３７０ｄ、取得する（）３７０ｅを有するとともに、設定値クラス３３０から、属性として、設定値名３３０ａ、選択状態３３０ｂを承継し、操作として、選択する（）３３０ｃ、選択解除する（）３３０ｄ、選択禁止にする（）３３０ｅ、選択可能にする（）３３０ｆを継承する。なお、かかる文字列設定値クラス３７０を実体化した文字列設定値オブジェクト３７０Ａが生成されると、文字列３７０ａ、文字コード３７０ｂ、上限の長さ３７０ｃ、設定値名３３０ａ及び選択状態３３０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをおこなうことが可能となる。
【０１２４】
文字列３７０ａは、「設定値」として利用者により設定された文字列である。この文字列３７０ａは、設定項目クラス３２０が文字列設定値クラス３７０に対して設定を行う属性であり、当該設定項目における処理を行う際に用いられる文字列を示している。
【０１２５】
文字コード３７０ｂは、文字列３７０ａに設定された文字列を示す文字コードである。この文字コード３７０ｂにより、文字列３７０ａで用いられた文字コードを判別することができる。
【０１２６】
上限の長さ３７０ｃは、文字列３７０ａに設定可能な文字列の上限長を示した数値である。この上限の長さ３７０ｃにより、利用者が設定可能な文字数が決定される。
【０１２７】
設定する（）３７０ｄは、設定項目クラス３２０から呼び出され、設定項目としてユーザーインターフェースを介して入力された文字列を、文字列３７０ａが保持する設定を行うとともに、同時に設定することができない他の「設定値」が存在する場合には、組み合わせルールクラス３４０を起動する処理をおこなう。
【０１２８】
取得する（）３７０ｅは、設定項目クラス３２０から呼び出され、利用者が文字列３７０ａで設定された文字列を確認したい場合に、文字列３７０ａが保持する文字列を取得する。そして、取得した文字列は、利用者に設定された内容を確認させる等に用いられる。
【０１２９】
フォルダ設定値クラス３８０は、設定値クラス３３０のサブクラスであり設定値として選択肢の選択状態を保持すると共に、設定項目をツリー構造の下位階層として対応関係を保持するクラスである。また、フォルダ設定値クラス３８０は、設定項目クラス３２０から設定依頼を受け取り、各「設定項目」に属する「設定値」の設定処理をおこなう。また、同時に設定することができない他の「設定値」が存在する場合には、組み合わせルールクラス３４０を起動する処理をおこなう。また、フォルダ設定値クラス３８０は、「設定値」の選択／選択解除処理が行われた際、必要に応じて、ツリー構造の下位階層として対応関係を有する設定項目クラス３２０に対して、状態を有効又は無効にする依頼を行う。
【０１３０】
具体的には、このフォルダ設定値クラス３８０は、属性として、設定値名３３０ａ、選択状態３３０ｂを承継し、操作として、選択する（）３３０ｃ、選択解除する（）３３０ｄ、選択禁止にする（）３３０ｅ、選択可能にする（）３３０ｆを継承する。なお、フォルダ設定値クラス３８０を実体化したフォルダ設定値オブジェクト３８０Ａが生成されると、設定値名３３０ａ、選択状態３３０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをおこなうことが可能となる。
【０１３１】
例えば、フォルダ設定値オブジェクト３８０Ａは、選択する（）３３０ｃが呼び出された場合に、下位階層の設定項目オブジェクト３２０Ａの有効にする（）３２０ｇを呼び出す。これにより選択された設定値の下位階層の設定項目が有効になる。
【０１３２】
他の例としては、フォルダ設定値オブジェクト３８０Ａは、選択解除する（）３３０ｄが呼び出された場合に、下位階層の設定項目オブジェクト３２０Ａの無効にする（）３２０ｂを呼び出す。これにより選択された設定値の下位階層の設定項目が無効になる。
【０１３３】
また、フォルダ設定値クラス３８０は、選択肢の選択状態を保持するものに制限せず、数値や文字列を保持するものでもよい。つまり、フォルダ設定値クラス３８０は、ツリー構造の下位階層として設定項目クラス３２０と対応関係を保持できればよい。なお、数値や文字列を保持する場合は、上述した数値設定値クラス３６０及び文字列設定値クラス３７０と同様の属性及び操作を保持するものとし、説明を省略する。
【０１３４】
次に、図１５に示した各クラス間の関係について説明する。本図に示したように、ＵＭＬクラス図においては、クラス間に何らかの関係がある場合には、それらのクラスを表す矩形の間が直線で結ばれる。この直線の両端付近の文字はクラスのロールを表し、数字はクラスの多重度を表す。ここで、ロールとは、直線で結ばれた他方のクラスに対する当該クラスの役割のことであり、多重度とは、直線で結ばれた他方のクラスのオブジェクトと関連付けられて生成されるオブジェクトの数のことである。
【０１３５】
たとえば、設定対象クラス３１０からみた設定項目クラス３２０の役割は「所属者」であり、設定項目クラス３２０からみた設定対象クラス３１０の役割は「所属先」である。また、設定対象クラス３１０の多重度は「１」であり、設定項目クラス３２０の多重度は「１．．ｎ」である。ここで、「１．．ｎ」は、かかる設定項目クラス３２０の多重度が、１からｎの範囲であることを示している。また、たとえば、「１．．３」の記載をした場合には、かかるクラスの多重度が、１〜３の範囲であることを示す。
【０１３６】
まず、設定対象クラス３１０と設定項目クラス３２０とのクラス関係について説明する。設定対象クラス３１０のオブジェクトは、「紙原稿による入力」や「電子原稿による入力」といったユーザ操作の「設定対象」ごとに生成される。そして、各「設定対象」に所属する「設定項目」に対応する設定項目クラス３２０のオブジェクトは、かかる「設定項目」と同数生成される。また、設定項目クラス３２０の各オブジェクトは、設定対象クラス３１０から生成されるいずれか一つのオブジェクトに所属する。このように、設定対象クラス３１０と設定項目クラス３２０とは、「所属先」と「所属者」という関係をなしている。
【０１３７】
次に、設定項目クラス３２０と設定値クラス３３０との関係について説明する。設定項目クラス３２０のオブジェクトは、複数の「設定値」をとりまとめた設定群の役割を有している。したがって、設定項目クラス３２０のオブジェクトと設定値クラス３３０のオブジェクトとは、「所属元」と「保持している設定値」という関係をなしている。設定値クラス３３０のオブジェクトは、設定項目クラス３２０のいずれか一つのオブジェクトに所属するので、「所属元」は１個であり、「保持している設定値」は１個以上ｎ個以下となる。なお、設定項目クラス３２０側に記された白抜きのひし形は、あるクラスが別のクラスの一部として含まれる関係（集約関係）を示している。
【０１３８】
また、設定項目クラス３２０と末端設定値クラス３５０、設定項目クラス３２０と数値設定値３６０、設定項目クラス３２０と文字列設定値クラス３７０、設定クラス３２０とフォルダ設定値クラス３８０とは、それぞれ「所属元」と「保持している設定値」という関係をなしている。
【０１３９】
また、かかる設定群においては、いずれか一つの「設定値」のみを選択することができる。したがって、設定項目クラス３２０のオブジェクトと設定値クラス３３０オブジェクトとは、「所属元」と「選択している設定値」という関係もなしている。なお、選択された設定値クラス３３０のオブジェクトは、設定項目クラス３２０のオブジェクトと１対１の関係をなし、選択されていない設定値クラス３３０のオブジェクトは「所属元」との関係が不要となるので、設定項目クラス３２０のオブジェクトと１対０の関係をなす。
【０１４０】
次に、設定値クラス３３０と組み合わせルールクラス３４０との関係について説明する。同一の「設定項目」に複数の「設定値」が所属する場合には、いずれか一つの「設定値」のみを選択することができることは上述したとおりである。しかしながら、異なる「設定項目」にそれぞれ所属する「設定値」間に、同時に選択することができない関係がある場合もある。かかる場合に、設定値クラス３３０のオブジェクトは、組み合わせルールクラス３４０のオブジェクトを用いて、同時選択ができない「設定値」の状態を、「選択禁止」状態や「選択可能」状態に遷移させる。したがって、設定値クラス３３０のオブジェクトと組み合わせルールクラス３４０のオブジェクトとは、「関係元」と「適用するルール」という関係をなしている。
【０１４１】
なお、同時選択が不可能な「設定値」が存在しない場合があり、同時選択が不可能な「設定値」が複数存在する場合もあるので、「適用するルール」は０個以上ｎ個以下となる。また、組み合わせルールクラス３４０の各オブジェクトは、「関係元」となる設定値クラスのオブジェクトと１対１に対応するので、「関係元」の多重度は１となる。
【０１４２】
次に、設定項目クラス３２０と組み合わせルールクラス３４０との関係について説明する。組み合わせルールクラス３４０の各オブジェクトは、「設定項目」をまたいだ「設定値」間の同時選択禁止のルールをあらわしており、かかるルールは、対象となる「設定値」が所属する「設定項目」に対して適用される。したがって、設定項目クラス３２０のオブジェクトと組み合わせルールクラス３４０のオブジェクトとは、「ルール適用先」と「適用されるルール」という関係をなしている。なお、各ルールは、各「設定項目」に適用されるので、「ルール適用先」および「適用されるルール」の多重度は１となる。
【０１４３】
次に、設定値クラス３３０と、末端設定値クラス３５０、数値設定値クラス３６０、文字列設定値クラス３７０及びフォルダ設定値クラス３８０とのクラス関係について説明する。設定値クラス３３０は、末端設定値クラス３５０、数値設定値クラス３６０、文字列設定値クラス３７０及びフォルダ設定値クラス３８０の上位クラス（スーパークラス）であり、末端設定値クラス３５０、数値設定値クラス３６０、文字列設定値クラス３７０及びフォルダ設定値クラス３８０は、設定値クラス３３０の属性および操作を継承する。
【０１４４】
つまり、「設定値」は、種類として機能の設定を保持する値、さらに詳細な設定を保持する値、そして数値や文字列等、取り得る値の態様は様々である。そこで、設定値クラス３２０だけでは示せない属性や操作を保持するサブクラスとして、末端設定値クラス３５０、数値設定値クラス３６０、文字列設定値クラス３７０及びフォルダ設定値クラス３８０を定義した。そして、末端設定値クラス３５０は機能における選択肢、数値設定値クラス３６０は数値、文字列設定値クラス３７０は文字列を、設定値として保持する設定値クラス３３０のサブクラスとなる。
【０１４５】
また、フォルダ設定値クラス３８０は、設定項目における選択肢を設定値として保持すると共に、ツリー構造の下位階層に設定項目クラス３２０を保持している。
【０１４６】
次に、フォルダ設定値クラス３８０と設定項目クラス３２０との関係について説明する。フォルダ設定値クラス３８０が表す「設定値」の選択状態が有効か否かにより、下位階層の「設定項目」において設定可能か否かが変更される。したがって、フォルダ設定値クラス３８０のオブジェクトと設定項目クラス３２０のオブジェクトとは、「有効となる設定値」と「設定できる設定項目」という関係をなしている。
【０１４７】
なお、フォルダ設定値オブジェクト３８０Ａは下位階層に設定項目を備えるオブジェクトであり、設定項目は複数存在する場合もあるので、「設定項目クラス」は１個以上ｎ以下となる。また、設定項目クラス３２０の各オブジェクトにおいて、上位階層となる「設定値」は０又は１つの範囲で存在するので、多重度は０又は１となる。
【０１４８】
このように、設定対象クラス３１０、設定項目クラス３２０、設定値クラス３３０、組み合わせルールクラス３４０、末端設定値クラス３５０、数値設定値クラス３６０、文字列設定値クラス３７０およびフォルダ設定値クラス３８０の各オブジェクトは、相互に関連し合い、協調して、設定管理部１１１ｂに必要な機能を実現している。
【０１４９】
次に、図１５に示した各クラスの操作の実行手順について例をあげて説明する。図１６は、操作受付部１１１ａから設定値の選択要求があった際の操作の実行手順を示すＵＭＬシーケンス図である。
【０１５０】
ここで、ＵＭＬシーケンス図について説明しておく。図１６の上部に並んだ矩形は、それぞれがクラスのオブジェクトを示している。各オブジェクトから下方に伸びた線は、各オブジェクトが生存していることを示す線（ライフライン）であり、上方から下方に向かって時間が流れているものとみなされる。この線上に存在する細長い矩形は、当該のオブジェクトが実際に活動している期間（活性期間）を示す。
【０１５１】
各ライフラインの間を結ぶ横向きの矢印は、オブジェクトに含まれる操作の実行を示す。具体的には、この矢印は、矢印の元のオブジェクトが、矢印の先のオブジェクトに含まれる操作を呼び出すことを示す。また、矢印が自分自身のオブジェクトを指している場合は、オブジェクトが自分に含まれる操作を自身で呼び出すことを意味する。
【０１５２】
ここで、図１６の前提条件について説明する。利用者の操作により、「設定対象」として「印刷物としての出力」が選択された場合において、この「設定対象」には、「設定項目」として「転写面」、「給紙トレイ」及び「転写両面開き方向」があるものとする。そして、「設定項目」の「転写面」には「設定値」として「両面」が含まれ、「給紙トレイ」には「設定値」として「手差し」が含まれるものとする。そして、複合機の内部機構を理由に手差しの場合は両面印刷できなくなるため、「両面」と「手差し」は同時に選択することができない「設定値」の組み合わせである。また、「両面」の下位の階層には「設定項目」として「転写両面開き方向」があるものとする。そして、「設定値」として「両面」が設定された場合に限り、「転写両面開き方向」の設定を受け付けることが可能となっている。
【０１５３】
図１６に示すように、操作受付部１１１ａは、利用者からの文書操作要求を取得すると、設定対象クラス３１０の印刷物オブジェクト３１０Ａの選択する（）３１０ｂを呼び出す（ステップＳ１６０１）。そして、呼び出しを受けた印刷物オブジェクト３１１Ａは、設定項目クラス３２０の転写面オブジェクト３２２Ａの設定値を選択する（）３２０ｃを呼び出す（ステップＳ１６０２）。
【０１５４】
呼び出しを受けた転写面オブジェクト３２２Ａは、フォルダ設定値クラス３８０の両面オブジェクト３８１Ａの選択する（）３３０ｃを呼び出す（ステップＳ１６０３）。そして、両面オブジェクト３８１Ａは、組み合わせルールクラス３４０のオブジェクト３４０Ａの適用する（）３４０ｃを呼び出す（ステップＳ１６０４）。
【０１５５】
呼び出しを受けた組み合せルールオブジェクト３４１は、設定項目クラス３２０の給紙トレイオブジェクト３２１Ａの設定値を選択禁止にする（）３２０ｅを呼び出す（ステップＳ１６０５）。そして、給紙トレイオブジェクト３２１Ａは、末端設定値クラス３５０の手差しオブジェクト３５０Ａの選択禁止にする（）３３０ｅを呼び出す（ステップＳ１６０６）。このように、「両面」が選択された場合には、組み合わせルールを適用して「手差し」を選択禁止にすることができる。
【０１５６】
次に、両面オブジェクト３８１Ａは、設定項目クラス３２０の転写両面開き方向オブジェクト３２３Ａの有効にする（）３２０ｇを呼び出す（ステップＳ１６０７）。このように、「両面」が選択された場合には、「設定項目」の「転写両面開き方向」の設定が有効になる。
【０１５７】
図１７に示した各クラスの操作の実行手順について他の例を挙げて説明する。図１７は、操作受付部１１１ａから設定値の選択解除要求があった際の操作の実行手順を示すＵＭＬシーケンス図である。なお、図１７の前提条件は、図１６の前提条件と同様である。
【０１５８】
図１７に示すように、操作受付部１１１ａは、利用者からの文書操作要求を取得すると、設定対象クラス３１０の印刷物オブジェクト３１０Ａの選択する（）３１０ｂを呼び出す（ステップＳ１７０１）。そして、呼び出しを受けた印刷物オブジェクト３１０Ａは、設定項目クラス３２０の転写面オブジェクト３２２Ａの設定値を選択解除する（）３２０ｄを呼び出す（ステップＳ１７０２）。
【０１５９】
呼び出しを受けた転写面オブジェクト３２２Ａは、フォルダ設定値クラス３８０の両面オブジェクト３８１Ａの選択解除する（）３２０ｄを呼び出す（ステップＳ１７０３）。そして、両面オブジェクト３８１Ａは、組み合わせルールクラス３４０のオブジェクト３４０Ａの適用する（）３４０ｃを呼び出す（ステップＳ１７０４）。
【０１６０】
呼び出しを受けた組合せルールオブジェクト３４０Ａは、設定項目クラス３２０の給紙トレイオブジェクト３２１Ａの設定値を選択可能にする（）３２０ｆを呼び出す（ステップＳ１７０５）。そして、給紙トレイオブジェクト３２１Ａは、末端設定値クラス３５０の手差しオブジェクト３５０Ａの選択可能にする（）３３０ｆを呼び出す（ステップＳ１７０６）。このように、「両面」の選択が解除された場合には、組み合わせルールを適用して「手差し」を選択可能にすることができる。
【０１６１】
次に、両面オブジェクト３８１Ａは、設定項目クラス３２０の転写両面開き方向オブジェクト３２３Ａの無効にする（）３２０ｈを呼び出す（ステップＳ１７０７）。このように、「両面」が解除された場合には、「設定項目」の「転写両面開き方向」の設定が無効になる。
【０１６２】
本実施の形態では、オブジェクト指向設計により設定管理の仕組みを構築し、さらに、従来は設定値組み合わせテーブルを用いておこなわれていた設定値の選択制限を、設定対象クラス、設定項目クラスおよび設定値クラスの階層関係で実現するとともに、異なる設定項目に所属する設定値間の組み合わせ制限については、組み合わせルールクラスを用いることにより実現したので、設定管理の機能を効率良く実現することができる。なお、本実施の形態では、設定項目クラスと設定値クラスとを別のクラスとしたが、設定項目クラスと設定値クラスの役割を兼ねた設定管理クラスを有する構成とすることもできる。
【０１６３】
また、本実施の形態は、クラスを実体化したオブジェクトをＲＡＭ１２ｂ上で管理することに制限するものではなく、例えばＨＤＤ等、どのような記憶手段を用いても良い。
【０１６４】
上述してきたように、本実施の形態では、設定値の下位の階層に設定項目を保持することを可能とした。これにより、設定項目及び設定値の関係をツリー構造で保持できるので、設定項目及び設定値間の関係を保持することが可能となる。また、このようにツリー構造で保持できるので、複数の設定項目及びこれら設定項目の所属する設定値を効率よく管理することができる。
【０１６５】
また、本実施の形態は、上述したツリー構造を保持することで、設定項目及び設定値間の関係を、実際の関係と同様の形式で保持できる。このような関係を保持できるので、設定値の選択状態の変更に合わせて、設定項目の受付可能か否かの変更が容易になる。また、実際と同様の形式で保持できるので、設定矛盾が発生するのを抑止することが容易になる。
【０１６６】
また、本実施の形態では、上述したツリー構造を保持し、上位階層の設定値の設定状態に応じて設定値の下位の階層の設定項目の選択を受け付けることが可能か否か変更できでの、従来のテーブル構造のように全ての設定値の組み合わせに対して優先順位等を設定する必要なくなる。これにより選択矛盾を生じさせないために必要なデータ量を低減することができる。
【０１６７】
さらに、本実施の形態では、上位階層の設定値で組合せルールを設定することで、下位階層の設定値間の設定を行わすとも、選択矛盾を選択矛盾が生じないように設定を行うことができる。これにより、さらにデータ量が低減することができる。
【０１６８】
また、設定値の設定状態により、下位の階層の設定項目の有効又は無効が設定されることを可能とした。これにより、選択された設定値間の矛盾が生ずることを防ぐことが可能となった。
【産業上の利用可能性】
【０１６９】
以上のように、本発明にかかる設定管理装置及び設定管理プログラムは、設定値が所属する設定項目の管理に有用であり、特に、選択状態が制限されている設定値が所属する設定項目の管理に適している。
【図面の簡単な説明】
【０１７０】
【図１】複合機をとりまくネットワーク環境を示すネットワーク図である。
【図２】複合機のハードウェアを説明するための説明図である。
【図３】複合機におけるハードウェアおよびソフトウェアの階層構造を説明するための説明図である。
【図４】統合アプリケーションの構成を説明するための説明図である。
【図５】統合アプリケーションの構成を表したＵＭＬクラス図である。
【図６】複合機の操作パネルを説明するための説明図である。
【図７】液晶タッチパネルに表示されるメニュー例を説明するための説明図である。
【図８】設定値組み合わせテーブルを説明するための説明図である。
【図９】組み合わせテーブルから階層モデルへの置き換えについて説明するための説明図である。
【図１０】組み合わせルールの適用について説明するための説明図である。
【図１１】組み合わせルールの構成の例を示した説明図である。
【図１２】設定値組み合わせテーブルから、設定項目及び設定値の相互関係に基づいてツリー構造を作成した経緯を示す説明図である。
【図１３】紙原稿を印刷する際の設定項目の例を示した説明図である。
【図１４】設定値の下の階層に設定項目を保持するツリー構造において、組合せルールを適用した場合の例を説明した説明図である。
【図１５】設定管理部のクラス構成を示すＵＭＬクラス図である。
【図１６】設定値の選択要求があった際の操作の実行手順を示すＵＭＬシーケンス図である。
【図１７】設定値の選択解除要求があった際の操作の実行手順を示すＵＭＬシーケンス図である。
【図１８】複合機に搭載されるソフトウェア構成の変遷を示す説明図である。
【図１９】従来の複合機におけるハードウェアおよびソフトウェアの階層構造を説明するための説明図である。
【符号の説明】
【０１７１】
１  画像形成装置（複合機）
１０  コントローラ
１１  ＣＰＵ
１２  ＭＥＭ−Ｐ
１２ａ  ＲＯＭ
１２ｂ  ＲＡＭ
１３  ＮＢ
１４  ＳＢ
１５  ＡＧＰ
１６  ＡＳＩＣ
１７  ＭＥＭ−Ｃ
１８  ＨＤＤ
２０  キーボード（オペレーションパネル）
３０  ＦＣＵ
４０  ＵＳＢ
５０  ＩＥＥＥ１３９４
６０  エンジン部（Engine）
１００  ソフトウェア
１０１  アプリケーション層
１０２  サービス層
１０２ａ  スキャナ制御部
１０２ｂ  プロッタ制御部
１０２ｃ  蓄積制御部
１０２ｄ  配信／メール送受信制御部
１０２ｅ  ＦＡＸ送受信制御部
１０２ｆ  ネットワーク通信制御部
１０２ｇ  その他の制御部
１０３  オペレーティングシステム
１１０  統合アプリケーション
１１１  操作系サブシステム
１１１ａ  操作受付部
１１１ｂ  設定管理部
１１２  管理系サブシステム
１１３  実行系サブシステム
１２０  コピーアプリケーション
１３０  スキャナアプリケーション
１４０  ファックスアプリケーション
１５０  プリンタアプリケーション
２００  ハードウェア
２０１  ハードウェアリソース
２０１ａ  スキャナ
２０１ｂ  プロッタ
２０１ｃ  ＨＤＤ
２０１ｄ  ネットワーク
２０１ｅ  その他のリソース
３１０  設定対象クラス
３１０ａ  対象物名称
３１０ｂ  選択する（）
３１０Ａ  印刷物オブジェクト
３２０  設定項目クラス（設定項目管理手段の一例）
３２０ａ  設定項目名
３２０ｂ  状態
３２０ｃ  設定値を選択する（）
３２０ｄ  設定値を選択解除する（）
３２０ｅ  設定値を選択禁止にする（）
３２０ｆ  設定値を選択可能にする（）
３２０ｇ  有効にする（）
３２０ｈ  無効にする（）
３２０Ａ  設定項目オブジェクト
３２１Ａ  給紙トレイオブジェクト（設定項目管理手段の一例）
３２２Ａ  転写面オブジェクト（設定項目管理手段の一例）
３２３Ａ  転写両面開き方向オブジェクト（設定項目管理手段の一例）
３３０  設定値クラス（設定値管理手段の一例）
３３０ａ  設定値名
３３０ｂ  選択状態
３３０ｃ  選択する（）
３３０ｄ  選択解除する（）
３３０ｅ  選択禁止にする（）
３３０ｆ  選択可能にする（）
３４０  組み合わせルールクラス（組み合わせルール手段の一例）
３４０ａ  適用方法
３４０ｂ  適用する設定値
３４０ｃ  適用する（）
３４０Ａ  組み合わせルールオブジェクト（組み合わせルール手段の一例）
３５０  末端設定値クラス
３５０Ａ  手差しオブジェクト（設定値管理手段の一例）
３６０  数値設定値クラス
３６０ａ  設定値
３６０ｂ  上限値
３６０ｃ  下限値
３６０ｄ  設定する（）
３６０ｅ  取得する（）
３６０Ａ  枚数値オブジェクト
３７０  文字列設定値クラス
３７０ａ  文字列
３７０ｂ  文字コード
３７０ｃ  上限の長さ
３７０ｄ  設定する（）
３７０ｅ  取得する（）
３７０Ａ  ユーザ名オブジェクト
３８０  フォルダ設定値クラス
３８０Ａ  フォルダ設定値オブジェクト
３８１Ａ  両面オブジェクト
４００  操作パネル
４０１  初期設定キー
４０２  コピーキー
４０３  コピーサーバーキー
４０４  プリンタキー
４０５  送信キー
４０６  テンキー
４０７  クリア／ストップキー
４０８  スタートキー
４０９  予熱キー
４１０  リセットキー
４２０  液晶タッチパネル
４２１  入力モード
４２１ａ  紙原稿
４２１ｂ  電子原稿
４２２  入力モードエリア
４２２ａ  濃度設定部
４２２ｂ  特殊原稿設定部
４２３  出力モード
４２３ａ  印刷
４２３ｂ  保存
４２３ｃ  送信
４２４  出力モードエリア
４２４ａ  トレイ選択部
４２４ｂ  倍率設定部
４３０、１２０１  設定値組み合わせテーブル
４４０  紙原稿テーブル
４４０ａ  転写面
４４０ｂ  原稿サイズ
４４１  転写面階層モデル
４４２  原稿サイズ階層モデル
４５０  印刷物テーブル
４５０ａ  画像コピー
４５０ｂ  転写サイズ
４５０ｃ  組み合わせ制限
４５１  画像コピー階層モデル
４５２  転写サイズ階層モデル
４６０  組み合わせルール
５０１  サービス層分離前アプリケーション
５０２  サービス層分離後アプリケーション
５０３  共通ルーチン分離アプリケーション
５０４  オブジェクト指向アプリケーション
１２０２  ツリー構造
【図１】
2007158929.tif 000003
【図２】
2007158929.tif 000004
【図３】
2007158929.tif 000005
【図４】
2007158929.tif 000006
【図５】
2007158929.tif 000007
【図６】
2007158929.tif 000008
【図７】
2007158929.tif 000009
【図８】
2007158929.tif 000010
【図９】
2007158929.tif 000011
【図１０】
2007158929.tif 000012
【図１１】
2007158929.tif 000013
【図１２】
2007158929.tif 000014
【図１３】
2007158929.tif 000015
【図１４】
2007158929.tif 000016
【図１５】
2007158929.tif 000017
【図１６】
2007158929.tif 000018
【図１７】
2007158929.tif 000019
【図１８】
2007158929.tif 000020
【図１９】
2007158929.tif 000021