(57)【要約】【課題】操作部を介してユーザと情報交換を行いながら、その問題領域特有の部品化を行うことによりソフトウェアの再利用性を向上させるユーザインタフェース装置及びソフトウェア部品管理方法を提供する。【解決手段】イメージ入出力装置８０に、入力部及び画面表示部を有する操作パネル２と、画面の遷移を制御する画面遷移サブシステム３０、画面表示部の画面構成要素を管理する画面サブシステム４０、及び、操作パネル２のデバイスを管理するパネルサブシステム５０を用いて操作パネル２の動作を制御するＣＰＵ３及びパネル制御部１１とを設ける。また、画面サブシステム４０には、モデル部品、ビュー部品、コントローラ部品を独立に設け、前記ビュー部品と前記コントローラ部品との組み合わせに応じ、前記モデル部品、前記ビュー部品、及び前記コントローラ部品が互いに協調して所望の機能を実現するように構成する。【選択図】　　　　図１
2004054683.tif 000002
【特許請求の範囲】
【請求項１】
情報を入力する入力部、及び、この入力部による入力に対する応答結果を画面に表示する画面表示部を有する操作パネルと、前記画面の遷移を制御する画面遷移サブシステム、前記画面表示部の画面構成要素を管理する画面サブシステム、及び、前記操作パネルのデバイスを管理するパネルサブシステムを独立のソフトウェア部品として持ち、前記ソフトウェア部品を用いて前記操作パネルの動作を制御する制御手段とを設け、
前記画面サブシステムには、データの管理を行うモデル部品と、このモデル部品の持つデータを出力するビュー部品と、前記情報の入力を管理し、前記モデル部品及び前記ビュー部品を操作するコントローラ部品とをそれぞれ独立に設け、
前記制御手段により、前記ビュー部品と前記コントローラ部品との組み合わせに応じ、前記モデル部品、前記ビュー部品、及び前記コントローラ部品が互いに協調して所望の機能を実現することを特徴とするユーザインタフェース装置。
【請求項２】
前記画面サブシステムでは、前記ビュー部品に対する操作により、予め前記ビュー部品と組み合わされたコントローラ部品を選択して呼び出すことを特徴とする請求項１に記載のユーザインタフェース装置。
【請求項３】
前記ビュー部品と前記コントローラ部品との関係を設定する関係設定手段を設けたことを特徴とする請求項１または２に記載のユーザインタフェース装置。
【請求項４】
情報の入力に対する応答結果を画面に表示するためのソフトウェア部品を、表示画面の遷移を制御する画面遷移サブシステムと、画面構成要素を管理する画面サブシステムと、前記情報の入力を行うデバイスを管理するデバイスサブシステムとに分け、
前記画面サブシステムのソフトウェア部品を、データの管理を行うモデル部品と、このモデル部品の持つデータを出力するビュー部品と、前記情報の入力を管理し、前記モデル部品及び前記ビュー部品を操作するコントローラ部品とに分け、
前記ビュー部品と前記コントローラ部品との関係を予め設定しておき、デバイスサブシステム及び画面遷移サブシステムにより、前記ビュー部品のいずれかが表示された場合には、前記画面サブシステムにより、前記ビュー部品のいずれかと組み合わせ可能なコントローラ部品を呼び出すことを特徴とするソフトウェア部品の管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、モデル部品、ビュー部品、コントローラ部品のアーキテクチャを利用したユーザインタフェース装置及びソフトウェア部品管理方法に関するものである。
【０００２】
【従来の技術】
近年、コンピュータハードウェアのパフォーマンスアップと低コスト化を受けて、ソフトウェアの規模の増大と、その対象となる問題の複雑化は年々増している。一方、それらソフトウェア商品、もしくはソフトウェアを組み込んだ機器の商品の開発サイクルは、年々短縮される傾向にある。そのような環境の中、ソフトウェア業界においてはその開発効率の改善が必然的な要求となっている。その一つの解決法として、ソフトウェアの部品化が考えられる。これは、ソフトウェアシステムを複数の独立したコンポーネントによって構成し、そのコンポーネント単位で他のシステムで再利用しようとする考えである。そのことにより、中長期的なソフトウェア開発効率を改善することができる。
【０００３】
例えば、操作部などのインタフェースを介してユーザと情報交換を行うソフトウェアシステム（以下、ユーザインタフェース装置ともいう）において、その問題領域特有の部品化を行うことによりソフトウェアを再利用してもよい。
【０００４】
なお、ユーザインタフェースを構築するためのアーキテクチャとしては、ＭＶＣ（Ｍｏｄｅｌ／Ｖｉｅｗ／Ｃｏｎｔｒｏｌｌｅｒ）が一般に知られている。このＭＶＣは、グラフィカル・ユーザ・インタフェース（以下、ＧＵＩともいう）のメカニズムとして広く知られているアーキテクチャであり、オブジェクト指向言語の一つであるＳｍａｌｌｔａｌｋ−８０でユーザインタフェースを構築するために考案されたものである。前記ＭＶＣで用いられるモデル（Ｍｏｄｅｌ）は、データ管理を専門に行う、問題領域の本質部分のオブジェクトモジュールである。また、ビュー（Ｖｉｅｗ）は、モデルの表示（出力）を行うオブジェクトモジュールであり、表示の位置や形態を知っている。また、コントローラ（Ｃｏｎｔｒｏｌｌｅｒ）は、ユーザからの要求を受け付け、モデルやビューにメッセージを送るオブジェクトモジュールであり、全体の動きを制御するものである。
【０００５】
この種の装置として関連するものには、特開２０００−１３２３８５号公報、特開２００１−１２５７７８号公報、特開２００１−１３４４２６号公報、特開２００１−３１８７４８号公報、特開２００１−３４４４９号公報がある。
【０００６】
【発明が解決しようとする課題】
しかしながら、このような従来のユーザインタフェース装置では、ソフトウェアの特性、制御方式が適切に分離及び統合されていなかった。このために、アプリケーションの変更による画面仕様の変更が発生した場合、それを制御するソフトウェアを再利用することなく、一から書き直すことになってしまうという問題があった。例えば、オペレーションフローを構成する画面が画面構成要素で構成されていることには変わりないが、従来のソフトウェアではそれを制御する側、される側の両方について、新しくソフトウェアを構築しなければならなかった。
【０００７】
また、同じユーザインタフェース装置において、複数の同様な制御方式を持っていても、前述したようにソフトウェアの特性、制御方式が適切に分離及び統合されていないために、似通ったコードを書かなくてはならなくなる。例えば、共通な部分をモジュール化し、呼び出すような形式にした場合には、かえって呼び出し関係が複雑になり、再利用することが難しいモジュールとなってしまう。すなわち、似通った動作及び構成ではあるが、異なるコードとして構築されてしまう。
【０００８】
なお、前述した特開２０００−１３２３８５号公報に開示された技術は、ＭＶＣを用いたクラス設計方法であり、ソフトウェア部品に関するものではない。また、特開２００１−１２５７７８号公報、特開２００１−１３４４２６号公報、特開２００１−３１８７４８号公報、特開２００１−３４４４９号公報に開示された技術は、ソフトウェア部品に関するものではあるが、ソフトウェアをＭＶＣの視点で部品化していない。
【０００９】
本発明は、このような問題を解決するためになされたもので、操作部を介してユーザと情報交換を行いながら、その問題領域特有の部品化を行うことによりソフトウェアの再利用性を向上させるユーザインタフェース装置及びソフトウェア部品管理方法を提供するものである。
【００１０】
【課題を解決するための手段】
請求項１に係る本発明のユーザインタフェース装置は、情報を入力する入力部、及び、この入力部による入力に対する応答結果を画面に表示する画面表示部を有する操作パネルと、前記画面の遷移を制御する画面遷移サブシステム、前記画面表示部の画面構成要素を管理する画面サブシステム、及び、前記操作パネルのデバイスを管理するパネルサブシステムをそれぞれ独立のソフトウェア部品として持ち、前記ソフトウェア部品を用いて前記操作パネルの動作を制御する制御手段とを設け、前記画面サブシステムには、データの管理を行うモデル部品と、このモデル部品の持つデータを出力するビュー部品と、前記情報の入力を管理し、前記モデル部品及び前記ビュー部品を操作するコントローラ部品とをそれぞれ独立に設け、前記制御手段により、前記ビュー部品と前記コントローラ部品との組み合わせに応じ、前記モデル部品、前記ビュー部品、及び前記コントローラ部品が互いに協調して所望の機能を実現する構成を有している。
この構成により、画面サブシステムを三つのカテゴリに分類し、それぞれのソフトウェア部品の役割を明確化しているので、より再利用性の高いユーザインタフェース用部品（ＵＩＴｏｏｌＫｉｔ）を構成できる。特に、ビュー部品とコントローラ部品との組み合わせを予め設定しているので、より効率的にソフトウェア部品を再利用できることとなる。
【００１１】
請求項２に係る本発明のユーザインタフェース装置は、請求項１において、前記画面サブシステムでは、前記ビュー部品に対する操作により、予め前記ビュー部品と組み合わされたコントローラ部品を選択して呼び出す構成を有している。この構成により、ビュー部品を主体としてコントローラ部品を連動させることができるので、ユーザにとって理解し易く、使い勝手のよいユーザインタフェース用部品（ＵＩＴｏｏｌＫｉｔ）を構成できる。すなわち、開発者がソフトウェア部品を利用してユーザインタフェースを開発する場合は、目視できないものよりも目視できる単位で開発した方がわかりやすい。これに対し、ビュー部品は表示されるから目視できるが、コントローラ部品は制御機能であるから目視できない。そこで、ビュー部品を主体に構成した方が理解性が高くなる。
【００１２】
請求項３に係る本発明のユーザインタフェース装置は、請求項１または２において、前記ビュー部品と前記コントローラ部品との関係を設定する関係設定手段を設けた構成を有している。
この構成により、ビュー部品とコントローラ部品との間に対応関係を定義することで、対応関係のない部品同士は機能しないようにするので、ソフトウェア部品の不適当な使い方を制限でき、保守性の高いユーザインタフェース用部品（ＵＩＴｏｏｌＫｉｔ）を構成できる。すなわち、ビュー部品とコントローラ部品との組み合わせを制限しない場合に、汎用性は向上するが、組み合わせても意味のないパターンをも許容して障害を招くおそれがある。例えば、メニューの選択項目を選ぶコントローラ部品であるセレクタ（Ｓｅｌｅｃｔｏｒ）を、ラベルに対して付加しても意味がない。そこで、組み合わせを予め制限しておけば、予想外の使用方法がなくなり、再利用コンポーネントを使用したソフトウェアの品質が向上することとなる。
【００１３】
請求項４に係る本発明のソフトウェア部品管理方法は、情報の入力に対する応答結果を画面に表示するためのソフトウェア部品を、表示画面の遷移を制御する画面遷移サブシステムと、画面構成要素を管理する画面サブシステムと、前記情報の入力を行うデバイスを管理するデバイスサブシステムとに分け、前記画面サブシステムのソフトウェア部品を、データの管理を行うモデル部品と、このモデル部品の持つデータを出力するビュー部品と、前記情報の入力を管理し、前記モデル部品及び前記ビュー部品を操作するコントローラ部品とに分け、前記ビュー部品と前記コントローラ部品との関係を予め設定しておき、デバイスサブシステム及び画面遷移サブシステムにより、前記ビュー部品のいずれかが表示された場合には、前記画面サブシステムにより、前記ビュー部品のいずれかと組み合わせ可能なコントローラ部品を呼び出している。
この方法により、ソフトウェア部品にＭＶＣの概念を取り入れ、画面サブシステムを三つのカテゴリに分類しているので、再利用しやすいソフトウェア部品とすることができる。さらに、ビュー部品とコントローラ部品との間に対応関係を定義することで、前述したように保守性の高いユーザインタフェース部品を構成できることとなる。
【００１４】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を用いて説明する。
［第１の実施形態］
図１は、本発明の第１の実施形態に係るイメージ入出力装置のハードウェア構成を示す。
本実施形態のイメージ入出力装置８０において、プロセッサ（ＣＰＵ）３は、装置全体の制御を司るものであり、その制御下にＲＯＭ４、ＲＡＭ９、ＮＶＲＡＭ１０、操作パネル（入力部及び画面表示部を含む）２とパネル制御部１１、スキャン・プリントエンジン１とエンジン制御部１２、記憶装置５とディスクドライバ６、通信制御部７、モデム１３、ホストインタフェース（Ｉ／Ｆ）１４が接続されている。
【００１５】
また、ＲＯＭ４は、ＣＰＵ３により実行させるためのプログラムを記憶するとともに、このプログラムがＣＰＵ３によって実行されるときにー時的に作成される情報等を保持するものであって、プログラムコード、フォント、及びその他の静的なデータが格納されている。ＲＡＭ９は、一時的な記憶場所として利用される。ＮＶＲＡＭ１０は、不揮発性のデータを格納しておく。操作パネル２とパネル制御部１１とは、ユーザとのインタフェースを司る。スキャン・プリントエンジン１とエンジン制御部１２とは、イメージデータの入出力ユニットとして、紙原稿の読み取りと転写紙への印刷を実行する。記憶装置５とディスクドライバ６とは、大量のイメージデータなどを蓄積し、あるいはデータベースの記憶場所として利用される。通信制御部７は、イーサネット（登録商標）等のネットワーク１５に接続され、ネットワーク１５を介して外部の機器（ここでは、パーソナルコンピュータ（ＰＣ）１６）との通信を可能とする。モデム１３は、公衆回線と接続され、外部の機器との通信を可能とする。外部インタフェース（ここでは、ホストインタフェース）１４は、セントロニクスやＲＳ−２３２Ｃ等のインタフェースを用いて外部の機器（ここでは、ホスト・パーソナルコンピュータ（ＰＣ）１７）との通信を可能にする。バス８は、前述の装置１〜７間を接続するものである。
【００１６】
また、ネットワーク１５は、コンピュータ装置（イメージ入出力装置８０を含む）と他のコンピュータ装置とを結合するための伝送路であって、一般には、ケーブルで実現され、通信プロトコルにはＴＣＰ／ＩＰが使われる。但し、伝送路としてはケーブルだけでなく、それらの間の通信プロトコルが一致するものであれば無線、有線及び放送波のいずれでもよく、例えば、構内網（ＬＡＮ）、広域網（ＷＡＮ）、インターネット、アナログ電話網、ディジタル電話網（ＩＳＤＮ）、パーソナルハンディホンシステム（ＰＨＳ）、携帯電話網、衛星通信網等を用いることができる。
【００１７】
なお、前述したプログラムは、本実施形態のユーザインタフェース機能（ソフトウェア部品管理機能あるいは方法を含む）を実現させるものであって、このソフトウェア部品管理機能には、画面生成機能（図８に示す）、及びメニュー選択機能（図９に示す）が含まれる。また、前述したプログラムは、所定の記録媒体からインストールされてもよい。この場合は、前述したプログラムを予め所定の記録媒体に書き込んでおき、これをディスクドライバ６などの媒体駆動装置に装着し、前述したプログラムをＲＯＭ４、ＮＶＲＡＭ１０、あるいは記憶装置５等のメモリに格納し、ＣＰＵ３により実行する。さらに、前述したプログラムがＲＯＭ等のような半導体の記録媒体に記録されている場合には、前述したプログラムは、媒体駆動装置からではなく、直接、メモリヘロードされ、実行されることとなる。
【００１８】
また、前述した記録媒体は、例えば、半導体媒体（例えば、ＲＯＭ、ＩＣメモリカード等）、光媒体（例えば、シーディーロム（ＣＤ−ＲＯＭ）、ディジタル・バーサタイル・ディスク（ＤＶＤ）、光磁気ディスク（ＭＯ）、ミニディスク（ＭＤ）、書き込み可能なＣＤ（ＣＤ−Ｒ）等）、磁気媒体（例えば、磁気テープ、フレキシブルディスク（ＦＤ）等）のいずれであってもよい。
【００１９】
さらに、ＲＯＭ４、ＮＶＲＡＭ１０、あるいは記憶装置５等のメモリへロードしたプログラムを実行することにより、本実施形態のユーザインタフェース機能が実現されるだけでなく、プログラムの指示に基づき、オペレーティングシステム等が実際の処理の一部または全部を行い、その処理によって本実施形態のユーザインタフェース機能が実現されるようにしてもよい。また、通信制御部７によりネットワーク１５上の所定のサーバ（ＰＣ１６を含む）と接続し、このサーバからプログラムをメモリにインストールしてもよい。あるいは、ホストインタフェース１４によりホスト装置（ＰＣ１７を含む）からプログラムをメモリにインストールしてもよい。
【００２０】
次に、図２を用い、ユーザインタフェース装置８０内部の組み込みソフトウェアについて説明する。図２に示す組み込みソフトウェアは、大きく分けると（ａ）〜（ｄ）に示す４層の構造を有している。
アプリケーション層（ａ）は、コピー、ファクシミリ、プリンタなどのアプリケーションを形成するレイヤーである。ここで、ドキュメントマネージャは、コピー、ファクス、プリンタなどのシナリオに沿ってドキュメントをハンドリングするアプリケーションとしては中心となる機能ブロックである。サービスマネージャは、ドキュメントハンドリングの際に共通に必要となる機能ブロックであり、各種サービスの管理、実行を行うものである。デバイスマネージャは、スキャナ、プロッタ、画像バスといった物理デバイスの動作を決定する機能ブロックであり、各種デバイスの管理、実行を行うものである。オペレーションマネージャは、装置に付属している操作パネル２を制御するものであり、ボタンの表示、ボタンオペレーションのノーティファイ、アラートの通知などを行うものである。データベースマネージャは、フォント、定形フォーム、ファクス受信履歴、装置の利用履歴、課金データなどの永続データの維持管理を行うものである。プログラムファクトリは、ソフトウェアの組立表とソフトウェア部品及び互換表からプログラム実行のための初期化を行うものである。すなわち、静的に存在するソフトウェア部品をＲＡＭ９上へ展開し（オブジェクト指向プログラミングにおけるインスタンスの生成）、何らかのメッセージを受け取る（オブジェクト指向プログラミングにおけるメソッドコール）ことにより、動作可能な状態にしておくものである。
カーネル層（ｂ）は、通常ＯＳのカーネルとして組み込まれ、各種デバイスを抽象化してアプリケーションに対し、サービスを提供するものであり、前述したアプリケーション層（ａ）はカーネル層（ｂ）に対し、システムコールすることにより動作する。
ドライバ層（ｃ）は、各種ハードウェアを駆動するための制御を実行する機能ブロックの集まりである。
ハードウェア層（ｄ）は、ユーザインタフェース装置８０内に存在する制御可能なリソースの集合である。
【００２１】
次に、図３、図４を用い、本実施形態のソフトウェア部品（以下、ユーザインタフェース部品（ＵＩ部品）ともいう）の構成について説明する。なお、ソフトウェア部品はユーザインタフェース装置８０内に存在する制御可能なリソースの集合である。また、本実施形態では、グラフィカル・ユーザインタフェースのアーキテクチャを利用し、画面サブシステム４０のソフトウェア部品を三つのカテゴリに分類している。
図３に示すように、ＵＩ部品は画面遷移サブシステム３０、画面サブシステム４０、パネルサブシステム５０の３層に分かれている。さらに、画面遷移サブシステム３０には、図４（ａ）に示すように、ファックスアプリＵＩプロセス（遷移部品、画面部品を含む）、コピーアプリＵＩプロセス（遷移部品、画面部品を含む）が対応している。また、画面サブシステム４０には、図４（ｂ）に示すように、機種依存パネルプロセス（パネル部品を含む）が対応している。さらに、パネルサブシステム５０には、図４（ｃ）に示すように、デバイス制御が対応している。特に、画面サブシステム４０では、従来の技術で示したＭＶＣ（Ｍｏｄｅｌ／Ｖｉｅｗ／Ｃｏｎｔｒｏｌｌｅｒ）におけるビューとコントローラとを関連付けて制御するようになっている。
【００２２】
ここで、ＭＶＣ　の概念とクラスをそれぞれ図５（ａ）と図５（ｂ）に示す。図５（ａ）において、ＭＶＣで用いられるモデル（Ｍｏｄｅｌ）は、データ管理を専門に行い、問題領域の本質部分となる。また、ビュー（Ｖｉｅｗ）は、コントローラ（Ｃｏｎｔｒｏｌｌｅｒ）の指示により、モデルに対してデータの取得を要求し、モデルからの表示位置や形態の変更通知に応じ、データモデルの表示（出力）を行うものである。また、コントローラ（Ｃｏｎｔｒｏｌｌｅｒ）は、ユーザからの要求（ここでは、ビューからの指示となる）を受け付け、モデルやビューにメッセージを送るものである。なお、ＭＶＣのデータ構造とデータの操作は図５（ｂ）に示すとおりである。
【００２３】
次に、本実施形態の画面サブシステム４０周辺のソフトウェア部品の構造を図６に示す。
図６において、ビューにはそれぞれウィンドウとして独立したメニュー部品、ラベル部品、及びウィンドウ部品などがあり、コントローラにはそれぞれ独立したフォーカス制御部品、選択制御部品などがある。本実施形態では、前述したビューとコントローラとの組み合わせの適否関係を予め設定し、組み合わせを制限しながら必要な部品を呼び出して再利用するよう、構成されている。例えば図７に示すように、ビュー部品とコントローラ部品との組み合わせの適否関係が登録された、関係テーブル６０（関係設定手段に含まれる）をＲＯＭ４、ＮＶＲＯＭ１０、記憶装置５等に更新可能に記憶しておいてもよい。
【００２４】
次に、図８を用い、本実施形態の画面生成シーケンスを説明する。以下に各部品の画面生成時の動作を示す。
まず、モデル部品（モデル）は、遷移サブシステム３０における画面生成時（１．生成）はなにもしない。また、モデル部品は、画面サブシステム４０においてビュー部品（ビュー）から登録があると、記憶しておく（７．Ａｔｔａｃｈ）。このＡｔｔａｃｈをする目的は、モデル自身の値が変更された場合に、登録されているビュー部品全てに対し、変更通知を送るためである。
次いで、ビュー部品が生成されると（２．生成、４．生成）、これらのビュー部品からＰａｎｅｌに対し、自分が表示する対象の生成を指示する（３．表示要素生成指示、５．表示要素生成指示）。これによって、前記ビュー部品を操作パネル２で表示できるようになる。また、コントローラ部品を保持する場合は、コントローラ部品を生成する（６．生成）。また、前述したように、モデル部品に対しては、変更があったときに通知が受け取れるように登録しておく（７．Ａｔｔａｃｈ）。コントローラ部品が生成されると、自分が制御する対象であるモデル、ビューのデータを受け取る。
ここでは、関係テーブル６０により、ビュー部品（ここでは、メニュー）とコントローラ部品（ここでは、セレクタ）との組み合わせが可能に設定されているので、画面サブシステム４０において、メニューとセレクタとが連動するように制御される。
【００２５】
次に、図９を用い、本実施形態のメニュー選択動作を説明する。以下に、ビュー部品（ここでは、メニュー）により値を選択（変更）した時の各部品の動作を示す。
まず、パネルサブシステム５０は、押下イベントをビュー部品（ここでは、メニュー）に発行する（１．押下イベント）。次いで、この押下イベントを受け取ったメニューは、関連するコントローラ部品の全て（ここで、セレクタ）にその押下イベントを通知する（２．押下通知）。次いで、その押下イベントを受け取ったセレクタは、その押下イベントに応じた処理を行い、処理できないイベントに関しては無視する。ここで、セレクタはモデル部品（ここでは、ビューデータ）の値を変更する（３．値変更）。次いで、値を変更されたビューデータは、登録されているビュー部品全て（ここでは、メニュー）に変更通知を発行する（４．変更通知）。次いで、変更通知を受け取ったメニューは、ビューデータに対して変更された値の取得を要求し（５．取得）、ビューデータから値を取得し、その値を元にパネルサブシステム５０のパネル部品に対して表示を変更する要求を出す（６．表示変更要求）。
ここでは、関係テーブル６０により、ビュー部品（ここでは、メニュー）とコントローラ部品（ここでは、セレクタ）との組み合わせが可能に設定されているので、画面サブシステム４０において、メニューとセレクタとが連動するように制御される。
【００２６】
以上のように、本発明の第１の実施形態に係るイメージ入出力装置８０は、情報を入力する入力部、及び、この入力部による入力に対する応答結果を画面に表示する画面表示部を有する操作パネル２と、前記画面の遷移を制御する画面遷移サブシステム３０、前記画面表示部の画面構成要素を管理する画面サブシステム４０、及び、操作パネル２のデバイスを管理するパネルサブシステム５０を独立のソフトウェア部品として持ち、前記ソフトウェア部品を用いて操作パネル２の動作を制御するＣＰＵ３、パネル制御部１１、ＲＯＭ４など（制御手段に含まれる）とを設け、画面サブシステム４０には、データの管理を行うモデル部品と、このモデル部品の持つデータを出力するビュー部品と、前記情報の入力を管理し、前記モデル部品及び前記ビュー部品を操作するコントローラ部品とをそれぞれ独立に設け、ＣＰＵ３、パネル制御部１１、ＲＯＭ４などにより、前記ビュー部品と前記コントローラ部品との組み合わせに応じ、前記モデル部品、前記ビュー部品、及び前記コントローラ部品が互いに協調して所望の機能を実現するので、それぞれのソフトウェア部品の役割を明確化し、特に、ビュー部品とコントローラ部品との組み合わせを設定して、より効率的にソフトウェア部品を再利用できる。
【００２７】
［第２の実施形態］
図１０に、本発明の第２の実施形態に係るコントローラ部品生成方法を示すフローチャートである。これは第１の実施形態とは、関連テーブル６０を用いたユーザインタフェース機能（ソフトウェア部品管理機能を含む）をコントローラ部品の生成に適用した点が相違している。なお、本実施形態のユーザインタフェース装置は、第１の実施形態と概ね同様の構成を有しているために、図１、図３、図４、図７を用いると共に同一構成には同一符号を付与して説明を省略する。
【００２８】
本実施形態のコントローラ部品生成方法は、第１の実施形態に準じてＲＯＭ４、ＮＶＲＡＭ１０、記憶装置５等にインストールされたコントローラ部品生成プログラムにより実現される。このコントローラ部品生成プログラムは、ＣＰＵ３（コンピュータ装置に含まれる）に、図１０に示すステップＳ１０１〜Ｓ１０６を実行させるものである。
ステップＳ１０１においては、コントローラ部品生成のために選択されたビュー部品を操作パネル２に表示する。
ステップＳ１０２においては、操作パネル２の操作等により、コントローラ部品を生成させるコマンドが入力されたか否かを判断する。ここで、前記コマンドが入力された場合はステップＳ１０３へ進み、コマンドが入力されなかった場合には処理を終了する。
ステップＳ１０３においては、関連テーブル６０を参照し、前記ビュー部品と組み合わせ可能なコントローラ部品を操作パネル２に表示する。
ステップＳ１０４においては、ステップＳ１０３で表示されたコントローラ部品群のいずれかが選択されたか否かを判断する。ここで、操作パネル２の操作等により、前記コントローラ部品群のいずれかが選択された場合はステップＳ１０５へ進み、前記コントローラ部品群のいずれも選択されなかった場合には処理を終了する。
ステップＳ１０５においては、ステップＳ１０４で選択されたコントローラ部品を生成する。ここで、当該コントローラ部品の生成状態は操作パネル２に表示される。
ステップＳ１０６においては、操作パネル２の操作等により、終了コマンドが入力されたか否かを判断する。ここで、終了コマンドが入力された場合は処理を終了し、入力されなかった場合にはステップＳ１０１に戻ってコントローラ部品の生成を繰り返す。
【００２９】
以上のように、本発明の第２の実施形態に係るコントローラ部品生成方法（ソフトウェア部品管理方法に含まれる）は、複数のコントローラ部品との関係が予め定義づけられているビュー部品を画面表示する第１のステップ（ステップＳ１０１を含む）と、前記ビュー部品と複数のコントローラ部品との関係を画面表示する第２のステップ（ステップＳ１０２、Ｓ１０３を含む）と、前記複数のコントローラ部品のいずれかが選択された場合に、当該コントローラ部品を生成する第３のステップ（ステップＳ１０４、Ｓ１０５を含む）とを実行しているので、ビュー部品とコントローラ部品との間に対応関係を定義し、対応関係のない部品同士は選択できないようにすることができる。よって、ソフトウェア部品の不適当な使い方を制限し、再利用コンポーネントを使用したソフトウェア部品生成を効率的に支援できることとなる。
【００３０】
［第３の実施形態］
図１１に、本発明の第３の実施形態に係るコントローラ部品解析方法を示すフローチャートである。これは第１の実施形態とは、関連テーブル６０を用いたユーザインタフェース機能（ソフトウェア部品管理機能を含む）を、生成されたコントローラ部品のコンパイル時に適用した点が相違している。なお、本実施形態のユーザインタフェース装置は、第１の実施形態と概ね同様の構成を有しているために、図１、図３、図４、図７を用いると共に同一構成には同一符号を付与して説明を省略する。
【００３１】
本実施形態のコントローラ部品解析方法は、第１の実施形態に準じてＲＯＭ４、ＮＶＲＡＭ１０、記憶装置５等にインストールされたコントローラ部品解析プログラムにより実現される。このコントローラ部品解析プログラムは、ＣＰＵ３（コンピュータ装置に含まれる）に、図１０に示すステップＳ２０１〜Ｓ２０６を実行させるものである。
ステップＳ２０１においては、予め生成されたコントローラ部品を含むソフトウェアをコンパイルするときに、操作パネル２の操作等により、コンパイルのための操作コマンドが入力されたか否かを判断する。ここで、操作コマンドが入力された場合はステップＳ２０２へ進み、操作コマンドが入力されなかった場合には処理を終了する。
ステップＳ２０２においては、前記ソフトウェアに含まれるビュー部品のいずれかを設定する。
ステップＳ２０３においては、ステップＳ２０２で設定されたビュー部品について指定されているコントローラ部品を順次取得する。
ステップＳ２０４においては、関連テーブル６０を参照し、ステップＳ２０２で設定されたビュー部品と、ステップＳ２０３で取得されたコントローラ部品との関係をチェックする。
ステップＳ２０５においては、前記ビュー部品と前記コントローラ部品とが組み合わせ可能な場合はステップＳ２０２に戻り、前記ビュー部品と前記コントローラ部品との組み合わせが適当でない場合には、操作パネル２にエラー表示をして処理を中断または終了する。
【００３２】
以上のように、本発明の第３の実施形態に係るコントローラ部品解析方法（ソフトウェア部品管理方法に含まれる）は、生成されたソフトウェアを解析する場合に、このソフトウェアに含まれるビュー部品を設定する第１のステップ（ステップＳ２０１、Ｓ２０２を含む）と、第１のステップで設定されたビュー部品に対して指定されているコントローラ部品を順次取得する第２のステップ（ステップＳ２０３を含む）と、予め定義されているビュー部品とコントローラ部品との関係により、第１のステップで設定されたビュー部品と第２のステップで順次取得されたコントローラ部品との組み合わせが正当か否かを判断する第３のステップ（ステップＳ２０４、Ｓ２０５を含む）とを実行しているので、ビュー部品と組み合わせ可能なコントローラ部品か否かを容易に判断することができる。よって、対応関係のない部品同士の組み合わせを排除し、再利用コンポーネントを使用して生成されたソフトウェアの解析を効率的に支援できることとなる。
【００３３】
【発明の効果】
以上説明したように、本発明は全体としてソフトウェア部品の構成を、制御対象と制御方法に分離することにより、表示、制御、データの視点から部品の再利用性が向上し、メンテナンスが容易になるので、ソフトウェア開発者の負担を軽減し、開発効率を向上させるという優れた効果を有するユーザインタフェース装置を提供することができるものである。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係るイメージ入出力装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態に係る組み込みソフトウェアの構成を説明する説明図である。
【図３】本発明の第１の実施形態に係るユーザインタフェース部品の構成を説明する説明図である。
【図４】本発明の第１の実施形態に係るユーザインタフェース部品を利用したソフトウェアのシステム構成を説明する説明図である。
【図５】本発明の第１の実施形態で利用するＭＶＣの概念とクラスを説明する説明図である。
【図６】本発明の第１の実施形態に係る画面サブシステムの構成を説明する説明図である。
【図７】本発明の第１の実施形態に係る関係テーブルの説明図である。
【図８】本発明の第１の実施形態に係る画面生成シーケンスを示す遷移図である。
【図９】本発明の第１の実施形態に係るメニュー選択時の画面生成シーケンスを示す遷移図である。
【図１０】本発明の第２の実施形態に係るコントローラ部品生成方法を示すフローチャートである。
【図１１】本発明の第３の実施形態に係るコントローラ部品解析方法を示すフローチャートである。
【符号の説明】
１　スキャン・プリントエンジン
２　操作パネル
３　ＣＰＵ
４　ＲＯＭ
５　記憶装置
６　ディスクドライバ
７　通信制御部
８　バス
９　ＲＡＭ
１０　　ＮＶＲＡＭ
１１　パネル制御部
１２　エンジン制御部
１３　モデム
１４　ホストインタフェース（Ｉ／Ｆ）
１５　ネットワーク
１６、１７　パーソナルコンピュータ（ＰＣ）
８０　イメージ入出力装置
【図１】
2004054683.tif 000003
【図２】
2004054683.tif 000004
【図３】
2004054683.tif 000005
【図４】
2004054683.tif 000006
【図５】
2004054683.tif 000007
【図６】
2004054683.tif 000008
【図７】
2004054683.tif 000009
【図８】
2004054683.tif 000010
【図９】
2004054683.tif 000011
【図１０】
2004054683.tif 000012
【図１１】
2004054683.tif 000013