איוואר יעקובסון: המהנדס שצייר את התוכנה
בשנת 1967, בזמן שעבד על מרכזיות טלפון בחברת אריקסון (Ericsson), היה מהנדס שוודי צעיר זקוק לדרך להראות כיצד הודעות עוברות בין חלקי המרכזייה. הוא צייר את המשתתפים לאורך ראש הדף והניח לזמן לזרום כלפי מטה, כאשר כל הודעה הייתה חץ החוצה קו אנכי אחד לאחר. השרטוט ההוא נקרא כיום תרשים רצף (sequence diagram), וגרסה כלשהי שלו תלויה על לוח מחיק כמעט בכל חברת תוכנה עלי אדמות. איוואר יעקובסון בילה את ששת העשורים הבאים בהמצאת דרכים להפוך את המבנה הבלתי נראה של התוכנה לנראה לעין.
איסטד, צ'אלמרס, אריקסון
איוואר יאלמאר יעקובסון (Ivar Hjalmar Jacobson) נולד ב-2 בספטמבר 1939 באיסטד (Ystad), בקצה הדרומי של שוודיה. הוא השלים תואר שני בהנדסת חשמל ממכון צ'אלמרס לטכנולוגיה (Chalmers Institute of Technology) בגטבורג ב-1962 והצטרף למחלקת המחקר והפיתוח של אריקסון, שם נשאר במשך עשרים וחמש השנים המעצבות של הקריירה שלו. זמן רב לאחר מכן, ב-1985, הוא השלים דוקטורט במכון המלכותי לטכנולוגיה (Royal Institute of Technology) בסטוקהולם עם תזה שכותרתה מבני שפה למערכות זמן אמת גדולות – כותרת המתארת במדויק את הבעיה שליוותה את חייו.
אריקסון באותה תקופה בנתה את AKE ולאחר מכן את AXE, מרכזיית הטלפון הממוחשבת שהפכה למוצר המגדיר של החברה, אשר תוכנתה בשפה פנימית בשם PLEX. מרכזיית טלפון היא סביבה הנדסית אכזרית: עליה לפעול ברציפות במשך שנים, לטפל באלפי שיחות בו-זמנית, ולהיות משונה מבלי שתכובה. בעיות התוכנה שיעקובסון פגש שם לא היו תרגילים אקדמיים.
רכיבים, לפני שהמילה הייתה קיימת
הרעיון המבני הראשון שלו, ב-1967, היה לבנות את המרכזייה מרכיבים – בלוקים של תוכנה המוגדרים בנפרד עם ממשקים מוגדרים, שניתן לפתח, לבדוק ולהחליף באופן עצמאי במקום לארוג אותם לתוך תוכנית מונוליטית אחת. זוהי כיום פרקטיקה מקובלת. באותה עת, זה היה יוצא דופן מספיק כדי לדרוש ויכוחים. החברה שלו מתארת את הארכיטקטורה שהתקבלה באריקסון כסיפור ההצלחה המסחרי הגדול ביותר בתולדות שוודיה; זוהי טענה מוטה ממקור בעל עניין, אך הטווח הגלובלי של מערכת AXE הופך את הנקודה הבסיסית לקשה להפרכה.
לצד רכיבים הגיעה הנוטציה: תרשימי רצף, תרשימי שיתוף פעולה ותרשימי מעבר מצבים כדי לתאר כיצד הודעות זורמות בפועל. יעקובסון גם סייע בפיתוח SDL, שפת המפרט והעיצוב (Specification and Design Language), שהפכה לתקן בתעשיית התקשורת ב-1976.
Twenty questions, eight minutes on the clock, and a percentile measured against everyone who has taken it. No sign-up.
Take the IQ test →המקרה לדוגמה
בשנת 1986 המציא יעקובסון את הרעיון המפורסם ביותר שלו. לפני שימוש במקרים לדוגמה (use cases), דרישות תוכנה נכתבו בדרך כלל כרשימות – המערכת תעשה כך, המערכת תעשה גם כך – ללא קשר ברור בין הפריטים וללא דרך לבדוק שהרשימה הושלמה או שמישהו בנה משהו כדי לספק אותה.
מקרה לדוגמה הופך את נקודת המבט. הוא מתאר את המערכת מבחוץ, כאינטראקציה מלאה בין גורם (actor) – אדם, או מערכת אחרת – לבין התוכנה, החל מטריגר ועד לתוצאה בעלת ערך לאותו גורם. משיכת מזומן. הזמנת מושב. חיבור מחדש של שיחה שנותקה. כל אחד מהם הוא סיפור עם התחלה, אמצע, מסלולים חלופיים כאשר דברים משתבשים, וסוף מוגדר. התוצאה היא פרקטית ולא פילוסופית: מכיוון שמקרה לדוגמה הוא רצף של התנהגות, ניתן לעקוב אחריו. אותו רצף עובר דרך ניתוח, עיצוב, קוד ובדיקות, כך שצוות יכול לומר למה מיועד קטע קוד והאם הדבר שהלקוח ביקש אכן עובד.
הוא ייסד את Objective Systems באפריל 1987 כדי למסחר את השיטה; אריקסון רכשה נתח רוב ב-1991 והחברה הפכה ל-Objectory AB. בשנת 1992 הוא פרסם את הנדסת תוכנה מונחית עצמים: גישה מונעת מקרים לדוגמה (Object-Oriented Software Engineering: A Use Case Driven Approach), הספר שהעביר את המקרים לדוגמה לתעשייה הרחבה.
שלושת האמיגוס
באוקטובר 1995 מכרה אריקסון את Objectory ל-Rational Software, ויעקובסון הצטרף לגריידי בוץ' (Grady Booch) וג'יימס רומבאו (James Rumbaugh) – שלושה מתודולוגים יריבים עם שלוש נוטציות מתחרות, הידועים יחד ובנימה מעט עייפה כ"שלושת האמיגוס". המיזוג ביניהם הוליד את שפת המידול המאוחדת (UML), אוצר המילים הוויזואלי הסטנדרטי לתיאור מערכות מונחות עצמים, ותהליך ה-Objectory של יעקובסון פותח תחת פיליפ קרוצ'ן (Philippe Kruchten) לתהליך המאוחד של רציונל (Rational Unified Process), או RUP. כאשר יבמ (IBM) רכשה את Rational ב-2003, יעקובסון עזב.
להפוך את זה לקליל יותר
כל מה שקרה אחרי 2004 היה ניסיון לבטל את כובד המשקל של מה שבנה. הוא ייסד את Ivar Jacobson International באמצע 2004. בנובמבר 2005 הכריז על ה-Essential Unified Process, אותו תיאר כגרסה קלה ואג'ילית של RUP, המשלבת תהליך מאוחד, אג'ייל ורעיונות לשיפור תהליכים; החל מ-2006 עבד עם איאן ספנס (Ian Spence) ופאן ויי נג (Pan Wei Ng) על EssWork, מסגרת עבודה המאפשרת לצוותים להרכיב שיטות משלהם מליבה קטנה של אלמנטים אוניברסליים בתוספת פרקטיקות נבחרות.
בנובמבר 2009 השיק את SEMAT – שיטות ותיאוריה של הנדסת תוכנה (Software Engineering Method and Theory) – עם ברטראן מאייר (Bertrand Meyer) וריצ'רד סולי (Richard Soley), בטענה שהנדסת תוכנה זקוקה לבסיס תיאורטי אמיתי במקום תהלוכה של שיטות אופנתיות. התוצאה, Essence, אומצה כתקן של ה-Object Management Group בנובמבר 2014. הוא עבד גם על פיתוח מונחה היבטים (aspect-oriented development), ופרסם את פיתוח תוכנה מונחה היבטים עם מקרים לדוגמה (Aspect-Oriented Software Development with Use Cases) עם פאן ויי נג ב-2004, וייסד את Jaczone AB עם אגנטה יעקובסון בשנת 2000, שהכלי Waypointer שלה זכה בפרס JOLT בשנת 2004.
מדוע יעקובסון מכונה גאון
היכולת הספציפית היא נוטציונית: יעקובסון מצא שוב ושוב את הייצוג שהפך בעיה בלתי פתירה לניתנת למחשבה. תרשימי רצף, מקרים לדוגמה וממשקי רכיבים הם כולם אותו מהלך – קח משהו שקיים רק כהתנהגות סבוכה בתוך מערכת רצה ותן לו צורה שאדם יכול להחזיק בראשו וצוות יכול להתווכח עליה. זהו כישרון נדיר יותר מהמצאת אלגוריתם, מכיוון שנוטציה טובה חייבת להיות בו-זמנית מדויקת מספיק למהנדסים ופשוטה מספיק ללקוח המשלם על העבודה. מקרים לדוגמה הצליחו כי הם היו שניהם. הוא עשה זאת מתוך התעשייה, לא מאוניברסיטה, וזו הסיבה שהרעיונות שרדו מגע עם פרויקטים אמיתיים.
טיעון הנגד הכן הוא משמעותי והוא כנראה יקבל את רובו. הוא אחד משלושת מחברי UML, ו-UML עצמה סופגת ביקורת רחבה כמוצר של ועדה שגדל לממדים מנופחים וכעת נעשה בו שימוש סלקטיבי הרבה יותר ממה שהמעצבים שלה התכוונו. RUP, שנגזר מה-Objectory שלו, הפך למילה נרדפת לתהליך כבד משקל – בדיוק הדבר שתנועת האג'ייל התארגנה נגדו – ויעקובסון בילה את שני העשורים מאז 2004 בבניית מסגרות קלות יותר בתגובה מפורשת לכך. מקרים לדוגמה הוחלפו בחלקם בצוותי אג'ייל על ידי "סיפור משתמש" (user story) קצר וגולמי יותר. SEMAT ו-Essence, על אף מעמדם כתקן של OMG, לא השיגו את האימוץ בתעשייה כפי שקיווה. הגאונות שלו אמיתית אך היא גאונות של יצרן כלים, ויצרני כלים נשפטים לפי השאלה האם הכלים נשארים בשימוש.
מורשת
יעקובסון כתב עשרה ספרים, מ-OOSE ב-1992 ועד היתרון של האובייקט (The Object Advantage), שימוש חוזר בתוכנה (Software Reuse), התהליך המאוחד של פיתוח תוכנה (The Unified Software Development Process) ו-המהות של הנדסת תוכנה (The Essence of Software Engineering) ועד היסודות של הנדסת תוכנה מודרנית (The Essentials of Modern Software Engineering) ב-2019, ופרסם יותר ממאה מאמרים. צ'אלמרס העניק לו את מדליית גוסטב דאלן שלו ב-2003; אוניברסיטת סן מרטין דה פורס בפרו הפכה אותו לדוקטור לשם כבוד ב-2009. הוא נותר המייסד, היו"ר והמנכ"ל של Ivar Jacobson International. מה שלא ישרוד מ-UML ו-RUP, ההרגל לשאול מי משתמש במערכת הזו ומה הם מנסים להשיג – השאלה שהמקרה לדוגמה כפה על כל פרויקט – הוא כעת פשוט הדרך שבה תוכנה מוגדרת.