בהקשר זה נטפל בהיבטים הבאים:
עצם בפני עצמו
אינו מספק מידע שלם. עצמים גורמים להתנהגות מערכת ע"י שיתוף פעולה ביניהם. היחסים בין
שני עצמים הוא בעיקר משני סוגים:
א.-Link קשר (שנקרא גם
seniority
- בכירות).
ב.
Aggregation-
צירופים (שנקרא גם
parent/child
-
הורה/ילד).
Link- קישור פיזי או
Conceptual
(מושגי/תפיסתי) בין עצמים. קו המקשר בין שני ייצוגי עצמים מייצג
Link
ביניהם ומשמעותו שה
Messages (פעולות/הוראות) יכולים לעבור דרכו.
ה-
Link
מציין קישור ספציפי באמצעותו עצם אחד, ה-
Client
(לקוח) מפעיל את השירותים של עצם אחר, ה- Supplier
(ספק).
העצמים המקושרים ב-
Link
יכולים להיות בעלי אחד התפקידים הבאים:
-
Actor:
עצם המפעיל עצמים אחרים, אך הוא לעולם לא מופעל ע"י עצם אחר. לעיתים בהקשרים מסוימים
Actor
מכונה
Active Object.
-
Server:
עצם שאיננו מפעיל עצמים אחרים והוא רק מופעל ע"י עצמים אחרים.
-
Agent:
עצם שיכול גם להפעיל עצמים אחרים וגם להיות מופעל ע"י עצמים אחרים.
-
Agent: נוצר בד"כ ע"י
Actor
או Agent
אחר כדי לבצע פעולה מסוימת עבורו.
שני עצמים
הקשורים ע"י
link
קיימת ביניהם היראות- visibility.
כדי להעביר
messages
מהאחד לשני.
Visibility
זו היא מאחד מארבעת הסוגים הבאים:
1. The supplier object is global to the client.
2. The
supplier object is a parameter to some operation of the client
3. The
supplier object is part of the client object
4. The
supplier object is a locally declared object, in some operation of the client.
כאשר עצם אחד
מעביר
message
לעצם אחר דרך
link,
אזי שני עצמים אלו הם
synchronized.ה-
synchronization
הוא מאחד הסוגים העיקריים הבאים:
-
Sequential (סדרתי)- בכל עת קיים עצם פעיל אחד בלבד (a
single active object at a time)
-
Guarded
(מוגן)-
קיימים מספר תהליכים פעילים (multiple threads of control)
וה-
clients משתפים פעולה
ע"מ להשיג
mutual exclusion
(מניעה הדדית).
-
Synchronous-
קיימים מספר תהליכים פעילים וה-
suppliers
מבטיחים
mutual exclusion.
סוגי
synchronization:
-
-Synchronous
פעולה (operation)
מתחילה רק כאשר השולח (sender)
יזם אותה והמקבל (receiver) מוכן לקבל את ה
message.
שניהם ימתינו ללא הגבלת זמן עד ששני הצדדים יהיו מוכנים להמשיך.
-
-Balking כמו
synchronous,
רק שהשולח יוותר על הפעולה אם המקבל איננו מוכן מיידית.
-
-Timeout
כמו
synchronous,
רק שהשולח ימתין זמן מוגדר למקבל להיות מוכן.
-
-Asynchronous
השולח עשוי ליזום פעולה ללא התחשבות בכך אם המקבל מצפה לקבל את ה-
message.
צירוף המורכב
מחלקיו (parts)
הנקראים גם
attributes
(תכונות).
Aggregate
נקרא גם
.Container הצירוף יכול
להיות הכלה פיזית כגון מטוס, המורכב ממנועים, כנפיים, מתקן נחיתה וכדומה או הכלה
conceptual
כגון בעל מניות ומניותיו.
לסיכום:
Link- מציין יחס
client/supplier.
Aggregate מציין מדרג
whole/part.
ההחלטה איזה סוגי
יחס לבחור היא של מהנדס התוכנה.
Message
עובר ב
link
בכיוון אחד מסוים, אך הנתונים (data)
יכולים לעבור בשני הכיוונים.
לסעיף הבא- יחסים בין
מחלקות...