SlideShare uma empresa Scribd logo
1 de 44
‫עצמים‬ ‫מונחה‬ ‫תיכון‬
‫שעור‬11
‫הנכון‬ ‫התכנון‬ ‫חשיבות‬
‫כהן‬ ‫אסתר‬ ‫שחר‬-‫סעדו‬1
‫הספר‬ ‫על‬ ‫מבוסס‬ ‫השיעור‬Code complete‫עמי‬ ‫הוד‬ ‫בהוצאת‬ ‫תוכנה‬ ‫לפיתוח‬ ‫מעשי‬ ‫מדריך‬
‫איכותית‬ ‫תוכנה‬ ‫וכתיבת‬ ‫תכנון‬ ‫של‬ ‫מאפיינים‬
‫הפיתוח‬ ‫כלי‬ ‫של‬ ‫הבנה‬.
‫התוכנה‬ ‫תכנון‬ ‫תהליך‬ ‫של‬ ‫הבנה‬.
‫המציאות‬ ‫את‬ ‫מייצג‬ ‫הקוד‬ ‫בה‬ ‫הדרך‬ ‫של‬ ‫הבנה‬.
‫והתוכנה‬ ‫הקוד‬ ‫של‬ ‫החיים‬ ‫מחזור‬ ‫הבנת‬.
‫שלו‬ ‫העתידית‬ ‫התחזוקה‬ ‫על‬ ‫משפיעה‬ ‫הקוד‬ ‫כתיבת‬ ‫בו‬ ‫האופן‬ ‫של‬ ‫הבנה‬.
2
‫טובה‬ ‫קוד‬ ‫כתיבת‬ ‫של‬ ‫מאפיינים‬
‫לתחזוקה‬ ‫ונוח‬ ‫קריא‬ ‫קוד‬.
‫לעשות‬ ‫צריך‬ ‫שהוא‬ ‫מה‬ ‫את‬ ‫שעושה‬ ‫נכון‬ ‫קוד‬.
‫הזמן‬ ‫של‬ ‫נכון‬ ‫ניצול‬ ‫ישנו‬ ‫והכתיבה‬ ‫התכנון‬ ‫בתהליך‬.
‫פעולה‬ ‫ובשיתוף‬ ‫יעילה‬ ‫בצורה‬ ‫עובד‬ ‫הצוות‬.
‫להמשך‬ ‫מסקנות‬ ‫להסיק‬ ‫ומוכן‬ ‫הפיתוח‬ ‫בזמן‬ ‫שקורה‬ ‫למה‬ ‫קשוב‬ ‫הצוות‬
‫עתידי‬ ‫ולפיתוח‬.
3
‫תוכנה‬ ‫תכנון‬
‫תכנון‬ ‫עבודת‬(Design)‫התוכנה‬ ‫מכלול‬ ‫מבניית‬ ‫מהותי‬ ‫חלק‬ ‫הינה‬.
‫המחלקה‬ ‫של‬ ‫קוד‬ ‫פסאדו‬ ‫כתיבת‬ ‫להיות‬ ‫יכול‬ ‫תכנון‬.
‫הקוד‬ ‫כתיבת‬ ‫טרם‬ ‫מחלקות‬ ‫בין‬ ‫יחסים‬ ‫של‬ ‫דיאגראמות‬ ‫שרטוט‬.
‫תיכון‬ ‫תבנית‬ ‫בחירת‬(Design Pattern)
‫ע‬ ‫נקבע‬ ‫פונקציה‬ ‫או‬ ‫מחלקה‬ ‫של‬ ‫נכון‬ ‫מתכנון‬ ‫גדול‬ ‫חלק‬"‫הארכיטקטורה‬ ‫י‬
‫המערכת‬ ‫של‬.
‫קטנים‬ ‫בפרויקטים‬,‫עצמה‬ ‫הקוד‬ ‫כתיבת‬ ‫במהלך‬ ‫נעשה‬ ‫מהתכנון‬ ‫הרבה‬.
‫יהיה‬ ‫ניתן‬ ‫שבאמצעותה‬ ‫סכימה‬ ‫פיתוח‬ ‫היא‬ ‫תוכנה‬ ‫תכנון‬ ‫של‬ ‫המשמעות‬
‫מתפקדת‬ ‫לתוכנה‬ ‫התוכנה‬ ‫את‬ ‫המתארים‬ ‫המפרטים‬ ‫את‬ ‫להפוך‬.
‫בפועל‬ ‫הקוד‬ ‫כתיבת‬ ‫לבין‬ ‫הדרישות‬ ‫מפרט‬ ‫בין‬ ‫מקשר‬ ‫תכנון‬.
4
‫תוכנה‬ ‫תכנון‬ ‫אתגרי‬
‫הוא‬ ‫התכנון‬"‫מרושעת‬ ‫בעיה‬:‫במדויק‬ ‫אותה‬ ‫להגדיר‬ ‫שכדי‬ ‫בעיה‬,‫צריך‬
‫בחלקה‬ ‫לפחות‬ ‫או‬ ‫במלואה‬ ‫אותה‬ ‫לפתור‬.‫צריך‬ ‫כזו‬ ‫בעיה‬ ‫עם‬ ‫להתמודד‬ ‫כדי‬
‫לפתור‬ ‫ואז‬ ‫במדויק‬ ‫אותה‬ ‫להגדיר‬ ‫מנת‬ ‫על‬ ‫אחת‬ ‫פעם‬ ‫במלואה‬ ‫אותה‬ ‫לפתור‬
‫עובד‬ ‫פתרון‬ ‫להפיק‬ ‫כדי‬ ‫שוב‬ ‫אותה‬.
‫מבולגן‬ ‫עניין‬ ‫הוא‬ ‫התכנון‬:‫התוכנה‬ ‫תכנון‬ ‫תהליך‬ ‫של‬ ‫הסופית‬ ‫התוצאה‬
‫מסודר‬ ‫אינו‬ ‫עצמו‬ ‫התהליך‬ ‫אבל‬ ‫מסודרים‬ ‫מסמכים‬ ‫להיות‬ ‫צריכה‬.‫גם‬
‫יותר‬ ‫זול‬ ‫התכנון‬ ‫במהלך‬ ‫השגיאות‬ ‫וגילוי‬ ‫התכנון‬ ‫מתהליך‬ ‫חלק‬ ‫הן‬ ‫שגיאות‬
‫התוכנה‬ ‫כתיבת‬ ‫במהלך‬ ‫שלהן‬ ‫מגילוי‬.
‫בזמן‬ ‫מוגבל‬ ‫הוא‬ ‫אך‬ ‫היקף‬ ‫מבחינת‬ ‫מוגבל‬ ‫אינו‬ ‫התכנון‬.
5
‫תוכנה‬ ‫תכנון‬ ‫אתגרי‬
‫עדיפויות‬ ‫וסדרי‬ ‫חלופות‬ ‫של‬ ‫עניין‬ ‫הוא‬ ‫תכנון‬:‫עבודת‬ ‫של‬ ‫חשוב‬ ‫חלק‬
‫האמיתי‬ ‫מהעולם‬ ‫אילוצים‬ ‫של‬ ‫והערכה‬ ‫שיקול‬ ‫הוא‬ ‫התכנון‬.
‫לצרכים‬ ‫בהתאם‬,‫המערכת‬ ‫בבניית‬ ‫שונים‬ ‫שיקולים‬ ‫יילקחו‬.
‫מגבלות‬ ‫יצירת‬ ‫כולל‬ ‫תכנון‬:‫בעיות‬ ‫פותר‬ ‫שבחלקו‬ ‫תהליך‬ ‫הוא‬ ‫תכנון‬
‫מגבלות‬ ‫יוצר‬ ‫ובחלקו‬.‫אלו‬ ‫מגבלות‬(‫פיתוח‬ ‫זמן‬ ‫או‬ ‫משאבים‬ ‫כגון‬)‫בסופו‬
‫המוצר‬ ‫איכות‬ ‫את‬ ‫משפרות‬ ‫דבר‬ ‫של‬.
‫דטרמיניסטי‬ ‫לא‬ ‫תהליך‬ ‫הוא‬ ‫תכנון‬:‫אותה‬ ‫לתכנן‬ ‫יכול‬ ‫מערכת‬ ‫מתכנן‬ ‫כל‬
‫שונה‬ ‫בצורה‬.
‫ע‬ ‫שונה‬ ‫בצורה‬ ‫תתוכנן‬ ‫המערכת‬ ‫אותה‬"‫תכנון‬ ‫שכל‬ ‫כך‬ ‫אנשים‬ ‫מספר‬ ‫י‬
‫לחלוטין‬ ‫קביל‬ ‫להיות‬ ‫עשוי‬.
6
‫תוכנה‬ ‫תכנון‬ ‫אתגרי‬
‫היוריסטי‬ ‫תהליך‬ ‫הוא‬ ‫תכנון‬(‫מוחלט‬ ‫לא‬:)‫לא‬ ‫הינן‬ ‫התכנון‬ ‫שיטות‬
‫מוחלטות‬.‫מראש‬ ‫צפויות‬ ‫תוצאות‬ ‫ולקבל‬ ‫עליו‬ ‫לחזור‬ ‫שניתן‬ ‫תהליך‬ ‫זה‬ ‫אין‬.
‫וטעייה‬ ‫ניסוי‬ ‫על‬ ‫לעיתים‬ ‫מבוסס‬ ‫התכנון‬.
‫מסוימים‬ ‫לפרויקטים‬ ‫מתאימות‬ ‫מסוימות‬ ‫שיטות‬.‫לכלל‬ ‫שמתאים‬ ‫כלי‬ ‫ואין‬
‫הפרויקטים‬.
‫מתפתח‬ ‫תהליך‬ ‫הוא‬ ‫תכנון‬:‫ושינוי‬ ‫בחינה‬ ‫שכולל‬ ‫כתהליך‬ ‫מתפתח‬ ‫תכנון‬
‫קודם‬ ‫תכנון‬ ‫של‬,‫דיונים‬,‫קוד‬ ‫כתיבת‬,‫הקוד‬ ‫בדיקת‬‫התוכנה‬ ‫והרצת‬.
7
‫תוכנה‬ ‫בתכנון‬ ‫קשיים‬ ‫סוגי‬ ‫שני‬
‫מובנה‬ ‫קושי‬:‫הבסיסיות‬ ‫התכונות‬ ‫הינן‬ ‫תוכנה‬ ‫של‬ ‫המובנות‬ ‫התכונות‬
‫לכלול‬ ‫חייב‬ ‫שמוצר‬.‫מנוע‬ ‫להכיל‬ ‫חייבת‬ ‫לדוגמא‬ ‫מכונית‬,‫גלגלים‬,‫שלדה‬
‫וכדומה‬.
‫מקרי‬ ‫קושי‬:‫מסוים‬ ‫למוצר‬ ‫להשתייך‬ ‫שעשויות‬ ‫תכונות‬ ‫הן‬ ‫מקריות‬ ‫תכונות‬
‫מסוים‬ ‫לסוג‬ ‫שייך‬ ‫היותו‬ ‫על‬ ‫משפיעות‬ ‫אינן‬ ‫הן‬ ‫אך‬.‫להיות‬ ‫יכולות‬ ‫למכונית‬
2‫או‬ ‫דלתות‬4‫מכונית‬ ‫עדיין‬ ‫זו‬ ‫אך‬ ‫דלתות‬.
8
‫תוכנה‬ ‫בתכנון‬ ‫קשיים‬ ‫סוגי‬ ‫שני‬–‫מובנה‬ ‫קושי‬
‫למערכת‬ ‫הקשורים‬ ‫הפרטים‬ ‫של‬ ‫ופענוח‬ ‫הבנה‬ ‫הינה‬ ‫תוכנה‬ ‫פיתוח‬ ‫משימת‬
‫מרעיון‬ ‫המפותחת‬.‫ומורכבים‬ ‫בזה‬ ‫זה‬ ‫משולבים‬ ‫הפרטים‬.
‫ישויות‬ ‫בין‬ ‫גומלין‬ ‫קשרי‬ ‫בזיהוי‬ ‫קושי‬
‫מלאה‬ ‫בצורה‬ ‫חריגים‬ ‫מקרים‬ ‫זיהוי‬.
‫לענות‬ ‫ולא‬ ‫מדויק‬ ‫להיות‬ ‫צריך‬ ‫המעוצב‬ ‫הפיתרון‬"‫בערך‬"‫הצרכים‬ ‫על‬.
‫האמיתי‬ ‫העולם‬ ‫ומתפקד‬ ‫פועל‬ ‫איך‬ ‫לנתח‬ ‫קשה‬.
‫יותר‬ ‫מורכבת‬ ‫שהבעיה‬ ‫ככל‬,‫יותר‬ ‫מורכבים‬ ‫הישויות‬ ‫בין‬ ‫הגומלין‬ ‫קשרי‬
‫הפיתרון‬ ‫גם‬ ‫וכך‬.
‫לקושי‬ ‫פיתרון‬ ‫לנו‬ ‫שתמצא‬ ‫מובנית‬ ‫תוכנה‬ ‫או‬ ‫תכנות‬ ‫שפת‬ ‫למצוא‬ ‫ניתן‬ ‫לא‬
‫זה‬.
9
‫תוכנה‬ ‫בתכנון‬ ‫קשיים‬ ‫סוגי‬ ‫שני‬–‫מקרי‬ ‫קושי‬
‫כבר‬ ‫נפתרו‬ ‫תוכנה‬ ‫לפיתוח‬ ‫הקשורים‬ ‫המקריים‬ ‫הקשיים‬ ‫מרבית‬
(Brooks.)
‫תכנות‬ ‫בשפת‬ ‫מסורבלים‬ ‫למבנים‬ ‫קשורים‬ ‫להיות‬ ‫יכולים‬ ‫מקריים‬ ‫קשיים‬–
‫עצמים‬ ‫מונחות‬ ‫שפות‬ ‫באמצעות‬ ‫נפתרו‬.
‫המחשב‬ ‫עם‬ ‫אינטראקטיביות‬ ‫פעולות‬-‫מערכות‬ ‫התפתחות‬ ‫עם‬ ‫נפתרו‬
‫מתקדמות‬ ‫הפעלה‬.
‫טובה‬ ‫בצורה‬ ‫כלים‬ ‫שילוב‬-‫משולבות‬ ‫פיתוח‬ ‫סביבות‬ ‫קיימות‬.
‫מערכות‬ ‫בין‬ ‫שילוב‬-‫זה‬ ‫מסוג‬ ‫בבעיות‬ ‫לטיפול‬ ‫רבות‬ ‫אפשרויות‬ ‫קיימות‬.
10
‫מורכבות‬ ‫תכנון‬
‫בדרישות‬ ‫ליקויים‬ ‫בשל‬ ‫להיכשל‬ ‫עלול‬ ‫תוכנה‬ ‫פרויקט‬,‫בניהול‬ ‫או‬ ‫בתכנון‬.
‫יצאה‬ ‫והתוכנה‬ ‫הפרויקט‬ ‫מורכבות‬ ‫כאשר‬ ‫טכנית‬ ‫מבחינה‬ ‫נכשל‬ ‫פרויקט‬
‫כ‬ ‫למורכבת‬ ‫הפכה‬ ‫והתוכנה‬ ‫משליטה‬"‫בוודאות‬ ‫לומר‬ ‫יודע‬ ‫לא‬ ‫אחד‬ ‫שאף‬ ‫כ‬
‫פועלת‬ ‫היא‬ ‫איך‬ ‫או‬ ‫עושה‬ ‫היא‬ ‫מה‬.
‫שינוי‬ ‫של‬ ‫ההשלכות‬ ‫תהיינה‬ ‫מה‬ ‫ידוע‬ ‫לא‬ ‫שבו‬ ‫לשלב‬ ‫מגיע‬ ‫פרויקט‬ ‫כאשר‬
‫אחרים‬ ‫מקומות‬ ‫על‬ ‫אחד‬ ‫במקום‬ ‫קוד‬,‫התקדמות‬ ‫את‬ ‫לעצור‬ ‫מומלץ‬
‫הפרויקט‬.
‫באמצעות‬ ‫מערכת‬ ‫של‬ ‫מורכבות‬ ‫עם‬ ‫להתמודד‬ ‫ניתן‬:
‫מערכות‬ ‫לתת‬ ‫המערכת‬ ‫חלוקת‬(‫מודולריות‬.)
‫ברורה‬ ‫בצורה‬ ‫אובייקטים‬ ‫הגדרת‬.
‫קטנות‬ ‫פונקציות‬ ‫הגדרת‬.
‫שגיאות‬ ‫פחות‬ ‫מכיל‬ ‫להבנה‬ ‫יותר‬ ‫קל‬ ‫קוד‬.
11
‫מוצלח‬ ‫תכנון‬ ‫של‬ ‫מאפיינים‬
‫מינימאלית‬ ‫מורכבות‬:‫להבנה‬ ‫וקלים‬ ‫פשוטים‬ ‫אלמנטים‬ ‫תכנון‬.‫התמקדות‬
‫כולל‬ ‫פיתרון‬ ‫ליצירת‬ ‫עד‬ ‫הבעיה‬ ‫של‬ ‫בחלקים‬.
‫תחזוקה‬ ‫קלות‬:‫אחרים‬ ‫למתכנתים‬ ‫גם‬ ‫מובנת‬ ‫שתהיה‬ ‫כך‬ ‫המערכת‬ ‫תכנון‬
‫תחזוקה‬ ‫לצורך‬.
‫רופף‬ ‫צימוד‬:‫תוכנה‬ ‫חלקי‬ ‫בין‬ ‫רופפים‬ ‫קשרים‬.‫בניהן‬ ‫שיש‬ ‫מחלקות‬ ‫תכנון‬
‫והסתרת‬ ‫כימוס‬ ‫בעקרונות‬ ‫שימוש‬ ‫תוך‬ ‫האפשר‬ ‫ככל‬ ‫מעטים‬ ‫גומלין‬ ‫קשרי‬
‫מידע‬.
‫להרחבה‬ ‫פתיחות‬:‫נזק‬ ‫גרימת‬ ‫או‬ ‫שינוי‬ ‫ללא‬ ‫המערכת‬ ‫של‬ ‫הרחבה‬
‫קיימים‬ ‫למרכיבים‬.‫אחרים‬ ‫חלקים‬ ‫על‬ ‫להשפיע‬ ‫מבלי‬ ‫אחד‬ ‫חלק‬ ‫לשנות‬ ‫ניתן‬
‫במערכת‬.
‫מחדש‬ ‫לשימוש‬ ‫פתיחות‬:‫קוד‬ ‫בחלקי‬ ‫חוזר‬ ‫שימוש‬.
‫ביחיד‬ ‫רבים‬ ‫של‬ ‫שימוש‬:‫במחלקה‬ ‫משתמשות‬ ‫מחלקות‬ ‫של‬ ‫גדול‬ ‫מספר‬
‫נתונה‬.‫של‬ ‫הנמוכות‬ ‫ברמות‬ ‫ונמצאות‬ ‫שירות‬ ‫הנותנות‬ ‫מחלקות‬ ‫קיימות‬
‫המערכת‬.
12
‫מוצלח‬ ‫תכנון‬ ‫של‬ ‫מאפיינים‬
‫ברבים‬ ‫יחיד‬ ‫של‬ ‫שימוש‬:‫מחלקות‬ ‫של‬ ‫נמוך‬ ‫במספר‬ ‫משתמשת‬ ‫מחלקה‬
‫אחרות‬.‫מחלקות‬ ‫של‬ ‫יותר‬ ‫גבוה‬ ‫במספר‬ ‫משתמשת‬ ‫שהמחלקה‬ ‫ככל‬,‫הדבר‬
‫גבוהה‬ ‫מורכבות‬ ‫על‬ ‫מעיד‬.
‫ניידות‬:‫לסביבת‬ ‫אותה‬ ‫להעביר‬ ‫בקלות‬ ‫יהיה‬ ‫שניתן‬ ‫כך‬ ‫המערכת‬ ‫תכנון‬
‫אחרת‬ ‫עבודה‬.
‫מערכת‬"‫רזה‬:"‫מיותרים‬ ‫חלקים‬ ‫ללא‬ ‫מערכת‬.
‫בשכבות‬ ‫ארגון‬:‫תמונה‬ ‫קבלת‬ ‫תוך‬ ‫מסוימת‬ ‫ברמה‬ ‫המערכת‬ ‫על‬ ‫התבוננות‬
‫שלה‬ ‫שלמה‬.‫אחת‬ ‫ברמה‬ ‫להתמקד‬ ‫שניתן‬ ‫באופן‬ ‫המערכת‬ ‫את‬ ‫לתכנן‬ ‫צריך‬
‫יותר‬ ‫נמוכות‬ ‫לרמות‬ ‫להיכנס‬ ‫מבלי‬ ‫שלה‬.
‫סטנדרטיות‬ ‫טכניקות‬:‫מקנה‬ ‫ומוכרות‬ ‫מקובלות‬ ‫וטכניקות‬ ‫בגישות‬ ‫שימוש‬
‫ביטחון‬ ‫תחושת‬ ‫למתכנת‬.
13
‫תוכנה‬ ‫של‬ ‫תכנון‬ ‫רמות‬
‫רמה‬1–‫מערכתי‬ ‫תכנון‬:
‫כולה‬ ‫המערכת‬ ‫תכנון‬.
14
‫תוכנה‬ ‫של‬ ‫תכנון‬ ‫רמות‬-‫רמה‬2–‫מערכות‬ ‫לתת‬ ‫חלוקה‬
‫רמה‬2-‫חבילות‬ ‫או‬ ‫מערכות‬ ‫לתת‬ ‫חלוקה‬:
‫במערכת‬ ‫המרכזיות‬ ‫המערכות‬ ‫תת‬ ‫זיהוי‬.
‫ויקבע‬ ‫חבילות‬ ‫או‬ ‫מערכות‬ ‫לתת‬ ‫המערכת‬ ‫של‬ ‫חלוקה‬ ‫תבוצע‬ ‫זו‬ ‫ברמה‬
‫המחלקות‬ ‫תתי‬ ‫בין‬ ‫הקשר‬.
‫ביניהן‬ ‫מתקשרות‬ ‫המערכות‬ ‫תת‬ ‫בו‬ ‫לאופן‬ ‫חשיבות‬ ‫יש‬.‫תתי‬ ‫כל‬ ‫אם‬
‫המערכות‬ ‫תתי‬ ‫כל‬ ‫עם‬ ‫מתקשרות‬ ‫המערכות‬,‫לאיבוד‬ ‫הלך‬ ‫ההפרדה‬ ‫עיקרון‬.
‫המערכות‬ ‫תת‬ ‫בין‬ ‫התקשורת‬ ‫את‬ ‫להגביל‬ ‫יש‬.
‫אחרות‬ ‫מערכות‬ ‫תתי‬ ‫על‬ ‫שפחות‬ ‫כמה‬ ‫ישפיע‬ ‫מערכת‬ ‫תת‬ ‫של‬ ‫שניתוק‬ ‫נרצה‬.
‫המערכות‬ ‫תתי‬ ‫בין‬ ‫פשוטים‬ ‫קשרים‬ ‫על‬ ‫לשמור‬ ‫מומלץ‬.
‫פשוט‬ ‫קשר‬-‫שנייה‬ ‫מערכת‬ ‫בתת‬ ‫לפונקציה‬ ‫קוראת‬ ‫אחת‬ ‫מערכת‬ ‫תת‬.
‫הדוק‬ ‫קשר‬-‫אחרת‬ ‫מערכת‬ ‫תת‬ ‫של‬ ‫מחלקות‬ ‫מכילה‬ ‫אחת‬ ‫מערכת‬ ‫תת‬.
‫ביותר‬ ‫הדוק‬ ‫קשר‬-‫ממחלקות‬ ‫היורשות‬ ‫מחלקות‬ ‫מכילה‬ ‫אחת‬ ‫מערכת‬ ‫תת‬
‫אחרת‬ ‫מערכת‬ ‫בתת‬.
15
‫תוכנה‬ ‫של‬ ‫תכנון‬ ‫רמות‬-‫רמה‬2–‫מערכות‬ ‫לתת‬ ‫חלוקה‬
16
‫תוכנה‬ ‫של‬ ‫תכנון‬ ‫רמות‬-‫רמה‬2–‫מערכות‬ ‫לתת‬ ‫חלוקה‬
17
‫תוכנה‬ ‫של‬ ‫תכנון‬ ‫רמות‬-‫רמה‬2–‫מערכות‬ ‫לתת‬ ‫חלוקה‬
‫מעגלי‬ ‫לא‬ ‫גרף‬ ‫על‬ ‫שמירה‬ ‫הוא‬ ‫מערכות‬ ‫תתי‬ ‫בתכנון‬ ‫מוצלח‬ ‫עיקרון‬.‫צריך‬
‫מחלקה‬ ‫בו‬ ‫ממצב‬ ‫להימנע‬A‫במחלקה‬ ‫משתמשת‬B,‫מחלקה‬B‫משתמשת‬
‫במחלקה‬C‫ומחלקה‬C‫במחלקה‬ ‫משתמשת‬A.
‫נפוצות‬ ‫מחלקות‬ ‫תתי‬:
‫עסקיים‬ ‫כללים‬:‫החוקים‬,‫לתוכנה‬ ‫הקשורים‬ ‫והתקנות‬ ‫המדיניות‬
‫המפותחת‬.
‫משתמש‬ ‫ממשק‬:‫גרפי‬ ‫ממשק‬,‫פקודה‬ ‫שורות‬,‫תפריטים‬,‫חלונות‬,
‫וכדומה‬ ‫עזרה‬ ‫מערכת‬.
‫הנתונים‬ ‫לבסיס‬ ‫גישה‬:‫לבסיס‬ ‫הגישה‬ ‫של‬ ‫המימוש‬ ‫הסתרת‬
‫בלבד‬ ‫המידע‬ ‫בניהול‬ ‫לטפל‬ ‫יוכלו‬ ‫שהמחלקות‬ ‫כך‬ ‫הנתונים‬.
‫הפעלה‬ ‫במערכת‬ ‫תלות‬:‫הפעלה‬ ‫מערכת‬ ‫של‬ ‫לפונקציות‬ ‫הקריאות‬
‫נפרדת‬ ‫מערכת‬ ‫בתת‬ ‫מבוצעות‬.‫גמישות‬ ‫היא‬ ‫לכך‬ ‫העיקרית‬ ‫הסיבה‬
‫שונות‬ ‫בסביבות‬ ‫לעבודה‬ ‫התוכנה‬ ‫בהעברת‬. 18
‫תוכנה‬ ‫של‬ ‫תכנון‬ ‫רמות‬-‫רמה‬3-‫למחלקות‬ ‫חלוקה‬
‫במערכת‬ ‫המחלקות‬ ‫כל‬ ‫של‬ ‫זיהוי‬.
‫לדוגמא‬:‫כגון‬ ‫למחלקות‬ ‫תחולק‬ ‫נתונים‬ ‫לבסיס‬ ‫גישה‬ ‫של‬ ‫מערכת‬ ‫תת‬
‫נתונים‬ ‫לבסיס‬ ‫גישה‬ ‫מחלקת‬,‫נתונים‬ ‫שמירת‬ ‫מחלקת‬,‫של‬ ‫להגדרה‬ ‫מחלקות‬
‫הנתונים‬ ‫מבנה‬.
‫האחרים‬ ‫התוכנה‬ ‫לחלקי‬ ‫המחלקה‬ ‫בין‬ ‫הגומלין‬ ‫יחסי‬ ‫קביעת‬.
‫מחלקות‬ ‫בין‬ ‫הממשק‬ ‫קביעת‬.
‫שתאפשר‬ ‫כזו‬ ‫ברמה‬ ‫פורקו‬ ‫המערכות‬ ‫תת‬ ‫שכל‬ ‫לוודא‬ ‫נרצה‬ ‫זו‬ ‫ברמה‬
‫למחלקות‬ ‫שלהן‬ ‫מימוש‬.
‫ואובייקט‬ ‫מחלקה‬ ‫בין‬ ‫ההבדל‬ ‫הוא‬ ‫עצמים‬ ‫מונחה‬ ‫בתכנות‬ ‫מפתח‬ ‫עיקרון‬:
‫היא‬ ‫והמחלקה‬ ‫ריצה‬ ‫בזמן‬ ‫בתוכנית‬ ‫שקיימת‬ ‫מוגדרת‬ ‫ישות‬ ‫הוא‬ ‫אובייקט‬
‫בקוד‬ ‫שמופיע‬ ‫הסטטי‬ ‫הדבר‬.‫בזמן‬ ‫המחלקה‬ ‫של‬ ‫המופע‬ ‫הוא‬ ‫האובייקט‬
‫ריצה‬.
19
‫תוכנה‬ ‫של‬ ‫תכנון‬ ‫רמות‬-‫רמה‬4-‫לפונקציות‬ ‫חלוקה‬
‫לפונקציות‬ ‫המחלקות‬ ‫כל‬ ‫של‬ ‫חלוקה‬.
‫מהפונקציות‬ ‫בחלק‬ ‫יוכל‬ ‫שלוש‬ ‫מרמה‬ ‫המחלקה‬ ‫של‬ ‫הממשק‬.
‫פשוטות‬ ‫הן‬ ‫מהפונקציות‬ ‫חלק‬.
‫לפונקציות‬ ‫היררכיות‬ ‫קריאות‬ ‫וכוללות‬ ‫מורכבות‬ ‫הן‬ ‫מהפונקציות‬ ‫חלק‬
‫נוסף‬ ‫תכנון‬ ‫ומחייבות‬ ‫אחרות‬.
‫לשינויים‬ ‫ולעיתים‬ ‫המחלקה‬ ‫ממשק‬ ‫להבנת‬ ‫תורם‬ ‫הפונקציות‬ ‫הגדרת‬ ‫תהליך‬
‫ברמה‬3.
‫להתבצע‬ ‫חייבת‬ ‫היא‬ ‫אך‬ ‫פורמאלית‬ ‫בצורה‬ ‫מתוכננת‬ ‫אינה‬ ‫זו‬ ‫רמה‬ ‫לעיתים‬
‫ותכנונית‬ ‫מחשבתית‬ ‫מבחינה‬ ‫לפחות‬.
‫בד‬"‫ע‬ ‫מטופלת‬ ‫זו‬ ‫רמה‬ ‫כ‬"‫עצמו‬ ‫המתכנת‬ ‫י‬.
20
‫תוכנה‬ ‫של‬ ‫תכנון‬ ‫רמות‬-‫רמה‬5-‫הפונקציות‬ ‫בתוך‬ ‫תכנון‬
‫הבודדת‬ ‫הפונקציה‬ ‫של‬ ‫הפונקציונאליות‬ ‫תכנון‬.
‫בד‬ ‫מבוצע‬"‫ע‬ ‫כ‬"‫הפונקציה‬ ‫לכתיבת‬ ‫האחראי‬ ‫המתכנת‬ ‫י‬.
‫כולל‬ ‫התכנון‬:
‫קוד‬ ‫פסאדו‬ ‫כתיבת‬.
‫מתאים‬ ‫אלגוריתם‬ ‫חיפוש‬.
‫הקוד‬ ‫פסקאות‬ ‫ארגון‬.
‫עצמו‬ ‫הקוד‬ ‫כתיבת‬.
21
‫התכנון‬ ‫של‬ ‫הבניין‬ ‫אבני‬
‫הגדרת‬‫אובייקטים‬
‫התכנון‬ ‫על‬ ‫חזרה‬.
‫אחידה‬ ‫הפשטה‬ ‫רמת‬
‫המימוש‬ ‫פרטי‬ ‫של‬ ‫כימוס‬
‫בהורשה‬ ‫שימוש‬
‫מידע‬ ‫הסתרת‬
‫לשינויים‬ ‫הצפויים‬ ‫אזורים‬ ‫זיהוי‬
‫רופף‬ ‫צימוד‬
‫תיכון‬ ‫תבניות‬
22
‫אובייקטים‬ ‫תכנון‬
‫באמצעות‬ ‫שנצברו‬ ‫בכלים‬ ‫שימוש‬ ‫ולכן‬ ‫דטרמיניסטי‬ ‫לא‬ ‫תהליך‬ ‫הוא‬ ‫תכנון‬
‫מוצלח‬ ‫תוכנה‬ ‫מתכנון‬ ‫חלק‬ ‫הוא‬ ‫ניסיון‬.
‫מלאכותיים‬ ‫ואובייקטים‬ ‫הממשי‬ ‫מהעולם‬ ‫אובייקטים‬ ‫איתור‬:
‫שלהם‬ ‫והתכונות‬ ‫אובייקטים‬ ‫זיהוי‬.
‫אובייקט‬ ‫כל‬ ‫על‬ ‫לבצע‬ ‫שניתן‬ ‫הפעולות‬ ‫קביעת‬.
‫אחרים‬ ‫לאובייקטים‬ ‫לעשות‬ ‫רשאי‬ ‫אובייקט‬ ‫כל‬ ‫מה‬ ‫קביעה‬–‫בד‬"‫כ‬
‫ירושה‬ ‫או‬ ‫הכלה‬.
‫באובייקט‬ ‫החשופים‬ ‫החלקים‬ ‫קביעת‬-‫ופונקציות‬ ‫מאפיינים‬.
‫אובייקט‬ ‫כל‬ ‫של‬ ‫הממשק‬ ‫הגדרת‬-‫שהאובייקט‬ ‫והפונקציות‬ ‫הנתונים‬
‫לעולם‬ ‫חושף‬.
23
‫התכנון‬ ‫על‬ ‫חזרה‬
‫על‬ ‫הגבוהות‬ ‫התכנון‬ ‫רמות‬ ‫על‬ ‫חזרה‬ ‫לבצע‬ ‫יש‬ ‫המערכת‬ ‫של‬ ‫התכנון‬ ‫בסיום‬
‫המחלקות‬ ‫את‬ ‫יותר‬ ‫טוב‬ ‫באופן‬ ‫לארגן‬ ‫מנת‬.
‫המפורטת‬ ‫התכנון‬ ‫לרמת‬ ‫עד‬ ‫מהמחלקות‬ ‫אחת‬ ‫כל‬ ‫של‬ ‫התכנון‬ ‫על‬ ‫לחזור‬ ‫יש‬
‫ביותר‬.
‫תהליך‬ ‫הינו‬ ‫התכנון‬ ‫על‬ ‫החזרה‬ ‫תהליך‬‫איטרטיבי‬.
24
‫אחידה‬ ‫הפשטה‬ ‫רמת‬
‫הפשטה‬:‫מהפרטים‬ ‫מחלק‬ ‫התעלמות‬ ‫תוך‬ ‫מסוים‬ ‫בתחום‬ ‫לטפל‬ ‫היכולת‬.
‫ולהתעלם‬ ‫בו‬ ‫להתמקד‬ ‫לך‬ ‫שמאפשר‬ ‫ממשק‬ ‫הוא‬ ‫מחלקה‬ ‫של‬ ‫טוב‬ ‫ממשק‬
‫עצמה‬ ‫המחלקה‬ ‫ממומשת‬ ‫בו‬ ‫מהאופן‬.
‫רלוונטיים‬ ‫לא‬ ‫מפרטים‬ ‫התעלמות‬ ‫מאפשרת‬ ‫ההפשטה‬.
‫שלה‬ ‫המרכיבים‬ ‫של‬ ‫הפשטה‬ ‫היא‬ ‫מכונית‬:‫מנוע‬,‫שלדה‬,‫מושבים‬,‫פנסים‬,
‫גלגלים‬‫וכו‬'.
25
‫המימוש‬ ‫פרטי‬ ‫של‬ ‫כימוס‬
‫כימוס‬:‫הסתרה‬.
‫הפרטים‬ ‫מורכבות‬ ‫את‬ ‫מסתיר‬ ‫שהוא‬ ‫בכך‬ ‫מורכבות‬ ‫בניהול‬ ‫עוזר‬.
‫רשאי‬ ‫ואינך‬ ‫מורכב‬ ‫משהו‬ ‫על‬ ‫פשוט‬ ‫מבט‬ ‫לקבל‬ ‫יכול‬ ‫שאתה‬ ‫פירושו‬ ‫כימוס‬
‫המוסתרים‬ ‫בפרטים‬ ‫להתבונן‬.
‫מקבל‬ ‫שאתה‬ ‫מה‬ ‫הוא‬ ‫רואה‬ ‫שאתה‬ ‫מה‬.
26
‫התכנון‬ ‫פישוט‬ ‫לצורך‬ ‫בהורשה‬ ‫שימוש‬
‫מסוימות‬ ‫תכונות‬ ‫למעט‬ ‫דומים‬ ‫אובייקטים‬ ‫קיימים‬ ‫תוכנה‬ ‫במערכת‬.
‫הורשה‬:‫להוסיף‬ ‫שניתן‬ ‫כך‬ ‫אחרת‬ ‫ממחלקה‬ ‫יורשת‬ ‫מסוימת‬ ‫מחלקה‬
‫היורשת‬ ‫למחלקה‬ ‫מאפיינים‬.
‫ההפשטה‬ ‫בעיקרון‬ ‫תומכת‬ ‫ירושה‬.
27
‫מידע‬ ‫הסתרת‬
‫מידע‬ ‫הסתרת‬:‫עצמים‬ ‫מונחה‬ ‫ותכנות‬ ‫מובנה‬ ‫תכנון‬ ‫של‬ ‫מהבסיס‬ ‫חלק‬.
‫התוכנה‬ ‫חלקי‬ ‫מפני‬ ‫אחד‬ ‫חלק‬ ‫של‬ ‫ומימוש‬ ‫תכנון‬ ‫החלטות‬ ‫מסתיר‬ ‫המתכנת‬
‫האחרים‬.
‫התוכנה‬ ‫של‬ ‫המורכבות‬ ‫בהסתרת‬ ‫עוזרת‬ ‫מידע‬ ‫הסתרת‬.
‫ע‬ ‫מאופיינת‬ ‫מחלקה‬ ‫כל‬"‫אחרות‬ ‫ממחלקות‬ ‫מסתירה‬ ‫שהיא‬ ‫הפרטים‬ ‫י‬
‫בתוכנה‬.
‫מנת‬ ‫על‬ ‫אותם‬ ‫לבודד‬ ‫צורך‬ ‫שיש‬ ‫קוד‬ ‫וחלקי‬ ‫רגישים‬ ‫קוד‬ ‫חלקי‬ ‫נסתיר‬
‫האחרים‬ ‫התוכנה‬ ‫בחלקי‬ ‫תפגע‬ ‫לא‬ ‫בהם‬ ‫שטעות‬.
‫מתנהלים‬ ‫שבה‬ ‫הצורה‬ ‫על‬ ‫שפחות‬ ‫כמה‬ ‫לחשוף‬ ‫צריך‬ ‫המחלקה‬ ‫ממשק‬
‫המחלקה‬ ‫בתוך‬ ‫דברים‬. 28
‫מידע‬ ‫להסתרת‬ ‫דוגמא‬
‫לרשומה‬ ‫ייחודי‬ ‫מזהה‬ ‫יצירת‬.
‫ה‬ ‫את‬ ‫המגדירה‬ ‫פונקציה‬ ‫מחלקה‬ ‫בכל‬ ‫ונגדיר‬ ‫במידה‬ID‫רשומה‬ ‫כל‬ ‫של‬,
‫קוד‬ ‫חלקי‬ ‫בהמון‬ ‫שינוי‬ ‫יגרור‬ ‫הזיהוי‬ ‫בהגדרת‬ ‫נדרש‬ ‫שינוי‬.
‫פונקצית‬ ‫בתוך‬ ‫הזיהוי‬ ‫יצירת‬ ‫מימוש‬ ‫את‬ ‫להסתיר‬ ‫ניתן‬NewID()
‫לפונקציה‬ ‫נקרא‬ ‫לרשומה‬ ‫מספר‬ ‫שנרצה‬ ‫פעם‬ ‫בכל‬id=NewID()
‫פונקצית‬ ‫של‬ ‫שינוי‬ ‫יגרור‬ ‫הזיהוי‬ ‫בהגדרות‬ ‫נדרש‬ ‫שינוי‬ ‫כעת‬NewID()
‫בלבד‬.
29
‫לשינויים‬ ‫הצפויים‬ ‫אזורים‬ ‫זיהוי‬
‫תכנון‬ ‫של‬ ‫ביותר‬ ‫המאתגרות‬ ‫המטרות‬ ‫אחת‬ ‫היא‬ ‫שינויים‬ ‫להכיל‬ ‫היכולת‬
‫מוצלח‬ ‫תוכנה‬.
‫כזה‬ ‫באופן‬ ‫לשינויים‬ ‫הנתונים‬ ‫בתוכנה‬ ‫אזורים‬ ‫לבודד‬ ‫היא‬ ‫המטרה‬
‫התוכנה‬ ‫חלקי‬ ‫בשאר‬ ‫יפגעו‬ ‫לא‬ ‫בהם‬ ‫ששינויים‬.
‫אחת‬ ‫לפונקציה‬ ‫יוגבל‬ ‫אלו‬ ‫באזורים‬ ‫ששינוי‬ ‫נרצה‬,‫תת‬ ‫או‬ ‫אחת‬ ‫מחלקה‬
‫אחת‬ ‫מערכת‬.
‫לשינויים‬ ‫הצפויים‬ ‫אזורים‬ ‫לזיהוי‬ ‫הצעדים‬:
‫לשינוי‬ ‫סיכוי‬ ‫קיים‬ ‫בהם‬ ‫הנושאים‬ ‫זיהוי‬:‫צריך‬ ‫הדרישות‬ ‫מפרט‬
‫אפשריים‬ ‫שינויים‬ ‫של‬ ‫רשימה‬ ‫גם‬ ‫לכלול‬.
‫לשינויים‬ ‫הצפויים‬ ‫נושאים‬ ‫של‬ ‫בידוד‬:‫אלו‬ ‫נושאים‬ ‫לבודד‬ ‫יש‬
‫נפרדות‬ ‫למחלקות‬.
‫רגישות‬ ‫תהיינה‬ ‫שלא‬ ‫כזה‬ ‫באופן‬ ‫המחלקות‬ ‫בין‬ ‫הקשרים‬ ‫בניית‬
‫לשינויים‬.‫המחלקה‬ ‫של‬ ‫הפנימי‬ ‫למבנה‬ ‫מוגבל‬ ‫להיות‬ ‫צריך‬ ‫השינוי‬
‫שינוי‬ ‫ללא‬ ‫יישארו‬ ‫החיצוניים‬ ‫שהממשקים‬ ‫כך‬.
30
‫לשינויים‬ ‫הצפויים‬ ‫אזורים‬ ‫זיהוי‬-‫אפשריים‬ ‫שינויים‬
‫עסקיים‬ ‫וחוקים‬ ‫כללים‬:‫להשתנות‬ ‫יכול‬ ‫המס‬ ‫מבנה‬,‫עלולים‬ ‫השכר‬ ‫הסכמי‬
‫להשתנות‬.
‫בחומרה‬ ‫תלות‬:‫מסך‬ ‫עם‬ ‫ממשקים‬,‫מקלדת‬,‫דיסק‬.‫התלות‬ ‫את‬ ‫לבודד‬ ‫צריך‬
‫העבודה‬ ‫סביבת‬ ‫ששינוי‬ ‫כל‬ ‫לכך‬ ‫ייעודיות‬ ‫מחקות‬ ‫או‬ ‫מערכת‬ ‫בתת‬ ‫בחומרה‬
‫קל‬ ‫יהיה‬.
‫ופלט‬ ‫קלט‬ ‫אמצעי‬:‫להשתנות‬ ‫עלולים‬ ‫מהתוכנה‬ ‫המיוצאים‬ ‫קבצים‬.‫גם‬ ‫כמו‬
‫לתוכנה‬ ‫הנקלטים‬ ‫קבצים‬.
‫ולפיתוח‬ ‫לתכנון‬ ‫קשים‬ ‫אזורים‬:‫יכולים‬ ‫והם‬ ‫מאחר‬ ‫אותם‬ ‫להסתיר‬ ‫כדאי‬
‫נמוכה‬ ‫ברמה‬ ‫להיכתב‬.
‫הנתונים‬ ‫גודל‬ ‫על‬ ‫מגבלות‬:‫רצוי‬ ‫מערך‬ ‫בגודל‬ ‫שינוי‬.‫קבוע‬ ‫לשמור‬ ‫מומלץ‬
‫בקוד‬ ‫גודלו‬ ‫את‬ ‫לחשוף‬ ‫במקום‬ ‫המערך‬ ‫גודל‬ ‫את‬ ‫שיכיל‬.
31
‫רופף‬ ‫צימוד‬ ‫על‬ ‫שמירה‬
‫צימוד‬:‫פונקציה‬ ‫או‬ ‫למחלקה‬ ‫קשורה‬ ‫פונקציה‬ ‫או‬ ‫מחלקה‬ ‫שבה‬ ‫המידה‬
‫אחרת‬.
‫האפשר‬ ‫ככל‬ ‫מצומצם‬ ‫קשר‬ ‫עם‬ ‫ופונקציות‬ ‫מחלקות‬ ‫ליצור‬ ‫היא‬ ‫המטרה‬.
‫במודולים‬ ‫שפחות‬ ‫כמה‬ ‫שתלויים‬ ‫מודולים‬ ‫ליצור‬ ‫ננסה‬ ‫תוכנה‬ ‫בתכנון‬
‫אחרים‬.
‫לצימוד‬ ‫קריטריונים‬:
‫גודל‬:‫מחלקות‬ ‫בין‬ ‫הקשרים‬ ‫מספר‬.
‫ניראות‬:‫לעין‬ ‫ניכר‬ ‫המודולים‬ ‫בין‬ ‫הקשר‬ ‫בה‬ ‫המידה‬.‫מידע‬ ‫העברת‬
‫טובה‬ ‫נחשבת‬ ‫פרמטרים‬ ‫באמצעות‬.
‫גמישות‬:‫מודולים‬ ‫בין‬ ‫הקשר‬ ‫את‬ ‫לשנות‬ ‫ניתן‬ ‫בה‬ ‫המידה‬.
‫יותר‬ ‫רבה‬ ‫בקלות‬ ‫למודול‬ ‫לקרוא‬ ‫יכולים‬ ‫שמודולים‬ ‫ככל‬,‫רופף‬ ‫הצימוד‬ ‫כך‬
‫חיובי‬ ‫וזה‬ ‫יותר‬.
‫קשרים‬ ‫שפחות‬ ‫כמה‬ ‫בה‬ ‫שיהיו‬ ‫כך‬ ‫מחולקת‬ ‫תהיה‬ ‫שהמערכת‬ ‫נרצה‬. 32
‫תיכון‬ ‫תבניות‬ ‫חיפוש‬
‫תיכון‬ ‫תבניות‬:‫בעיות‬ ‫בפתרון‬ ‫לסייע‬ ‫היכולים‬ ‫מראש‬ ‫מוכנים‬ ‫פתרונות‬
‫נפוצות‬ ‫תכנון‬.
‫תיכון‬ ‫בתבניות‬ ‫בשימוש‬ ‫היתרונות‬:
‫ע‬ ‫טעויות‬ ‫מפחיתות‬"‫הבעיות‬ ‫לפתרון‬ ‫סטנדרטיות‬ ‫בדרכים‬ ‫שימוש‬ ‫י‬.
‫לבעיה‬ ‫ביותר‬ ‫הטוב‬ ‫הפיתרון‬ ‫את‬ ‫לבחון‬ ‫שניתן‬ ‫כך‬ ‫חלופות‬ ‫מציעות‬.
‫יותר‬ ‫גבוהה‬ ‫הפשטה‬ ‫רמת‬ ‫מאפשרות‬.
33
‫נוספים‬ ‫תכנון‬ ‫כלי‬
‫חזקה‬ ‫עקביות‬ ‫להשיג‬ ‫השתדל‬:‫אחד‬ ‫בנושא‬ ‫ממוקדת‬ ‫המחלקה‬ ‫כמה‬ ‫עד‬.
‫המחלקה‬ ‫הוגדרה‬ ‫שלשמה‬ ‫במטרה‬ ‫תומכות‬ ‫הפונקציות‬ ‫כל‬ ‫כמה‬ ‫ועד‬.
‫חזקה‬ ‫עקביות‬ ‫להשיג‬ ‫היא‬ ‫המטרה‬.
‫היררכיות‬ ‫בנה‬:‫מכילה‬ ‫העליונה‬ ‫הרמה‬ ‫שבו‬ ‫מידע‬ ‫של‬ ‫מבנה‬ ‫הינה‬ ‫היררכיה‬
‫יותר‬ ‫נמוכה‬ ‫שהרמה‬ ‫וככל‬ ‫רעיון‬ ‫של‬ ‫המופשט‬ ‫הייצוג‬ ‫את‬,‫מכילה‬ ‫היא‬
‫של‬ ‫יותר‬ ‫מפורטים‬ ‫ייצוגים‬‫אותו‬‫הרעיון‬.
‫מפורשים‬ ‫מחלקות‬ ‫חוזי‬ ‫צור‬:‫יכול‬ ‫מחלקה‬ ‫של‬ ‫הציבורי‬ ‫הממשק‬
‫נתונים‬ ‫לספק‬ ‫מתחייבת‬ ‫שהמחלקה‬ ‫כך‬ ‫המחלקות‬ ‫שאר‬ ‫עם‬ ‫כחוזה‬ ‫להיחשב‬
‫מסוימים‬ ‫נתונים‬ ‫ומקבלת‬ ‫מסוימים‬.
‫אחריות‬ ‫תחומי‬ ‫קביעת‬:‫לאובייקטים‬ ‫אחריות‬ ‫תחומי‬ ‫חלוקת‬.‫יהיה‬ ‫מה‬ ‫על‬
‫אובייקט‬ ‫כל‬ ‫אחראי‬.
‫בדיקות‬ ‫עבור‬ ‫תכנן‬:‫בצורה‬ ‫אותה‬ ‫לבדוק‬ ‫יהיה‬ ‫שניתן‬ ‫כך‬ ‫המערכת‬ ‫תכנון‬
‫ויעילה‬ ‫חכמה‬.
34
‫נוספים‬ ‫תכנון‬ ‫כלי‬
‫ממכשולים‬ ‫המנע‬:‫זיהוי‬ ‫שיאפשר‬ ‫כזה‬ ‫להיות‬ ‫צריך‬ ‫התוכנה‬ ‫תכנון‬
‫אפשריים‬ ‫מכשולים‬.
‫האתחול‬ ‫זמן‬ ‫את‬ ‫במודע‬ ‫בחר‬:‫ערך‬ ‫מקבל‬ ‫משתנה‬ ‫שבו‬ ‫הזמן‬ ‫הינו‬ ‫אתחול‬
‫מסוים‬.‫יהיה‬ ‫המשתנים‬ ‫של‬ ‫האתחול‬ ‫שזמן‬ ‫כך‬ ‫הפונקציות‬ ‫את‬ ‫לתכנן‬ ‫יש‬
‫המיטבי‬.
‫מרכזיות‬ ‫שליטה‬ ‫נקודות‬ ‫צור‬:‫מחלקות‬ ‫הגדרת‬,‫אפילו‬ ‫או‬ ‫פונקציות‬
‫בתוכנית‬ ‫מרכזיות‬ ‫שליטה‬ ‫נקודות‬ ‫שיהיו‬ ‫קבועים‬.
‫מתוחכמים‬ ‫לא‬ ‫פתרונות‬ ‫שקול‬:‫יותר‬ ‫יעיל‬ ‫מחוכם‬ ‫לא‬ ‫פתרון‬ ‫לעיתים‬
‫הצרכים‬ ‫על‬ ‫עונה‬ ‫שאינו‬ ‫מחוכם‬ ‫מפתרון‬.
‫דיאגראמות‬ ‫שרטוט‬:‫שווה‬ ‫תמונה‬1000‫מילים‬.
‫מודולארי‬ ‫תכנון‬ ‫על‬ ‫שמירה‬:‫ל‬ ‫ומחלקה‬ ‫פונקציה‬ ‫כל‬ ‫הפיכת‬"‫קופסא‬
‫שחורה‬"‫בפנים‬ ‫קורה‬ ‫מה‬ ‫ידוע‬ ‫לא‬ ‫אך‬ ‫ממנה‬ ‫ויוצא‬ ‫נכנס‬ ‫מה‬ ‫ידוע‬ ‫שבה‬.
35
‫שונים‬ ‫תכנון‬ ‫בעקרונות‬ ‫לשימוש‬ ‫מנחים‬ ‫קווים‬
‫מתמטיות‬ ‫בעיות‬ ‫בפתרון‬ ‫שלבים‬(POLYA)‫בעיות‬ ‫בפתרון‬ ‫גם‬ ‫היעילים‬
‫תכנותיות‬:
‫הבעיה‬ ‫הבנת‬:‫הנעלם‬ ‫מה‬?‫הנתונים‬ ‫מהם‬?‫הנתונים‬ ‫מילוי‬ ‫לאחר‬ ‫האם‬
‫הבעיה‬ ‫את‬ ‫לפתור‬ ‫ניתן‬?‫בנתונים‬ ‫סתירות‬ ‫יש‬ ‫האם‬?
‫תוכנית‬ ‫בניית‬:‫והנתונים‬ ‫הנעלם‬ ‫בין‬ ‫הקשר‬ ‫מציאת‬.‫בעיות‬ ‫מציאת‬
‫משנה‬.‫בעבר‬ ‫כזו‬ ‫בבעיה‬ ‫נתקלנו‬ ‫האם‬ ‫זיהוי‬.‫את‬ ‫לשנות‬ ‫ניתן‬ ‫האם‬
‫לפתרון‬ ‫שיביא‬ ‫באופן‬ ‫הנתונים‬ ‫או‬ ‫הנעלם‬?
‫התוכנית‬ ‫ביצוע‬:‫שלב‬ ‫כל‬ ‫בדיקת‬ ‫תוך‬ ‫התוכנית‬ ‫ביצוע‬.
‫לאחור‬ ‫הסתכל‬:‫הפתרון‬ ‫של‬ ‫בחינה‬.‫התוצאה‬ ‫את‬ ‫לאמת‬ ‫ניתן‬ ‫האם‬?
‫להיות‬ ‫לא‬ ‫חשוב‬"‫נעול‬"‫דברים‬ ‫גם‬ ‫לנסות‬ ‫אלא‬ ‫מסוימת‬ ‫תכנון‬ ‫גישת‬ ‫על‬
‫חדשים‬.
‫ונתקעים‬ ‫במידה‬,‫מהן‬ ‫אחת‬ ‫כל‬ ‫ולפתור‬ ‫בעיות‬ ‫לתתי‬ ‫הבעיה‬ ‫את‬ ‫לפרק‬ ‫ניתן‬
‫הגדולה‬ ‫הבעיה‬ ‫לפתרון‬ ‫על‬ ‫בנפרד‬. 36
‫תכנון‬ ‫נהלי‬
‫בסבבים‬ ‫תכנון‬.
‫ומשול‬ ‫הפרד‬
‫למעלה‬ ‫ומלמטה‬ ‫למטה‬ ‫מלמעלה‬ ‫תכנון‬
‫ניסיוני‬ ‫טיפוס‬ ‫אב‬
‫בתכנון‬ ‫פעולה‬ ‫שיתוף‬
37
‫תכנון‬ ‫נהלי‬-‫בסבבים‬ ‫תכנון‬
‫תכנון‬‫איטרטיבי‬.
‫בסבבים‬ ‫מתבצע‬ ‫והוא‬ ‫מחזורי‬ ‫תהליך‬ ‫הוא‬ ‫תכנון‬(‫איטרציות‬.)
‫שונות‬ ‫תכנון‬ ‫אפשרויות‬ ‫בין‬ ‫סבבים‬ ‫מבצעים‬ ‫כאשר‬,‫את‬ ‫לבחון‬ ‫אפשרות‬ ‫יש‬
‫הנמוכה‬ ‫ברמה‬ ‫והן‬ ‫הגבוהה‬ ‫ברמה‬ ‫הן‬ ‫התכנון‬.
‫הרמות‬ ‫על‬ ‫פרספקטיבה‬ ‫קבלת‬ ‫מאפשר‬ ‫הגבוהות‬ ‫הרמות‬ ‫על‬ ‫העבודה‬
‫וההיפך‬ ‫יותר‬ ‫הנמוכות‬.
‫מחזור‬ ‫בכל‬,‫חדשים‬ ‫דברים‬ ‫ולומדים‬ ‫מאחר‬ ‫יותר‬ ‫טוב‬ ‫התכנון‬.
‫את‬ ‫לפתור‬ ‫שיאפשרו‬ ‫תובנות‬ ‫יניב‬ ‫אחת‬ ‫בצורה‬ ‫הבעיה‬ ‫פתרון‬ ‫לעיתים‬
‫שונה‬ ‫בצורה‬ ‫הבעיה‬.
38
‫תכנון‬ ‫נהלי‬-‫ומשול‬ ‫הפרד‬
‫מהם‬ ‫אחד‬ ‫כל‬ ‫ולתקוף‬ ‫שונים‬ ‫עבודה‬ ‫לתחומי‬ ‫התוכנה‬ ‫את‬ ‫לפרק‬ ‫צריך‬
‫בנפרד‬.
‫אחד‬ ‫במקום‬ ‫סתום‬ ‫למבוי‬ ‫מגיעים‬ ‫אם‬,‫לבעיה‬ ‫עוקף‬ ‫פתרון‬ ‫לנסות‬ ‫יש‬.
39
‫למעלה‬ ‫ומלמטה‬ ‫למטה‬ ‫מלמעלה‬ ‫תכנון‬
‫למטה‬ ‫מלמעלה‬ ‫תכנון‬(:‫פירוק‬)‫וככל‬ ‫גבוהות‬ ‫הפשטה‬ ‫ברמות‬ ‫התחלה‬
‫יותר‬ ‫הנמוכות‬ ‫לרמות‬ ‫יורדים‬ ‫מתפתח‬ ‫שהתכנון‬.‫תתי‬ ‫הגדרת‬
‫מערכות‬,‫מפורטים‬ ‫ואלמנטים‬ ‫יורשות‬ ‫מחלקות‬ ‫זיהוי‬ ‫מכן‬ ‫ולאחר‬ ‫מחלקות‬
‫אחרים‬.
‫למעלה‬ ‫מלמטה‬ ‫תכנון‬(:‫הרכבה‬)‫לכיוון‬ ‫ועוברים‬ ‫מהפרטים‬ ‫מתחילים‬
‫הכללה‬.‫מוגדרים‬ ‫אובייקטים‬ ‫מזיהוי‬ ‫מתחילים‬,‫ואז‬ ‫כללים‬ ‫אובייקטים‬ ‫זיהוי‬
‫האלו‬ ‫האובייקטים‬ ‫מתוך‬ ‫מחלקות‬ ‫להגדרת‬.
‫השיטות‬ ‫שתי‬ ‫של‬ ‫בשילוב‬ ‫משתמשים‬ ‫בפועל‬.
40
‫ניסיוני‬ ‫טיפוס‬ ‫אב‬
‫מספר‬ ‫שיודעים‬ ‫עד‬ ‫כראוי‬ ‫יפעל‬ ‫מסוים‬ ‫תכנון‬ ‫אם‬ ‫יודעים‬ ‫לא‬ ‫לעיתים‬
‫המימוש‬ ‫על‬ ‫פרטים‬.
‫טיפוס‬ ‫אב‬ ‫בניית‬ ‫היא‬ ‫נמוכה‬ ‫בעלות‬ ‫זו‬ ‫בעיה‬ ‫לפתרון‬ ‫טכניקה‬–‫כתיבת‬
‫שלא‬ ‫וברור‬ ‫השאלה‬ ‫על‬ ‫לענות‬ ‫מנת‬ ‫על‬ ‫שנחוץ‬ ‫קוד‬ ‫של‬ ‫המינימאלי‬ ‫החלק‬
‫מכן‬ ‫לאחר‬ ‫בו‬ ‫נשתמש‬.
‫במלואה‬ ‫מפורטת‬ ‫תהיה‬ ‫שהשאלה‬ ‫מחייב‬ ‫טיפוס‬ ‫אב‬ ‫בניית‬.
41
‫בתכנון‬ ‫פעולה‬ ‫שיתוף‬
‫האחד‬ ‫מן‬ ‫השניים‬ ‫שטובים‬ ‫עיקרון‬ ‫לפי‬ ‫עובדים‬ ‫בתכנון‬.
‫באופנים‬ ‫והמפתחים‬ ‫המערכת‬ ‫מתכנני‬ ‫בין‬ ‫פעולה‬ ‫שיתוף‬ ‫ליצור‬ ‫מומלץ‬
‫הבאים‬:
‫רעיונות‬ ‫שיתוף‬.
‫הבעיה‬ ‫לפתרון‬ ‫חלופות‬ ‫של‬ ‫משותף‬ ‫שרטוט‬.
‫בזוגות‬ ‫תכנות‬.
‫התכנון‬ ‫ברעיונות‬ ‫העוסקות‬ ‫ישיבות‬.
‫ע‬ ‫המתבצעת‬ ‫העבודה‬ ‫של‬ ‫פורמאלית‬ ‫סקירה‬"‫המערכת‬ ‫מתכנן‬ ‫י‬.
‫לחברה‬ ‫מחוץ‬ ‫עמיתים‬ ‫עם‬ ‫התייעצות‬.
42
‫התכנון‬ ‫כמות‬
‫הדרושה‬
43
‫התכנון‬ ‫תיעוד‬
‫פורמאליים‬ ‫מסמכים‬ ‫באמצעות‬ ‫נעשה‬ ‫נכון‬ ‫תיעוד‬.
‫הבאים‬ ‫באמצעים‬ ‫גם‬ ‫בנוסף‬ ‫לתעד‬ ‫ניתן‬:
‫הקוד‬ ‫בתוך‬ ‫תיעוד‬:‫הקוד‬ ‫בתוך‬ ‫מרכזיות‬ ‫תכנון‬ ‫החלטות‬ ‫תיעוד‬.‫מבטיח‬
‫למפתחים‬ ‫זמין‬ ‫יהיה‬ ‫שהתיעוד‬.
WIKI:‫לערוך‬ ‫יכול‬ ‫בצוות‬ ‫אחד‬ ‫שכל‬ ‫אינטרנט‬ ‫דפי‬ ‫איסוף‬.
‫במייל‬ ‫המופצים‬ ‫סיכומים‬:‫והפצתו‬ ‫בכתב‬ ‫סיכום‬ ‫יגרור‬ ‫דיון‬ ‫כל‬ ‫סיכום‬
‫בדבר‬ ‫הנוגעים‬ ‫לכל‬ ‫במייל‬.
‫דיגיטלית‬ ‫במצלמה‬ ‫שימוש‬:‫שורטטו‬ ‫שעליו‬ ‫מחיק‬ ‫לוח‬ ‫צילום‬
‫דיאגראמות‬.
‫דיאגראמות‬ ‫יצירת‬UML:‫פרטים‬ ‫ומוסיפים‬ ‫כלליים‬ ‫בקווים‬ ‫מתחילים‬
‫התכנון‬ ‫לפירוט‬ ‫שיורדים‬ ‫ככול‬.
44

