Table of Contents
מערכות תוכנה מודרניות מבססות הכל ממכשירים רפואיים לרכבים אוטונומיים, וככל שהמורכבות שלהם גדלה, בדיקות מסורתיות לבד לעתים קרובות נכשלות על פני כל פגם נסתר. אימות מבוסס מודל מספק שיטה שיטתית, קפדנית מבחינה מתמטית לניתוח התנהגות תוכנה לפני שכל קוד ייצור נכתב.על ידי בניית מודלים מופשטים של מערכת ואמת אותם באופן רשמי נגד מפרטים מדויקים, צוותים יכולים לתפוס שגיאות בשלבים המוקדמים ביותר, חריפות, לבנות אמון במוצר הסופי של פיתוח זה, כדי לבצע את היתרונות קריטיים של שיטות עבודה, כדי לבצע את התכונות של שיטות פעולה, כדי לבצע את האינטגרציה אלה.
מהו תצורה מבוססת מודל?
אימות מבוסס מודל הוא תרגול הנדסי תוכנה המשתמש במודלים רשמיים - כגון מכונות ממשלתיות סופיות, מערכות מעבר מתוייגות, או אוטומטה מתמטית - כדי לדמות, לנתח, להוכיח תכונות של מערכת. במקום לפוצץ את הסופי exeatedable או כתיבת מקרים מבחן ידני, מהנדסים ליצור ייצוג ברמה גבוהה של ההתנהגות המיועדת (כולל פונקציונליות הרצויה ותכונות בטיחות קריטיות).
הטכניקה שואבת משיטות פורמליות כגון בדיקת מודלים והמשפט להוכיח, אך מתמקדת בקביעת אימות נגיש באמצעות כלי והפשטה.מודלים יכולים לנוע בין דיאגרמות פשוטות של המדינה למפרט מפורט בהרבה בשפות כמו TLA+ או Promela. A גרסאות הנקראות שלב שינוי:0theorem להוכיח את FLT:1 משתמש בלוגיקה מתמטית כדי להוכיח תכונות ללא סימולציה של מצבים, מה שהופך אותו לסימפטומים מוקדמים של בדיקות ידניות או מודלים, לא מאמת, לא יכול להחליף את כל בדיקות מוכחות.
יתרונות משמעותיים של טיהור מבוסס מודל
גילוי מוקדם של עיצוב פלמות
היתרון המשכנע ביותר הוא היכולת למצוא באגים כאשר הם זולים ביותר לתקן.דרישות שלא ניתן לפתור במהלך מודלים ניתן לפתור בשעות; אותו בעיה שנחשפה במהלך בדיקות אינטגרציה עשויה לדרוש שבועות של עבודה מחדש על פני מודולים.מודלים לפעול כתיבת חול רשמית שבה מפתחים יכולים להתנסות עם "מה אם" תרחישים לפני ביצוע אדריכלות.
עקומת העלות של פגמים בתוכנה מתועדת היטב: פגם שנמצא במהלך הדרישות יכול להיות זול פי 100 מטווח אחד שנמצא לאחר הפריסה.מודל מבוסס אימות שינויים תגליות לשמאל.בפרויקט בקר חלליות, בדיקת מודל זיהתה עדיפות עדינה אשר הובילה לכישלון המשימה; זיהוי זה במהלך עיצוב הציל 5 מיליון דולר בהנדסת מחדש פוטנציאלי:0(ANAS Ver Caseification)FLT) משמש לפרוטוקול DISLGL דומה ל-DL.
2.שיפור העדיפות וצמצום ⁇
דרישות טבעיות בשפה טבעית הן חד משמעיות: "המערכת תבור את העסקה אם מתרחש זמן" משאירה שאלות לא נענות: מה מגדיר זמן? באיזו נקודה חייב המבוא להתרחש? מודלים פוראליים לכפות בעלי עניין לפתור את האווירה הזו.מודל אשר בא לידי ביטוי כמכונה מדינה מקנה סימנטיקה מדויקת לאירועים, מדינות, ומעברים, לא להשאיר מקום לפרשנות משותפת, למומחים למתמטיקה, הופכת לדרגה.
כאשר כתוב בשפה עם בסיס מתמטי מוגדר היטב, תכונות כגון חיות (כל בקשה בסופו של דבר מקבל תגובה) ובטיחות ("תשובה היא לא נשלחת לפני הבקשה המקבילה מגיע") ניתן לבטא ללא פשרות כלים כמו FLT:0SPIN מודל CheckerFLT:1 לאמת את התכונות הללו על פני שטח המדינה כולו.
3.אוטומציה-Driven Verification Efficiency
בדיקות ידניות הן ניתוח עצמאי ולא שלם.מודל בודקים אוטומטי על ידי בדיקה שיטתית של כל המדינות הזמינות, הפקת פסק דין: או הנכס מחזיק, או עקבות נגד-פרקים ממחיש את הצעד ההפרה על ידי שלב.אוטומציה זו מפחיתה באופן דרמטי את המאמץ האנושי, במיוחד עבור מציאת באגים דקפיים מטבעות מסחר, integer overflows, או שגיאות פרוטוקול. Beyond Check, כלים עבור מודלים המבוססים על ידי בדיקות יכול ליצור באופן אוטומטי דרישות בדיקה של מודלים של בדיקות, אשר מדגמים, אשר מייצגים את המודלים של בדיקות.
כלים רבים של אימות פועלים על שפות מודלים סטנדרטיים בתעשייה כגון SysML או UML המדינה דיאגרמות, להקל על המעבר עבור צוותים כבר באמצעות הנדסת מערכות מבוססות מודל (MBSE) אוטומציה גם מרחיבה ניתוח בזמן אמת: כלים כגון FLT:0UPPAALFLT:1 יכול לאמת את מגבלות התזמון למטה לדיוק שעון מודרני.
4.לחיות בתיעוד ועברת ידע
מודל מאורגן היטב אינו רק חפץ אימות; הוא משמש כתיעוד חי המתקיים בשיתוף הדוק להתנהגותו המיועדת של המערכת. כי המודל משתתף באימות מתמשך, כל שינוי עיצוב מעדכן את המודל, אשר חייב להיות reverified.זה מבטיח את התיעוד מדויק משקף את מה שהתוכנה אמורה לעשות. עבור קבוצות גדולות או פרויקטים ארוכים, תיעוד חי זה אינו ניתן להבין את צוות השגיאה של קוד פתוח, או לשנות את הפורמט של מערכת ההפעלה, או לשנות את הלוגיקה של צוותים, ללא שינוי הלוגיקה מחדש.
מודלים ניתן להציג באופן ויזואלי באמצעות דיאגרמות מצב או רצף, תקשורת התנהגויות מורכבות לבעלי עניין לא טכניים.זה מגנה את הפער בין מומחי דומיין ומפתחים, וכתוצאה מכך פחות אי הבנות וביצועים מדויקים יותר.
5.גיליות בדרישות שינויים ותחזוקה
שינוי הוא קבוע בפיתוח תוכנה.כאשר דרישות מתפתחות, מפתחים חייבים להעריך את ההשפעה על פונקציונליות קיימת.עם אימות מבוסס מודל, שינוי מודל ברמה גבוהה אימות rerunning הוא הרבה פחות משבש מאשר תיקון בסיס קוד סבוך.המודלים מופשטים הרחק את פרטי יישום, כך מעצב יכול לחקור במהירות את ההשלכות של תכונה חדשה או שינוי invariant.אם נכשל, מדריכי נגד זהה עיצוב לפני כל קוד נגע.
במהלך תחזוקה, מודלים לפעול כרשת בטיחות.מפתח הוספת תכונה חדשה למערכת מורשת יכול קודם מודל ההתנהגות הקיימת, לאמת כי היא לוכדת את השחלות הנוכחיות, ולאחר מכן להרחיב את המודל עם התכונה החדשה ומימוש מחדש.תהליך זה חושף סכסוכים מוקדם, מניעת רגרסנסים. בסביבות זריזות, אימות מבוסס מודל מאפשר לצוותים להסר על עיצוב תוך שמירה על תיקון - מפתח המאפשר לקשורים מהירים בהקשרים של בטיחותיים.
6.הארכה ממושכת על פני מחזור החיים
למרות שמודלים ואימות מראש דורשים השקעה של זמן ומומחיות, החיסכון במורד הזרם הם משמעותיים.מחקרים על ידי המכון הלאומי של התקנים וטכנולוגיה (NIST) ואחרים מראים כי העלות של כשל תוכנה, במיוחד בתחומים קריטיים בטיחות, יכולים ננסי עלויות הפיתוח הראשוניות.על ידי מניעת כשלים, אימות מבוסס מודל מניב החזר משכנע על ההשקעה.
גופי הסמכה כגון ה- FDA עבור מכשירים רפואיים או FAA עבור avionics דורשים ראיות אימות קפדני.מודל רשמי נבדק נגד תכונות בטיחות יכול לשמש הוכחה מפתח, לקצר את מחזור הביקורת. חברות לעתים קרובות לדווח כי הגישה משלמת עבור עצמו כאשר הפגם הגדול הראשון נמצא לפני שילוב - וממשיך לספק ערך לאורך מחזור החיים של המוצר.
יישומים בתעשיות
אימות מבוסס מודל הוא גלוי ביותר בתחומים קריטיים בטיחות, אבל טווח ההגעה שלו משתרע הרבה מעבר.
- (FLT:0)Aerospace and Defense:FLT:1 Flight control Software, מערכות לוויין והנחיות טילים מסתמכות על בדיקת מודל להתנהגות ⁇ יסטית בתנאים קיצוניים.מעבדת ההנעה של נאס"א השתמשה ב- SPIN עבור תזמון המשימה של Mars rover.
- (FLT:0) מנוע:00Automotive:FLT:1 נהיגה אוטונומית ו- ADAS דורשים בטיחות פונקציונלית מחמירה ISO 26262. אימות מבוסס מודל עם Simulink Design Verifier מסייע להוכיח את מטרות בטיחות ההיגיון, כגון מניעת האצה בלתי מכוונת.ספקי Tier-1 כמו בוש ו-Continental משלב אימות פורמלי לתוך צינורות עבור מערכות מתפתלות וניווט.
- (FLT:0) מכשירים רפואיים: משאבות אינפוזיה 1:1, קוצני קצב ורובוטים כירורגיים זקוקים לאישור FDA.מודלים פורמאליים מספקים מעקב מדרישות בטיחות כדי לאמת תוצאות, פשטו את ההגשה הרגולטורית.
- (FLT:0)Railway ו- Transport:FLT:1Building Systems and interlocking Logic חייב להיות ללא תשלום.מודל בדיקת אימותים כי תוכנת בקרת רכבת לעולם לא מאפשרת תנועות רכבת סותרות, נכס שקשה לבדוק בחומרה פיזית. Alstom ו-Sensation להשתמש אימות רשמי עבור מערכת בקרת רכבות אירופית (ETCS) יישום.
- (FLT:0)Finance and Blockchain:FLT1 אימות מבוסס מודל צובר מתחים חוזים חכמים ומערכות מסחר, שבו פגמים לוגיים יכולים לגרום להפסדים של מיליוני דולרים.
- (FLT:0) ,Telcommunica:FLT:1 ערימה של פרוטוקול עבור 5G ו-IoT דורש טיפול אמין של קשרים מקבילים ו Handovers. אימות מבוסס מודל מבטיח פרוטוקולים כמו MQTT ו- CoAP לעמוד בביצועים ומגבלות בטיחות תחת עומס.
שילוב מודלים מבוססי מודלים לתוך זרימת העבודה לפיתוח
אימוץ אימות מבוסס מודל אינו דורש שינוי תרבותי סיטונאי; ניתן לשלב אותו באופן מצטבר.
- (FLT:0)Start עם מרכיבים בסיכון הגבוה ביותר.FreaLT:1) זיהוי מודולים שבהם כשלון היו השלכות קטסטרופליות או היכן שמטבע הקונפלי הוא מסובך לשמצה.מודל של 10-20% מהמערכת יכול לחסל שיעור גדול של פגמים מאוחרים.
- (FLT:0) בחר שפה מודלית ושרשרת כלים שמתאימה לדומיינים.FLT:1 עבור מערכות תוכנה, TLA + ו- PlusCal מספקים בסיס מתמטי; עבור שליטה מוטבעת, סימולינק וזרימה המדינה משתלבים עם כלים של הדור הקוד.
- (FLT:0) תכונות רשמיות עם בעלי העניין.FIRLT:1) Collaborate עם בעלי מוצרים ומומחים דומיין כדי לבטא דרישות כמו invariants, תנאי חי, או נוסחאות לוגיקה זמניות.זה מבטיח מטרות אימות תואמים עם צרכים עסקיים אמיתיים.
- (FLT:0)Iterate ברציפות.FLT 1 להתייחס למודל כחפץ פיתוח ברמה ראשונה. בדוק אותו לתוך שליטה בגירסה, להפעיל אימות כחלק מהצנרת CI, ולהשתמש בתופעות נגד כדי להניע דיונים.
- (FLT:0) להכשיר את שיטות תצורתיות 1:1 יכול להיראות מאיים, אבל כלים מודרניים הפכו נגישים יותר.השקעה צנועה באימון - לעתים קרובות כמה ימים של סדנאות ידיים - משלם על ידי הפיכת חברי הצוות למספיק כדי מודלים טיפוסיים.
החל מפרויקט טייס קטן עם קריטריונים ברורים להצלחה (למשל, ביטול מעמד ידוע של באגים) מסייע להפגין ערך.לאחר שהצוות רואה תוצאות מוחשיות – תוקפנות של מענה, פתרון מהיר יותר – הם יכולים להרחיב את התרגול לחלקים אחרים של המערכת.
כלים וטכניקות
מערכת אקולוגית תוססת של קוד פתוח וכלים מסחריים תומכת אימות מבוסס מודל. להלן הם חלק מהשימוש הנפוץ ביותר:
- (ב) ⁇ :0.10.10.10.10.10.10.10.10.10.10.13: ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (FLT:0) NuSMV ו-nuXmv:IRLT:1 , בודקי מודל סמליים המטפלים בחומרה ובמודלים של תוכנה. NuSMV הוא קוד פתוח; nuXmv מוסיף תמיכה במערכות זמן היברידיות.
- (ב) ⁇ (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (FLT:0)TLA+ ו-TLC Model Checker:Builder: Reph: 1 A פורמלית שפה ספציפית (בתרגום חופשי: ⁇ ) , אמזון משתמשת ב-TLA+ כדי לאמת אלגוריתמים מבוזרים:2TLA+ אתר האינטרנט של ההרחבה 3REL מציעה הדרכות ובדיקת מודל חזותית.
- (FLT:0)Simulink Design Verifier ו- SCADE:03:03:1 כלים מסחריים משולבים עם זרימת עבודה מבוססת מודלים עיצוב מבוססי מודלים, המאפשר אימות של מודלים חוסמים ודור קוד אוטומטי.
- (FLT:0) Alloy:cioFLT:1 , שיטה פורמלית קלה המבוססת על לוגיקה מסדר ראשון יעיל עבור מודלים של מגבלות מבניות ומציאת ניגודים בתוך שטח המדינה הכרוך לעתים קרובות לחקירה מוקדמת של ארכיטקטורות תוכנה.
בחירת הכלי הנכון תלויה בטבע המערכת - המדינה, בזמן אמת, פרוביביליסט - ואת הרקע של הצוות. פרויקטים רבים משלבים כלים מרובים: מפרט פורמלי קל משקל ב-TLA+ עבור עיצוב אלגוריתם, מודל ספציפי סימנולינק מפורט לדור קוד וניתוח בטיחות.
אתגרים ושיקולים
למרות היתרונות שלה, אימות מבוסס מודל הוא לא כדור כסף.צוותים חייבים לנווט כמה מכשולים מעשיים:
- עקומת למידה פנימית:0 (FLT:103) מהנדסים שאינם מוכרים עם לוגיקה פורמלית וחיפושי חלל המדינה זקוקים לזמן כדי להיות פרודוקטיבי.ניהול חייב לתמוך תקופת הלמידה הזו ולצפות למודלים מוקדמים להיות לא יעילים.
- (FLT:0) התפוצצות חלל: 1.As Model קובע לגדול באופן אקספונציאלי עם ספירת רכיב, אימות יכול להפוך לבלתי סביר.תיאוריה, עיוות מודולרי, אימות הרכב הם הכרחיים לניהול מורכבות.
- פער קוד:0 (Model-code: FLT:1 Verification של מודל אינו מבטיח את הקוד המיושם מתנהג זהה.בדיקת רפורמות ושילוב הדוק עם דור קוד יכול לצמצם פער זה, אך הוא נותר סיכון שיש לנהל באמצעות ביקורות ובדיקה.
- (FLT:0) השימוש בכלי: FLT:1IR) כמה כלים מסחריים נושאים דמי רישוי משמעותיים. חלופות קוד פתוח קיימות אך ייתכן שאין שילובים ותמיכה כי צוותים ארגוניים דורשים.
- (FLT:0) ,Resistance to Change:FLT:1) הציג אימות רשמי לתהליך שתמיד התבסס על בדיקות ממוקדות קוד יכול לענות על הספקנות.סיפורי הצלחה, פרויקטים של טייסים, והדגמה ברורה של מניעת פגם הם הדרכים היעילות ביותר לנצח על בעלי עניין לא מאויר.
התייחסות לאתגרים אלה דורשת גישה פרגמטית: להתחיל בקטן, להוכיח ערך, ולהרחיב את היקף אימות ככל שהאמון גדל.אפילו אימוץ חלקי – תוך מתן רק האלגוריתמים הקריטיים ביותר – משפר באופן דרמטי את האיכות הכוללת.
עתיד הטיהור מבוסס המודל
הנוף מתפתח במהירות.המורכבות הגוברת של מערכות סייבר-פיזיות, דחיפה לפעולה אוטונומית, וביקוש רגולטורי גובר לראיות בטיחות מניעות אימות מבוסס מודל ממשמעת נישה למגמות המרכזיות כוללים:
- (FLT:0) AI-Asted Modeling:FreaLT:1 טכניקות למידת מכונות יכול לעזור לבנות מודלים לדרישות שפה טבעיות או עקבות מערכת, הורדת המחסום לכניסה.
- (FLT:0Verification as a Service:FLT:1 פלטפורמות מבוססות ענן מאפשרות לצוותים לנהל חיפושים ארוכי טווח ללא השקעה בחומרה מקומית מסיבית, דמוקרטיזציה הגישה לארגונים קטנים יותר.
- (FLT:0) אימות מתמשך: אינטגרציה 1:1 עם צינורות DevOps פירושה שכל שינוי קוד גורם לשיפוץ של מודלים רלוונטיים, לתפוס תוקפנות בתוך זמן קצר.
- (FLT:0) אימותים היברידיים והיברידיים: FIRLT:1 אלגוריתמים חדשים סיבה לדגמים המשלבים לוגיקה דיסקרטית עם דינמיקות מתמשכת והתנהגות סטוצ'יסטית, חיונית עבור כלי רכב אוטונומיים ורובוטיקה.
- (FLT:0)Standardization: סטנדרטים של התעשייה של 1:1 כמו ISO 26262 (automotive) ו- DO-178C (הדגשה) מכירים כיום בשיטות רשמיות כפעילויות אימות מקובלות, הגדלת הלגיטימיות וההאצת אימוץ.
בעוד מגמות אלה מתאחדות, אימות מבוסס מודל יהיה חלק חיוני של ערכת כלי הנדסת תוכנה - לא רק עבור יישומים קריטיים בטיחות, אלא עבור כל מערכת שבה אמינות חשובה.
מסקנה
אימות מבוסס מודל משנה עיצוב תוכנה ואבטחה.על ידי שינוי גילוי פגמים נותר, חיסול עמימות באמצעות מפרט רשמי, ורתום אוטומציה כדי לחקור באופן מלא התנהגות מערכת, זה מספק ביטחון כי בדיקות מסורתיות לבד לא יכול להשיג.היתרונות אורך מחיסכון בעלויות דרמטי וצוותים מואצים כדי להפוך תיעוד ברור יותר ותחזוקה גמישה יותר. בעוד אימוץ דורש השקעה במיומנויות וכלי, תשלום לטווח ארוך - תקלות קריטיות, פיתוח מהיר יותר, יעיל יותר, מערכת יעילה יותר, יעיל יותר, תכנון יעיל יותר, יעיל יותר, פיתוח יעיל יותר, מערכת ניהול יעיל יותר, מערכת ניהול יעיל יותר, ומאובטחת של הנדסה יעילה יותר, ומאובטחת יותר.