SciTechDaily

ניקולס

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

משמעת התוכנה של נאס"א, חיונית בכל מחלקות המשימה, שמה דגש על שיפור הנדסת תוכנה וניהול סיכוני אוטומציה, אימוץ חידושי AI/ML ומינוף צינור ניתוח הקוד לאיכות תוכנה. קרדיט: twoday.co.il.com

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

הבנת סיכוני אוטומציה

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

סיכון אוטומציית תוכנה של נאס

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

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

צוות התוכנה משתמש ומשתף את הממצאים הללו כדי לשפר את השיטות המומלצות. דגש נוסף מושם על החשיבות של דרישות מלאות, קמפיינים של בדיקה לא נומינלית, ו"בדיקה תוך כדי טיסה" באמצעות חומרה אמיתית בלולאה. בעת תכנון מערכות לסבילות תקלות, יש לתת את הדעת יותר על איתור ותיקון של התנהגות שגויה לעומת בדיקה בלבד של תאונה. יש לתת פחות אמון באתחול מחדש כאסטרטגיית התאוששות יעילה. יש להשתמש באסטרטגיות גיבוי לאוטומציות עבור יישומים קריטיים – בהתחשב בשכיחות ההיסטורית של תוכנות נעדרות ואלמונים לא ידועים. מידע נוסף ניתן למצוא ב-NASA/TP-20230012154, סיווג אירועי שגיאות תוכנה בחלל.

שימוש בטכניקות בינה מלאכותית ולמידת מכונה

עליית הבינה המלאכותית (AI) ו למידת מכונה טכניקות (ML) אפשרו לנאס"א לבחון נתונים בדרכים חדשות שלא היו אפשריות בעבר. בעוד נאס"א מפעילה אוטונומיה מאז הקמתה, טכניקות AI/ML מספקות לצוותים את היכולת להרחיב את השימוש באוטונומיה מחוץ לגבולות הקודמים. הסוכנות עבדה על מסגרות אתיקה של AI ובוחנת תקנים, נהלים ופרקטיקות, תוך התחשבות בהשלכות אבטחה. בעוד שבינה מלאכותית/ML משתמשת בדרך כלל באלגוריתמים סטטיסטיים לא דטרמיניסטים שמגבילים כיום את השימוש בו ביישומי טיסה קריטיים לבטיחות, הוא משמש את נאס"א ביותר מ-400 פרויקטים של AI/ML המסייעים למחקר ולמדע. הסוכנות גם משתמשת ב-AI/ML Communities of Practice לשיתוף ידע בין המרכזים. ה-TDT סקר את עבודת AI/ML ברחבי הסוכנות וסיכם אותה למגמות וללקחים.

דוגמאות ללימוד מכונה של נאס

דוגמאות לאופן שבו נאס"א משתמשת ב-AI/ML. תמונות לוויין של עננים עם אומדן של עובי ענן (משמאל) וזיהוי שריפות (מימין). קרדיט: נאס"א

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

צינור ניתוח הקוד: כלי ניתוח סטטי עבור IV&V ושיפור איכות תוכנה

ה-Code Analysis Pipeline (CAP) הוא ארכיטקטורת כלים בקוד פתוח התומכת בפעילויות פיתוח תוכנה ואבטחה, ומשפרת את איכות התוכנה הכוללת. תוכנית האימות והאימות העצמאיים (IV&V) משתמשת ב-CAP כדי לתמוך באבטחת תוכנה על מערכת הנחיתה האנושית, שער, מערכות חקירה קרקעיות, אוריון ורומן. CAP תומך בתצורה וביצוע אוטומטי של כלים לניתוח קוד סטטי מרובים כדי לזהות פגמי קוד פוטנציאליים, ליצור מדדי קוד המציינים תחומים פוטנציאליים של דאגה לאיכות (למשל, מורכבות ציקלומטית), ולבצע כל כלי אחר שמנתח או מעבד קוד מקור. ה-TDT מתמקד בשילוב תמיכת ניתוח מצב שונה/כיסוי החלטה עבור בדיקות כיסוי. תוצאות מכלים מאוחדות למסד נתונים מרכזי ומוצגות בהקשר באמצעות ממשק משתמש התומך בסקירה, שאילתה, דיווח וניתוח של תוצאות עם הבשלת הקוד.

מדריך הנדסת תוכנה ואבטחה של נאס

NASA-HDBK-2203, מדריך הנדסת תוכנה והבטחת תוכנה של נאס"א.(https://swehb.nasa.gov) קרדיט: נאס"א

ארכיטקטורת הכלים מבוססת על גישת DevOps הסטנדרטית בתעשייה לבנייה מתמשכת של קוד מקור והרצה של כלים. CAP משתלב עם GitHub לבקרת קוד מקור, משתמש ב-Jenkins כדי לתמוך באוטומציה של בניית ניתוח, וממנף את Docker ליצירת סביבות בנייה סטנדרטיות ומותאמות אישית התומכות בצרכי משימה ייחודיים ובמקרי שימוש.

שיפור תהליכי תוכנה ושיתוף שיטות עבודה מומלצות

ה-TDT תפס את הידע של השיטות הטובות ביותר מכל המרכזים ב-NPR 7150.2, דרישות הנדסת תוכנה של נאס"א, ו-NASA-HDBK-2203, ספר הנדסת תוכנה והבטחת תוכנה של נאס"א (https://swehb.nasa.gov.) שני שיעורי הדרכה של APPEL פותחו ושותפו עם מספר ארגונים כדי לתת להם את היסודות ב-NPR וניהול הנדסת תוכנה. ה- TDT הקים מספר צוותי משנה כדי לסייע לתוכניות/פרויקטים כשהם מתמודדים עם ארכיטקטורת תוכנה, ניהול פרויקטים, דרישות, אבטחת סייבר, בדיקות ואימות ובקרי לוגיקה ניתנים לתכנות. רבים מהצוותים הללו פיתחו הנחיות ושיטות עבודה מומלצות, המתועדות ב-NASA-HDBK-2203 וברשת ההנדסה של נאס"א.

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

סגני Software TDT מאמנים מהנדסי תוכנה, מהנדסי מערכות, מהנדסים ראשיים ומנהלי פרויקטים לגבי דרישות ה-NPR ותפקידם להבטיח שהדרישות הללו מיושמות בכל מרכזי נאס"א. בנוסף, סגני TDT מאמנים לידים טכניים בתוכנה ברבים מהיבטי הניהול המתקדמים של מאמץ הנדסת תוכנה, כולל תכנון, הערכת עלויות, משא ומתן וטיפול בניהול שינויים.

ניקולס