Mais conteúdo relacionado

Destaque

Winning With Leadership
Winning With LeadershipWinning With Leadership
Winning With LeadershipAndy Hanselman
 
Planning, scheduling and resource allocation
Planning, scheduling and resource allocationPlanning, scheduling and resource allocation
Planning, scheduling and resource allocationJatin Mandhyan
 
Failure is key to success
Failure is key to successFailure is key to success
Failure is key to successAli Noman
 
Basic Instructional Design Principles - A Primer
Basic Instructional Design Principles - A PrimerBasic Instructional Design Principles - A Primer
Basic Instructional Design Principles - A PrimerMike Kunkle
 
Success Through Failure
Success Through FailureSuccess Through Failure
Success Through FailureMicah Baldwin
 
Basic Supervisory Skills
Basic Supervisory SkillsBasic Supervisory Skills
Basic Supervisory Skillskimberlyrekart
 
Success versus failure
Success versus failureSuccess versus failure
Success versus failureAnamika Pundir
 
17 Ways Successful People Approach Life
17 Ways Successful People Approach Life17 Ways Successful People Approach Life
17 Ways Successful People Approach LifeBrian Downard
 
Problem Solving and Decision Making
Problem Solving and Decision MakingProblem Solving and Decision Making
Problem Solving and Decision MakingIbrahim M. Morsy
 
