מתודולוגיות פיתוח – הדור הבא

פיתוח לפי שלבים, פיתוח TOP DOWN ובדיקות “BOTTOM UP, “V מודל, אינטגרציה בין תוכנה לחומרה, גרסאות חומרה, תשכחו מכל מה שהכרתם… הכל נחלת העבר. כולנו מכירים את שלבי הפרויקט הטיפוסיים: האופוריה, האשליה, ההתפכחות, המשבר וחיפוש האשמים.

מתודולוגיות הפיתוח הישנות מנציחות את שלבי הפיתוח הטיפוסיים
“האופוריה” – השלב שבו החברה/מחלקת פיתוח מקבלת פרויקט חדש ונוצץ, המבשר על סגירת חוזה עם לקוח משמעותי. זהו השלב שבו כל החברה אחוזת צמרמורת, זהו שלב הרמות הכוסית, הקוקטיילים החגיגיים וכדומה. מחלקת הפיתוח מתכנסת ומחלקת את השלל, מבצעת פירוק לגורמים של הפרויקט: פיתוח כרטיס לצוות חומרה, אלגוריתמיקה, FPGA, EMBEDDED וכדומה.
“האשליה” או “השקט לפני הסערה” – נקרא השלב שבו המפתחים בונים יחידות פיתוח קטנות, פיסות מהמוצר. מתחילים מהיחידות האטומיות של הפרויקט, אשר בכתבה זו ייקראו מודולים. כל מפתח עובד לעצמו, בשלב זה באין מפריע. אין מי שיתקן אותו או יצביע אל חוסר הבנה בהגדרת המוצר. שלב זה דומה לצפרדע שמתבשלת במים חמים. ככל שהזמן עובר, המים מתחממים יותר ויותר. ככל שהזמן עובר, כך המוצר מתגבש ונעשה קשיח יותר וקשה יותר לשינויים. ככל שההשקעה גדולה יותר, כך כל שינוי יהיה יותר ויותר יקר. בפרויקטים שבהם מעורב פיתוח חומרה – מעבר לאיבוד כסף ישנו איבוד של זמן, מוניטין ולעתים מאבדים את השוק כולו.
“ההתפכחות” או שלב האינטגרציה – עד שלב זה, כולם חכמים, כולם נבונים, כולם יודעים את התורה. כולם הבינו את הגדרות המוצר, את המפרטים הטכניים, כולם מהנדסים בעלי ניסיון ואין סיבה שאינטגרציה של היחידות לא תעבוד. שהיחידות השונות יעבדו ביחד, ינגנו וישרקו ברגע הראשון של האינטגרציה. אז זהו.. שלא! כמו שאמרנו, זהו שלב ההתפכחות. תחילתו בקושי לא פשוט לייצר סביבה עובדת למספר יחידות פיתוח. בהמשך, הקושי המשמעותי הוא להבין את שורש התקלה. אם בבניית מודול מעורבים מהנדסים בודדים, הרי שבשלב האינטגרציה מעורבים עשרות מהנדסים ולעתים אף מאות ובפיתוח מערך של מערכות (System of Systems), כבפרויקטים כגון “כיפת ברזל” ברפאל או NETWORK PROCESSORS EZCHIP ועוד פרויקטים גדולים ויפים אחרים, שבהם מעורבים מאות רבות ואפילו אלפי מפתחים. חיפוש שורש התקלה נעשה “משימה בלתי אפשרית”. לא בכדי, שלב האינטגרציה בפרויקטים הנעזרים במתודולוגיות פיתוח טיפוסיות, לוקח 70% מסך כל זמן הפרויקט.
“המשבר וחיפוש האשמים” – בשלב זה מגיעים לכדי אחד מגבולות הפיסיקה שיהפוך את הפרויקט ללא רלוונטי אם
לא יגמר. אם זה עקב זמן יציאה לשוק שנהיה קריטי, התחייבות מול לקוח, תקציב פרויקט שנגמר וכדומה. בשלב זה מבינה החברה שחלק מהגדרות
המערכת לא ימומשו.

