ユーザーインターフェースモデリングは、コンピュータアプリケーションプログラマーが用いる開発手法です。今日のユーザーインターフェース(UI)は複雑なソフトウェアコンポーネントであり、アプリケーションのユーザビリティにおいて重要な役割を果たします。そのため、UIの開発には、ガイドラインやベストプラクティスレポートだけでなく、視覚モデルの作成と、その視覚化のための標準化された表記法を含む開発プロセスも必要です。
ユーザーインターフェースモデリングという用語は、主に情報技術の文脈で用いられます。ユーザーインターフェースモデルとは、エンドユーザーがコンピュータプログラムや他のデバイスとどのようにインタラクションし、システムがどのように反応するかを表現するものです。モデリングの目的は、モノやデバイスが 「直接体験する側面」をすべて示すことです[Trætteberg2002]。
ユーザーインターフェースのモデリングは、それ自体が確立された専門分野です。例えば、モデリング技術は、ユーザーインターフェースにおけるインタラクションオブジェクト、タスク、そして低レベルのダイアログを記述することができます。ユーザーインターフェース開発においてモデルを用いることで、ユーザー要件を把握し、特定のレイアウトやウィジェットへの早急なコミットメントを回避し、インターフェースを構成する様々なパーツ間の関係性とその役割を明確にすることができます。[SilvaPaton2003]
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は、ハイパーメディアモデルと制御/複合パラダイムを組み合わせたものです。完全なユーザーインターフェース言語であり、仕様記述だけでなく実行にも使用できます。そのため、このデザイナーツールはギルダーに分類されます。[1]
ユーザーインターフェースの様々な側面には、それぞれ異なる種類のモデルが必要です。UIモデリングで検討できるモデルには、以下のようなものがあります。
UML は、上記のモデルのいくつかにさまざまな成功度で使用できますが、ユーザー モデリング、プラットフォーム モデリング、プレゼンテーション モデルのサポートが不足しています。
ユーザー インターフェイスをモデリングするには、いくつかのアプローチがあります。
使用中心設計におけるモデリングの課題は、計画されたシステムの実際のプレゼンテーションとユーザーインタラクションがどのように行われるかを示すことです。これはおそらく最も高く評価されているアプローチであり、大小さまざまなプロジェクトで成功を収めてきました。その強みは複雑な問題にあります。
モデルベースアプローチの既知の問題としては、情報の再表現や、横断的な懸念事項を効果的に解決するためのメカニズムの欠如などが挙げられます[Cerny2013]。モデルベースソリューションは単体でも十分に機能しますが、他のアプローチとの統合は開発と保守の作業を複雑化させます。
これらのアプローチは、既存の汎用言語(GPL)コードベース[Cerny2012]に基づいています。メタプログラミングを通じてコードを検査し、UIに変換される構造モデルを構築します。このアプローチは情報の再表現に対処します。これらのアプローチは、適応型UIやコンテキストアウェアUIには適していません。
これらのアプローチは、ドメインメソッドをGPL(生成プログラミング)と結び付けます。横断的な関心事はコンパイル時に解決されるため、実行時情報を必要とする将来の適応型UIに直接対応することはできません。
[Cerny2013][Cerny2013a][AspectFaces] で提案されたアスペクトベースのソリューションは、コードインスペクションベースと生成プログラミングアプローチの利点を統合しています。既存のコードを検査し、アスペクト指向手法を適用して横断的な関心事に対処します。実行時に動作し、情報の再記述を削減すると同時に、UIの関心事を分離することで、それぞれを独立して再利用できるようにします。[Cerny2013] の研究では、著者らはアスペクトベースのUIアプローチを本番システムに適用することで、UIコードを32%削減しました。主な利点は、プレゼンテーションを調整するためのテンプレート、関心事の個別定義、そして様々なデータに適用可能な汎用的な変換ルールです。
この種のモデルは、ユーザーインターフェースとその様々なコンポーネントの内容を示します。これは使用中心設計モデルの一種であるため、美観や動作の詳細は考慮されません。