5 Conversation Tips to Make You More Memorable in 30 Seconds or Less
5 Conversation Tips to Make You More Memorable in 30 Seconds or Less5 Conversation Tips to Make You More Memorable in 30 Seconds or Less
5 Conversation Tips to Make You More Memorable in 30 Seconds or LessCrash Course
 
Little Book of Leadership Powerpoint
Little Book of Leadership PowerpointLittle Book of Leadership Powerpoint
Little Book of Leadership PowerpointPhil Dourado
 
The Second Little Book of Leadership
The Second Little Book of LeadershipThe Second Little Book of Leadership
The Second Little Book of LeadershipPhil Dourado
 
Presentation on leadership
Presentation on leadershipPresentation on leadership
Presentation on leadershipsd college
 

Destaque (18)

Leadership Deveopment Brochure
Leadership Deveopment BrochureLeadership Deveopment Brochure
Leadership Deveopment Brochure
 
Winning With Leadership
Winning With LeadershipWinning With Leadership
Winning With Leadership
 
Planning, scheduling and resource allocation
Planning, scheduling and resource allocationPlanning, scheduling and resource allocation
Planning, scheduling and resource allocation
 
Failure is key to success
Failure is key to successFailure is key to success
Failure is key to success
 
Team work
Team workTeam work
Team work
 
