למידע ופרטים נוספים מלאו ושלחו את פרטיכם, ואנו נחזור אליכם בהקדם:


    Polyspace

    המחיר של הימצאות שגיאות בקוד של מערכות מורכבות שונות יכול להיות משמעותי, ואף הרסני – ניתן לראות זאת באופן הכי בולט בעולמות פיתוח כגון הביטחון, הנהיגה האוטונומית או הרפואה.  

    לכן משימה הכרחית לבניית מערכות מורכבות אמינות הינה ביצוע בדיקות מקיפות בקוד, במטרה לכסות ולמצוא את כל המקומות הפוטנציאלים בהם חבויים באגים אפשריים בשלב מוקדם ככל הניתן, הרבה לפני הטמעת התוכנה והפעלת המערכת הפיזית בשטח.

    בדרך זו, ניתן להביא להעלאת היעילות של ה-Code reviews ותהליך פיתוח התוכנה, להוזלת העלות של מציאה ותיקון של באגים, לקבל פידבק על איכות קוד ידני בשלבים מוקדמים בתהליך הפיתוח וכן  לדאוג להפחתת הסיכון במציאת שגיאות קריטיות בשלבים מאוחרים בפיתוח או מציאתם על ידי הלקוח.

    עם זאת קיימות בעיות המתלוות להישענות על ביצוע בדיקות באופן מסורתי בלבד.

    • ביצוע בדיקות על המערכת מראה היתכנות קיום באגים בקוד, אבל לא מראה את היעדרותם!
    • בהנחה שלא ניתן באמת להוכיח קיום של עוד שגיאות בתוכנה – מתי נכון שנפסיק לבצע את הבדיקות?
    • כמה זמן היה לוקח לבצע בדיקות על תוכנה "מושלמת" (בהנחה שלא ניתן להעיד עליה ככזאת מראש)?

    היינו רוצים אם כך להשלים את ביצוע הבדיקות עם יכולות שיספקו למפתחים:

    • יותר בטחון בקוד שנכתב
    • הפחתת זמן והמאמצים בטסטינג, דיבאגינג ורישיון הקוד (certification)
    • השגת קוד איכותי יותר מהר יותר

    החיפוש אחר באגים ושגיאות בתוכנה יכול להתבטא בחיפוש אחר שגיאות Runtime, שגיאות תכנותיות, בעיות סטטיות ודינמיות בהקצאות זיכרון, Dead Code, שגיאות הקשורות לבו-זמניות (concurrency issues) ועוד.
    ניתן להבין כי ביצוע הבדיקות אחריהן הינה פעולה הכרחית, אבל לא מספיקה – בדרך זו ניתן להפחית את כמות השגיאות הפונקציונליות, אבל עדיין יכולות להתחבא למשל שגיאות Runtime שעלולות לגרום לכשלים קטסטרופליים במערכת.

    שלחו אלינו דוא"ל, והורידו אליכם E-book

    Seven Ways to Make Embedded Software Safe and Secure


      ניתוח קוד סטטי כפעולה משלימה לביצוע הבדיקות

      ניתוח קוד ססטי זו פעולה לאימות קוד מקור (source code) אשר מנתחת אותו לבחינת האיכות, המהימנות והאבטחה שלו – מבלי להריץ את הקוד. באמצעות ביצוע ניתוח סטטי על הקוד, אפשר לזהות פגמים ופגיעויות באבטחה שעלולות לסכן את הבטיחות של התוכנה אותה אנו מפתחים בשלבים מאוד מוקדמים של הפיתוח.

      בדיקת הקוד, מציאת שגיאות והוכחת היעדרותן – עם Polyspace

       MathWorks מספקת את משפחת כלי Polyspace – בעזרתם אלו ניתן למעשה לבצע את בחינת הקוד בכדי לוודא שלתוכנה לא כוללת שגיאות. מעבר לגילוי הבאגים, אפשר להשתמש במוצר זה על מנת לדבג ולתקן את הקוד, להוכיח מתמטית שהקוד בטוח וחסין, לקבל מטריקות לאיכות הקוד, ולא פחות חשוב מכל אלה – הכלי מאפשר לנו לרשיין את הקוד לתקני בטיחות מחמירים כמו DO178, FDA ו- IEC61508.

      2 כלים עיקריים ממשפחת כלים זו הם:

      ניתן לשמוע עוד על כלי זה בסרטון הקצר הבא:

      Polyspace Bug Finder
      בדיקה אחר הפרות הקשורות בתקנים שונים בקוד מקור של C\C++, למצוא מאות סוגים של באגים שונים, לזהות פרצות באבטחה ופגיעויות אפשריות, ולחשב מדדי איכות ומטריקות שונות להערכת איכות הקוד.

      כך שאפשר לקבל coverage על הקוד, ולהבין בדיוק אילו מנות מתוכו הינן בדוקות וטובות (אידאלית, השאיפה היא שכמה שיותר מהקוד יהיה צבוע בירוק), אילו חלקים בקוד מהווים לdead-code (אפור), איפה מסתתרות שגיאות run-time ועוד.

      ניתן לשמוע עוד על כלי זה בסרטון הקצר הבא:

      Polyspace Code Prover –
      שימוש בשיטות פורמליות להוכחת היעדרותן של שגיאות run-time בקוד מקור של C\C++ – מבלי הצורך להריץ את הקוד.

      הכלי צובע את קטעי הקוד שלנו ויודע לסווג כל חלק בקוד בצורה הבאה: