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

הבנת תבנית המפעל הפשטנית ב- Depth

תבנית המפעל הפשטנית מגדירה ממשק מופשט (או מחלקה מופשטת) המכריז על מערכת שיטות יצירה, כל אחד האחראי על ייצור אובייקט מוצר אחד.התוספי מפעל של Concrete מספקים משפחות מוצר ספציפיות.לדוגמה, ממשק של FLT:0 עשוי לכלול סוג אחד של אובייקט מוצר אחד.FLT:2, ו-FLT:3 מפעל קונקרטי למכשיר A ישוב אובייקטים שמתקשרים מעל I2C, בעוד ש-ACT מאפשר ל-ACT כזה לא יוכל להפעיל את אותו חיישנים שונים.

בפלטפורמת בדיקות מרובות-device, התבנית היא בעלת ערך מיוחד משום שלמכשירים לעתים קרובות אין רק חומרה שונה אלא גם פורמטים שונים של נתונים, שגרות קליברציה ורצף ההתחלתיזציה.תבנית המפעל הפשטנית מטביעה את הריאציות הללו, מונעת מהם להדליף לתוך זרימות בדיקות הליבה.זה תואם את Open/Closed Prinple: הפלטפורמה יכולה להיות מורחבת לתמיכה חדשה ללא סוגים חדשים של בדיקות קונקרטיות ויישומים.

המונחים: the Pattern

  • (ב) ,(ב) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) ,0) ,ConcreteFactory: FLT:1 יישם את שיטות הבריאה כדי לייצר משפחה של מוצרים קונקרטיים למכשיר או פלטפורמה מסוימת.
  • (ב) ויקרא (ב) כ"ד): "ה'" (ב') ויקרא כ"ד)
  • (ב) ,0) ייצור מוצרים: FLT:1 Defines אובייקט מוצר להיווצר על ידי המפעל הבטון המתאים; ליישם את ממשק המוצר הפשט.
  • (ב) ,0) קליר: ⁇ 1 (FLT:1) משתמש רק ממשקי המוצר המפוסטריים והפטרוסטוריים.

יתרונות מרכזיים עבור Multi-Device Engineering Testing Platforms

התבנית מספקת חמישה יתרונות עיקריים בתחום זה.כל תועלת תורמת לתשתיות בדיקה שקל יותר לבנות, לשמר ולפיתוח.

1. גמישות והצלחה

(FLT:0) lexibilityFLT:1 הוא הרווח המיידי ביותר.כאשר דור מכשיר חדש נכנס לסביבה הניסוי - אומר לוח חיישן חדש עם פרוטוקול תקשורת שונה - משפרים יוצרים מפעל קונקרטי חדש ומוצרים הקשורים אליו. סוויטות הבדיקה הקיימות ממשיכות לעבוד ללא שינוי כי הם תלויים רק בממשקים מופשטים.זה מקטין את הסיכון של תוקפנות ומהירויות על גבי לוח חומרה חדש של חומרה חדשה, גם כן, הופך את אותה תבנית הפעלה פשוטה, באופן בו זמנית, לרתום, כך שהוא מצמצם את אותה מכשיר משותף.

2.הדבקות במשפחות ההתקנים

(FLT:0)ConsistencyFLT:1 עולה מהעובדה כי מוצרים בתוך מפעל נועדו להיות תואם אחד את השני.לדוגמה, תרחיש מבחן הדורש חיישן טמפרטורה, קידוד נתונים המצפה פורמט בינארי מסוים, ומודול קליברציה החל נוסחה מסוימת - כל הרכיבים האלה יכולים לספק על ידי מפעל קונקרטי אחד המבטיח עבודה משותפת כראוי ללא תרכובת עיצוב, הוא מורכב מתכונות פשוטות של עיצוב, באופן מקרי, על ידי עיצוב, על ידי תאים פשוטים.

סקאלה של סביבת הבדיקה

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

4.תחזוקה באמצעות צמצום דוה

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

שיפור ה-Isolation וההתמדה