Basic Instructional Design Principles - A Primer
Basic Instructional Design Principles - A PrimerBasic Instructional Design Principles - A Primer
Basic Instructional Design Principles - A Primer
 
Success Through Failure
Success Through FailureSuccess Through Failure
Success Through Failure
 
Supervisory Skills
Supervisory SkillsSupervisory Skills
Supervisory Skills
 
Supervisor ppt
Supervisor pptSupervisor ppt
Supervisor ppt
 
Basic Supervisory Skills
Basic Supervisory SkillsBasic Supervisory Skills
Basic Supervisory Skills
 
Success versus failure
Success versus failureSuccess versus failure
Success versus failure
 
17 Ways Successful People Approach Life
17 Ways Successful People Approach Life17 Ways Successful People Approach Life
17 Ways Successful People Approach Life
 
Problem Solving and Decision Making
Problem Solving and Decision MakingProblem Solving and Decision Making
Problem Solving and Decision Making
 
Research problem
Research problemResearch problem
Research problem
 
5 Conversation Tips to Make You More Memorable in 30 Seconds or Less
5 Conversation Tips to Make You More Memorable in 30 Seconds or Less5 Conversation Tips to Make You More Memorable in 30 Seconds or Less
5 Conversation Tips to Make You More Memorable in 30 Seconds or Less
 
Little Book of Leadership Powerpoint
Little Book of Leadership PowerpointLittle Book of Leadership Powerpoint
Little Book of Leadership Powerpoint
 
The Second Little Book of Leadership
The Second Little Book of LeadershipThe Second Little Book of Leadership
The Second Little Book of Leadership
 
Presentation on leadership
Presentation on leadershipPresentation on leadership
Presentation on leadership
 

Semelhante a תיכנון נכון - שחר סעדו

Object oriented analysis and design by alberta university - Typed
Object oriented analysis and design by alberta university - TypedObject oriented analysis and design by alberta university - Typed
Object oriented analysis and design by alberta university - TypedOhad Esperansa
 
קורס מגיק למפתחים
קורס מגיק למפתחיםקורס מגיק למפתחים
קורס מגיק למפתחיםNoam_Shalem
 
Agile, XP and Scrum
Agile, XP and ScrumAgile, XP and Scrum
Agile, XP and ScrumAlon Lahav
 
Agile For Website Managers
Agile For Website ManagersAgile For Website Managers
Agile For Website ManagersUdi Salant
 
כלים לניהול פרויקטים סימפל 2016
כלים לניהול פרויקטים   סימפל 2016כלים לניהול פרויקטים   סימפל 2016
כלים לניהול פרויקטים סימפל 2016Dvir Zohar
 
איך חותכים עיצוב כמו נינג'ות בשנת 2013
איך חותכים עיצוב כמו נינג'ות בשנת 2013איך חותכים עיצוב כמו נינג'ות בשנת 2013
איך חותכים עיצוב כמו נינג'ות בשנת 2013Sagi Shrieber
 
מהי אנליזה סטטית?
מהי אנליזה סטטית?מהי אנליזה סטטית?
מהי אנליזה סטטית?TrinitySB
 
קורס אנדרואיד
קורס אנדרואידקורס אנדרואיד
קורס אנדרואידNathan Krasney
 
