230 likes | 393 Views
העלאת המודעות לחשיבות של תיעוד תוכנה, באמצעות משחק תפקידים היברידי Hybrid Team-Based Role Play as a Vehicle for Improving Software Documentation Aharon Yadin and Ilana Lavy. הקדמה. הגדרת הבעיה הסדנה בהנדסת תוכנה הערכת תהליך הלמידה תוצאות מסקנות. הגדרת הבעיה.
E N D
העלאת המודעות לחשיבות של תיעוד תוכנה, באמצעות משחק תפקידים היברידי Hybrid Team-Based Role Play as a Vehicle for Improving Software Documentation Aharon Yadin and Ilana Lavy
הקדמה • הגדרת הבעיה • הסדנה בהנדסת תוכנה • הערכת תהליך הלמידה • תוצאות • מסקנות
הגדרת הבעיה • הנדסת תוכנה היא דיסציפלינה חדשה יחסית [Naur and Randell, 1968] • אשר התחילה בעקבות "משבר התוכנה" • כיום, הנדסת תוכנה היא מתודולוגיה בשלה ומקובלת ומהווה עוגן בלימודי פיתוח תוכנה • אולם, למרות שמחזור החיים של פיתוח תוכנה כולל פעילויות רבות, סטודנטים נוטים להתרכז בעיקר בקידוד
תחזוקתיות התוכנה • כל מכשיר (או מערכת ואפילו תוכנה)זקוק לתחזוקה • מערכות מידע ותוכנה באופן כללי הן מערכות דינאמיות, הניתנות להתאמה • לכן בנוסף לתחזוקת שבר, נדרשת גם תחזוקה לשיפורים אפשריים • תיקון של שגיאות שמתגלות • הוספת שיפורים אפשריים לתוכנה (עקב שינויים בסביבה התפעולית, התחרות, האקלים העסקי..) • תחזוקה היא גורם משמעותי בסך עלות המערכת • משמשת בתפקיד מכריע בתהליך של הנדסת תוכנה
הסדנה בהנדסת תוכנה • הסדנה בהנדסת תוכנה היא קורס חובה בשנה ב' • בין המטרות המרכזיות של הסדנה: הבנת והפנמת מושגים הקשורים במחזור חיים של פיתוח תוכנה תוך כדי הדגשת החשיבות של תיעוד ותחזוקת המוצר • העבודה בסדנה מתבצעת בצוותים כדי לקדם חשיבה ביקורתית, ולפתח מיומנויות של עבודת צוות
אודות המשתתפים • בסדנה השתתפו 26 סטודנטים • הסטודנטים התחלקו ל- 7 צוותים. • חמישה צוותים בני 4 חברי צוות • שני צוותים בני 3 חברי צוות • בשלב זה הסטודנטים למדו מהו מודל תוכנה ((UML
מבנה הסדנה • לכל הצוותים הוקצע פרויקט "זהה" • הפרויקט הוגדר, במתכוון, באופן מעורפל • "מערכת למכירות פומביות באינטרנט" • הסטודנטים נדרשו ללמוד את המערכות הקיימות בשוק, להעריך אלטרנטיבות אפשריות ולהגדיר את פונקציונאליות המערכת, המוסכמת על חברי הצוות • מבנה הסדנה היה מושתת על עקרונות מחזור החיים של תוכנה ובנוי, עקב אילוצי זמן, רק משלוש משימות עוקבות
שלבי העבודה במהלך הסדנה • שלוש המשימות בפרויקט הן: הגדרה ותכנון הפרויקט, פיתוח (קידוד) הפרויקט ובדיקות • לכל משימה הוקצו ארבעה שבועות שבהן התבצעה: • עבודה עצמית • עבודת צוות (פנים אל פנים או ישיבות וירטואליות) • בקשת עזרה/ייעוץ מהמרצה • תיעוד הרעיונות והפעילויות • פעילויות תוך-צוותיות
שלבי הסדנה • כדי להעצים את החשיבות הנתפשת של תיעוד ותחזוקה, הצוותים עסקו בפיתוח מבוסס משחק תפקידים • כל צוות היה מעורב בכל אחד משלושה השלבים, אך שלב התכנון בוצע על ידי צוות אחד, שלב הפיתוח בוצע על ידי צוות שני ושלב הבדיקות בוצע על ידי צוות שלישי • פעילויות בין-צוותיות
שלבי הסדנה (פרויקטים) Project Definition Project Development Project Testing Team 1 Team 2 Team 3 Project 1 Team 2 Team 3 Team 5 Project 2 Team 3 Team 4 Team 6 Project 3 Team 4 Team 5 Team 1 Project 4 Team 5 Team 6 Team 7 Project 5 Team 6 Team 7 Team 2 Project 6 Team 7 Team 1 Team 4 Project 7
שלבי הסדנה (צוותים) Project Definition Project Development Project Testing Team 1 Team 2 Team 3 Project 1 Team 5 Team 2 Team 3 Project 2 Team 4 Team 6 Team 3 Project 3 Team 4 Team 5 Team 1 Project 4 Team 5 Team 6 Team 7 Project 5 Team 6 Team 7 Team 2 Project 6 Team 7 Team 4 Team 1 Project 7
שלב תכנון הפרויקט • תיאור הפרויקט ופעילויות התכנון • לימוד פתרונות אפשריים שניתן להשתמש בהם בפרויקט • הגדרת 5 תרחישי שימוש (Use cases) ותרשימי הרצף הדרושים Sequence Diagrams)) • ביצוע תכן על (System Architecture and Class Diagrams) • ביצוע תכן מפורט (Activity Diagrams, PDL)
שלב פיתוח (קידוד) הפרויקט • פיתוח (קידוד) המערכת בהתאם למסמך הראשון • כל צוות נדרש לבצע את שלב הפיתוח בהתבססו על שלב התכנון שצוות אחר ביצע • הצוותים הורשו להכניס שינויים מזעריים ובלבד שהם הכרחיים • כל צוות נדרש להכין את המסמכים הבאים: • מסמך "הבדלים" (מלווה בפירוט הסיבות לשינויים) • הערכה של המסמך שקיבלו מהצוות האחר • תוכנית של בדיקות יחידה
שלב בדיקת הפרויקט • יישום בדיקות היחידה (שהוגדרו ע"י הצוות הקודם) • פיתוח מנגנון לבדיקת החלקים השונים של הפרויקט • תיקון השגיאות ובדיקות חוזרות לאחר התיקון • כל צוות נדרש להכין: • תיעוד של רשימת הבעיות שהתגלו ותיקונן • תכנית לבדיקת מערכת (מבוססת על המסמך הראשון) • בדיקות איכות המתייחסות לדרישות לא פונקציונאליות
הערכת תהליך הלמידה • הועברו שני שאלונים להערכת החשיבות היחסית של שלוש המשימות בפרויקט (כפי שנתפשות בעיני הסטודנטים) • השאלון הראשון הועבר בשיעור הראשון של הסדנה • השאלון השני הועבר בשיעור האחרון של הסדנה
תוצאות נוספות • מתוך הרפלקציות של הסטודנטים על התהליך: • "ידעתי ועכשיו אני גם מבין את החשיבות של שיתוף פעולה בין חברי הצוות. יש לשים דגש על תיעוד טוב" • "עבודה בצוות חשפה אותי להרבה רעיונות חדשים ולאפשרויות אחרות לפתרון הבעיה" • "עבודת צוות יכולה להיות ברכה, אך לעיתים היא יכולה להיות קללה..." • "זה היה קורס קשה. לנסות להבין דרישות רק על ידי הסתכלות בקוד – זה לא קל. אני לא חושב שאני יכול להצליח בעבודת תחזוקה..."
מסקנות • הסדנה העלתה את רמת ההבנה של הסטודנטים • העבודה בצוותים חשפה את הסטודנטים לרעיונות שונים והעלתה את חשיבות התיעוד בעיניהם • החשיבות של התיעוד, או הקשיים שהתעוררו כתוצאה מתיעוד לקוי, או חסר, הפכו להיות משמעותיים וברורים
תודה רבה aharony@yvc.ac.il Ilanal@yvc.ac.il