statecharts

35
עעעעע עעעעעע עעעע) 1 Statecharts Statecharts Statecharts Statecharts עעע עעעעעעעעע עעעעעעע עעע עעעעעעעעע עעעעעעע עעעעעע עעעע עעעעע עעעעעעעעע עע עעעעעע עעעע עעעעע עעעעעעעעע עע עעעעעע עעעעעעע. עעעעעע עעעעעעע. Statecharts Statecharts עעעעע ע”ע עעע עעעע. עעעעע ע”ע עעע עעעע.Resting Working work /punch card rest[break] Employee

Upload: stillman-tyrone

Post on 01-Jan-2016

23 views

Category:

Documents


1 download

DESCRIPTION

Statecharts. Statecharts הוא פורמאליזם ויזואלי המאפשר לתאר תבנית התנהגותית של מערכות מורכבות. Statecharts פותחו ע”י דוד הראל. rest[break]. Employee. Resting. Working. work /punch card. רובוט. נע לעבר המדפים. בטל. נע לעבר הדלפק. נוטל רכיב. מצבים. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Statecharts

עיד

מת

כוער

מח

תוני

)

1

StatechartsStatecharts

StatechartsStatecharts המאפשר ויזואלי פורמאליזם המאפשר הוא ויזואלי פורמאליזם הוא. מורכבות מערכות של התנהגותית תבנית .לתאר מורכבות מערכות של התנהגותית תבנית לתאר

StatechartsStatecharts. ” הראל דוד י ע .פותחו ” הראל דוד י ע פותחו

RestingWorking

work /punch card

rest[break]Employee

Page 2: Statecharts

עיד

מת

כוער

מח

תוני

)

2

מצביםמצבים

, ב להיות יכול במערכת עצם או רכיב , כל ב להיות יכול במערכת עצם או רכיב מצבמצבכל . במצב שוהה רכיב כל נתון בזמן . מסוים במצב שוהה רכיב כל נתון בזמן זמן מסוים זמן פרק פרק

מסוים.מסוים. לוגית ישות הנו מצב של לוגית שם ישות הנו מצב של מתאר שם אינו מתאר והוא אינו והוא

לבצע. פעילותפעילות יכול הוא במצב העצם היות לבצע. בזמן יכול הוא במצב העצם היות בזמן. ( ( ActivityActivityפעילות )פעילות ) לתאר יש להפרעה . הניתנת לתאר יש להפרעה הניתנת

. במצב המתבצעת הפעילות את .במפורש במצב המתבצעת הפעילות את במפורשרובוט

המדפים לעבר נע

הדלפק לעבר נע

בטל

רכיב נוטל

Page 3: Statecharts

עיד

מת

כוער

מח

תוני

)

3

פעילותפעילות

. במצב .מתבצעת במצב מתבצעת ) או ) תמונה הצגה רציפה להיות ( יכולה או ) תמונה הצגה רציפה להיות יכולה

סדרתיתסדרתית זמן זמן אורכת אורכת

State1

do:activity

Take an item

do: take

Page 4: Statecharts

עיד

מת

כוער

מח

תוני

)

4

מעבריםמעברים

באמצעות נעשה למצב מצב בין באמצעות הקשר נעשה למצב מצב בין מעבר מעבר הקשרזמן שקורהשקורה זמן בנקודת .בנקודת כחץ. מסומן .מעבר כחץ. מסומן מעבר

להכיל יכול להכיל מעבר יכול ופעולה ופעולה ((triggertriggerמזניק )מזניק )מעבר((ActionAction)) . .

קיום ותנאיםותנאים אירועיםאירועיםמכיל מכיל המזניקהמזניק את קיום המתנים את המתניםהמעבר.המעבר.

פעולה פעולה ) להפרעה ) ניתנת אינה אטומית יחידה ( הנה להפרעה ) ניתנת אינה אטומית יחידה הנהה ) כאשר במעבר בעת ה ) המתבצעת כאשר במעבר בעת קורה קורה אירועאירועהמתבצעת

