اطمینان‌پذیری

از ویکی‌پدیا، دانشنامهٔ آزاد

در مهندسی سیستم، اطمینان‌پذیری معیار اندازه‌گیری در دسترس بودن سیستم، قابلیت اطمینان، و قابلیت نگهداری آن و عملکرد پشتیبانی نگهداری و در برخی موارد، سایر ویژگی‌ها مانند دوام، ایمنی و امنیت است.[۱] در مهندسی نرم‌افزار، قابلیت اطمینان توانایی ارائه خدماتی است که به‌طور قابل دفاع در یک بازه زمانی قابل اعتماد است.[نیازمند منبع] این ممکن است شامل مکانیسم‌هایی باشد که برای افزایش و حفظ قابلیت اطمینان یک سیستم یا نرم‌افزار طراحی شده‌اند.[۲]

کمیسیون بین‌المللی الکتروتکنیک (IEC)، از طریق کمیته فنی TC 56 خود، استانداردهای بین‌المللی را تدوین و حفظ می‌کند که روش‌ها و ابزارهای سیستماتیک برای ارزیابی قابلیت اطمینان و مدیریت تجهیزات، خدمات و سیستم‌ها را در طول چرخه زندگی خود ارائه می‌دهد.

قابلیت اطمینان را می‌توان به سه عنصر تقسیم کرد:

  • ویژگی‌ها - راهی برای ارزیابی قابلیت اطمینان یک سیستم
  • تهدیدها - درکی از مواردی که می‌توانند بر قابلیت اطمینان یک سیستم تأثیر بگذارند
  • معنی - راه‌هایی برای افزایش قابلیت اطمینان سیستم

تاریخچه[ویرایش]

برخی منابع معتقدند که این کلمه در نوزده نوجوان در تبلیغات چاپ اتومبیل برادران دوج ایجاد شده‌است. اما این کلمه قبل از آن دوره است، واژه‌نامه انگلیسی آکسفورد اولین کاربرد خود را در سال ۱۹۰۱ پیدا کرد.

با افزایش علاقه به تحمل خطا و قابلیت اطمینان سیستم در دهه‌های ۱۹۶۰ و ۱۹۷۰، میزان اطمینان از معیار [x] بود زیرا معیارهای اطمینان شامل اقدامات اضافی مانند ایمنی و یکپارچگی بودند.[۳] در اوایل دهه ۱۹۸۰، ژان کلود لاپری به همین دلیل قابلیت اطمینان را به عنوان اصطلاح انتخاب کرد تا شامل مطالعات مربوط به تحمل خطا و قابلیت اطمینان سیستم بدون گسترش معنای ذاتی قابلیت اطمینان باشد.[۴]

حوزه اطمینان از این آغازین تبدیل به یک زمینه تحقیقاتی فعال بین‌المللی شده‌است که توسط تعدادی از کنفرانس‌های برجسته بین‌المللی، به ویژه کنفرانس بین‌المللی سیستم‌ها و شبکه‌های قابل اعتماد، سمپوزیوم بین‌المللی سیستم‌های توزیع شده قابل اعتماد و سمپوزیوم بین‌المللی قابلیت اطمینان نرم‌افزار پشتیبانی می‌شود. مهندسی.

به‌طور سنتی، قابلیت اطمینان برای یک سیستم شامل در دسترس بودن، قابلیت اطمینان، قابلیت نگهداری است اما از دهه ۱۹۸۰، ایمنی و امنیت به اقدامات قابلیت اطمینان اضافه شده‌است.[۵]

عناصر قابلیت اطمینان[ویرایش]

ویژگی‌ها[ویرایش]

طبقه‌بندی که رابطه بین قابلیت اعتماد و امنیت و ویژگی‌ها، تهدیدها و معنی‌ها را نشان می‌دهد (بعد از لاپری و همکاران).)

صفات ویژگی‌های یک سیستم هستند. این را می‌توان برای تعیین اعتماد کلی آن با استفاده از ارزیابی کیفی یا کمی اقدامات. آویزینیس و همکاران ویژگی‌های وابستگی زیر را تعریف کنید:

  • در دسترس بودن - آمادگی برای خدمات صحیح
  • قابلیت اطمینان - تداوم خدمات صحیح
  • ایمنی - عدم وجود عواقب فاجعه بار بر روی کاربر(ها) و محیط زیست
  • یکپارچگی - عدم تغییر نادرست سیستم
  • قابلیت نگهداری - توانایی نگهداری آسان (تعمیر)

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

محرمانه بودن، یعنی عدم افشای غیرمجاز اطلاعات نیز هنگام رسیدگی به امنیت استفاده می‌شود. امنیت ترکیبی از محرمانه بودن، یکپارچگی و در دسترس بودن است. امنیت گاهی اوقات به عنوان یک ویژگی طبقه‌بندی می‌شود[۶] اما دیدگاه فعلی این است که آن را همراه با قابلیت اطمینان جمع کرده و از Dependability به عنوان یک اصطلاح ترکیبی به نام Dependability and Security استفاده کنید.[۲]

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

تهدیدها[ویرایش]

