פרוטוקול זה מציג את MAS4SysML, גישה מרובת סוכנים שמייצרת אוטומטית קוד SysML v2 באמצעות חלוקת משימות מתואמת, ודורשת מעט איטרציות תיקון ומקצרת משמעותית את זמן המידול הידני תוך שיפור יעילות המידול של המערכת.
Research Article
פרוטוקול זה מציג את MAS4SysML, גישה מרובת סוכנים שמייצרת אוטומטית קוד SysML v2 באמצעות חלוקת משימות מתואמת, ודורשת מעט איטרציות תיקון ומקצרת משמעותית את זמן המידול הידני תוך שיפור יעילות המידול של המערכת.
יצירת מודלים מדויקים של SysML אוטומטית מתוך דרישות שפה טבעית יכולה להאיץ משמעותית את אימוץ הנדסת מערכות מבוססות מודלים (MBSE) בפיתוח מערכות מורכבות. עם זאת, שימוש במודלים גדולים (LLMs) ליצירת קוד מודל לעיתים קרובות אינו עומד במגבלות התחביריות המחמירות של שפות מידול פורמליות, והבטחת התאמה סמנטית עקבית בין מודלים שנוצרו לדרישות נותרת מאתגרת. כדי להתמודד עם אתגרים אלו, מאמר זה מציג את MAS4SysML, מסגרת שיתופית רב-סוכנית ליצירת קוד SysML v2 שמשפרת את הנכונות התחבירית והעקביות הסמנטית תחת תקציב תיקון מוגבל. המסגרת מפרקת משימת מידול לתתי-משימות היררכיות, מסדרת אותן ככרטיסי משימות מובנים, ומייצרת קוד מודל באופן מלמטה למעלה. במהלך היצירה, נעשה שימוש בסביבת אימות רשמית לאבחון תחביר; לאחר ההשלמה, המסגרת בודקת עקביות סמנטית בין הקוד לכרטיסי המשימה. אם אימות תחביר או סמנטי נכשל, המסגרת מתקנת ומאמתת מחדש את הקוד באופן איטרטיבי בתוך תקציב תיקון מוגדר מראש, בהנחיית משוב אבחון, עד שהקריטריונים של האימות מתקיימים או שהתקציב אזל. כדי להעריך את השיטה המוצעת, אנו בונים מערך נתונים SysML v2 הכולל חמישה סוגי משימות מרכזיים—דרישות, מקרי שימוש, מבנה, פרמטריקה ומכונות מצבים—ומבצעים ניסויים השוואתיים. התוצאות מראות ש-MAS4SysML מפחיתה את שיעור שגיאת התחביר הממוצע ל-2.63, מגבירה את הדמיון הסמנטי ל-0.91, ומבצעת ביצועים טובים יותר בשיטות יצירת קוד קיימות.
MBSE הפך למתודולוגיה מרכזית לניתוח דרישות, תכנון ארכיטקטורת מערכות ותכנון אימות בפיתוח ציוד מורכב בתחומים כמו תעופה וחלל1. באמצעות שפות מידול מאוחדות כמו SysML כעמוד השדרה של המידול, ניתן לארגן מידע—כולל דרישות, מבנה, התנהגות ומגבלות—במסגרת מודל קוהרנטית, מה שמשפר את מבנה התהליך ואת יעילות שיתוף הפעולה הבין-תחומי2. עם זאת, ככל שגודל המערכת ממשיך לגדול, מספר המודלים שיש לפתח גדל בהתאם, מה שמוביל לעלייה מתמשכת בעומס העבודה של מידול SysML ידני. יתרה מזאת, מודליסטים חייבים לעבוד תחת מגבלות תחביריות ומתודולוגיות מחמירות, הדורשות מומחיות משמעותית ויכולות הפשטה חזקות. גורמים אלו הפכו לצוואר בקבוק מרכזי באימוץ ההנדסי של MBSE3.
בשנים האחרונות, מודלים גדולים גדולים הראו יכולות חזקות בהבנת שפה טבעית, ייצוג מידע מובנה ויצירת קוד, מה שמאפשר הזדמנויות חדשות לאוטומציה של מידול MBSE משפה טבעית למודלקוד 4. מחקרים קודמים בחנו את היצירה הישירה של קוד מודל SysML באמצעות מודליםגדולים 5. עם זאת, עדיין קיימים אתגרים משמעותיים. מבחינה סינטקטית, מערכת הטיפוסים, מנגנוני ההיקף וסמנטיקת ההתייחסות של SysML נשלטים על ידי מגבלות פורמליות מחמירות ולעיתים קרובות מורכבות יותר מאלו של שפות תכנות כלליות6. סמנטית, מודלים גדולים גדולים עלולים להיכשל בללכוד במלואם לוגיקה התנהגותית, יחסים מבניים ואילוצים חוצי שכבות, מה שמוביל ליחסים חסרים, אי-עקביות לוגית או מודלים לא שלמים7. מגבלות אלו פוגעות באמינות, בשליטה ובפרשנות של גישות לייצור ישיר.
כדי להתמודד עם אתגרים אלו, מאמר זה מציג MAS4SysML, מסגרת יצירת קוד SysML v2 הכוללת ארבעה תפקידי סוכנים. במקום להתמקד ישירות ביצירת מערכת חד-פעמית של מודל מערכת cross-view מלא, מחקר זה מתמקד ביצירה ותיקון איטרטיבי של משימות מידול מייצגות של SysML v2. מונע על ידי פירוק משימות וכרטיסי משימה מובנים, ושילוב יצירת קוד, אבחון תחביר ברמת הכלי ואימות עקביות סמנטית, MAS4SysML יוצר זרימת עבודה סגורה של יצירה, אימות ותיקון. עיצוב זה משפר את נכונות התחביר, העקביות הסמנטית והשלמות המבנית של הקוד שנוצר תחת תקציב תיקון מוגבל.
התרומות העיקריות מסוכמות כך: (1) מסגרת MAS4SysML. אנו מציעים את MAS4SysML, מסגרת רב-סוכנית המונעת על ידי LLM, המאפשרת יצירה מקצה לקצה מדרישות שפה טבעית ועד קוד מודל SysML v2 להרצה, ומספקת דרך מעשית להפחתת עלויות המידול ולשיפור יעילות המידול. (2) ניתוח משימות ואימות כפול. אנו מציגים מנגנון ניתוח עץ מבנה-משימה וסכמת אימות כפולה (תחביר וסמטיקה). בניתוח משימות, מטרות המידול מפורקות היררכית ומפורמלות לכרטיסי משימות מובנים. לצורך אימות, אבחון תחביר מנצל סביבת אימותרשמית 8 כדי לבדוק קוד שנוצר ולהחזיר אבחונים מבוססי תיקון, בעוד שווידציה סמנטית משתמשת בשדות מפתח בכרטיסי המשימה כהפניות להערכת עקביות כוללת בין המודל שנוצר למטרות המודל. (3) הערכה ניסויית. אנו מבצעים ניסויים השוואתיים תוך שימוש בשיעור שגיאות תחביר וציון עקביות סמנטית כמדדים העיקריים. התוצאות מראות ש-MAS4SysML מפחיתה את שיעור שגיאת התחביר הממוצע ל-2.63 ומעלה את הדמיון הסמנטי ל-0.91, מה שמעלה על שיטות בסיסיות בדיוק ייצור ואוטומציה.
Access restricted. Please log in or start a trial to view this content.
תהליך יצירת הקוד של מסגרת MAS4SysML מסוכם בקובץ משלים 1. יש לציין כי מחקר זה אינו שואף להשיג יצירת חד-פעמית של מודל מערכת שלם משפה טבעית עם עקביות קפדנית בין תצוגות, כולל דרישות, מבנה, פרמטריות והתנהגות. במקום זאת, הפרוטוקול מתמקד ביצירת מספר סוגים מייצגים של קוד תצוגה SysML v2.
שלב I: ניתוח משימות
תהליך העבודה מתחיל בניתוח משימות. המערכת מספקת את כוונת המידול בשפה טבעית לסוכן יצירת מבנה המשימות, שמפיק סט כרטיסי משימה. כדי להבטיח שהדורות הבאים יהיו ניתנים להרצה וניתנים לשחזור, כל כרטיס משימה חייב לכלול, לפחות, (i) מזהה משימה, (ii) יחסי תלות, ו-(iii) מידע מרכזי על מודלים לאימות (Validation), כגון מטרת המידול, אילוצים/תנאי גבול, חריצי פרמטרים, ערכי מופע, והפלטים הצפויים. שלב זה מפיק task_card_set, המשמש כבסיס מאוחד ליצירת קוד מודל מאוחר יותר.
שלב II: יצירת קוד איטרטיבית
ביצירה איטרטיבית, המערכת מאתחלת את הקשר הקוד prev_code למצב ריק ומייצרת קוד עבור כל כרטיס משימה ברצף לפי סדר שנקבע על ידי שדות התלות. עבור כל כרטיס משימה, סוכן יצירת הקוד לוקח את כרטיס המשימה הנוכחי ואת הקוד ההקשרי כקלט ליצירת candidate_code ומיד מפעיל את מודול אימות התחביר לבדיקה. המודול מאמת את הקוד באמצעות סביבת האימות הרשמית SysML v2 ומחזיר תוצאות אבחון. אם האימות מצליח, ה-candidate_code משמש לעדכון prev_code ותומך בדור הבא. אם האימות נכשל, סוכן תיקון הקוד מופעל ומבצע עריכות מינימליות וממוקדות בהנחיית האבחונים שהוחזרו, ולאחר מכן הקוד המתוקן מוגש מחדש לאימות מחדש. לולאת אימות התיקון הזו מוגבלת על ידי תקציב התיקון המקסימלי Kמקסימום. אם האימות מצליח במסגרת התקציב, הגרסה שעוברת מתעדכנת prev_code; אחרת, לאחר ניסיונות KMax , המערכת מתעדת את הכשל וממשיכה ביצירת כרטיסי משימה נוספים באמצעות הגרסה האחרונה שתוקנה prev_code כדי להימנע מחסימת זרימת העבודה תוך שמירה על המשכיות הקשרית.
שלב III: אימות סמנטי
לאחר שהקוד נוצר עבור כל כרטיסי המשימה, תהליך העבודה ממשיך לאימות סמנטי. סוכן האימות הסמנטי מעריך את העקביות בין הקוד הסופי לכוונת המודלים באמצעות שדות מפתח ב-task_card_set כהפניות ומפיק את תוצאות האימות הסמנטי. אם האימות מצליח, prev_code מתקבל כקוד המודל הסופי של SysML v2. אחרת, המערכת יוצרת דוח סטייה סמנטית שמזהה שדות כרטיס משימה שלא מולאו ואת תחום הגרסאות הנדרש. סוכן תיקון הקוד מתקן את הקוד בהתאם ומפיק את קוד הדגם המתוקן כתוצאה הסופית.
ארכיטקטורת המודלים ומתודולוגיה
ארכיטקטורת מודלים
מסגרת MAS4SysML, המוצגת באיור 1, כוללת ארבעה סוכנים שיתופיים: סוכן יצירת מבנה המשימות, סוכן יצירת קוד, סוכן תיקון קוד, וסוכן אימות סמנטי. תבניות ההנחיות המתאימות מוצגות באיור 2.
סוכן יצירת מבנה המשימות מבצע ניתוח סמנטי של כוונת המידול בקלט ומייצר כרטיסי משימה מבונים וניתנים להרצה. תחילה הוא מיישם מנגנון פירוק משימות היררכי (ראו מנגנון פירוק משימות היררכי) כדי לפרק את מטרת המידול הכוללת לצמתים עם גבולות סמנטיים מוגדרים היטב, ואז בונה כרטיס משימה מובנה לכל צומת. בהמשך, כרטיסי המשימות מסודרים לפי שדות התלות במידול שלהם כדי להבטיח שרצף הביצוע תואם את מבנה הקוד הסופי, ובכך מניח את הבסיס ליצירת קוד מלמטה למעלה המונעת על ידי מטרת המידול הגלובלי.
סוכן יצירת הקוד מייצר בהדרגה קוד מודל התואם ל-SysML v2 בהתאם לתלותיות המידול. בהתבסס על ארטיפקטים של קוד שנוצרו על ידי משימות האב, הסוכן מבצע את פעולות יצירת הקוד המתאימות בהתאם לדרישות המפורטות בכל כרטיס משימה, ובכך מאפשר תהליך בנייה שלבי—מהרכיבים המקומיים ועד למודל השלם.
סוכן תיקון הקוד מתקן שגיאות בקוד שנוצר בהתבסס על תוצאות מודול אימות התחביר (ראו מודול אימות תחביר) ותוצאות האימות הסמנטי. לתיקון תחביר, הוא מנצל את סוג השגיאה, המיקום והמידע ההקשרי שמוחזר על ידי מאמת התחביר כדי לסנתז אסטרטגיות תיקון ממוקדות וליצור קוד מתוקן. לתיקון סמנטי, הוא מתאים את היחסים המבניים והלוגיים בהתאם לתוצאות האימות הסמנטי, ומבטיח עקביות סמנטית ושלמות מבנית במודל הסופי.
סוכן האימות הסמנטי מעריך את העקביות הסמנטית בין הקוד שנוצר במלואו לבין כרטיסי המשימה באמצעות מנגנון אימות סמנטי ייעודי (ראו מנגנון אימות סמנטי). באמצעות הערכה כמותית, הוא מבטיח שהקוד שנוצר משקף במדויק את כוונת המידול המקורית, ובכך משיג התאמה מדויקת בין קוד המודל לדרישות המידול שנקבעו.
מנגנון פירוק משימות היררכי
כשפת מידול פורמלית למערכות מורכבות, SysML v2 מתאפיין בתחביר הדוק, מבנים היררכיים מקוננים עמוק ומגבלות סמנטיות חוצות רמות. לדוגמה, בלוק מבנה מערכת עשוי להכיל מספר תת-חלקים, תכונות ופורטים תוך ביטוי בו-זמנית דרישות ביצועים או התנהגות דרך מגבלות חוצות שכבות. מבנים ומגבלות אלו יוצרים תלות מבנית מלמעלה למטה ויחסי משוב סמנטי מלמטה למעלה. בגישה שטוחה וחד-פעמית, מיפוי מדויק של תלויות היררכיות כאלה הופך למאתגר, ולעיתים גורם ליחסים חסרים, אי-עקביות סמנטית או אובדן מידע על מגבלות.
כדי להתמודד עם אתגר זה, פיתחנו שיטת ניתוח כוונה מבוססת עץ משימות, אשר מפרקת באופן היררכי דרישות מידול בשפה טבעית. כפי שמודגם באיור 3, מטרות מידול מורכבות מפורקות לצמתים מובנים וניתנים למעקב, מה שמאפשר למערכת לפרש את סמנטיקת המידול באופן מלמעלה למטה ולזהות יחסי תלות. בפרט, כאשר סוכן יצירת מבנה המשימות מקבל את קלט המשתמש, הוא מנצל תחילה את יכולות הניתוח הסמנטי של מודלים גדולים כדי לזהות מטרות ליבה של מידול, ישויות מפתח ותלותיהן. לאחר מכן הוא מפרק רקורסיבית את המטרה העליונה לתתי-משימות בלתי תלויה סמנטית ומחדד אותן למשימות אטומיות שניתן למפות ישירות לפעולות מידול SysML v2, ובסופו של דבר יוצר עץ מבנה משימות שלם. לאחר בניית עץ המשימות, הסוכן מייצר כרטיס משימה מובנה לכל צומת משימה בהתבסס על תבנית מוגדרת מראש. פורמט כרטיס המשימה מוגדר כך:
TC = {id,O,N,K,P,V,C,D} (1)
כאשר id כמזהה הייחודי של צומת המשימה, O כמטרה של המשימה, N כתיאור בשפה הטבעית של המשימה, K מציין את האלמנטים הסמנטיים המרכזיים של SysML v2 שעשויים להיות מעורבים במשימה, בעיקר כולל הגדרת דרישה/דרישה, חלק def/part, port def/port, item def, attribute def/attribute, ו-state/transition. הקשרים בין אלמנטים אלו מתבטאים בעיקר דרך חיבור (חיבורים מבניים), פריטי קלט/פלט ביציאות (זרימות מידע/חומר), ותנאי טריגר/שומר של מעברי מכונה מצבים (למשל, פקודות, מצב בריאות ומגבלות סף), C כחוקים סמנטיים או תנאי גבול, P כחריצים פרמטריים במשימה כמו שמות תכונות, סוגי נתונים או טיפוסי מורכבות, V כערכים המיושמים לכל חריץ ו-D כתלות המידול בין משימות שבהן depend_on מגדיר את הפלטים הנדרשים ממשימות אחרות לפני יצירת קוד המשימה הנוכחי, מספק פלטים שנוצרים לאחר סיום המשימה ו-consume מייצג קלטים חיצוניים הנדרשים למשימה.
מודול אימות תחביר
מודול אימות תחביר נבנה בהתבסס על יישום הפיילוט של SysML v2. על ידי הפעלת ממשקי המנתח והאימות שלו, המודול מנתח ומאשר את נכונות הסינטקטיקה של קוד מודל SysML v2 שנוצר. קריטריוני האימות של המודול נגזרים בעיקר ממפרט השפה SysML v2, וכן מכללי הדקדוק, כללי פתרון היקף ומנגנוני בדיקת אילוצים קשורים שמיושמים בכלי הפיילוט. באופן ספציפי, האימות בודק האם הצהרות האלמנטים מעוצבות היטב, האם מבני הבלוקים שלמים, האם הערות טיפוס תקפות, האם ניתן לפתור שמות והפניות בהצלחה, והאם מבני מודלינג כמו פורטים, חיבורים, מצבים ומעברים עומדים בדרישות השפה.
לאחר שסוכן יצירת הקוד מייצר את קטע הקוד למשימה הנוכחית, הפלט מועבר למודול אימות התחביר, שם סקריפט האימות מנתח את הקוד ומחזיר את התוצאות בצורת מידע אבחוני מובנה. תוצאות האימות מדווחות כך:
e1 = (סוגi,pos i,msg i) (2)
כאשר ei מציין את רשימת הבעיות שזוהו עבור משימת המידול הנוכחית, כאשר כל ערך מכיל את סוג השגיאה סוג i, מיקום השגיאה posi, והודעת האבחון msgi .
לדוגמה, אם הקוד שנוצר מכיל שגיאת תחביר כמו "תכונה אינה מוקלדת על ידי הגדרת תכונה", מודול האימות מחזיר את הודעת האבחון הבאה:
'type' : 'error'
'הודעה' : 'שגיאה: יש להקליד תכונה לפי הגדרת תכונה.' (3)
'מיקום' : 'שורה 7 עמודה: 3'
כאשר תוצאת האימות ei ≠ 0, מידע השגיאה שנאסף ei מועבר לסוכן תיקון הקוד לתיקון נוסף. לכן, תהליך תיקון הקוד אינו תהליך שינוי בלתי מוגבל, אלא גרסה ממוקדת המונחית על ידי מידע אבחוני מפורש שמוחזר על ידי המנתח והמאשר.
מנגנון אימות סמנטי
מנגנון האימות הסמנטי משתמש בשדות כרטיסי משימה מרכזיים שיש להם התאמה מפורשת וניתנת למעקב לקוד המודל כעוגנים סמנטיים. הוא מעריך עקביות סמנטית ברמת המודל, ובכך מספק קריטריונים מפורשים וניתנים ליישום לתיקון מודל מאוחר יותר. באופן ספציפי, עבור כל כרטיס משימה TCi, השדות הבאים משמשים כהפניות סמנטיות מרכזיות: (i) מטרת המידול Oi, (ii) אילוצים סמנטיים ותנאי גבול Ci, (iii) ערכי חריץ פרמטרים V i, ו-(iv) פלטים צפויים לאחר השלמת המשימה Di['מספק']. תחומים אלה מטילים מגבלות סמנטיות משלימות על המודל שנוצר ממספר נקודות מבט: מימוש כוונת המידול, סיפוק מגבלות, עקביות ביצירת פרמטרים, ושלמות פלטי המודל—מה שמאפשר החלטה עקרונית האם קוד המודל עומד בדרישות המידול מבלי לדרוש הנחות נוספות.
בהתבסס על שדות מרכזיים אלו, אנו מגדירים פונקציית החלטה של עקביות סמנטית מרובת שדות:
(4)
כאשר I(·) מציין פונקציית אינדיקטור ששווה ל-1 אם כל פונקציות תת-ההחלטה שבסוגריים מתקיימות, ו-0 אחרת. החלטה בינארית זו מבחינה במפורש בין מצבי עמידה בדרישות המידול לבין דרישת תיקון נוסף, ומספקת תנאי טריגר דטרמיניסטי לתהליך התיקון הסמנטי הבא. ההחלטה הכוללת נקבעת במשותף על ידי ארבע תת-פונקציות ההחלטה הבאות:
(1) מידול עקביות אובייקטיבית:
Φ0 (TCi,c f) = I(compist(cf,0 i)) (5)
כאשר Consist(cf,0 i) מציין האם קוד המודל cf עקבי סמנטית עם מטרת המידול 0i שצוינה בכרטיס המשימה.
(2) סיפוק אילוצים סמנטיים:
Φc (TCi,c f) = I(מספק/ה (cf,C i)) (6)
כאשר Satisfy(cf,C i) מציין האם קוד המודל cf מקיים את האילוצים הסמנטיים ותנאי הגבול Ci שצוינו בכרטיס המשימה.
(3) עקביות פרמטרים:
Φc (TCi,c f) = I(מיידי(cf,V i)) (7)
כאשר Instant(cf,V i) מציין האם ערכי הפרמטר המיושמים Vi בכרטיס המשימה משתקפים באופן עקבי בקוד המודל.
(4) עקביות בתפוקה:
(8)
כאשר Artifacts(cj) מציין האם הפלטים הצפויים על ידי כרטיס המשימה נמצאים בקוד המודל הסופי, ומשמשים כמדד לשלמות התוצאה שנוצרה.
שיפוטי עקביות אלו מיושמים על ידי סוכן האימות הסמנטי באמצעות יכולת ההבנה הסמנטית של ה-LLM; תהליך ההסקה הפנימי של הסוכן אינו משנה את ההגדרה הפורמלית או את השימוש בפונקציית העקביות.
באמצעות בדיקת עקביות סמנטית רב-שדותית זו, ניתן לאמת את המודל שנוצר שדה אחר שדה כדי להבטיח שכל מטרת מידול, תנאי אילוצ, תצורת פרמטרים ותפוקה צפויה מתקיימת כראוי. תהליך זה לא רק מספק טריגר מפורש לתיקון סמנטי נוסף, אלא גם מספק ראיות סמנטיות ניתנות למעקב לאורך כל צינור הייצור, ובכך משפר את האמינות והעקביות של המודל שנוצר.
נתונים ניסיוניים והערכה
נתונים ניסיוניים
קוד מודל SysML v2 אינו קוד תוכנה רגיל; הממצאים שנוצרו מציגים מאפיינים ייחודיים של מודלים פורמליים. תפיסות שונות כוללות בדרך כלל קטגוריות מובחנות של אלמנטים מרכזיים למידול, כגון דרישות, חלקים, פורטים, תכונות, מצבים ומעברים, אשר שונים באופן מהותי בסגנונות ההכרזה, בצורות הארגון ובמבני ההרכב. בנוסף, קוד המודל חייב לעמוד במספר מגבלים, כולל הפניה לסוגים, קינון היררכי, מגבלות חיבור ושימוש סמנטי חוזר בין אלמנטים.
כדי להעריך באופן מקיף את ביצועי השיטה המוצעת תחת מורכבויות מידול משתנות, נבנה מערך קוד הכולל חמישה סוגי תצוגה מייצגים של מודלים—דרישות, מקרי שימוש, מבנה, פרמטריקה ומכונות מצבים. תצוגות מודל אלו מתאימות למפרט דרישות, אינטראקציה פונקציונלית, הרכב מבני, ייצוג אילוצים פרמטריים ותיאור לוגי התנהגותי במידול מערכת, בהתאמה. הערכת המסגרת בנפרד על סוגי תצוגות מודל שונים מאפשרת ניתוח מדויק יותר של היישום שלה תחת מאפייני מבנה קוד מגוונים ותנאי מגבלות מודל.
כל סוג תצוגת מודל מכיל 15 מופעי מודל שנוצרו ידנית, מה שמוביל למערך נתונים של N = 75 מודלים SysML v2. מערך הנתונים משתרע על פני תחומים הנדסיים רבים, כולל תעופה וחלל, רכב, רפואה ומערכות בית חכם, וכל הדגמים עברו בהצלחה את סביבת האימות הרשמית של SysML v2, מה שמבטיח עמידה קפדנית בתחביר.
לאחר מכן, יצרנו תיאור כוונת מידול בשפה טבעית עבור כל מודל. כדי לשפר את יעילות הבנייה, השתמשנו בתבנית ההנחיות שמוצגת בקובץ המשלים 2 והשתמשנו ב-GPT-4o ליצירת תיאורים ראשוניים. GPT-4o נבחר בשל יכולותיו החזקות להבנה סמנטית והפקת מידע, המאפשרות לו ללכוד במדויק אלמנטים מרכזיים של המודל ללא הזיות וליצור תיאורי כוונת מידול דמוייאדם. כדי להבטיח דיוק ולהסיר עמימות, כל התיאורים שנוצרו נבדקו ושופרו ידנית על ידי חוקרים עם רקע בהנדסת מערכות. דוגמאות מייצגות לסוגי מודלים שונים מוצגות בטבלה 1.
מדדי הערכה
אנו משתמשים בשלושת המדדים המרכזיים הבאים להערכת איכות קוד מודל SysML v2 שנוצר:
שיעור השגיאה התחבירית הממוצע (SER)
מדד זה מכמת את שיעור השגיאות התחביריות שמזוהות כאשר קוד המודל שנוצר מאומת מול כללי התחביר הרשמיים של SysML v2. הוא מחושב כך:
(9)
כאשר Ei מציין את מספר השגיאות התחביריות שזוהו במודל שנוצר ב-i. מדד זה משקף את המידה שבה קוד המודל שנוצר עומד במפרט התחביר הפורמלי של SysML v2.
ציון עקביות סמנטית (SCS)
מדד זה מעריך עד כמה קוד המודל שנוצר לוכד בדיוק ומקיף את הכוונה הסמנטית המובעת במפרטי המידול בשפה טבעית. באופן ספציפי, אנו מחלצים יחידות סמנטיות מתוך כוונת המידול—כגון ישויות מערכת, רכיבים משתתפים, פונקציות ליבה או תרחישים התנהגותיים, ותנאים או מגבלות מפתח—ומשווים אותן ליחידות הסמנטיות הקיימות בקוד המודל שנוצר. העקביות הסמנטית מחושבת כך:
(10)
כאשר U מייצג את קבוצת היחידות הסמנטיות שהופקו מכוונת המידול, ומייצג
את קבוצת היחידות הסמנטיות שזוהו בקוד שנוצר.
מציין את מספר היחידות שנלכדו נכון על ידי קוד המודל שנוצר. ערך SCS גבוה יותר מצביע על כיסוי סמנטי חזק יותר ויישור חזק יותר.
הערכת איכות האדם
מדדים אוטומטיים מסורתיים כמו BLEU ו-CodeBLEU מעריכים בעיקר דמיון שטחי או ביצועיות קוד, אך אינם תופסים האם המודל באמת מבין או מבטא נכון את הסמנטיקה המיועדת למידול. מדדים אלו מוגבלים בהערכת עקביות סמנטית, שלמות של אלמנטים מרכזיים והתאמה לכוונת המידול10. לעומת זאת, הערכה אנושית יכולה לזהות בצורה מדויקת יותר בעיות כמו אלמנטים סמנטיים חסרים, אי-עקביות לוגית, כפילויות מבניות או הזיות לא מגובות – ובכך לספק הערכה אמינה יותר11. בהשראת מגבלות אלו, אנו מעצבים מסגרת הערכה אנושית למודלים של SysML v2 שנוצרו, הכוללת שלושה קריטריונים: (1) נכונות: המודל שנוצר חייב לשקף במדויק את כוונת המידול, לשמור על עקביות מבנית ולוגית עם מטרות המשימה, וללא עמימות סמנטית, אלמנטים חסרים או הרחבות שגויות. (2) קריאות: קוד המודל צריך להיות ברור וקל להבנה, עם שמות עקביים, מבנה קוהרנטי והיררכיה מאורגנת היטב התומכת בבדיקה ותחזוקה נמשכת. (3) שלמות: המודל צריך להציג לוגיקה מבנית מלאה, הפניות עקביות בין אלמנטים, וללא סוגים לא מוגדרים או שרשראות תלות שבורות, כדי להבטיח את השימושיות שלו לניתוח ואינטגרציה במורד הזרם. הזמנו חוקרים עם ניסיון במידול SysML לדרג כל מודל שנוצר בסולם של שלוש נקודות, כאשר 1 מציין את האיכות הנמוכה ביותר ו-3 הגבוה ביותר. במהלך ההערכה, הותר למעריכים להשוות את קוד המודל שנוצר למודל האמת הקרקעית כדי להבטיח הערכה מדויקת ומקיפה יותר.
קו הבסיס
בחרנו מספר קווי בסיס להערכה לבדיקות השוואתיות מול השיטה המוצעת, כולל:
CodeCoT12: משלב הסקת שרשרת מחשבה עם מנגנון בדיקה עצמית, המאפשר למודל להסביר במפורש במהלך יצירה ושגיאות תחביריות מתקן את עצמה, ובכך משפר את איכות הקוד ואת העקביות הסמנטית.
תכנון עצמי13: מציג צינור יצירת קוד דו-שלבי שבו המודל מתכנן תחילה את שלבי הפתרון ואז מייצר קוד בהתאם לתוכנית, ובכך משפר את הקוהרנטיות הלוגית והפרשנות למשימות מורכבות.
עריכה עצמית14: מאמצת פרדיגמת יצירה ועריכה איטרטיבית שמבצעת את הקוד שנוצר ומתקנת שגיאות אוטומטית בהתבסס על משוב בזמן ריצה, תוך שיפור מתמשך של הפלט.
CodeChain15: משתמש ביצירה מודולרית וגרסה איטרטיבית על ידי פירוק משימות מורכבות למודולים פונקציונליים עצמאיים ושיפור יציבות מבנית ואיכות כוללת באמצעות סבבי אופטימיזציה מרובים.
ניפוי שגיאות עצמי16: מעניק למודל יכולות דיבוג והסבר אוטונומיות. באמצעות תהליך סגור של יצירה, ביצוע וניפוי שגיאות, הוא משפר משמעותית את התקינות במשימות תכנות מורכבות ללא התערבות אנושית.
MapCoder17: בונה מסגרת שיתופית רב-שלבית המורכבת מארבעה סוכנים—שליפה, תכנון, קידוד וניפוי שגיאות—המדמה מקרוב את תהליך התכנות האנושי ומאפשר יצירת לולאה סגורה מהבנת משימות ועד אימות תוצאות.
שיתוף פעולהעצמי 18: מארגן את המערכת כצוות תכנות וירטואלי עם תפקידים כמו אנליסט, מתכנת ובודק, ומשפר את הביצועים הכוללים ביצירת קוד מורכב באמצעות שיתוף פעולה מבוסס תפקידים ומשוב איטרטיבי.
סידור ניסיוני
כדי להבטיח הוגנות והשוואה בין ניסויים, הערכנו תחילה מספר מודלים גדולים גדולים (LLMs) מרכזיים באמצעות גישת יצירת קוד ישירה כדי לקבוע ביצועים בסיסיים. בהתבסס על תוצאות ראשוניות אלו, נבחר מודל ה-LLM בעל הביצועים הטובים ביותר כמודל עמוד השדרה המאוחד לכל הניסויים הבאים. בהמשך השווינו את מסגרת MAS4SysML המוצעת לבין מספר שיטות יצירת קוד מייצגות. כל האינטראקציות ב-LLM בוצעו באמצעות הגדרת טמפרטורה קבועה (T = 0.2) כדי למזער אקראיות במהלך הייצור. לכל משימת מידול, מספר האיטרציות המקסימלי של תיקונים ב-MAS4SysML הוגדר ל-Kmax = 3. כל שיטות הבסיס בוצעו תחת אותה תצורה ניסויית כמו MAS4SysML כדי להבטיח עקביות תוצאות והוגנות ניסיונית. סקריפט הפייתון של שיטת MAS4SysML מסופק כקובץ משלים 3.
Access restricted. Please log in or start a trial to view this content.
הערכת מודל בסיס
בחרנו תחילה מספר מודלים מרכזיים וביצענו בדיקות ביצועים ראשוניות באמצעות יצירת מודל-לקוד ישירה, כולל CodeX(175B)19, CodeGen-Mono(16.1B)20, PaLM Coder(62B)21, Alphacode(1.1B)22, Incoder(6.7B)23, ו-code-davinci-002(175B)24. כפי שמוצג בטבלה 2, code-davinci-002(175B)24 הציג א...
Access restricted. Please log in or start a trial to view this content.
אנו מציעים את MAS4SysML, מסגרת שיתופית מרובת סוכנים ליצירת קוד מודל SysML v2 חצי-אוטומטי. המסגרת מורכבת מארבעה סוכנים משלימים תפקודית. במהלך תהליך היצירה, הוא (i) מפרק היררכית דרישות מידול בשפה טבעית באמצעות מבנה מבוסס עץ משימות ומפורמל אותן לכרטיסי משימה מובנים, ו-(ii) מייצר קוד מודל SysML v2 באופן מלמטה למעלה בהנחיית האילוצים ויחסי התלות המפורטים בכרטיסים אלו. במהלך הדור, מודול אימות תחביר שנבנה על סביבת האימות הרשמית של SysML v2 מבצע אבחוני תחביר ומחזיר משוב ממוקד תיקון. לאחר יצירת הק...
Access restricted. Please log in or start a trial to view this content.
למחברים אין ניגודי עניינים. כלי AI/LLM שימשו רק במהלך בניית מערכי נתונים. באופן ספציפי, כדי לבנות מאגר נתונים להערכה, השתמשנו בכלי בינה מלאכותית ליצירת משפטי בעיה למידול בשפה טבעית התואמות למודלים ידניים של SysML v2 (כלומר, יצירת "תיאור המשימה" בהינתן מודל SysML v2 שנבנה על ידי המחבר), ויצרנו זוגות קלט-פלט לביצוע ביצועים. מעבר למטרה מוגבלת זו, לא נעשה שימוש בבינה מלאכותית ליצירת השיטה המוצעת, תוצאות ניסוי, ניתוחי נתונים, איורים/טבלאות או כל טקסט כתב יד.
מחקר זה נתמך על ידי פרויקט התעופה האזרחית (D020101) של המינהל הממלכתי למדע, טכנולוגיה ותעשייה להגנה לאומית של סין.
Access restricted. Please log in or start a trial to view this content.
| Name | Company | Catalog Number | Comments |
|---|---|---|---|
| לנגצ'יין | LangChain (פרויקט קוד פתוח) | v1.0.8; https://github.com/langchain-ai/langchain | מסגרת לאינטראקציה עם LLM ותיאום סוכנים |
| לנגגרף | LangChain (פרויקט קוד פתוח) | v1.0.3; https://github.com/langchain-ai/langgraph | מסגרת ביצוע זרימת עבודה מרובת סוכנים |
| פייתון | קרן התוכנה של פייתון | 3.10.x; https://www.python.org/downloads/release/python-3100/ | שפת התכנות הראשית למימוש MAS4SysML |
| מימוש פיילוט של SysML v2 | קבוצת ניהול אובייקטים (OMG) | (מספק גרסת שחרור/תגית); https://github.com/Systems-Modeling/SysML-v2-Pilot-Implementation | משמש לאימות תחביר וניתוח מודלים |
Access restricted. Please log in or start a trial to view this content.
Request permission to reuse the text or figures of this JoVE article
Request Permission