שילוב מתודולוגיות פיתוח תכנה בלימוד יחידת הלימוד השלישית (סדנה)

יעל דובינסקי

ד"ר אורית חזן

הפקולטה למדעי המחשב

טכניון, חיפה

המחלקה להוראת הטכנולוגיה

והמדעים, טכניון, חיפה

yael@cs.technion.ac.il

oritha@tx.technion.ac.il

 

שימו לב: מספר המקומות בסדנה מוגבל. ההשתתפות תאושר רק למי שנרשם מראש. ההרשמה נסגרה!

 

מבוא

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

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

·            האם כדאי לשקול שילוב של לימוד מתודולוגיות פיתוח תוכנה במסגרת יחידת המעבדה?

·            אם כן, כיצד מתאים ללמד נושא מסוג זה?

·            לחילופין, האם מתאים ללמד מתודולוגיות פיתוח תוכנה במסגרת אחרת של תוכנית הלימודים במדעי המחשב בתיכון? 

·            במידה והתשובות לשאלות הנ"ל תהיינה חיוביות, כיצד תבחרנה המתודולוגיות שיילמדו?

 

חשוב לציין כי אין בכוונתנו להציע שינוי בתכנים הנלמדים ביחידת המעבדה. מטרתנו היא להעלות לדיון את השאלה האם כדאי להוביל את פיתוח הפרוייקט באופן המונחה על-ידי מתודולוגית פיתוח תוכנה.

 

מתודולוגית פיתוח התוכנה Extreme Programming

Extreme Programming (בקיצור XP), היא מתודולוגית פיתוח תוכנה אחת מתוך משפחה של שיטות פיתוח תוכנה זריזות, גמישות והמגיבות-לשינויים (agile methodologies), שצמחו על רקע הבעיות המאפיינות את עולם התוכנה. XP תופסת לאחרונה תאוצה בתעשיית ההי-טק וחברות רבות מאמצות אותה כמתודולוגית פיתוח תוכנה מובילה. למשל, בכינוס XP Agile Universe שנערך בתחילת חודש אוגוסט 2002 בשיקגו נכחו כ- 300 משתתפים, רובם מהתעשייה. ניתן להסביר את הצלחתה של מתודולוגית פיתוח תוכנה זו במענה שהיא מספקת לצורכי תעשיית התוכנה על הבעיות המייחדות אותה (למשל, ההשלכות הכלכליות של ריבוי באגים בתוכנה, נושא שנידון לאחרונה בהרחבה באמצעי התקשורת). XP תשמש אותנו להדגמת רעיונותינו בתקציר זה ובסדנה עצמה.

