Transcript מחלקה

‫ניתוח מערכות מידע א'‬
‫הרצאה ‪4‬‬
‫תכנון מונחה עצמים‬
‫תרשימי ‪UML‬‬
‫‪1‬‬
UML
?UML ‫מה זה‬
3
‫‪UML – Unified Modeling Language‬‬
‫‪ ‬פותחה בשנות ה‪ 90-‬ע"י‬
‫‪‬‬
‫‪Booch, Jacobson, Rumbaugh‬‬
‫‪UML ‬היא שפה וויזואלית לניתוח מערכות‪.‬‬
‫‪ ‬מתאימה למידול מונחה עצמים‬
‫‪ ‬משתמשת בסימנים גרפים לתיאור המערכת‬
‫‪ ‬לשפה יש מספר סוגי מודלים המתארים‪:‬‬
‫‪4‬‬
‫‪‬‬
‫עצמים ‪ -‬הנתונים הסטטים‬
‫‪‬‬
‫האינטראקציה בין העצמים‬
‫‪‬‬
‫מצבי המערכת‬
UML ‫תרשימי‬
UML ‫ סוגים של תרשימי‬9 ‫ ישנם‬









Use case Diagram
Class Diagram
Object Diagram
State Diagram
Activity Diagram
Sequence Diagram (Communication Diagram)
Collaboration diagram
Component diagram
Deployment diagram
‫ למפתחים וללקוחות‬,‫ התרשימים מאפשרים למנתחים‬
‫צפיה בהיבטים שונים של המערכת‬
‫צפיה ברמות הפשטה שונות‬


5
UML ‫סוגי תרשימי‬
‫ מבט כללי על המערכת‬
use cases

‫ מבנה המערכת‬
object diagrams, class diagrams

‫ התנהגות המערכת‬
state-chart, activity, sequence and collaboration
diagrams

