MISRA C

MISRA C היא קבוצה של הנחיות לפיתוח תוכנה לשפת התכנות C שפותחה על ידי MISRA (ראשי תיבות של Motor Industry Software Reliability Association). מטרותיה הן להקל על בטיחות קוד, אבטחה, ניידות ואמינות בהקשר של מערכות משובצות, במיוחד מערכות שתוכנתו ב-ISO C / C90 / C99.

קיים גם סט הנחיות MISRA עבור ++C.

היסטוריה 
 טיוטה: 1997
 מהדורה ראשונה: 1998 (כללים, חובה / מומלצים)
 מהדורה שנייה: 2004 (כללים, חובה / מומלצים)
 מהדורה שלישית: 2012 (הנחיות; כללים, ניתן להחליט / לא ניתן להחליט)
 תאימות MISRA :2016

בשתי המהדורות הראשונות של MISRA-C (כלומר 1998 ו-2004) כל ההנחיות נחשבו לכללים. עם פרסום MISRA C: 2012 הוצגה קטגוריה חדשה של הנחיות – ההנחיה שתאימותה פתוחה יותר לפרשנות, או מתייחסת לנושאים תהליכים או פרוצדורליים.

התפתחות ואימוץ בתעשייה 
אף על פי שבמקור ייועד לתעשיית הרכב, MISRA C התפתח כמודל מקובל לשיטות עבודה מומלצות על ידי מפתחים מובילים בתחומים כולל רכב, תעופה, טלקום, מכשירים רפואיים, ביטחון, רכבת ואחרים. לדוגמה:
 פרויקט C ++ Coding Standards של Joint Strike Fighter מבוסס על MISRA-C: 1998.
 C Coding Standards במעבדה להינע סילוני של נאס"א מבוססים על מיסרה-C: 2004.
 ISO 26262 "בטיחות פונקציונלית – כלי רכב בדרכים" מצטט את MISRA C כתת-קבוצת כללים מתאימה של שפת C:
 ISO 26262-6: 2011 "חלק 6: פיתוח מוצרים ברמת התוכנה" מצטט את MISRA-C: 2004 ו-MISRA AC AGC.
 ISO 26262-6: 2018 "חלק 6: פיתוח מוצרים ברמת התוכנה" מצטט את MISRA C: 2012.
 מפרט התוכנה הכללי של AUTOSAR SRS_BSW_00007 מצטט גם כן את MISRA C:
 מפרט התוכנה הכללי של AUTOSAR 4.2 מחייב "שאם הטמעת מודול BSW כתובה בשפת C, היא תואמת את תקן MISRA C: 2004."
 מפרט התוכנה הכללי של AUTOSAR 4.3 מחייב "שאם הטמעת מודול ה-BSW כתובה בשפת C, היא תואמת את תקן MISRA C: 2012."

למרות שלא קיים מסמך רשמי שמגדיר דרישות התאמה ל MISRA C מספר חברות תוכנה לרבות IAR ו Parasoft פיתחו חבילות תוכנה שבודקות התאמה זו.

קישורים חיצוניים 
 
 Introduction to ISO26262 and MISRA C (in the context of ISO26262), video in Hebrew by Daniel Liezrowice from an Ecomotion workshop 
 
A practical guide to make your legacy codebase MISRA C 2012 compliant
 
 
 
 
 
 
 
The Anticipated MISRA C:2012 Amendment 2 is Now Available

הערות שוליים

שפות C