291210773 new-cto-architect-2015
291210773 new-cto-architect-2015291210773 new-cto-architect-2015
291210773 new-cto-architect-2015Inbalraanan
 
Scrum - The devil is in the details - Hebrew
Scrum - The devil is in the details - HebrewScrum - The devil is in the details - Hebrew
Scrum - The devil is in the details - HebrewDan-Eyal Gazit
 
5 הקורסים המובילים למתחילים בתחום הטכנולוגיה
5 הקורסים המובילים למתחילים בתחום הטכנולוגיה5 הקורסים המובילים למתחילים בתחום הטכנולוגיה
5 הקורסים המובילים למתחילים בתחום הטכנולוגיהMuhammad Waqas
 
מסמך ייזום Connection
מסמך ייזום Connectionמסמך ייזום Connection
מסמך ייזום ConnectionRoy Peled
 
Joomla structur, MVC and layout overrides
Joomla structur, MVC and layout overridesJoomla structur, MVC and layout overrides
Joomla structur, MVC and layout overridesItamar Elharar
 
Miss1 tomer fonia_ppt
Miss1 tomer fonia_pptMiss1 tomer fonia_ppt
Miss1 tomer fonia_pptTMFTMFTMF1
 
מצגת איחוד דוחות כנס אורקל 12 2011
מצגת איחוד דוחות כנס אורקל 12 2011מצגת איחוד דוחות כנס אורקל 12 2011
מצגת איחוד דוחות כנס אורקל 12 2011Ehud Lurie
 
הצגת עבודה הנדסת אנוש
הצגת עבודה   הנדסת אנושהצגת עבודה   הנדסת אנוש
הצגת עבודה הנדסת אנושtalyasadon
 

Semelhante a תיכנון נכון - שחר סעדו (20)

Object oriented analysis and design by alberta university - Typed
Object oriented analysis and design by alberta university - TypedObject oriented analysis and design by alberta university - Typed
Object oriented analysis and design by alberta university - Typed
 
magic for dev
magic for devmagic for dev
magic for dev
 
קורס מגיק למפתחים
קורס מגיק למפתחיםקורס מגיק למפתחים
קורס מגיק למפתחים
 
Agile, XP and Scrum
Agile, XP and ScrumAgile, XP and Scrum
Agile, XP and Scrum
 
Agile For Website Managers
Agile For Website ManagersAgile For Website Managers
Agile For Website Managers
 
כלים לניהול פרויקטים סימפל 2016
כלים לניהול פרויקטים   סימפל 2016כלים לניהול פרויקטים   סימפל 2016
כלים לניהול פרויקטים סימפל 2016
 
992 software management
992 software management992 software management
992 software management
 
איך חותכים עיצוב כמו נינג'ות בשנת 2013
איך חותכים עיצוב כמו נינג'ות בשנת 2013איך חותכים עיצוב כמו נינג'ות בשנת 2013
איך חותכים עיצוב כמו נינג'ות בשנת 2013
 
מהי אנליזה סטטית?
מהי אנליזה סטטית?מהי אנליזה סטטית?
מהי אנליזה סטטית?
 
קורס אנדרואיד
קורס אנדרואידקורס אנדרואיד
קורס אנדרואיד
 
291210773 new-cto-architect-2015
291210773 new-cto-architect-2015291210773 new-cto-architect-2015
291210773 new-cto-architect-2015
 
Scrum - The devil is in the details - Hebrew
Scrum - The devil is in the details - HebrewScrum - The devil is in the details - Hebrew
Scrum - The devil is in the details - Hebrew
 
5 הקורסים המובילים למתחילים בתחום הטכנולוגיה
5 הקורסים המובילים למתחילים בתחום הטכנולוגיה5 הקורסים המובילים למתחילים בתחום הטכנולוגיה
5 הקורסים המובילים למתחילים בתחום הטכנולוגיה
 
מסמך ייזום Connection
מסמך ייזום Connectionמסמך ייזום Connection
מסמך ייזום Connection
 
Joomla structur, MVC and layout overrides
Joomla structur, MVC and layout overridesJoomla structur, MVC and layout overrides
Joomla structur, MVC and layout overrides
 
Miss1 tomer fonia_ppt
Miss1 tomer fonia_pptMiss1 tomer fonia_ppt
Miss1 tomer fonia_ppt
 
מצגת איחוד דוחות כנס אורקל 12 2011
מצגת איחוד דוחות כנס אורקל 12 2011מצגת איחוד דוחות כנס אורקל 12 2011
מצגת איחוד דוחות כנס אורקל 12 2011
 
Libi
LibiLibi
Libi
 
Libi
LibiLibi
Libi
 
הצגת עבודה הנדסת אנוש
הצגת עבודה   הנדסת אנושהצגת עבודה   הנדסת אנוש
הצגת עבודה הנדסת אנוש
 

