נושאים:
תפקידו של
State Transition Diagram
הוא לתאר את מרחב המצב (state
space) של השמה של
class,
המאורעות הגורמים לעבור ממצב אחד למצב אחר, והפעילויות הנגרמות משינוי של מצב.
1.
State
- מצב.
![](../../images/yuval/state.gif)
("מלבנגול" בלשון פרופ' דוד הראל).
לכל מצב חייב להיות שם ייחודי (unique)
בסביבה שלו. למצבים מסוימים כדאי גם לפרט את הפעילויות הקשורות למצב.
2.
State Transitions
- מעברים
![](6_5.files/image002.jpg)
מאורע (event)
גורם לעבור ממצב למצב. מעבר מקשר בין שני המצבים (ייתכן גם מעבר ממצב לעצמו).
מאורע עשוי לגרום לפעולה (action).
![](6_5.files/image004.gif)
מצביע למצב התחלתי. חייב להופיע
בתרשים.
![](6_5.files/image006.gif)
מצביע על סיום. אופציונאלי.
א. פירוט פעילויות בכניסה וביציאה
ממצב. לדוגמא: entry Heater::startUp entry Heater::shutDown
ב. התניות למעברים (conditional
state transitions)מוסיפים ליד המאורע הגורם למעבר
guard
שהוא ביטוי בוליאני (Boolean
expression), שאם הוא
true
אז המאורע גורם למצב להשתנות. לדוגמא: מעבר כעבור זמן מוגדר, למשל [>=
5 minutes].
ג.
Nesting
(קינון)
superstate
המכיל substates.
ה- nesting
יכול להיות למספר רב של רמות.
![](../../images/yuval/nesting.gif)
ד. היסטוריה (History).
![](6_5.files/image008.gif)
הסמל יופיע באיזשהו מקום ב-
superstate
כדי לציין שבכניסה הבאה ל-
superstate זה יש להיכנס למצב
(substates) שבפעם האחרונה היו בו.
לדוגמא:
![](6_5.files/image010.jpg)
בפעם הראשונה שנכנסים ל-
Failure
צריך ליצור log
אך בפעמים הבאות מתחילים מ-
ready
Log(שהרי
ה- log
קיים כבר).
![](stateexample_small.gif) איור- דוגמא: תחנת מזג אוויר (לחץ כדי להגדיל)
לסעיף הבא- תרשים הידודיות...
![](../../images/yahoo/l_hand.gif) ![הבא](../../_derived/next_cmp_-4110_next.gif) |