סדנה בפיתוח תוכנה

0368-3500, סמסטר ב' תשס"ז

מנהלה

מרצה: סיון טולדו, שרייבר 013, stoledo@tau.ac.il

מבנה הסדנה

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

  • פיתוח ב-AJAX (אתרי אינטרנט אינטראקטיביים תוך שימוש ב-Java Script וטכנולוגיות קשורות)
  • פיתוח בג'אווה כולל פיתוח מנשקים גרפיים ו/או תוספים ל-Eclipse
  • פיתוח מערכות משובצות מחשב, כולל תוכנה ובמקרים מתאימים חומרה רלוונטית (כמה רעיונות מדליקים מופיעים בהמשך)
  • (ברמת תמיכה יותר נמוכה) פיתוח תוכנות desktop ב-C++ תוך שימוש בספריה בשם Qt

אפשר יהיה להשתמש גם בסביבות פיתוח אחרות, אבל סגל הקורס לא יוכל לתמוך טכנית בהן.

העבודה על הפרוייקטים תתחלק למספר שלבים:

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

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

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

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

שאלות ותשובות

האם יתקיימו שיעורים בסדנה?

  • כן, ולא רק בשבועות הראשונים.

האם אפשר לעבוד לבד? בזוגות? ברביעיות חמישיות או שמיניות?

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

רעיונות לפרויקטים במעבדת ה-embedded systems

  • שלט רחוק אינפרה-אדום אוניברסאלי/נשלט על ידי מחשב/שולט על מחשב וכו'
  • USB spkeakers
  • עכבר שמופעל על ידי חיישן תאוצה
  • הקלטת אודיו על גבי כרטיס זיכרון
  • נגן MP3
  • USB Stack עבור Peripherals
  • Porting של TinyOS למעבדי ARM7/LPC2000 (אולי ביחד עם הרעיון הקודם)
  • עורך גראפי לתוכניות nesC (באקליפס; התוכנה לא מיועדת ישירות למערכת משובצת מחשב אלה לסביבת פיתוח של מערכות כאלה)
  • לרעיונות נוספים, ראו אתר של פרוייקטי גמר בנושא דומה.

מחשבים זעירים במעבדת ה-embedded:

חומרה שנבנתה במעבדה:

עודכן לאחרונה בתאריך  ‏07/02/2007.