ה ה ובאם (.תנאיתנאיובאם (.מתקיים 1מצבמתקיים 2event [condition] /actionמצב

Trigger

Page 5: Statecharts

עיד

מת

כוער

מח

תוני

)

5

מזניקמזניק

ותנאיםותנאים אירועיםאירועיםמכיל מכיל המזניקהמזניק . בין המעבר קיום את . המתנים בין המעבר קיום את המתניםשל לוגיים יחסים להופיע יכולים והתנאים של האירועים לוגיים יחסים להופיע יכולים והתנאים ,AND, ANDהאירועים

OROR .ערך מקבל ערך. המזניק מקבל ..FALSEFALSEאו או TRUETRUEהמזניקאירועאירוע , , שינוי ) עצם ביטול עצם יצירת במערכת שינוי , הוא , שינוי ) עצם ביטול עצם יצירת במערכת שינוי הוא

, , או פקודה קבלת פעילות של סיום או תחילה עצם , במצב , או פקודה קבלת פעילות של סיום או תחילה עצם במצב . : להכיל(. חייב אינו מזניק למדפים הגיע דוגמא . הודעה : להכיל(. חייב אינו מזניק למדפים הגיע דוגמא הודעה

אירוע.אירוע.תנאיתנאי . יסומן תנאי העצם של מצב לגבי לוגית הצהרה . הוא יסומן תנאי העצם של מצב לגבי לוגית הצהרה הוא

.] [ : . ירוק” ברמזור האור דוגמא מרובעים סוגרים י [.ע [ : . ירוק” ברמזור האור דוגמא מרובעים סוגרים י ע הפעילות סיום עם ורק אך ייבדק אירוע לפניו שאין הפעילות תנאי סיום עם ורק אך ייבדק אירוע לפניו שאין תנאי

, הכניסה. עם ייבדק התנאי פעילות במצב אין אם , במצב הכניסה. עם ייבדק התנאי פעילות במצב אין אם במצבלמצב.למצב.

Page 6: Statecharts

עיד

מת

כוער

מח

תוני

)

6

אירועים אירועים סוגי סוגי

::אירועים עם שמותאירועים עם שמות.   .   11reset, a, e, callreset, a, e, call..

אירועים המודיעים על התחלת פעילות:אירועים המודיעים על התחלת פעילות:.   .   22 started(A)started(A), , stopped(A)stopped(A).. קיום תנאי: קיום תנאי:תחילתתחילתאירועים המודיעים על אירועים המודיעים על .   .   33 true(c)true(c), , false(c)false(c)..אירועים המודיעים על כניסה למצב:אירועים המודיעים על כניסה למצב:.   .   44 entered(S)entered(S), , exited(S)exited(S)..::אירועים המודיעים על פסק זמןאירועים המודיעים על פסק זמן. . 55

tm(e, n)tm(e, n) כאשר , כאשר ,ee -הוא אירוע ו- הוא אירוע ו nnפרק זמן פרק זמן

Page 7: Statecharts

עיד

מת

כוער

מח

תוני

)

7

תנאים תנאים סוגי סוגי

..((PredicatePredicateנשוא )נשוא ). . 1122 . .in(S)in(S) כאשר , כאשר ,SS.הוא מצב. הוא מצב

33 . .active(A)active(A) כאשר , כאשר ,AA .היא פעילות. היא פעילות

Page 8: Statecharts

עיד

מת

כוער

מח

תוני

)

8

פעולות פעולות סוגי ((ActionsActions ) ) סוגי

יצירת אירוע עם שם.יצירת אירוע עם שם.. . 11

(.(.x:=x+1x:=x+1השמה למשתנה )השמה למשתנה ). . 22

33 . . - פעילות - התחלת פעילות , ,start(A)start(A)התחלת stop(A)stop(A)..

..clhclhמחיקת היסטוריה – מחיקת היסטוריה – . . 44

(.(.a;x:=x+1a;x:=x+1שרשור פעולות בטור )שרשור פעולות בטור ). . 55

Page 9: Statecharts

עיד

מת

כוער

מח

תוני

)

9

ואירוע תנאי בין ואירוע ההבדל תנאי בין ההבדל

כאשר קורה כאשר מה קורה -CCמה ל -נהפך ל שקרה TRUETRUEנהפך שקרה לפני לפניE1E1??

S1 S2E1

S3Entered C

S1 S2E1

S3 [C]

Page 10: Statecharts

עיד

מת

כוער

מח

תוני

)

10

מאופשר מאופשר מעבר מעבר

מעבר מעברTTii נמצא העצם אם מאופשר נמצא נקרא העצם אם מאופשר נקראלמעבר המקדים למעבר במצב המקדים ..TTiiבמצב

המזניק הפעלת עם יופעל מאופשר המזניק מעבר הפעלת עם יופעל מאופשר מעברשלו.שלו.

