Presentation is loading. Please wait.

Presentation is loading. Please wait.

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 12 אינטרקציה בין statecharts של אובייקטים שונים דוגמא : Dishwasher.

Similar presentations


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

1 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 12 אינטרקציה בין statecharts של אובייקטים שונים דוגמא : Dishwasher

2 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 2 אינטרקציה בין statecharts של אובייקטים שונים חלקים : א- סקירה של הדוגמא ב- איתחול של Dishwasher statechart ג- אינטראקציה ע " י events ד- אינטראקציה בין בקר לתת מערכת ה- שימוש ב Static Reactions כמנגנון לסנכרון

3 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 3 חלק א ': סקירה של הדוגמא Dishwasher with Controller and Subsystems מדיח כלים עם בקר ותתי - מערכות

4 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 4 סקירה של הדוגמא 1.GUI 2.Key Abstractions 3.Abstract Factory

5 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 5 Multi-Object Dishwasher evStart evService cycles maintenanceOk maintenanceRequired evNormal evQuick evIntensive off filling rinsing washing draining drying evOpen evClose

6 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 6 OMD 1: Key Abstractions

7 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 7 OMD 2: AbstractFactory(2)

8 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 8 OMD 3: AbstractFactory(2)

9 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 9 OMD 4: AbstractFactory(3)

10 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 10 AbstractFactory::theFactory() עם שתי Concrete Subfactories

11 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 11 Sequence Diagram: AcmeFactory

12 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 12 חלק ב ': איתחול של Dishwasher statechart

13 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 13 Dishwasher Statechart

14 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 14 שאלות מפרק הקודם : מה זה OMStartBehaviorEvent? למה נבדק isInNeedOfService()?

15 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 15 OMTracer (0:00:00.000) main() Invoked Dishwasher[0]->Start Behavior OMTracer (0:00:00.000) Dishwasher[0] Entered State ROOT OMTracer (0:00:00.000) Dishwasher[0] Entered State ROOT.active OMTracer (0:00:00.000) Dishwasher[0] Entered State ROOT.active.running OMTracer (0:00:00.000) Dishwasher[0] Entered State ROOT.active.running.doorClosed OMTracer (0:00:00.000) Dishwasher[0] Entered State ROOT.active.running.doorClosed.off OMTracer (0:00:00.100) Dishwasher[0] Entered State ROOT.active.mode OMTracer (0:00:00.100) Dishwasher[0] Entered State ROOT.active.mode.normalMode OMTracer (0:00:00.100) Dishwasher[0] Entered State ROOT.active.maintenance OMTracer (0:00:00.100) Dishwasher[0] Entered State ROOT.active.maintenance.maintenanceOk OMTracer (0:00:00.100) Dishwasher[0] Sent to itself Event OMStartBehaviorEvent OMTracer (0:00:00.100) Dishwasher[0]->Start Behavior Returned OMTracer (0:00:00.100) Dishwasher[0] Modified Attribute Values modeRinseTime10000 modeWashTime20000 modeDryTime5000 StartBehavior-dishwasher

16 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 16 After Start Behavior returns-dishwasher takes OMStartBehavior Event (0:00:00.100) Dishwasher[0] Received from itself Event OMStartBehaviorEvent (0:00:00.100) main() Invoked Dishwasher[0]->Take Event OMStartBehaviorEvent() (0:00:00.100) Dishwasher[0] Invoked isInNeedOfService() (0:00:00.100) Dishwasher[0]->isInNeedOfService() Returned (0:00:00.100) Dishwasher[0]->Take Event OMStartBehaviorEvent() Returned

17 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 17 Statechart of Dishwasher מצב התחלתי ( צבע סגול )

18 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 18 Dishwasher State entry & exit actions +setup() (action on transition)

19 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 19 חלק ג ' אינטראקציה ע " י events

20 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 20 אינטראקציה ע " י events 1.אינטראקציה בתוך statechart בודד 2.אינטראקציה בין אובייקטים עם statecharts 3.אינטראקציה ע"י event with parameters

21 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 21 אינטראקציה ( 1 ): בתוך statechart בודד

22 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 22 אינטראקציה ( 2 א ): בין אובייקטים עם statecharts Dishwasher Tank

23 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 23 אינטראקציה ( 2 ב ): בין אובייקטים עם statecharts

24 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 24 אינטרקציה (3): event with parameter הערה: התרשים אינו שייך ל Dishwasher

25 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 25 חלק ד ': אינטראקציה בין בקר לתת מערכת