تهدیدها مواردی هستند که می‌توانند بر روی یک سیستم تأثیر بگذارند و باعث کاهش اعتبار شوندگی شوند. سه اصطلاح اصلی وجود دارد که باید به روشنی درک شوند:

  • خطا: خطا (که به دلایل تاریخی معمولاً به آن اشکال گفته می‌شود) نقص در سیستم است. وجود خطا در سیستم ممکن است منجر به خرابی شود یا نشود. به عنوان مثال، اگرچه ممکن است یک سیستم دارای یک خطا باشد، شرایط ورودی و وضعیت آن هرگز باعث نمی‌شود که این خطا اجرا شود تا خطایی رخ دهد؛ و بنابراین آن عیب خاص هرگز به عنوان یک شکست ظاهر نمی‌شود.
  • خطا: یک خطا اختلاف بین رفتار مورد نظر یک سیستم و رفتار واقعی آن در داخل مرز سیستم است. هنگامی که بخشی از سیستم به دلیل فعال شدن خطا وارد وضعیت غیرمنتظره می‌شود، خطاها هنگام اجرا رخ می‌دهند. از آنجا که خطاها از حالتهای نامعتبر ایجاد می‌شوند، مشاهده آنها بدون سازوکارهای خاصی مانند اشکال زدایی یا خروجی اشکال زدایی در سیاهه‌های مربوط، سخت است.
  • خرابی: خرابی زمانی است که سیستم سیستمی را مغایر با مشخصات خود نشان می‌دهد. یک خطا ممکن است لزوماً باعث خرابی نشود، به عنوان مثال ممکن است یک استثنا توسط یک سیستم ایجاد شود اما این ممکن است با استفاده از تکنیک‌های تحمل خطا کشف و کنترل شود بنابراین عملکرد کلی سیستم مطابق با مشخصات است.

توجه به این نکته مهم است که خرابی‌ها در مرز سیستم ثبت می‌شوند. آنها اساساً خطاهایی هستند که تا مرز سیستم گسترش یافته و قابل مشاهده شده‌اند. خطاها، خطاها و خرابی‌ها طبق مکانیزمی عمل می‌کنند. این مکانیزم گاهی اوقات به عنوان زنجیره خطای خطا - خرابی شناخته می‌شود.[۷] به عنوان یک قاعده کلی، یک خطا، هنگامی که فعال شود، می‌تواند منجر به خطا شود (که یک حالت نامعتبر است) و حالت نامعتبر ایجاد شده توسط یک خطا، ممکن است منجر به یک خطای دیگر یا خرابی شود (که این یک انحراف قابل مشاهده از رفتار مشخص در مرز سیستم)[۸]

پس از فعال شدن خطا خطایی ایجاد می‌شود. یک خطا ممکن است به همان روشی عمل کند که می‌تواند شرایط خطای بیشتری ایجاد کند، بنابراین یک خطا ممکن است چندین بار در مرز سیستم گسترش یابد بدون اینکه خرابی قابل مشاهده باشد. اگر خطایی خارج از مرز سیستم منتشر شود، گفته می‌شود که خرابی رخ می‌دهد. در واقع خرابی نقطه ای است که در آن می‌توان گفت یک سرویس نتوانسته مشخصات خود را برآورده کند. از آنجا که داده‌های خروجی از یک سرویس ممکن است به سرویس دیگری تغذیه شود، ممکن است خرابی در یک سرویس به عنوان یک خطا در سرویس دیگری منتشر شود، بنابراین می‌توان یک زنجیره از فرم تشکیل داد: خطای منجر به خطا منجر به شکست منجر به خطا و غیره.

به معنای[ویرایش]

از آنجا که مکانیزم خطای زنجیره خطا قابل درک است، می‌توان ابزاری برای شکستن این زنجیره‌ها ساخت و در نتیجه قابلیت اطمینان سیستم را افزایش داد. تاکنون چهار وسیله شناسایی شده‌است:

  1. جلوگیری
  2. حذف
  3. پیش‌بینی
  4. تحمل

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

حذف خطا را می‌توان به دو زیر مجموعه تقسیم کرد: حذف در حین توسعه و حذف در حین استفاده.

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

پیش‌بینی خطا گسل‌های احتمالی را پیش‌بینی می‌کند تا بتوان آنها را از بین برد یا اثرات آنها را دور زد.[۹][۱۰]

تاب‌آوری خطا با ایجاد مکانیزم‌هایی روبرو است که به شما امکان می‌دهد سیستم در صورت بروز خطا همچنان سرویس مورد نیاز را ارائه دهد، اگرچه ممکن است این سرویس در سطح تخریب شده‌ای باشد.

ابزارهای وابستگی به منظور کاهش تعداد خرابی‌های ارائه شده به کاربر یک سیستم است. خرابی‌ها به‌طور سنتی با گذشت زمان ثبت می‌شوند و مفید است که بدانیم چگونه فرکانس آنها اندازه‌گیری می‌شود تا بتوان اثربخشی وسایل را ارزیابی کرد.

قابلیت اطمینان سیستم‌های اطلاعاتی و بقای آن[ویرایش]

