מחקר בגובה העיניים
מחקר בגובה העיניים
עובדות ומספרים


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