S1 S2E1 [C1]

Page 11: Statecharts

עיד

מת

כוער

מח

תוני

)

11

דוגמאדוגמא

RestingWorking

work /punch card

rest[break]Employee

המדפים לעבר נע רכיב נוטל

פעולה

למדפים הגיע/ זרוע הפעל. בלם שים. מנוע פעולת הפסק

מזניק + = מעבר

Page 12: Statecharts

עיד

מת

כוער

מח

תוני

)

12

וסופיים התחלתיים וסופיים מצבים התחלתיים מצבים

White’s turn

Black’s turn

blackmoves

whitemoves

checkmateBlack wins

White winscheckmate

Draw

stalemate

stalemate

שח משחק

start

Page 13: Statecharts

עיד

מת

כוער

מח

תוני

)

13

/ ברירת מעבר התחלתי / מעבר ברירת מעבר התחלתי מעברמחדלמחדל

המחדל שברירת מציין ההתחלתי המחדל המעבר שברירת מציין ההתחלתי המעברלמצב להיכנס למצב היא להיכנס הוא. 22SSהיא התחלתי הוא. מעבר התחלתי מעבר

. התחלתי ממצב שיוצא מזניק חסר .מעבר התחלתי ממצב שיוצא מזניק חסר מעבר

S3S1 S2E1 E2

Page 14: Statecharts

עיד

מת

כוער

מח

תוני

)

14

המשך — המשך — מעברים מעברים

לאותו חזרה ולהיכנס לצאת יכול לאותו מעבר חזרה ולהיכנס לצאת יכול מעברמצב.מצב.

S2 E2 / c++

/ c=0

Page 15: Statecharts

עיד

מת

כוער

מח

תוני

)

15

דוגמא - דוגמא - פעילות פעילות

Cleaningdo: wash hands

doing nothing

Employee

Restingrest[break]

work

Workingdo: shovel

Empty transition

Page 16: Statecharts

עיד

מת

כוער

מח

תוני

)

16

ריק ריק מעבר מעבר

הפעילות כאשר יתבצע ריק הפעילות מעבר כאשר יתבצע ריק מעבריש ) אם לו המקדים במצב יש ) שמתבצעת אם לו המקדים במצב שמתבצעת

. הסתיימה( .כזאת הסתיימה( כזאת

. הפעילות את יפסיק שלמטה .המעבר הפעילות את יפסיק שלמטה המעבר

S2

S2E1

S1פעילות: בצע

S1פעילות: בצע

Page 17: Statecharts

עיד

מת

כוער

מח

תוני

)

17

דטרמיניזם דטרמיניזם חוסר חוסר

מצב מאותו היוצאים מעברים שני מצב אם מאותו היוצאים מעברים שני אם , מהם אחד רגע באותו מאופשרים , מקדים מהם אחד רגע באותו מאופשרים מקדים

. דטרמיניסטי לא באופן .יתבצע דטרמיניסטי לא באופן יתבצע

S1 S2E1

S3

[C1]

Page 18: Statecharts

עיד

מת

כוער

מח

תוני

)

18

בצומת: רמזור בצומת: דוגמא רמזור דוגמא

N/S may go straight

tm(n)

E/W mayturn left

N/S mayturn left

E/W may go straight

tm(n)

tm(n) [cars in E/W left lanes]

tm(n) [cars in N/S left lanes]

tm(n) [no cars in N/S left lanes]

tm(n) [no cars in E/W left lanes]

Page 19: Statecharts

עיד

מת

כוער

מח

תוני

)

19

טלפון: קו טלפון: דוגמא קו דוגמא

Idle

Dialing

off hook

digit (n)

valid number

Ringingrouted

Connected

called phone answers / connect line

Disconnected

called phone hangs up / disconnect line

Time outtime out

time out

invalid number

on hook

digit (n)

on hook

busy

message done

Dial tonedo: sound dial tone

Connectingdo: find connection

Recordedmessage

do: play messageBusy tonedo: sound busy tone

on hook

on hookon hook

on hook / disconnect line

on hook

Page 20: Statecharts

עיד

מת

כוער

מח

תוני

)

20

והכללה מצבים קינון

Transmission

Neutral

Push R

ReversePush N

Forward

Firstupshift

Seconddownshift

upshift

Thirddownshift

stop

Push N Push F

.במעברים וחוסך הכללה משיג ושלישי שני, ראשון המצבים קינון

