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