ユーザインタフェースのモデリングについて

MDD/MDAなどでいつも困るのがUIのモデリングです。 そこでどこかに何らかのオープンなUIモデリング技術が存在するはずだと思いWikipediaにあたってみました。

  1. User Interface Modeling
  2. 上記の機械翻訳版

そして幾つかのプロジェクトについて知ることが出来ました。

  1. UMLi
  2. DiaMODL
  3. Himalia

これらが直ぐそのまま使えるとは思いませんが、考えるにあたっての良い開始点になりそうです。 現実のプロジェクトでは画面設計や帳票設計というものが存在しますが、クロスプラットフォーム環境を考えると、例え表示機能はブラウザに任せるにしても、やはり設計は必要になります。 もう少し抽象レベルの高いモデルと呼べそうなUI設計が必要だろうと思います。

OMGで現在今後のUMLをどうするか検討しているようですが、UIモデリングがUMLの守備範囲に入れば良いのになと思っています。

ユーザインタフェースのモデリングについて

User Interfaceについて

UI(User Interface)といっても画面設計や画面遷移の話だけではありません。DDD(Domain Driven Design)について書いたものやサンプルなどを眺めると、どうもdomain objectを設計するとそれが殆どそのままUIに反映されてユーザに提示されることが多いようです。DDDファミリーに属すと思われるある方式では更にそういったUIが自動的に生成できないといけないとうたっています。これはデータ中心でEntityを設計した場合、そこにある属性情報などが全部自動的にUIに対応づけられるような話です。

一つのアプローチだとは思いますが、多様な要求がありそうな日本の市場で通じるかなと思います。過去の経験からも画面や帳票設計は非常にビジネスプロセスとの関わりが深く、例えば一つの画面に一つのdomain objectないしentityの情報しか並べないという画面設計しか出来ないとすると、このアプローチでは100%の現実解を得ることが難しいと思います。取引・トランザクションの側から考えても、一つの取引・トランザクションに複数のdomain objectsが関与するのは当然あることです。例えば、複数のdomain objectsの情報を一つの画面で扱う必要があったり、ビジネスプロセス自体にかかわる画面設計が必要だあったり、などのケースも考えられます。これをWebアプリケーション定番のMVCと上の前提で実現しようとしても常にきれいな形で整理出来ると思えません。

従来通りの発注者との調整のやり方を踏襲すると、UIを意識したUIオブジェクトやビジネスプロセスを意識したプロセスオブエジェクをドメインオブジェクトの中に紛れ込ませる必要があるのかもしれません。ピュアなDDDを目指す方には邪道と思われるかもしれませんが。

User Interfaceについて