סרגיי טוזיק
סרגיי טוזיק, אוניברסיטת תל-אביב, אוניברסיטת בן-גוריון בנגב
בשנת 2020 הוצע לי ללמד קורס אקדמי בנושא אינטגרציה, אימות, תיקוף ובדיקות (IVV&T) מערכות הנדסיות בתואר השני החדש להנדסת המערכות באוניברסיטת בן גוריון בנגב. התחלתי ללמד במרץ 2021 בזום בשל מגבלות הקורונה ובהמשך התחלתי לימדתי פיזית. פיתוח הקורס הווה עבורי אתגר לא מבוטל, על אף ניסיוני המעשי והניסיון בהוראה שצברתי דרך פיתוח והוראת קורס מהנדסי אינטגרציה בחיל האוויר. ההכנה והעברת קורס IVV&T הפך עבורי לצלע השלישית במשולש של עבודה מעשית, מחקר והוראה. משנת 2023 התחלתי ללמד קורס דומה גם בתוכנית להנדסת מערכות באוניברסיטת תל אביב.
מאמר זה מסכם את ההרצאה שהועברה ביום עיון הנדסת מערכות בספטמבר 2024 ומציג את האתגרים שליוו אותי בבניית הקורס, את הפתרונות שניתנו לאתגרים האלה ואת הפניית תשומת הלב מ"חוכמת הרחוב" של מקצוע הנדסת אינטגרציה לגזירת שיטות וטכניקת באופן מובנה מתוך עקרונות בסיסיים תיאורטיים.
מושגי יסודברוח בציטוט מן "הנסיכה הקסומה", אנחנו נוהגים להשתמש במילים ומושגים שמשמעותם שונה בעיניי האנשים השונים.
בראייתי, נדרש לבסס קורסים אקדמיים על קרקע מוצקה של הגדרות מדויקות של מושגי היסוד אך, ברוח הציטוט מן "הנסיכה הקסומה", אנחנו נוהגים להשתמש שוב ושוב במילים ומושגים שמשמעותם שונה בעיניי האנשים השונים. בעולם של הנדסת מערכות, משמעותם של המושגים כגון אינטגרציה, אימות ותיקוף שונה מאדם לאדם, יש חפיפה גדולה בין ההגדרות וגם לא מעט נגיעה של פוליטיקה והעדפות אישיות.
לצורך הקורס, אימצתי הגדרות תהליכיות (קלט-עיבוד-פלט) הכי פשוטות שיכולתי לנסח, שתמיד המיוחסות למערכת עניין (System of Systems) פיזיות שמצד אחד מורכבת מתת-מערכות (Subsystems) ומצד שני משמשת בעצמה כתת-מערכת במספר מערכות-על (Supersystems) או מערכים (Systems Arrays).
מושגי היסוד שבבסיס הקורס מגדירים ארבעה תהליכים הנדסיים בסיסיים:
1. מימוש (realization) – תהליך שלוקח את המידע של תכן ובונה על בסיסו את המוצרים הפיזיים. מבחינים בין שלושה הסוגים הבאים של מימוש:
- יישום (implementation) – מימוש ישיר של חלקי המערכות.
- שילובים (integration) – מימוש מערכת העניין ע"י חיבור תת-מערכות של מערכת העניין. תהליך השילובים מאפשר תנועה במעלה ההיררכיה המערכתית מתת-מערכות למערכת העניין.
- מבצוע, הטמעה (transition) – מימוש מערכים או מערכות-על ע"י חיבור מערכת העניין עם מערכות אחרות. תהליך השילובים מאפשר תנועה במעלה ההיררכיה המערכתית ממערכת עניין למערכים שמכילים אותה.
2. בדיקות (testing) – תהליך שלוקח מערכות, עורך עליהן ניסויים ומייצר מידע מהימן עליהן.
3. הערכה (evaluation) – תהליך שמעריך את מערכת (או תכן שלה) על בסיס המידע המתקבל מהבדיקות של מערכות ממומשות, סימולציות או סקירת המידע של התכן. מבחינים בין שני הסוגים הבאים של הערכה:
- אימות (verification) – תהליך הערכת מערכת המול הדרישות שלה.
- תיקוף (validation) – תהליך הערכת המערכת על בסיס תרומתה למערכות העל או מערכים.
4. תיקונים (debugging) – תהליך שמשתמש במידע על המערכות ומשנה את המערכות שנכשלו בהערכה כדי שיעברו את ההערכה אחרי מימוש חוזר.
תיאוריה או מעשה?מטבעם, קורסים אוניברסיטאיים נוטים להקניית הידע התאורטי שמקורו במחקר ופחות בידע מעשי שמקורו בתעשייה. בתוכניות להנדסת מערכות יש קורסים משני הסוגים, אך קורסי הליבה נוטים לצד הפרקטיקה והפן התיאורטי מפותח פחות. במילים של קונפוציוס, הידע ללא יישום מעשי חסר תועלת, אך הפרקטיקה שלא מבוססת על ידע מסוכנת. החלטתי לבנות קורס על בסיס מעשי עם פרויקט מלווה, אבל גם להוסיף נדבך משמעותי של תיאוריה.
תהליך סדור או אוסף טכניקות?קורסים רבים שמתמקדים בהקניית ידע מעשי עושים זאת כאוסף טכניקות מגוונות שניתן להשתמש בהם לפי הצורך. קורסים אחרים, לדוגמה קורסי תכן, מציגים תהליך סדור ומובנה שמובילה לתוצר סופי דרך תחנות ביניים מוגדרות. במסגרת הקורס שלי החלטתי להציג תהליך סדור ליצירת תכנית אסטרטגית לאינטגרציה, אימות ותיקוף עבור מערכת פשוטה יחסית, כפרויקט מתגלגל במהלך ההוראה.
שחזור התכן (Reverse System Design)הנדסת אינטגרציה בפרויקטים בונה על דרישות ותכן הנדסי יחסית בשלים, ברמה של תכן מערכתי (System Design) שכולל דרישות מתוקפות וארכיטקטורה של מערכת העניין ושל סביבתה או אף ברמת תכן ראשוני (Preliminary Design) שכולל גם את הדרישות מתת-מערכות המרכיבות את מערכת העניין.
מתוך הניסיון והמחקר שלי למדתי כי בפרויקטים מעשיים דרישות ותכן ברמה נדרשת לא תמיד זמינים למהנדסי אינטגרציה, והם נאלצים להקדיש זמן ומאמץ ניכרים לאיסוף וארגון המידע. מהנדסי אינטגרציה מלקטים מידע על מערכות רלוונטיות ממקורות שונים ומארגנים אותו במבנים שמאפשרים "לספר סיפור" של המערכת ודרך פעולתה. "החורים בעלילה" מצביעים על נקודות תורפה של התכן המערכתי שכדאי להתמקד בהם בתהליכי אינטגרציה והבדיקות.
קורסי התכן המערכתי בתוכניות להנדסת מערכות בוחרים לעסוק במערכות ברמת מורכבות גבוהה ולהביא את התכן לרמה של תכן קונספטואלי שאינה מספקת להנדסת אינטגרציה, ולכן לא יכולתי בקורס שלי להמשיך עם הדוגמאות מקורסי הקדם.
כהתמודדות עם האילוצים הנ"ל, שילבתי בקורס פרק של "שחזור" תכן ודרישות למערכת קיימת ופשוטה יחסית (מכונת כביסה, מקרן, מזגן וכו') תוך שימוש בטכניקות השחזור התכן (Reverse System Design) שפיתחתי לשימוש עצמי כמהנדס אינטגרציה.
מקורות הידעהפיתוח הקורסים, חיפשתי ידע בשלושה סוגים שונים של מקורות ידע –שיטות וטכניקות מועילות (Best Practices), ידע תיאורטי והידע האישי שלי שנוצר מתוך רפלקציה על הניסיון המעשי.