יתרון פחות ברור אך חשוב באותה מידה הוא FLT:0 [המוכחת] בידוד מבחן רכזות 1 (המפעל יכול להחליף, מפתחים יכולים בקלות להחליף מפעל חומרה אמיתי עבור מפעל לעג או סימולציה בבדיקות יחידות.זה מאפשר בדיקות של לוגיקה פלטפורמה ללא מכשירים פיזיים יקרים או לא זמינים.לדוגמה, מפעל סימולציה עשוי להחזיר נתונים חיישן מזויף, המאפשר בדיקה מהירה של צינורות לעיבוד נתונים.

אסטרטגיות יעילות

יישום תבנית המפעל הפשטנית בפלטפורמת בדיקות הנדסיות כוללת מספר שלבים קונקרטיים.ההנחיות הבאות מניחות שפה מוכוונת אובייקט טיפוסית כגון C++, Java, או C#.

Defining the summary

החל על ידי זיהוי משפחות של אובייקטים הקשורים אשר משתנים על פני מכשירים.תפקידי מוצר נפוצים בפלטפורמת בדיקה כוללים נהגי חומרה, ⁇ נתונים, מודולי קילב וערוצי תקשורת. Define ממשק מופשט לכל תפקיד.לדוגמה, ממשק FLT:9 עשוי לחשוף שיטה (FLT:10) להבטיח ממשקים אלה הם מינימליים ויציבים - הם לא צריכים להשתנות לעתים קרובות.

עיצוב מפעל הממשק הפשט

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

  • [01: 51]
  • [61]
  • (ב) .
  • (ב) .

שיטות צריכות להחזיר סוגים מופשטים של מוצרים, לעולם לא כיתות קונקרטיות.

המונחים: Concrete Factories

עבור כל מכשיר או פלטפורמה (למשל, התקןA, DeviceB, סימולטור), ליצור שיעור במפעל קונקרטי המיישם את הממשק המופשט.כל שיטה מיידית את המוצר הבטון המתאים.לדוגמה, FLT:15:15 מחזירה מקרה של FLT:16 אשר מבין פרוטוקול בינארי של מכשיר A.המפעל קונקרטי יכול גם לטפל בלוגיקה ספציפית של ההתקנה של המכשיר, כגון פתיחת נמל או טעינה סדרתית קובץ coefficients coefficients coefficients.

הובלת המפעל ב- Runtime

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

דוגמה: Pseudocode עבור מבחן טמפרטורה

שקול מבחן המאמת את דיוק מדידה הטמפרטורה על פני משפחות מכשירים שונות.ללא דפוס, הבדיקה תהיה מלוטשת עם בלוקים אם-else לבדוק את סוג המכשיר.

// Client code (test)
void RunTemperatureTest(AbstractFactory factory) {
 var driver = factory.CreateDriver();
 var parser = factory.CreateDataParser();
 var calibrator = factory.CreateCalibrationModule();

 driver.Initialize();
 byte[] rawData = driver.Read();
 var reading = parser.Parse(rawData);
 reading = calibrator.Apply(reading);
 Assert.IsInRange(reading.Temperature, -10.0, 50.0);
}

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

מקרים של שימוש אמיתי בעולם בהנדסה

Internet of Things (IoT) התקן אימות

מעבדות בדיקות IoT לעתים קרובות צריך לאמת גרסאות מרובות חיישן node מיצרנים שונים.תבנית המפעל הפשטנית מאפשרת את אותה חבילת מבחן לעבוד עם נקודות מבוססות MQTT, LoRaWAN nodes, ו בלוטות חיבור Bluetooth, כל אחד עם דרישות שונות של נתונים אופטימיזציה ו parsing. Factories מופשטת את ההבדלים האלה, המאפשרת למהנדסים לכתוב בדיקות המתמקדות בהתנהגות פונקציונלית ולא בפרטים.

יחידת בקרת חשמל אלקטרונית (ECU) בדיקות

חברת רכבות ECUs לתקשר על אוטובוס CAN, LIN אוטובוס, או FlexRay. Testing רתמות חייב ליצור הודעות ספציפיות אוטובוס, מנהלי ישיבות אבחון, ו אדפטפטטורים. על ידי הגדרת מפעל מופשט עבור מערכות אוטובוס רכב, פלטפורמת הבדיקה יכולה לתמוך ב- ECUs שונים ללא שינוי - רק תקע במפעל הנכון עבור האוטובוס תחת בדיקה.

בדיקות אינטגרציה

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

השוואה עם גישות חלופיות

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

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

הפרקטיקה הטובה ביותר ליישום

  • (FLT:0) לשמור על ממשקי מוצר מופשטים יציבים:FLT:1 שינוי כוחות ממשק משתנה בכל המוצרים והמפעלים קונקרטיים. להשקיע זמן בתכנון ממשקים נקיים ומאובטחים עתידיים.
  • (FLT:0) חזיתות למפעלים מורכבים:FreaLT:1; אם מפעל בטון צריך לעשות כפלה משמעותית (למשל, קושחה טעינה, הקמת תקשורת), לשקול פיצול ההיגיון הזה לתוך בונה נפרד או מחלקה ראשונית.
  • (FLT:0) הפעלת רישום במפעל:FLT:1 עבור פלטפורמות שחייבות לתמוך בעשרות מכשירים, רישום כי מכשיר מפות מזהה שיעורי המפעל מפשט את תצורה של זמן ריצה ומונע שרשראות ארוכות אם-else.
  • (FLT:0)Combine עם תבנית האסטרטגיה: FIRLT:1 כמה התנהגויות ספציפיות למכשיר, כגון טיפול שגיאות או כניסה, אינם שייכים במפעל.
  • (FLT:0Write Units Testing for Each Factory:FreaLT:1) ודא שכל מפעל בטון יוצר אובייקטים הפועלים בצורה נכונה הן באופן אישי והן יחד.מנוק את התלויות החיצוניות (המחשבה) כדי לבחון את המפעל בבידוד.

מלכודות נפוצות להימנע

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

עוד נפילה היא over-engineering: לא כל פלטפורמה בדיקה צריך את תבנית המפעלים הפשטנית.אם הפלטפורמה תתמוך רק אחד או שניים מכשירים דומים מאוד, ראש של כיתות מפעל מרובות עשוי לעלות על היתרונות.עם זאת, עבור פלטפורמות שמטרתן במפורש להיות רב-דרון ו extensible, התבנית היא השקעה מצוינת.

מסקנה

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

לקריאה נוספת, מתייחס לטיפול המקורי ב-FLT:0Design Patterns: Elements of Reusable Object-Oriented SoftwareevoFLT:1 על ידי Gamma, Helm, Johnson, ו-Vlissides, או לחקור יישומים מודרניים ב-FLT:2patterns of Enterprise Application ArchitectureFLT 3: by Martin Fowler.