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