דוגמה טובה לאוצרות (curation) של שיטות וטכניקות מועילות היא מתודולוגיית ICDM שפותחה ע"י דר' עמי הרי ונלמדת בקורסי התכן בטכניון. בתחום הנדסת אינטגרציה ובדיקות, הספר של דר' אבנר אנגל "אימות ותיקוף ובדיקות מערכות הנדסיות" עושה עבודה טובה של איסוף וארגון של שיטות וטכניקות של בדיקות ומציג גם מתודולוגיה סדורה לתכנון אסטרטגיית בדיקות וניסויים.
כמו שציינתי לעיל, בבניית הקורס השתמשתי בתובנות וידע מתוך הניסיון המעשי הפרטי שלי. בהשכלתי המקורית אני פיסיקאי ואני מזדהה עם אלון מאסק שמעדיף "לגשת לדברים מנקודת מבט של פיזיקה שמלמדת לחשוב מעקרונות יסוד ולא באנלוגיות".
מפריע לי מאוד שהנדסת מערכות בכלל והנדסת אינטגרציה עדיין דלים מאוד בצד של תיאוריה, ולכן פיתחתי מספר עקרונות יסוד (Basic Principles) מהם אפשר לגזור באופן מובנה שיטות וטכניקות של הנדסת האינטגרציה.