‫ מימוש‬
component and deployment diagrams 
6
‫תרשימי ‪ UML‬לתיאור‬
‫פעילות כללית של המערכת‬
‫‪use cases‬‬
‫‪7‬‬
‫‪ - Use Case Diagram‬הגדרה‬
‫‪ ‬תרשים המתאר את הפונקציונליות של המערכת המתקיימת בין ה‪Actors-‬‬
‫לבין ה‪Use Case-‬‬
‫‪ - Actor ‬ישות בעלת תפקיד במערכת‬
‫‪ ‬למשל במערכת של בנק השחקנים יהיו הלקוח‪ ,‬והפקיד‪.‬‬
‫‪ ‬לא בהכרח אדם‪ ,‬יכול להיות מערכת‬
‫‪ - Use Case ‬פעילות בעלת משמשעות ל ‪.Actor‬‬
‫‪ ‬למשל במערכת של בנק‪ :‬הפקדה ומשיכה‪.‬‬
‫‪ ‬על מנת למצוא את ה‪use cases-‬‬
‫‪‬‬
‫‪8‬‬
‫יש לנתח את הפעילויות שהשחקנים יכולים לבצע‪.‬‬
‫‪UseCase‬‬
‫‪Actor‬‬
‫ דוגמא‬- Use Case Diagram
Actor
Deposit
Use Cases
get balance
Customer
Withdraw
9
‫‪ – Use Case Diagram‬עוד הערות‬
‫‪ ‬קבוצת ‪ use cases‬בעלי אותו נושא מקובצים יחדיו ונקראים ‪subject‬‬
‫(נושא)‪.‬‬
‫‪ Actor ‬יכול להתיחס ל‪ use case‬בודד‪ ,‬או ל‪.subject -‬‬
‫‪ Use Case ‬משמשים לתיאור הדרישות של המערכת‬
‫‪ ‬בהמשך יהוו בסיס להגדרת תרשימים אחרים‬
‫‪ ‬שני יחסים מיוחדים משמשים לקישור בין שני ‪:use case‬‬
‫‪<<extend>> ‬‬
‫‪‬‬
‫‪10‬‬
‫‪ ‬הרחבה של ‪use case‬‬
‫‪ ‬משתמשים כאשר ל‪ use case‬יש מספר הרחבות אפשריות‬
‫>>‪ ,<<include‬נקרא גם >>‪<<uses‬‬
‫‪ ‬הכלה של ‪use case‬‬
‫‪ ‬משתמשים כאשר יש פעילות שמשותפת להרבה ‪use case‬‬
‫ – דוגמא מורחבת‬Use Case Diagram
Deposit
«uses»
get balance
«uses»
Customer
Withdraw
«extends»
print withdrawal
11
‫‪ -Use Case‬תיעוד‬
‫‪ ‬חשוב לתעד את התרשים‪.‬‬
‫‪ ‬מקובל לתעד עבור כל ‪use case‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫תיאור קצר‬
‫רשימת השחקנים (‪ )actors‬המעורבים‬
‫תנאים שיש לקיים לפני ביצוע הפעולה‬
‫תיאור מפורט של אופן ביצוע הפעולה‬
‫תיאור של מצב המערכת בסוף התהליך‬
‫‪ ‬התיעוד לא בהכרח יכתב כולו בתחילת תהליך התכנון אלא‬
‫יתפתח לאורך התכנון‬
‫‪12‬‬
‫תכנון מונחה עצמים‬
‫על קצה המזלג‪...‬‬
‫‪13‬‬
‫מהו תכנון מונחה עצמים‬
‫‪ ‬העולם מיוצג ע"י עצמים (אוביקטים‪.)objects ,‬‬
‫‪ ‬לעצמים יש מצב )‪(attributes‬‬
‫‪‬‬
‫מתואר ע"י תכונות שונות‪.‬‬
‫‪ ‬לעצמים יש התנהגויות )‪(methods‬‬
‫‪‬‬
‫‪‬‬
‫מה שאוביקט יכול לעשות‬
‫מה שאפשר לעשות עם אוביקט‬
‫‪ ‬תבנית המתארת את העצם נקראת מחלקה (‪)class‬‬
‫‪ ‬מימוש של עצם מסויים נרקא עצם או אוביקט (‪)object‬‬
‫‪14‬‬
‫דוגמא ‪ -‬מחקלה לניהול חשבון בנק‬
‫‪ ‬חשבון בנק – הגדרת המחלקה‬
‫‪‬‬
‫תכונות )‪(attributes‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫פעולות )‪(methods‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪15‬‬
‫שם בעל החשבון‬
‫יתרה‬
‫משיכה‬
‫הפקדה‬
‫בירור יתרה‬
‫חשבון הבנק – מחלקה ואוביקט‬
‫שם‬
‫מחלקה‬
‫תכונות‬
‫פעולות‬
‫‪16‬‬
‫מחלקה‬
‫(הרעיון‪/‬תבנית)‬
‫שם‬
‫מחלקה‬
‫תכונות‬
‫‪ +‬ערכים‬
‫אוביקטים‬
‫(המימוש)‬
‫שם‬
‫אוביקט‬
‫עקרונות בתכנון מונחה עצמים‬
‫‪ ‬תכנון מונחה עצמים תומך בעקרונות הבאים‬
‫‪ ‬הכמסה – ‪encapsulation‬‬
‫נלמד עכשיו‬
‫‪ ‬ירושה – ‪inheritance‬‬
‫נלמד בהמשך‬
‫‪ ‬פולימורפיזם ‪polymorphism -‬‬
‫‪17‬‬
‫מהי הכמסה (‪)encapsulation‬‬
‫‪ ‬אפשר להסתכל על מחלקה בשני אופנים‬
‫פנימי‬
‫‪18‬‬
‫‪‬‬
‫פנימי – הפרטים של המחלקה‪ ,‬התכונות והפעולות שלה‬
‫‪‬‬
‫חיצוני – השירותים שהמחלקה מספקת‬
‫חיצוני‬
‫הכמסה (המשך)‬
‫‪ ‬ראינו ששימוש במחלקה נעשה ע"י יצירת אוביקט‪.‬‬
‫‪ ‬בעזרת האוביקט ניתן להשתמש בשירותי המחלקה‬
‫‪ ‬בעת שימוש בשירותי המחלקה דרך האוביקט‬
‫‪‬‬
‫אין צורך לדעת כיצד מבוצע השירות‬
‫‪‬‬
‫שינויים לתכונות המחלקה יבוצעו רק ע"י מתודות המחלקה‬
‫‪‬‬
‫רצוי שיהיה בלתי אפשרי לבצע שינוי חיצוני לתכונות‬
‫‪ ‬נחשוב על אוביקט כקופסא שחורה המנוהלת רק דרך מתודות‬
‫‪19‬‬
‫הכמסה (המשך)‬
‫מתודות‬
‫מחלקה‬
‫תכונות‬
‫‪20‬‬
‫לקוח‬
‫רמות גישה ‪ -‬להשגת הכמסה‬
‫‪Private ‬‬
‫‪‬‬
‫ניתן לגשת אך ורק מתוך המחלקה‬
‫‪‬‬
‫מסומן בעזרת הסימן ‪-‬‬
‫‪Public ‬‬
‫‪‬‬
‫ניתן לגשת מבל מקום (בחבילה)‬
‫‪‬‬
‫‪‬‬
‫גם מתוך המחלקה וגם מבחוץ‬
‫מסומן בעזרת הסימן ‪+‬‬
‫‪Protected ‬‬
‫‪ ‬ניתן לגשת מתוך המחלקה או במחלקות יורשות (נדבר בהמשך)‬
‫‪‬‬
‫‪21‬‬
‫(מסומן בעזרת הסימן ‪)#‬‬
‫‪private‬‬
‫‪public‬‬
‫‪ - private‬מאפשר גישה רק מתוך המחלקה‬
‫‪ ‬תכונות‬
‫‪‬‬
‫בדרך כלל תכונות יוגדרו ‪private‬‬
‫‪‬‬
‫ניתן לגשת לתכונות רק מתוך המחלקה‬
‫‪‬‬
‫מתודות המחלקה יכולות לגשת לתכונה‬
‫‪ ‬מתודות‬
‫‪‬‬
‫‪22‬‬
‫מתאים להגדרת מתודות המחלקה שאינן מיועדות לשימוש חיצוני‬
‫‪‬‬
‫מתודות המחלקה יכולות לגשת למתודה‬
‫‪‬‬
‫מתודות שאינן של המחלקה לא יכולות לגשת למתודה‬
‫‪‬‬
‫טוב למתודות "שרות" שהמתודות האחרות משתמשות בו‪.‬‬
‫‪ - public‬מאפשר גישה גם מחוץ למחלקה‬
‫‪ ‬תכונות‬
‫‪‬‬
‫בדרך כלל תכונות לא יוגדרו ‪public‬‬
‫‪ ‬מתודות‬
‫‪‬‬
‫‪23‬‬
‫בדרך כלל יוגדרו ‪ public‬שכן הן מיועדות לשימוש מחוץ‬
‫למחלקה‬
‫‪‬‬
‫מאפשר גישה למתודות מחוץ למחלקה‬
‫‪‬‬
‫מאפשר גישה מכל מתודות המחלקה‬
‫‪get, set‬‬
‫‪ ‬כיוון שאין גישה לתכונות המחלקה באופן ישיר‪ ,‬מקובל להגדיר‬
‫מתודות גישה לתכונות‬
‫‪ ‬מתודות אלו נקראות בשמות‬
‫‪‬‬
‫‪‬‬
‫‪ - getX‬מחזירה את ערך התכונה ‪( X‬נקרא גם ‪)accessor‬‬
‫‪ - setX‬קובע את ערך התכונה ‪( X‬נקרא גם ‪)mutator‬‬
‫‪ ‬מתודות ‪ get‬ו‪ set -‬מאפשרות גישה מבוקרת לתכונות‬
‫המחלקה‬
‫‪24‬‬
‫‪‬‬
‫ניתן להגביל טווח ערכים‬
‫‪‬‬
‫ניתן לבדוק שהערכים תקינים‬
‫‪‬‬
‫כאשר אין צורך לא נגדיר לתכונות מתודות ‪ get‬ו ‪set‬‬
‫ לתיאור‬UML ‫תרשימי‬
‫מבנה המערכת‬
object diagrams, class diagrams
25
‫‪ - Class Diagram‬הגדרה‬
‫‪ ‬בתרשים ‪ Class Diagram‬מציגים את המצב הסטטי של‬
‫המערכת ושל פעולות המתבצעות בה‬
‫‪ ‬הרכיבים בתרשים‪:‬‬
‫‪‬‬
‫מחלקות‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫תכונות (‪)attributes‬‬
‫פעולות (נקראות גם מתודות( )‪)methods or operations‬‬
‫יחסים בין המחלקות‬
‫‪‬‬
‫‪association, aggregation, composition, generalization‬‬
‫‪ ‬לרב תרשים ‪ Class‬נוצר במקביל לתרשים ‪Use Case‬‬
‫‪26‬‬
‫הגדרת מחלקות – כיצד?‬
‫‪ ‬נגדיר כמחלקה כל ישות במערכת‬
‫‪ ‬כל שחקן (‪ )actor‬יהווה מחלקה‬
‫‪‬‬
‫לקוח‪ ,‬פקיד‬
‫‪ ‬אוסף תהליכים עם קישור לוגי יהווה מחלקה‬
‫‪‬‬
‫חשבון בנק‬
‫‪ ‬דוגמאות נוספות‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪27‬‬
‫ממשק למשתמש‬
‫ישות שמתקשרת עם גורמי מידע חיצוניים‬
‫ישות האחראית על משאבים‬
‫‪ - Class Diagram‬דוגמא‬
‫‪ ‬נגדיר מחלקה עבור לקוח בבנק‪.‬‬
‫‪‬‬
‫נקרא לו ‪Customer‬‬
‫‪ ‬ללקוח יש מספר ת"ז‪ ,‬שם וכו'‬
‫‪‬‬
‫אלו התכונות (‪ )attributes‬של המחלקה‬
‫‪ ‬נרצה לייצא את המידע על התכונות של הלקוח גם‬
‫למחלקות אחרות‪ ,‬ולאפשר עידכון שלהם‬
‫‪‬‬
‫לשם כך נגדיר מתודות כמו ‪getName, setName‬‬
‫‪ ‬נראה איך המחלקה תיוצג ב ‪.class diagram‬‬
‫‪28‬‬
‫תרשים של מחלקה‬
:Class Diagram ‫ כמו שיראה ב‬,‫ מחלקה של לקוח‬
private -
public +
Customer
-name
-idNum
+getName()
+getIdNum()
+setName()
+setIdnum()
attributes
operations
(methods)
29
‫כדאי לדעת‬
‫‪ ‬רמות הגישה נקראות ב ‪Access specifiers UML‬‬
‫‪‬‬
‫ראינו כבר‬
‫‪‬‬
‫‪‬‬
‫‪private, public, protected‬‬
‫קיים גם ‪package‬‬
‫‪‬‬
‫‪‬‬
‫פירושו שניתן לגשת מתוך חבילת ה ‪UML‬‬
‫יסומן ב ~‬
‫‪ ‬הערות ב‪ UML‬מופיעות בתוך סימון של פתקית‪:‬‬
‫‪This is a comment, also called a note‬‬
‫‪30‬‬
‫ תזכורת‬- ‫מחלקות ואובייקטים‬
‫ המחלקה היא התבנית‬
‫ האוביקט הוא מימוש ספציפי מסוג התבנית‬
‫אוביקטים‬
Object1 : Customer
name = Yael
idNum = 123456
Object2 : Customer
name = Ido
idNum = 678910
‫מחלקה‬
Customer
-name
-idNum
+getName()
+getIdNum()
+setName()
+setIdnum()
31
‫ הגדרה‬- Object Diagram
‫ שבו יוצגו המחלקות‬Class Diagram ‫ ראינו‬
Object Diagram 
‫מתאר את האוביקטים והיחסים ביניהם‬
‫משמש לתיאור המערכת בזמן ריצה‬


Object1 : Customer
name = Yael
idNum = 123456
Object2 : Customer
name = Ido
idNum = 678910
32
‫התכונות באוביקט‬
‫‪ ‬בכל פעם שנייצר אוביקט‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫כל התכונות של המחלקה ישוכפלו‬
‫לאוביקט יש העתקים משלו של התכונות‬
‫לכל אוביקט שמורים ערכים אחרים בתכונות‬
‫‪ ‬לפעמים נרצה להגדיר תכונה שמשותפת לכל האוביקטים‬
‫שהם של מחלקה מסויימת‬
‫‪ ‬תכונה כזאת תקרא תכונה סטטית ‪static -‬‬
‫‪33‬‬
‫הגדרת תכונה סטטית‬
‫ מופיעה עם קו תחתון‬UML ‫ תכונה סטטית ב‬
‫אוביקטים‬
Object2 : Customer
name = Ido
idNum = 678910
numCustomers : Customer = 2
Object1 : Customer
name = Yael
idNum = 123456
numCustomers : Customer = 2
‫מחלקה‬
‫תכונה‬
‫סטטית‬
Customer
-name
-idNum
-numCustomers : Customer
+getName()
+getIdNum()
+setName()
+setIdnum()
34
‫תכונות סטטיות‬
‫‪ ‬כאשר תכונה היא סטטית יש רק עותק אחד לכל האוביקטים של‬
‫אותה מחלקה‪.‬‬
‫‪ ‬בפעם הראשונה שמתיחסים למחלקה מוקצה מקום למשתנה‬
‫הסטטי‪.‬‬
‫‪ ‬לכל האוביקטים של המחלקה יש את אותו העתק של התכונה‬
‫‪ ‬שינוי התכונה הסטטית עבור אוביקט אחד‪ ,‬גורר שינוי של התכונה‬
‫בכל האוביקטים‪.‬‬
‫‪ ‬על מנת לסמן משתנה ב ‪ ,VISIO‬יש לסמן ב ‪owner scope‬‬
‫‪‬‬
‫‪35‬‬
‫‪‬‬
‫‪ instance‬עבור משתנה רגיל (זה מצב דיפולטי)‬
‫‪ classifier‬עבור משתנה סטטי‬
‫מתודות סטטיות‬
‫‪ ‬ניתן גם להגדיר מתודה סטטית‬
‫‪ ‬מתודה סטטית ניתנת להפעלה מבלי לייצר אוביקט‪.‬‬
‫‪ ‬מתודה סטטית לא יכולה לגשת לתכונות של אוביקט‬
‫‪‬‬
‫כיוון שהתכונות לא קיימות עד שנוצר אוביקט‪.‬‬
‫‪ ‬מתודה סטטית כן יכולה לגשת לתכונות סטטיות ולתכונות לוקליות‬
‫‪‬‬
‫‪36‬‬
‫כיוון שהתכונות הסטטיות קיימות בהתייחסות ראשונה למחלקה‪,‬‬
‫ותכונות לוקליות מוגדרות בתווך המתודה‬
‫מתודה סטטית‬
‫ מופיעה עם קו תחתון‬UML ‫ גם מתודה סטטית ב‬
Customer
‫מתודה‬
‫סטטית‬
-name
-idNum
-numCustomers : Customer
+getName()
+getIdNum()
+setName()
+setIdnum()
+getNumCustomers()
37
‫דוגמא – תרגיל כיתה‬
‫‪ ‬נגדיר מחלקה לסטודנט‬
‫‪ ‬מה יהיו התכונות?‬
‫‪ ‬מה יהיו המתודות?‬
‫‪ ‬האם יש תכונה סטטית?‬
‫‪38‬‬
‫יחסים בין מחלקות‬
‫‪ ‬יתכנו סוגים שונים של קשרים בין מחלקות‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪( dependency‬ניתוח א)‬
‫‪( association‬ניתוח א)‬
‫‪( aggregation‬ניתוח א)‬
‫‪( composite aggregation‬ניתוח א)‬
‫‪( generalization‬ניתוח ב)‬
‫‪(realization‬ניתוח ב)‬
‫‪ ‬תכנון נכון של הקשרים מסייע לשימוש חוזר (‪)reuse‬‬
‫‪39‬‬
‫‪Dependencies‬‬
‫‪ Dependency ‬הוא יחס שבו שינוי של רכיב אחד עלול להשפיע על‬
‫רכיב אחר‬
‫‪ ‬נשתמש בתלות מסוג ‪ dependency‬כאשר מחלקה אחת‬
‫משתמשת במחלקה אחרת‬
‫‪ ‬דוגמא לשימוש כזה הוא‬
‫‪‬‬
‫מחלקה המועברת כפרמטר למתודה של מחלקה אחרת‬
‫‪ dependency ‬יסומן בקו מקווקו‬
‫‪40‬‬
‫‪Association‬‬
‫‪ Association ‬הוא יחס שמתאר איך אוביקטים של מחלקה אחת‬
‫קשורים למחלקה אחרת‬
‫‪ - Multiplicity ‬כמה אוביקטים של המחלקה יכולים להיקשר לאחרת‬
‫‪ - 1 ‬בדיוק אוביקט אחד מסוג זה מקושר לאחר‬
‫‪ - * ‬מספר לא מוגבל‬
‫‪ 0..* ‬בין ‪ 0‬למספר לא מוגבל‬
‫‪ ‬מקובל לתת שם ליחס שמתאר את סוג הקשר‬
‫‪Store‬‬
‫‪-StoreName‬‬
‫‪41‬‬
‫‪-employer‬‬
‫‪1‬‬
‫‪-employee‬‬
‫*‪1..‬‬
‫‪SalePerson‬‬
‫‪-salary‬‬
‫)(‪+calcSalary‬‬
‫‪Aggregation‬‬
‫‪ Aggregation ‬הוא יחס שבו יש מחלקה של משהו גדול‬
‫המכיל פריטים קטנים יותר‬
‫‪ ‬משמעות היחס הוא "יש לו"‬
‫•‬
‫•‬
‫על מנת לצייר ב ‪Visio‬יש לבחור ‪composite‬‬
‫ולבחור תחת ‪ aggregation‬בטבלה ‪shared‬‬
‫‪42‬‬
‫‪Composite‬‬
‫‪ composite aggregation ‬הוא סוג של ‪aggregation‬‬
‫‪ ‬אוביקט יכול לקחת חלק ב ‪ composite‬אחד בלבד‬
‫‪‬‬
‫‪‬‬
‫‪43‬‬
‫למשל‪ frame -‬הוא חלק מחלון אחד בלבד‬
‫זה שונה מ ‪ aggregation‬פשוט שבו האוביקט יכול להיות קשור‬
‫למספר אוביקטים‬
‫ לתיאור‬UML ‫תרשימי‬
‫התנהגות המערכת‬
state-chart, activity, sequence and collaboration
diagrams
44
)‫ (תזכורת‬UML ‫סוגי תרשימי‬
‫ מבט כללי על המערכת‬
‫ראינו‬
use cases

‫ מבנה המערכת‬
object diagrams, class diagrams

‫ התנהגות המערכת‬
state-chart, activity, sequence and collaboration
diagrams

‫ מימוש‬
component and deployment diagrams 
45
Sequence Diagram
46
‫‪Sequence Diagram‬‬
‫‪ ‬תרשים המתאר אינטראקציות בין מחלקות‬
‫‪ ‬התיאור מתבצע ע"י העברת הודעות בין המחלקות‬
‫‪ ‬מטרת התרשים היא לתאר "התנהגות" של המערכת‬
‫‪‬‬
‫או של חלק ממנה‬
‫‪ ‬התרשים מורכב ממספר חלקים‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪47‬‬
‫‪ – Class roles‬מתארים את תפקיד האוביקט באינטראקציה‬
‫‪ – Lifelines‬מתארים את התנהגות האוביקט בזמן‬
‫‪ – Activations‬מתארים את הזמן בו האוביקט נותן שירות‬
‫‪ – Messages‬מתארים את התקשורת בין האוביקטים‬
Sequence diagram ‫הסימנים הבסיסיים ב‬
Object
Object lifeline
Activation
(Class roles with lifeline(
Message1
48
Sequence Diagram
PowerPoint Presentation for Dennis & Haley Wixom, Systems Analysis and Design, 2nd
Edition Copyright 2003 © John Wiley & Sons, Inc. All rights reserved.
49
Sequence Diagram
PowerPoint Presentation for Dennis & Haley Wixom,
Systems Analysis and Design, 2nd
15 - 50
Edition Copyright 2003 © John Wiley & Sons, Inc. All rights reserved.
50
State Chart Diagram
51
‫‪State Chart Diagram‬‬
‫‪ ‬תרשים המתאר התנהגות של מחלקה‬
‫‪‬‬
‫מתאר איך המחלקה מגיבה לגירוי חיצוני‬
‫‪ ‬התרשים מורכב ממספר חלקים‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪( States‬מצבים) – מתארים מצבים בחיי אוביקט‬
‫‪ ‬ממלאים תנאי מסויים‬
‫‪ ‬מבצעים פעילות‬
‫‪ ‬מחכים להתנהגות מסויימת‬
‫‪( Transitions‬מעברים) – מתארים יחסים בין מצבים של אוביקט‬
‫‪ ‬התרשים בדרך כלל משמש לתיאור מחלקות מורכבות‬
‫‪‬‬
‫‪52‬‬
‫אין צורך לייצר תרשים כזה לכל מחלקה‬
State diagram ‫הסימנים הבסיסיים ב‬
Initial state
Final state
State1
state
transition
53
The Life of an Order
PowerPoint Presentation for Dennis & Haley Wixom, Systems Analysis
and Design, 2nd Edition
15 - 54
Copyright 2003 © John Wiley & Sons, Inc. All rights reserved.
54
Statechart Diagram for an Order
PowerPoint Presentation for Dennis & Haley Wixom, Systems Analysis
and Design, 2nd Edition
15 - 55
Copyright 2003 © John Wiley & Sons, Inc. All rights reserved.
55
Statechart Diagram for a Hospital
Patient
PowerPoint
Presentation for
Dennis & Haley
Wixom, Systems
Analysis and
Design, 2nd Edition
Copyright 2003 ©
John Wiley & Sons,
Inc. All rights
reserved.
56
Collaboration Diagram
Not learning for now
57
Activity Diagram
Not learning for now
58