350 likes | 500 Views
Statecharts. Statecharts הוא פורמאליזם ויזואלי המאפשר לתאר תבנית התנהגותית של מערכות מורכבות. Statecharts פותחו ע”י דוד הראל. rest[break]. Employee. Resting. Working. work /punch card. רובוט. נע לעבר המדפים. בטל. נע לעבר הדלפק. נוטל רכיב. מצבים.
E N D
Statecharts • Statecharts הוא פורמאליזם ויזואלי המאפשר לתאר תבנית התנהגותית של מערכות מורכבות. • Statecharts פותחו ע”י דוד הראל. rest[break] Employee Resting Working ניתוח מערכות מידע ) work /punch card
רובוט נעלעברהמדפים בטל נעלעברהדלפק נוטלרכיב מצבים • כל רכיב, או עצם במערכת יכול להיות במצב מסוים בזמן נתון. כל רכיב שוהה במצב פרק זמן מסוים. • שם של מצב הנו ישות לוגית והוא אינו מתאר פעילות. בזמן היות העצם במצב הוא יכול לבצע פעילות (Activity) הניתנת להפרעה. יש לתאר במפורש את הפעילות המתבצעת במצב. ניתוח מערכות מידע )
פעילות • מתבצעת במצב. • יכולה להיות רציפה (הצגה תמונה) או סדרתית • אורכת זמן State1 do:activity Take an item do: take ניתוח מערכות מידע )
Trigger מצב1 מצב2 event [condition] /action מעברים • הקשר בין מצב למצב נעשה באמצעות מעבר שקורה בנקודת זמן. מעבר מסומן כחץ. • מעבר יכול להכיל מזניק (trigger)ופעולה (Action). • המזניק מכיל אירועיםותנאים המתנים את קיום המעבר. • פעולה הנה יחידה אטומית (אינה ניתנת להפרעה) המתבצעת בעת במעבר (כאשר האירוע קורה ובאם התנאי מתקיים). ניתוח מערכות מידע )
מזניק • המזניק מכיל אירועיםותנאים המתנים את קיום המעבר. בין האירועים והתנאים יכולים להופיע יחסים לוגיים של AND, OR. המזניק מקבל ערך TRUE או FALSE. • אירוע הוא שינוי במערכת (יצירת עצם, ביטול עצם, שינוי במצב עצם, תחילה או סיום של פעילות, קבלת פקודה או הודעה). דוגמא: הגיע למדפים. מזניק אינו חייב להכיל אירוע. • תנאי הוא הצהרה לוגית לגבי מצב של העצם. תנאי יסומן ע”י סוגרים מרובעים. דוגמא: [האור ברמזור ירוק]. • תנאי שאין לפניו אירוע ייבדק אך ורק עם סיום הפעילות במצב. אם אין במצב פעילות, התנאי ייבדק עם הכניסה למצב. ניתוח מערכות מידע )
סוגי אירועים 1. אירועים עם שמות: reset, a, e, call. 2. אירועים המודיעים על התחלת פעילות: started(A), stopped(A). 3. אירועים המודיעים על תחילת קיום תנאי: true(c), false(c). 4. אירועים המודיעים על כניסה למצב: entered(S), exited(S). 5. אירועים המודיעים על פסק זמן: tm(e, n), כאשר e הוא אירוע ו- n פרק זמן ניתוח מערכות מידע )
סוגי תנאים 1. נשוא (Predicate). 2. in(S), כאשר S הוא מצב. 3. active(A), כאשר A היא פעילות. ניתוח מערכות מידע )
סוגי פעולות (Actions) 1. יצירת אירוע עם שם. 2. השמה למשתנה (x:=x+1). 3. התחלת פעילות - start(A), stop(A). 4. מחיקת היסטוריה – clh. 5. שרשור פעולות בטור (a;x:=x+1). ניתוח מערכות מידע )
S1 S2 S3 Entered C E1 S1 S2 S3 [C] E1 ההבדל בין תנאי ואירוע • מה קורה כאשר C נהפך ל-TRUE לפני שקרה E1? ניתוח מערכות מידע )
S1 S2 E1 [C1] מעבר מאופשר • מעבר Ti נקרא מאופשר אם העצם נמצא במצב המקדים למעבר Ti. • מעבר מאופשר יופעל עם הפעלת המזניק שלו. ניתוח מערכות מידע )
rest[break] Employee נעלעברהמדפים נוטלרכיב Resting Working הפסקפעולתמנוע. שיםבלם. הפעלזרוע/ הגיעלמדפים = + מזניק פעולה מעבר work /punch card דוגמא ניתוח מערכות מידע )
מצבים התחלתיים וסופיים start White’s turn checkmate Black wins stalemate white moves black moves Draw stalemate Black’s turn White wins checkmate ניתוח מערכות מידע ) משחק שח
E1 E2 S1 S2 S3 מעבר התחלתי/ מעבר ברירת מחדל • המעבר ההתחלתי מציין שברירת המחדל היא להיכנס למצב 2S. מעבר התחלתי הוא מעבר חסר מזניק שיוצא ממצב התחלתי. ניתוח מערכות מידע )
מעברים — המשך • מעבר יכול לצאת ולהיכנס חזרה לאותו מצב. / c=0 S2 E2 / c++ ניתוח מערכות מידע )
פעילות - דוגמא Employee Resting rest[break] Working do: shovel Cleaning do: wash hands doing nothing work Empty transition ניתוח מערכות מידע )
S1 בצע: פעילות S1 בצע: פעילות מעבר ריק • מעבר ריק יתבצע כאשר הפעילות שמתבצעת במצב המקדים לו (אם יש כזאת) הסתיימה. • המעבר שלמטה יפסיק את הפעילות. S2 E1 S2 ניתוח מערכות מידע )
E1 S1 S2 חוסר דטרמיניזם • אם שני מעברים היוצאים מאותו מצב מקדים מאופשרים באותו רגע, אחד מהם יתבצע באופן לא דטרמיניסטי. [C1] S3 ניתוח מערכות מידע )
N/S may go straight N/S may turn left tm(n) [cars in N/S left lanes] tm(n) [no cars in N/S left lanes] tm(n) tm(n) tm(n) [no cars in E/W left lanes] E/W may turn left E/W may go straight tm(n) [cars in E/W left lanes] דוגמא: רמזור בצומת ניתוח מערכות מידע )
דוגמא: קו טלפון on hook on hook Idle off hook time out on hook Dial tone do: sound dial tone Time out time out digit (n) digit (n) Recorded message do: play message invalid number Dialing valid number Busy tone do: sound busy tone busy Connecting do: find connection message done on hook routed on hook Ringing called phone answers / connect line ניתוח מערכות מידע ) on hook / disconnect line Connected called phone hangs up / disconnect line on hook Disconnected
קינון מצבים והכללה Transmission Push R Neutral Reverse Push N Push N Push F Forward stop upshift upshift First Second Third downshift downshift ניתוח מערכות מידע ) קינוןהמצביםראשון, שניושלישימשיגהכללהוחוסךבמעברים.
קינון מצבים — דוגמא נוספת Employee Working do: shovel At Work [In morning] At home do: sleep work/ punch card [In evening] rest [break] Resting Cleaning do: wash hands doing nothing ניתוח מערכות מידע )
כניסות ויציאות ממצבים מקוננים • כניסה/יציאה ל/מתת-מצב של מצב-העל A (מבלי לפרט ברמה זו). A ניתוח מערכות מידע )
K F G E H A C B D היסטוריה • H - חזרה למצב-העל האחרון (F או G) • *H - חזרה לרמת הקינון העמוקה ביותר ( A-D) ניתוח מערכות מידע )
היסטוריה — המשך • נחזור למצב-העל האחרון בו ביקרנו, F או G, ואם ל-F אז גם בו למצב האחרון בו ביקרנו. אם זו הפעם הראשונה בה בקרנו ב-F אזי ניכנס למצב ההתחלתי, C. K F G H E H A C B D ניתוח מערכות מידע )
turn key to start [Transmission in Neutral] Ignition release key Off Starting On turn key off Transmission Push R Neutral Reverse Push N Push N Push F Forward stop upshift upshift First Second Third downshift downshift Brake Accelerator depress depress On On Off Off release release מצבים מקביליים מספרהמצביםשל כלהמכוניתהוא מכפלהקרטזית שלמצבירכיביה (3X5X2X2) כךשהמקביליות משיגהחסכוןרב במספרהמצבים. שימולבשיש תקשורתביןרכיבים. רכיבההתנעהתלוי ברכיבההילוכים. ניתוח מערכות מידע )
A D m E B F d g a b (in G) a G C m d B,F g B,G B,E a b a a g C,E C,G a m d C,F מצבים מקביליים - חסכון בהצגה שימושבמצבים מקבילים ללאשימוש במצביםמקבילים ניתוח מערכות מידע )
Working Employee Mouth Hands humming Busy Resting true(in humming) client left client arrived filing idle true(in talking) talking typing מצבים מקביליים — דוגמא נוספת ניתוח מערכות מידע )
פעילויות מקביליות וסינכרוניזציה • כאשר קורה האירוע ready עוברים סימולטנית לשני המצבים. • כאשר קורים האירועים card taken, cash taken נפסקות הפעילויות. • שימו לב שהמעבר Ready מעביר לשני מצבים עוקבים מקביליים ושלמעבר למצב Ready to reset יש שני מצבים קודמים מקביליים. Emitting c3 Ready to reset Take cash do: dispense cash c1 wait1 Setting up ready wait2 c2 Take card do: eject card c4 c1=cash taken [in Take card] c2= card taken [in Take cash] c4= card taken [in wait1] c3=cash taken [in wait2] ניתוח מערכות מידע )
תגובת שרשרת • סדרת מעברים • מעבר יכול להוות אירוע • האירוע יכול להזניק מעברים נוספים • הרבה מעברים יכולים להתרחש בצעד בודד. • נגביל את מספר המעברים שיכולים להתרחש בכל צעד. A C b/d a/c d/a c/b ניתוח מערכות מידע ) B D
A D E B F G C H ברירות מחדל במצבים מקביליים ומקוננים d J H h [in B] g w a e q ניתוח מערכות מידע ) b K I
אורגנית • כפתור a משמש להדלקה וכיבוי של האורגנית. • האורגנית מאפשרת בחירה של שיר ושל הסגנון בו יושמע השיר. כאשר האורגנית דלוקה התצוגה מראה האם ה-Mode הנוכחי הוא סגנון או שיר ובהתאם את מספר ושם השיר או הסגנון הנוכחיים. כאשר מדליקים את האורגנית נבחרים אוטומטית שיר מספר 1 וסגנון מספר 1 כשיר והסגנון הנוכחיים וה-Mode מוגדר כסגנון. • על מנת לבחור סגנון יש ללחוץ על כפתור b המעביר את האורגנית ל-Mode סגנון ואז ללחוץ על מספר הסגנון הרצוי (1-9). (לכל סגנון יש פונקציה אשר מחזירה את שמו בהנתן מספרו StyleName(x)) • על מנת לבחור שיר יש ללחוץ על כפתור c המעביר את האורגנית ל-Mode שיר ואז ללחוץ על מספר השיר הרצוי (1-9). (לכל שיר יש פונקציה אשר מחזירה את שמו בהנתן מספרו SongName(x)) • לחיצה על כפתור START גורמת להתחלת נגינה של השיר הנוכחי בסגנון הנוכחי. לחיצה נוספת על כפתור זה מפסיקה את המוסיקה. ניתן לשנות את הסגנון ו/או השיר תוך כדי נגינה. ניתוח מערכות מידע )
אורגנית ניתוח מערכות מידע )
אורגנית סימוני ארועים: a – לחיצה על כפתור a b – לחיצה על כפתור b c – לחיצה על כפתור c s – לחיצה על כפתור START i – לחיצה על כפתור ii{2,…,9} 1 – לחיצה על כפתור 1 songend – הסתיימה השמעת השיר הנוכחי סימוני משתנים: i,j – משתנים היכולים לקבל ערכים בין 2 ל- 9 k,m – משתנים היכולים לקבל ערכים בין 1 ל- 9 W– משתנה היכול לקבל שם שיר או שם סגנון ניתוח מערכות מידע )
on play mode song# style# display a /t=1 /g=1 disp-mode true(c1) disable style true(c2) off 1 1 Style Do: x1 Song Do: x2 s S or c b a songend 1[c2]/t=1 current item e4 1[c1]/g=1 song enable k Do: display k & w Do: play song g In style t j i e1 e2 e3 any numeric button pressed j[c1]/g=j i[c2]/t=i אורגנית ניתוח מערכות מידע ) c1= mode in song, c2= mode in style, e1= true(c1)/ w=songname(g),k=g. e2= true(c2)/ w=stylename(t), k=t. e3= true(song# in m)/ w=songname(m),k=m. e4= true(style# in m)] / w=stylename(m), k=m. X1= display “style”, x2= display “song”
on play mode song# style# display a/g=1, t=1 disp-mode true(c1) disable style true(c2) off Style Do: x1 Song Do: x2 s S or c b a songend change song change style current item e4 song enable k Do: display k & w Do: play song g In style t m[c1]/g=m e1 m[c2]/t=m e2 e3 any numeric button pressed c1= mode in song, c2= mode in style, e1= true(c1)/ w=songname(g),k=g. e2= true(c2)/ w=stylename(t), k=t. e3= true(g= m)/ w=songname(m), k=m. e4= true(t= m)] / w=stylename(m), k=m. X1= display “style”, x2= display “song” אורגנית ניתוח מערכות מידע )