Presentation is loading. Please wait.

Presentation is loading. Please wait.

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 5 תרשימי מצבים Statecharts למחלקות תגובתיות Reactive Classes הקדמה ודוגמא.

Similar presentations


Presentation on theme: "אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 5 תרשימי מצבים Statecharts למחלקות תגובתיות Reactive Classes הקדמה ודוגמא."— Presentation transcript:

1 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 5 תרשימי מצבים Statecharts למחלקות תגובתיות Reactive Classes הקדמה ודוגמא פשוטה

2 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 2 מחלקה תגובתית Reactive Class

3 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 3 דוגמא של Statechart פשוט למחלקה תגובתית actions timeout guards terminator condition connector transition state default transition 2;

4 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 4 Transitions מעברים בין מצבים סינטקס (syntax) מעבר בין שני מצבים מסומן ע " י חץ המחבר ביניהם, בד " כ עם דברים כתובים על החץ כלהלן : – אירוע event: דבר שקורה בנקודת זמן מסוימת – תנאי condition : ערך בוליאני (boolean) – פעולה action ( כמו פונקציה או פקודת C++) מעבר לא צריך לכלול כל שלשת האלמנטים - נפרט בהמשך

5 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 5 Transitions מעברים בין מצבים סוגים של מעברים Default Transition –No events or conditions –Can have actions Regular transition –Event[condition]/action –tm() is an event Null transition –[condition]

6 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 6 Default Transition actions

7 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 7 Regular Transition event condition action

8 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 8 Null Transition condition

9 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 9 סימנים מיוחדים terminator condition connector History connector מצב "סופי של אוביקט כאשר הוא מת. יזכור באיזה מצב הוא היה ב"ביקור" האחרון דרך לאחד יציאות שונות ממצב אחד, כאשר לכל יציאה יש אותו אירוע, אבל עם תנאי אחר.

10 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 10 דוגמא פשוטה - לולא countdown

11 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 11 מה מתבצע קודם : print(count) או isDone()? 2;

12 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 12 Sequence Diagram before execution: What We Expect

13 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 13 Animated Sequence Diagram: Animated What We Expect

14 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 14 איתחול של Statechart “ Start Behavior ” Please enter OMTracer Command>> timestamp Please enter OMTracer Command>> go idle OMTracer (0:00:00.000) New instance Display[0]:Display created by main() OMTracer (0:00:00.000) main() Invoked Display[0]->Start Behavior OMTracer (0:00:00.000) Display[0] Entered State ROOT OMTracer (0:00:00.000) Display[0] Invoked print(string = started) OMTracer (0:00:00.000) Display[0]->print(string = started) Returned OMTracer (0:00:00.000) Display[0] Entered State ROOT.active OMTracer (0:00:00.000) Display[0] set tm(200) at ROOT.active OMTracer (0:00:00.000) Display[0]->Start Behavior Returned Executable is Idle

15 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 15 טיפול באירוע "take event ” Please enter OMTracer Command>> go idle OMTracer (0:00:00.200) Display[0] Sent to itself Event tm(200) at ROOT.active OMTracer (0:00:00.200) Display[0] Received from itself Event tm(200) at ROOT.active OMTracer (0:00:00.200) main() Invoked Display[0]->Take Event Timeout OMTracer (0:00:00.200) Display[0] Invoked isDone() OMTracer (0:00:00.200) Display[0]->isDone() Returned OMTracer (0:00:00.200) Display[0] Exited State ROOT.active OMTracer (0:00:00.200) Display[0] Invoked print(n = 1) OMTracer (0:00:00.200) Display[0]->print(n = 1) Returned OMTracer (0:00:00.200) Display[0] Entered State ROOT.active OMTracer (0:00:00.200) Display[0] set tm(200) at ROOT.active OMTracer (0:00:00.200) Display[0]->Take Event Timeout Returned Executable is Idle

16 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 16 " סיום חיים " של אוביקט תגובתית Please enter OMTracer Command>> go idle OMTracer (0:00:00.400) Display[0] Sent to itself Event tm(200) at ROOT.active OMTracer (0:00:00.400) Display[0] Received from itself Event tm(200) at ROOT.active OMTracer (0:00:00.400) main() Invoked Display[0]->Take Event Timeout OMTracer (0:00:00.400) Display[0] Invoked isDone() OMTracer (0:00:00.400) Display[0]->isDone() Returned OMTracer (0:00:00.400) Display[0] Exited State ROOT.active OMTracer (0:00:00.400) Display[0] Invoked print(n = 0) OMTracer (0:00:00.400) Display[0]->print(n = 0) Returned OMTracer (0:00:00.400) Display[0] Invoked print(string = Done) OMTracer (0:00:00.400) Display[0]->print(string = Done) Returned OMTracer (0:00:00.400) Display[0] Reached Termination State OMTracer (0:00:00.400) Display[0]->Take Event Timeout Returned OMTracer (0:00:00.400) main() Invoked Display[0]->~Display() OMTracer (0:00:00.400) Display[0]->~Display() Returned OMTracer (0:00:00.400) Instance Display[0] of class Display deleted by main() Executable is Idle

17 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 17 Tracer פקודות output מאפשר קליטת פלט בקובץ –output mytrace.txt timestamp מאפשר רישום של זמן –OMTracer (0:00:00.000) go הראצה רגילה עד שכח האירועים ו timeouts טופלו. go idle – מטפל באירוע הבא בתור או מקדם שעון לאפשר טיפול ב timeout

18 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 18 Tracer הודעות Invoked הפעלת פונקציה Returned סיום הפעלת פונקציה Sent שליחת אירוע מאוביקט אחד לאוביקט אחר Received אוביקט קבל אירוע שנשלח ע " י אוביקט אחר set tm( ) מאתחיל שעון בכניסה למצב. השעון " ירוץ " עד שיגיע הזמן בו ה - timeout יתרחש. Entered כניסה למצב Exited יציאה ממצב


Download ppt "אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 5 תרשימי מצבים Statecharts למחלקות תגובתיות Reactive Classes הקדמה ודוגמא."

Similar presentations


Ads by Google