پاسخگویی (رایانه)

**پاسخگویی** (به انگلیسی: Responsiveness) به عنوان یک مفهوم در علوم کامپیوتر به توانایی خاص یک سیستم یا واحد عملکردی برای تکمیل وظایف محول شده در یک زمان معین اشاره دارد. برای مثال، به توانایی و قابلیت یک سیستم هوش مصنوعی، برای درک و فهم وظایف و همچنین انجام آن‌ها در زمان مقرر شده اشاره می‌کند.

در اصل واکنشی یا reactive principal، **پاسخگویی** یکی از معیارهای اساسی در کنار elasticity، resilience و message driven است.

این مفهوم یکی از معیارهای اصل استحکام  (robustness) است. سه مورد دیگر نیز وجود دارند که مشاهده پذیری، قابلیت بازیابی و انطباق وظایف هستند.

## عملکرد
نرم‌افزاری که مدیریت فرآیند مناسبی نداشته باشد، می‌تواند حتی روی یک ماشین سریع هم پاسخ‌دهی ضعیفی داشته باشد. اما از طرف دیگر، حتی سخت افزارهای کند می توانند نرم افزارهای واکنش گرا را به خوبی اجرا کنند.

اینکه یک سیستم منابع موجود را به بهترین شکل ممکن استفاده کند در واقعیت بسیار مهمتر است. به عنوان مثال، منطقی است که اجازه دهید درایور ماوس با اولویت بسیار بالایی کار کند تا تعاملات ماوس سیال یا متحرک را فراهم کند. برای عملیات‌های طولانی‌مدت، مانند کپی کردن، دانلود کردن یا تبدیل فایل‌های بزرگ، مهم‌ترین عامل این است که بتوانید بازخورد خوبی از کاربر بگیرید و نه لزوما خود عملکرد عملیات، زیرا  عملکرد می‌تواند فقط با استفاده از زمان اضافی پردازنده به خوبی در پس‌زمینه اجرا شود.

## تاخیر
تأخیرهای طولانی می توانند یکی از دلایل اصلی ناامیدی کاربران باشند، یا می توانند کاربران را به این باور برسانند که سیستم کار نمی کند، یا یک دستور یا حرکت ورودی به کامپیوتر نادیده گرفته شده است. به همین دلیل است که پاسخگویی به عنوان یک مسئله ضروری از نظر کاربردپذیری برای تعامل انسان و رایانه ( HCI ) در نظر گرفته می شود. منطق پشت اصل پاسخگویی این است که سیستم باید نتایج یک عملیات را در زمان بندی تعیین شده و به صورت سازماندهی شده به کاربران ارائه دهد.

آستانه سرخوردگی برای کاربر می تواند کاملاً متفاوت باشد، و این بستگی دارد به موقعیت و این که رابط کاربری برای نشان دادن پاسخ به سیستم های محلی (local) وابسته است یا راه دور.

حداقل سه آستانه تحمل برای کاربران وجود دارد (یعنی):

; 0.1 ثانیه
:کمتر از 0.1 ثانیه پاسخ به عنوان آنی درک می شود (رضایت کاربر بالا).
; 1.0 ثانیه
:بین 0.1 ثانیه و 1.0 ثانیه تاخیر جزئی درک می شود، که در یک سیستم محلی آزاردهنده تلقی می شود، اما در یک رابط وب که برای پاسخ به یک سیستم راه دور وابسته است، تحمل می شود . این نوع تاخیر معمولاً جریان افکار کاربر را قطع نمی کند.
; 10 ثانیه
:بین 1 ثانیه تا 10 ثانیه، جریان افکار کاربر قطع می شود (بهره وری کاربر به شدت تحت تأثیر قرار می گیرد) اما کاربر می تواند توجه خود را بر روی کار در حال انجام متمرکز نگه دارد .
: بیش از 10 ثانیه انتظار غیرقابل قبول تلقی می شود، زیرا معمولاً توجه کاربر را به کار در حال انجام قطع می کند.

## راه حل‌هایی برای بهبود پاسخگویی
با اینکه تعداد زیادی گزینه‌ی دیگر می‌توانند وجود داشته باشند، پراستفاده‌ترین جواب‌هایی که پیشنهاد شده‌اند برای حل مشکلات مربوط به پاسخگویی در زیر آمده‌اند:

* بهینه‌سازی فرآیندی که خروجی تولید می‌کند با حذف خروجی‌های غیرضروری و ناکارآمد از الگوریتم یا روش استفاده شده.
* یک سیستم مدیریت فرآیند مناسب، اولویت بالایی به عملیات‌هایی می‌دهد که در صورت نادیده گرفته شدن ممکن است جریان کار کاربر را مختل کنند، مانند تایپ کردن، دکمه‌های روی صفحه یا حرکت دادن نشانگر ماوس. معمولاً در این میان زمان‌های بیکاری کافی وجود دارد که می‌توان از آن‌ها برای انجام عملیات‌های دیگر استفاده کرد.  
* استفاده از زمان‌های بیکاری برای آماده‌سازی عملیات‌هایی که ممکن است کاربر بخواهد در مرحله بعدی انجام دهد.  
* اجازه دادن به کاربر برای انجام کارهای مفید در حالی که سیستم مشغول است، مانند پر کردن یک فرم، خواندن یک راهنما و غیره. برای مثال، در یک مرورگر تب‌دار، کاربر می‌تواند یک صفحه را بخواند در حالی که صفحه دیگر در حال بارگذاری است.  
* تحویل نتایج با کیفیت متوسط، قبل از اتمام عملیات. برای مثال، یک صفحه وب می‌تواند قبل از بارگذاری کامل تصاویر قابل استفاده باشد، که این کار زمان بیکاری‌ای که ممکن بود به هدر برود را پر می‌کند.  
* اگر انتظار اجتناب‌ناپذیر است، یک نشانگر پیشرفت می‌تواند به طور قابل توجهی از میزان ناامیدی بکاهد. برای تأخیرهای کوتاه، یک آیکون متحرک کافی است. تأخیرهای طولانی‌تر بهتر است با یک نوار پیشرفت نمایش داده شوند، یا در صورت امکان، سیستم باید قبل از شروع عملیات، تخمینی از زمان مورد نیاز ارائه دهد.

## بیشتر بخوانید

* قابلیت اطمینان، در دسترس بودن و قابلیت سرویس دهی
* الاستیسیته (رایانش ابری)
* انعطاف پذیری شبکه
* ساخت و ساز چابک
* رابط کاربری واکنشی
* طراحی وب سایت واکنش گرا

## لینک های خارجی

* فصل 9. ساخت یک رابط کاربری پاسخگو توسط دیوید سویت
* گزیده ای از کتاب مهندسی کاربردپذیری (1993) در مورد زمان پاسخگویی
* پاسخگویی UI در ویکی NetBeans
* زمان پاسخ‌های قابل قبول از دستورالعمل‌های رابط انسانی GNOME
* http://www.baychi.org/calendar/20031111/

## منابع

* 
* 
* 
* 
رده:معماری رایانه
رده:سامانه‌های رایانه
رده:اندازه‌گیری
رده:مهندسی سامانه‌ها
رده:تکنیک‌های تاثیرپذیری متقابل