מתודולוגית הפיתוח XP מיועדת ליישום בצוותים של עשרה עד שנים-עשר מפתחים, תוך דגש על ארבעה ערכים: תקשורת, פשטות, אומץ ומשוב (Beck, 2000). קבוצת ערכים זו משרתת צרכים אנושיים ומקצועיים הבאים לידי ביטוי בסביבות פיתוח תוכנה. XP מכוון לתקשורת נכונה על ידי אוסף מיומנויות (practices) כמו בדיקות יחידה ((unit testing, תכנות בזוג[1] ((pair programming והערכות זמנים של משימות פיתוח. ערכי התקשורת והפשטות הולכים יד ביד. ככל שהתקשורת בין חברי הצוות טובה יותר, רואים ברור יותר את שצריך לבצע ובעקבות הבחנות אלו מפשטים את תכנון הפרוייקט ואת הקוד. לעיתים דרוש אומץ על מנת להגיע לפשטות, למשל במקרים בהם יש להשליך קוד שנכתב ולהתחיל בכתיבת קטע קוד מסוים מחדש. XP מכוון לשמירה על פשטות על ידי הפעלת מיומנויות כמו שיפור מבנה התוכנה refactoring)), תכן פשוט ((simple design, ופרקי זמן קצרים המוקדשים לכל גרסה ((small releases. הערך הרביעי – משוב – חשוב כשלעצמו ומתחבר לשאר הערכים בצורה ברורה. משוב נדרש לכל אדם ועל מנת להגביר תקשורת נכונה ופשטות על כל אחד לדעת לספק משוב. בפרט, במהלך כל תקופת פיתוח התוכנה נשמר קשר רצוף עם הלקוחות והלקוח מהווה חלק מצוות פיתוח התוכנה ((on-site customer.

הניסיון שצברנו בהוראת XP מבוסס בעיקר על הוראת הקורס 'פרויקטים במערכות הפעלה' בפקולטה למדעי המחשב בטכניון ע"י המציגה הראשונה. את הקורס לומדים סטודנטים מהפקולטה למדעי המחשב ומהפקולטה להנדסת חשמל בטכניון בשנה הרביעית ללימודיהם, לאחר לימוד שני קורסים תיאורטיים במערכות הפעלה: 'מבוא למערכות הפעלה' ו'מבנה מערכות הפעלה'. הקורס הוא קורס מבוסס-פרויקט (Sebern, 2002; Wilson 2001) והמשימה העיקרית בו היא פיתוח פרויקט תוכנה בתחום של מערכות הפעלה. החל מסמסטר קיץ תשס"ב תהליך פיתוח התוכנה בקורס מתנהל על-פי XP. בדומה לרעיון המלווה את הסדנא בכנס המורים למדעי המחשב בתיכון, תכני הקורס 'פרוייקטים במערכות הפעלה' לא שונו עם שילוב שיטת הפיתוח XP בקורס. השינוי בקורס מתבטא רק בתהליך פיתוח התוכנה שמתנהל כעת באופן מתודולוגי על-פי XP.

הפרוייקטים שמפתחים תלמידי התיכון ביחידת המעבדה קטנים באופן משמעותי ביחס לפרוייקט המפותח בקורס 'פרוייקטים במערכות הפעלה'. יחד עם זאת, הרציונאל לבחינת שילובה של מתודולוגית פיתוח תוכנה בהוראת היחידה השלישית דומה בשני המקרים: חשיבותו והשפעתו של תהליך פיתוח התוכנה על איכות התוצר. 

מבנה הסדנה

o           הצגת הסוגייה המרכזית של הסדנא: שילוב מתודולוגית פיתוח תוכנה בלימודי יחידת הלימוד השלישית (המעבדה) לבגרות. 

o           הצגת XP: ערכים ומיומנויות.

o           הדגמת כמה מהמיומנויות של XP בהקשר של פרוייקט המבוצע במסגרת יחידת הלימוד השלישית. למשל, משתתפי הסדנא יתנסו במיומנות planning game של XP, שבמסגרתה מוגדרות דרישות הלקוח מהתוכנה וכן נקבעת חלוקת המשימות בין חברי צוות הפיתוח על-סמך הערכת זמני הפיתוח של כל משימה.

o           דיון בסוגיית ההתאמה של הוראת מתודולוגית פיתוח תוכנה במסגרת יחידת המעבדה ובשאלות נוספות שיועלו על-ידי המשתתפים.

חשוב לציין כי המתודולוגיהXP  תשמש להדגמה בלבד. אנו מאמינות כי ניתן לדון בסוגיית שילובה של מתודולוגיות פיתוח תוכנה בלימודי יחידת המעבדה גם בהקשר למתודולוגיות פיתוח תוכנה אחרות.

 

מקורות:

Beck, K. (2000). Extreme Programming Explained: Embrace Change. Addison-Wesley.

Sanders, D. (2001). Student Perceptions of the Suitability of Extreme and Pair Programming, XP Universe Conference.

Sebern, M.J. (2002). The Software Development Laboratory: Incorporating Industrial Practice in an Academic Environment, Conference on Software Engineering Education and Training (CSEE&T), pp. 118-127.

Williams, L. and Upchurch, R.L. (2001). In Support of Student Pair-Programming, Proceedings of SIGCSE Technical Symposium on Computer Science Education, pp. 327-331.

Wilson D. (2001). Teaching XP: A Case Study, XP Universe Conference.

 

לאתר המרכז

לכנס תשס"ג

חזרה

 

 



[1]  פרטים נוספים על תכנות-בזוג ניתן למצוא במאמרים Williams and Upchurch, 2001; Sanders, 2001.