לפי עקרונות היסוד שאימצתי, כל המערכות הן פיזיקליות ואת כל מערכת ניתן לתחום בתוך אזור תלת-ממדי סופי ובעל גבול פיזי מוגדר. המערכת מתקיימת בתוך האזור הנ"ל כאוסף של תהליכים שממירים זרימות חומר ואנרגיה שנכנסות לתוך המערכת מסביבתה המערכת לזרימות שיוצאות החוצה מהמערכת אל סביבתה.
עיקרון שילוב המערכות (System Integration Principle) קובע שמערכות נוצרות מתת-מערכות כשתת-המערכות נוגעות פיזית אחת בשנייה, יוצרות אזורי המגע (ממשקי מבנה), מעבירות דרכם זרימות חומר ואנרגיה (ממשקים תהליכיים). התהליכים של תת-המערכות מתמזגים לתהליכים של המערכת, הנפחים התלת-ממדיים של תת-מערכות מתאחדים לנפח אחד גדול בעל גבול החדש, והגבול החדש תוחם את המערכת החדשה שנוצרה.
פורמליות כטכניקת אימות ותיקוףהנדסת מערכות מבוססת מודלים (MBSE) בפרט והנדסה דיגיטלית בכלל מגבירים שימוש במאגרי מידע מובנים כגון מודלים גרפיים עם סמנטיקה מוגדרת, מסדי נתונים ומבני מידע אחרים, גם במקצוע של הנדסת המערכות שהיסטורית התבסס על ארגון מידע טקסטואלי (narrative) מלווה בתרשימים ואיורים גרפיים לא פורמליים. אחרי כמה מחזורים של הקורס, גיליתי שניתן להשתמש במודלים פורמליים מסוג זה כטכניקת אימות ותיקוף בזכות עצמה.
במסגרת הקורס, בחרתי לבסס את שחזור התכן על מודלים פורמליים מבוססים על הפרדיגמה הפיזיקלית המתוארת לעיל שמתוכה נוצרים עקרונות פורמליים של שחזור, אימות ותיקוף התכן:
· כל מערכת עניין מורכבת מתת-מערכות וחלק ממספר מערכו-על (מערכים).
· מבנה המערכות:
- תת-מערכות מוגדרות על ידי חלוקה פיזית של מערכת העניין.
- כל הממשקים בין המערכות מתבססים על אזורי מגע פיזי ישיר – ממשק שלא כולל מגע פיזי ישיר מצביע על ליקוי התכן שמפספס תת-מערכת חיונית.
· התנהגות המערכות:
- כל התהליכים חייבים להיות מוקצים למערכות פיזיות – תהליכים ללא מערכות או מערכות ללא תהליכים מצביעים על ליקויי התכן.
- כל הזרימות של חומר ואנרגיה מחברות בין התהליכים – זרימות ללא מקור או יעד או תהליכים ללא זרימות נכנסות ויוצאות מצביעים על ליקויי התכן.
- כל הזרימות חייבות לעבור דרך אזורי מגע ישיר – זרימה שלא מוקצה לממשק המגע או ממשק המגע ללא זרימות מצביעים על ליקויי התכן.
- זרימות המידע חייבות "לרכוב" על זרימות חומר או אנרגיה – זרימות מידע ללא נושא פיזיקלי מצביעות על ליקויים תכן.
- כל תהליך של תת-מערכת חייב להיות חלק מתהליך של מערכת העניין וכל תהליך של מערכת העניין חייב להיות חלק מתהליך של מערכת העל. תהליכים שלא תורמים לתהליכים ברמה גבוהה יותר מצביעים על ליקויי התכן.
- חוסר תיאום בין הזרימות הנכנסות והיוצאות של תהליכי מערכות-העל, מערכת העניין ותת-מערכות מצביעים על ליקוי התכן.
· דרישות:
- כל הדרישות צריכים להיות מנוסחות כקריטריונים לקבלה (acceptance criteria) – דרישה לא בדיקתי מצביע על ליקוי התכן.
- כל דרישה חייבת להיות מוקצה לתהליך של תת-מערכת, מערכת העניין או מערכות העל. דרישות שלא מוקצות לתהליכים או תהליכים ללא דרישות מצביעות על ליקויי התכן.
תהליך תכנון אינטגרציה, אימות ותיקוף
עקרונות היסוד המפורטים לעיל מאפשר לבנות תהליך מובנה ומסודר של תכנון אינטגרציה, אימות ותיקוף כמתואר באיור.
· שחזור תכן מערכתי, אימות ותיקוף התכן:
- מתחילים עם הגדרת מערכת העניין, מחלקים אותה פיזית לתת-מערכות ומזהים את מערכות-העל השונות שמערכת העניין משתתפת בהם. נוצר "עץ מערכות" שנפרס לפחות בשלוש רמות היררכיה.
- בונים את ארכיטקטורה מבנית של מערכת העניין על ידי זיהוי ממשקים של מגע ישיר בין תת-המערכות וארכיטקטורות של מערכות-העל ע"י זיהוי ממשקי מגע פיזי ישיר בין כלל תת-מערכות של מערכת-העל, כולל מערכת העניין.
- מזהים את התהליכים של מערכת העניין, תת-מערכות ומערכות העל ובונים ארכיטקטורות תהליכיות של מערכת העניין ומערכות-העל השונות שבהן כל תהליך ברמה מסוימת מורכב משרשרת תהליכים ברמה נמוכה יותר. נוצר "עץ התהליכים" לפחות בשלוש רמות היררכיה.
- בוחנים את הארכיטקטורות לזיהוי פערים שמצביעים על ליקויי התכן שניתן לחקור ולתקן.
· תכנון שילובים ומבצוע:
- מתכננים תכנית שילובים (Integration Plan) של מערכת העניין מתוך עץ התהליכים שלה.
- בונים תכנית שילובי שדה ומבצוע (Transition Plan) של מערכות-העל מתוך עצי התהליכי שלהן.
· שחזור דרישות, אימות ותיקוף דרישות:
- משייכים לכל תהליך ברמת מערכת-על דרישות פונקציונליות ודרישות ביצועים ("דרישות הלקוח")
- משייכים לכל תהליך ברמת מערכת העניין דרישות פונקציונליות ודרישות ביצועים ("דרישות מערכתיות").
- משייכים לכל תהליך ברמת תת-מערכת דרישות פונקציונליות ודרישות ביצועים ("דרישות מהספקים").
- מזהים תהליכים ללא דרישות ודרישות ללא תהליכים כליקויי התכן. חוקרים ומתקנים את התהליכים.
· תכנון אימות ותיקוף:
- מקצים לכל דרישת תת-מערכת (שמשויכת לתהליך) שיטת אימות תת-מערכת ע"י בדיקת התהליך הרלוונטי.
- מקצים לכל דרישת מערכת (שמשויכת לתהליך) שיטת אימות מערכת ע"י בדיקת התהליך הרלוונטי.
- מקצים לכל דרישת מערכת העל (שמשויכת לתהליך) שיטת תיקוף מערכת ע"י בדיקת התהליך הרלוונטי.
· סיכום אסטרטגיית IVV&T
- בוחנים תאימות של כל פריטי המידע הנ"ל, מזהים ומתקנים ליקויים התכן
- מרכזים את כל המידע במפרט אסטרטגיית IVV&T
לקחים מהוראת הקורסבסיום מחזורי הקורס, אספתי משובים מהסטודנטים וגם ערכתי הפקת לקלחים עצמית. להלן הלקחים שהופקו ושולבו בקורס:
- הדגמת זמן אמת בכיתה של תהליכי שחזור התכן עוזרת מאוד להבנת הטכניקות שהיה קשה להעביר אותם על ידי הצגת התוצר המוגמר.
- לשלב שחזור התכן עם אימות ותיקוף התכן ושחזור הדרישות עם אימות ותיקוף הדרישות.
- להתבסס על מערכות פשוטות כדי לצמצם עבודה חוזרת שלא תורמת להקניית הידע.
- לצמצם את החומר שמתמקד ב"חוכמת הרחוב" של הנדסת אינטגרציה ולהתמקד יותר בהבנת התהליך המובנה.
הלקחים שהופקו אך טרם יושמו בקורס.
- לשלב תרגול קבוצתי בכיתה גם על חשבון הרצאות פרונטליות על התיאוריה (שאפשר להשלים בבית).
- להרחיב על שיטות שחזור התכן של מערכות-העל, לדוגמה, על ידי בחינת תרחישים מבצעיים.
- לעזור לסטודנטים לעבוד יותר עם המודלים ופחות "לספר סיפורים".
- לעזור לסטודנטים לשמור על כל המודלים מקושרים ומתואמים, גם ללא שימוש בתוכנות ייעודיות.
- להשלים כל שיעור עם בוחן ידע עיוני.