Table of Contents
מודלים פונקציונליים בפיתוח מערכות Embedded: אסטרטגיות וכלים
(המערכות המוכחות הן הכפילות השקטות של הטכנולוגיה המודרנית.ממערכת ה- Anti-lock Braking במכוניתך למשאבת האינסולין בניהול גלוקוז בדם של חולי סוכרת, מכשירים מחשוב מיוחדים אלה מבצעים פונקציות ייעודיות במערכות גדולות יותר.פיתוח מערכות כאלה הוא ניסיון רב-השפעה: באג אחד בקושחה של מערכת הרכב יכול להוביל לזיכרון יקר, וטעייה בקצב יכול להיות מארגן מראש מודלים של ניהול יעיל של מערכות ניהול חומרה: 1-Fware, כלומר, כלומר, כלומר, יעילות, כדי לפתח מודלים של מערכת ניהולית, יעילה, יעילה, יעילה, יעילה, כלומר, עיצובית של מערכת ניהול מחשבתית, יעילה, יעילה, יעילה, יעילה, יעילה, כלומר, כלומר, כדי להבטיח את ה-תועלת מושלמת של מערכת ניהול מחשבתית: 1-תועלת מושלמת של מערכת ניהולית:
מה זה מודל פונקציונלי?
המודל הפונקציונלי הוא הנוהג של תיאור FLT:0 מהמב"ל:1 מערכת עושה ללא מרשם:2howFLT 3: 3 זה עושה את זה.זה מתמקד לתפוס את התנהגויות המיועדות של המערכת, זרימת נתונים, מעברים המדינה ואינטראקציות עם ישויות חיצוניות.
במערכות משובצות, מודלים פונקציונליים בדרך כלל לקחת אחד ממספר צורות:
- (FLT:0) תרשים מקרה של דיאגרמות (FLT:1) - אינטראקציות אילוסטראט בין שחקנים (משתמשים, מערכות אחרות) לבין המערכת, מראה פונקציונליות ברמה גבוהה.
- (ב) ⁇ 0 (הההתרגמה של ⁇ ) ,(ה) ,(ה) ,המודל לזרימת הפעולות, ההחלטות והמקבילות – שימושית להבנת לוגיקה ותהליכים אפשריים.
- (FLT:0) תרשים מכונה של פוליסות FLT:1 - מערכת Define קובע, מעברים ואירועים - אידיאלי עבור מערכות תגובתיות כמו thermostat או פרוטוקול תקשורת.
- (FLT:0Data Flow דיאגרמות זרימה של נתונים) 1 - מפה כיצד נתונים נעים בין רכיבי עיבוד - מועיל לעיבוד אותות או היתוך חיישן.
- (FLT:0) הגדרות של בלוק ודמיוני בלוק פנימיים של LT:1 (SysML) - מבנה מערכת Show וחיבורים ברמה מושגית.
חשוב, מודלים פונקציונליים של PCB נבדלים ממודל פיזיקלי.מודלים פיזיים לוכדים היבטים לא פונקציונליים כגון תזמון, צריכת חשמל, שימוש בזיכרון, ממשקי חומרה, בעוד שניהם יקרים, מודלים פונקציונליים לענות על השאלה: "האם עיצוב המערכת שלנו עושה את הדבר הנכון?", תשובות מודלים פיזיים: "האם זה יכול לעשות זאת בתוך מגבלות עולם אמת?", תהליך פיתוח מוטבע היטב, אך הוא לעתים קרובות מודל פונקציונלי של שינוי קוד או שינוי מוקדם יותר מאשר שינוי קוד או שינוי של קוד ראשוני של קידוד C.
אסטרטגיות למודלים פונקציונליים יעילים
אימוץ אסטרטגיה שיטתית מונעת ממודלים להפוך לבולגן, לא עקביים, או מנותקים מדרישות.האסטרטגיות הבאות מוכחות בתעשיות החל מרכב ועד מכשירים רפואיים.
התחל עם דרישות
כל מודל פונקציונלי חייב להישען לאחור לדרישות מוגדרות היטב.לפני שצייר קופסה אחת או חץ, לאסוף ולהעריך דרישות פונקציונליות (מה שהמערכת חייבת לעשות) ודרישות לא תפקודיות (ביצועים, בטיחות, אבטחה) להשתמש בכלי ניהול דרישות (למשל, IBM DOORS, Jama, או אפילו גיליון מבוזר) כדי לשמור על עקבות.
שימוש ב- Hierarchical Decomposition
מערכות מורכבות קלות יותר להבין כאשר שבורים לחתיכות .תפקוד תפקודי כרוך חלוקת הפונקציה ברמה העליונה (למשל, "ניהול מנוע") לתפקוד תת-תפקודים ("נתוני חיישן קורא", "תזמון הזרקת דלק", "Send Actuation Commands") כל תת-תפקוד יכול להיות מרוסן עוד לרמה שבה התנהגות פשוטה מספיק למודל בפעילות סטנדרטית או סטנדרטית זו יכולה גם להשתלב בממשק פעולה שונה.
דוגמה קונקרטית: מודול בקרת גוף רכב (BCM) עשוי להיות מופרש לתוך בקרת תאורה, שליטה מגבונים, מנעול הדלת וניהול טמפרטורת הפנים. כל אחד מהם הוא בלוק פונקציונלי המכיל עצמי עם המכונה המדינה שלו.המודל ההיררכי מראה כיצד בלוקים אלה אינטראקציה - למשל, מכונת מנעול הדלת עשויה לעכב פעולת מנגיף כאשר הדלת פתוחה.
אימוץ שפות מודלים סטנדרטיים
התקנים מבטיחים כי מודלים הם ללאמביעים, חלקם, וניתן לדיווח כלי.שתי השפות הדומיננטיות למודלים פונקציונליים משובצים הם:
- (FLT:0) שפה מודלנית לא מזוהמת (UML)cioFLT:1) - שעוצבה במקור עבור מערכות תוכנה, המכונה של UML, פעילות, ולהשתמש בתרשיםים של התיק משמשים באופן נרחב בפיתוח מוטבע, במיוחד עבור מערכות מוכוונות ואירוע.
- (FLT:0 Systemss Modeling Language (SysML)BuildFLT) 1 - הרחבה של UML המותאם להנדסת מערכות.SsML מוסיפה דיאגרמות דרישות, דיאגרמות קצביות (עבור מגבלות פיזיות), וחסימת דיאגרמות הגדרות שהן טבעיות יותר עבור חומרה-תוכנה-מותקנת-קודמת-קודמת-קודמת-קודמת-קודמת-עיצוב.
כל שפה שתבחר, לאכוף מחיקה עקבית, שמות מוסכמות, והוראות הפריסה של דיאגרמה.מדריכי סגנון ספציפיים כלי יכול לעזור למנוע עמימות - לדוגמה, תמיד המציין את האירוע גורם עם אותו סטריאוטיפ או באמצעות חץ ספציפי לזרימת אותות מול זרימת נתונים.
פשטות ומקרר
מודלים פונקציונליים אינם פעילות אחת ו-done.מודלים מוקדמים הם תחזיות כי יהיה מעודן כמו הבנה מעמיקת. השתמש מחזורי ביקורת משקל - מודלים מודל הליכה עם צוות הפיתוח, מומחי דומיין ומהנדסי הבדיקה. במהלך ביקורות אלה, לחפש חוסר עקביות, מצבים חסרים, מעברים לא שלמים, ולוגיקה שלא מתאימה לדרישות.
נפילה נפוצה היא over- Modeling: מנסה ללכוד כל מקרה קצה אפשרי על המעבר הראשון. במקום זאת, להתחיל עם "דרך יפה" (מצב רגיל של פעולה) ולאחר מכן להוסיף באופן מצטבר טיפול שגיאה, תנאים אשמה וזרמים חלופיים. גישה זו היא שמירה על המודל מנוהלת ומבטיחה כי התנהגויות קריטיות מאומתות מוקדם.
לשמור על אחריות
מודל פונקציונלי הוא רק שימושי אם אתה יכול להוכיח כי הוא משביע כל דרישה. להקים שרשרת מעקב מכל דרישה לרכיבים מודל אחד או יותר (למשל, מדינה, מעבר, פעילות) כלים רבים מודלים (למשל, אדריכל, IBM Rational Rhapsody) תומכים בקישורים של מעקב אוטומטי.
כלים למודלים פונקציונליים
בחירת הכלי הנכון תלויה בגודל הצוות שלך, התחום, התקציב וצרכים האינטגרציה שלך. להלן הן סביבות מודלים פונקציונליים בשימוש נרחב ביותר בפיתוח מערכות משובצות.כל כלי מצטיין באזור מסוים, ורבים יכולים להיות משולבים בשרשרת הכלים.
Simulink (MathWorks)
Simulink הוא תקן דה Facto עבור עיצוב מבוסס מודל בתחום הרכב, חלל ואוטומציה תעשייתית.זה מספק סביבה חוסם גרפית בלוק-diagram שבו אתה מודל מערכות זמן רצוף ודיסקרטיות, כולל אלגוריתמים שליטה, עיבוד אותות ומכונות המדינה (באמצעות זרימת המדינה) מודלים סימנולינק הם executable: אתה יכול לדמות את ההתנהגות, ליצור קוד (קוד טבעי קוד), ולוודא דרישות חומרה עבור בקרת תוכנה מתאימה יותר.
אדריכלות ארגונית (Sparx Systems)
ארכיטקטורת Enterprise היא פלטפורמה רבת-תכליתית התומכת ב- UML, SysML, BPMN, והודעות רבות אחרות.Itהצטיין בניהול דרישות, מעקב מודל ושיתוף פעולה קבוצתי (שיכולות מבוקרות, אבטחה מבוססת תפקידים) עבור מערכות משובצות, ניתן גם מודלים פונקציונליים ומבניים, דרישות קישור למכונות מדינה, וליצור תיעוד זה מאפשר שילוב עם כלים אחרים (למשל, JS, במיוחד, כלומר, כלומר, כלומר, תכונות קריטיות עבור מערכות בקרה ו-S.
IBM Rational Rhapsody
Rhapsody הוא סביבת פיתוח מבוססת מודל המותאם עבור מערכות משובצות ומציאותיות.זה תומך ב-SSMSML ו- UML, ומספקת דור קוד אוטומטי (C, C++, Java ו-Ada) הכוח של רודוזי נמצא ביכולתו לאמת מודלים באמצעות סימולציה וביצוע, וכדי ליצור קוד מוכן ייצור התואם למגבלות בזמן אמת.26 עם דרישות ניהול של IBM) ו-ROC2C (OC) משמשות באופן כללי (RORC) של תקן אבטחה (RORC) ו-OL.
Modelica (OpenModelica, Dymola)
Modelica הוא קוד פתוח, שפה מבוססת משוואה עבור מודלים מורכבים של מערכות פיזיות - לדוגמה, דינמיקות תרמיות, מעגלים חשמליים, מערכות הידראוליות, ומכניקה רב-גוף.בניגוד לפרדיגמה של סימולינק, Modelica משתמשת מודל acausal Modeling: אתה מחבר רכיבים על ידי הנמלים הפיזיים שלהם פתוח, חום, מתח) ואת הכלים פותרים את המשוואות וכתוצאה מכך זה גורם סימולציה בשלב מתקדם של מודלים פונקציונליים של מערכת הבקרה של מודלים סטנדרטיים היא לעתים קרובות עם מודלים פונקציונליים.
MagicDraw (Dassault Systèmes)
MagicDraw (כיום חלק מ- Cameo Systems Modeler) היא פלטפורמה דוגמנות עם תמיכה עמוקה עבור SysML ו- UML. זה משמש לעתים קרובות עבור מערכות הנדסה בחלל, הגנה, ומכונית. כוחו של MagicDraw הוא היכולת שלה לנהל יחסים מורכבים בין רכיבי פונקציונליים, מבניים, ומודלים parametric בתוך יחידה Repository. זה משלב עם כלי סימולציה (למשל, סימולציות, באמצעות מודלים לממשקים), סימולציות, באמצעות מודלים פונקציונליים, לדוגמה, סימולציות, כדי ליצור מודלים פונקציונליים.
כלים נוספים
- (FLT:0)SCADE (Ansys)FLT:1) - כלי פיתוח מבוסס מודל מוסמך עבור תוכנה ביקורתית בטיחות, במיוחד avionics ומסילות רכבת. SCADE משתמשת בהבחנה גרפית דומה ל- Simulink / זרימת המדינה אבל מוסמך DO178C ו- IEC 61508.
- (FLT:0)Papyrus (Eclipse)cioFLT:1) - כלי קוד פתוח UML / SysML מודלים שניתן להרחיב באמצעות Plug-ins. Good עבור צוותים עם תקציבים מוגבלים שעדיין רוצים מודלים תואמים סטנדרטים.
- (FLT:0) וקטור PreEvisionFLT:1 - המתמחה באדריכלות חשמלית / אלקטרונית (E / E) כולל רשתות פונקציונליות, מיפוי אות-לא-תוכנות, ועיקור תכנון רתום.
היתרונות של מודלים פונקציונליים במערכות Embedded
אימוץ מודלים פונקציונליים מניב שיפורים משמעותיים באיכות, עלות, וזמן אל השוק. להלן הם היתרונות העיקריים, מאוירים עם תוצאות קונקרטיות.
גילוי מוקדם של עיצוב פלמות
על ידי מודל התנהגות מערכת לפני כל חומרה בנויה או קוד כתוב, מהנדסים יכולים לדמות ולנתח את ההיגיון.לדוגמה, מהנדס רכב יכול להפעיל מודל סימנולינק של מערכת ניהול סוללות כדי לראות איך זה מגיב לתנאים שוטפים יותר.אם המכונה המדינה נכנסת למנעול בלתי צפוי או לא לעבור למצב בטוח, הפגם נתפס ברמה המודל - תיקון דיאגרמה או פרמטר לוקח, בעוד שמכונת תיקון של 100 פעמים בדיקה פיזית יהיה צורך בניסוי מלא של כדור הארץ.
תקשורת משופרת בין קבוצות רב תחומיות
מערכות Embedded כרוכות במהנדסי חומרה, מהנדסי תוכנה, מהנדסי בקרה, ארכיטקטים במערכת ומומחים בתחום (למשל, מומחה לשחיקה) פונקציונליים משמשים כמקור יחיד של אמת שכל אחד יכול להבין - לא צריך לקרוא 200 עמודים של דרישות טקסט. A SysML לחסום הגדרת דיאגרמת בלוק המציגה פונקציות ברמה גבוהה של משאבת אינפוזיה רפואית הוא מיד הסתברות למומחה קליני ו-FPGA למנוע שגיאות משותפות.
עלויות וחיסכון בזמן
מודלים פונקציונליים מפחיתים את העבודה מחדש.כאשר הדרישות משתנות (והם תמיד עושים), עדכון מודל ועריכת קוד או מקרי מבחן הוא הרבה יותר מהר מאשר לערוך באופן ידני מספר רב של פריטים יישום.במקרה אחד מחקר מתעשיית הרכב, ספק tier-1 הפחית תיקוני באג תוכנה על ידי 60% לאחר אימוץ עיצוב מבוסס מודל עם Simulink ו-stateflow.
מסמך טוב יותר לתחזוקה ולהתאמה
מודלים פונקציונליים מייצרים מפרטים של ניהול עצמי.קישורים של אחריות מראים כי דרישות דרישות למדינה או מעבר. תיעוד זה יקר ערך עבור תחזוקה מאוחרת יותר - מהנדסים חדשים יכולים להבין את ההיגיון של המערכת על ידי קריאה של המכונה המדינה במקום לשלב קוד המקור. עבור תעשיות מוסדרות (רפואה ISO 13485, ISO 26262, avionics DO-17C), תיעוד מבוסס מודל נדרש לעתים קרובות עבור כלי קידוד SC.
מערכת יעילה
על ידי ניתוח יסודי של כל המדינות, מעברים וזרימת נתונים, מודלים פונקציונליים מסייע להבטיח כי המערכת מתנהגת כראוי תחת כל תנאי התפעול - כולל מקרים קצה ותרחישים תקלות. טכניקות אימות טפסים (למשל, בדיקת מודל) ניתן ליישם את המודל הפונקציונלי כדי להוכיח כי מצבים לא בטוחים מסוימים אינם ניתנים להשגה.
שיטות טובות ביותר עבור Integrating Functional Modeling into Development
כדי להפיק את המרב ממודל פונקציונלי, לטפל בו כחלק בלתי נפרד מתהליך הפיתוח שלך - לא תוספת אופציונלית על.כאן הם שיטות הטובות ביותר שנלקחו החלישומים מוצלחים על פני תעשיות.
מודל לפני שאתה קוד
עמיד בפני הפיתוי לקפוץ ליישום.מנדט כי כל תכונה חדשה או בקשה לשינוי יש לקחת תחילה כמודל פונקציונלי וסקר על ידי הצוות.זה יוצר תרבות "מודל-ראשון" שבה החלטות עיצוב מאומתות לפני שילוב יקר.
דור קוד אוטומטי שבו ניתן
ידני הקידוד של מודלים מציג שגיאות תרגום ומביס את מטרת הפשטות.אם הכלי שלך תומך בו, ליצור קוד ייצור (C, C++ וכו ') מהמודל המאומת.אבל להיות מודע: קוד שנוצר עדיין חייב להיות נבדק ואומת, ואתה חייב להבטיח כי גנרטור הקוד מוסמך לרמת הבטיחות שלך (למשל, TUV SUD הסמכה עבור Embedd Coder).
השתמש ב-Excel Control for Models
מודלים מתפתחים בדיוק כמו קוד.חנות אותם בגרסת אחסון מבוקרת (Git, SVN) ולהשתמש באסטרטגיות של ענף לניהול פיתוח מקבילה.רוב הכלים המדגמים בנו תמיכה בדוגמת מודל ומיזוג. לטפל בשינויים במודל זהה השקיה כמו שינויים קוד - בדיקת עמיתים עבור כל השינויים.
מודל Integrate עם בדיקות
צור מקרים מבוססי מודל כי לממש כל מעבר ומדינה במכונה המדינה. השתמש במבחנים אלה כדי לדמות את המודל (ב-ה-loop), ולאחר מכן להפעיל אותם נגד החומרה בפועל (מעבד או-ב-ב-the-loop או חומרה-in-the-the-loop) זה סוגר את הלולאה מדרישות עריכת מודל הטמעת אימות.
אתגרים וכיצד להתגבר עליהם
מודלים פונקציונליים אינם ללא היורדים.צוותים חדשים כדי מודלים לעתים קרובות בפני התנגדות: "תמיד כתבתי קוד ראשון, למה שינוי?", להתחיל עם פרויקט טייס - לקחת חלק קטן, חסר אונים היטב, להוכיח את החיסכון בזמן מגילוי פגם מוקדם, ולתת לתוצאות לדבר בעד עצמם, אתגר נוסף הוא מודל של התנהגות בזמן אמת (לטיפול, טיפול במודולים של סימולציה) עם מודלים פונקציונליים (למשל, טיפול בדוגמת שימוש בדוגמת סימולציה) או בדוגמת סימולציה פיזית).
מסקנה
מודלים פונקציונליים אינם עוד מותרות בפיתוח מערכות משובצות – זהו צורך לספק מוצרים בטוחים, אמינים וחסכוניים.על ידי החל בדרישות ברורות, באמצעות חקיקה היררכית, אימוץ שפות סטנדרטיות כמו SysML, ומינוף כלים חזקים כגון Simulink, ארכיטקטור פונקציונלי, או Rhapsody, צוותי הנדסה יכולים לתפוס פגמים מוקדמים, שיתוף פעולה, זמן להאיץ את היתרונות של פיתוח קוד פתוח, כמו גם פיתוח יעיל יותר, כמו גם מודלים מתקדמים, כמו גם את רמות עבודה, כמו גם שיפור, כמו סימולציה, כמו גם סימולציה, כמו חסכוניים, כמו סימולציה, כמו חסכוניים, כמו סימולציה, כמו סימולציה, כמו סימולציה, כמו סימולציה, כמו סימולציה, כמו סימולציה, כמו חסכונית, כמו סימולציה, סימולציה, או סימולציה, או חסכונית, כמו , כמו , סימולציה, כמו חסכונית, כדי לשפר את הפחתת יעילות, כמו , כמו חסכונית, כמו , כמו סימולציה, כמו סימולציה, כמו סימולציה, כמו סימולציה, כמו סימולציה, כמו סימולציה, כמו סימולציה, כמו סימולציה של מערכות עבודה סימולציה, כמו סימולציה, סימולציה, סימולציה, כמו סימולציה,
(ב) לעיין בפרשת ה-UMGFelo (בתרגום חופשי: ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