Table of Contents
בפיתוח תוכנה הנדסית מודרני, הבטחת אמינות ויעילות כבר לא אופציונלית - זה הכרחי תחרותי. שתי מתודולוגיות חזקות שעלו לחזית הן FLT:0.Test-Driven Development (TDD)FLT:1 ו- (FLT:2Model- Based Design) , בעוד כל גישה משפרת את איכות התוכנה באופן עצמאי, שילוב שלהם הוא רמה עמוקה יותר של כיוונים כגון תצורה של תפקוד משותף של מערכת ההפעלה ובדיקה של סוללת ה- MBGPSD.
פיתוח Test-Driven Development (TDD)
פיתוח Test-Driven הוא תרגול פיתוח תוכנה שבו בדיקות אוטומטיות נכתבות:0 לפני כן, 17.3 קוד הייצור.המחזור הוא לעתים קרובות מסכמת כ-FLT:2 אדום-גרין-RefactorFLT 3:
- (ב) ,0) אדום: ⁇ 1 (ה) כותב מבחן כושל המגדיר פונקציונליות או התנהגות רצויה.
- [01:0] ירוק: ⁇ 1] כתוב את כמות הקוד המינימלי הדרושה כדי לבצע את המעבר.
- (ב) ,0) ,מספק: טיהור קוד תוך הבטחת כל הבדיקות עדיין עוברות.
קצב זה מעודד מפתחים לחשוב על ממשקים, מקרים קצה, ותוצאות צפויות מראש.TDD באופן טבעי מייצר חבילה מקיפה של בדיקות רגרסיה, המשמש כרשת בטיחות לשינויים עתידיים.בתוכנה הנדסית, שבו שגיאות יכולות להוביל לכשלים יקרים (למשל, באגים במערכת בקרה, חי חיישן, ערפל), רשת בטיחות זו אינה ניתנת לערעור.
(ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
עיצוב מבוסס מודל (MBD)
עיצוב מבוסס מודל הוא מתודולוגיה המשתמשת מודלים מופשטים, פורמליים כממצאים המרכזיים של תהליך הפיתוח.במקום להתחיל עם קוד, מהנדסים ליצור מודל מתמטי או גרפי של המערכת.מודלים אלה מדמיינים התנהגויות בעולם האמיתי - כגון בקר PID, פועל הידראולי, או מכונה ממשלתית - לפני כל חומרה או תוכנה בנויה.
MBD מציע מספר יתרונות:
- (FLT:0 סימולציה מוקדמת: סימולציה מוקדמת: הנדסת חשמל:1) יכול לבדוק תגובות מערכת בתנאים מגוונים (למשל, טמפרטורות קיצוניות, רעש חיישן) בסביבה וירטואלית יעילה.
- (ב) ויקרא י"א): "כלים כמו ,2 [MATLAB/SimulinkFLT 3 ו-FLT:4SCADEFLT:5] יכולים ליצור באופן אוטומטי קוד איכותי ממודלים מאומתים, צמצום שגיאות קידוד ידני.
- (ב) ⁇ :0) ציות ועקביות: מודלים של LT:1 משמשים כמפרטים ניתנים להפעלה, מה שהופך את זה קל יותר לעקוב אחר דרישות באמצעות עיצוב ובדיקה.
- (FLT:0) החלפת מפרטים: מודל 1FLT ניתן לשתף בין דיסציפלינות (mechanical, חשמל, תוכנה) באמצעות שפות כגון SysML או FMU/FMI.
(ב) MBD נפוץ במיוחד בתעשיות קריטיות בטיחותיות.לדוגמה, תעשיית הרכב משתמשת MBD עבור FLT:0 ISO 2626203FLT:1 ציות, ואווירה מסתמכת על זה עבור FLT:2DO-178CFelove 3 הסמכה, עם זאת, מודל לבדו אינו מבטיח כי הקוד הסופי מכבד את כל המגבלות התפקודיות ולא פונקציונליות ללא בדיקה קפדנית, ניתן לאמת את צוותי MBA עם יישום עם ה-D.
הסינרגיה בין TDD ו- MBD
במבט ראשון, TDD ו- MBD עשויים להיראות סותרים: TDD מתחיל בקוד (tests), בעוד MBD מתחיל עם מודלים.אבל הם חולקים מטרה משותפת: FLT:0thly פגם גילוי FLT:1 אינטגרציה שלהם יוצרת מחזור רוטט שבו מודלים מודיעים יצירת מבחן, ותוצאות הבדיקה מחדדות מודלים.
אימות מוקדם באמצעות בדיקות מבוססות מודל
במקום לנחש באופן ידני מקרים של מבחן, מהנדסים יכולים להפיק אותם ישירות מהמודל.לדוגמה, מודל סימנולינק של מערכת בקרת שיוט כולל גורמים לשינויים בנקודת המוצא, כישלונות החיישן, ומגבלות התפעוליות.תנאים אלה הופכים למקרי מבחן עבור חבילת TDD.המודל מגדיר גם פלטים צפויים, אשר הופכים לטיעונים במבחנים.
אחריות מדרישות לקוד
כאשר בדיקות TDD נגזרות ממודל, כל מפות בדיקה בחזרה אל אלמנט מודל, אשר בתורו עקבות לדרישות המערכת.אם דרישה משתנה, המודל הוא מעודכן, הבדיקות מתחדשות, והיישום הוא retargeted.זה מעקב סגור קשה להשיג עם התפתחות מסורתית והוא חיוני להסמכה בתחומים קריטיים בטיחות.
הקטנת Ambiguity
מפרטים טבעיים הם לעתים קרובות מפורשים.מודל מספק מפרט לאמביע, executable.הבדיקות של TDD אז לאמת את יישום התאמה כי מפרט זה.אם הבדיקות נכשלות, ברור אם המודל, הקוד, או שניהם זקוקים להתאמה.בהירות זו מקטין את זמן הפחתת הפחתת הפחתת הפחתת הפחתת זמן ולשפר את תקשורת הצוות.
שקיפות ואימות
בזרימת עבודה משולבת TDD+MBD, כל שינוי קוד גורם בדיקות רגרסיה.המבחנים כוללים: 1) בדיקות יחידה נגזרות ממודלים, ו 2) בדיקות אינטגרציה המפעילות את הקוד נגד סביבת הסימולציה של המודל (תוכנות-in-the-loop או SIL) אימות מתמשך זה מבטיח כי היישום לעולם לא מרתיע את המודל ללא משוב מיידי.
זרימת עבודה מעשית עבור Integrating TDD ו- MBD
אימוץ גישה משולבת זו דורש תזמורת זהירה של כלים ותהליכים. להלן הוא זרימת עבודה כללית כי הצוותים יכולים להתאים לתחום הספציפי שלהם ואת שרשרת הכלים.
שלב 1: דרישות מערכת Define ויצור את המודל
החל ממערך דרישות פונקציונליות ולא פונקציונליות מוגדרות היטב.לבנה מודל מערכת באמצעות פלטפורמה כגון:0MATLAB/SimulinkveFLT:1,FLT:2SysMLearFLT 3, או FLT:4PapyrusFLT:5 המודל צריך לכסות את כל המדינות הגדולות, המעברים, ותנאים של דגם, לדוגמה, קונסולת מנוע, כולל שימוש קבוע, גלגולים, מודל , גלגולים, , , , , לדוגמה, , גלגולים, גלגולים, , , , , , גלגולים, , , לדוגמה, גלגולים, , , , קיבולת קיבולת , , , קיבולת של דגם , .
שלב 2: יצירת תיקי מבחן מהמודל
השתמש בסימולציות והאימות של המודל כדי ליצור מקרים של בדיקות.כלים MBD רבים מציעים (FLT:0formal אימות אימות FLT:1 או FLT:2test case GenerationFLT 3 תכונות. Simulink, למשל, יכול ליצור באופן אוטומטי רצפי מבחן אשר להשיג כיסוי גבוה של רכיבי מודל (למשל, כיסוי החלטות, סיקור מצב).
שלב 3: כתוב בדיקות TDD המבוססות על מודלים-Generated Scenarios
(ב) לכל אחד מהם, כתוב מבחן יחידה או שילוב בשפת תכנות היעד (למשל, C++, Python) על הבחינה: 0LT:0FLT:1Set up the needtext (למשל, מצב ראשוני, ערכי קלט) .
בשלב זה, קוד הייצור עדיין לא קיים – הבדיקות ייכשלו (שלב אדום).
שלב 4: יישום הקוד כדי לעבור את הבדיקות
כתוב את קוד הייצור, להתמקד רק על ביצוע הבדיקות לעבור. כי הבדיקות מגיעות מן המודל, הקוד מונחה על ידי ההתנהגות המתמטית.צעד זה לעתים קרובות משתמש FLT:0automatic code GenerationFLT:1 מן המודל עצמו.אם כי הוא נדרש, לשמור משמעת קפדנית כדי למנוע הצגת לוגיקה לא נבדק.
שלב 5: לשנות ולעדכן את המודל
לאחר שהמבחנים עוברים (בתקופה ירוקה), מספקים את הקוד לבהירות, ביצועים או שימוריות. בינתיים, לשמור על המודל מסונכרן עם כל אופטימיזציה ברמת קוד.אם המודל משתנה, לשחזר את מקרי הבדיקה ולעדכן את חבילת TDD. היערכות דו-כי-כיונית זו מונעת הבדלים בין העיצוב המופשט לבין התוכנה האמיתית.
שלב 6: אוטומטי לכל צינור
(ב) , (ב) ,ב) , כגון: (ב) ,(א) , (ב) , (ב) , ).
אוטומציה זו תופסת את התוקפנות באופן מיידי ואכיפת המשמעת TDD+Model על פני הקבוצה.
יישומים אמיתיים ומקריות
השילוב של TDD ו- MBD אינו תיאורטי – הוא הוחל בהצלחה במספר תעשיות בעלות גבוהה.
מערכות רכב Embedded
כלי רכב מודרניים מכילים מעל 100 מיליון שורות של קוד.חברות כמו FLT:0BoschFLT:1 ו-FLT:2ContinentalalveFLT 3 (MBD) להשתמש ב- MBD כדי לעצב יחידות בקרה, מערכות מגרדות ומערכות ניהול סוללות.על ידי שילוב TDD, הם להפחית את עלויות ההסמכה עבור ISO 26262.
בקרת טיסה אווירית
(התוכנית לבקרת טיסה חייבת לעבור את אישור DO-178C, הדורש אימות קפדני (FLT:0 AirbusmentFLT:1 ו-FLT:2BoeingFLT:3) ניסויים עם הדור מבוסס מודל יחד עם בדיקות יחידה שנכתב בסגנון TDD.במקרה אחד, חברה מפתחת מערכות הפעלה של זבובים המשמשים את Simulink כדי לשלוט בחוקים ומיצוי על פני מבחנים ידניים, אשר פספסו 5 חודשים.
אוטומציה תעשייתית ורובוטיקה
פלטפורמות רובוטיות, כגון אלה מן FLT:0 (KUKAveFLT:1 ו- (FLT:2ABBFLT 3: 3), לעתים קרובות להשתמש MBD עבור תכנון תנועה ולוגיקה בטיחותית.TDD מבטיח כי קוד הפעלה ברמה נמוכה מתנהג כראוי כאשר משולב עם מתכנן ברמה גבוהה. A סטארט-אפ רובוטי השתמש בזרימת עבודה זו כדי לשתף פעולה עם הזרוע הרובוטית שלהם והשגת פגם של פחות מ 1% לפני פריסה.
אתגרים ועיסוקים טובים
בעוד היתרונות משכנעים, שילוב TDD ו- MBD אינו ללא מכשולים.הכרה באתגרים אלה עוזר לצוותים להתכונן טוב יותר.
מורכבות Toolchain והתאמה
לא כל הכלים של MBD לייצא באופן חלקה את מבחן המבחנים למסגרות מבחן יחידות פופולריות (מהנדסים) עשויים לכתוב ממירים מותאמים אישית או להשתמש ברתימות מבחן קנייניות (FLT:0) לפרקטיקה הטובה ביותר:FLT:1, כלים נבחרים התומכים בתקנים פתוחים כגון FLT:2FMIFLT 3 או FLT:4MATLAB CoderLT5 שיוצרים קוד ומבחן בפרוטוקולים בפרוטוקולים לתרגום אוטומטי ל-TDD.
למידה של קורב והתנגדות תרבותית
הן TDD והן MBD דורשות שינוי בחשיבה.מפתחים המורגלים לכתוב קוד ראשון עשויים להתנגד לבדיקות כתיבה קודם, ומהנדסי מערכות עשויים להיות ספקנים בכך שהמודלים שלהם נבחנים על ידי בדיקות יחידה.FLT:0 התרגול הטוב ביותר: FLT:1 מתחיל עם פרויקט טייס המפגין ניצחון מהיר - לדוגמה, מערכת תת-מערכת שהייתה באגגיה היסטורית.
ניהול מודל מורכבות
ככל שהמודלים גדלים, הם יכולים להיות קשים לשמירת הקוד.אם המודל מופשט מדי, ייתכן שהוא מפספס אינטראקציות בעולם האמיתי; אם הוא מפורט מדי, זה הופך לנטל על מנת לדמות.FLT:0 התרגול הטוב ביותר: FLT:1 להשתמש במודל היררכי: לשמור על מודלים ברמה גבוהה של בלאק-box וניתוק לרכיבים קטנים יותר, ניתנים לבדיקה.
ביצועים מתקדמים באינטגרציה רציפה
סימולציות מודל עבור כל ביצוע יכול להיות יקר חישובי.דמיית סימולינק מלאה עשויה לקחת דקות, להאט את משוב המפתח.FLT:0 Best Practice:FLT:1 מפריד את ביצוע הניסוי לשלבים: בדיקות יחידות מהירות לרוץ על כל ביצוע, בעוד בדיקות מודל-in-the-loop לרוץ על הלילה בונה או לפני מיזוג עיקרי.
כיוונים עתידיים
הצומת של TDD ו- MBD מתפתח במהירות, מונע על ידי התקדמות באוטומציה ובבינה מלאכותית.
AI-Assisted Test Generation
אלגוריתמי למידת מכונות יכולים לנתח מודלים קיימים וקוד כדי לחזות אזורים בסיכון גבוה וליצור באופן אוטומטי מקרים חדשים של מבחן (FLT:0)ParasoftFLT:1 ו-FLT:2IBM הנדסה RhapsodyFLT 3) כבר מציעים אופטימיזציה מבוססת AI. בעתיד, AI יכול ללמוד מכישלונות העבר ולהציע זיכוכים מודלים כי להפחית את מחזור TDD.
תאומים דיגיטליים ואימות מתמשך
ככל שהמערכות הופכות ל-Cyber-Physal, המודל מתפתח ל"תאום דיגיטלי" שמשקף את המוצר המוצב.בדיקות TDD יכולות לפעול נגד התאום בזמן אמת, תוך גילוי omalies לפני שהן משפיעות על משתמשי הקצה.התכנסות זו של TDD ו- MBD תהיה חיונית עבור כלי רכב אוטונומיים ותשתיות חכמות.
פרוטוקולים סטנדרטיים
(הופנה מהדף ההרחבה הפתוחה של הנדסת מודלים מבוססת מודל (UAF)BuildFLT:1 ו-FLT:2OMG SysML 2.0igFLT 3: 3 במטרה להפוך מודלים ניידים יותר וניתן לבדיקה על פני שרשרת כלי רכב.זה יפחית את האינטגרציה אשר מעכבת כיום TDD+MBD.
סביבת פיתוח בלתי מזוינת
(ב) , (ב) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
מסקנה
הצומת של פיתוח Test-Driven ועיצוב מבוסס מודל מייצג גישה חזקה לפיתוח תוכנה הנדסית.על ידי שילוב של הקפדה אימות מוקדם של MBD עם משמעת הרציונאלית של TDD, צוותים יכולים לבנות מערכות שהן אמינות יותר, מעקב, והתאמה. בעוד אתגרים כמו מורכבות כלי והתנגדות תרבותית להישאר, היתרונות - מומים מופצים, עלויות הסמכה נמוכות יותר, ומהירות יותר לשוק - הם מספיק מוטיבציה לכונן בטיחות ביקורתית.
בעוד אוטומציה ו- AI ממשיכים לעצב מחדש את הנוף התוכנה, הסינרגיה בין TDD ו- MBD רק להעמיק.ארגוני הנדסה שמשקיעים בזרימת עבודה משולבת זו היום תהיה יותר ממוצבת להתמודד עם המורכבות של המערכות האינטליגנטיות של מחר.אם אתה מפתח בקר חשמלי, מערכת ניהול טיסה, או רובוט תעשייתי, שילוב TDD ו- MBD היא אסטרטגיה המבטיחה לספק איכות במהירות של חדשנות.