תיכנון נכון - שחר סעדו

  • 1. ‫עצמים‬ ‫מונחה‬ ‫תיכון‬ ‫שעור‬11 ‫הנכון‬ ‫התכנון‬ ‫חשיבות‬ ‫כהן‬ ‫אסתר‬ ‫שחר‬-‫סעדו‬1 ‫הספר‬ ‫על‬ ‫מבוסס‬ ‫השיעור‬Code complete‫עמי‬ ‫הוד‬ ‫בהוצאת‬ ‫תוכנה‬ ‫לפיתוח‬ ‫מעשי‬ ‫מדריך‬
  • 2. ‫איכותית‬ ‫תוכנה‬ ‫וכתיבת‬ ‫תכנון‬ ‫של‬ ‫מאפיינים‬ ‫הפיתוח‬ ‫כלי‬ ‫של‬ ‫הבנה‬. ‫התוכנה‬ ‫תכנון‬ ‫תהליך‬ ‫של‬ ‫הבנה‬. ‫המציאות‬ ‫את‬ ‫מייצג‬ ‫הקוד‬ ‫בה‬ ‫הדרך‬ ‫של‬ ‫הבנה‬. ‫והתוכנה‬ ‫הקוד‬ ‫של‬ ‫החיים‬ ‫מחזור‬ ‫הבנת‬. ‫שלו‬ ‫העתידית‬ ‫התחזוקה‬ ‫על‬ ‫משפיעה‬ ‫הקוד‬ ‫כתיבת‬ ‫בו‬ ‫האופן‬ ‫של‬ ‫הבנה‬. 2
  • 3. ‫טובה‬ ‫קוד‬ ‫כתיבת‬ ‫של‬ ‫מאפיינים‬ ‫לתחזוקה‬ ‫ונוח‬ ‫קריא‬ ‫קוד‬. ‫לעשות‬ ‫צריך‬ ‫שהוא‬ ‫מה‬ ‫את‬ ‫שעושה‬ ‫נכון‬ ‫קוד‬. ‫הזמן‬ ‫של‬ ‫נכון‬ ‫ניצול‬ ‫ישנו‬ ‫והכתיבה‬ ‫התכנון‬ ‫בתהליך‬. ‫פעולה‬ ‫ובשיתוף‬ ‫יעילה‬ ‫בצורה‬ ‫עובד‬ ‫הצוות‬. ‫להמשך‬ ‫מסקנות‬ ‫להסיק‬ ‫ומוכן‬ ‫הפיתוח‬ ‫בזמן‬ ‫שקורה‬ ‫למה‬ ‫קשוב‬ ‫הצוות‬ ‫עתידי‬ ‫ולפיתוח‬. 3
  • 4. ‫תוכנה‬ ‫תכנון‬ ‫תכנון‬ ‫עבודת‬(Design)‫התוכנה‬ ‫מכלול‬ ‫מבניית‬ ‫מהותי‬ ‫חלק‬ ‫הינה‬. ‫המחלקה‬ ‫של‬ ‫קוד‬ ‫פסאדו‬ ‫כתיבת‬ ‫להיות‬ ‫יכול‬ ‫תכנון‬. ‫הקוד‬ ‫כתיבת‬ ‫טרם‬ ‫מחלקות‬ ‫בין‬ ‫יחסים‬ ‫של‬ ‫דיאגראמות‬ ‫שרטוט‬. ‫תיכון‬ ‫תבנית‬ ‫בחירת‬(Design Pattern) ‫ע‬ ‫נקבע‬ ‫פונקציה‬ ‫או‬ ‫מחלקה‬ ‫של‬ ‫נכון‬ ‫מתכנון‬ ‫גדול‬ ‫חלק‬"‫הארכיטקטורה‬ ‫י‬ ‫המערכת‬ ‫של‬. ‫קטנים‬ ‫בפרויקטים‬,‫עצמה‬ ‫הקוד‬ ‫כתיבת‬ ‫במהלך‬ ‫נעשה‬ ‫מהתכנון‬ ‫הרבה‬. ‫יהיה‬ ‫ניתן‬ ‫שבאמצעותה‬ ‫סכימה‬ ‫פיתוח‬ ‫היא‬ ‫תוכנה‬ ‫תכנון‬ ‫של‬ ‫המשמעות‬ ‫מתפקדת‬ ‫לתוכנה‬ ‫התוכנה‬ ‫את‬ ‫המתארים‬ ‫המפרטים‬ ‫את‬ ‫להפוך‬. ‫בפועל‬ ‫הקוד‬ ‫כתיבת‬ ‫לבין‬ ‫הדרישות‬ ‫מפרט‬ ‫בין‬ ‫מקשר‬ ‫תכנון‬. 4
  • 5. ‫תוכנה‬ ‫תכנון‬ ‫אתגרי‬ ‫הוא‬ ‫התכנון‬"‫מרושעת‬ ‫בעיה‬:‫במדויק‬ ‫אותה‬ ‫להגדיר‬ ‫שכדי‬ ‫בעיה‬,‫צריך‬ ‫בחלקה‬ ‫לפחות‬ ‫או‬ ‫במלואה‬ ‫אותה‬ ‫לפתור‬.‫צריך‬ ‫כזו‬ ‫בעיה‬ ‫עם‬ ‫להתמודד‬ ‫כדי‬ ‫לפתור‬ ‫ואז‬ ‫במדויק‬ ‫אותה‬ ‫להגדיר‬ ‫מנת‬ ‫על‬ ‫אחת‬ ‫פעם‬ ‫במלואה‬ ‫אותה‬ ‫לפתור‬ ‫עובד‬ ‫פתרון‬ ‫להפיק‬ ‫כדי‬ ‫שוב‬ ‫אותה‬. ‫מבולגן‬ ‫עניין‬ ‫הוא‬ ‫התכנון‬:‫התוכנה‬ ‫תכנון‬ ‫תהליך‬ ‫של‬ ‫הסופית‬ ‫התוצאה‬ ‫מסודר‬ ‫אינו‬ ‫עצמו‬ ‫התהליך‬ ‫אבל‬ ‫מסודרים‬ ‫מסמכים‬ ‫להיות‬ ‫צריכה‬.‫גם‬ ‫יותר‬ ‫זול‬ ‫התכנון‬ ‫במהלך‬ ‫השגיאות‬ ‫וגילוי‬ ‫התכנון‬ ‫מתהליך‬ ‫חלק‬ ‫הן‬ ‫שגיאות‬ ‫התוכנה‬ ‫כתיבת‬ ‫במהלך‬ ‫שלהן‬ ‫מגילוי‬. ‫בזמן‬ ‫מוגבל‬ ‫הוא‬ ‫אך‬ ‫היקף‬ ‫מבחינת‬ ‫מוגבל‬ ‫אינו‬ ‫התכנון‬. 5
  • 6. ‫תוכנה‬ ‫תכנון‬ ‫אתגרי‬ ‫עדיפויות‬ ‫וסדרי‬ ‫חלופות‬ ‫של‬ ‫עניין‬ ‫הוא‬ ‫תכנון‬:‫עבודת‬ ‫של‬ ‫חשוב‬ ‫חלק‬ ‫האמיתי‬ ‫מהעולם‬ ‫אילוצים‬ ‫של‬ ‫והערכה‬ ‫שיקול‬ ‫הוא‬ ‫התכנון‬. ‫לצרכים‬ ‫בהתאם‬,‫המערכת‬ ‫בבניית‬ ‫שונים‬ ‫שיקולים‬ ‫יילקחו‬. ‫מגבלות‬ ‫יצירת‬ ‫כולל‬ ‫תכנון‬:‫בעיות‬ ‫פותר‬ ‫שבחלקו‬ ‫תהליך‬ ‫הוא‬ ‫תכנון‬ ‫מגבלות‬ ‫יוצר‬ ‫ובחלקו‬.‫אלו‬ ‫מגבלות‬(‫פיתוח‬ ‫זמן‬ ‫או‬ ‫משאבים‬ ‫כגון‬)‫בסופו‬ ‫המוצר‬ ‫איכות‬ ‫את‬ ‫משפרות‬ ‫דבר‬ ‫של‬. ‫דטרמיניסטי‬ ‫לא‬ ‫תהליך‬ ‫הוא‬ ‫תכנון‬:‫אותה‬ ‫לתכנן‬ ‫יכול‬ ‫מערכת‬ ‫מתכנן‬ ‫כל‬ ‫שונה‬ ‫בצורה‬. ‫ע‬ ‫שונה‬ ‫בצורה‬ ‫תתוכנן‬ ‫המערכת‬ ‫אותה‬"‫תכנון‬ ‫שכל‬ ‫כך‬ ‫אנשים‬ ‫מספר‬ ‫י‬ ‫לחלוטין‬ ‫קביל‬ ‫להיות‬ ‫עשוי‬. 6
  • 7. ‫תוכנה‬ ‫תכנון‬ ‫אתגרי‬ ‫היוריסטי‬ ‫תהליך‬ ‫הוא‬ ‫תכנון‬(‫מוחלט‬ ‫לא‬:)‫לא‬ ‫הינן‬ ‫התכנון‬ ‫שיטות‬ ‫מוחלטות‬.‫מראש‬ ‫צפויות‬ ‫תוצאות‬ ‫ולקבל‬ ‫עליו‬ ‫לחזור‬ ‫שניתן‬ ‫תהליך‬ ‫זה‬ ‫אין‬. ‫וטעייה‬ ‫ניסוי‬ ‫על‬ ‫לעיתים‬ ‫מבוסס‬ ‫התכנון‬. ‫מסוימים‬ ‫לפרויקטים‬ ‫מתאימות‬ ‫מסוימות‬ ‫שיטות‬.‫לכלל‬ ‫שמתאים‬ ‫כלי‬ ‫ואין‬ ‫הפרויקטים‬. ‫מתפתח‬ ‫תהליך‬ ‫הוא‬ ‫תכנון‬:‫ושינוי‬ ‫בחינה‬ ‫שכולל‬ ‫כתהליך‬ ‫מתפתח‬ ‫תכנון‬ ‫קודם‬ ‫תכנון‬ ‫של‬,‫דיונים‬,‫קוד‬ ‫כתיבת‬,‫הקוד‬ ‫בדיקת‬‫התוכנה‬ ‫והרצת‬. 7
  • 8. ‫תוכנה‬ ‫בתכנון‬ ‫קשיים‬ ‫סוגי‬ ‫שני‬ ‫מובנה‬ ‫קושי‬:‫הבסיסיות‬ ‫התכונות‬ ‫הינן‬ ‫תוכנה‬ ‫של‬ ‫המובנות‬ ‫התכונות‬ ‫לכלול‬ ‫חייב‬ ‫שמוצר‬.‫מנוע‬ ‫להכיל‬ ‫חייבת‬ ‫לדוגמא‬ ‫מכונית‬,‫גלגלים‬,‫שלדה‬ ‫וכדומה‬. ‫מקרי‬ ‫קושי‬:‫מסוים‬ ‫למוצר‬ ‫להשתייך‬ ‫שעשויות‬ ‫תכונות‬ ‫הן‬ ‫מקריות‬ ‫תכונות‬ ‫מסוים‬ ‫לסוג‬ ‫שייך‬ ‫היותו‬ ‫על‬ ‫משפיעות‬ ‫אינן‬ ‫הן‬ ‫אך‬.‫להיות‬ ‫יכולות‬ ‫למכונית‬ 2‫או‬ ‫דלתות‬4‫מכונית‬ ‫עדיין‬ ‫זו‬ ‫אך‬ ‫דלתות‬. 8
  • 9. ‫תוכנה‬ ‫בתכנון‬ ‫קשיים‬ ‫סוגי‬ ‫שני‬–‫מובנה‬ ‫קושי‬ ‫למערכת‬ ‫הקשורים‬ ‫הפרטים‬ ‫של‬ ‫ופענוח‬ ‫הבנה‬ ‫הינה‬ ‫תוכנה‬ ‫פיתוח‬ ‫משימת‬ ‫מרעיון‬ ‫המפותחת‬.‫ומורכבים‬ ‫בזה‬ ‫זה‬ ‫משולבים‬ ‫הפרטים‬. ‫ישויות‬ ‫בין‬ ‫גומלין‬ ‫קשרי‬ ‫בזיהוי‬ ‫קושי‬ ‫מלאה‬ ‫בצורה‬ ‫חריגים‬ ‫מקרים‬ ‫זיהוי‬. ‫לענות‬ ‫ולא‬ ‫מדויק‬ ‫להיות‬ ‫צריך‬ ‫המעוצב‬ ‫הפיתרון‬"‫בערך‬"‫הצרכים‬ ‫על‬. ‫האמיתי‬ ‫העולם‬ ‫ומתפקד‬ ‫פועל‬ ‫איך‬ ‫לנתח‬ ‫קשה‬. ‫יותר‬ ‫מורכבת‬ ‫שהבעיה‬ ‫ככל‬,‫יותר‬ ‫מורכבים‬ ‫הישויות‬ ‫בין‬ ‫הגומלין‬ ‫קשרי‬ ‫הפיתרון‬ ‫גם‬ ‫וכך‬. ‫לקושי‬ ‫פיתרון‬ ‫לנו‬ ‫שתמצא‬ ‫מובנית‬ ‫תוכנה‬ ‫או‬ ‫תכנות‬ ‫שפת‬ ‫למצוא‬ ‫ניתן‬ ‫לא‬ ‫זה‬. 9
  • 10. ‫תוכנה‬ ‫בתכנון‬ ‫קשיים‬ ‫סוגי‬ ‫שני‬–‫מקרי‬ ‫קושי‬ ‫כבר‬ ‫נפתרו‬ ‫תוכנה‬ ‫לפיתוח‬ ‫הקשורים‬ ‫המקריים‬ ‫הקשיים‬ ‫מרבית‬ (Brooks.) ‫תכנות‬ ‫בשפת‬ ‫מסורבלים‬ ‫למבנים‬ ‫קשורים‬ ‫להיות‬ ‫יכולים‬ ‫מקריים‬ ‫קשיים‬– ‫עצמים‬ ‫מונחות‬ ‫שפות‬ ‫באמצעות‬ ‫נפתרו‬. ‫המחשב‬ ‫עם‬ ‫אינטראקטיביות‬ ‫פעולות‬-‫מערכות‬ ‫התפתחות‬ ‫עם‬ ‫נפתרו‬ ‫מתקדמות‬ ‫הפעלה‬. ‫טובה‬ ‫בצורה‬ ‫כלים‬ ‫שילוב‬-‫משולבות‬ ‫פיתוח‬ ‫סביבות‬ ‫קיימות‬. ‫מערכות‬ ‫בין‬ ‫שילוב‬-‫זה‬ ‫מסוג‬ ‫בבעיות‬ ‫לטיפול‬ ‫רבות‬ ‫אפשרויות‬ ‫קיימות‬. 10
  • 11. ‫מורכבות‬ ‫תכנון‬ ‫בדרישות‬ ‫ליקויים‬ ‫בשל‬ ‫להיכשל‬ ‫עלול‬ ‫תוכנה‬ ‫פרויקט‬,‫בניהול‬ ‫או‬ ‫בתכנון‬. ‫יצאה‬ ‫והתוכנה‬ ‫הפרויקט‬ ‫מורכבות‬ ‫כאשר‬ ‫טכנית‬ ‫מבחינה‬ ‫נכשל‬ ‫פרויקט‬ ‫כ‬ ‫למורכבת‬ ‫הפכה‬ ‫והתוכנה‬ ‫משליטה‬"‫בוודאות‬ ‫לומר‬ ‫יודע‬ ‫לא‬ ‫אחד‬ ‫שאף‬ ‫כ‬ ‫פועלת‬ ‫היא‬ ‫איך‬ ‫או‬ ‫עושה‬ ‫היא‬ ‫מה‬. ‫שינוי‬ ‫של‬ ‫ההשלכות‬ ‫תהיינה‬ ‫מה‬ ‫ידוע‬ ‫לא‬ ‫שבו‬ ‫לשלב‬ ‫מגיע‬ ‫פרויקט‬ ‫כאשר‬ ‫אחרים‬ ‫מקומות‬ ‫על‬ ‫אחד‬ ‫במקום‬ ‫קוד‬,‫התקדמות‬ ‫את‬ ‫לעצור‬ ‫מומלץ‬ ‫הפרויקט‬. ‫באמצעות‬ ‫מערכת‬ ‫של‬ ‫מורכבות‬ ‫עם‬ ‫להתמודד‬ ‫ניתן‬: ‫מערכות‬ ‫לתת‬ ‫המערכת‬ ‫חלוקת‬(‫מודולריות‬.) ‫ברורה‬ ‫בצורה‬ ‫אובייקטים‬ ‫הגדרת‬. ‫קטנות‬ ‫פונקציות‬ ‫הגדרת‬. ‫שגיאות‬ ‫פחות‬ ‫מכיל‬ ‫להבנה‬ ‫יותר‬ ‫קל‬ ‫קוד‬. 11
  • 12. ‫מוצלח‬ ‫תכנון‬ ‫של‬ ‫מאפיינים‬ ‫מינימאלית‬ ‫מורכבות‬:‫להבנה‬ ‫וקלים‬ ‫פשוטים‬ ‫אלמנטים‬ ‫תכנון‬.‫התמקדות‬ ‫כולל‬ ‫פיתרון‬ ‫ליצירת‬ ‫עד‬ ‫הבעיה‬ ‫של‬ ‫בחלקים‬. ‫תחזוקה‬ ‫קלות‬:‫אחרים‬ ‫למתכנתים‬ ‫גם‬ ‫מובנת‬ ‫שתהיה‬ ‫כך‬ ‫המערכת‬ ‫תכנון‬ ‫תחזוקה‬ ‫לצורך‬. ‫רופף‬ ‫צימוד‬:‫תוכנה‬ ‫חלקי‬ ‫בין‬ ‫רופפים‬ ‫קשרים‬.‫בניהן‬ ‫שיש‬ ‫מחלקות‬ ‫תכנון‬ ‫והסתרת‬ ‫כימוס‬ ‫בעקרונות‬ ‫שימוש‬ ‫תוך‬ ‫האפשר‬ ‫ככל‬ ‫מעטים‬ ‫גומלין‬ ‫קשרי‬ ‫מידע‬. ‫להרחבה‬ ‫פתיחות‬:‫נזק‬ ‫גרימת‬ ‫או‬ ‫שינוי‬ ‫ללא‬ ‫המערכת‬ ‫של‬ ‫הרחבה‬ ‫קיימים‬ ‫למרכיבים‬.‫אחרים‬ ‫חלקים‬ ‫על‬ ‫להשפיע‬ ‫מבלי‬ ‫אחד‬ ‫חלק‬ ‫לשנות‬ ‫ניתן‬ ‫במערכת‬. ‫מחדש‬ ‫לשימוש‬ ‫פתיחות‬:‫קוד‬ ‫בחלקי‬ ‫חוזר‬ ‫שימוש‬. ‫ביחיד‬ ‫רבים‬ ‫של‬ ‫שימוש‬:‫במחלקה‬ ‫משתמשות‬ ‫מחלקות‬ ‫של‬ ‫גדול‬ ‫מספר‬ ‫נתונה‬.‫של‬ ‫הנמוכות‬ ‫ברמות‬ ‫ונמצאות‬ ‫שירות‬ ‫הנותנות‬ ‫מחלקות‬ ‫קיימות‬ ‫המערכת‬. 12
  • 13. ‫מוצלח‬ ‫תכנון‬ ‫של‬ ‫מאפיינים‬ ‫ברבים‬ ‫יחיד‬ ‫של‬ ‫שימוש‬:‫מחלקות‬ ‫של‬ ‫נמוך‬ ‫במספר‬ ‫משתמשת‬ ‫מחלקה‬ ‫אחרות‬.‫מחלקות‬ ‫של‬ ‫יותר‬ ‫גבוה‬ ‫במספר‬ ‫משתמשת‬ ‫שהמחלקה‬ ‫ככל‬,‫הדבר‬ ‫גבוהה‬ ‫מורכבות‬ ‫על‬ ‫מעיד‬. ‫ניידות‬:‫לסביבת‬ ‫אותה‬ ‫להעביר‬ ‫בקלות‬ ‫יהיה‬ ‫שניתן‬ ‫כך‬ ‫המערכת‬ ‫תכנון‬ ‫אחרת‬ ‫עבודה‬. ‫מערכת‬"‫רזה‬:"‫מיותרים‬ ‫חלקים‬ ‫ללא‬ ‫מערכת‬. ‫בשכבות‬ ‫ארגון‬:‫תמונה‬ ‫קבלת‬ ‫תוך‬ ‫מסוימת‬ ‫ברמה‬ ‫המערכת‬ ‫על‬ ‫התבוננות‬ ‫שלה‬ ‫שלמה‬.‫אחת‬ ‫ברמה‬ ‫להתמקד‬ ‫שניתן‬ ‫באופן‬ ‫המערכת‬ ‫את‬ ‫לתכנן‬ ‫צריך‬ ‫יותר‬ ‫נמוכות‬ ‫לרמות‬ ‫להיכנס‬ ‫מבלי‬ ‫שלה‬. ‫סטנדרטיות‬ ‫טכניקות‬:‫מקנה‬ ‫ומוכרות‬ ‫מקובלות‬ ‫וטכניקות‬ ‫בגישות‬ ‫שימוש‬ ‫ביטחון‬ ‫תחושת‬ ‫למתכנת‬. 13
  • 14. ‫תוכנה‬ ‫של‬ ‫תכנון‬ ‫רמות‬ ‫רמה‬1–‫מערכתי‬ ‫תכנון‬: ‫כולה‬ ‫המערכת‬ ‫תכנון‬. 14
  • 15. ‫תוכנה‬ ‫של‬ ‫תכנון‬ ‫רמות‬-‫רמה‬2–‫מערכות‬ ‫לתת‬ ‫חלוקה‬ ‫רמה‬2-‫חבילות‬ ‫או‬ ‫מערכות‬ ‫לתת‬ ‫חלוקה‬: ‫במערכת‬ ‫המרכזיות‬ ‫המערכות‬ ‫תת‬ ‫זיהוי‬. ‫ויקבע‬ ‫חבילות‬ ‫או‬ ‫מערכות‬ ‫לתת‬ ‫המערכת‬ ‫של‬ ‫חלוקה‬ ‫תבוצע‬ ‫זו‬ ‫ברמה‬ ‫המחלקות‬ ‫תתי‬ ‫בין‬ ‫הקשר‬. ‫ביניהן‬ ‫מתקשרות‬ ‫המערכות‬ ‫תת‬ ‫בו‬ ‫לאופן‬ ‫חשיבות‬ ‫יש‬.‫תתי‬ ‫כל‬ ‫אם‬ ‫המערכות‬ ‫תתי‬ ‫כל‬ ‫עם‬ ‫מתקשרות‬ ‫המערכות‬,‫לאיבוד‬ ‫הלך‬ ‫ההפרדה‬ ‫עיקרון‬. ‫המערכות‬ ‫תת‬ ‫בין‬ ‫התקשורת‬ ‫את‬ ‫להגביל‬ ‫יש‬. ‫אחרות‬ ‫מערכות‬ ‫תתי‬ ‫על‬ ‫שפחות‬ ‫כמה‬ ‫ישפיע‬ ‫מערכת‬ ‫תת‬ ‫של‬ ‫שניתוק‬ ‫נרצה‬. ‫המערכות‬ ‫תתי‬ ‫בין‬ ‫פשוטים‬ ‫קשרים‬ ‫על‬ ‫לשמור‬ ‫מומלץ‬. ‫פשוט‬ ‫קשר‬-‫שנייה‬ ‫מערכת‬ ‫בתת‬ ‫לפונקציה‬ ‫קוראת‬ ‫אחת‬ ‫מערכת‬ ‫תת‬. ‫הדוק‬ ‫קשר‬-‫אחרת‬ ‫מערכת‬ ‫תת‬ ‫של‬ ‫מחלקות‬ ‫מכילה‬ ‫אחת‬ ‫מערכת‬ ‫תת‬. ‫ביותר‬ ‫הדוק‬ ‫קשר‬-‫ממחלקות‬ ‫היורשות‬ ‫מחלקות‬ ‫מכילה‬ ‫אחת‬ ‫מערכת‬ ‫תת‬ ‫אחרת‬ ‫מערכת‬ ‫בתת‬. 15
  • 16. ‫תוכנה‬ ‫של‬ ‫תכנון‬ ‫רמות‬-‫רמה‬2–‫מערכות‬ ‫לתת‬ ‫חלוקה‬ 16
  • 17. ‫תוכנה‬ ‫של‬ ‫תכנון‬ ‫רמות‬-‫רמה‬2–‫מערכות‬ ‫לתת‬ ‫חלוקה‬ 17
  • 18. ‫תוכנה‬ ‫של‬ ‫תכנון‬ ‫רמות‬-‫רמה‬2–‫מערכות‬ ‫לתת‬ ‫חלוקה‬ ‫מעגלי‬ ‫לא‬ ‫גרף‬ ‫על‬ ‫שמירה‬ ‫הוא‬ ‫מערכות‬ ‫תתי‬ ‫בתכנון‬ ‫מוצלח‬ ‫עיקרון‬.‫צריך‬ ‫מחלקה‬ ‫בו‬ ‫ממצב‬ ‫להימנע‬A‫במחלקה‬ ‫משתמשת‬B,‫מחלקה‬B‫משתמשת‬ ‫במחלקה‬C‫ומחלקה‬C‫במחלקה‬ ‫משתמשת‬A. ‫נפוצות‬ ‫מחלקות‬ ‫תתי‬: ‫עסקיים‬ ‫כללים‬:‫החוקים‬,‫לתוכנה‬ ‫הקשורים‬ ‫והתקנות‬ ‫המדיניות‬ ‫המפותחת‬. ‫משתמש‬ ‫ממשק‬:‫גרפי‬ ‫ממשק‬,‫פקודה‬ ‫שורות‬,‫תפריטים‬,‫חלונות‬, ‫וכדומה‬ ‫עזרה‬ ‫מערכת‬. ‫הנתונים‬ ‫לבסיס‬ ‫גישה‬:‫לבסיס‬ ‫הגישה‬ ‫של‬ ‫המימוש‬ ‫הסתרת‬ ‫בלבד‬ ‫המידע‬ ‫בניהול‬ ‫לטפל‬ ‫יוכלו‬ ‫שהמחלקות‬ ‫כך‬ ‫הנתונים‬. ‫הפעלה‬ ‫במערכת‬ ‫תלות‬:‫הפעלה‬ ‫מערכת‬ ‫של‬ ‫לפונקציות‬ ‫הקריאות‬ ‫נפרדת‬ ‫מערכת‬ ‫בתת‬ ‫מבוצעות‬.‫גמישות‬ ‫היא‬ ‫לכך‬ ‫העיקרית‬ ‫הסיבה‬ ‫שונות‬ ‫בסביבות‬ ‫לעבודה‬ ‫התוכנה‬ ‫בהעברת‬. 18
  • 19. ‫תוכנה‬ ‫של‬ ‫תכנון‬ ‫רמות‬-‫רמה‬3-‫למחלקות‬ ‫חלוקה‬ ‫במערכת‬ ‫המחלקות‬ ‫כל‬ ‫של‬ ‫זיהוי‬. ‫לדוגמא‬:‫כגון‬ ‫למחלקות‬ ‫תחולק‬ ‫נתונים‬ ‫לבסיס‬ ‫גישה‬ ‫של‬ ‫מערכת‬ ‫תת‬ ‫נתונים‬ ‫לבסיס‬ ‫גישה‬ ‫מחלקת‬,‫נתונים‬ ‫שמירת‬ ‫מחלקת‬,‫של‬ ‫להגדרה‬ ‫מחלקות‬ ‫הנתונים‬ ‫מבנה‬. ‫האחרים‬ ‫התוכנה‬ ‫לחלקי‬ ‫המחלקה‬ ‫בין‬ ‫הגומלין‬ ‫יחסי‬ ‫קביעת‬. ‫מחלקות‬ ‫בין‬ ‫הממשק‬ ‫קביעת‬. ‫שתאפשר‬ ‫כזו‬ ‫ברמה‬ ‫פורקו‬ ‫המערכות‬ ‫תת‬ ‫שכל‬ ‫לוודא‬ ‫נרצה‬ ‫זו‬ ‫ברמה‬ ‫למחלקות‬ ‫שלהן‬ ‫מימוש‬. ‫ואובייקט‬ ‫מחלקה‬ ‫בין‬ ‫ההבדל‬ ‫הוא‬ ‫עצמים‬ ‫מונחה‬ ‫בתכנות‬ ‫מפתח‬ ‫עיקרון‬: ‫היא‬ ‫והמחלקה‬ ‫ריצה‬ ‫בזמן‬ ‫בתוכנית‬ ‫שקיימת‬ ‫מוגדרת‬ ‫ישות‬ ‫הוא‬ ‫אובייקט‬ ‫בקוד‬ ‫שמופיע‬ ‫הסטטי‬ ‫הדבר‬.‫בזמן‬ ‫המחלקה‬ ‫של‬ ‫המופע‬ ‫הוא‬ ‫האובייקט‬ ‫ריצה‬. 19
  • 20. ‫תוכנה‬ ‫של‬ ‫תכנון‬ ‫רמות‬-‫רמה‬4-‫לפונקציות‬ ‫חלוקה‬ ‫לפונקציות‬ ‫המחלקות‬ ‫כל‬ ‫של‬ ‫חלוקה‬. ‫מהפונקציות‬ ‫בחלק‬ ‫יוכל‬ ‫שלוש‬ ‫מרמה‬ ‫המחלקה‬ ‫של‬ ‫הממשק‬. ‫פשוטות‬ ‫הן‬ ‫מהפונקציות‬ ‫חלק‬. ‫לפונקציות‬ ‫היררכיות‬ ‫קריאות‬ ‫וכוללות‬ ‫מורכבות‬ ‫הן‬ ‫מהפונקציות‬ ‫חלק‬ ‫נוסף‬ ‫תכנון‬ ‫ומחייבות‬ ‫אחרות‬. ‫לשינויים‬ ‫ולעיתים‬ ‫המחלקה‬ ‫ממשק‬ ‫להבנת‬ ‫תורם‬ ‫הפונקציות‬ ‫הגדרת‬ ‫תהליך‬ ‫ברמה‬3. ‫להתבצע‬ ‫חייבת‬ ‫היא‬ ‫אך‬ ‫פורמאלית‬ ‫בצורה‬ ‫מתוכננת‬ ‫אינה‬ ‫זו‬ ‫רמה‬ ‫לעיתים‬ ‫ותכנונית‬ ‫מחשבתית‬ ‫מבחינה‬ ‫לפחות‬. ‫בד‬"‫ע‬ ‫מטופלת‬ ‫זו‬ ‫רמה‬ ‫כ‬"‫עצמו‬ ‫המתכנת‬ ‫י‬. 20
  • 21. ‫תוכנה‬ ‫של‬ ‫תכנון‬ ‫רמות‬-‫רמה‬5-‫הפונקציות‬ ‫בתוך‬ ‫תכנון‬ ‫הבודדת‬ ‫הפונקציה‬ ‫של‬ ‫הפונקציונאליות‬ ‫תכנון‬. ‫בד‬ ‫מבוצע‬"‫ע‬ ‫כ‬"‫הפונקציה‬ ‫לכתיבת‬ ‫האחראי‬ ‫המתכנת‬ ‫י‬. ‫כולל‬ ‫התכנון‬: ‫קוד‬ ‫פסאדו‬ ‫כתיבת‬. ‫מתאים‬ ‫אלגוריתם‬ ‫חיפוש‬. ‫הקוד‬ ‫פסקאות‬ ‫ארגון‬. ‫עצמו‬ ‫הקוד‬ ‫כתיבת‬. 21
  • 22. ‫התכנון‬ ‫של‬ ‫הבניין‬ ‫אבני‬ ‫הגדרת‬‫אובייקטים‬ ‫התכנון‬ ‫על‬ ‫חזרה‬. ‫אחידה‬ ‫הפשטה‬ ‫רמת‬ ‫המימוש‬ ‫פרטי‬ ‫של‬ ‫כימוס‬ ‫בהורשה‬ ‫שימוש‬ ‫מידע‬ ‫הסתרת‬ ‫לשינויים‬ ‫הצפויים‬ ‫אזורים‬ ‫זיהוי‬ ‫רופף‬ ‫צימוד‬ ‫תיכון‬ ‫תבניות‬ 22
  • 23. ‫אובייקטים‬ ‫תכנון‬ ‫באמצעות‬ ‫שנצברו‬ ‫בכלים‬ ‫שימוש‬ ‫ולכן‬ ‫דטרמיניסטי‬ ‫לא‬ ‫תהליך‬ ‫הוא‬ ‫תכנון‬ ‫מוצלח‬ ‫תוכנה‬ ‫מתכנון‬ ‫חלק‬ ‫הוא‬ ‫ניסיון‬. ‫מלאכותיים‬ ‫ואובייקטים‬ ‫הממשי‬ ‫מהעולם‬ ‫אובייקטים‬ ‫איתור‬: ‫שלהם‬ ‫והתכונות‬ ‫אובייקטים‬ ‫זיהוי‬. ‫אובייקט‬ ‫כל‬ ‫על‬ ‫לבצע‬ ‫שניתן‬ ‫הפעולות‬ ‫קביעת‬. ‫אחרים‬ ‫לאובייקטים‬ ‫לעשות‬ ‫רשאי‬ ‫אובייקט‬ ‫כל‬ ‫מה‬ ‫קביעה‬–‫בד‬"‫כ‬ ‫ירושה‬ ‫או‬ ‫הכלה‬. ‫באובייקט‬ ‫החשופים‬ ‫החלקים‬ ‫קביעת‬-‫ופונקציות‬ ‫מאפיינים‬. ‫אובייקט‬ ‫כל‬ ‫של‬ ‫הממשק‬ ‫הגדרת‬-‫שהאובייקט‬ ‫והפונקציות‬ ‫הנתונים‬ ‫לעולם‬ ‫חושף‬. 23
  • 24. ‫התכנון‬ ‫על‬ ‫חזרה‬ ‫על‬ ‫הגבוהות‬ ‫התכנון‬ ‫רמות‬ ‫על‬ ‫חזרה‬ ‫לבצע‬ ‫יש‬ ‫המערכת‬ ‫של‬ ‫התכנון‬ ‫בסיום‬ ‫המחלקות‬ ‫את‬ ‫יותר‬ ‫טוב‬ ‫באופן‬ ‫לארגן‬ ‫מנת‬. ‫המפורטת‬ ‫התכנון‬ ‫לרמת‬ ‫עד‬ ‫מהמחלקות‬ ‫אחת‬ ‫כל‬ ‫של‬ ‫התכנון‬ ‫על‬ ‫לחזור‬ ‫יש‬ ‫ביותר‬. ‫תהליך‬ ‫הינו‬ ‫התכנון‬ ‫על‬ ‫החזרה‬ ‫תהליך‬‫איטרטיבי‬. 24
  • 25. ‫אחידה‬ ‫הפשטה‬ ‫רמת‬ ‫הפשטה‬:‫מהפרטים‬ ‫מחלק‬ ‫התעלמות‬ ‫תוך‬ ‫מסוים‬ ‫בתחום‬ ‫לטפל‬ ‫היכולת‬. ‫ולהתעלם‬ ‫בו‬ ‫להתמקד‬ ‫לך‬ ‫שמאפשר‬ ‫ממשק‬ ‫הוא‬ ‫מחלקה‬ ‫של‬ ‫טוב‬ ‫ממשק‬ ‫עצמה‬ ‫המחלקה‬ ‫ממומשת‬ ‫בו‬ ‫מהאופן‬. ‫רלוונטיים‬ ‫לא‬ ‫מפרטים‬ ‫התעלמות‬ ‫מאפשרת‬ ‫ההפשטה‬. ‫שלה‬ ‫המרכיבים‬ ‫של‬ ‫הפשטה‬ ‫היא‬ ‫מכונית‬:‫מנוע‬,‫שלדה‬,‫מושבים‬,‫פנסים‬, ‫גלגלים‬‫וכו‬'. 25
  • 26. ‫המימוש‬ ‫פרטי‬ ‫של‬ ‫כימוס‬ ‫כימוס‬:‫הסתרה‬. ‫הפרטים‬ ‫מורכבות‬ ‫את‬ ‫מסתיר‬ ‫שהוא‬ ‫בכך‬ ‫מורכבות‬ ‫בניהול‬ ‫עוזר‬. ‫רשאי‬ ‫ואינך‬ ‫מורכב‬ ‫משהו‬ ‫על‬ ‫פשוט‬ ‫מבט‬ ‫לקבל‬ ‫יכול‬ ‫שאתה‬ ‫פירושו‬ ‫כימוס‬ ‫המוסתרים‬ ‫בפרטים‬ ‫להתבונן‬. ‫מקבל‬ ‫שאתה‬ ‫מה‬ ‫הוא‬ ‫רואה‬ ‫שאתה‬ ‫מה‬. 26
  • 27. ‫התכנון‬ ‫פישוט‬ ‫לצורך‬ ‫בהורשה‬ ‫שימוש‬ ‫מסוימות‬ ‫תכונות‬ ‫למעט‬ ‫דומים‬ ‫אובייקטים‬ ‫קיימים‬ ‫תוכנה‬ ‫במערכת‬. ‫הורשה‬:‫להוסיף‬ ‫שניתן‬ ‫כך‬ ‫אחרת‬ ‫ממחלקה‬ ‫יורשת‬ ‫מסוימת‬ ‫מחלקה‬ ‫היורשת‬ ‫למחלקה‬ ‫מאפיינים‬. ‫ההפשטה‬ ‫בעיקרון‬ ‫תומכת‬ ‫ירושה‬. 27
  • 28. ‫מידע‬ ‫הסתרת‬ ‫מידע‬ ‫הסתרת‬:‫עצמים‬ ‫מונחה‬ ‫ותכנות‬ ‫מובנה‬ ‫תכנון‬ ‫של‬ ‫מהבסיס‬ ‫חלק‬. ‫התוכנה‬ ‫חלקי‬ ‫מפני‬ ‫אחד‬ ‫חלק‬ ‫של‬ ‫ומימוש‬ ‫תכנון‬ ‫החלטות‬ ‫מסתיר‬ ‫המתכנת‬ ‫האחרים‬. ‫התוכנה‬ ‫של‬ ‫המורכבות‬ ‫בהסתרת‬ ‫עוזרת‬ ‫מידע‬ ‫הסתרת‬. ‫ע‬ ‫מאופיינת‬ ‫מחלקה‬ ‫כל‬"‫אחרות‬ ‫ממחלקות‬ ‫מסתירה‬ ‫שהיא‬ ‫הפרטים‬ ‫י‬ ‫בתוכנה‬. ‫מנת‬ ‫על‬ ‫אותם‬ ‫לבודד‬ ‫צורך‬ ‫שיש‬ ‫קוד‬ ‫וחלקי‬ ‫רגישים‬ ‫קוד‬ ‫חלקי‬ ‫נסתיר‬ ‫האחרים‬ ‫התוכנה‬ ‫בחלקי‬ ‫תפגע‬ ‫לא‬ ‫בהם‬ ‫שטעות‬. ‫מתנהלים‬ ‫שבה‬ ‫הצורה‬ ‫על‬ ‫שפחות‬ ‫כמה‬ ‫לחשוף‬ ‫צריך‬ ‫המחלקה‬ ‫ממשק‬ ‫המחלקה‬ ‫בתוך‬ ‫דברים‬. 28
  • 29. ‫מידע‬ ‫להסתרת‬ ‫דוגמא‬ ‫לרשומה‬ ‫ייחודי‬ ‫מזהה‬ ‫יצירת‬. ‫ה‬ ‫את‬ ‫המגדירה‬ ‫פונקציה‬ ‫מחלקה‬ ‫בכל‬ ‫ונגדיר‬ ‫במידה‬ID‫רשומה‬ ‫כל‬ ‫של‬, ‫קוד‬ ‫חלקי‬ ‫בהמון‬ ‫שינוי‬ ‫יגרור‬ ‫הזיהוי‬ ‫בהגדרת‬ ‫נדרש‬ ‫שינוי‬. ‫פונקצית‬ ‫בתוך‬ ‫הזיהוי‬ ‫יצירת‬ ‫מימוש‬ ‫את‬ ‫להסתיר‬ ‫ניתן‬NewID() ‫לפונקציה‬ ‫נקרא‬ ‫לרשומה‬ ‫מספר‬ ‫שנרצה‬ ‫פעם‬ ‫בכל‬id=NewID() ‫פונקצית‬ ‫של‬ ‫שינוי‬ ‫יגרור‬ ‫הזיהוי‬ ‫בהגדרות‬ ‫נדרש‬ ‫שינוי‬ ‫כעת‬NewID() ‫בלבד‬. 29
  • 30. ‫לשינויים‬ ‫הצפויים‬ ‫אזורים‬ ‫זיהוי‬ ‫תכנון‬ ‫של‬ ‫ביותר‬ ‫המאתגרות‬ ‫המטרות‬ ‫אחת‬ ‫היא‬ ‫שינויים‬ ‫להכיל‬ ‫היכולת‬ ‫מוצלח‬ ‫תוכנה‬. ‫כזה‬ ‫באופן‬ ‫לשינויים‬ ‫הנתונים‬ ‫בתוכנה‬ ‫אזורים‬ ‫לבודד‬ ‫היא‬ ‫המטרה‬ ‫התוכנה‬ ‫חלקי‬ ‫בשאר‬ ‫יפגעו‬ ‫לא‬ ‫בהם‬ ‫ששינויים‬. ‫אחת‬ ‫לפונקציה‬ ‫יוגבל‬ ‫אלו‬ ‫באזורים‬ ‫ששינוי‬ ‫נרצה‬,‫תת‬ ‫או‬ ‫אחת‬ ‫מחלקה‬ ‫אחת‬ ‫מערכת‬. ‫לשינויים‬ ‫הצפויים‬ ‫אזורים‬ ‫לזיהוי‬ ‫הצעדים‬: ‫לשינוי‬ ‫סיכוי‬ ‫קיים‬ ‫בהם‬ ‫הנושאים‬ ‫זיהוי‬:‫צריך‬ ‫הדרישות‬ ‫מפרט‬ ‫אפשריים‬ ‫שינויים‬ ‫של‬ ‫רשימה‬ ‫גם‬ ‫לכלול‬. ‫לשינויים‬ ‫הצפויים‬ ‫נושאים‬ ‫של‬ ‫בידוד‬:‫אלו‬ ‫נושאים‬ ‫לבודד‬ ‫יש‬ ‫נפרדות‬ ‫למחלקות‬. ‫רגישות‬ ‫תהיינה‬ ‫שלא‬ ‫כזה‬ ‫באופן‬ ‫המחלקות‬ ‫בין‬ ‫הקשרים‬ ‫בניית‬ ‫לשינויים‬.‫המחלקה‬ ‫של‬ ‫הפנימי‬ ‫למבנה‬ ‫מוגבל‬ ‫להיות‬ ‫צריך‬ ‫השינוי‬ ‫שינוי‬ ‫ללא‬ ‫יישארו‬ ‫החיצוניים‬ ‫שהממשקים‬ ‫כך‬. 30
  • 31. ‫לשינויים‬ ‫הצפויים‬ ‫אזורים‬ ‫זיהוי‬-‫אפשריים‬ ‫שינויים‬ ‫עסקיים‬ ‫וחוקים‬ ‫כללים‬:‫להשתנות‬ ‫יכול‬ ‫המס‬ ‫מבנה‬,‫עלולים‬ ‫השכר‬ ‫הסכמי‬ ‫להשתנות‬. ‫בחומרה‬ ‫תלות‬:‫מסך‬ ‫עם‬ ‫ממשקים‬,‫מקלדת‬,‫דיסק‬.‫התלות‬ ‫את‬ ‫לבודד‬ ‫צריך‬ ‫העבודה‬ ‫סביבת‬ ‫ששינוי‬ ‫כל‬ ‫לכך‬ ‫ייעודיות‬ ‫מחקות‬ ‫או‬ ‫מערכת‬ ‫בתת‬ ‫בחומרה‬ ‫קל‬ ‫יהיה‬. ‫ופלט‬ ‫קלט‬ ‫אמצעי‬:‫להשתנות‬ ‫עלולים‬ ‫מהתוכנה‬ ‫המיוצאים‬ ‫קבצים‬.‫גם‬ ‫כמו‬ ‫לתוכנה‬ ‫הנקלטים‬ ‫קבצים‬. ‫ולפיתוח‬ ‫לתכנון‬ ‫קשים‬ ‫אזורים‬:‫יכולים‬ ‫והם‬ ‫מאחר‬ ‫אותם‬ ‫להסתיר‬ ‫כדאי‬ ‫נמוכה‬ ‫ברמה‬ ‫להיכתב‬. ‫הנתונים‬ ‫גודל‬ ‫על‬ ‫מגבלות‬:‫רצוי‬ ‫מערך‬ ‫בגודל‬ ‫שינוי‬.‫קבוע‬ ‫לשמור‬ ‫מומלץ‬ ‫בקוד‬ ‫גודלו‬ ‫את‬ ‫לחשוף‬ ‫במקום‬ ‫המערך‬ ‫גודל‬ ‫את‬ ‫שיכיל‬. 31
  • 32. ‫רופף‬ ‫צימוד‬ ‫על‬ ‫שמירה‬ ‫צימוד‬:‫פונקציה‬ ‫או‬ ‫למחלקה‬ ‫קשורה‬ ‫פונקציה‬ ‫או‬ ‫מחלקה‬ ‫שבה‬ ‫המידה‬ ‫אחרת‬. ‫האפשר‬ ‫ככל‬ ‫מצומצם‬ ‫קשר‬ ‫עם‬ ‫ופונקציות‬ ‫מחלקות‬ ‫ליצור‬ ‫היא‬ ‫המטרה‬. ‫במודולים‬ ‫שפחות‬ ‫כמה‬ ‫שתלויים‬ ‫מודולים‬ ‫ליצור‬ ‫ננסה‬ ‫תוכנה‬ ‫בתכנון‬ ‫אחרים‬. ‫לצימוד‬ ‫קריטריונים‬: ‫גודל‬:‫מחלקות‬ ‫בין‬ ‫הקשרים‬ ‫מספר‬. ‫ניראות‬:‫לעין‬ ‫ניכר‬ ‫המודולים‬ ‫בין‬ ‫הקשר‬ ‫בה‬ ‫המידה‬.‫מידע‬ ‫העברת‬ ‫טובה‬ ‫נחשבת‬ ‫פרמטרים‬ ‫באמצעות‬. ‫גמישות‬:‫מודולים‬ ‫בין‬ ‫הקשר‬ ‫את‬ ‫לשנות‬ ‫ניתן‬ ‫בה‬ ‫המידה‬. ‫יותר‬ ‫רבה‬ ‫בקלות‬ ‫למודול‬ ‫לקרוא‬ ‫יכולים‬ ‫שמודולים‬ ‫ככל‬,‫רופף‬ ‫הצימוד‬ ‫כך‬ ‫חיובי‬ ‫וזה‬ ‫יותר‬. ‫קשרים‬ ‫שפחות‬ ‫כמה‬ ‫בה‬ ‫שיהיו‬ ‫כך‬ ‫מחולקת‬ ‫תהיה‬ ‫שהמערכת‬ ‫נרצה‬. 32
  • 33. ‫תיכון‬ ‫תבניות‬ ‫חיפוש‬ ‫תיכון‬ ‫תבניות‬:‫בעיות‬ ‫בפתרון‬ ‫לסייע‬ ‫היכולים‬ ‫מראש‬ ‫מוכנים‬ ‫פתרונות‬ ‫נפוצות‬ ‫תכנון‬. ‫תיכון‬ ‫בתבניות‬ ‫בשימוש‬ ‫היתרונות‬: ‫ע‬ ‫טעויות‬ ‫מפחיתות‬"‫הבעיות‬ ‫לפתרון‬ ‫סטנדרטיות‬ ‫בדרכים‬ ‫שימוש‬ ‫י‬. ‫לבעיה‬ ‫ביותר‬ ‫הטוב‬ ‫הפיתרון‬ ‫את‬ ‫לבחון‬ ‫שניתן‬ ‫כך‬ ‫חלופות‬ ‫מציעות‬. ‫יותר‬ ‫גבוהה‬ ‫הפשטה‬ ‫רמת‬ ‫מאפשרות‬. 33
  • 34. ‫נוספים‬ ‫תכנון‬ ‫כלי‬ ‫חזקה‬ ‫עקביות‬ ‫להשיג‬ ‫השתדל‬:‫אחד‬ ‫בנושא‬ ‫ממוקדת‬ ‫המחלקה‬ ‫כמה‬ ‫עד‬. ‫המחלקה‬ ‫הוגדרה‬ ‫שלשמה‬ ‫במטרה‬ ‫תומכות‬ ‫הפונקציות‬ ‫כל‬ ‫כמה‬ ‫ועד‬. ‫חזקה‬ ‫עקביות‬ ‫להשיג‬ ‫היא‬ ‫המטרה‬. ‫היררכיות‬ ‫בנה‬:‫מכילה‬ ‫העליונה‬ ‫הרמה‬ ‫שבו‬ ‫מידע‬ ‫של‬ ‫מבנה‬ ‫הינה‬ ‫היררכיה‬ ‫יותר‬ ‫נמוכה‬ ‫שהרמה‬ ‫וככל‬ ‫רעיון‬ ‫של‬ ‫המופשט‬ ‫הייצוג‬ ‫את‬,‫מכילה‬ ‫היא‬ ‫של‬ ‫יותר‬ ‫מפורטים‬ ‫ייצוגים‬‫אותו‬‫הרעיון‬. ‫מפורשים‬ ‫מחלקות‬ ‫חוזי‬ ‫צור‬:‫יכול‬ ‫מחלקה‬ ‫של‬ ‫הציבורי‬ ‫הממשק‬ ‫נתונים‬ ‫לספק‬ ‫מתחייבת‬ ‫שהמחלקה‬ ‫כך‬ ‫המחלקות‬ ‫שאר‬ ‫עם‬ ‫כחוזה‬ ‫להיחשב‬ ‫מסוימים‬ ‫נתונים‬ ‫ומקבלת‬ ‫מסוימים‬. ‫אחריות‬ ‫תחומי‬ ‫קביעת‬:‫לאובייקטים‬ ‫אחריות‬ ‫תחומי‬ ‫חלוקת‬.‫יהיה‬ ‫מה‬ ‫על‬ ‫אובייקט‬ ‫כל‬ ‫אחראי‬. ‫בדיקות‬ ‫עבור‬ ‫תכנן‬:‫בצורה‬ ‫אותה‬ ‫לבדוק‬ ‫יהיה‬ ‫שניתן‬ ‫כך‬ ‫המערכת‬ ‫תכנון‬ ‫ויעילה‬ ‫חכמה‬. 34
  • 35. ‫נוספים‬ ‫תכנון‬ ‫כלי‬ ‫ממכשולים‬ ‫המנע‬:‫זיהוי‬ ‫שיאפשר‬ ‫כזה‬ ‫להיות‬ ‫צריך‬ ‫התוכנה‬ ‫תכנון‬ ‫אפשריים‬ ‫מכשולים‬. ‫האתחול‬ ‫זמן‬ ‫את‬ ‫במודע‬ ‫בחר‬:‫ערך‬ ‫מקבל‬ ‫משתנה‬ ‫שבו‬ ‫הזמן‬ ‫הינו‬ ‫אתחול‬ ‫מסוים‬.‫יהיה‬ ‫המשתנים‬ ‫של‬ ‫האתחול‬ ‫שזמן‬ ‫כך‬ ‫הפונקציות‬ ‫את‬ ‫לתכנן‬ ‫יש‬ ‫המיטבי‬. ‫מרכזיות‬ ‫שליטה‬ ‫נקודות‬ ‫צור‬:‫מחלקות‬ ‫הגדרת‬,‫אפילו‬ ‫או‬ ‫פונקציות‬ ‫בתוכנית‬ ‫מרכזיות‬ ‫שליטה‬ ‫נקודות‬ ‫שיהיו‬ ‫קבועים‬. ‫מתוחכמים‬ ‫לא‬ ‫פתרונות‬ ‫שקול‬:‫יותר‬ ‫יעיל‬ ‫מחוכם‬ ‫לא‬ ‫פתרון‬ ‫לעיתים‬ ‫הצרכים‬ ‫על‬ ‫עונה‬ ‫שאינו‬ ‫מחוכם‬ ‫מפתרון‬. ‫דיאגראמות‬ ‫שרטוט‬:‫שווה‬ ‫תמונה‬1000‫מילים‬. ‫מודולארי‬ ‫תכנון‬ ‫על‬ ‫שמירה‬:‫ל‬ ‫ומחלקה‬ ‫פונקציה‬ ‫כל‬ ‫הפיכת‬"‫קופסא‬ ‫שחורה‬"‫בפנים‬ ‫קורה‬ ‫מה‬ ‫ידוע‬ ‫לא‬ ‫אך‬ ‫ממנה‬ ‫ויוצא‬ ‫נכנס‬ ‫מה‬ ‫ידוע‬ ‫שבה‬. 35
  • 36. ‫שונים‬ ‫תכנון‬ ‫בעקרונות‬ ‫לשימוש‬ ‫מנחים‬ ‫קווים‬ ‫מתמטיות‬ ‫בעיות‬ ‫בפתרון‬ ‫שלבים‬(POLYA)‫בעיות‬ ‫בפתרון‬ ‫גם‬ ‫היעילים‬ ‫תכנותיות‬: ‫הבעיה‬ ‫הבנת‬:‫הנעלם‬ ‫מה‬?‫הנתונים‬ ‫מהם‬?‫הנתונים‬ ‫מילוי‬ ‫לאחר‬ ‫האם‬ ‫הבעיה‬ ‫את‬ ‫לפתור‬ ‫ניתן‬?‫בנתונים‬ ‫סתירות‬ ‫יש‬ ‫האם‬? ‫תוכנית‬ ‫בניית‬:‫והנתונים‬ ‫הנעלם‬ ‫בין‬ ‫הקשר‬ ‫מציאת‬.‫בעיות‬ ‫מציאת‬ ‫משנה‬.‫בעבר‬ ‫כזו‬ ‫בבעיה‬ ‫נתקלנו‬ ‫האם‬ ‫זיהוי‬.‫את‬ ‫לשנות‬ ‫ניתן‬ ‫האם‬ ‫לפתרון‬ ‫שיביא‬ ‫באופן‬ ‫הנתונים‬ ‫או‬ ‫הנעלם‬? ‫התוכנית‬ ‫ביצוע‬:‫שלב‬ ‫כל‬ ‫בדיקת‬ ‫תוך‬ ‫התוכנית‬ ‫ביצוע‬. ‫לאחור‬ ‫הסתכל‬:‫הפתרון‬ ‫של‬ ‫בחינה‬.‫התוצאה‬ ‫את‬ ‫לאמת‬ ‫ניתן‬ ‫האם‬? ‫להיות‬ ‫לא‬ ‫חשוב‬"‫נעול‬"‫דברים‬ ‫גם‬ ‫לנסות‬ ‫אלא‬ ‫מסוימת‬ ‫תכנון‬ ‫גישת‬ ‫על‬ ‫חדשים‬. ‫ונתקעים‬ ‫במידה‬,‫מהן‬ ‫אחת‬ ‫כל‬ ‫ולפתור‬ ‫בעיות‬ ‫לתתי‬ ‫הבעיה‬ ‫את‬ ‫לפרק‬ ‫ניתן‬ ‫הגדולה‬ ‫הבעיה‬ ‫לפתרון‬ ‫על‬ ‫בנפרד‬. 36
  • 37. ‫תכנון‬ ‫נהלי‬ ‫בסבבים‬ ‫תכנון‬. ‫ומשול‬ ‫הפרד‬ ‫למעלה‬ ‫ומלמטה‬ ‫למטה‬ ‫מלמעלה‬ ‫תכנון‬ ‫ניסיוני‬ ‫טיפוס‬ ‫אב‬ ‫בתכנון‬ ‫פעולה‬ ‫שיתוף‬ 37
  • 38. ‫תכנון‬ ‫נהלי‬-‫בסבבים‬ ‫תכנון‬ ‫תכנון‬‫איטרטיבי‬. ‫בסבבים‬ ‫מתבצע‬ ‫והוא‬ ‫מחזורי‬ ‫תהליך‬ ‫הוא‬ ‫תכנון‬(‫איטרציות‬.) ‫שונות‬ ‫תכנון‬ ‫אפשרויות‬ ‫בין‬ ‫סבבים‬ ‫מבצעים‬ ‫כאשר‬,‫את‬ ‫לבחון‬ ‫אפשרות‬ ‫יש‬ ‫הנמוכה‬ ‫ברמה‬ ‫והן‬ ‫הגבוהה‬ ‫ברמה‬ ‫הן‬ ‫התכנון‬. ‫הרמות‬ ‫על‬ ‫פרספקטיבה‬ ‫קבלת‬ ‫מאפשר‬ ‫הגבוהות‬ ‫הרמות‬ ‫על‬ ‫העבודה‬ ‫וההיפך‬ ‫יותר‬ ‫הנמוכות‬. ‫מחזור‬ ‫בכל‬,‫חדשים‬ ‫דברים‬ ‫ולומדים‬ ‫מאחר‬ ‫יותר‬ ‫טוב‬ ‫התכנון‬. ‫את‬ ‫לפתור‬ ‫שיאפשרו‬ ‫תובנות‬ ‫יניב‬ ‫אחת‬ ‫בצורה‬ ‫הבעיה‬ ‫פתרון‬ ‫לעיתים‬ ‫שונה‬ ‫בצורה‬ ‫הבעיה‬. 38
  • 39. ‫תכנון‬ ‫נהלי‬-‫ומשול‬ ‫הפרד‬ ‫מהם‬ ‫אחד‬ ‫כל‬ ‫ולתקוף‬ ‫שונים‬ ‫עבודה‬ ‫לתחומי‬ ‫התוכנה‬ ‫את‬ ‫לפרק‬ ‫צריך‬ ‫בנפרד‬. ‫אחד‬ ‫במקום‬ ‫סתום‬ ‫למבוי‬ ‫מגיעים‬ ‫אם‬,‫לבעיה‬ ‫עוקף‬ ‫פתרון‬ ‫לנסות‬ ‫יש‬. 39
  • 40. ‫למעלה‬ ‫ומלמטה‬ ‫למטה‬ ‫מלמעלה‬ ‫תכנון‬ ‫למטה‬ ‫מלמעלה‬ ‫תכנון‬(:‫פירוק‬)‫וככל‬ ‫גבוהות‬ ‫הפשטה‬ ‫ברמות‬ ‫התחלה‬ ‫יותר‬ ‫הנמוכות‬ ‫לרמות‬ ‫יורדים‬ ‫מתפתח‬ ‫שהתכנון‬.‫תתי‬ ‫הגדרת‬ ‫מערכות‬,‫מפורטים‬ ‫ואלמנטים‬ ‫יורשות‬ ‫מחלקות‬ ‫זיהוי‬ ‫מכן‬ ‫ולאחר‬ ‫מחלקות‬ ‫אחרים‬. ‫למעלה‬ ‫מלמטה‬ ‫תכנון‬(:‫הרכבה‬)‫לכיוון‬ ‫ועוברים‬ ‫מהפרטים‬ ‫מתחילים‬ ‫הכללה‬.‫מוגדרים‬ ‫אובייקטים‬ ‫מזיהוי‬ ‫מתחילים‬,‫ואז‬ ‫כללים‬ ‫אובייקטים‬ ‫זיהוי‬ ‫האלו‬ ‫האובייקטים‬ ‫מתוך‬ ‫מחלקות‬ ‫להגדרת‬. ‫השיטות‬ ‫שתי‬ ‫של‬ ‫בשילוב‬ ‫משתמשים‬ ‫בפועל‬. 40
  • 41. ‫ניסיוני‬ ‫טיפוס‬ ‫אב‬ ‫מספר‬ ‫שיודעים‬ ‫עד‬ ‫כראוי‬ ‫יפעל‬ ‫מסוים‬ ‫תכנון‬ ‫אם‬ ‫יודעים‬ ‫לא‬ ‫לעיתים‬ ‫המימוש‬ ‫על‬ ‫פרטים‬. ‫טיפוס‬ ‫אב‬ ‫בניית‬ ‫היא‬ ‫נמוכה‬ ‫בעלות‬ ‫זו‬ ‫בעיה‬ ‫לפתרון‬ ‫טכניקה‬–‫כתיבת‬ ‫שלא‬ ‫וברור‬ ‫השאלה‬ ‫על‬ ‫לענות‬ ‫מנת‬ ‫על‬ ‫שנחוץ‬ ‫קוד‬ ‫של‬ ‫המינימאלי‬ ‫החלק‬ ‫מכן‬ ‫לאחר‬ ‫בו‬ ‫נשתמש‬. ‫במלואה‬ ‫מפורטת‬ ‫תהיה‬ ‫שהשאלה‬ ‫מחייב‬ ‫טיפוס‬ ‫אב‬ ‫בניית‬. 41
  • 42. ‫בתכנון‬ ‫פעולה‬ ‫שיתוף‬ ‫האחד‬ ‫מן‬ ‫השניים‬ ‫שטובים‬ ‫עיקרון‬ ‫לפי‬ ‫עובדים‬ ‫בתכנון‬. ‫באופנים‬ ‫והמפתחים‬ ‫המערכת‬ ‫מתכנני‬ ‫בין‬ ‫פעולה‬ ‫שיתוף‬ ‫ליצור‬ ‫מומלץ‬ ‫הבאים‬: ‫רעיונות‬ ‫שיתוף‬. ‫הבעיה‬ ‫לפתרון‬ ‫חלופות‬ ‫של‬ ‫משותף‬ ‫שרטוט‬. ‫בזוגות‬ ‫תכנות‬. ‫התכנון‬ ‫ברעיונות‬ ‫העוסקות‬ ‫ישיבות‬. ‫ע‬ ‫המתבצעת‬ ‫העבודה‬ ‫של‬ ‫פורמאלית‬ ‫סקירה‬"‫המערכת‬ ‫מתכנן‬ ‫י‬. ‫לחברה‬ ‫מחוץ‬ ‫עמיתים‬ ‫עם‬ ‫התייעצות‬. 42
  • 44. ‫התכנון‬ ‫תיעוד‬ ‫פורמאליים‬ ‫מסמכים‬ ‫באמצעות‬ ‫נעשה‬ ‫נכון‬ ‫תיעוד‬. ‫הבאים‬ ‫באמצעים‬ ‫גם‬ ‫בנוסף‬ ‫לתעד‬ ‫ניתן‬: ‫הקוד‬ ‫בתוך‬ ‫תיעוד‬:‫הקוד‬ ‫בתוך‬ ‫מרכזיות‬ ‫תכנון‬ ‫החלטות‬ ‫תיעוד‬.‫מבטיח‬ ‫למפתחים‬ ‫זמין‬ ‫יהיה‬ ‫שהתיעוד‬. WIKI:‫לערוך‬ ‫יכול‬ ‫בצוות‬ ‫אחד‬ ‫שכל‬ ‫אינטרנט‬ ‫דפי‬ ‫איסוף‬. ‫במייל‬ ‫המופצים‬ ‫סיכומים‬:‫והפצתו‬ ‫בכתב‬ ‫סיכום‬ ‫יגרור‬ ‫דיון‬ ‫כל‬ ‫סיכום‬ ‫בדבר‬ ‫הנוגעים‬ ‫לכל‬ ‫במייל‬. ‫דיגיטלית‬ ‫במצלמה‬ ‫שימוש‬:‫שורטטו‬ ‫שעליו‬ ‫מחיק‬ ‫לוח‬ ‫צילום‬ ‫דיאגראמות‬. ‫דיאגראמות‬ ‫יצירת‬UML:‫פרטים‬ ‫ומוסיפים‬ ‫כלליים‬ ‫בקווים‬ ‫מתחילים‬ ‫התכנון‬ ‫לפירוט‬ ‫שיורדים‬ ‫ככול‬. 44