コンピューティングにおいて、オブジェクト指向ユーザーインターフェイス( OOUI ) は、オブジェクト指向プログラミングのメタファーに基づくユーザーインターフェイスの一種であり、 MacOSやWindowsなどの最新のオペレーティングシステム (「オブジェクト指向オペレーティングシステム」) のほとんどで使用されています。OOUI では、ユーザーは、アプリケーションが関係するドメイン内のエンティティを表すオブジェクトと明示的に対話します。たとえば、多くのベクター描画アプリケーションには、線、円、キャンバスなどのオブジェクトである OOUI があります。ユーザーは、オブジェクトを明示的に選択したり、オブジェクトのプロパティ (サイズや色など) を変更したり、オブジェクトに対して他のアクション (移動、コピー、再配置など) を実行したりできます。ビジネスアプリケーションに OOUI がある場合、ユーザーは、顧客、製品、注文などのビジネスドメイン内のエンティティを表すオブジェクトを選択したり、オブジェクトに対してアクションを実行したりできます。
ヤコブ・ニールセンは、関数指向インターフェースと対比して OOUI を定義しています。「オブジェクト指向インターフェースは、関数指向インターフェースと比較して、アプリケーションを裏返しにするものと言われることがあります。インタラクションの主な焦点は、通常、画面上にアイコンやウィンドウとしてグラフィカルに表示されるユーザーのデータやその他の情報オブジェクトに変わります。」[1]
Dave Collins は、OOUI を次の 3 つの特性を示すものとして定義しています。
- ユーザーはオブジェクトを認識し、それに基づいて行動する
- ユーザーはオブジェクトの動作に基づいてオブジェクトを分類できます
- ユーザーが何をしようとしているかという文脈において、すべてのユーザーインターフェースオブジェクトは、一貫した全体的な表現に収まる[2]
ジェフ・ラスキンは、OOUIの最も重要な特徴は「動詞-名詞」ではなく「名詞-動詞」のスタイルのインタラクションを採用していることであり、これには使いやすさの面でいくつかの利点があると示唆しています。[3]
他のユーザーインターフェースのアイデアとの関係
OOUI コンセプトと、次のようなユーザー インターフェイス設計における他の重要なアイデアとの間には、大きな相乗効果が期待できます。
未来的なユーザーインターフェースの構想の多くは、OOUI、特にOOGUIの概念に大きく依存しています。[4] しかし、他のアイデアの1つ以上を実装しているが、実際にはOOUIではないユーザーインターフェースの例は数多くあります。これらはしばしば誤ってOOUIとラベル付けされています。[5] 逆に、グラフィカルではなく、直接操作技術を採用しておらず、強力なメタファーを採用していないOOUIの例もあります。たとえば、Smalltalkプログラミング言語の最も初期のバージョンにはコマンドラインインターフェースがありましたが、それでも明らかにOOUIでした。[6]その後、SmalltalkはGUI、直接操作、視覚的なメタファーの開発における先駆者としてよりよく知られるようになりました。
オブジェクト指向プログラミングとの関係
OOUI とオブジェクト指向プログラミングの間には多くの概念的な類似点がありますが、必ずしも OOUI をオブジェクト指向プログラミング言語を使用して実装する必要があるわけではありません。
IBMのCommon User Access (CUA)のガイドライン(おそらくOOUI設計の標準を定義する最も包括的な試み)には、「オブジェクト指向プログラミングはオブジェクト指向ユーザーインターフェースの開発を容易にしますが、前提条件ではありません。オブジェクト指向ユーザーインターフェースは、より伝統的なプログラミング言語とツールを使用して開発できます。」と記載されています。[7]
しかし、強力な相乗効果もある。 1980年にゼロックスPARCを離れアップルに入社したラリー・テスラー氏は、この関係を強調した。
多くの観察者は、 Smalltalk のユーザー インターフェイスと Smalltalk 言語は分離可能なイノベーションであると仮定しています。その結果、Smalltalk のユーザー インターフェイスの影響を受けたほとんどのシステムは、Smalltalk の実装アプローチに頼ることなく設計されています。Apple では、 Lisa用に 6 つの初期アプリケーションを実装するためにPascal を使用した後、プログラミング言語を変更して Smalltalk のアイデアをさらに取り入れる説得力のある理由を発見しました。現在、Lisa アプリケーションは、オブジェクト、クラス、サブクラス、およびメッセージ パッシングによるプロシージャ呼び出しを特徴とする Pascal の拡張であるClascal言語で記述されています。 [8]
ドメインオブジェクトモデリングとの関係
OOUI の概念とドメイン オブジェクトからソフトウェアを構築するというアイデアの間には、明らかな相乗効果もあります。ただし、ユーザーが OOUI 内で表示および操作するオブジェクトが、アプリケーションが構築される ドメイン オブジェクトに対応している必要があるわけではありません。
CUAガイドラインでは、「オブジェクト指向のユーザーインターフェースでは、ユーザーが操作するオブジェクトは、プログラマーが製品を作成するために使用したオブジェクトやコードのモジュールと必ずしも一致するわけではありません」と述べられています。[ 7] CUAで説明されている基本的な設計方法は、 UMLを使用してインターフェースをモデル化する OVID [9]方法にさらに洗練されました。
マーク・ヴァン・ハーメレンは、「オブジェクト指向のユーザーインターフェース設計では、設計者がプロジェクトの開始時からオブジェクト指向の視点で問題を考える必要はありません。さらに、設計者が最初からオブジェクト指向の視点で作業する場合でも、オブジェクトモデルとオブジェクト指向のユーザーインターフェース設計に別々に焦点を当てることでメリットが得られます。」と述べています。[10]
対照的に、ネイキッドオブジェクトパターンは、少なくともその素朴な形では、OOUIで表現されるオブジェクトと基礎となるドメインオブジェクトとの間の直接的な対応を強制し、後者から前者を自動生成するアプリケーション設計へのアプローチです。[11]
参考文献
- ^ ニールセン、J.、ユーザビリティエンジニアリング。1993年、サンフランシスコ:モーガン・カウフマン/アカデミック・プレス
- ^ コリンズ、D.、オブジェクト指向ユーザーインターフェイスの設計。1995年、カリフォルニア州レッドウッドシティ:ベンジャミン/カミングス
- ^ ラスキン、J.、ヒューメイン・インターフェース。2000年、マサチューセッツ州レディング:アディソン・ウェズリー/ACMプレス
- ^ Dayton, Tom. 「オブジェクト指向 GUI が未来」。Presto Innovation Blog。2017年3 月 8 日閲覧。
- ^ コンスタンティン、L. および L. ロックウッド、使用のためのソフトウェア。1999 年: Addison-Wesley
- ^ Kay, A.、「Smalltalk の初期の歴史」、『プログラミング言語の歴史』、T. Bergin および R. Gibson 編。1996 年、Addison-Wesley / ACM Press: Reading、MA。p. 511-。
- ^ ab IBM、「Common User Access - ユーザーインターフェース設計ガイド」。1991 年、IBM: ノースカロライナ州、ケアリー。
- ^ Tesler, L. オブジェクト指向ユーザーインターフェイスとオブジェクト指向言語。ACM Conference n Personal and Small Computers。1983年。ニューヨーク: ACM。
- ^ Dave Roberts、Dick Berry、Scott Isensee、John Mullaly、「OVID によるユーザーのためのデザイン: ユーザー インターフェイス デザインとソフトウェア エンジニアリングの橋渡し」MacMillan、1998 年
- ^ van Harmelen, M. 編『オブジェクトモデリングとユーザーインターフェイスデザイン』2001 年、Addison-Wesley: Reading、MA。
- ^ ポーソン、R.、Naked Objects、博士論文、2004年、トリニティ・カレッジ、ダブリン、アイルランド
