یکی از مهم‌ترین مراحل طراحی و بهره‌برداری از سیستم‌های هواپیما، کسب مجوز‌های لازم از نهادهای مرتبط مانند سازمان هواپیمایی کشوری، اداره هوانوردی فدرال (FAA) و آژانس ایمنی هوانوردی اروپا[1] (EASE) است. در تجهیزات هواپیماهای نسل امروزی، نرم‌افزار نقش اساسی را ایفا می‌کند. از اینرو مانند بخش‌های سخت‌افزاری، بخش‌های نرم‌افزاری سیستم‌های اویونیک هواپیما نیز باید توسط استانداردی تعیین صلاحیت شوند و برای آن‌ها گواهینامه صادر شود.

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

اهمیت و گسترش روزافزون نرم‌افزار در سیستم‌های هوانوردی موجب شد استاندارد DO-178B تحت عنوان «سنجش نرم‌افزار در سیستم‌های هوانوردی و تجهیزات هوایی»در دسامبر 1992 توسط کمیسیون فنی رادیویی هوانوردی[2](RTCA)  ارائه شود. کمیسیون مذکور در دسامبر 2011 نسخه جدید این استاندارد را (DO-178C) منتشر کرد. محتوای استاندارد در رابطه با راهنمایی‌های لازم برای ایمنی نرم‌افزارهای مرتبط با سیستم‌های یکپارچه هواپیما است.

استاندارد DO-178B شامل مجموعه‌ای از دستورالعمل‌ها برای توسعه نرم‌افزارهای هوافضا و همچنین برای اطمینان از نرم‌افزار تعبیه شده در سیستم‌های هوانوردی است. این استاندارد مراحل مختلف توسعه نرم‌افزارهای اویونیکی را پوشش می‌دهد. به همین منظور در مراحل توسعه سیستم، برای هر بخش از نرم‌افزار باید اسناد و مدارکی ارائه شود که در صورت تصدیق، قابلیت اطمینان نرم‌افزار را مشخص ‌کند.

بنابراین از استاندارد DO-178B به منظور طراحی، توسعه و صحت سنجی نرم‌افزارهای صنعت هوانوردی بکار گرفته شده و بررسی عملکرد آن از طریق چند المان انجام می‌شود:

  • در فرآیند چرخه حیات هر نرم‌افزار، تعدادی هدف (objective) مورد توجه هستند.
  • به منظور دستیابی به این اهداف، فعالیت‌هایی (activity) صورت می‌گیرد.
  • در نهایت اطلاعات و مدارکی مورد نیاز است که نشان دهد اهداف برآورده شده‌اند.

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

سطوح ایمنی نرم‌افزار در استاندارد DO-178B

سطح نرم‌افزار که به عنوان سطح اطمینان از طراحی[3] (DAL) یا سطح اطمینان از توسعه آیتم[4] (IDAL) شناخته می‌شود، از طریق فرآیند ارزیابی ایمنی، تجزیه و تحلیل خطا و بررسی تاثیر شکست در سیستم تعیین می‌گردد. بنابراین وضعیت خرابی و شکست سطوح نرم‌افزار طبق تاثیرشان روی هواپیما، خدمه و مسافران دسته‌بندی می‌شوند. این استاندارد موظف است تمام سیستم‌های هواپیما را با یکی از 5 سطح ایمنی نرم‌افزار که در جدول زیر اشاره شده است، مطابقت دهد.

سطح میزان شکست/ خرابی تاثیر ناهنجاری مثال تعداد اهداف (objective)
A فاجعه بار (Catastrophic) در این سطح خرابی و شکست در حد سقوط هواپیما است. در واقع توابع و عملیات‌های مهم و حیاتی مورد نیاز برای ایمنی پرواز و فرود هواپیما دچار خطا و خسارت می‌شود. Fly-by-wire 66
B پرخطر/خطرناک (Hazardous/Severe-Majore) شکست و خرابی تاثیر خیلی منفی بر روی عملکرد، ایمنی و کاهش قابلیت خدمه در مدیریت هواپیما می‌گذارد، از اینرو باعث افزایش حجم کاری و آسیب‌های جدی و خطرناک به مسافران می‌شود. در این سطح، ایمنی بسیار اهمیت دارد. سیستم مدیریت سوخت هواپیما 65
C خطر بزرگ (Major) خرابی و شکست قابل توجه است اما تاثیر کمتری نسبت به خرابی Hazardous دارد، مثلا موجب ناراحتی مسافر نسبت به آسیب به وجود آمده می‌شود یا به طور قابل توجهی حجم کاری خدمه افزایش پیدا می‌کند. (خرابی مربوط به ایمنی است) سیستم ارتباطات خلبان 57
D خطر کوچک (Minor) خرابی و شکست قابل توجه نیست و تاثیر کمتری نسبت به خرابی Major دارد، مثلا موجب ناراحتی مسافر یا تغییر روال طرح پرواز می‌شود. سیستم ثبت اطلاعات پرواز 28
E بدون تاثیر

(Not relevant)

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

 

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

فرآیندهای استاندارد DO-178B

