反応性 - 百科事典

計算科学における「反応性」という概念は、システムや機能単位が指定された時間内に割り当てられたタスクを完了する特定の能力を指します。例えば、人工知能システムが迅速にそのタスクを理解し実行する能力を指します。

リアクティブ原理では、反応性は復元性、弾力性、メッセージ駆動と並んで、基本的な基準の一つです。これは堅牢性の原則(v原理から)の一つの基準です。他の三つの基準は、観察性、復旧性、タスク適合性です。

性能との対比
適切なプロセス管理を欠くソフトウェアは、高速なマシンでも反応性が悪くなることがあります。一方で、遅いハードウェアでも反応性のあるソフトウェアを動作させることができます。実際にシステムが利用可能なリソースを最善の方法で使用することは、非常に重要です。例えば、マウスドライバーを非常に高い優先度で実行することで、滑らかなマウスインタラクションを提供することが合理的です。長期的な操作、例えばコピー、ダウンロード、大規模なファイルの変換では、最も重要なのはユーザーフィードバックを提供することであり、操作のパフォーマンスよりもです。これらの操作はバックグラウンドで非常に効率的に行うことができます。

延迟
長い遅延はユーザーの苛立ちの原因となり得、システムが動作していないとユーザーに見せかけたり、コマンドや入力ジェスチャーが無視されたとユーザーに思わせることがあります。したがって、反応性は人間とコンピュータの相互作用(HCI)における重要なユーザビリティ問題とされています。反応性原則の背後にある理屈は、システムが操作の結果をユーザーに迅速かつ組織的に提供するべきであることです。

苛立ちの閾値は、状況やユーザーインターフェースがローカルまたはリモートシステムに依存して視覚的な反応を示すかどうかによって、非常に異なります。少なくとも三つのユーザーの耐容閾値があります:

0.1秒

0.1秒未満の反応は一瞬と感じられ、ユーザーの満足度が高いとされます;
1.0秒

0.1秒から1.0秒までの遅延は、ローカルシステムでは煩わしいと感じられますが、リモートシステムに依存するウェブインターフェースでは許容されます。この種の遅延は通常、ユーザーの思考の流れを中断しません;
10秒

1秒から10秒までの間、ユーザーの思考の流れは中断され(ユーザーの生産性が著しく影響されます)、ユーザーは実行中のタスクに注意を集中することができます;
10秒以上の待ち時間は許容できず、通常、ユーザーの実行中のタスクへの注意を中断します。

反応性を向上させるための解決策
他にも多くの選択肢があるかもしれませんが、反応性問題に対する最もよく使われ、推奨される答えは以下の通りです:

出力を提供するプロセスを最適化し、結果を生成するアルゴリズムや方法から無駄な、生産的な出力を排除することで、出力を提供するプロセスを最適化します。
適切なプロセス管理システムを使用し、ユーザーの作業フローを中断する可能性のある操作、例えばタイピング、スクリーン上のボタン、マウス指標の移動などに最高の優先度を付けます。通常、他の操作には十分な「空き時間」があります。
ユーザーが次に実行する可能性のある操作に向けた準備を「空き時間」を使って行います。
システムが忙しい間にユーザーが生産的なことを行えるようにします。例えば、フォームに入力、マニュアルを読むなどです。例えば、タブブラウザでは、ユーザーは次のページをロードする間に一つのページを読むことができます。
操作が完了する前に中間結果を提供します。例えば、すべての画像が読み込まれる前にウェブページを操作することができます。これにより、無駄に時間を無駄に消費する時間が削減されます。
待ち時間が避けられない場合は、進捗表示を使用することで苛立ちを大幅に減らすことができます。短い遅延では、アニメーションアイコンが十分かもしれません。長い遅延では、進捗バーを使用するか、可能であれば、操作が開始される前に操作がどれくらいの時間かかるかの近似値をシステムが提供するべきです。

参考情報
信頼性、可用性、可服性
弾力性(クラウドコンピューティング)
ネットワークの復元性
アジャイル構築
リアクティブユーザーインターフェース
反応的なウェブデザイン

参考文献


外部リンク
[1] David Sweetによる第9章「反応的なユーザーインターフェースの構築」
ユーザビリティ工学(1993年)の抜粋
NetBeans WikiでのUIの反応性
GNOMEヒューマンインターフェースガイドラインでの許容される応答時間
http://www.baychi.org/calendar/20031111/