Page 21: Statecharts

עיד

מת

כוער

מח

תוני

)

21

Employee

At Work [In morning]

[In evening]rest [break]work/punch card

At homedo: sleep

נוספת — דוגמא מצבים קינון

Cleaningdo: wash hands

doing nothing

Resting

Workingdo: shovel

Page 22: Statecharts

עיד

מת

כוער

מח

תוני

)

22

מקוננים ממצבים ויציאות מקוננים כניסות ממצבים ויציאות כניסות

- - / העל/ מצב של מצב מתת ל יציאה - כניסה - / העל/ מצב של מצב מתת ל יציאה AAכניסה.) זו) ברמה לפרט (.מבלי זו) ברמה לפרט מבלי

A

Page 23: Statecharts

עיד

מת

כוער

מח

תוני

)

23

היסטוריההיסטוריה

HH( - האחרון - העל למצב - )חזרה האחרון - העל למצב ((GGאו או FFחזרה**HH - ביותר העמוקה הקינון לרמת ביותר - חזרה העמוקה הקינון לרמת חזרה

( (A-DA-D))

E H

K

A

B

C

D

G F

Page 24: Statecharts

עיד

מת

כוער

מח

תוני

)

24

המשך — המשך — היסטוריה היסטוריה

, - ביקרנו בו האחרון העל למצב , נחזור - ביקרנו בו האחרון העל למצב -GGאו או FFנחזור ל, -ואם ל, FFואם . הפעם זו אם ביקרנו בו האחרון למצב בו גם . אז הפעם זו אם ביקרנו בו האחרון למצב בו גם אז

- ב בקרנו בה -הראשונה ב בקרנו בה , FFהראשונה ההתחלתי למצב ניכנס , אזי ההתחלתי למצב ניכנס ..CCאזי

E H

K

A

B

C

D

G FH

Page 25: Statecharts

עיד

מת

כוער

מח

תוני

)

25

מקביליים מקביליים מצבים מצבים

TransmissionNeutral

Push RReverse

Push N

ForwardFirst

upshiftSecond

downshift

upshiftThird

downshift

stop

Push N Push F

Ignition

Off

turn key to start [Transmission

in Neutral]

Startingrelease key

turn key off

On

Brake

Offrelease

Ondepress

Accelerator

Offrelease

Ondepress

של המצבים מספר הוא המכונית כל

קרטזית מכפלה רכיביה מצבי של

(3X5X2X2) שהמקביליות כך

רב חסכון משיגה.המצבים במספר

שיש לב שימו. רכיבים בין תקשורת

תלוי ההתנעה רכיב.ההילוכים ברכיב

Page 26: Statecharts

עיד

מת

כוער

מח

תוני

)

26

בהצגה - חסכון מקביליים בהצגה - מצבים חסכון מקביליים מצבים

במצבים שימושמקבילים

שימוש ללאמקבילים במצבים

B

C

E

G

F

A D

(in G)

C,F

C,E C,G

B,GB,E

B,F

Page 27: Statecharts

עיד

מת

כוער

מח

תוני

)

27

דוגמא — מקביליים דוגמא — מצבים מקביליים מצביםנוספתנוספת

Resting

Working

Mouth Hands

humming

talking

idle

true(in humming)

true(in talking)

clientleftclient

arrived

Employee

filing

typing

Busy

Page 28: Statecharts

עיד

מת

כוער

מח

תוני

)

28

האירוע קורה האירוע כאשר קורה .readyreadyכאשר המצבים לשני סימולטנית .עוברים המצבים לשני סימולטנית עוברים האירועים קורים האירועים כאשר קורים הפעילויות card taken, cash takencard taken, cash takenכאשר הפעילויות נפסקות ..נפסקות שהמעבר לב שהמעבר שימו לב מקביליים ReadyReadyשימו עוקבים מצבים לשני מקביליים מעביר עוקבים מצבים לשני מעביר

למצב למצב ושלמעבר .Ready to resetReady to resetושלמעבר מקביליים קודמים מצבים שני .יש מקביליים קודמים מצבים שני יש

וסינכרוניזציה מקביליות פעילויות

Emitting

Take cashdo: dispense cash

Take carddo: eject card

Settingup

Readyto reset

c1=cash taken [in Take card]

ready wait1

wait2

c1

c2

c2= card taken [in Take cash]c3=cash taken [in wait2] c4= card taken [in wait1]

c3

c4

Page 29: Statecharts

