ユーザーインターフェースモデリングは、コンピュータアプリケーションプログラマが使用する開発手法です。今日のユーザーインターフェース(UI)は複雑なソフトウェアコンポーネントであり、アプリケーションのユーザビリティにおいて重要な役割を果たしています。そのため、UIの開発には、ガイドラインやベストプラクティスレポートだけでなく、ビジュアルモデルの作成や、その視覚化のための標準化された表記法を含む開発プロセスも必要となります。
ユーザーインターフェースモデリングという用語は、主に情報技術の文脈で使用されます。ユーザーインターフェースモデルは、エンドユーザーがコンピュータプログラムや他のデバイスとどのようにやり取りするか、またシステムがどのように応答するかを表すものです。モデリングのタスクは、「物やデバイスの直接経験されるすべての側面」を示すことです。 [ 1 ]
ユーザーインターフェースのモデリングは、それ自体が確立された分野です。たとえば、モデリング技術は、ユーザーインターフェース内のインタラクションオブジェクト、タスク、および下位レベルのダイアログを記述できます。ユーザーインターフェース開発の一部としてモデルを使用することで、ユーザーの要件を把握し、特定のレイアウトやウィジェットへの時期尚早なコミットメントを回避し、インターフェースのさまざまな部分とその役割間の関係を明確にすることができます。[ 2 ]
MARIA XML (Model-based Language foR Interactive Applications)は、ユビキタス環境におけるインタラクティブアプリケーションをモデル化するための、汎用的で宣言的な、複数の抽象化レベルを持つXMLベースのユーザーインターフェースマークアップ言語です。
ユーザーインターフェースのモデリングの一部はUMLを用いて実現できる。しかし、UMLは主にこのようなモデリングを目的とした言語ではないため、モデルがやや人工的なものになる可能性がある。
UMLiはUMLの拡張機能であり、ユーザーインターフェースで一般的に用いられる表現方法のサポートを追加しています。
UMLのアプリケーションモデルではユーザーインターフェースのごく一部しか記述できず、またモデルベースのユーザーインターフェース開発環境(MB-UIDE)にはアプリケーションのモデリング機能が不足しているため、マンチェスター大学は1998年にUMLi研究プロジェクトを開始しました。UMLiは、UMLとMB-UIDEを組み合わせることで、ユーザーインターフェースの設計と実装という課題に取り組むことを目的としています。
USIXML (USer Interface eXtensible Markup Language)は、ユーザーインターフェース設計のためのXMLベースの仕様記述言語です。文字ユーザーインターフェース(CUI)、グラフィカルユーザーインターフェース(GUI)、聴覚ユーザーインターフェース、マルチモーダルユーザーインターフェースなど、複数の使用状況におけるUIの記述をサポートします。
DiaMODLは、データフロー指向言語(Pisaインタラクタ抽象化)と、振る舞いに重点を置いたUMLステートチャートを組み合わせたものです。データフローだけでなく、インタラクションオブジェクトの振る舞いもモデル化できます。具体的なユーザーインターフェースの機能と構造を文書化するために使用できます。
Himaliaはハイパーメディアモデルと制御/合成パラダイムを組み合わせたものです。完全なユーザーインターフェース言語であり、仕様記述だけでなく実行にも使用できるため、この設計ツールはガイドツールに分類できます。[ 3 ]
ユーザーインターフェースのさまざまな側面には、それぞれ異なるモデルタイプが必要です。UIモデリングで検討される可能性のあるモデルには、次のようなものがあります。
UMLは、上述のいくつかのモデルに対して、程度の差こそあれ適用可能であるが、ユーザーモデリング、プラットフォームモデリング、プレゼンテーションモデルについてはサポートしていない。
ユーザーインターフェースをモデル化するには、いくつかの手法が存在する。
使用中心設計では、モデリングの目的は、計画されたシステムの実際の表示方法と、ユーザーとのインタラクションがどのように行われるべきかを示すことです。これはおそらく最も高く評価されているアプローチであり、大小さまざまなプロジェクトで成功裏に活用されてきました。その強みは、複雑な問題への対応力にあります。
モデルベースのアプローチの既知の問題点としては、情報の再記述や、横断的な懸念を効果的に解決するメカニズムの欠如などが挙げられる。[ 4 ]モデルベースのソリューションは単独ではうまく機能するが、他のアプローチとの統合は開発と保守作業の複雑さを招く。
これらのアプローチは、既存の汎用言語 (GPL) コードベースに基づいています。[ 5 ]メタプログラミングによってコードを検査し、UI に変換される構造モデルを組み立てます。このアプローチは、情報の再記述に対応しています。これらのアプローチは、適応型およびコンテキスト認識型の UI には適していません。
これらのアプローチは、ドメインメソッドとGPL(ジェネレーティブプログラミング)を連携させるものです。横断的な関心事はコンパイル時に処理されますが、実行時情報を必要とする将来の適応型UIには直接対応できません。
Tomáš Černý が提案したアスペクトベースのソリューションは、コード検査ベースと生成プログラミングのアプローチの利点を統合しています。[ 6 ]既存のコードを検査し、アスペクト指向の手法を適用して横断的な関心事に対処します。実行時に動作し、情報の再記述を削減すると同時に、UI の関心事を分離して、それぞれを他の関心事とは独立して再利用できるようにします。ある研究では、著者らは、本番システムに適用したアスペクトベースの UI アプローチにより、UI コードを 32% 削減しました。[ 4 ]主な利点は、プレゼンテーションを調整するためのテンプレート、関心事の個別の定義、およびさまざまなデータに適用できる汎用的な変換ルールです。
この種のモデルは、ユーザーインターフェースの内容とその様々な構成要素を示します。これは使用中心の設計モデルであるため、美観や動作の詳細は含まれません。