SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
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.

Contenu connexe

Similaire à Object oriented analysis and design by alberta university - Typed

107 HTML & CSS
107 HTML & CSS107 HTML & CSS
107 HTML & CSSEran Lahav
 
Pwr Labs 2020 course catalogue
Pwr Labs  2020 course cataloguePwr Labs  2020 course catalogue
Pwr Labs 2020 course catalogueDana Davidi
 
Private cloudwarnings
Private cloudwarningsPrivate cloudwarnings
Private cloudwarningsamir
 
PWRLabs 2020 Course Catalogue
PWRLabs  2020 Course CataloguePWRLabs  2020 Course Catalogue
PWRLabs 2020 Course CatalogueDana Davidi
 
Business Models in the Creative Industry - B (Hebrew)
Business Models in the Creative Industry - B (Hebrew)Business Models in the Creative Industry - B (Hebrew)
Business Models in the Creative Industry - B (Hebrew)Erez Yerushalmi
 
UPA I srael event 2011- Ignite
UPA I srael  event 2011- Ignite UPA I srael  event 2011- Ignite
UPA I srael event 2011- Ignite tlavie
 
Adobe Creative Cloud For Teams
Adobe Creative Cloud For TeamsAdobe Creative Cloud For Teams
Adobe Creative Cloud For TeamsMotty Ben Atia
 
מערכות מסחר מקוונות – מה נכון (dan@codecape.com)
מערכות מסחר מקוונות – מה נכון (dan@codecape.com)מערכות מסחר מקוונות – מה נכון (dan@codecape.com)
מערכות מסחר מקוונות – מה נכון (dan@codecape.com)Dan Porat
 
Uxi live 2011 yaniv michaeli_cloud_ux
Uxi live 2011 yaniv michaeli_cloud_uxUxi live 2011 yaniv michaeli_cloud_ux
Uxi live 2011 yaniv michaeli_cloud_uxYaniv Michaeli
 
Rm saa s for share 2
Rm saa s for share 2Rm saa s for share 2
Rm saa s for share 2Manageware
 
Rm saa s for share 2
Rm saa s for share 2Rm saa s for share 2
Rm saa s for share 2Manageware
 
Rm saa s for share
Rm saa s for shareRm saa s for share
Rm saa s for shareManageware
 
דרופל וחווית משתמש
דרופל וחווית משתמשדרופל וחווית משתמש
דרופל וחווית משתמשMichael Shmilov
 
Spec template and mapping to derivatives of a product
Spec template and mapping to derivatives of a product Spec template and mapping to derivatives of a product
Spec template and mapping to derivatives of a product Manageware
 
Agile For Website Managers
Agile For Website ManagersAgile For Website Managers
Agile For Website ManagersUdi Salant
 
STKI's Israeli IT Vendor Discovery Newsletter 4q2011
STKI's Israeli IT Vendor Discovery Newsletter 4q2011STKI's Israeli IT Vendor Discovery Newsletter 4q2011
STKI's Israeli IT Vendor Discovery Newsletter 4q2011Dr. Jimmy Schwarzkopf
 
מהי אנליזה סטטית?
מהי אנליזה סטטית?מהי אנליזה סטטית?
מהי אנליזה סטטית?TrinitySB
 
Dover is now a Noetix Disributer
Dover is now a Noetix Disributer Dover is now a Noetix Disributer
Dover is now a Noetix Disributer Boaz Dombrover
 
213313799 dbms-2013
213313799 dbms-2013213313799 dbms-2013
213313799 dbms-2013Inbalraanan
 
חוברת קבלנים למייל
חוברת קבלנים למיילחוברת קבלנים למייל
חוברת קבלנים למיילROMAN GOLUB
 

Similaire à Object oriented analysis and design by alberta university - Typed (20)

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

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.