26 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 26 אינטרקציה בין בקר לתת מערכת שתי " פרוטוקולים :" – פרוטוקול master-slave חלקית הבקר מפעיל את התת מערכת, תת המערכת מפסיקה את עצמה ו " מודיע " לבקר על ההפסקה – ב Dishwasher זה קורה בשלבים של filling and draining – פרוטוקול master-slave מלאה הבקר מפעיל ומפסיק את התת מערכת – ב Dishwasher זה קורה בשלבים של rinsing, washing, and drying

27 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 27 אינטרקציה בין בקר לתת מערכת פרוטוקול 1: master-slave חלקית דוגמא : שלב של filling ב Dishwasher

28 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 28 פרוטוקול master-slave חלקית : שלב של filling ב Dishwasher תסריט - תיאור מילולי : 1. Dishwasher מקבל evStart ונכנס למצב filling 2.Dishwasher שולח evTankFill ל Tank 3. אחרי 4000 מילי שניות ה Tank מסיים את המילוי ושולח evFull ל Dishwasher 4.Dishwasher מתקדם ל rinsing.

29 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 29 פרוטוקול master-slave חלקית : שלב של filling ב Dishwasher תסריט - תיאור ב Sequence Diagram

30 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 30 פרוטוקול master-slave חלקית : שלב של filling ב Dishwasher תאור ב statecharts (1)

31 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 31 פרוטוקול master-slave חלקית : שלב של filling ב Dishwasher תאור ב statecharts (2): מצב התחלתי empty Static Reaction evTankDrain/itsDishwasher->GEN(evEmpty); full Static Reaction evTankFill/itsDishwasher->GEN(evFull);

32 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 32 פרוטוקול master-slave חלקית : שלב של filling ב Dishwasher תאור ב statecharts (3): תגובה ל evTankFill

33 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 33 פרוטוקול master-slave חלקית : שלב של filling ב Dishwasher תאור ב statecharts (4): סיום מילוי אחרי 4000 מילי

34 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 34 פרוטוקול master-slave חלקית : שלב של filling ב Dishwasher תאור ב statecharts (5): תגובה ל evFull

35 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 35 אינטרקציה בין בקר לתת מערכת פרוטוקול 2: master-slave מלאה דוגמא : שלב של rinsing ב Dishwasher

36 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 36 פרוטוקול master-slave מלאה : שלב של filling ב Dishwasher תסריט - תיאור מילולי : 1. Dishwasher מתקדם למצב rinsing 2.Dishwasher שולח evJetSpray ל Jet 3.Jet נכנס למצב spraying 4. אחרי rinseTime מילי שניות Dishwasher שולח evJetOff ל Jet ומתקדם למצב washing. 5.Jet נכנס למצב idle.

37 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 37 פרוטוקול master-slave מלאה : שלב של rinsing ב Dishwasher תאור ב statecharts (1): שליחת evJetSpray ל Jet

38 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 38 פרוטוקול master-slave מלאה : שלב של rinsing ב Dishwasher תאור ב statecharts (2): איתחול של statechart of Jet idle EntryAction stopMotor(); left EntryAction moveMotor(10000,1000,1000); right EntryAction moveMotor(-10000,1000,1000); spraying EntryAction moveMotor(10000,100,100);

39 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 39 פרוטוקול master-slave מלאה : שלב של rinsing ב Dishwasher תאור ב statecharts (3): תגובה ל evJetSpray

40 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 40 פרוטוקול master-slave מלאה : שלב של rinsing ב Dishwasher תסריט - תיאור ב Sequence Diagram

41 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 41 פרוטוקול master-slave מלאה : שלב של rinsing ב Dishwasher תאור ב statecharts (4): Dishwasher שולח evJetOff ל Jet

42 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 42 פרוטוקול master-slave מלאה : שלב של rinsing ב Dishwasher תאור statecharts (5): Jet מגיב ל evJet Off

43 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 43 חלק ה ': שימוש ב Static Reactions כמנגנון לסנכרון דוגמא : פתיחה וסגירה של דלת ב Dishwasher

44 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 44 תסריט - תיאור מילולי 1. המערכת נמצאת בשלב של מילוי מים 2. הדלת נפתחה 3. אחרי יותר מ 4000 מילי שניות הדלת נסגרה 4. מה קורה ?

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

46 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 46 תסריט - תיאור ב Sequence Diagram

47 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 47 תסריט - תיאור ב statecharts (1)

48 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 48 תסריט - תיאור ב statecharts (2)

49 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 49 תסריט - תיאור ב statecharts (3)

50 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 50 תסריט - תיאור ב statecharts (4)

51 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 51 תסריט - תיאור ב statecharts (5)

52 אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 52 תסריט - תיאור ב statecharts (6)


Download ppt "אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 12 אינטרקציה בין statecharts של אובייקטים שונים דוגמא : Dishwasher."

Similar presentations


Ads by Google