Transcript ****** 1

‫העלאת המודעות לחשיבות של תיעוד‬
‫ באמצעות משחק תפקידים‬,‫תוכנה‬
‫היברידי‬
HYBRID TEAM-BASED ROLE PLAY AS A VEHICLE
FOR IMPROVING SOFTWARE DOCUMENTATION
Aharon Yadin and Ilana Lavy
1
‫הקדמה‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪2‬‬
‫הגדרת הבעיה‬
‫הסדנה בהנדסת תוכנה‬
‫הערכת תהליך הלמידה‬
‫תוצאות‬
‫מסקנות‬
‫ידין ולביא ‪2010‬‬
‫הגדרת הבעיה‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪3‬‬
‫הנדסת תוכנה היא דיסציפלינה חדשה יחסית‬
‫אשר התחילה בעקבות "משבר התוכנה"‬
‫כיום‪ ,‬הנדסת תוכנה היא מתודולוגיה בשלה ומקובלת ומהווה עוגן‬
‫בלימודי פיתוח תוכנה‬
‫אולם‪ ,‬למרות שמחזור החיים של פיתוח תוכנה כולל פעילויות רבות‪,‬‬
‫סטודנטים נוטים להתרכז בעיקר בקידוד‬
‫]‪[Naur and Randell, 1968‬‬
‫ידין ולביא ‪2010‬‬
‫תחזוקתיות התוכנה‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪4‬‬
‫כל מכשיר (או מערכת ואפילו תוכנה) זקוק לתחזוקה‬
‫מערכות מידע ותוכנה באופן כללי הן מערכות דינאמיות‪ ,‬הניתנות‬
‫להתאמה‬
‫לכן בנוסף לתחזוקת שבר‪ ,‬נדרשת גם תחזוקה לשיפורים אפשריים‬
‫‪ ‬תיקון של שגיאות שמתגלות‬
‫‪ ‬הוספת שיפורים אפשריים לתוכנה (עקב שינויים בסביבה‬
‫התפעולית‪ ,‬התחרות‪ ,‬האקלים העסקי‪)..‬‬
‫תחזוקה היא גורם משמעותי בסך עלות המערכת‬
‫משמשת בתפקיד מכריע בתהליך של הנדסת תוכנה‬
‫ידין ולביא ‪2010‬‬
‫הסדנה בהנדסת תוכנה‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪5‬‬
‫הסדנה בהנדסת תוכנה היא קורס חובה בשנה ב'‬
‫בין המטרות המרכזיות של הסדנה‪ :‬הבנת והפנמת מושגים הקשורים‬
‫במחזור חיים של פיתוח תוכנה תוך כדי הדגשת החשיבות של תיעוד‬
‫ותחזוקת המוצר‬
‫העבודה בסדנה מתבצעת בצוותים כדי לקדם חשיבה ביקורתית‪,‬‬
‫ולפתח מיומנויות של עבודת צוות‬
‫ידין ולביא ‪2010‬‬
‫אודות המשתתפים‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪6‬‬
‫בסדנה השתתפו ‪ 26‬סטודנטים‬
‫הסטודנטים התחלקו ל‪ 7 -‬צוותים‪.‬‬
‫‪ ‬חמישה צוותים בני ‪ 4‬חברי צוות‬
‫‪ ‬שני צוותים בני ‪ 3‬חברי צוות‬
‫בשלב זה הסטודנטים למדו מהו מודל תוכנה (‪(UML‬‬
‫ידין ולביא ‪2010‬‬
‫מבנה הסדנה‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪7‬‬
‫לכל הצוותים הוקצע פרויקט "זהה"‬
‫הפרויקט הוגדר‪ ,‬במתכוון‪ ,‬באופן מעורפל‬
‫"מערכת למכירות פומביות באינטרנט"‬
‫הסטודנטים נדרשו ללמוד את המערכות הקיימות בשוק‪ ,‬להעריך‬
‫אלטרנטיבות אפשריות ולהגדיר את פונקציונאליות המערכת‪,‬‬
‫המוסכמת על חברי הצוות‬
‫מבנה הסדנה היה מושתת על עקרונות מחזור החיים של תוכנה‬
‫ובנוי‪ ,‬עקב אילוצי זמן‪ ,‬רק משלוש משימות עוקבות‬
‫ידין ולביא ‪2010‬‬
‫שלבי העבודה במהלך הסדנה‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪8‬‬
‫שלוש המשימות בפרויקט הן‪ :‬הגדרה ותכנון הפרויקט‪ ,‬פיתוח‬
‫(קידוד) הפרויקט ובדיקות‬
‫לכל משימה הוקצו ארבעה שבועות שבהן התבצעה‪:‬‬
‫‪ ‬עבודה עצמית‬
‫‪ ‬עבודת צוות (פנים אל פנים או ישיבות וירטואליות)‬
‫‪ ‬בקשת עזרה‪/‬ייעוץ מהמרצה‬
‫‪ ‬תיעוד הרעיונות והפעילויות‬
‫פעילויות תוך‪-‬צוותיות‬
‫ידין ולביא ‪2010‬‬
‫שלבי הסדנה‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪9‬‬
‫כדי להעצים את החשיבות הנתפשת של תיעוד ותחזוקה‪ ,‬הצוותים‬
‫עסקו בפיתוח מבוסס משחק תפקידים‬
‫כל צוות היה מעורב בכל אחד משלושה השלבים‪ ,‬אך שלב התכנון‬
‫בוצע על ידי צוות אחד‪ ,‬שלב הפיתוח בוצע על ידי צוות שני ושלב‬
‫הבדיקות בוצע על ידי צוות שלישי‬
‫פעילויות בין‪-‬צוותיות‬
‫ידין ולביא ‪2010‬‬
)‫שלבי הסדנה (פרויקטים‬
Project
Definition
Project
Development
Project
Testing
Project 1
Team 1
Team 2
Team 3
Project 2
Team 2
Team 3
Team 5
Project 3
Team 3
Team 4
Team 6
Project 4
Team 4
Team 5
Team 1
Project 5
Team 5
Team 6
Team 7
Project 6
Team 6
Team 7
Team 2
Project 7
Team 7
Team 1
Team 4
2010 ‫ידין ולביא‬
10
)‫שלבי הסדנה (צוותים‬
Project
Definition
Project
Development
Project
Testing
Project 1
Team 1
Team 2
Team 3
Project 2
Team 2
Team 3
Team 5
Project 3
Team 3
Team 4
Team 6
Project 4
Team 4
Team 5
Team 1
Project 5
Team 5
Team 6
Team 7
Project 6
Team 6
Team 7
Team 2
Project 7
Team 7
Team 1
Team 4
2010 ‫ידין ולביא‬
11
‫שלב תכנון הפרויקט‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪12‬‬
‫תיאור הפרויקט ופעילויות התכנון‬
‫לימוד פתרונות אפשריים שניתן להשתמש בהם בפרויקט‬
‫הגדרת ‪ 5‬תרחישי שימוש (‪ )Use cases‬ותרשימי הרצף הדרושים‬
‫)‪)Sequence Diagrams‬‬
‫ביצוע תכן על )‪(System Architecture and Class Diagrams‬‬
‫ביצוע תכן מפורט )‪(Activity Diagrams, PDL‬‬
‫ידין ולביא ‪2010‬‬
‫שלב פיתוח (קידוד) הפרויקט‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪13‬‬
‫פיתוח (קידוד) המערכת בהתאם למסמך הראשון‬
‫כל צוות נדרש לבצע את שלב הפיתוח בהתבססו על שלב התכנון‬
‫שצוות אחר ביצע‬
‫הצוותים הורשו להכניס שינויים מזעריים ובלבד שהם הכרחיים‬
‫כל צוות נדרש להכין את המסמכים הבאים‪:‬‬
‫‪ ‬מסמך "הבדלים" (מלווה בפירוט הסיבות לשינויים)‬
‫‪ ‬הערכה של המסמך שקיבלו מהצוות האחר‬
‫‪ ‬תוכנית של בדיקות יחידה‬
‫ידין ולביא ‪2010‬‬
‫שלב בדיקת הפרויקט‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪14‬‬
‫יישום בדיקות היחידה (שהוגדרו ע"י הצוות הקודם)‬
‫פיתוח מנגנון לבדיקת החלקים השונים של הפרויקט‬
‫תיקון השגיאות ובדיקות חוזרות לאחר התיקון‬
‫כל צוות נדרש להכין‪:‬‬
‫‪ ‬תיעוד של רשימת הבעיות שהתגלו ותיקונן‬
‫‪ ‬תכנית לבדיקת מערכת (מבוססת על המסמך הראשון)‬
‫‪ ‬בדיקות איכות המתייחסות לדרישות לא פונקציונאליות‬
‫ידין ולביא ‪2010‬‬
‫הערכת תהליך הלמידה‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪15‬‬
‫הועברו שני שאלונים להערכת החשיבות היחסית של שלוש‬
‫המשימות בפרויקט (כפי שנתפשות בעיני הסטודנטים)‬
‫השאלון הראשון הועבר בשיעור הראשון של הסדנה‬
‫השאלון השני הועבר בשיעור האחרון של הסדנה‬
‫ידין ולביא ‪2010‬‬
‫השאלון הראשון‬
80%
70%
60%
Relative
Importance % 50%
40%
30%
20%
10%
0%
Documentation
Development
2010 ‫ידין ולביא‬
Testing
16
‫השאלון השני‬
80%
70%
60%
Relative
Importance % 50%
40%
30%
20%
10%
0%
Documentation
Development
2010 ‫ידין ולביא‬
Testing
17
‫תוצאות נוספות‬
‫‪‬‬
‫‪18‬‬
‫מתוך הרפלקציות של הסטודנטים על התהליך‪:‬‬
‫‪" ‬ידעתי ועכשיו אני גם מבין את החשיבות של שיתוף פעולה בין‬
‫חברי הצוות‪ .‬יש לשים דגש על תיעוד טוב"‬
‫‪" ‬עבודה בצוות חשפה אותי להרבה רעיונות חדשים ולאפשרויות‬
‫אחרות לפתרון הבעיה"‬
‫‪" ‬עבודת צוות יכולה להיות ברכה‪ ,‬אך לעיתים היא יכולה להיות‬
‫קללה‪"...‬‬
‫‪" ‬זה היה קורס קשה‪ .‬לנסות להבין דרישות רק על ידי הסתכלות‬
‫בקוד – זה לא קל‪ .‬אני לא חושב שאני יכול להצליח בעבודת‬
‫תחזוקה‪"...‬‬
‫ידין ולביא ‪2010‬‬
‫מסקנות‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪19‬‬
‫הסדנה העלתה את רמת ההבנה של הסטודנטים‬
‫העבודה בצוותים חשפה את הסטודנטים לרעיונות שונים והעלתה‬
‫את חשיבות התיעוד בעיניהם‬
‫החשיבות של התיעוד‪ ,‬או הקשיים שהתעוררו כתוצאה מתיעוד לקוי‪,‬‬
‫או חסר‪ ,‬הפכו להיות משמעותיים וברורים‬
‫ידין ולביא ‪2010‬‬
‫תודה רבה‬
[email protected]
[email protected]
2010 ‫ידין ולביא‬
20