برخی از کارهای مربوط به قابلیت اطمینان[۱۱] از سیستم‌های اطلاعاتی ساختاریافته، به عنوان مثال با SOA، برای معرفی بقای ویژگی استفاده می‌کنند، بنابراین خدمات تخریب شده‌ای را که یک سیستم اطلاعاتی پس از نقص غیرقابل پوشاندن حفظ می‌کند یا از سر می‌گیرد، در نظر می‌گیرد.

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

با تعمیم سیستم‌های اطلاعاتی شبکه، قابلیت دسترسی برای اهمیت بیشتر به تجربه کاربران فراهم شد.

برای در نظر گرفتن سطح عملکرد، اندازه‌گیری عملکرد به عنوان «کمی کردن عملکرد سیستم شی در حضور گسل‌ها در یک بازه زمانی مشخص» تعریف شده‌است.[۱۲]

جستارهای وابسته[ویرایش]

پانویس[ویرایش]

اوراق[ویرایش]

مجلات[ویرایش]

کتابها[ویرایش]

پروژه‌های تحقیقاتی[ویرایش]

  • DESEREC، قابلیت اطمینان و امنیت توسط Enhanced REConfigurability، پروژه یکپارچه FP6 / IST 2006-2008
  • گره‌ها[پیوند مرده]، شبکه در سیستم‌های قابل اعتماد
  • ESFORS، انجمن امنیت اروپا برای خدمات وب، نرم‌افزار و سیستم‌ها، اقدام هماهنگی FP6 / IST
  • HIDENETS NETworks و خدمات مبتنی بر ip قابل اعتماد، پروژه هدفمند FP6 / IST 2006-2008
  • مقاومت در برابر FP6 / IST شبکه تعالی ۲۰۰۶–۲۰۰۷
  • RODIN محیط توسعه دقیق دقیق برای پروژه‌های هدفمند سیستم‌های پیچیده FP6 / IST 2004-2007
  • مهندسی سیستم SERENITY برای امنیت و قابلیت اطمینان، پروژه یکپارچه FP6 / IST 2006-2008
  • Willow Survivability Architecture , and STILT , System for Terrorism مداخله و کار تیمی در مقیاس بزرگ ۲۰۰۲–۲۰۰۴
  • ترکیب خدمات قابل اعتماد و ایمن ANIKETOS بایگانی‌شده در ۲ دسامبر ۲۰۱۹ توسط Wayback Machine، پروژه یکپارچه FP7 / IST 2010–2014

منابع[ویرایش]

  1. IEC, Electropedia del 192 Dependability, http://www.electropedia.org, select 192 Dependability, see 192-01-22 Dependability.
  2. ۲٫۰ ۲٫۱ A. Avizienis, J. -C. Laprie, Brian Randell, and C. Landwehr, "Basic Concepts and Taxonomy of Dependable and Secure Computing," IEEE Transactions on Dependable and Secure Computing, vol. 1, pp. 11-33, 2004.
  3. Brian Randell, "Software Dependability: A Personal View", in the Proc of the 25th International Symposium on Fault-Tolerant Computing (FTCS-25), California, USA, pp 35-41, June 1995.
  4. J.C. Laprie. "Dependable Computing and Fault Tolerance: Concepts and terminology," in Proc. 15th IEEE Int. Symp. on Fault-Tolerant Computing, 1985
  5. A. Avizienis, J. -C. Laprie and Brian Randell: Fundamental Concepts of Dependability. Research Report No 1145, Lydford g DrAAS-CNRS, April 2001
  6. I. Sommerville, Software Engineering: Addison-Wesley, 2004.
  7. A. Avizienis, V. Magnus U, J. C. Laprie, and Brian Randell, "Fundamental Concepts of Dependability," presented at ISW-2000, Cambridge, MA, 2000.
  8. Moradi, Mehrdad; Van Acker, Bert; Vanherpen, Ken; Denil, Joachim (2019). Chamberlain, Roger; Taha, Walid; Törngren, Martin, eds. "Model-Implemented Hybrid Fault Injection for Simulink (Tool Demonstrations)". Cyber Physical Systems. Model-Based Design. Lecture Notes in Computer Science. Cham: Springer International Publishing. 11615: 71–90. doi:10.1007/978-3-030-23703-5_4. ISBN 978-3-030-23703-5.
  9. "Optimizing fault injection in FMI co-simulation through sensitivity partitioning | Proceedings of the 2019 Summer Simulation Conference". dl.acm.org. Retrieved 2020-06-15.
  10. Moradi, Mehrdad, Bentley James Oakes, Mustafa Saraoglu, Andrey Morozov, Klaus Janschek, and Joachim Denil. "Exploring Fault Parameter Space Using Reinforcement Learning-based Fault Injection." (2020).
  11. John C. Knight, Elisabeth A. Strunk, Kevin J. Sullivan: Towards a Rigorous Definition of Information System Survivability بایگانی‌شده در ۲۰۰۶-۱۰-۲۹ توسط Wayback Machine
  12. John F. Meyer, William H. Sanders Specification and construction of performability models