Object Oriented Analysis and Design by Alberta University
‫יש‬ ‫שלי‬ ‫לפרויקט‬ ‫האם‬Design?‫טוב‬
‫ה‬ ‫את‬ ‫לשפר‬ ‫ניתן‬ ‫האם‬-Design?
‫בכלל‬ ‫שם‬ ‫יש‬ ‫האם‬Design?
‫יש‬ ‫שלתוכנה‬ ‫נדע‬ ‫איך‬Design?‫טוב‬
?‫בקוד‬ ‫מקומות‬ ‫בעוד‬ ‫לשינויים‬ "‫גל‬ ‫"אפקט‬ ‫יוצר‬ ‫שלנו‬ ‫בקוד‬ ‫קטן‬ ‫שינוי‬ ‫האם‬
( ‫שלי‬ ‫בקוד‬ ‫חוזר‬ ‫שימוש‬ ‫לעשות‬ ‫קשה‬ ‫האם‬Reuse?)
‫אחרי‬ ‫שלי‬ ‫הקוד‬ ‫את‬ ‫לתחזק‬ ‫קשה‬ ‫האם‬Release?
‫וניתן‬ ,‫חוזר‬ ‫לשימוש‬ ‫ניתן‬ ,‫גמיש‬ :‫יותר‬ ‫להיות‬ ‫שלי‬ ‫לקוד‬ ‫יגרום‬ ‫נכון‬ ‫עצמים‬ ‫מונחה‬ ‫תכנון‬
.‫לתחזוקה‬
‫מודול‬1:
SW-Design‫באספקט‬ ‫מבחינה‬ :( ‫הנמוכים‬ ‫ים‬Low-level).‫המערכת‬ ‫של‬
SW-Architecture( ‫הגבוהים‬ ‫באספקטים‬ ‫מבחינה‬ :High-Level.‫המערכת‬ ‫של‬ )
‫המלצה‬‫בקוד‬ ‫פשטות‬ ‫על‬ ‫לשמור‬ :–‫אם‬.‫נכון‬ ‫שזה‬ ‫כניראה‬ ,‫פשוט‬ ‫זה‬
,‫גמיש‬ ,‫מאורגן‬ ‫נשאר‬ ‫הקוד‬ ,‫בקוד‬ ‫דברים‬ ‫לייצוג‬ ‫באוביקטים‬ ‫שימוש‬ ‫ע"י‬‫ו‬‫לשימוש‬ ‫ניתן‬
.‫חוזר‬
‫מאורגן‬–"‫ע‬‫ספציפ‬ ‫ופונקציות‬ ‫קשורים‬ ‫מאפיינים‬ ‫השמת‬ ‫י‬‫ברור‬ ‫במקום‬ ‫יות‬
.‫אותו‬ ‫למצוא‬ ‫ושקל‬
‫גמיש‬–‫בתוך‬ ‫מודולרי‬ ‫באופן‬ ,‫בקלות‬ ‫להשתנות‬ ‫יכולים‬ ‫המאפיינים/הפרטים‬
.‫הקוד‬ ‫יתר‬ ‫על‬ ‫השפעה‬ ‫ללא‬ ,‫האוביקט‬
‫חוזר‬ ‫לשימוש‬ ‫ניתן‬–‫אוביקטים‬‫לכתוב‬ ‫שצריך‬ ‫הקוד‬ ‫כמות‬ ‫את‬ ‫מפחיתים‬
.‫פשוטות‬ ‫תוכניות‬ ‫על‬ ‫ושומרים‬
‫לעצמם‬ ‫מודעים‬ ‫אוביקטים‬:
.‫מיקומו‬ ‫ואת‬ ‫מימדיו‬ ‫את‬ ‫מכיר‬ ‫כיסא‬
.‫שלו‬ ‫המפרט‬ ‫את‬ ‫יודע‬ ‫פלאפון‬
‫תוכנה‬ ‫בפיתוח‬ ‫תהליך‬:
1.‫נכתוב‬.‫הבעיה/בעיות‬ ‫על‬ ‫המבוססות‬ ‫דרישות‬
2.‫מודל‬ ‫ניצור‬Conceptual Design‫ו‬-Technical Designed Diagrams.
3..‫בקוד‬ ‫והדיאגרמות‬ ‫המודלים‬ ‫את‬ ‫נממש‬
4..‫טסטים‬
‫קוד‬ ‫עם‬ ‫מראש‬ ‫להתחיל‬–‫מועד‬!!! ‫לפורענות‬
.‫והעיצוב‬ ‫הדרישות‬ ‫של‬ ‫הבנה‬ ‫חוסר‬ ‫להיות‬ ‫עשויה‬
1.‫דרישות‬–‫תנאים‬‫במ‬ ‫להתממש‬ ‫שחייבים‬ ‫יכולות‬ ‫או‬‫בקשת‬ ‫על‬ ‫בהתבסס‬ ‫וצר‬
.‫המשתמש/לקוח‬.‫רוצה‬ ‫הלקוח‬ ‫מה‬ ‫להבין‬ ‫חייבים‬‫יותר‬ ‫להיות‬ ‫צריך‬ ,‫לכך‬ ‫מעבר‬
‫שק‬ ‫דברים‬ ‫עוד‬ ‫על‬ ‫לעלות‬ ‫ולנסות‬ "‫"חקרנים‬‫לדריש‬ ‫שורים‬‫לא‬ ‫שאולי‬ ‫דברים‬ ,‫ולמוצר‬ ‫ות‬
‫שהלקוח‬ ‫דברים‬ ‫יש‬ ‫אם‬ ‫אולי‬ ‫להבין‬ .‫עליהם‬ ‫חשב‬ ‫לא‬ ‫שהלקוח‬ ‫דברים‬ ‫לחלץ‬ ‫או‬ ,‫נאמרו‬
‫תכולות‬ ‫על‬ ‫לוותר‬ :‫להקריב‬ ‫מוכן‬ ‫שהלקוח‬ ‫דברים‬ ‫יש‬ ‫אם‬ ‫אולי‬ ‫להבין‬ .‫עליהם‬ ‫חשב‬ ‫לא‬
‫מ‬ ‫ריצה‬ ‫בשביל‬ ‫מסויימות‬.‫יותר‬ ‫הירה‬
2.Design–‫לאחר‬‫להפיק‬ ‫הוא‬ ‫הבא‬ ‫שלב‬ ,‫נכתב‬ ‫הדרישות‬ ‫שסט‬Conceptual Design
& Technical Design.
Conceptual Design–‫ניצור‬.‫דרישות‬ ‫של‬ ‫התחלתי‬ ‫סט‬ ‫באמצעות‬ ‫אותו‬
.‫התוכנה‬ ‫מוצר‬ ‫של‬ ‫מתאימות‬ ‫ואחריויות‬ ‫קשרים‬ ,‫רכיבים‬ ‫מזהה‬ ‫המודל‬
‫סימונים‬ ‫הם‬ ‫אלה‬ .‫תפיסתיים‬ ‫דגמים‬ ‫באמצעות‬ ‫ביטוי‬ ‫לידי‬ ‫בא‬ ‫זה‬ ‫עיצוב‬
.‫יסופקו‬ ‫שהדרישות‬ ‫איך‬ ‫עבור‬ ‫התחלתית‬ ‫מחשב‬ ‫מספקים‬ ‫אשר‬ ‫ויזואליים‬
‫לז‬ ‫נוכל‬ ‫שכזה‬ ‫דגם‬ ‫שנצייר‬ ‫ברגע‬‫לא‬ ‫שעשויים‬ ‫או‬ ‫חסרים‬ ‫אשר‬ ‫רכיבים‬ ‫הות‬
‫עוד‬ ‫לנו‬ ‫שיוסיפו‬ ‫או‬ ‫הלקוח‬ ‫מצד‬ ‫הבהרה‬ ‫יתר‬ ‫ידרשו‬ ‫אלה‬ ‫פגמים‬ ‫ואז‬ .‫לעבוד‬
‫עבודת‬Design.
-‫הרכיב‬ ‫אחריות‬–‫משימה‬.‫לבצע‬ ‫במודול‬ ‫רכיב‬ ‫שעל‬
Technical Design–‫פה‬‫הרכיבים‬ ‫מרבית‬‫האחרויות‬ ‫כן‬ ‫וכמו‬ ,‫והקשרים‬
‫הפי‬ ‫בתהליך‬ ‫התוכנה‬ ‫(של‬ ‫שלהם‬.‫מתוארים‬ )‫תוח‬‫מסתיים‬ ‫לא‬ ‫הטכני‬ ‫העיצוב‬
‫זוקקו‬ ‫הרכיבים‬ ‫אשר‬ ‫עד‬‫לכדי‬‫לקבל‬ ‫כדי‬ ‫מספיקה‬ ‫ספציפיות‬.‫לפרטים‬ ‫עיצוב‬
‫לתתי‬ ‫הרכיבים‬ ‫בפיצול‬ ‫מתחיל‬ ‫טכני‬ ‫עיצוב‬ ,‫זאת‬ ‫לבצע‬ ‫מנת‬ ‫על‬-‫קטנים‬ ‫רכיבים‬
‫לפרטים‬ ‫מעוצבים‬ ‫שיהיו‬ ‫כך‬ ‫מספיק‬ ‫ספציפיים‬ ‫שיהיו‬ ‫ויותר‬ ‫יותר‬‫אנו‬ ‫ואז‬ .
‫תת‬ ‫עבור‬ ‫מפורט‬ ‫עיצוב‬ ‫לתת‬ ‫יכולים‬-.‫רכיב‬‫שרטוטים‬ ‫של‬ ‫רב‬ ‫מספר‬ ‫ישנו‬
.‫הרכיבים‬ ‫של‬ ‫וההתנהגות‬ ‫המבנה‬ ‫את‬ ‫לתאר‬ ‫שיכולים‬ ‫שונים‬ ‫טכניים‬
:‫להמחשה‬ ‫דוגמה‬‫מטב‬‫נית‬ ‫שני‬ ‫ומצד‬ ,‫הבית‬ ‫בתכנון‬ ‫עצמו‬ ‫בפני‬ ‫רכיב‬ ‫הוא‬ ‫ח‬‫ן‬
‫לציי‬ ‫עשוי‬ ‫הטכני‬ ‫העיצוב‬ .‫הריצוף‬ ‫כמו‬ ‫רכיבים‬ ‫לעוד‬ ‫אותו‬ ‫לפרק‬‫שהריצוף‬ ‫ן‬
.‫הרבה‬ ‫ולאפות‬ ‫לבשל‬ ‫הולך‬ ‫הלקוח‬ ‫אם‬ ‫בייחוד‬ ,‫לניקוי‬ ‫קל‬ ‫מחומר‬ ‫ייעשה‬
.‫שלנו‬ ‫ומהצד‬ ‫הלקוח‬ ‫מצד‬ ‫פשרות‬ ‫נצטרך‬ ‫זה‬ ‫בתהליך‬ ‫גם‬
‫לסיכום‬:
.‫עצמים‬ ‫מונחה‬ ‫הינו‬ ‫שלנו‬ ‫שהעולם‬ ‫כיוון‬ ‫עצמים‬ ‫מונחה‬ ‫באופן‬ ‫למדל‬ ‫קל‬
‫יש‬ ‫עצם‬ ‫לכל‬Details & Responsibilities‫יוד‬ ‫עצם‬ ‫וכל‬.‫שלו‬ ‫הפרטים/מאפיינים‬ ‫את‬ ‫ע‬
‫לדוגמה‬ ‫דרישה‬(User Story)
As a learner, I want to search for relevant courses through a 'search-page'.
Components: courses, search-page.
Search-page has responsibility: search for relevant courses.
.‫חסרים‬ ‫רכיבים‬ ‫ישנם‬ ‫כי‬ ‫לב‬ ‫נשים‬
‫לברורו‬ ‫הדרישות‬ ‫את‬ ‫נעשה‬‫ה‬ ‫את‬ ‫ונציג‬ ,‫יותר‬ ‫ת‬-mock-up:‫הבא‬
‫מה‬-mock-up:‫קשרים‬ ‫מספר‬ ‫נזהה‬ ‫אנו‬ ‫הנ"ל‬
‫של‬ ‫האחריות‬ ‫את‬ ‫למלא‬ ‫שיוכל‬ ‫כדי‬ ,‫חיפוש‬ ‫דף‬ ‫עבור‬ ,‫למשל‬‫שדה‬ ‫צריך‬ ‫הוא‬ ‫חיפוש‬ ‫לבצע‬ ‫ו‬
.‫תוצאות‬ ‫ודף‬ ‫חיפוש‬ ‫כפתור‬ ,‫חיפוש‬
.‫תוצאות‬ ‫ודף‬ ‫חיפוש‬ ‫כפתור‬ ,‫חיפוש‬ ‫לשדה‬ ‫קשרים‬ ‫לו‬ ‫שיש‬ ‫חיפוש‬ ‫לדף‬ ‫יתורגם‬ ‫גם‬ ‫זה‬
‫כגון‬ ‫הפרטים‬ ‫שם‬ ,‫טכני‬ ‫לעיצוב‬ ‫נעבור‬ ‫רעיוני‬ ‫מעיצוב‬Components, Connections and
Responsibilities.‫מימוש‬ ‫לידי‬ ‫לבוא‬ ‫יכולים‬
Components–‫לאחר‬‫הם‬ ,‫מספיק‬ ‫שזוקקו‬‫לאוספים‬ ‫מתורגמים‬,‫פונקציות‬ ‫של‬
‫רכיבי‬ ‫או‬ ‫מחלקות‬‫ח‬ ‫מכן‬ ‫לאחר‬ .‫אחרים‬ ‫ם‬‫אל‬ ‫לקים‬‫יותר‬ ‫הרבה‬ ‫פשוטה‬ ‫בעיה‬ ‫מייצגים‬ ‫ה‬
.‫לפתח‬ ‫אינדיבידואלי‬ ‫באופן‬ ‫יכולים‬ ‫שמפתחים‬
‫איכויות‬‫מתחרות‬
‫מעצבים‬ ‫כאשר‬.‫חשובות‬ ‫החלטות‬ ‫הרבה‬ ‫לבצע‬ ‫עלינו‬ ,‫הדרישות‬ ‫את‬ ‫לספק‬ ‫ובבואנו‬ ,‫תוכנה‬
-‫דרישות‬ ‫לספק‬–‫החלטות‬‫יכלל‬ ‫תוכנה‬ ‫בעיצוב‬ ‫מסויימות‬‫האיכות‬ ‫בתכונות‬ ‫איזונים‬ ‫ו‬
,‫ביצועים‬ :‫כגון‬ ,‫השונות‬.‫ואבטחה‬ ‫נוחות‬
-‫בפתרון‬ ‫להתחרות‬ ‫יכולות‬ ‫איכויות‬ ‫איך‬ ‫על‬ ‫לחשוב‬ ‫מהותי‬ ‫זה‬ ,‫תוכנה‬ ‫מעצבים‬ ‫כאשר‬
.‫הולמת‬ ‫פשרה‬ ‫ולקבוע‬ ‫מסויימות‬ ‫סיטואציות‬ ‫תחת‬ ‫מוצע‬
-‫לרוב‬ ‫פשרות‬‫איכ‬ ,‫לאבטחה‬ ‫באשר‬ ‫יצוצו‬.‫לשוק‬ ‫זמן‬ ,‫מוצר‬ ‫ות‬
-Context–‫חשוב‬‫פתרו‬ ‫בחירת‬ ‫איזו‬ ‫לקבוע‬ ‫כדי‬.‫האיכויות‬ ‫איזון‬ ‫לשם‬ ‫נכונה‬ ‫הינה‬ ‫ן‬
‫יצ‬ ‫נמוך‬ ‫פשע‬ ‫באיזור‬ ‫בית‬ ,‫למשל‬‫טר‬.‫גבוה‬ ‫פשע‬ ‫באיזור‬ ‫מבית‬ ‫שונה‬ ‫אבטחה‬ ‫סידור‬ ‫ך‬
‫ב‬ ‫עם‬ ‫שיחה‬ ,‫תוכנה‬ ‫עבור‬.‫ההקשר‬ ‫את‬ ‫להבין‬ ‫תעזור‬ ‫העניין‬ ‫עלי‬
‫עיצ‬ ‫על‬ ‫שישפיע‬ ‫מה‬ ,‫איכויות‬ ‫להן‬ ‫צפות‬ ‫כיצד‬ ‫ניראה‬.‫התוכנה‬ ‫וב‬
‫פונקציונליות‬ ‫דרישות‬–‫מתארות‬‫המער‬ ‫מה‬‫למשל‬ .‫לבצע‬ ‫נדרשת‬ ‫האפליקציה‬ ‫או‬ ‫כת‬
‫יכ‬ ‫שתהיה‬ ‫פונקציונלית‬ ‫דרישה‬ ‫מדיה‬ ‫לאפליקצית‬‫ל‬ ‫ולת‬.‫מלא‬ ‫באורך‬ ‫סרט‬ ‫הוריד‬
‫צר‬ ‫תוכנה‬ ‫עיצוב‬ ‫טבעי‬ ‫באופן‬‫נכונה‬ ‫בצורה‬ ‫דרישה‬ ‫כזאת‬ ‫שיכסה‬ ‫פתרון‬ ‫לצייר‬ ‫יך‬,
‫כלומר‬‫נכונות‬.‫לספק‬ ‫מפתח‬ ‫איכות‬ ‫הינה‬
‫פונקציונליות‬ ‫לא‬ ‫דרישות‬–‫מציינים‬‫מה‬ ‫עושות‬ ‫האפליקציה‬ ‫או‬ ‫המערכת‬ ‫טוב‬ ‫כמה‬
‫שהן‬‫ע‬‫דריש‬ .‫ושות‬‫כמה‬ ‫מתארת‬ ‫שכזאת‬ ‫ה‬.‫מסויימות‬ ‫בסיטואציות‬ ‫רצה‬ ‫התוכנה‬ ‫טוב‬
‫מלא‬ ‫באורך‬ ‫סרט‬ ‫להוריד‬ ,‫למשל‬‫במהירות‬‫ספציפית‬‫ולהריץ‬‫שכזה‬ ‫סרט‬‫אילוץ‬ ‫תחת‬
‫זיכרון‬ ‫הגבלת‬.
‫כמו‬ .‫ויעילות‬ ‫במשאבים‬ ‫שימוש‬ ,‫ביצועים‬ ‫יכללו‬ ‫לספק‬ ‫אחרות‬ ‫איכויות‬ ,‫לנכונות‬ ‫מעבר‬
‫לא‬ ‫צריך‬ ‫מימוש‬ ‫כן‬‫שיש‬ ‫אחרות‬ ‫שאיכויות‬ ‫כך‬ .‫בעתיד‬ ‫שינויים‬ ‫פשר‬:‫בתוכנה‬ ‫לספק‬
.‫תחזוקתיות‬ ,‫גמישות‬ ,‫חוזר‬ ‫שימוש‬
‫תמיד‬‫נשאל‬.‫צריך‬ ‫לאחור‬ ‫תאימות‬ ‫או‬ ‫אבטחה‬ ,‫תחזוקה‬ ,‫ביצועים‬ ‫כמה‬
Class Responsibility Collaborators (CRC)
.‫התוכנה‬ ‫לייצוג‬ ‫בכרטיסיות‬ ‫שימוש‬
‫יצירת‬ ‫בזמן‬ ‫מדרישות‬ ‫ואחריויות‬ ‫קשרים‬ ,‫רכיבים‬ ‫מזהים‬ ‫אנו‬Conceptual Design.
‫זה‬ ‫בשלב‬‫המ‬ ‫את‬ ‫מספקים‬ ‫אנו‬.‫הדרישות‬ ‫את‬ ‫נכסה‬ ‫איך‬ ‫לגביי‬ ‫הראשוניות‬ ‫חשבות‬
‫ב‬-Technical Design‫לתת‬ ‫בכדי‬ ‫ויותר‬ ‫יותר‬ ‫מזוקקים‬ ‫אלו‬ ‫וקשרים‬ ‫רכיבים‬ ‫איך‬ ‫למדנו‬ ,
.‫למימוש‬ ‫קלים‬ ‫אותם‬ ‫שהופך‬ ‫מה‬ .‫טכניים‬ ‫מאפיינים‬ ‫להם‬
‫ראשוני‬ ‫שלב‬ ‫הינו‬ ‫הקשרים‬ ‫וכן‬ ‫שלהם‬ ‫האחריויות‬ ,‫הרכיבים‬ ‫שזיהוי‬ ‫ולמרות‬‫טוב‬
.‫אותם‬ ‫לייצג‬ ‫דרך‬ ‫המחשנו‬ ‫לא‬ ‫עדיין‬ ,‫תוכנה‬ ‫בעיצוב‬
.‫שלנו‬ ‫העיצוב‬ ‫עם‬ ‫לשחק‬ ‫מסוגלים‬ ‫להיות‬
‫ב‬ ‫המידע‬ ‫לייצוג‬ ‫דרך‬ ‫נלמד‬-high level‫ה‬ ‫יצירת‬ ‫בזמן‬-Conceptual Design.
‫כרטיסי‬ ‫הם‬ ‫אלה‬CRC (Class Responsibility Collaborator).
‫כרטיסי‬CRC‫לנ‬ ‫עוזרים‬‫ל‬ ‫שלנו‬ ‫הרכיבים‬ ‫את‬ ‫לארגן‬ ‫ו‬‫האחריויות‬ ‫את‬ ‫לזהות‬ ,‫מחלקות‬
‫פעולה‬ ‫ישתפו‬ ‫הם‬ ‫כיצד‬ ‫ולקבוע‬ ,‫שלהם‬.‫השני‬ ‫עם‬ ‫אחד‬
.‫שלנו‬ ‫בעיצוב‬ ‫הרכיבים‬ ‫את‬ ‫ולזקק‬ ‫לארגן‬ ,‫לתעד‬ ‫לנו‬ ‫יעזרו‬ ‫אלה‬
Component's name–‫הולך‬‫ל‬-Class name,
‫אחריויות‬‫ל‬-Responsibilities.
‫ל‬ ‫הולכים‬ ‫והקשרים‬-Collaborators.
‫לדוגמה‬–‫בנק‬:
-‫כ‬ ‫מכניס‬ ‫לקוח‬...‫חשבון‬ ‫מאזן‬ ‫בדיקת‬ ,‫הפקדה‬ ,‫משיכה‬ ‫פעולות‬ ‫לבצע‬ ‫ויכול‬ ‫רטיס‬
-‫נשים‬ ,‫משימותיו‬ ‫את‬ ‫להגשים‬ ‫כדי‬ ‫הלקוח‬ ‫רכיב‬ ‫עבור‬ ‫נחוצה‬ ‫הכספומט‬ ‫ומכונת‬ ‫מאחר‬
‫ה‬ ‫תחת‬-Collaborators‫את‬ ‫שלו‬Bank Machine.
-‫ו‬:‫הכספומט‬ ‫למכונת‬ ‫כעת‬
-‫לקוח‬ ‫את‬ ‫נשים‬ ‫למשל‬ .‫יחדיו‬ ‫פעולה‬ ‫המשתפים‬ ‫רכיבים‬ ‫מיקום‬ ‫ע"י‬ ‫דברים‬ ‫לארגן‬ ‫נוכל‬
‫הבנ‬‫אב‬ ‫עיצוב‬ ‫לסמלץ‬ ‫ונוכל‬ ‫מימין‬ ‫הכספומט‬ ‫מכונת‬ ‫ואת‬ ‫משמאל‬ ‫ק‬-‫של‬ ‫טיפוסי‬
.‫כה‬ ‫עד‬ ‫המערכת‬
-.‫כרטיס‬ ‫להכניס‬ ‫הלקוח‬ ‫אחריות‬ ‫את‬ ‫ונגלם‬ ‫נניח‬
-‫כ‬ ‫נשאל‬ ‫כניראה‬ ‫זה‬ ‫בתהליך‬?‫הלקוח‬ ‫את‬ ‫מאמת‬ ‫הכספומט‬ ‫יצד‬
-.‫הבנק‬ ,‫רכיב‬ ‫עוד‬ ‫לנו‬ ‫תביא‬ ‫זו‬ ‫שאלה‬ ‫ואז‬
-.‫הלקוח‬ ‫את‬ ‫לאמת‬ ‫מתקשר‬ ‫הכספומט‬ ‫שם‬
-‫והכס‬ ‫מאחר‬ ‫וכעת‬:‫רשת‬ ‫רכיב‬ ‫עוד‬ ‫נכניס‬ ,‫הבנק‬ ‫עם‬ ‫לדבר‬ ‫כדי‬ ‫ברשת‬ ‫יעזר‬ ‫פומט‬
-‫נוסף‬ ‫רכיב‬ ‫עם‬ ‫פעולה‬ ‫תשתף‬ ‫שהרשת‬ ‫נעשה‬ ‫אז‬ ,‫מאובטחת‬ ‫תהיה‬ ‫שהרשת‬ ‫נרצה‬
‫הצפנה‬ ‫לו‬ ‫שנקרא‬.
-.‫הבנק‬ ‫עם‬ ‫מאובטחת‬ ‫בתקשורת‬ ‫תומך‬ ‫זה‬ ‫רכיב‬
-‫מתת‬ ‫מורכב‬ ‫כשלעצמו‬ ‫הכספומט‬ ‫כן‬ ‫כמו‬-:‫למשל‬ ‫כמו‬ ‫קטנים‬ ‫רכיבים‬
o.‫הכרטיס‬ ‫קורא‬
o.‫מקלדת‬
o.‫לצ'קים‬ ‫פתח/חריץ‬
o.)‫כסף‬ ‫(מנפק‬ ‫לכסף‬ ‫פתח/חריץ‬
.‫משלו‬ ‫כרטיס‬ ‫לקבל‬ ‫יכול‬ ‫כזה‬ ‫אחד‬ ‫כל‬ ‫כאשר‬
-‫הכרטיסים‬ ‫שיטת‬ ‫באמצעות‬.‫בדרישות‬ ‫או‬ ‫בעיצוב‬ ‫מגרעות‬ ‫לחשוף‬ ‫ניתן‬
‫המזלג‬ ‫על‬ ‫דיאגרמות‬:
Use-Case.‫התוכנה‬ ‫עם‬ ‫לעשות‬ ‫רוצה‬ ‫המשתמש‬ ‫מה‬ :
‫הי‬ ‫הבאה‬ ‫השאלה‬."‫המשתמש‬ ‫של‬ ‫הצורך‬ ‫את‬ ‫להשיג‬ ‫"איך‬ ‫א‬
‫באמצעות‬ ‫זאת‬ >=Sequence Diagram.
‫כל‬Use Case‫סידרת‬ ‫באמצעות‬ ‫תושג‬ ‫מטרה‬ ‫וכל‬ ‫המשתמש‬ ‫של‬ ‫מטרה‬ ‫מייצג‬
.‫ומערכות‬ ‫מכשירים‬ ,‫אנשים‬ ‫בין‬ ‫אינטרקציות‬
Sequence Diagram.‫אלו‬ ‫לאינטרקציות‬ ‫ייצוג‬ ‫מהווה‬
‫עיצוב‬ ‫עקרונות‬ ‫ארבעה‬:
1.‫אבסטרקציה/הפשטה‬–‫פה‬‫מושג‬ ‫עבור‬ ‫רלוונטיות‬ ‫והתנהגויות‬ ‫תכונות‬ ‫איזה‬ ‫נקבע‬
( ‫בהקשר‬Context).‫מסויים‬
2.‫אנקפסולציה/כימוס‬–‫מבטיחה‬‫כחלק‬ .‫מחלקה‬ ‫באותה‬ ‫יחד‬ ‫נאספים‬ ‫אלה‬ ‫שמאפיינים‬
‫ניצור‬ ‫כך‬ .‫והתנהגויות‬ ‫מאפיינים‬ ‫עבור‬ ‫הרשאות‬ ‫נגדיר‬ ‫מהעניין‬‫ממשק‬.‫חוץ‬ ‫כלפי‬
‫ה‬:‫מטרה‬‫הסתרה‬‫וכך‬ ‫הערכים‬ ‫את‬ ‫חושפים‬ ‫אנו‬ ‫בה‬ ‫המימוש‬ ‫דרך‬ ‫ושל‬ ‫מאפיינים‬ ‫של‬
.‫חוץ‬ ‫כלפי‬ ‫ממשק‬ ‫יוצרים‬
3.Decomposition/‫הרכבה‬–‫פירוק‬( ‫קטנות‬ ‫ליחידות‬,‫מגלגלים‬ ‫מורכבת‬ ‫מכונית‬
‫הכולל‬ ‫החלק‬ ‫לעיתים‬ .)...‫שלדה‬‫ס‬ ‫יאציל‬‫תת‬ ‫על‬ ‫מכויות‬-‫החל‬‫(כך‬ ‫שלו‬ ‫קים‬‫המקרר‬
‫ו‬ ‫מאחר‬ .)‫למקפיא‬ ‫האוכל‬ ‫של‬ ‫והאחסנה‬ ‫ההקפאה‬ ‫סמכות‬ ‫את‬ ‫מאציל‬-
decomposition‫לתת‬ ‫חלוקה‬ ‫מאפשר‬-‫אזי‬ ,‫ברורים‬ ‫חלקים‬‫די‬‫שהחלקים‬ ‫מובן‬
.‫נפרדים‬‫ש‬ ‫קבוע‬ ‫מספר‬ ‫להיות‬ ‫יכולים‬ ‫הכולל‬ ‫לחלק‬‫של‬ ‫דינאמי‬ ‫מספר‬ ‫או‬ ‫חלקים‬ ‫ל‬
‫החי‬ ‫לאורך‬ ‫גם‬ ‫לב‬ ‫נשים‬ .‫חלקים‬.‫וחלקיו‬ ‫הכולל‬ ‫האוביקט‬ ‫של‬ ‫ים‬
Lifetime Closely Related–‫למשל‬‫חיים‬ ‫אורך‬ ‫אותו‬ ‫בעלי‬ ‫הינם‬ ‫ומקפיא‬ ‫מקרר‬‫האחד‬ ,
‫י‬ ‫לא‬.‫השני‬ ‫בלי‬ ‫להתקיים‬ ‫כול‬
Not Related–‫למשל‬.‫והמוצרים‬ ‫מקרר‬
‫בין‬ ‫שיתוף‬ ‫יש‬ ‫לעיתים‬‫חלקים‬.‫לשתף‬ ‫ניתן‬ ‫לא‬ ‫ולפעמים‬
‫מ‬‫בתוכנה‬ ‫העיצוב‬ ‫עקרונות‬ ‫ימוש‬
-Abstraction–‫נחליט‬"‫"שנזרוק‬ ‫והפונקציות‬ ‫המשתנים‬ ‫אסופת‬ ‫על‬
‫ומשתנים‬ ‫פונקציות‬ ‫נגדיר‬ .‫מסויים‬ ‫להקשר‬ ‫בהתאם‬ ,‫מחלקה‬ ‫לתוך‬‫עם‬
.‫משמעותיים‬ ‫שמות‬
-Encapsulation–‫נגדיר‬‫ולפונקציות‬ ‫למשתנים‬ ‫גישה‬ ‫הרשאות‬
‫שישמשו‬ ‫הפונקציות‬ ‫את‬ ‫נבחר‬ ,‫שכתבנו‬‫ממשק‬(Interface)‫של‬
‫האוב‬( ‫אותם‬ ‫ונחשוף‬ ‫יקט‬‫הרשאות‬public)‫יהיו‬ ‫הדברים‬ ‫יתר‬ ‫וכל‬
( ‫יותר‬ ‫מחמירות‬ ‫בהרשאות‬protected, private…).
-Decomposition–‫נדון‬:‫סוגים‬ ‫בשלושה‬Association, Aggregation,
Composition.
Association–‫מוגדר‬" ‫מסוג‬ ‫כקשר‬Some."‫קשר‬ ,‫כלומר‬
‫זה‬ ‫עם‬ ‫זה‬ ‫יתקשרו‬ ‫אלה‬ ‫אוביקטים‬ .‫אוביקטים‬ ‫שני‬ ‫בין‬ ‫רופף‬
( ‫פעם‬ ‫מדי‬for some time.)
‫דוגמה‬–‫הקשר‬‫בין‬person‫ל‬-airline.‫מחזיק‬ ‫לא‬ ‫אדם‬
‫אבל‬ ,‫מטוס‬ ‫קרובות‬ ‫לעיתים‬.‫איתו‬ ‫באינטרקציה‬ ‫להיות‬ ‫יכול‬
.‫אנשים‬ ‫הרבה‬ ‫עם‬ ‫באינטרקציה‬ ‫להיות‬ ‫יכול‬ ‫מטוס‬ ,‫כן‬ ‫כמו‬
.‫בשני‬ ‫תלוי‬ ‫לא‬ ‫אחד‬ ‫ואף‬ ,‫מטוסים‬ ‫ומספר‬ ‫אנשים‬ ‫מספר‬ ‫ישנם‬
Aggregation–‫זהו‬‫מסוג‬ ‫קשר‬has-a‫של‬ ‫היכן‬ ,-‫ישנם‬ "‫"שלם‬
‫הש‬ ‫חלקים‬‫ייתכן‬ .‫לו‬ ‫ייכים‬‫ה‬ ‫בין‬ ‫חלקים‬ ‫של‬ ‫שיתוף‬-"‫"שלמים‬
‫זה‬ ‫בקשר‬‫ה‬ ‫בין‬ ‫הקשר‬ .‫כלומר‬ ,‫חלש‬ ‫נחשב‬ ‫לחלקיו‬ ‫שלם‬
.‫מצב‬ ‫בכל‬ ‫עצמאי‬ ‫באופן‬ ‫להתקיים‬ ‫יכולים‬ ‫והשלם‬ ‫שהחלקים‬
‫ז‬‫מהותי‬ ‫חלק‬ .‫לצוות‬ ‫נוסעים‬ ‫מטוס‬ ‫שבין‬ ‫לקשר‬ ‫דומה‬ ‫ה‬
‫ל‬ ,‫הצוות‬ ‫הוא‬ ‫מהמטוס‬‫הצוות‬ ‫לא‬,‫להמריא‬ ‫המטוס‬ ‫יוכל‬ ‫לא‬
‫בל‬ ‫להתקיים‬ ‫חודל‬ ‫לא‬ ‫המטוס‬ ,‫זאת‬ ‫עם‬ ‫אך‬‫כנ"ל‬ .‫עליו‬ ‫הצוות‬ ‫י‬
‫מת‬ ‫חלק‬ ‫שהם‬ ‫הצוות‬ ‫לגביי‬‫ו‬ ‫המטוס‬ ‫פעול‬‫חודלים‬ ‫אינם‬
.‫המטוס‬ ‫על‬ ‫אינם‬ ‫הם‬ ‫אם‬ ‫מושמדים‬ ‫או‬ ‫מלהתקיים‬
o‫יהיו‬ ‫למטוס‬0.‫צוות‬ ‫אנשי‬ ‫יותר‬ ‫או‬
o‫מסוג‬ ‫אוביקט‬Crew Member‫ע"י‬ ‫להתווסף‬ ‫יכול‬0‫או‬
‫של‬ ‫אוביקטים‬ ‫יותר‬Airliner.
Composition–‫הכלה‬‫כ‬ ‫המוכרת‬ ,‫חלקים‬ ‫של‬ ‫בלעדית‬-
"has-a".‫חלקיו‬ ‫בלי‬ ‫להתקיים‬ ‫יכול‬ ‫לא‬ ‫השלם‬ ,‫כלומר‬ .‫חזק‬
‫אם‬ .‫להתקיים‬ ‫יפסיק‬ ‫השלם‬ ,‫מחלקיו‬ ‫אחד‬ ‫אפילו‬ ‫יפסיד‬ ‫אם‬
‫גישה‬ ‫תיתכן‬ ‫בדר"כ‬ .‫איתו‬ ‫יחד‬ ‫נהרסים‬ ‫חלקיו‬ ,‫נהרס‬ ‫השלם‬
.‫וחדריו‬ ‫בית‬ ‫למשל‬ ‫כך‬ .‫השלם‬ ‫מתוך‬ ‫רק‬ ‫לחלקים‬
.‫חדרים‬ ‫של‬ ‫יותר‬ ‫או‬ ‫אחד‬ ‫אוביקט‬ ‫יהיו‬ ‫בית‬ ‫מסוג‬ ‫לאוביקט‬
-Generalization‫ירושה‬ ‫עם‬:
-Generalization‫ממשקים‬ ‫מימוש‬ ‫עם‬:
Coupling and Cohesion
Module–‫יחידה‬.‫מתודה‬ ‫או‬ ‫מחלקה‬ ‫למשל‬ ‫כמו‬
‫הינם‬ ‫עיצוב‬ ‫של‬ ‫מורכבות‬ ‫להעריך‬ ‫אותנו‬ ‫ישמשו‬ ‫אשר‬ ‫מטריקות‬Coupling &
Cohesion.
Coupling–‫למודו‬ ‫מודול‬ ‫שבין‬ ‫מורכבות/סיבוכיות‬.‫אחרים‬ ‫לים‬
Cohesion–‫מורכבות‬.‫המודול‬ ‫בתוך‬
.‫המערכת‬ ‫את‬ ‫לנהל‬ ‫יותר‬ ‫קל‬ ‫יהיה‬ ‫הנ"ל‬ ‫השניים‬ ‫באמצעות‬
‫רע‬ ‫לעיצוב‬ ‫דוגמה‬–‫פאזל‬–‫נוכל‬‫לכל‬ ‫לא‬ ‫אבל‬ ‫אחר‬ ‫לחלק‬ ‫אחד‬ ‫חלק‬ ‫לחבר‬‫חלק‬
.‫שנרצה‬
‫הינו‬ ‫טוב‬ ‫עיצוב‬‫לגו‬–‫שם‬‫חלק‬ ‫כל‬ ‫לחבר‬ ‫נוכל‬‫חוזר‬ ‫שימוש‬ ‫לבצע‬ ‫ובעצם‬ ‫חלק‬ ‫לכל‬
(reuse).‫חלקים‬ ‫של‬
‫הינו‬ ‫זה‬ ‫מודול‬ ‫כי‬ ‫נאמר‬ ,‫אחר‬ ‫במודול‬ ‫יתרה‬ ‫תלוי‬ ‫מודול‬ ‫כאשר‬tightly coupled‫ביחס‬
.)‫בפאזל‬ ‫(כמו‬ ‫לאחרים‬
‫ניתן‬ ‫אם‬ ,‫שני‬ ‫מצד‬‫א‬ ‫מודול‬ ‫בקלות‬ ‫לחבר‬‫הינו‬ ‫זה‬ ‫מודול‬ ‫כי‬ ‫נאמר‬ ,‫אחרים‬ ‫למודולים‬ ‫חד‬
loosely coupled.‫אחרים‬ ‫למודולים‬ ‫ביחס‬.)‫בלגו‬ ‫(כמו‬
‫ל‬ ‫נשאף‬-coupling‫שיהיה‬Loose or Low‫ל‬ ‫ולא‬-tight.
‫ה‬ ‫את‬ ‫להעריך‬ ‫בבואנו‬-coupling:‫הבאים‬ ‫הדברים‬ ‫את‬ ‫בחשבון‬ ‫ניקח‬ ,‫מודול‬ ‫של‬
oDegree–‫מספר‬.‫לאחרים‬ ‫אחד‬ ‫מודול‬ ‫שבין‬ ‫הקשרים‬‫על‬ ‫לשמור‬ ‫נשאף‬
degree‫למשל‬ .‫נמוך‬‫מספר‬ ‫דרך‬ ‫אחרים‬ ‫מודולים‬ ‫עם‬ ‫לתקשר‬ ‫צריך‬ ‫מודול‬ ‫אם‬ ,
‫ה‬ ‫אז‬ ,‫צרים‬ ‫ממשקים‬ ‫או‬ ‫פרמטרים‬-degree‫וה‬ ‫נמוך‬ ‫יהיה‬-coupling‫יהיה‬
.‫משוחרר‬
oEase–‫אומר‬‫"כמה‬‫ב‬ ."‫ומובנים‬ ‫ברורים‬ ‫לאחרים‬ ‫מודול‬ ‫שבין‬ ‫הקשרים‬-
coupling‫המימוש‬ ‫את‬ ‫להבין‬ ‫הצורך‬ ‫בלי‬ ‫לביצוע‬ ‫קלים‬ ‫יהיו‬ ‫שהקשרים‬ ‫נרצה‬
.‫אחרים‬ ‫מודולים‬ ‫של‬
oFlexibility–‫זה‬‫ב‬ .‫בנוכחי‬ ‫האחרים‬ ‫המודולים‬ ‫את‬ ‫להחליף‬ ‫קל‬ ‫כמה‬ ‫עד‬-
coupling.‫בעתיד‬ ‫בקלות‬ ‫תחליף‬ ‫לקבל‬ ‫יוכלו‬ ‫אחרים‬ ‫שמודולים‬ ‫נרצה‬
Cohesion.‫מודול‬ ‫של‬ ‫האחריויות‬ ‫ברורות‬ ‫כמה‬ ‫מציין‬
High cohesion–‫מתקיים‬‫מטרה‬ ‫לו‬ ‫שיש‬ ‫או‬ ,‫בלבד‬ ‫אחת‬ ‫משימה‬ ‫מבצע‬ ‫המודול‬ ‫אם‬
.‫ברורה‬
Low cohesion–‫מתקיים‬‫אם‬( ‫לכמס‬ ‫מנסה‬ ‫המודול‬Encapsulate)‫ממטרה‬ ‫יותר‬
.‫ברורה‬ ‫לא‬ ‫מטרה‬ ‫לו‬ ‫שיש‬ ‫או‬ ,‫אחת‬
‫ל‬ ‫נשאף‬-Chi-Cohesion.
.‫לפצל‬ ‫הזמן‬ ‫כניראה‬ ‫זה‬ ,‫אחת‬ ‫מאחריות‬ ‫יותר‬ ‫שלנו‬ ‫למודול‬ ‫ויש‬ ‫במידה‬
‫ורע‬ ‫לטוב‬ ‫דוגמאות‬:
‫למחלקה‬.‫מהסנסור‬ ‫וטמפרטורה‬ ‫לחות‬ ‫לקבל‬ :‫מטרות‬ ‫שתי‬ ‫זו‬
‫אז‬ ,‫ברורה‬ ‫אחת‬ ‫מטרה‬ ‫אין‬ ‫זו‬ ‫ולמחלקה‬ ‫מאחר‬‫מ‬ ‫סובלת‬ ‫שהיא‬ ‫י‬-Low Cohesion.
‫להבין‬ ‫בכדי‬ ‫אותה‬ ‫ולקרוא‬ ,‫המחלקה‬ ‫את‬ ‫לפתוח‬ ‫יצטרך‬ ‫זו‬ ‫מחלקה‬ ‫של‬ ‫ולקוח‬ ‫מאחר‬
‫פונקציית‬ ‫עושה‬ ‫מה‬get.‫ברורה‬ ‫לא‬ ‫כאן‬ ‫שהמטרה‬ ‫הריי‬ ,
‫לא‬ ‫זה‬Loose Coupling.
‫ברור‬ ‫שלא‬ ‫מה‬–‫של‬ ‫המשמעות‬ ‫מה‬controlFlag‫כדי‬ ‫במחלקה‬ ‫להציץ‬ ‫שצריך‬ ‫כך‬ ,
‫אנק‬ ‫מספק‬ ‫לא‬ ‫זה‬ .‫לתת‬ ‫ערך‬ ‫איזה‬ ‫על‬ ‫להחליט‬‫ב‬ ‫פגם‬ ‫ישנו‬ ‫כן‬ ‫וכמו‬ ‫פסולציה‬-Ease‫כי‬ ,
,‫ברורה‬ ‫אינה‬ ‫המתודה‬.‫במתודה‬ ‫להשתמש‬ ‫עלינו‬ ‫מקשה‬ ‫שזה‬ ‫כך‬
:‫יהיה‬ ‫מחלקה‬ ‫לכל‬ ‫ברורה‬ ‫מטרה‬ ‫עם‬ ‫תקין‬ ‫עיצוב‬
‫המחלקות‬ ‫תוכן‬ ‫את‬ ‫להבין‬ ‫כדי‬ ‫אנקפסולציה‬ ‫להפר‬ ‫נצטרך‬ ‫לא‬.
‫שמתודת‬ ‫להניח‬ ‫הגיוני‬ ‫יהיה‬ ‫זה‬ ‫כאן‬get‫וכן‬ ,‫הלחות‬ ‫את‬ ‫מחזירה‬ ‫הלחות‬ ‫חיישני‬ ‫של‬
‫שמתודת‬get.‫טמפרטורה‬ ‫מחזירה‬ ‫הטמפרטורה‬ ‫חיישני‬ ‫של‬
‫יהיה‬ ‫אלו‬ ‫במחלקות‬ ‫שימוש‬ ‫שיעשה‬ ‫אחר‬ ‫מודול‬ ‫זה‬ ‫באופן‬loosely coupled.
‫סמכויות‬ ‫הפרדת‬
‫אח‬,‫תוכנה‬ ‫עיצוב‬ ‫עקרונות‬ ‫של‬ ‫המטרות‬ ‫ת‬:‫שהיא‬ ‫מערכת‬ ‫ליצור‬ ‫לנו‬ ‫לעזור‬ ‫הינה‬
.‫לתחזוקה‬ ‫ניתנת‬ ,‫חוזר‬ ‫לשימוש‬ ‫ניתנת‬ ,‫גמישה‬
( ‫סמכויות‬ ‫הפרדת‬ :‫נקרא‬ ‫אלה‬ ‫מעקרונות‬ ‫אחד‬Separation Of Concerns).
Concern–‫מושג‬.‫לבעיה‬ ‫פתרון‬ ‫במתן‬ ‫שחשוב‬ ‫דבר‬ ‫כל‬ ‫הוא‬ ‫שבבסיסו‬ ,‫כללי‬ ‫מאוד‬
‫בסופרמרקט‬ ‫למשל‬–‫הדאגה‬‫אופה‬ ‫אני‬ ‫איך‬ ,‫הבשר‬ ‫את‬ ‫קוצץ‬ ‫אני‬ ‫איך‬ ,‫להיות‬ ‫יכולה‬
‫אלה‬ ‫דאגות‬ .‫המדפים‬ ‫את‬ ‫מאחסן‬ ‫אני‬ ‫ואיך‬ ,‫תשלום‬ ‫אכבד‬ ‫אני‬ ‫איך‬ ,‫הלחם‬ ‫את‬
.‫אדם‬ ‫בני‬ ‫לשרת‬ ‫בכדי‬ ‫העסק‬ ‫את‬ ‫מפעילים‬ ‫כאשר‬ ‫חשובות‬
?‫אלה‬ ‫בעיות‬ ‫עם‬ ‫להתמודד‬ ‫בכדי‬ ‫מאורגן‬ ‫הסופר‬ ‫כיצד‬ ‫אז‬
‫דאגה‬ ‫בכל‬ ‫מתמקדות‬ ‫אשר‬ ‫בסופרמרקט‬ ‫נפרדות‬ ‫מחלקות‬ ‫ישנן‬‫ת‬ ‫מציגה‬ ‫דאגה‬ ‫כל‬ .‫ת‬-
.‫שלה‬ ‫הספציפיות‬ ‫לדאגות‬ ‫לפנות‬ ‫ואיך‬ ‫לעשות‬ ‫מה‬ ‫יודעת‬ ‫מחלקה‬ ‫וכל‬ ‫ייחודיות‬ ‫בעיות‬
‫דו‬ ‫באופן‬.‫בעיה‬ ‫ופותרת‬ ‫מתנהלת‬ ‫תוכנה‬ ‫מערכת‬ ‫גם‬ ‫מה‬
‫י‬‫שיכ‬ ‫מושגים‬ ‫שנם‬‫להיות‬ ‫ולים‬‫מופשטים‬.‫הבעיה‬ ‫מרחב‬ ‫סמך‬ ‫על‬
‫איך‬‫שהפשטות‬‫ממומשו‬ ‫אלה‬‫ב‬ ‫ת‬.‫דאגות‬ ‫לעוד‬ ‫להוביל‬ ‫יכול‬ ,‫תוכנה‬‫אלה‬ ‫מדאגות‬ ‫חלק‬
‫עשויים‬‫של‬ ‫בסופו‬ ‫מוצג‬ ‫מה‬ ?‫מפעיל‬ ‫הוא‬ ‫מה‬ ?‫מייצג‬ ‫המימוש‬ ‫מידע‬ ‫איזה‬ :‫לכלול‬
?‫דבר‬
‫שאנחנו‬ ‫איך‬ ‫את‬ ‫מבטאים‬ ‫אנו‬ ,‫ובנייתה‬ ‫התוכנה‬ ‫פתרון‬ ‫עיצוב‬ ‫ברגע‬‫לפנות‬ ‫יכולים‬
‫לתתי‬-‫ל‬ ‫פיצולם‬ ‫ע"י‬ ,‫השונות‬ ‫הבעיות‬-Separate Sections.
‫מפתח‬ ‫רעיון‬ ‫הינו‬ ‫דאגות‬ ‫פיצול‬‫ב‬ ‫שמופעל‬.‫והתכנות‬ ‫עצמים‬ ‫המונחה‬ ‫המידול‬ ‫עת‬
‫מ‬ ‫כאשר‬ ‫מופרדות‬ ‫החשובות‬ ‫הדאגות‬:‫שלמדנו‬ ‫העיצוב‬ ‫עקרונות‬ ‫את‬ ‫פעילים‬
Abstraction, Encapsulation and Generalization.
‫רעיון‬ ‫כל‬.‫משלו‬ ‫והתנהגויות‬ ‫מאפיינים‬ ‫עם‬ ,‫נפרד‬ ‫למכשול‬ ‫מוביל‬ ‫הבעיה‬ ‫שבמרחב‬
( ‫נכמסים‬ ‫אלה‬ ‫והתנהגויות‬ ‫מאפיינים‬Encapsulated)‫משלהם‬ ‫קוד‬ ‫מחיצת‬ ‫לתוך‬
‫הנקראת‬.‫מחלקה‬
‫המערכת‬ ‫שאר‬ ‫ע"י‬ ‫המחלקה‬ ‫נראות‬‫כך‬ .‫נפרדות‬ ‫הן‬ ‫שלה‬ ‫והמימוש‬‫המימוש‬ ‫שמאפייני‬
.‫להשמר‬ ‫יכולה‬ ‫ממשק‬ ‫שדרך‬ ‫שהנראות‬ ‫בעוד‬ ,‫להשתנות‬ ‫יכולים‬
.‫רבות‬ ‫ממחלקות‬ ‫כחלק‬ ‫מורכבת‬ ‫להיות‬ ‫יכולה‬ ‫מחלקה‬ ‫כן‬ ‫כמו‬
‫נוכל‬‫ג‬ ‫לזהות‬‫לתוך‬ ‫ויוכללו‬ ‫יופרדו‬ ‫מכן‬ ‫שלאחר‬ ,‫מחלקות‬ ‫בין‬ ‫משותפים‬ ‫ורמים‬Super
Class.
,‫רואים‬ ‫שאנו‬ ‫כפי‬ ‫אזי‬Separation Of Concerns‫תהליך‬ ‫לאורך‬ ‫המתמשך‬ ‫תהליך‬ ‫הינו‬
.‫העיצוב‬
‫דוגמה‬–‫למחלקת‬ ‫ההאכלה‬ ‫ואת‬ ‫שלו‬ ‫למחלקה‬ ‫כלב‬ ‫של‬ ‫האכילה‬ ‫פעולת‬ ‫פיצול‬
.‫בעלים‬
rmation HidingInfo
.‫טוב‬ ‫מאורגנת‬ ‫להיות‬ ‫צריכה‬ ‫היא‬ ,‫טוב‬ ‫מעוצבת‬ ‫תהיה‬ ‫שמערכת‬ ‫כדי‬
‫לגישה‬ ‫שלנו‬ ‫בהתייחסות‬ ‫נדון‬ ‫ופה‬ ‫שונים‬ ‫עיצוב‬ ‫עקרונות‬ ‫עם‬ ‫זאת‬ ‫עושים‬ ‫איך‬ ‫ראינו‬
.‫למידע‬
.‫עבודתו‬ ‫לביצוע‬ ‫שרלוונטי‬ ‫למידע‬ ‫רק‬ ‫גישה‬ ‫להיות‬ ‫צריכה‬ ‫כלשהו‬ ‫למודול‬
‫נגבי‬."‫מידע‬ ‫"הסתרת‬ ‫באמצעות‬ ‫השונים‬ ‫המודולים‬ ‫של‬ ‫גישה‬ ‫ל‬
‫מידע‬ ‫הסתרת‬–‫מאפשר‬‫הכמות‬ ‫את‬ ‫לאחרים‬ ‫לתת‬ ‫שלנו‬ ‫המערכת‬ ‫של‬ ‫למודולים‬
‫של‬ ‫המינימלית‬.‫אחר‬ ‫דבר‬ ‫כל‬ ‫להסתיר‬ ‫ובכדי‬ ,‫נכון‬ ‫בהם‬ ‫להשתמש‬ ‫כדי‬ ‫הנדרשת‬ ‫מידע‬
‫לי‬ ‫מאפשר‬ ‫זה‬ ‫דבר‬–,‫המפתח‬‫אחרים‬ ‫שמפתחים‬ ‫מבלי‬ ‫בנפרד‬ ‫מודול‬ ‫על‬ ‫לעבוד‬
.‫המודול‬ ‫של‬ ‫המימוש‬ ‫פרטי‬ ‫את‬ ‫לדעת‬ ‫צריכים‬
‫ה‬ ‫באמצעות‬ ‫זה‬ ‫במודול‬ ‫להשתמש‬ ‫יכולים‬ ‫הם‬ ‫כך‬-interface.‫שלו‬
‫בא‬‫שעש‬ ‫דברים‬ ,‫כללי‬ ‫ופן‬‫פר‬ ‫כמו‬ ,‫להשתנות‬ ‫ויים‬.‫מוסתרים‬ ‫להיות‬ ‫צריכים‬ ,‫מימוש‬ ‫טי‬
‫שאינ‬ ‫ודברים‬‫ממשקים‬ ‫דרך‬ ‫נחשפים‬ ,‫האחריויות‬ ‫כמו‬ ,‫להשתנות‬ ‫צריכים‬ ‫ם‬
(interfaces).
‫עם‬ ‫נקשרת‬ ‫בדר"כ‬ ‫מידע‬ ‫הסתרת‬Encapsulation.
Information Hiding through Encapsulation
‫משתמש‬ ‫אנו‬‫מאפיינים‬ ‫לקשור‬ ‫כדי‬ ‫באנקפסולציה‬ ‫ים‬‫המחלקה‬ ‫לתוך‬ ‫והתנהגויות‬
.‫גישה‬ ‫שיספק‬ ‫ממשק‬ ‫לחשוף‬ ‫וכדי‬ ,‫שלהם‬ ‫המתאימה‬
‫א‬‫כיוון‬ ,‫ההתנהגויות‬ ‫של‬ ‫המימוש‬ ‫את‬ ‫להסתיר‬ ‫יעיל‬ ‫באופן‬ ,‫דואגת‬ ‫כבר‬ ‫נקפסולציה‬
.‫ספציפיות‬ ‫מתודות‬ ‫של‬ ‫הממשק‬ ‫דרך‬ ‫הינה‬ ‫היחידה‬ ‫שהגישה‬
‫יכולו‬ ‫אחרות‬ ‫מחלקות‬‫המי‬ ‫על‬ ‫להסתמך‬ ‫רק‬ ‫ת‬,)‫(ותיעוד‬ ‫מספקת‬ ‫המתודה‬ ‫שחתימת‬ ‫דע‬
.‫עצמו‬ ‫המימוש‬ ‫על‬ ‫ולא‬
‫המ‬ ‫את‬ ‫לשנות‬ ‫לנו‬ ‫מאפשרת‬ ‫אנקפסולציה‬.‫הנדרשת‬ ‫התוצאה‬ ‫את‬ ‫לשנות‬ ‫בלי‬ ‫ימוש‬
:‫דוגמה‬
String a = "Hello";
;)("World"concatString b = a.
Concat.‫המימוש‬ ‫פרטי‬ ‫ידועים‬ ‫ולא‬ ‫ממשק‬ ‫דרך‬ ‫נחשף‬
‫להסתיר‬ ‫ניתן‬ ,‫כן‬ ‫כמו‬attributes‫במחלקה‬ ‫קריטי‬ ‫מידע‬ ‫של‬ ‫שינוי‬ ‫יתאפשר‬ ‫שלא‬ ‫בכדי‬ ,
‫ישנו‬ ‫אם‬ ‫למשל‬ .‫ישיר‬ ‫באופן‬attribute‫נרצה‬ ‫לא‬ ,‫במחלקה‬ ‫מתודות‬ ‫מספר‬ ‫שמשמש‬
‫למחלקה‬ ‫מחוצה‬ ‫להשתנות‬ ‫שיוכל‬.
‫באמצעות‬ ‫מתאפשרת‬ ‫המידע‬ ‫הסתרת‬Access Modifiers.)‫גישה‬ ‫(הרשאות‬
Access Modifiers–‫מגדירים‬‫י‬ ‫חיצוניות‬ ‫מחלקות‬ ‫האם‬‫למאפיינים‬ ‫לגשת‬ ‫וכלו‬
.‫ילדיה‬ ‫עם‬ ‫תשתף‬ ‫אב‬ ‫מחלקת‬ ‫והתנהגויות‬ ‫מאפיינים‬ ‫איזה‬ ‫מגדירים‬ ‫וכן‬ ,‫ולהתנהגויות‬
‫ב‬-JAVA:public, protected , default, private.
Public–‫נגיש‬.)‫להתנהגויות‬ ‫מימוש‬ ‫שינוי‬ ‫מאפשר‬ ‫(לא‬ ‫במערכת‬ ‫מחלקה‬ ‫לכל‬
Protected–‫נגיש‬‫באותו‬ ‫ולמחלקות‬ ,‫יורשות‬ ‫למחלקות‬ ,‫המכילה‬ ‫למחלקה‬package.
Default–‫נראה‬‫כמו‬protected.
Private–‫רק‬.‫המכילה‬ ‫למחלקה‬
‫ירושה‬ ‫בעיות‬
‫הקדמה‬
OOD.‫תוכנה‬ ‫של‬ ‫בחלק‬ ‫אותם‬ ‫ולמדל‬ ‫הבעיה‬ ‫בעולם‬ ‫מושגים‬ ‫לקחת‬ ‫מנסה‬
‫בהינ‬‫באמצעות‬ ‫שלנו‬ ‫המודלים‬ ‫את‬ ‫לזקק‬ ‫עלינו‬ ,‫מורכבת‬ ‫להיות‬ ‫יכולה‬ ‫הבעיה‬ ‫כמה‬ ‫תן‬
‫עקרונ‬.‫והכללה‬ ‫הרכבה‬ ,‫אנקפסולציה‬ ,‫אבסטרקציה‬ :‫עיצוב‬ ‫ות‬
‫לקב‬ ‫מצריך‬ ‫אלו‬ ‫מעקרונות‬ ‫אחד‬ ‫כל‬.‫שלי‬ ‫במערכת‬ ‫אותם‬ ‫ליישם‬ ‫איך‬ ‫לגביי‬ ‫החלטה‬ ‫ל‬
Abstraction–‫איזה‬?‫צריך‬ ‫והתנהגויות‬ ‫מאפיינים‬
Encapsulation–‫כיצד‬‫נ‬‫ו‬ ‫המאפיינים‬ ‫את‬ ‫יחדיו‬ ‫קבץ‬‫תכונו‬‫תתאפשר‬ ‫כיצד‬ ?‫אלה‬ ‫ת‬
?‫אליהם‬ ‫הגישה‬
Decomposition–‫האם‬?‫יותר‬ ‫קטנים‬ ‫לחלקים‬ ‫שלי‬ ‫המחלקות‬ ‫את‬ ‫לפשט‬ ‫ניתן‬
Generalization–‫האם‬?‫להכליל‬ ‫שניתן‬ ‫שלי‬ ‫האוביקטים‬ ‫מבין‬ ‫משותפים‬ ‫דברים‬ ‫ישנם‬
‫וירושה‬ ‫הכללה‬
‫ניתנות‬ ,‫נקיות‬ ‫תוכנה‬ ‫מערכות‬ ‫ליצירת‬ ‫לתרום‬ ‫שיכול‬ ‫חזק‬ ‫עיצוב‬ ‫כלי‬ ‫הינה‬ ‫נכונה‬ ‫ירושה‬
.‫חוזר‬ ‫ולשימוש‬ ‫לתחזוקה‬
?‫בירושה‬ ‫לרעה‬ ‫משתמשים‬ ‫שאנו‬ ‫נדע‬ ‫איך‬
‫ישנן‬.‫ירושה‬ ‫מסתמנת‬ ‫כאשר‬ ‫אליהן‬ ‫מודעים‬ ‫להיות‬ ‫נקודות‬ ‫מספר‬
o‫ע‬ ‫את‬ ‫נשאל‬‫צמינו‬–"‫מאפיינים‬ ‫לשתף‬ ‫כדי‬ ‫בירושה‬ ‫משתמש‬ ‫אני‬ ‫האם‬
‫לתתי‬ ‫אחרת‬ ‫משמעותית‬ ‫תוספת‬ ‫כל‬ ‫ללא‬ ,‫והתנהגויות‬-?‫שלי‬ ‫המחלקות‬‫אם‬
‫אב‬ ‫מחלקת‬ ‫כזה‬ ‫במיקרה‬ .‫בירושה‬ ‫לרעה‬ ‫משתמש‬ ‫אני‬ ‫אז‬ ‫כן‬ ‫היא‬ ‫התשובה‬
.‫בנים‬ ‫ללא‬ ‫מספיקה‬
‫דוגמה‬–‫נניח‬‫עושים‬ ‫ואנו‬Design‫מגוון‬ ‫כל‬ ‫את‬ ‫למדל‬ ‫עלינו‬ .‫לפיצרייה‬‫הפיצות‬
‫בהינתן‬ .‫שלה‬ ‫בתפריט‬ ‫שיש‬‫תוספות‬ ‫של‬ ‫הקומבינציות‬ ‫כל‬‫לפי‬ ‫והשמות‬,‫צות‬
‫במחלקת‬ ‫להשתמש‬ ‫מספיק‬ ‫זה‬ ‫יהיה‬ ‫אך‬ ,‫בירושה‬ ‫להשתמש‬ ‫מפתה‬ ‫זה‬ ‫יהיה‬
.‫אב‬
o‫עקרון‬ ‫של‬ ‫שבירה‬–Liskov Substitution‫תת‬ :‫אומר‬ ‫זה‬ ‫עקרון‬ .-‫יכולה‬ ‫מחלקה‬
‫תת‬ ‫אם‬ ‫ורק‬ ‫אם‬ ‫האב‬ ‫מחלקת‬ ‫את‬ ‫להחליף‬-‫את‬ ‫משנה‬ ‫אינה‬ ‫המחלקה‬
‫הפונקציו‬.‫האב‬ ‫מחלקת‬ ‫של‬ ‫נליות‬
‫חיה‬ ‫היורשת‬ ‫לוויתן‬ ‫במחלקת‬ :‫זה‬ ‫עקרון‬ ‫להפרת‬ ‫דוגמה‬
‫ממחלקת‬ ‫מצפים‬ ‫שהיינו‬ ‫כפי‬ ‫מתנהג‬ ‫אינו‬ ‫שהלוויתן‬ ‫כלומר‬
)‫(חיה‬ ‫האב‬.‫להתנהג‬
‫הצו‬ ‫את‬ ‫תואמת‬ ‫אינה‬ ‫וירושה‬ ‫במידה‬‫האם‬ ‫נשקול‬ ,‫שלנו‬ ‫רך‬
Decomposition.‫יותר‬ ‫הולם‬ ‫פתרון‬ ‫יהיה‬
.‫מירושה‬ ‫עדיפה‬ ‫הרכבה‬ ‫בסמרטפון‬ ‫לדוגמה‬‫לסמרטפון‬
‫המיד‬ .‫ומצלמה‬ ‫טלפון‬ ‫כמו‬ ‫מאפיינים‬‫שראינו‬ ‫כפי‬ ‫הוא‬ ‫ול‬
‫כיצד‬ ‫לדעת‬ ‫צריך‬ ‫לא‬ ‫הסמרטפון‬ ‫כאשר‬ ,‫קודמים‬ ‫בפרקים‬
‫לבנות‬ ‫שעלינו‬ ‫נזכור‬ .‫עובדות‬ ‫ומצלמה‬ ‫טלפון‬ ‫של‬ ‫המחלקות‬
‫שהן‬ ‫מערכות‬Reusable, Flexible and Maintainable.
‫בעיצוב‬ ‫אוביקטים‬ ‫של‬ ‫קטגויות‬
‫לתתי‬ ‫שלנו‬ ‫האוביקטים‬ ‫את‬ ‫מפרקטים‬ ‫אנו‬ ‫כאשר‬-‫של‬ ‫שונים‬ ‫סוגים‬ ‫לזהות‬ ‫ניתן‬ ,‫אוביקטים‬
.‫אוביקטים‬
‫כל‬ ‫באופן‬.‫אוביקטים‬ ‫של‬ ‫סוגים‬ ‫שלושה‬ ‫שינם‬ ‫לי‬
( ‫ישות‬ ‫אוביקטי‬Entity)–‫הם‬‫יישוי‬ ‫לאיזשהם‬ ‫מתאימים‬ ‫שהם‬ ‫כיוון‬ ,‫מוכרים‬ ‫הכי‬‫של‬ ‫ות‬
‫הבע‬ ‫במרחב‬ ‫האמיתי‬ ‫העולם‬.)‫יישות‬ ‫אוביקט‬ ‫הוא‬ ‫אז‬ ,‫כיסא‬ ‫שמייצג‬ ‫אוביקט‬ ‫לי‬ ‫יש‬ ‫(אם‬ ‫יה‬
‫ב‬‫אוביק‬ ‫כללי‬ ‫אופן‬‫של‬ ‫התכונות‬ ‫על‬ ‫ידעו‬ ‫אלו‬ ‫טים‬‫ויהיו‬ ,‫עצמם‬ ‫את‬ ‫לשנות‬ ‫יוכלו‬ ‫גם‬ ‫הם‬ .‫עצמם‬
‫כאשר‬ .‫זאת‬ ‫לעשות‬ ‫איך‬ ‫לגביי‬ ‫חוקים‬ ‫להם‬‫ונפרק‬ ,‫לתוכנה‬ ‫שנכניס‬ ‫האוביקטים‬ ‫את‬ ‫נזהה‬
‫אותם‬‫הק‬ .‫היישות‬ ‫אוביקטי‬ ‫את‬ ‫נזהה‬ ‫תחילה‬ ‫אנחנו‬ ,‫קטנים‬ ‫יותר‬ ‫לאוביקטים‬‫טגוריות‬
.‫התוכנה‬ ‫של‬ ‫הטכני‬ ‫העיצוב‬ ‫על‬ ‫לחשוב‬ ‫נתחיל‬ ‫כאשר‬ ,‫מאוחר‬ ‫יותר‬ ‫יגיעו‬ ‫האחרות‬
( ‫ממשק‬ ‫אוביקטי‬Boundary)–‫אלה‬‫מע‬ ‫שבין‬ ‫הגבול‬ ‫על‬ ‫שיושבים‬ ‫אוביקטים‬‫יכול‬ ‫זה‬ .‫רכות‬
‫אחרת‬ ‫תוכנה‬ ‫מערכת‬ ‫מול‬ ‫שעובד‬ ‫אוביקט‬ ‫להיות‬–‫כמו‬.‫מהאינטרנט‬ ‫מידע‬ ‫שמכיל‬ ‫אוביקט‬
‫אוב‬ ‫להיות‬ ‫יכול‬ ‫זה‬‫ממנו‬ ‫לקבל‬ ‫וכן‬ ,‫למשתמש‬ ‫מידע‬ ‫להציג‬ ‫אחריות‬ ‫עם‬ ‫יקט‬input‫אנו‬ ‫אם‬ .
‫משתמש‬ ‫ממשק‬ ‫מפתחים‬–‫האספקט‬‫סבי‬ ,‫התוכנה‬ ‫של‬ ‫הויזואלי‬‫בעיקר‬ ‫שאנחנו‬ ‫להניח‬ ‫ר‬
‫כל‬ .‫ממשק‬ ‫אוביקטי‬ ‫על‬ ‫עובדים‬‫אוביק‬‫עם‬ ‫מתמודד‬ ‫אשר‬ ‫ט‬‫אחרת‬ ‫מערכת‬‫(מול‬,‫משתמש‬
.‫ממשק‬ ‫אוביקט‬ ‫להוות‬ ‫יכול‬ ,)‫האינטרנט‬ ‫או‬ ,‫אחרת‬ ‫מערכת‬
( ‫בקרה‬ ‫אוביקטי‬Control)–‫אלה‬‫תיאום/תי‬ ‫על‬ ‫האחראים‬ ‫אוביקטים‬ ‫הם‬‫אוביקט‬ ‫נגלה‬ .‫ווך‬‫ים‬
‫שישלוט‬ ‫אוביקט‬ ‫להחזיק‬ ‫תורם‬ ‫זה‬ ‫את‬ ‫נמצא‬ ‫וכאשר‬ ,‫גדול‬ ‫אוביקט‬ ‫לפרק‬ ‫כשננסה‬ ‫כאלה‬
.‫האחרים‬ ‫האוביקטים‬ ‫על‬‫למצוא‬ ‫נוכל‬‫דוגמאות‬.‫העיצוב‬ ‫בתבניות‬ ‫לכך‬ ‫רבות‬
‫חזקה‬ ‫דוגמה‬–PatternMediator‫האובי‬ ‫של‬ ‫הפעילויות‬ ‫בין‬ ‫מתאמת‬ ‫אשר‬‫השונים‬ ‫קטים‬
‫סטטוס‬ ‫שנשמר‬ ‫כך‬Loosely Coupled.
‫של‬ ‫דוגמה‬Mediator‫הינה‬chat‫פעולות‬ ‫יש‬ ‫לצ'אט‬ .‫המשתתפים‬ ‫בין‬ ‫מתווך‬ ‫אשר‬Register
& Send‫שאליו‬ ‫הצ'ט‬ ‫את‬ ‫מכיר‬ ‫משתתף‬ ‫כל‬ .‫פעולות‬ ‫לו‬ ‫ויש‬ ‫מחובר‬ ‫הוא‬Send & Receive.

More Related Content

PPTX
תיכנון נכון - שחר סעדו
PDF
איך חותכים עיצוב כמו נינג'ות בשנת 2013
PDF
Sales Kit To Be Excellent Account Manager By Zion Levi
PPTX
קורס אנדרואיד
PDF
Angular 2 introduction
PDF
291210773 new-cto-architect-2015
PDF
351141071 big-data-2016
PDF
PWR Labs 2020 Course Catalogue
תיכנון נכון - שחר סעדו
איך חותכים עיצוב כמו נינג'ות בשנת 2013
Sales Kit To Be Excellent Account Manager By Zion Levi
קורס אנדרואיד
Angular 2 introduction
291210773 new-cto-architect-2015
351141071 big-data-2016
PWR Labs 2020 Course Catalogue

Similar to Object oriented analysis and design by alberta university - Typed (20)

PDF
107 HTML & CSS
PDF
Pwr Labs 2020 course catalogue
PPT
Private cloudwarnings
PDF
PWRLabs 2020 Course Catalogue
PDF
Business Models in the Creative Industry - B (Hebrew)
PDF
UPA I srael event 2011- Ignite
PDF
Adobe Creative Cloud For Teams
PPTX
מערכות מסחר מקוונות – מה נכון (dan@codecape.com)
PDF
Uxi live 2011 yaniv michaeli_cloud_ux
PPT
Rm saa s for share 2
PPT
Rm saa s for share 2
PPT
Rm saa s for share
PDF
דרופל וחווית משתמש
PPT
Spec template and mapping to derivatives of a product
PDF
Agile For Website Managers
PDF
STKI's Israeli IT Vendor Discovery Newsletter 4q2011
PDF
מהי אנליזה סטטית?
PPT
Dover is now a Noetix Disributer
PDF
213313799 dbms-2013
PDF
חוברת קבלנים למייל
107 HTML & CSS
Pwr Labs 2020 course catalogue
Private cloudwarnings
PWRLabs 2020 Course Catalogue
Business Models in the Creative Industry - B (Hebrew)
UPA I srael event 2011- Ignite
Adobe Creative Cloud For Teams
מערכות מסחר מקוונות – מה נכון (dan@codecape.com)
Uxi live 2011 yaniv michaeli_cloud_ux
Rm saa s for share 2
Rm saa s for share 2
Rm saa s for share
דרופל וחווית משתמש
Spec template and mapping to derivatives of a product
Agile For Website Managers
STKI's Israeli IT Vendor Discovery Newsletter 4q2011
מהי אנליזה סטטית?
Dover is now a Noetix Disributer
213313799 dbms-2013
חוברת קבלנים למייל
Ad

Object oriented analysis and design by alberta university - Typed

  • 1. Object Oriented Analysis and Design by Alberta University ‫יש‬ ‫שלי‬ ‫לפרויקט‬ ‫האם‬Design?‫טוב‬ ‫ה‬ ‫את‬ ‫לשפר‬ ‫ניתן‬ ‫האם‬-Design? ‫בכלל‬ ‫שם‬ ‫יש‬ ‫האם‬Design? ‫יש‬ ‫שלתוכנה‬ ‫נדע‬ ‫איך‬Design?‫טוב‬ ?‫בקוד‬ ‫מקומות‬ ‫בעוד‬ ‫לשינויים‬ "‫גל‬ ‫"אפקט‬ ‫יוצר‬ ‫שלנו‬ ‫בקוד‬ ‫קטן‬ ‫שינוי‬ ‫האם‬ ( ‫שלי‬ ‫בקוד‬ ‫חוזר‬ ‫שימוש‬ ‫לעשות‬ ‫קשה‬ ‫האם‬Reuse?) ‫אחרי‬ ‫שלי‬ ‫הקוד‬ ‫את‬ ‫לתחזק‬ ‫קשה‬ ‫האם‬Release? ‫וניתן‬ ,‫חוזר‬ ‫לשימוש‬ ‫ניתן‬ ,‫גמיש‬ :‫יותר‬ ‫להיות‬ ‫שלי‬ ‫לקוד‬ ‫יגרום‬ ‫נכון‬ ‫עצמים‬ ‫מונחה‬ ‫תכנון‬ .‫לתחזוקה‬ ‫מודול‬1: SW-Design‫באספקט‬ ‫מבחינה‬ :( ‫הנמוכים‬ ‫ים‬Low-level).‫המערכת‬ ‫של‬ SW-Architecture( ‫הגבוהים‬ ‫באספקטים‬ ‫מבחינה‬ :High-Level.‫המערכת‬ ‫של‬ ) ‫המלצה‬‫בקוד‬ ‫פשטות‬ ‫על‬ ‫לשמור‬ :–‫אם‬.‫נכון‬ ‫שזה‬ ‫כניראה‬ ,‫פשוט‬ ‫זה‬ ,‫גמיש‬ ,‫מאורגן‬ ‫נשאר‬ ‫הקוד‬ ,‫בקוד‬ ‫דברים‬ ‫לייצוג‬ ‫באוביקטים‬ ‫שימוש‬ ‫ע"י‬‫ו‬‫לשימוש‬ ‫ניתן‬ .‫חוזר‬ ‫מאורגן‬–"‫ע‬‫ספציפ‬ ‫ופונקציות‬ ‫קשורים‬ ‫מאפיינים‬ ‫השמת‬ ‫י‬‫ברור‬ ‫במקום‬ ‫יות‬ .‫אותו‬ ‫למצוא‬ ‫ושקל‬ ‫גמיש‬–‫בתוך‬ ‫מודולרי‬ ‫באופן‬ ,‫בקלות‬ ‫להשתנות‬ ‫יכולים‬ ‫המאפיינים/הפרטים‬ .‫הקוד‬ ‫יתר‬ ‫על‬ ‫השפעה‬ ‫ללא‬ ,‫האוביקט‬ ‫חוזר‬ ‫לשימוש‬ ‫ניתן‬–‫אוביקטים‬‫לכתוב‬ ‫שצריך‬ ‫הקוד‬ ‫כמות‬ ‫את‬ ‫מפחיתים‬ .‫פשוטות‬ ‫תוכניות‬ ‫על‬ ‫ושומרים‬ ‫לעצמם‬ ‫מודעים‬ ‫אוביקטים‬: .‫מיקומו‬ ‫ואת‬ ‫מימדיו‬ ‫את‬ ‫מכיר‬ ‫כיסא‬ .‫שלו‬ ‫המפרט‬ ‫את‬ ‫יודע‬ ‫פלאפון‬ ‫תוכנה‬ ‫בפיתוח‬ ‫תהליך‬: 1.‫נכתוב‬.‫הבעיה/בעיות‬ ‫על‬ ‫המבוססות‬ ‫דרישות‬ 2.‫מודל‬ ‫ניצור‬Conceptual Design‫ו‬-Technical Designed Diagrams. 3..‫בקוד‬ ‫והדיאגרמות‬ ‫המודלים‬ ‫את‬ ‫נממש‬ 4..‫טסטים‬ ‫קוד‬ ‫עם‬ ‫מראש‬ ‫להתחיל‬–‫מועד‬!!! ‫לפורענות‬ .‫והעיצוב‬ ‫הדרישות‬ ‫של‬ ‫הבנה‬ ‫חוסר‬ ‫להיות‬ ‫עשויה‬
  • 2. 1.‫דרישות‬–‫תנאים‬‫במ‬ ‫להתממש‬ ‫שחייבים‬ ‫יכולות‬ ‫או‬‫בקשת‬ ‫על‬ ‫בהתבסס‬ ‫וצר‬ .‫המשתמש/לקוח‬.‫רוצה‬ ‫הלקוח‬ ‫מה‬ ‫להבין‬ ‫חייבים‬‫יותר‬ ‫להיות‬ ‫צריך‬ ,‫לכך‬ ‫מעבר‬ ‫שק‬ ‫דברים‬ ‫עוד‬ ‫על‬ ‫לעלות‬ ‫ולנסות‬ "‫"חקרנים‬‫לדריש‬ ‫שורים‬‫לא‬ ‫שאולי‬ ‫דברים‬ ,‫ולמוצר‬ ‫ות‬ ‫שהלקוח‬ ‫דברים‬ ‫יש‬ ‫אם‬ ‫אולי‬ ‫להבין‬ .‫עליהם‬ ‫חשב‬ ‫לא‬ ‫שהלקוח‬ ‫דברים‬ ‫לחלץ‬ ‫או‬ ,‫נאמרו‬ ‫תכולות‬ ‫על‬ ‫לוותר‬ :‫להקריב‬ ‫מוכן‬ ‫שהלקוח‬ ‫דברים‬ ‫יש‬ ‫אם‬ ‫אולי‬ ‫להבין‬ .‫עליהם‬ ‫חשב‬ ‫לא‬ ‫מ‬ ‫ריצה‬ ‫בשביל‬ ‫מסויימות‬.‫יותר‬ ‫הירה‬ 2.Design–‫לאחר‬‫להפיק‬ ‫הוא‬ ‫הבא‬ ‫שלב‬ ,‫נכתב‬ ‫הדרישות‬ ‫שסט‬Conceptual Design & Technical Design. Conceptual Design–‫ניצור‬.‫דרישות‬ ‫של‬ ‫התחלתי‬ ‫סט‬ ‫באמצעות‬ ‫אותו‬ .‫התוכנה‬ ‫מוצר‬ ‫של‬ ‫מתאימות‬ ‫ואחריויות‬ ‫קשרים‬ ,‫רכיבים‬ ‫מזהה‬ ‫המודל‬ ‫סימונים‬ ‫הם‬ ‫אלה‬ .‫תפיסתיים‬ ‫דגמים‬ ‫באמצעות‬ ‫ביטוי‬ ‫לידי‬ ‫בא‬ ‫זה‬ ‫עיצוב‬ .‫יסופקו‬ ‫שהדרישות‬ ‫איך‬ ‫עבור‬ ‫התחלתית‬ ‫מחשב‬ ‫מספקים‬ ‫אשר‬ ‫ויזואליים‬ ‫לז‬ ‫נוכל‬ ‫שכזה‬ ‫דגם‬ ‫שנצייר‬ ‫ברגע‬‫לא‬ ‫שעשויים‬ ‫או‬ ‫חסרים‬ ‫אשר‬ ‫רכיבים‬ ‫הות‬ ‫עוד‬ ‫לנו‬ ‫שיוסיפו‬ ‫או‬ ‫הלקוח‬ ‫מצד‬ ‫הבהרה‬ ‫יתר‬ ‫ידרשו‬ ‫אלה‬ ‫פגמים‬ ‫ואז‬ .‫לעבוד‬ ‫עבודת‬Design. -‫הרכיב‬ ‫אחריות‬–‫משימה‬.‫לבצע‬ ‫במודול‬ ‫רכיב‬ ‫שעל‬ Technical Design–‫פה‬‫הרכיבים‬ ‫מרבית‬‫האחרויות‬ ‫כן‬ ‫וכמו‬ ,‫והקשרים‬ ‫הפי‬ ‫בתהליך‬ ‫התוכנה‬ ‫(של‬ ‫שלהם‬.‫מתוארים‬ )‫תוח‬‫מסתיים‬ ‫לא‬ ‫הטכני‬ ‫העיצוב‬ ‫זוקקו‬ ‫הרכיבים‬ ‫אשר‬ ‫עד‬‫לכדי‬‫לקבל‬ ‫כדי‬ ‫מספיקה‬ ‫ספציפיות‬.‫לפרטים‬ ‫עיצוב‬ ‫לתתי‬ ‫הרכיבים‬ ‫בפיצול‬ ‫מתחיל‬ ‫טכני‬ ‫עיצוב‬ ,‫זאת‬ ‫לבצע‬ ‫מנת‬ ‫על‬-‫קטנים‬ ‫רכיבים‬ ‫לפרטים‬ ‫מעוצבים‬ ‫שיהיו‬ ‫כך‬ ‫מספיק‬ ‫ספציפיים‬ ‫שיהיו‬ ‫ויותר‬ ‫יותר‬‫אנו‬ ‫ואז‬ . ‫תת‬ ‫עבור‬ ‫מפורט‬ ‫עיצוב‬ ‫לתת‬ ‫יכולים‬-.‫רכיב‬‫שרטוטים‬ ‫של‬ ‫רב‬ ‫מספר‬ ‫ישנו‬ .‫הרכיבים‬ ‫של‬ ‫וההתנהגות‬ ‫המבנה‬ ‫את‬ ‫לתאר‬ ‫שיכולים‬ ‫שונים‬ ‫טכניים‬ :‫להמחשה‬ ‫דוגמה‬‫מטב‬‫נית‬ ‫שני‬ ‫ומצד‬ ,‫הבית‬ ‫בתכנון‬ ‫עצמו‬ ‫בפני‬ ‫רכיב‬ ‫הוא‬ ‫ח‬‫ן‬ ‫לציי‬ ‫עשוי‬ ‫הטכני‬ ‫העיצוב‬ .‫הריצוף‬ ‫כמו‬ ‫רכיבים‬ ‫לעוד‬ ‫אותו‬ ‫לפרק‬‫שהריצוף‬ ‫ן‬ .‫הרבה‬ ‫ולאפות‬ ‫לבשל‬ ‫הולך‬ ‫הלקוח‬ ‫אם‬ ‫בייחוד‬ ,‫לניקוי‬ ‫קל‬ ‫מחומר‬ ‫ייעשה‬ .‫שלנו‬ ‫ומהצד‬ ‫הלקוח‬ ‫מצד‬ ‫פשרות‬ ‫נצטרך‬ ‫זה‬ ‫בתהליך‬ ‫גם‬ ‫לסיכום‬: .‫עצמים‬ ‫מונחה‬ ‫הינו‬ ‫שלנו‬ ‫שהעולם‬ ‫כיוון‬ ‫עצמים‬ ‫מונחה‬ ‫באופן‬ ‫למדל‬ ‫קל‬ ‫יש‬ ‫עצם‬ ‫לכל‬Details & Responsibilities‫יוד‬ ‫עצם‬ ‫וכל‬.‫שלו‬ ‫הפרטים/מאפיינים‬ ‫את‬ ‫ע‬ ‫לדוגמה‬ ‫דרישה‬(User Story) As a learner, I want to search for relevant courses through a 'search-page'. Components: courses, search-page. Search-page has responsibility: search for relevant courses.
  • 3. .‫חסרים‬ ‫רכיבים‬ ‫ישנם‬ ‫כי‬ ‫לב‬ ‫נשים‬ ‫לברורו‬ ‫הדרישות‬ ‫את‬ ‫נעשה‬‫ה‬ ‫את‬ ‫ונציג‬ ,‫יותר‬ ‫ת‬-mock-up:‫הבא‬ ‫מה‬-mock-up:‫קשרים‬ ‫מספר‬ ‫נזהה‬ ‫אנו‬ ‫הנ"ל‬ ‫של‬ ‫האחריות‬ ‫את‬ ‫למלא‬ ‫שיוכל‬ ‫כדי‬ ,‫חיפוש‬ ‫דף‬ ‫עבור‬ ,‫למשל‬‫שדה‬ ‫צריך‬ ‫הוא‬ ‫חיפוש‬ ‫לבצע‬ ‫ו‬ .‫תוצאות‬ ‫ודף‬ ‫חיפוש‬ ‫כפתור‬ ,‫חיפוש‬ .‫תוצאות‬ ‫ודף‬ ‫חיפוש‬ ‫כפתור‬ ,‫חיפוש‬ ‫לשדה‬ ‫קשרים‬ ‫לו‬ ‫שיש‬ ‫חיפוש‬ ‫לדף‬ ‫יתורגם‬ ‫גם‬ ‫זה‬ ‫כגון‬ ‫הפרטים‬ ‫שם‬ ,‫טכני‬ ‫לעיצוב‬ ‫נעבור‬ ‫רעיוני‬ ‫מעיצוב‬Components, Connections and Responsibilities.‫מימוש‬ ‫לידי‬ ‫לבוא‬ ‫יכולים‬ Components–‫לאחר‬‫הם‬ ,‫מספיק‬ ‫שזוקקו‬‫לאוספים‬ ‫מתורגמים‬,‫פונקציות‬ ‫של‬ ‫רכיבי‬ ‫או‬ ‫מחלקות‬‫ח‬ ‫מכן‬ ‫לאחר‬ .‫אחרים‬ ‫ם‬‫אל‬ ‫לקים‬‫יותר‬ ‫הרבה‬ ‫פשוטה‬ ‫בעיה‬ ‫מייצגים‬ ‫ה‬ .‫לפתח‬ ‫אינדיבידואלי‬ ‫באופן‬ ‫יכולים‬ ‫שמפתחים‬
  • 4. ‫איכויות‬‫מתחרות‬ ‫מעצבים‬ ‫כאשר‬.‫חשובות‬ ‫החלטות‬ ‫הרבה‬ ‫לבצע‬ ‫עלינו‬ ,‫הדרישות‬ ‫את‬ ‫לספק‬ ‫ובבואנו‬ ,‫תוכנה‬ -‫דרישות‬ ‫לספק‬–‫החלטות‬‫יכלל‬ ‫תוכנה‬ ‫בעיצוב‬ ‫מסויימות‬‫האיכות‬ ‫בתכונות‬ ‫איזונים‬ ‫ו‬ ,‫ביצועים‬ :‫כגון‬ ,‫השונות‬.‫ואבטחה‬ ‫נוחות‬ -‫בפתרון‬ ‫להתחרות‬ ‫יכולות‬ ‫איכויות‬ ‫איך‬ ‫על‬ ‫לחשוב‬ ‫מהותי‬ ‫זה‬ ,‫תוכנה‬ ‫מעצבים‬ ‫כאשר‬ .‫הולמת‬ ‫פשרה‬ ‫ולקבוע‬ ‫מסויימות‬ ‫סיטואציות‬ ‫תחת‬ ‫מוצע‬ -‫לרוב‬ ‫פשרות‬‫איכ‬ ,‫לאבטחה‬ ‫באשר‬ ‫יצוצו‬.‫לשוק‬ ‫זמן‬ ,‫מוצר‬ ‫ות‬ -Context–‫חשוב‬‫פתרו‬ ‫בחירת‬ ‫איזו‬ ‫לקבוע‬ ‫כדי‬.‫האיכויות‬ ‫איזון‬ ‫לשם‬ ‫נכונה‬ ‫הינה‬ ‫ן‬ ‫יצ‬ ‫נמוך‬ ‫פשע‬ ‫באיזור‬ ‫בית‬ ,‫למשל‬‫טר‬.‫גבוה‬ ‫פשע‬ ‫באיזור‬ ‫מבית‬ ‫שונה‬ ‫אבטחה‬ ‫סידור‬ ‫ך‬ ‫ב‬ ‫עם‬ ‫שיחה‬ ,‫תוכנה‬ ‫עבור‬.‫ההקשר‬ ‫את‬ ‫להבין‬ ‫תעזור‬ ‫העניין‬ ‫עלי‬ ‫עיצ‬ ‫על‬ ‫שישפיע‬ ‫מה‬ ,‫איכויות‬ ‫להן‬ ‫צפות‬ ‫כיצד‬ ‫ניראה‬.‫התוכנה‬ ‫וב‬ ‫פונקציונליות‬ ‫דרישות‬–‫מתארות‬‫המער‬ ‫מה‬‫למשל‬ .‫לבצע‬ ‫נדרשת‬ ‫האפליקציה‬ ‫או‬ ‫כת‬ ‫יכ‬ ‫שתהיה‬ ‫פונקציונלית‬ ‫דרישה‬ ‫מדיה‬ ‫לאפליקצית‬‫ל‬ ‫ולת‬.‫מלא‬ ‫באורך‬ ‫סרט‬ ‫הוריד‬ ‫צר‬ ‫תוכנה‬ ‫עיצוב‬ ‫טבעי‬ ‫באופן‬‫נכונה‬ ‫בצורה‬ ‫דרישה‬ ‫כזאת‬ ‫שיכסה‬ ‫פתרון‬ ‫לצייר‬ ‫יך‬, ‫כלומר‬‫נכונות‬.‫לספק‬ ‫מפתח‬ ‫איכות‬ ‫הינה‬ ‫פונקציונליות‬ ‫לא‬ ‫דרישות‬–‫מציינים‬‫מה‬ ‫עושות‬ ‫האפליקציה‬ ‫או‬ ‫המערכת‬ ‫טוב‬ ‫כמה‬ ‫שהן‬‫ע‬‫דריש‬ .‫ושות‬‫כמה‬ ‫מתארת‬ ‫שכזאת‬ ‫ה‬.‫מסויימות‬ ‫בסיטואציות‬ ‫רצה‬ ‫התוכנה‬ ‫טוב‬ ‫מלא‬ ‫באורך‬ ‫סרט‬ ‫להוריד‬ ,‫למשל‬‫במהירות‬‫ספציפית‬‫ולהריץ‬‫שכזה‬ ‫סרט‬‫אילוץ‬ ‫תחת‬ ‫זיכרון‬ ‫הגבלת‬. ‫כמו‬ .‫ויעילות‬ ‫במשאבים‬ ‫שימוש‬ ,‫ביצועים‬ ‫יכללו‬ ‫לספק‬ ‫אחרות‬ ‫איכויות‬ ,‫לנכונות‬ ‫מעבר‬ ‫לא‬ ‫צריך‬ ‫מימוש‬ ‫כן‬‫שיש‬ ‫אחרות‬ ‫שאיכויות‬ ‫כך‬ .‫בעתיד‬ ‫שינויים‬ ‫פשר‬:‫בתוכנה‬ ‫לספק‬ .‫תחזוקתיות‬ ,‫גמישות‬ ,‫חוזר‬ ‫שימוש‬ ‫תמיד‬‫נשאל‬.‫צריך‬ ‫לאחור‬ ‫תאימות‬ ‫או‬ ‫אבטחה‬ ,‫תחזוקה‬ ,‫ביצועים‬ ‫כמה‬ Class Responsibility Collaborators (CRC) .‫התוכנה‬ ‫לייצוג‬ ‫בכרטיסיות‬ ‫שימוש‬ ‫יצירת‬ ‫בזמן‬ ‫מדרישות‬ ‫ואחריויות‬ ‫קשרים‬ ,‫רכיבים‬ ‫מזהים‬ ‫אנו‬Conceptual Design. ‫זה‬ ‫בשלב‬‫המ‬ ‫את‬ ‫מספקים‬ ‫אנו‬.‫הדרישות‬ ‫את‬ ‫נכסה‬ ‫איך‬ ‫לגביי‬ ‫הראשוניות‬ ‫חשבות‬ ‫ב‬-Technical Design‫לתת‬ ‫בכדי‬ ‫ויותר‬ ‫יותר‬ ‫מזוקקים‬ ‫אלו‬ ‫וקשרים‬ ‫רכיבים‬ ‫איך‬ ‫למדנו‬ , .‫למימוש‬ ‫קלים‬ ‫אותם‬ ‫שהופך‬ ‫מה‬ .‫טכניים‬ ‫מאפיינים‬ ‫להם‬ ‫ראשוני‬ ‫שלב‬ ‫הינו‬ ‫הקשרים‬ ‫וכן‬ ‫שלהם‬ ‫האחריויות‬ ,‫הרכיבים‬ ‫שזיהוי‬ ‫ולמרות‬‫טוב‬ .‫אותם‬ ‫לייצג‬ ‫דרך‬ ‫המחשנו‬ ‫לא‬ ‫עדיין‬ ,‫תוכנה‬ ‫בעיצוב‬ .‫שלנו‬ ‫העיצוב‬ ‫עם‬ ‫לשחק‬ ‫מסוגלים‬ ‫להיות‬ ‫ב‬ ‫המידע‬ ‫לייצוג‬ ‫דרך‬ ‫נלמד‬-high level‫ה‬ ‫יצירת‬ ‫בזמן‬-Conceptual Design. ‫כרטיסי‬ ‫הם‬ ‫אלה‬CRC (Class Responsibility Collaborator). ‫כרטיסי‬CRC‫לנ‬ ‫עוזרים‬‫ל‬ ‫שלנו‬ ‫הרכיבים‬ ‫את‬ ‫לארגן‬ ‫ו‬‫האחריויות‬ ‫את‬ ‫לזהות‬ ,‫מחלקות‬ ‫פעולה‬ ‫ישתפו‬ ‫הם‬ ‫כיצד‬ ‫ולקבוע‬ ,‫שלהם‬.‫השני‬ ‫עם‬ ‫אחד‬ .‫שלנו‬ ‫בעיצוב‬ ‫הרכיבים‬ ‫את‬ ‫ולזקק‬ ‫לארגן‬ ,‫לתעד‬ ‫לנו‬ ‫יעזרו‬ ‫אלה‬
  • 5. Component's name–‫הולך‬‫ל‬-Class name, ‫אחריויות‬‫ל‬-Responsibilities. ‫ל‬ ‫הולכים‬ ‫והקשרים‬-Collaborators. ‫לדוגמה‬–‫בנק‬: -‫כ‬ ‫מכניס‬ ‫לקוח‬...‫חשבון‬ ‫מאזן‬ ‫בדיקת‬ ,‫הפקדה‬ ,‫משיכה‬ ‫פעולות‬ ‫לבצע‬ ‫ויכול‬ ‫רטיס‬ -‫נשים‬ ,‫משימותיו‬ ‫את‬ ‫להגשים‬ ‫כדי‬ ‫הלקוח‬ ‫רכיב‬ ‫עבור‬ ‫נחוצה‬ ‫הכספומט‬ ‫ומכונת‬ ‫מאחר‬ ‫ה‬ ‫תחת‬-Collaborators‫את‬ ‫שלו‬Bank Machine.
  • 6. -‫ו‬:‫הכספומט‬ ‫למכונת‬ ‫כעת‬ -‫לקוח‬ ‫את‬ ‫נשים‬ ‫למשל‬ .‫יחדיו‬ ‫פעולה‬ ‫המשתפים‬ ‫רכיבים‬ ‫מיקום‬ ‫ע"י‬ ‫דברים‬ ‫לארגן‬ ‫נוכל‬ ‫הבנ‬‫אב‬ ‫עיצוב‬ ‫לסמלץ‬ ‫ונוכל‬ ‫מימין‬ ‫הכספומט‬ ‫מכונת‬ ‫ואת‬ ‫משמאל‬ ‫ק‬-‫של‬ ‫טיפוסי‬ .‫כה‬ ‫עד‬ ‫המערכת‬ -.‫כרטיס‬ ‫להכניס‬ ‫הלקוח‬ ‫אחריות‬ ‫את‬ ‫ונגלם‬ ‫נניח‬ -‫כ‬ ‫נשאל‬ ‫כניראה‬ ‫זה‬ ‫בתהליך‬?‫הלקוח‬ ‫את‬ ‫מאמת‬ ‫הכספומט‬ ‫יצד‬ -.‫הבנק‬ ,‫רכיב‬ ‫עוד‬ ‫לנו‬ ‫תביא‬ ‫זו‬ ‫שאלה‬ ‫ואז‬ -.‫הלקוח‬ ‫את‬ ‫לאמת‬ ‫מתקשר‬ ‫הכספומט‬ ‫שם‬ -‫והכס‬ ‫מאחר‬ ‫וכעת‬:‫רשת‬ ‫רכיב‬ ‫עוד‬ ‫נכניס‬ ,‫הבנק‬ ‫עם‬ ‫לדבר‬ ‫כדי‬ ‫ברשת‬ ‫יעזר‬ ‫פומט‬
  • 7. -‫נוסף‬ ‫רכיב‬ ‫עם‬ ‫פעולה‬ ‫תשתף‬ ‫שהרשת‬ ‫נעשה‬ ‫אז‬ ,‫מאובטחת‬ ‫תהיה‬ ‫שהרשת‬ ‫נרצה‬ ‫הצפנה‬ ‫לו‬ ‫שנקרא‬. -.‫הבנק‬ ‫עם‬ ‫מאובטחת‬ ‫בתקשורת‬ ‫תומך‬ ‫זה‬ ‫רכיב‬ -‫מתת‬ ‫מורכב‬ ‫כשלעצמו‬ ‫הכספומט‬ ‫כן‬ ‫כמו‬-:‫למשל‬ ‫כמו‬ ‫קטנים‬ ‫רכיבים‬ o.‫הכרטיס‬ ‫קורא‬ o.‫מקלדת‬ o.‫לצ'קים‬ ‫פתח/חריץ‬ o.)‫כסף‬ ‫(מנפק‬ ‫לכסף‬ ‫פתח/חריץ‬ .‫משלו‬ ‫כרטיס‬ ‫לקבל‬ ‫יכול‬ ‫כזה‬ ‫אחד‬ ‫כל‬ ‫כאשר‬ -‫הכרטיסים‬ ‫שיטת‬ ‫באמצעות‬.‫בדרישות‬ ‫או‬ ‫בעיצוב‬ ‫מגרעות‬ ‫לחשוף‬ ‫ניתן‬ ‫המזלג‬ ‫על‬ ‫דיאגרמות‬: Use-Case.‫התוכנה‬ ‫עם‬ ‫לעשות‬ ‫רוצה‬ ‫המשתמש‬ ‫מה‬ : ‫הי‬ ‫הבאה‬ ‫השאלה‬."‫המשתמש‬ ‫של‬ ‫הצורך‬ ‫את‬ ‫להשיג‬ ‫"איך‬ ‫א‬ ‫באמצעות‬ ‫זאת‬ >=Sequence Diagram. ‫כל‬Use Case‫סידרת‬ ‫באמצעות‬ ‫תושג‬ ‫מטרה‬ ‫וכל‬ ‫המשתמש‬ ‫של‬ ‫מטרה‬ ‫מייצג‬ .‫ומערכות‬ ‫מכשירים‬ ,‫אנשים‬ ‫בין‬ ‫אינטרקציות‬ Sequence Diagram.‫אלו‬ ‫לאינטרקציות‬ ‫ייצוג‬ ‫מהווה‬ ‫עיצוב‬ ‫עקרונות‬ ‫ארבעה‬: 1.‫אבסטרקציה/הפשטה‬–‫פה‬‫מושג‬ ‫עבור‬ ‫רלוונטיות‬ ‫והתנהגויות‬ ‫תכונות‬ ‫איזה‬ ‫נקבע‬ ( ‫בהקשר‬Context).‫מסויים‬ 2.‫אנקפסולציה/כימוס‬–‫מבטיחה‬‫כחלק‬ .‫מחלקה‬ ‫באותה‬ ‫יחד‬ ‫נאספים‬ ‫אלה‬ ‫שמאפיינים‬ ‫ניצור‬ ‫כך‬ .‫והתנהגויות‬ ‫מאפיינים‬ ‫עבור‬ ‫הרשאות‬ ‫נגדיר‬ ‫מהעניין‬‫ממשק‬.‫חוץ‬ ‫כלפי‬ ‫ה‬:‫מטרה‬‫הסתרה‬‫וכך‬ ‫הערכים‬ ‫את‬ ‫חושפים‬ ‫אנו‬ ‫בה‬ ‫המימוש‬ ‫דרך‬ ‫ושל‬ ‫מאפיינים‬ ‫של‬ .‫חוץ‬ ‫כלפי‬ ‫ממשק‬ ‫יוצרים‬ 3.Decomposition/‫הרכבה‬–‫פירוק‬( ‫קטנות‬ ‫ליחידות‬,‫מגלגלים‬ ‫מורכבת‬ ‫מכונית‬ ‫הכולל‬ ‫החלק‬ ‫לעיתים‬ .)...‫שלדה‬‫ס‬ ‫יאציל‬‫תת‬ ‫על‬ ‫מכויות‬-‫החל‬‫(כך‬ ‫שלו‬ ‫קים‬‫המקרר‬ ‫ו‬ ‫מאחר‬ .)‫למקפיא‬ ‫האוכל‬ ‫של‬ ‫והאחסנה‬ ‫ההקפאה‬ ‫סמכות‬ ‫את‬ ‫מאציל‬- decomposition‫לתת‬ ‫חלוקה‬ ‫מאפשר‬-‫אזי‬ ,‫ברורים‬ ‫חלקים‬‫די‬‫שהחלקים‬ ‫מובן‬ .‫נפרדים‬‫ש‬ ‫קבוע‬ ‫מספר‬ ‫להיות‬ ‫יכולים‬ ‫הכולל‬ ‫לחלק‬‫של‬ ‫דינאמי‬ ‫מספר‬ ‫או‬ ‫חלקים‬ ‫ל‬ ‫החי‬ ‫לאורך‬ ‫גם‬ ‫לב‬ ‫נשים‬ .‫חלקים‬.‫וחלקיו‬ ‫הכולל‬ ‫האוביקט‬ ‫של‬ ‫ים‬
  • 8. Lifetime Closely Related–‫למשל‬‫חיים‬ ‫אורך‬ ‫אותו‬ ‫בעלי‬ ‫הינם‬ ‫ומקפיא‬ ‫מקרר‬‫האחד‬ , ‫י‬ ‫לא‬.‫השני‬ ‫בלי‬ ‫להתקיים‬ ‫כול‬ Not Related–‫למשל‬.‫והמוצרים‬ ‫מקרר‬ ‫בין‬ ‫שיתוף‬ ‫יש‬ ‫לעיתים‬‫חלקים‬.‫לשתף‬ ‫ניתן‬ ‫לא‬ ‫ולפעמים‬ ‫מ‬‫בתוכנה‬ ‫העיצוב‬ ‫עקרונות‬ ‫ימוש‬ -Abstraction–‫נחליט‬"‫"שנזרוק‬ ‫והפונקציות‬ ‫המשתנים‬ ‫אסופת‬ ‫על‬ ‫ומשתנים‬ ‫פונקציות‬ ‫נגדיר‬ .‫מסויים‬ ‫להקשר‬ ‫בהתאם‬ ,‫מחלקה‬ ‫לתוך‬‫עם‬ .‫משמעותיים‬ ‫שמות‬ -Encapsulation–‫נגדיר‬‫ולפונקציות‬ ‫למשתנים‬ ‫גישה‬ ‫הרשאות‬ ‫שישמשו‬ ‫הפונקציות‬ ‫את‬ ‫נבחר‬ ,‫שכתבנו‬‫ממשק‬(Interface)‫של‬ ‫האוב‬( ‫אותם‬ ‫ונחשוף‬ ‫יקט‬‫הרשאות‬public)‫יהיו‬ ‫הדברים‬ ‫יתר‬ ‫וכל‬ ( ‫יותר‬ ‫מחמירות‬ ‫בהרשאות‬protected, private…). -Decomposition–‫נדון‬:‫סוגים‬ ‫בשלושה‬Association, Aggregation, Composition. Association–‫מוגדר‬" ‫מסוג‬ ‫כקשר‬Some."‫קשר‬ ,‫כלומר‬ ‫זה‬ ‫עם‬ ‫זה‬ ‫יתקשרו‬ ‫אלה‬ ‫אוביקטים‬ .‫אוביקטים‬ ‫שני‬ ‫בין‬ ‫רופף‬ ( ‫פעם‬ ‫מדי‬for some time.) ‫דוגמה‬–‫הקשר‬‫בין‬person‫ל‬-airline.‫מחזיק‬ ‫לא‬ ‫אדם‬ ‫אבל‬ ,‫מטוס‬ ‫קרובות‬ ‫לעיתים‬.‫איתו‬ ‫באינטרקציה‬ ‫להיות‬ ‫יכול‬ .‫אנשים‬ ‫הרבה‬ ‫עם‬ ‫באינטרקציה‬ ‫להיות‬ ‫יכול‬ ‫מטוס‬ ,‫כן‬ ‫כמו‬ .‫בשני‬ ‫תלוי‬ ‫לא‬ ‫אחד‬ ‫ואף‬ ,‫מטוסים‬ ‫ומספר‬ ‫אנשים‬ ‫מספר‬ ‫ישנם‬ Aggregation–‫זהו‬‫מסוג‬ ‫קשר‬has-a‫של‬ ‫היכן‬ ,-‫ישנם‬ "‫"שלם‬ ‫הש‬ ‫חלקים‬‫ייתכן‬ .‫לו‬ ‫ייכים‬‫ה‬ ‫בין‬ ‫חלקים‬ ‫של‬ ‫שיתוף‬-"‫"שלמים‬ ‫זה‬ ‫בקשר‬‫ה‬ ‫בין‬ ‫הקשר‬ .‫כלומר‬ ,‫חלש‬ ‫נחשב‬ ‫לחלקיו‬ ‫שלם‬ .‫מצב‬ ‫בכל‬ ‫עצמאי‬ ‫באופן‬ ‫להתקיים‬ ‫יכולים‬ ‫והשלם‬ ‫שהחלקים‬ ‫ז‬‫מהותי‬ ‫חלק‬ .‫לצוות‬ ‫נוסעים‬ ‫מטוס‬ ‫שבין‬ ‫לקשר‬ ‫דומה‬ ‫ה‬ ‫ל‬ ,‫הצוות‬ ‫הוא‬ ‫מהמטוס‬‫הצוות‬ ‫לא‬,‫להמריא‬ ‫המטוס‬ ‫יוכל‬ ‫לא‬ ‫בל‬ ‫להתקיים‬ ‫חודל‬ ‫לא‬ ‫המטוס‬ ,‫זאת‬ ‫עם‬ ‫אך‬‫כנ"ל‬ .‫עליו‬ ‫הצוות‬ ‫י‬ ‫מת‬ ‫חלק‬ ‫שהם‬ ‫הצוות‬ ‫לגביי‬‫ו‬ ‫המטוס‬ ‫פעול‬‫חודלים‬ ‫אינם‬ .‫המטוס‬ ‫על‬ ‫אינם‬ ‫הם‬ ‫אם‬ ‫מושמדים‬ ‫או‬ ‫מלהתקיים‬
  • 9. o‫יהיו‬ ‫למטוס‬0.‫צוות‬ ‫אנשי‬ ‫יותר‬ ‫או‬ o‫מסוג‬ ‫אוביקט‬Crew Member‫ע"י‬ ‫להתווסף‬ ‫יכול‬0‫או‬ ‫של‬ ‫אוביקטים‬ ‫יותר‬Airliner. Composition–‫הכלה‬‫כ‬ ‫המוכרת‬ ,‫חלקים‬ ‫של‬ ‫בלעדית‬- "has-a".‫חלקיו‬ ‫בלי‬ ‫להתקיים‬ ‫יכול‬ ‫לא‬ ‫השלם‬ ,‫כלומר‬ .‫חזק‬ ‫אם‬ .‫להתקיים‬ ‫יפסיק‬ ‫השלם‬ ,‫מחלקיו‬ ‫אחד‬ ‫אפילו‬ ‫יפסיד‬ ‫אם‬ ‫גישה‬ ‫תיתכן‬ ‫בדר"כ‬ .‫איתו‬ ‫יחד‬ ‫נהרסים‬ ‫חלקיו‬ ,‫נהרס‬ ‫השלם‬ .‫וחדריו‬ ‫בית‬ ‫למשל‬ ‫כך‬ .‫השלם‬ ‫מתוך‬ ‫רק‬ ‫לחלקים‬ .‫חדרים‬ ‫של‬ ‫יותר‬ ‫או‬ ‫אחד‬ ‫אוביקט‬ ‫יהיו‬ ‫בית‬ ‫מסוג‬ ‫לאוביקט‬
  • 11. -Generalization‫ממשקים‬ ‫מימוש‬ ‫עם‬: Coupling and Cohesion Module–‫יחידה‬.‫מתודה‬ ‫או‬ ‫מחלקה‬ ‫למשל‬ ‫כמו‬ ‫הינם‬ ‫עיצוב‬ ‫של‬ ‫מורכבות‬ ‫להעריך‬ ‫אותנו‬ ‫ישמשו‬ ‫אשר‬ ‫מטריקות‬Coupling & Cohesion. Coupling–‫למודו‬ ‫מודול‬ ‫שבין‬ ‫מורכבות/סיבוכיות‬.‫אחרים‬ ‫לים‬ Cohesion–‫מורכבות‬.‫המודול‬ ‫בתוך‬ .‫המערכת‬ ‫את‬ ‫לנהל‬ ‫יותר‬ ‫קל‬ ‫יהיה‬ ‫הנ"ל‬ ‫השניים‬ ‫באמצעות‬ ‫רע‬ ‫לעיצוב‬ ‫דוגמה‬–‫פאזל‬–‫נוכל‬‫לכל‬ ‫לא‬ ‫אבל‬ ‫אחר‬ ‫לחלק‬ ‫אחד‬ ‫חלק‬ ‫לחבר‬‫חלק‬ .‫שנרצה‬ ‫הינו‬ ‫טוב‬ ‫עיצוב‬‫לגו‬–‫שם‬‫חלק‬ ‫כל‬ ‫לחבר‬ ‫נוכל‬‫חוזר‬ ‫שימוש‬ ‫לבצע‬ ‫ובעצם‬ ‫חלק‬ ‫לכל‬ (reuse).‫חלקים‬ ‫של‬ ‫הינו‬ ‫זה‬ ‫מודול‬ ‫כי‬ ‫נאמר‬ ,‫אחר‬ ‫במודול‬ ‫יתרה‬ ‫תלוי‬ ‫מודול‬ ‫כאשר‬tightly coupled‫ביחס‬ .)‫בפאזל‬ ‫(כמו‬ ‫לאחרים‬ ‫ניתן‬ ‫אם‬ ,‫שני‬ ‫מצד‬‫א‬ ‫מודול‬ ‫בקלות‬ ‫לחבר‬‫הינו‬ ‫זה‬ ‫מודול‬ ‫כי‬ ‫נאמר‬ ,‫אחרים‬ ‫למודולים‬ ‫חד‬ loosely coupled.‫אחרים‬ ‫למודולים‬ ‫ביחס‬.)‫בלגו‬ ‫(כמו‬ ‫ל‬ ‫נשאף‬-coupling‫שיהיה‬Loose or Low‫ל‬ ‫ולא‬-tight. ‫ה‬ ‫את‬ ‫להעריך‬ ‫בבואנו‬-coupling:‫הבאים‬ ‫הדברים‬ ‫את‬ ‫בחשבון‬ ‫ניקח‬ ,‫מודול‬ ‫של‬ oDegree–‫מספר‬.‫לאחרים‬ ‫אחד‬ ‫מודול‬ ‫שבין‬ ‫הקשרים‬‫על‬ ‫לשמור‬ ‫נשאף‬ degree‫למשל‬ .‫נמוך‬‫מספר‬ ‫דרך‬ ‫אחרים‬ ‫מודולים‬ ‫עם‬ ‫לתקשר‬ ‫צריך‬ ‫מודול‬ ‫אם‬ , ‫ה‬ ‫אז‬ ,‫צרים‬ ‫ממשקים‬ ‫או‬ ‫פרמטרים‬-degree‫וה‬ ‫נמוך‬ ‫יהיה‬-coupling‫יהיה‬ .‫משוחרר‬
  • 12. oEase–‫אומר‬‫"כמה‬‫ב‬ ."‫ומובנים‬ ‫ברורים‬ ‫לאחרים‬ ‫מודול‬ ‫שבין‬ ‫הקשרים‬- coupling‫המימוש‬ ‫את‬ ‫להבין‬ ‫הצורך‬ ‫בלי‬ ‫לביצוע‬ ‫קלים‬ ‫יהיו‬ ‫שהקשרים‬ ‫נרצה‬ .‫אחרים‬ ‫מודולים‬ ‫של‬ oFlexibility–‫זה‬‫ב‬ .‫בנוכחי‬ ‫האחרים‬ ‫המודולים‬ ‫את‬ ‫להחליף‬ ‫קל‬ ‫כמה‬ ‫עד‬- coupling.‫בעתיד‬ ‫בקלות‬ ‫תחליף‬ ‫לקבל‬ ‫יוכלו‬ ‫אחרים‬ ‫שמודולים‬ ‫נרצה‬ Cohesion.‫מודול‬ ‫של‬ ‫האחריויות‬ ‫ברורות‬ ‫כמה‬ ‫מציין‬ High cohesion–‫מתקיים‬‫מטרה‬ ‫לו‬ ‫שיש‬ ‫או‬ ,‫בלבד‬ ‫אחת‬ ‫משימה‬ ‫מבצע‬ ‫המודול‬ ‫אם‬ .‫ברורה‬ Low cohesion–‫מתקיים‬‫אם‬( ‫לכמס‬ ‫מנסה‬ ‫המודול‬Encapsulate)‫ממטרה‬ ‫יותר‬ .‫ברורה‬ ‫לא‬ ‫מטרה‬ ‫לו‬ ‫שיש‬ ‫או‬ ,‫אחת‬ ‫ל‬ ‫נשאף‬-Chi-Cohesion. .‫לפצל‬ ‫הזמן‬ ‫כניראה‬ ‫זה‬ ,‫אחת‬ ‫מאחריות‬ ‫יותר‬ ‫שלנו‬ ‫למודול‬ ‫ויש‬ ‫במידה‬ ‫ורע‬ ‫לטוב‬ ‫דוגמאות‬: ‫למחלקה‬.‫מהסנסור‬ ‫וטמפרטורה‬ ‫לחות‬ ‫לקבל‬ :‫מטרות‬ ‫שתי‬ ‫זו‬ ‫אז‬ ,‫ברורה‬ ‫אחת‬ ‫מטרה‬ ‫אין‬ ‫זו‬ ‫ולמחלקה‬ ‫מאחר‬‫מ‬ ‫סובלת‬ ‫שהיא‬ ‫י‬-Low Cohesion. ‫להבין‬ ‫בכדי‬ ‫אותה‬ ‫ולקרוא‬ ,‫המחלקה‬ ‫את‬ ‫לפתוח‬ ‫יצטרך‬ ‫זו‬ ‫מחלקה‬ ‫של‬ ‫ולקוח‬ ‫מאחר‬ ‫פונקציית‬ ‫עושה‬ ‫מה‬get.‫ברורה‬ ‫לא‬ ‫כאן‬ ‫שהמטרה‬ ‫הריי‬ , ‫לא‬ ‫זה‬Loose Coupling.
  • 13. ‫ברור‬ ‫שלא‬ ‫מה‬–‫של‬ ‫המשמעות‬ ‫מה‬controlFlag‫כדי‬ ‫במחלקה‬ ‫להציץ‬ ‫שצריך‬ ‫כך‬ , ‫אנק‬ ‫מספק‬ ‫לא‬ ‫זה‬ .‫לתת‬ ‫ערך‬ ‫איזה‬ ‫על‬ ‫להחליט‬‫ב‬ ‫פגם‬ ‫ישנו‬ ‫כן‬ ‫וכמו‬ ‫פסולציה‬-Ease‫כי‬ , ,‫ברורה‬ ‫אינה‬ ‫המתודה‬.‫במתודה‬ ‫להשתמש‬ ‫עלינו‬ ‫מקשה‬ ‫שזה‬ ‫כך‬ :‫יהיה‬ ‫מחלקה‬ ‫לכל‬ ‫ברורה‬ ‫מטרה‬ ‫עם‬ ‫תקין‬ ‫עיצוב‬ ‫המחלקות‬ ‫תוכן‬ ‫את‬ ‫להבין‬ ‫כדי‬ ‫אנקפסולציה‬ ‫להפר‬ ‫נצטרך‬ ‫לא‬. ‫שמתודת‬ ‫להניח‬ ‫הגיוני‬ ‫יהיה‬ ‫זה‬ ‫כאן‬get‫וכן‬ ,‫הלחות‬ ‫את‬ ‫מחזירה‬ ‫הלחות‬ ‫חיישני‬ ‫של‬ ‫שמתודת‬get.‫טמפרטורה‬ ‫מחזירה‬ ‫הטמפרטורה‬ ‫חיישני‬ ‫של‬ ‫יהיה‬ ‫אלו‬ ‫במחלקות‬ ‫שימוש‬ ‫שיעשה‬ ‫אחר‬ ‫מודול‬ ‫זה‬ ‫באופן‬loosely coupled. ‫סמכויות‬ ‫הפרדת‬ ‫אח‬,‫תוכנה‬ ‫עיצוב‬ ‫עקרונות‬ ‫של‬ ‫המטרות‬ ‫ת‬:‫שהיא‬ ‫מערכת‬ ‫ליצור‬ ‫לנו‬ ‫לעזור‬ ‫הינה‬ .‫לתחזוקה‬ ‫ניתנת‬ ,‫חוזר‬ ‫לשימוש‬ ‫ניתנת‬ ,‫גמישה‬ ( ‫סמכויות‬ ‫הפרדת‬ :‫נקרא‬ ‫אלה‬ ‫מעקרונות‬ ‫אחד‬Separation Of Concerns). Concern–‫מושג‬.‫לבעיה‬ ‫פתרון‬ ‫במתן‬ ‫שחשוב‬ ‫דבר‬ ‫כל‬ ‫הוא‬ ‫שבבסיסו‬ ,‫כללי‬ ‫מאוד‬ ‫בסופרמרקט‬ ‫למשל‬–‫הדאגה‬‫אופה‬ ‫אני‬ ‫איך‬ ,‫הבשר‬ ‫את‬ ‫קוצץ‬ ‫אני‬ ‫איך‬ ,‫להיות‬ ‫יכולה‬ ‫אלה‬ ‫דאגות‬ .‫המדפים‬ ‫את‬ ‫מאחסן‬ ‫אני‬ ‫ואיך‬ ,‫תשלום‬ ‫אכבד‬ ‫אני‬ ‫איך‬ ,‫הלחם‬ ‫את‬ .‫אדם‬ ‫בני‬ ‫לשרת‬ ‫בכדי‬ ‫העסק‬ ‫את‬ ‫מפעילים‬ ‫כאשר‬ ‫חשובות‬ ?‫אלה‬ ‫בעיות‬ ‫עם‬ ‫להתמודד‬ ‫בכדי‬ ‫מאורגן‬ ‫הסופר‬ ‫כיצד‬ ‫אז‬ ‫דאגה‬ ‫בכל‬ ‫מתמקדות‬ ‫אשר‬ ‫בסופרמרקט‬ ‫נפרדות‬ ‫מחלקות‬ ‫ישנן‬‫ת‬ ‫מציגה‬ ‫דאגה‬ ‫כל‬ .‫ת‬- .‫שלה‬ ‫הספציפיות‬ ‫לדאגות‬ ‫לפנות‬ ‫ואיך‬ ‫לעשות‬ ‫מה‬ ‫יודעת‬ ‫מחלקה‬ ‫וכל‬ ‫ייחודיות‬ ‫בעיות‬ ‫דו‬ ‫באופן‬.‫בעיה‬ ‫ופותרת‬ ‫מתנהלת‬ ‫תוכנה‬ ‫מערכת‬ ‫גם‬ ‫מה‬ ‫י‬‫שיכ‬ ‫מושגים‬ ‫שנם‬‫להיות‬ ‫ולים‬‫מופשטים‬.‫הבעיה‬ ‫מרחב‬ ‫סמך‬ ‫על‬ ‫איך‬‫שהפשטות‬‫ממומשו‬ ‫אלה‬‫ב‬ ‫ת‬.‫דאגות‬ ‫לעוד‬ ‫להוביל‬ ‫יכול‬ ,‫תוכנה‬‫אלה‬ ‫מדאגות‬ ‫חלק‬ ‫עשויים‬‫של‬ ‫בסופו‬ ‫מוצג‬ ‫מה‬ ?‫מפעיל‬ ‫הוא‬ ‫מה‬ ?‫מייצג‬ ‫המימוש‬ ‫מידע‬ ‫איזה‬ :‫לכלול‬ ?‫דבר‬ ‫שאנחנו‬ ‫איך‬ ‫את‬ ‫מבטאים‬ ‫אנו‬ ,‫ובנייתה‬ ‫התוכנה‬ ‫פתרון‬ ‫עיצוב‬ ‫ברגע‬‫לפנות‬ ‫יכולים‬ ‫לתתי‬-‫ל‬ ‫פיצולם‬ ‫ע"י‬ ,‫השונות‬ ‫הבעיות‬-Separate Sections. ‫מפתח‬ ‫רעיון‬ ‫הינו‬ ‫דאגות‬ ‫פיצול‬‫ב‬ ‫שמופעל‬.‫והתכנות‬ ‫עצמים‬ ‫המונחה‬ ‫המידול‬ ‫עת‬
  • 14. ‫מ‬ ‫כאשר‬ ‫מופרדות‬ ‫החשובות‬ ‫הדאגות‬:‫שלמדנו‬ ‫העיצוב‬ ‫עקרונות‬ ‫את‬ ‫פעילים‬ Abstraction, Encapsulation and Generalization. ‫רעיון‬ ‫כל‬.‫משלו‬ ‫והתנהגויות‬ ‫מאפיינים‬ ‫עם‬ ,‫נפרד‬ ‫למכשול‬ ‫מוביל‬ ‫הבעיה‬ ‫שבמרחב‬ ( ‫נכמסים‬ ‫אלה‬ ‫והתנהגויות‬ ‫מאפיינים‬Encapsulated)‫משלהם‬ ‫קוד‬ ‫מחיצת‬ ‫לתוך‬ ‫הנקראת‬.‫מחלקה‬ ‫המערכת‬ ‫שאר‬ ‫ע"י‬ ‫המחלקה‬ ‫נראות‬‫כך‬ .‫נפרדות‬ ‫הן‬ ‫שלה‬ ‫והמימוש‬‫המימוש‬ ‫שמאפייני‬ .‫להשמר‬ ‫יכולה‬ ‫ממשק‬ ‫שדרך‬ ‫שהנראות‬ ‫בעוד‬ ,‫להשתנות‬ ‫יכולים‬ .‫רבות‬ ‫ממחלקות‬ ‫כחלק‬ ‫מורכבת‬ ‫להיות‬ ‫יכולה‬ ‫מחלקה‬ ‫כן‬ ‫כמו‬ ‫נוכל‬‫ג‬ ‫לזהות‬‫לתוך‬ ‫ויוכללו‬ ‫יופרדו‬ ‫מכן‬ ‫שלאחר‬ ,‫מחלקות‬ ‫בין‬ ‫משותפים‬ ‫ורמים‬Super Class. ,‫רואים‬ ‫שאנו‬ ‫כפי‬ ‫אזי‬Separation Of Concerns‫תהליך‬ ‫לאורך‬ ‫המתמשך‬ ‫תהליך‬ ‫הינו‬ .‫העיצוב‬ ‫דוגמה‬–‫למחלקת‬ ‫ההאכלה‬ ‫ואת‬ ‫שלו‬ ‫למחלקה‬ ‫כלב‬ ‫של‬ ‫האכילה‬ ‫פעולת‬ ‫פיצול‬ .‫בעלים‬ rmation HidingInfo .‫טוב‬ ‫מאורגנת‬ ‫להיות‬ ‫צריכה‬ ‫היא‬ ,‫טוב‬ ‫מעוצבת‬ ‫תהיה‬ ‫שמערכת‬ ‫כדי‬ ‫לגישה‬ ‫שלנו‬ ‫בהתייחסות‬ ‫נדון‬ ‫ופה‬ ‫שונים‬ ‫עיצוב‬ ‫עקרונות‬ ‫עם‬ ‫זאת‬ ‫עושים‬ ‫איך‬ ‫ראינו‬ .‫למידע‬ .‫עבודתו‬ ‫לביצוע‬ ‫שרלוונטי‬ ‫למידע‬ ‫רק‬ ‫גישה‬ ‫להיות‬ ‫צריכה‬ ‫כלשהו‬ ‫למודול‬ ‫נגבי‬."‫מידע‬ ‫"הסתרת‬ ‫באמצעות‬ ‫השונים‬ ‫המודולים‬ ‫של‬ ‫גישה‬ ‫ל‬ ‫מידע‬ ‫הסתרת‬–‫מאפשר‬‫הכמות‬ ‫את‬ ‫לאחרים‬ ‫לתת‬ ‫שלנו‬ ‫המערכת‬ ‫של‬ ‫למודולים‬ ‫של‬ ‫המינימלית‬.‫אחר‬ ‫דבר‬ ‫כל‬ ‫להסתיר‬ ‫ובכדי‬ ,‫נכון‬ ‫בהם‬ ‫להשתמש‬ ‫כדי‬ ‫הנדרשת‬ ‫מידע‬ ‫לי‬ ‫מאפשר‬ ‫זה‬ ‫דבר‬–,‫המפתח‬‫אחרים‬ ‫שמפתחים‬ ‫מבלי‬ ‫בנפרד‬ ‫מודול‬ ‫על‬ ‫לעבוד‬ .‫המודול‬ ‫של‬ ‫המימוש‬ ‫פרטי‬ ‫את‬ ‫לדעת‬ ‫צריכים‬ ‫ה‬ ‫באמצעות‬ ‫זה‬ ‫במודול‬ ‫להשתמש‬ ‫יכולים‬ ‫הם‬ ‫כך‬-interface.‫שלו‬ ‫בא‬‫שעש‬ ‫דברים‬ ,‫כללי‬ ‫ופן‬‫פר‬ ‫כמו‬ ,‫להשתנות‬ ‫ויים‬.‫מוסתרים‬ ‫להיות‬ ‫צריכים‬ ,‫מימוש‬ ‫טי‬ ‫שאינ‬ ‫ודברים‬‫ממשקים‬ ‫דרך‬ ‫נחשפים‬ ,‫האחריויות‬ ‫כמו‬ ,‫להשתנות‬ ‫צריכים‬ ‫ם‬ (interfaces). ‫עם‬ ‫נקשרת‬ ‫בדר"כ‬ ‫מידע‬ ‫הסתרת‬Encapsulation. Information Hiding through Encapsulation ‫משתמש‬ ‫אנו‬‫מאפיינים‬ ‫לקשור‬ ‫כדי‬ ‫באנקפסולציה‬ ‫ים‬‫המחלקה‬ ‫לתוך‬ ‫והתנהגויות‬ .‫גישה‬ ‫שיספק‬ ‫ממשק‬ ‫לחשוף‬ ‫וכדי‬ ,‫שלהם‬ ‫המתאימה‬ ‫א‬‫כיוון‬ ,‫ההתנהגויות‬ ‫של‬ ‫המימוש‬ ‫את‬ ‫להסתיר‬ ‫יעיל‬ ‫באופן‬ ,‫דואגת‬ ‫כבר‬ ‫נקפסולציה‬ .‫ספציפיות‬ ‫מתודות‬ ‫של‬ ‫הממשק‬ ‫דרך‬ ‫הינה‬ ‫היחידה‬ ‫שהגישה‬ ‫יכולו‬ ‫אחרות‬ ‫מחלקות‬‫המי‬ ‫על‬ ‫להסתמך‬ ‫רק‬ ‫ת‬,)‫(ותיעוד‬ ‫מספקת‬ ‫המתודה‬ ‫שחתימת‬ ‫דע‬ .‫עצמו‬ ‫המימוש‬ ‫על‬ ‫ולא‬ ‫המ‬ ‫את‬ ‫לשנות‬ ‫לנו‬ ‫מאפשרת‬ ‫אנקפסולציה‬.‫הנדרשת‬ ‫התוצאה‬ ‫את‬ ‫לשנות‬ ‫בלי‬ ‫ימוש‬ :‫דוגמה‬ String a = "Hello"; ;)("World"concatString b = a. Concat.‫המימוש‬ ‫פרטי‬ ‫ידועים‬ ‫ולא‬ ‫ממשק‬ ‫דרך‬ ‫נחשף‬
  • 15. ‫להסתיר‬ ‫ניתן‬ ,‫כן‬ ‫כמו‬attributes‫במחלקה‬ ‫קריטי‬ ‫מידע‬ ‫של‬ ‫שינוי‬ ‫יתאפשר‬ ‫שלא‬ ‫בכדי‬ , ‫ישנו‬ ‫אם‬ ‫למשל‬ .‫ישיר‬ ‫באופן‬attribute‫נרצה‬ ‫לא‬ ,‫במחלקה‬ ‫מתודות‬ ‫מספר‬ ‫שמשמש‬ ‫למחלקה‬ ‫מחוצה‬ ‫להשתנות‬ ‫שיוכל‬. ‫באמצעות‬ ‫מתאפשרת‬ ‫המידע‬ ‫הסתרת‬Access Modifiers.)‫גישה‬ ‫(הרשאות‬ Access Modifiers–‫מגדירים‬‫י‬ ‫חיצוניות‬ ‫מחלקות‬ ‫האם‬‫למאפיינים‬ ‫לגשת‬ ‫וכלו‬ .‫ילדיה‬ ‫עם‬ ‫תשתף‬ ‫אב‬ ‫מחלקת‬ ‫והתנהגויות‬ ‫מאפיינים‬ ‫איזה‬ ‫מגדירים‬ ‫וכן‬ ,‫ולהתנהגויות‬ ‫ב‬-JAVA:public, protected , default, private. Public–‫נגיש‬.)‫להתנהגויות‬ ‫מימוש‬ ‫שינוי‬ ‫מאפשר‬ ‫(לא‬ ‫במערכת‬ ‫מחלקה‬ ‫לכל‬ Protected–‫נגיש‬‫באותו‬ ‫ולמחלקות‬ ,‫יורשות‬ ‫למחלקות‬ ,‫המכילה‬ ‫למחלקה‬package. Default–‫נראה‬‫כמו‬protected. Private–‫רק‬.‫המכילה‬ ‫למחלקה‬ ‫ירושה‬ ‫בעיות‬ ‫הקדמה‬ OOD.‫תוכנה‬ ‫של‬ ‫בחלק‬ ‫אותם‬ ‫ולמדל‬ ‫הבעיה‬ ‫בעולם‬ ‫מושגים‬ ‫לקחת‬ ‫מנסה‬ ‫בהינ‬‫באמצעות‬ ‫שלנו‬ ‫המודלים‬ ‫את‬ ‫לזקק‬ ‫עלינו‬ ,‫מורכבת‬ ‫להיות‬ ‫יכולה‬ ‫הבעיה‬ ‫כמה‬ ‫תן‬ ‫עקרונ‬.‫והכללה‬ ‫הרכבה‬ ,‫אנקפסולציה‬ ,‫אבסטרקציה‬ :‫עיצוב‬ ‫ות‬ ‫לקב‬ ‫מצריך‬ ‫אלו‬ ‫מעקרונות‬ ‫אחד‬ ‫כל‬.‫שלי‬ ‫במערכת‬ ‫אותם‬ ‫ליישם‬ ‫איך‬ ‫לגביי‬ ‫החלטה‬ ‫ל‬ Abstraction–‫איזה‬?‫צריך‬ ‫והתנהגויות‬ ‫מאפיינים‬ Encapsulation–‫כיצד‬‫נ‬‫ו‬ ‫המאפיינים‬ ‫את‬ ‫יחדיו‬ ‫קבץ‬‫תכונו‬‫תתאפשר‬ ‫כיצד‬ ?‫אלה‬ ‫ת‬ ?‫אליהם‬ ‫הגישה‬ Decomposition–‫האם‬?‫יותר‬ ‫קטנים‬ ‫לחלקים‬ ‫שלי‬ ‫המחלקות‬ ‫את‬ ‫לפשט‬ ‫ניתן‬ Generalization–‫האם‬?‫להכליל‬ ‫שניתן‬ ‫שלי‬ ‫האוביקטים‬ ‫מבין‬ ‫משותפים‬ ‫דברים‬ ‫ישנם‬ ‫וירושה‬ ‫הכללה‬ ‫ניתנות‬ ,‫נקיות‬ ‫תוכנה‬ ‫מערכות‬ ‫ליצירת‬ ‫לתרום‬ ‫שיכול‬ ‫חזק‬ ‫עיצוב‬ ‫כלי‬ ‫הינה‬ ‫נכונה‬ ‫ירושה‬ .‫חוזר‬ ‫ולשימוש‬ ‫לתחזוקה‬ ?‫בירושה‬ ‫לרעה‬ ‫משתמשים‬ ‫שאנו‬ ‫נדע‬ ‫איך‬ ‫ישנן‬.‫ירושה‬ ‫מסתמנת‬ ‫כאשר‬ ‫אליהן‬ ‫מודעים‬ ‫להיות‬ ‫נקודות‬ ‫מספר‬ o‫ע‬ ‫את‬ ‫נשאל‬‫צמינו‬–"‫מאפיינים‬ ‫לשתף‬ ‫כדי‬ ‫בירושה‬ ‫משתמש‬ ‫אני‬ ‫האם‬ ‫לתתי‬ ‫אחרת‬ ‫משמעותית‬ ‫תוספת‬ ‫כל‬ ‫ללא‬ ,‫והתנהגויות‬-?‫שלי‬ ‫המחלקות‬‫אם‬ ‫אב‬ ‫מחלקת‬ ‫כזה‬ ‫במיקרה‬ .‫בירושה‬ ‫לרעה‬ ‫משתמש‬ ‫אני‬ ‫אז‬ ‫כן‬ ‫היא‬ ‫התשובה‬ .‫בנים‬ ‫ללא‬ ‫מספיקה‬ ‫דוגמה‬–‫נניח‬‫עושים‬ ‫ואנו‬Design‫מגוון‬ ‫כל‬ ‫את‬ ‫למדל‬ ‫עלינו‬ .‫לפיצרייה‬‫הפיצות‬ ‫בהינתן‬ .‫שלה‬ ‫בתפריט‬ ‫שיש‬‫תוספות‬ ‫של‬ ‫הקומבינציות‬ ‫כל‬‫לפי‬ ‫והשמות‬,‫צות‬ ‫במחלקת‬ ‫להשתמש‬ ‫מספיק‬ ‫זה‬ ‫יהיה‬ ‫אך‬ ,‫בירושה‬ ‫להשתמש‬ ‫מפתה‬ ‫זה‬ ‫יהיה‬ .‫אב‬ o‫עקרון‬ ‫של‬ ‫שבירה‬–Liskov Substitution‫תת‬ :‫אומר‬ ‫זה‬ ‫עקרון‬ .-‫יכולה‬ ‫מחלקה‬ ‫תת‬ ‫אם‬ ‫ורק‬ ‫אם‬ ‫האב‬ ‫מחלקת‬ ‫את‬ ‫להחליף‬-‫את‬ ‫משנה‬ ‫אינה‬ ‫המחלקה‬ ‫הפונקציו‬.‫האב‬ ‫מחלקת‬ ‫של‬ ‫נליות‬ ‫חיה‬ ‫היורשת‬ ‫לוויתן‬ ‫במחלקת‬ :‫זה‬ ‫עקרון‬ ‫להפרת‬ ‫דוגמה‬
  • 16. ‫ממחלקת‬ ‫מצפים‬ ‫שהיינו‬ ‫כפי‬ ‫מתנהג‬ ‫אינו‬ ‫שהלוויתן‬ ‫כלומר‬ )‫(חיה‬ ‫האב‬.‫להתנהג‬ ‫הצו‬ ‫את‬ ‫תואמת‬ ‫אינה‬ ‫וירושה‬ ‫במידה‬‫האם‬ ‫נשקול‬ ,‫שלנו‬ ‫רך‬ Decomposition.‫יותר‬ ‫הולם‬ ‫פתרון‬ ‫יהיה‬ .‫מירושה‬ ‫עדיפה‬ ‫הרכבה‬ ‫בסמרטפון‬ ‫לדוגמה‬‫לסמרטפון‬ ‫המיד‬ .‫ומצלמה‬ ‫טלפון‬ ‫כמו‬ ‫מאפיינים‬‫שראינו‬ ‫כפי‬ ‫הוא‬ ‫ול‬ ‫כיצד‬ ‫לדעת‬ ‫צריך‬ ‫לא‬ ‫הסמרטפון‬ ‫כאשר‬ ,‫קודמים‬ ‫בפרקים‬ ‫לבנות‬ ‫שעלינו‬ ‫נזכור‬ .‫עובדות‬ ‫ומצלמה‬ ‫טלפון‬ ‫של‬ ‫המחלקות‬ ‫שהן‬ ‫מערכות‬Reusable, Flexible and Maintainable. ‫בעיצוב‬ ‫אוביקטים‬ ‫של‬ ‫קטגויות‬ ‫לתתי‬ ‫שלנו‬ ‫האוביקטים‬ ‫את‬ ‫מפרקטים‬ ‫אנו‬ ‫כאשר‬-‫של‬ ‫שונים‬ ‫סוגים‬ ‫לזהות‬ ‫ניתן‬ ,‫אוביקטים‬ .‫אוביקטים‬ ‫כל‬ ‫באופן‬.‫אוביקטים‬ ‫של‬ ‫סוגים‬ ‫שלושה‬ ‫שינם‬ ‫לי‬ ( ‫ישות‬ ‫אוביקטי‬Entity)–‫הם‬‫יישוי‬ ‫לאיזשהם‬ ‫מתאימים‬ ‫שהם‬ ‫כיוון‬ ,‫מוכרים‬ ‫הכי‬‫של‬ ‫ות‬ ‫הבע‬ ‫במרחב‬ ‫האמיתי‬ ‫העולם‬.)‫יישות‬ ‫אוביקט‬ ‫הוא‬ ‫אז‬ ,‫כיסא‬ ‫שמייצג‬ ‫אוביקט‬ ‫לי‬ ‫יש‬ ‫(אם‬ ‫יה‬ ‫ב‬‫אוביק‬ ‫כללי‬ ‫אופן‬‫של‬ ‫התכונות‬ ‫על‬ ‫ידעו‬ ‫אלו‬ ‫טים‬‫ויהיו‬ ,‫עצמם‬ ‫את‬ ‫לשנות‬ ‫יוכלו‬ ‫גם‬ ‫הם‬ .‫עצמם‬ ‫כאשר‬ .‫זאת‬ ‫לעשות‬ ‫איך‬ ‫לגביי‬ ‫חוקים‬ ‫להם‬‫ונפרק‬ ,‫לתוכנה‬ ‫שנכניס‬ ‫האוביקטים‬ ‫את‬ ‫נזהה‬ ‫אותם‬‫הק‬ .‫היישות‬ ‫אוביקטי‬ ‫את‬ ‫נזהה‬ ‫תחילה‬ ‫אנחנו‬ ,‫קטנים‬ ‫יותר‬ ‫לאוביקטים‬‫טגוריות‬ .‫התוכנה‬ ‫של‬ ‫הטכני‬ ‫העיצוב‬ ‫על‬ ‫לחשוב‬ ‫נתחיל‬ ‫כאשר‬ ,‫מאוחר‬ ‫יותר‬ ‫יגיעו‬ ‫האחרות‬ ( ‫ממשק‬ ‫אוביקטי‬Boundary)–‫אלה‬‫מע‬ ‫שבין‬ ‫הגבול‬ ‫על‬ ‫שיושבים‬ ‫אוביקטים‬‫יכול‬ ‫זה‬ .‫רכות‬ ‫אחרת‬ ‫תוכנה‬ ‫מערכת‬ ‫מול‬ ‫שעובד‬ ‫אוביקט‬ ‫להיות‬–‫כמו‬.‫מהאינטרנט‬ ‫מידע‬ ‫שמכיל‬ ‫אוביקט‬ ‫אוב‬ ‫להיות‬ ‫יכול‬ ‫זה‬‫ממנו‬ ‫לקבל‬ ‫וכן‬ ,‫למשתמש‬ ‫מידע‬ ‫להציג‬ ‫אחריות‬ ‫עם‬ ‫יקט‬input‫אנו‬ ‫אם‬ . ‫משתמש‬ ‫ממשק‬ ‫מפתחים‬–‫האספקט‬‫סבי‬ ,‫התוכנה‬ ‫של‬ ‫הויזואלי‬‫בעיקר‬ ‫שאנחנו‬ ‫להניח‬ ‫ר‬ ‫כל‬ .‫ממשק‬ ‫אוביקטי‬ ‫על‬ ‫עובדים‬‫אוביק‬‫עם‬ ‫מתמודד‬ ‫אשר‬ ‫ט‬‫אחרת‬ ‫מערכת‬‫(מול‬,‫משתמש‬ .‫ממשק‬ ‫אוביקט‬ ‫להוות‬ ‫יכול‬ ,)‫האינטרנט‬ ‫או‬ ,‫אחרת‬ ‫מערכת‬
  • 17. ( ‫בקרה‬ ‫אוביקטי‬Control)–‫אלה‬‫תיאום/תי‬ ‫על‬ ‫האחראים‬ ‫אוביקטים‬ ‫הם‬‫אוביקט‬ ‫נגלה‬ .‫ווך‬‫ים‬ ‫שישלוט‬ ‫אוביקט‬ ‫להחזיק‬ ‫תורם‬ ‫זה‬ ‫את‬ ‫נמצא‬ ‫וכאשר‬ ,‫גדול‬ ‫אוביקט‬ ‫לפרק‬ ‫כשננסה‬ ‫כאלה‬ .‫האחרים‬ ‫האוביקטים‬ ‫על‬‫למצוא‬ ‫נוכל‬‫דוגמאות‬.‫העיצוב‬ ‫בתבניות‬ ‫לכך‬ ‫רבות‬ ‫חזקה‬ ‫דוגמה‬–PatternMediator‫האובי‬ ‫של‬ ‫הפעילויות‬ ‫בין‬ ‫מתאמת‬ ‫אשר‬‫השונים‬ ‫קטים‬ ‫סטטוס‬ ‫שנשמר‬ ‫כך‬Loosely Coupled. ‫של‬ ‫דוגמה‬Mediator‫הינה‬chat‫פעולות‬ ‫יש‬ ‫לצ'אט‬ .‫המשתתפים‬ ‫בין‬ ‫מתווך‬ ‫אשר‬Register & Send‫שאליו‬ ‫הצ'ט‬ ‫את‬ ‫מכיר‬ ‫משתתף‬ ‫כל‬ .‫פעולות‬ ‫לו‬ ‫ויש‬ ‫מחובר‬ ‫הוא‬Send & Receive.