איך אפשר לעשות את זה אחרת?
לפני שניגע בשיטות הפיתוח המוצעות נדבר על המגמות הקיימות בשוק בתחום כלי הפתוח. מתוכם ננסה להרכיב מתודולוגיות פיתוח חדשניות יותר. עיקר המוצרים והמערכות שמפותחות היום הינם מערכות משולבות חומרה תוכנה ובהם אתרכז.
בתחום פיתוח הכרטיסים בשנים האחרונות לא היו “קפיצות מדרגה משמעותיות”. מאז שהשרטוט עבר משרטוט ידני על לוחות שרטוט לשרטוט אוטומטי במחשב, הרבה לא השתנה. השקעה בכלי פיתוח חדשים בתחום זה לא ייתן יותר מכמה אחוזים של שיפור בזמני ואיכות הפיתוח. אולם השיפור המשמעותי חבוי במיכון ושימוש בכלי פיתוח של מערכות. בניגוד לפיתוח כרטיסים, בו מעורבים מספר מפתחים מועט, בפיתוח מערכתי (מספר כרטיסים או מערכת שלמה), מעורבים מספר רב של מפתחים. בתחום ה-VLSI קפיצות מדרגה בשיפור ה-TTM מבצעות במעבר רמות “ההפשטה” Layers Abstraction. מ-GATE LEVEL ל-RTL וכיום מ-RTL ל-TLM. בתחום הנדסת התוכנה קפיצת מדרגה נעשתה לאחרונה בצורה של
Implementation & Continuous Integration, ראשי תיבות: CI. בעברית: שילוב/מיזוג רציף או שילוב/מיזוג מתמשך. במתודולוגיית עבודה זו, סביבות הפיתוח עובדות מהשלב הראשוני, מכתיבת הקוד הראשון על היעד הסופי. בכך, המתודולוגיה מוודאת שהתוכנה, כפי שהיא נמצאת ב-Repository , תמיד נמצאת במצב שניתן לפרוס אותה אצל המשתמשים ובכך הופכת את תהליך פריסת התוכנה למהיר ביותר.

מסקנות
אם ננצל את כל קפיצות המדרגה שנעשו בתחומים השונים, נוכל לראות מגמה שתצביע על מתודולוגיית פיתוח רצויה. מתודולוגיית פיתוח שתיתן את ה-TTM המהיר ביותר, עם יכולת אינטגרציה רציפה ובמינימום תקלות. המתודולוגיה נקראת: VIRTUAL PLATFORM או DESIGN BASE MODEL. זהו פיתוח המבוסס על סימולציה של מערכת היעד. בשלב הראשון בפיתוח נבנית סימולציה, אחד לאחד, של מערכת היעד בעזרת כלי הפיתוח לוירטואליזציה מהירה של מערכות. בעזרת כלים כגון: VISTA של מנטור גרפיקס, ניתן לקבל במהירות רבה (עניין של ימים) פיתוח סימולציה של מערכת יעד, עד לדיוק של יחידות שעון (Clock Accuracy). הכיצד? חברות אלו מציעות ספריות של מרב המעבדים, המיקרו קונטרולרים, ה-DSP, הרכיבים ההיקפיים, FPGA ואפילו מערכות שלמות מוכנות כרכיבי ספריה. יתירה מכך, לחברות אלו יש שיתופי פעולה עם יצרני הרכיבים הגדולים כגון: FREESCALE, RENESAS, INTEL, ARM,POWERPC,TI ובכך לשלב את הרכיבים העתידיים שעדיין לא מוצעים ללקוחות, בצורה של רכיבי ספריה. באופן זה, יכול מפתח החומרה להיחשף לביצועים של הטכנולוגיות העתידיות. על ידי שימוש ב-VIRTUAL PLATFORM פיתוח החומרה יוצא מהמסלול הקריטי של הפרויקט. שידרוג של גרסת החומרה יכולה להיעשות בלחיצת כפתור, ללא המתנה ארוכה לייצור.
כתיבת קוד ל-VIRTUAL PLATFORM הינה זהה לכתיבת קוד לכרטיס הסופי, כך שבתהליך הפיתוח ניתן לבצע אינטגרציה רציפה ולהחליף מודלים וירטואליים בקוד אמיתי. האינטגרציה רציפה ובניגוד לפיתוח בשיטה הקלאסית, שאינה מתקנת את המפתח על טעויות – באינטגרציה רציפה המפתח מודע לבעיות אינטגרציה ברגע שהן נוצרות. אין צורך לחכות למערכת החומרה, ניתן לכתוב קוד ישירות על מערכת ה-Virtual Platform אותו IMAGE ירוץ על המערכת הסופית. VIRTUAL PLATFORM מציעה עוד יתרונות רבים, כגון: מערכת דיבוג משוכללת, המאפשרת בחינה של כל צומת, רגיסטר, פונקציה, תעבורת תקשורת, בחינת פרוטוקולים ועוד ללא צורך בשינוי קוד מקור (Non-Intrusive Debugging). הצגת פירוט שאינו אפשרי באינטגרציה עם חומרה אמיתית. VIRTUAL PLATFORM משנה את כללי המשחק בכל מה שנוגע לפיתוח מערכות מורכבות. מאפשרת יציאה מהירה לשוק, חשיפה לטכנולוגיות מתקדמות, כיסוי מושלם לבדיקות ומענה לתקני האיכות המחמירים הדורשים בחינה על מערכות מקבילות כגון 254/178 DO לתעופה ו-AUTOSAR לתחום הרכב.

הכותב הוא מנכ”ל חברת NETIC מקבוצת נטסורס.

m

משה גפן מנכ”ל NETIC

משה גפן, NETIC

תגובות סגורות