وهمه پارامترهای آن عموما مفاهیم کمی هستند. در ادامه تعریف مختصر آنها ارائه میشود.
شاخه Means روشهای رسیدن به قابلیت اعتماد در نرم افزار را به دو صورت اصلی معرفی میکند.
۱-آنهایی که در زمان ساخت[۵۵] نرم افزار استفاده میشوند که خود شامل روشهای جلوگیری و اجتناب از خطا[۵۶] و روشهای مقاوم در مقابل بروز خطا [۵۷] تقسیم میگردند.
۲-آنهایی که در زمان اعتبار دهی[۵۸] نرم و افزار یعنی پس از تولید و توسعه نرم افزار استفاده میشوند و شامل روش تشخیص و از بین بردن خطا [۵۹] وروش تخمین زدن و پیشبینی کردن میزان خطا و پیامدهای ناشی از آن[۶۰] میباشد.
شاخه Threats شامل مواردی میشود که باعث از بین رفتن قابلیت اعتماد نرم افزار میشود که شامل نقص ، خطا و شکست میباشد.
شاخه Attributes شامل خصوصیاتی است که موجب قابلیت اعتماد نرم افزار میشود و روشهای جهت نیل به این هدف ارائه میکند،که شامل مواردی همچون Availability,Relability و…میباشد.
تحملپذیری سیستم در بعدهای سختافزاری و نرم افزرای قابل بررسی میباشد .
قابلیت اطمینان[۶۱]
قابلیت اطمینان که با R(t) نمایش می دهند، احتمال شرطی این است که سیستم در بازه زمانی [t0..t] به درستی کار کند، به شرط اینکه سیستم در ابتدای زمانی درست بوده باشد. قابلیت اطمینان معیاری برای پیوستگی و تداوم سرویس درست می باشد. قابلیت اطمینان بالا از سیستمی مورد انتظار است که باید بدون هیچگونه وقفه ای عمل کند .
مثلا از یک سیستم کنترل ترافیک خطوط هوایی انتظار می رود که سرویس بدون وقفه ای ارائه دهد . قابلیت اطمینان تابعی از زمان است. بازه زمانی در این پارامتر بستگی به ماهیت سیستم مورد نظر دارد.
قابلیت دسترسی[۶۲]
سیستم هایی وجود دارد که باید طوری طراحی شوند که بدون وقفه و بدون هر گونه نگهداشتی و به طور پیوسته به عملیات خود ادامه دهند. در بسیاری از موارد نه تنها احتمال خرابی، بلکه تعداد خراب یها و به ویژه زمان مورد نیاز برای تعمیر خرابی ها نیز بسیار اهمیت دارد. برای چنین کاربردهایی قابلیت دسترسی بسیار پر اهمیت است به طوریکه توسط آن میتوان زمان مورد نیاز عملکرد سیستم را افزایش داد. قابلیت دسترسی A(t) یک سیستم در لحظه t احتمال این است که سیستم در لحظه t ، به درستی در حال سرویس دهی باشد. A(t) مقدار قابلیت دسترسی متوسط در بازه زمانیT میباشد .این بازه زمانی میتواند طول عمر سیستم یا زمان اتمام یک وظیفه خاص باشد.در هر صورت قابلیت دسترسی یک پارامتر وابسته به زمان میباشد.
اگر سیستمی قابل تعمیر نباشد قابلیت دسترسی آن برابر با قابلیت اطمینان سیستم خواهد شد. یعنی احتمال اینکه سیستم در بازه زمانی صفر تا t دچار خرابی نگردد بنابراین وقتی که t.به سمت بینهایت می رود، قابلیت اطمینان،حالت پایدار سیستمی که نیاز به تعمیر ندارد، صفر میشود.
ایمنی[۶۳]
از دیدگاه ایمنی، خرابی ها به دو نوع تقسیم می شوند: ایمن به خرابی و ناایمن به خرابی. ایمن به خرابی یعنی اتفاق ناگواری با وقوع این نوع خرابی نمی افتد. به عنوان مثال، می توان یک سیستم اعلان خطر را در نظر گرفت. اعلان خطر را به دو صورت می توان در نظر گرفت. اعلان خطر به دلیل وجود خطر در سیستم و یا اعلان خطر نادرست زمانی که یک خطری وجود ندارد. اولی از نوع ناایمن به خرابی است و دومی به دلیل ایمن به خرابی می باشد . ایمنی سیستم، یعنی احتمال اینکه سیستم به درستی عملکرد خود را انجام دهد یا به دلیل خرابی از نوع ایمن به خرابی، عملیات خود را قطع کند. ایمنی در سیستم های کنترل انرژی هسته ای و شیمیایی پرکاربرد است . بسیاری از خرابی های غیر ایمن به دلیل اشتباهات بشری است. مثلاً در نیروگاه اتمی چرنوبیل انجام آزمایش ها در شرایطی که سیستم های ایمنی به طور دستی خاموش شده بودند، باعث وقوع فاجعه شد. یک مهندس برق که آشنایی کافی با نیروگاه های هسته ای نداشت، می خواست ببیند که می توان از انرژی رسوب شده برق تولید کرد . در نتیجه برخی سیستم های ایمنی را خاموش کرده بود که باعث شد چنین فاجع های رخ دهد.
قابلیت نگهداری
نگهداری به دو دسته اصلی تعمیرو اصلاح تقسیم می شود. مقوله تعمیر و تحملپذیری خطا مفاهیم مرتبط با یکدیگر هستند. تفاوت میان تحملپذیری خطا و نگهداری بدین صورت است که در نگهداری همواره یک عامل خارجی دخالت دارد. مانند یک تعمیرکار، یک دستگاه آزمون و یا بارگذاری مجدد نرم افزاراز راه دور. در حالی که تعمیر بخشی از فرایند رفع نقص در طول فاز مصرف میباشد و پیشبینی نقص معمولاً موقعیتهای تعمیر را بررسی می کند.
خاصیت تعمیرپذیری [۶۴] با M(t) نمایش داده میشود و عبارت است از احتمال اینکه سیستم خراب شده در مدت زمان مشخصی به کار برگردد.
آزمونپذیری[۶۵]
عبارت است از قابلیت یک سیستم برای تست خواص آن سیستم که در سیستم های قابل اعتماد این کار بصورت اتوماتیک انجام میشود.
امنیت
امنیت، وجود همزمان قابلیت دسترسی برای کاربران مجاز، محرمانگی و یکپارچگی می باشد. امنیت از جمله مواردی است که در حوزه های مختلف تعریف می شود. با این وجود، امنیت در تمام حوز ه ها در سه ویژگی اولیه تحت عنوان محرمانگی، صحت و درستی و قابلیت دسترس پذیری اشتراک دارند.
نقص و خطا و شکست[۶۶]
نقص ، خطا و شکست مفاهیمی هستند که معمولا مترادف هم و گاهی نیز به جای هم استفاده میشوند. در حقیقت نقص، خطا و شکست به صورت یک زنجیر علت و معلول تعریف می شوند. هر کاستی و نقص مانند قطع شدن سیم، سوختن یک ترانزیستور و غیره یک نقص تلقی می شود. خطا به علت بروز نقص ممکن است رخ دهد. در واقع اگر نقص حالت و وضعیت یک مولفه از سیستم را تغییر دهد، خطا رخ داده است. حال اگر بروز این خطا موجب شود که سیستم نتواند کارکرد صحیح خود را ارائه دهد، خطا منجر به شکست می شود. پس می توان گفت رابطه علت و معلول که در شکل زیر نشان داده شده برای این مفاهیم صادق است.
شکل ۱۰رابطه علت و معلول نقص، خطا و شکست
نقص ها ممکن است سخت افزاری یا نرمافزاری باشند. هر کدام از این نوع نقصها ممکن است در هر یک از مراحل توسعه سخت افزار یا نرم افزار ایجاد شوند. مثلاٌ ممکن است نقص در مرحله ایجاد نیازمندی ها، طراحی، پیاده سازی و یا در طول استفاده وارد سیستم شود که روی هم انباشته می شوند.
کارایی[۶۷]
در برخی موارد ممکن است سیستم را به گونه ای طراحی کنند که پس از وقوع یک عیب سیستم در یک سطح پایین تر و شاید راندمان پایین تر کار کند یا به کار خود ادامه دهد .مثلا در سیستمهای چند پردازنده ای انتظار میرود عیب یکی از پردازنده ها کار سیستم را متوقف نکند بلکه سرعت عملیات را کاهش دهد یا بار کاری را بین بقیه پردازنده ها تقسیم کند.
تحملپذیری خطا[۶۸]
خصوصیت کیفی تحملپذیری خطا در ارتباط با نقص بوجود آمده در سیستم و پیامدهای همراه با آن است. یک نقص در صورت اینکه مورد بررسی قرار نگیرد و برطرف نشود منجر به شکست میشود. شکست سیستم زمانی رخ می دهد که سیستم سرویس های پیش فرض خود را به طور مناسب ارائه نکند. همچنین وقتی شکست روی می دهد نتایج آن توسط کاربران سیستم قابل مشاهده است. حوزه های مرتبط با این خصوصیت کیفی عبارتند از:
چگونه نقص در یک سیستم رخ می دهد.
چگونه نقص بوجود آمده در سیستم تشخیص داده می شود.
چگونه می توان جلوی یک نقص را گرفت.
زمانی که یک نقص رخ میدهد چه اتفاقی میافتد.
زمانیکه یک شکست رخ میدهد چه نوع اخطارهایی لازم است.
تا چه مدت سیستم در حالت عملیاتی نیست )در صورت شکست. (
باید توجه کرد که میان دو مفهوم نقص و شکست تفاوت وجود دارد. یک نقص در صورت اینکه مورد بررسی قرارنگیرد و برطرف نشود منجر به شکست می شود. یک شکست توسط کاربر سیستم قابل مشاهده است در حالی که نقص توسط کاربر قابل مشاهده نیست. زمانی که یک نقص توسط کاربر قابل مشاهده می شود در واقع آن تبدیل به شکست شده است. به عنوان مثال، یک نقص می تواند انتخاب الگوریتم اشتباه برای یک محاسبه باشد که نهایتاً نتیجه اشتباه حاصل شده توسط الگوریتم اشتباه منجر به شکست میشود.
یکی از مهمترین مفاهیم در زمانیکه سیستم دچار شکست می شود مدت زمان لازم برای تعمیر است . از آنجایی که شکست سیستم توسط کاربران قابل مشاهده است بنابراین زمان برطرف کردن شکست برابر است با زمان بین مشاهده شده شکست توسط کاربر تا زمانی که دیگر شکست قابل مشاهده نیست(سیستم تعمیر می شود). تفاوت بین شکست ونقص ارائه کننده مفهوم راهبردهای تعمیر خودکار است. معنی راهبرد تعمیر خودکار اینکه در زمان اجرای سیستم اگر نقصی روی دهد، سیستم بدون آنکه شکست را نشان دهد (دچار شکست شود) آن نقص را اصلاح کند. بنابراین با این راهبرد، دیگر در سیستم شکست وجود نخواهد داشت.
در سیستمهای کامپیوتری تحملپذیری در مقابل خطا با استفاده ازروشهای مختلف افزونگی همچون سختافزاری ،نرمافزاری ،اطلاعات و زمانی حاصل میشود که با تکنیکهای مختلفی همچون ایستا،داینامیک و ترکیبی پیادهسازی میشود.
۱-ایستا یا ایستاتیک[۶۹] مانند روشهای پوشاندن عیب
۲-داینامیک[۷۰] مانند روشهای تشخیص خطا سپس ایزوله کردن آن و ترمیم خطا
۳-روش ترکیبی[۷۱] یا هیبرید شامل پوشاندن عیب ،تشخیص و ترمیم خطا
افزونگی [۷۲]
افزونگی یکی از مهمترین ابزارها در ایجاد تحملپذیری خطای سیستم ها می باشد . مقصود از افزونگی، ایجاد توانایی های عملی است که در یک محیط عاری از نقص غیر ضروری است . افزونگی می تواند به صورت یک قطعه سخت افزار تکراری و یا چند خط از کد برنامه که درستی نتایج برنامه را صحت سنجی می کند، باشد. افزونگی با اضافه کردن چند واحد به جای یک واحد و استفاده کردن از همه آنها سعی میکند احتمال درست کار کردن سیستم را بالاببرد. مثلاً فرض کنید که یک سیستم به جای آنکه یک پردازنده داشته باشد، شامل دو پردازنده باشد. حال اگر یکی ازآنها از کار بیافتد سیستم می تواند به طور خودکار پردازنده دوم را جایگزین کند. افزونگی به چند شکل می تواند وجودداشته باشد: سخت افزاری، نرمافزاری، اطلاعاتی و زمانی.