עיד

מת

כוער

מח

תוני

)

29

שרשרת שרשרת תגובת תגובת

מעברים מעברים סדרת סדרת אירוע להוות יכול אירוע מעבר להוות יכול מעבר נוספים מעברים להזניק יכול נוספים האירוע מעברים להזניק יכול האירוע. בודד בצעד להתרחש יכולים מעברים .הרבה בודד בצעד להתרחש יכולים מעברים הרבה בכל להתרחש שיכולים המעברים מספר את בכל נגביל להתרחש שיכולים המעברים מספר את נגביל

צעד.צעד.A

B

b/d a/c

C

D

d/a c/b

Page 30: Statecharts

עיד

מת

כוער

מח

תוני

)

30

מקביליים במצבים מחדל מקביליים ברירות במצבים מחדל ברירותומקונניםומקוננים

J H

K I

B

C

E

G

F

H

A D

[in B]

Page 31: Statecharts

עיד

מת

כוער

מח

תוני

)

31

אורגניתאורגנית

משמש להדלקה וכיבוי של האורגנית.aכפתור 1.

האורגנית מאפשרת בחירה של שיר ושל הסגנון בו יושמע השיר. 2. הנוכחי הוא Modeכאשר האורגנית דלוקה התצוגה מראה האם ה-

סגנון או שיר ובהתאם את מספר ושם השיר או הסגנון הנוכחיים. 1כאשר מדליקים את האורגנית נבחרים אוטומטית שיר מספר

מוגדר כסגנון.Mode כשיר והסגנון הנוכחיים וה-1וסגנון מספר המעביר את האורגנית bעל מנת לבחור סגנון יש ללחוץ על כפתור 3.

(. (לכל סגנון 1-9 סגנון ואז ללחוץ על מספר הסגנון הרצוי (Modeל-((StyleName)xיש פונקציה אשר מחזירה את שמו בהנתן מספרו

המעביר את האורגנית cעל מנת לבחור שיר יש ללחוץ על כפתור 4.(. (לכל שיר יש 1-9 שיר ואז ללחוץ על מספר השיר הרצוי (Modeל-

((SongName)xפונקציה אשר מחזירה את שמו בהנתן מספרו גורמת להתחלת נגינה של השיר הנוכחי STARTלחיצה על כפתור 5.

בסגנון הנוכחי. לחיצה נוספת על כפתור זה מפסיקה את המוסיקה. ניתן לשנות את הסגנון ו/או השיר תוך כדי נגינה.

Page 32: Statecharts

עיד

מת

כוער

מח

תוני

)

32

אורגניתאורגנית

a

c

b 1 32

4 65

7 98

START

ON\OFF

STYLE

SONG

Display

Mode

Name

Number

Page 33: Statecharts

עיד

מת

כוער

מח

תוני

)

33

אורגניתאורגנית

סימוני ארועים:a – לחיצה על כפתורab – לחיצה על כפתורbc – לחיצה על כפתורcs – לחיצה על כפתורSTARTi – לחיצה על כפתורi i{2,…,9}

1לחיצה על כפתור – 1songend – הסתיימה השמעת השיר הנוכחי

 סימוני משתנים:

i,j – 9 ל- 2משתנים היכולים לקבל ערכים ביןk,m – 9 ל- 1משתנים היכולים לקבל ערכים בין

W – סגנון שם או שיר שם לקבל היכול משתנה

Page 34: Statecharts

עיד

מת

כוער

מח

תוני

)

34

אורגניתאורגנית

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”

offdisable

Do: play song gIn style t

onplay mode song# style# display

style

song

1

j

1

i

enable

StyleDo: x1

SongDo: x2

kDo: display k & w

disp-mode

current item

a

asS or

songendb c

1[c1/]g=1

j[c1]/g=j

1[c2/]t=1

i[c2]/t=i

true)c2) true)c1)

e1 e2 e3

e4

/g=1 /t=1

any numericbutton pressed

Page 35: Statecharts

עיד

מת

כוער

מח

תוני

)

35

אורגניתאורגנית

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”

offdisable

Do: play song gIn style t

onplay mode song# style# display

style

songenable

StyleDo: x1

SongDo: x2

kDo: display k & w

disp-mode

current item

a/g=1, t=1

asS or

songendb c

true)c2) true)c1)

e1 e2 e3

e4

any numericbutton pressed

m[c2]/t=m

change style

m[c1]/g=m

change song