فرآیندها مطابق با سطوح نرم‌افزار A-E برای پشتیبانی از اهداف تعریف می‌شوند. در واقع فرآیندها بخشی از عملیات DO-178B هستند که به مدیر برنامه‌ریزی پروژه کمک می‌کنند تا یک سند مشخص از نحوه کار فرآیندها تعریف نماید. در برنامه‌ریزی انجام شده کلیه فعالیت‌ها در چارچوب فرآیندها مشخص می‌شوند.

استاندارد DO-178B عمدتا به 5 فرآیند اصلی تقسیم می‌شود:

  • برنامه‌ریزی نرم‌افزار
  • توسعه نرم‌افزار
  • صحت‌سنجی نرم‌افزار
  • مدیریت پیکره‌بندی نرم‌افزار
  • تضمین کیفیت نرم‌افزار

خروجی سند مورد انتظار از فرآیندهای DO-178B:

هر فرآیند DO-178B یک مجموعه‌ای از اسناد مورد انتظار زیر را دارد:

  • برنامه‌ریزی نرم‌افزار
    • طرح برای صدور گواهی ابعاد نرم‌افزار
    • طرح توسعه نرم‌افزار
    • طرح صحت‌سنجی نرم‌افزار
    • طرح مدیریت پیکره‌بندی نرم‌افزار
    • طرح تضمین کیفیت نرم‌افزار
  • توسعه نرم‌افزار
    • اطلاعات از نیازمندی‌های نرم‌افزار (SRD)
    • توصیف طراحی نرم‌افزار (SDD)
    • کد منبع
    • کد قابل اجرا
  • صحت‌سنجی نرم‌افزار
    • روش‌ها و موارد صحت‌سنجی نرم‌افزار
    • نتایج صحت‌سنجی نرم‌افزار
  • مدیریت پیکره‌بندی نرم‌افزار
    • شاخص پیکره‌بندی نرم‌افزار
    • شاخص پیکره‌بندی محیطی چرخه حیات نرم‌افزار
  • تضمین کیفیت نرم‌افزار
    • سوابق تضمین کیفیت نرم‌افزار (SQAR)
    • بررسی انطباق نرم‌افزار (SCR)
    • خلاصه دستاوردهای نرم‌افزار (SAS)

تاکید عمده DO-178B در صحت‌سنجی نرم‌افزار است که شامل بررسی، تجزیه و تحلیل و تست نرم‌افزار می‌شود. عملیات تست نرم‌افزار بر اساس نیازمندی‌های تعریف شده اولیه انجام می‌شود و باید دو اصل زیر را شامل شود:

  • تمام نیازمندی‌های اولیه باید پوشش داده شود و بررسی‌های لازم برای تایید برآورده شده هر نیازمندی به صورت جداگانه صورت گیرد.
  • تست‌های مبتنی بر نیازمندی‌ها باید کاملا ساختار برنامه مبدا را پوشش دهند.

همچنین استاندارد DO-178B شامل برخی مکمل‌های راهنما در فرآیندهای چرخه حیات نرم‌افزار است. در واقع این استاندارد برای چند موضوع شامل موارد زیر ملاحظات اضافی را در نظر می گیرد.

  • استفاده از نرم‌افزار توسعه یافته سابق
  • نیازمندی‌ها برای تایید واجد شرایط بودن یک ابزار
  • استفاده از روش‌های جایگزین برای برآوردن اهداف DO-178B. برای مثال formal methods

استاندارد DO-178B تنها مخصوص صنعت هوانوردی نیست، بلکه می‌تواند در حوزه‌های دیگر با قابلیت یکپارچگی بالا استفاده شود. این استاندارد در رابطه با زبان‌های برنامه نویسی بسیار کم صحبت می‌کند. در مقابل اهدافی همچون دقت و سازگاری کد منبع به بهترین نحو توسط زبان‌هایی همچون Ada با ویژگی‌های مختلف برای تشخیص خطای کدنویسی بیان می‌شود.

جنبه‌های ایمنی نرم‌افزار تنها توسط استاندارد DO-178B تضمین نمی‌شود، بلکه به دلیل وجود ویژگی‌های ایمنی در طراحی نرم‌افزار نیاز به برنامه‌های ایمنی دیگری نیز هست. معمولا اسنادی همچون IEEE STD-1228-1994 که با عنوان «استاندارد طرح‌های ایمنی نرم‌افزار» شناخته می‌شود، وظیفه تجزیه و تحلیل ایمنی نرم‌افزار را به طور پیوسته بر عهده دارند. در استاندارد IEEE STD-1228-1994 گام‌های بررسی ایمنی نرم‌افزار شامل تحلیل نیازمندی‌ها، تجزیه و تحلیل طراحی سطح بالا، تجزیه و تحلیل طراحی با جزئیات، تجزیه و تحلیل سطح کد، تجزیه و تحلیل آزمون و تجزیه و تحلیل تغییرات است.

منابع:

http://www.adacore.com

https://en.wikipedia.org

www.hcltech.com

 

پانویس ها:

[1] European Aviation Safety Agency

[2] Radio Technical Commission for Aeronautics

[3]  Design Assurance Level 

[4] Item Development Assurance Level