←
↑
UI作成が大変である理由
→
対話的設計
実装/評価が何度も繰り返されることが望ましい
グラフィック設計
使い易い配置の決定には試行錯誤が必要
非同期入出力のサポート
常にユーザ入力を受け付ける
複数入出力のサポート
制御構造
アプリケーション部とインタフェース部の交錯
プログラムの状態遷移が複雑
並列処理
インタフェース部品の独立動作
アプリケーション部とインタフェース部の分離
実行効率
高速描画/検索/etc.
エラーへの対応
ユーザに責任を転嫁しないための工夫が必要
× 「エラー: ファイルを保存できません」
○ ファイル名を変えてみる/要らないファイルを消す/理由を解析する/...
例外処理
時間切れ、資源不足、etc. に対応しなければならない
Undo
特殊な要素技術
音声認識
ジェスチャー認識