UIの文言の決め方とOOUIの話

Webサービスの開発をしていて、UIの文言について悩むことはありませんか?
個人的には、あるボタンのラベルを名詞動詞のどちらにするべきかで悩むことが多かったです。
そんなときに「他のサービスでもこうなってるし、xxがいい気がする」などと経験則に基づいて判断することはある程度できるものの、それを論理的に説明することが難しいと感じていました。

もしかしたらこのあたりは言語学や心理学に関わる話で、下手に深入りしない方がいいのでは?と思う時期もあったのですが、名詞か動詞のどちらにするべきかのヒントとなるnote記事にあるとき巡り合いました。

note.com


名詞か動詞のどちらにするべきか

名詞か動詞のどちらにするべきかについて、上記の記事では以下のように記載されていました。

  1. 選択されたオブジェクトに対するアクションは「体言止め」「名詞」を使う。
  2. アクションからオブジェクトを選択する場合は、より主観的な意識にさせるため「動詞」を使う。


基本的に同意ですが、1で使われる名詞は動名詞っぽい日本語(=動作を連想させる名詞)に自然となるので、1の場合は名詞でも動詞でも問題ないと個人的には解釈しました。

文言の決め方の話はこれで終わりですが、この記事で知った個人的に最も重要なことは、UIの構造には2種類あるという事実でした。


オブジェクトベースUIとタスクベースUI

前述の通り、UIの構造には大きく分けて2種類あります。
1、2はそれぞれオブジェクトベースUIタスクベースUIと呼ばれています。

分かりやすい例として、CUI(Character User Interface)とGUI(Graphic User Interface)があります。
CUIではキーボードでコマンドを入力することによって操作を行い、GUIではマウスや指で対象物に触れることによって操作を行います。
このことから、基本的にはCUIはタスクベースUI、GUIはオブジェクトベースUIと分類できます。

ここで注意すべきことは、GUICUIのコマンドを可視化するためだけのインタフェースではないということです。
しかしながら、現実にはCUIのコマンドを可視化しただけのGUIも数多く存在します。
飲食店の発券システムや新幹線の予約システムなどでそのようなUIを見たことがあると思います。


タスクベースのUIになってしまう原因は、機能要件を満たすことを目的として開発が行われることにあると考えられます。
先ほど例に挙げたようなシステムは特にその傾向が強く、実際に私がSIerで勤務していたときに開発に携わったシステムのことを思い返しても、やはりタスクベースUIが多いです。

タスクベースUIは従業員が業務で使うだけのシステムであれば問題ないこともあるとは思いますが、基本的には直感的な操作が難しくなります
一般ユーザも使うシステムの場合、よほどの熱意がない限りは使いづらさに耐えきれなくなり、結果として機会損失につながってしまうのではないでしょうか。


OOUIとは

ここまで、オブジェクトベースUIとタスクベースUIを比較し、タスクベースUIの生まれる背景や課題について説明してきました。
ここからはオブジェクトベースUIそのものについてもう少し触れていきます。
なお、オブジェクトベースUIはオブジェクト指向UI(Object-Oriented User Interface, OOUI)とも呼ばれているので、以降はOOUIに表記を統一します。

OOUIは、UIを作成するときにオブジェクト指向の考え方を取り入れることを指していると解釈しました。
つまり、OOUIはUIそのものに関する話というより、UIの裏側にあるオブジェクトの表示や操作に適したUIを作成するための考え方の話だということです。

OOUIについては、@manabuuenoさんの記事が非常に参考になります。

www.sociomedia.co.jp


OOUIのモデリング手順

OOUIのモデリング手順について、上記の記事では以下のように記載されていました。

  1. オブジェクトの抽出とスコープ定義
  2. ビューの定義と設計
  3. レイアウトとインタラクションの設計


各項目の詳細は上記の記事に書かれているので割愛しますが、UIから先に作成して必要なデータを後から表現するのではなく、オブジェクトの抽出を最初に行うということことが重要だと感じました。
OOUIの考え方はドメイン駆動設計(Domain-Driven Design, DDD)と非常に近しいので、ユビキタス言語ユースケースなどを作成する作業がそのまま使えます。
このあたりについては、DDD界隈で有名な@masuda220さんや@j5ik2oさんのスライドが参考になります。



以上となります。
まだまだ理解できていないこともたくさんありますが、OOUIを知ったことによりエンジニアリングとデザインは対立するものではなく表裏一体だと改めて感じました。
デザインに対する理解をもっと深めていきたいと思います。