1 / 44

SCE - 4 דינמיקה בדגם הייררכי: StateCharts דר’ יעקב אקסמן תשס"ו

SCE - 4 דינמיקה בדגם הייררכי: StateCharts דר’ יעקב אקסמן תשס"ו. הנדסת מרכיבי תוכנה. דרישות תוכנה. דגם הייררכי. דגם פיזיקלי. מרכיבים. קוד להרצה = exe. מדידות. StateCharts ספרות. [Harel- 1987] David Harel “Statecharts: A visual formalism for complex systems”

anson
Download Presentation

SCE - 4 דינמיקה בדגם הייררכי: StateCharts דר’ יעקב אקסמן תשס"ו

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SCE-4 דינמיקה בדגם הייררכי: StateCharts דר’ יעקב אקסמן תשס"ו

  2. הנדסת מרכיבי תוכנה דרישות תוכנה דגםהייררכי דגםפיזיקלי מרכיבים קוד להרצה = exe מדידות

  3. StateCharts ספרות [Harel- 1987] David Harel “Statecharts: A visual formalism for complex systems” Sci. Comput. Program. 8, 231-274 (June 1987). [Harel-1988] David Harel “On Visual Formalisms” Comm. ACM 31, 514-530 (May 1988). [HG- 1997] D. Harel and E. Gery “Executable Object Modeling with Statecharts” IEEE Computer 30, 31-42 (July 1997).

  4. תרשים מצבים רגיל A e f B g(c) f C h • מצבים: A, B, C • מעברים: e, f, g, h • תנאי:g(c)

  5. תרשים מצבים חסרונות • שטוח – חסר עומק/הייררכיה/מודולריות • אין פיתוח הדרגתי (e.g. top-down) • סידרתי – ללא דרך טבעית למיקבול (concurrency) • בזבזני • במעברים – אירוע גלובלי (למשל פסיקה) • מצוייר מכל מצב ומצב. • במצבים – מספרם גדל באופן מעריכי • עם גודל המערכת

  6. StateCharts הגדרה תרשים מיצוב = StateCharts הרחבה של מכונת מצבים סופית (Finite State Machine) כדי לכלול הייררכיה ומקבול.

  7. StateCharts גישה • עומק/הייררכיה – מצבים בתוך מצבים. • מקבילי – בו-זמניות של מצבים אורתוגונליים. • חסכון במעברים – רק ממצב עליון. • חסכון במצבים – מכפלה של מצבים • אורתוגונליים

  8. Statecharts הרכבת מצבים D A e B g(c) f C h • מצבים: A, B, C, D • מעברים: e, f, g, h • תנאי:g(c) = XORהכלה ללא חפיפה מצבים A, C לא חופפים ומוכלים לגמרי ב- D להיות ב-D משמע להיות ב-A או ב-C, אך לא בשניהם.

  9. Statecharts השוואה D A A e e f B B g(c) g(c) f f C C h h • מצב נוסף: D • מעבר הצטמצם וקוצר:f • מעבר קוצר: h • מעבר חדש: ברירת מחדל (אל C)

  10. Statecharts להרכבת מצבים Y A D k B E e h g F f [in(G)] e G C m H I n n e p e = ANDחלוקה (ע"י קו ) מצבים A, Dאורתוגונליים: מחלקים את מצב Y להיות ב-Y משמע להיות גם ב-A וגם ב-D.

  11. Statecharts השוואה עם תרשים מצבים רגיל תנאי in(G) מתבטא כאן במעבר f רק בין CG לבין BG. מעבר p למצב I מופיע 6פעמים! = AND שקול למכפלה קרטזית של המצבים.

  12. Statecharts השוואה f [in(G)] H I Y A D k B E e h g F e G C m n n e p e AND צמצום מצבים ומעברים

  13. Statecharts להרכבת מצבים Output &Broadcast m/e = מעבר m גורר תוצאה e מצב התחלתי:BFJ מצב סופי: CGI מפני המעברים e

  14. Statecharts שעון ספרתי • 4 כפתורים: a, b, c, d

  15. Statecharts תצוגת שעון מעברים סידרתיים

  16. StateCharts מינוח וסימון H

  17. StateCharts מינוח וסימון

  18. תרשים מיצוב history רמה פנימית אחת בלבד

  19. תרשים מיצוב היסטוריה עמוקה 2 רמות פנימיות

  20. תרשים מיצוב Connective junction • הדגשת הכוונה • פשטות תרשים

  21. תרשים מיצוב OnEntry

  22. תרשים מיצוב צומת לבחירה צומת כמו Switch

  23. תרשים מיצוב צומת עבור לולאה

  24. StateCharts-Aspects ספרות [MBEA-2004] M. Mahoney, A. Bader, T. Elrad & O. Aldawud “Using Aspects to Abstract and Modularize Statecharts” 5th Aspect-Oriented Modeling Workshop – Lisbon Portugal – (October 2004).

  25. StateCharts-Aspects גישה איך לייצג היבטים(aspects)? מימד רוחבי במפת מצבים. • היבטים – מצבים אורתוגונליים למחלקות. • קישור – קובע סדר האירועים • (before, after, around)

  26. StateCharts-Aspects דוגמה: זיכרון זמני • מחלקה: • זיכרון חסום (Bounded Buffer) – • פעולות: קריאה (מחיקה), כתיבה • היבטים: • תיזמון (synchronization) – • ע"פ תפוסת הזיכרון: מלא, חלקי, ריק • הקצאה (scheduling) – • ע"פ תור: קוראים, כותבים בזיכרון

  27. StateCharts-Aspects דוגמת Bounded Buffer Bounded Buffer Class Synchronization Aspect Scheduling Aspect

  28. StateCharts-Aspects מחלקת Bounded Buffer BoundedBuffer evGET / DONE קריאה evNoMoreReaders evGET לא-פעיל evPUT evDONE / DONE כתיבה

  29. StateCharts-Aspects דוגמה: היבט תזמון Synchronization Aspect Get/ NumOf Items-- :GET Get/ NumOf Items-- :GET Get/ Error: buffer empty Get/ Last Item :GET Put/ Error: buffer full ריק חלקי מלא Put/ NumOf Items++ :PUT Put/ Last Item :PUT Put/ NumOf Items++ :PUT

  30. StateCharts-Aspects דוגמה: היבט הקצאה Scheduling Aspect GET/ NumOf Readers++ :evGET GET/ NumOf Readers++ :evGET PUT/ Wait: In WQueue DONE/ NumOf Writers- - יש קוראים לא פעיל יש כותבים DONE/ NumOf Readers- - DONE/ Last Reader/ evNoMoreReaders PUT/ NumOf Writers++ :evPUT GET/ Wait: In RQueue PUT/ Wait: In WQueue

  31. StateCharts-Aspects דוגמה: שידור אירועים כאשר מתרחש אירוע GET בהיבט SchedulingAspect משודר אירוע evGET למחלקה BoundedBuffer

  32. StateCharts-Aspects רמת הפשטה נוספת Class t X Y Aspect e A B לפרש אירוע: אםtמתרחש כאילו e קרה (לפניו או אחריו)

  33. StateCharts-Aspects דוגמה: תקשורת והצפנה Communication Class שלח קבל מקבל לא פעיל שולח קבלה הושלמה משלוח הושלם EncryptionAspect מצפין IP מרוחק קשר מקומי קשר מרוחק IP מקומי מפענח

  34. StateCharts-Aspects דוגמה: תקשורת והצפנה Communication Class שלח קבל מקבל לא פעיל שולח קבלה הושלמה משלוח הושלם Encryption Aspect מצפין IP מרוחק קשר מקומי קשר מרוחק IP מקומי מפענח

  35. StateCharts-Aspects דוגמה: פירוש מחדש Communication.crosscutBy(Encryption) reinterpretEvent(Communication,”IDLE”,”send”, “REMOTE_CONNECTION”,”encrypt”, Statechart.PREHANDLE)

  36. UML-VHDL ספרות [BL-2002] D. Bjorklund & J. Lilius “From UML Behavioral Descriptions to Efficient Synthesizable VHDL” CREST – 2002. VHDL = VHSIC Hardware Description Language VHSIC = Very High Speed Integrated Circuits

  37. UML-VHDL תהליך SMDL = StateChart Description Language aUML = כלי תוכנה מתרגם XMI ל- SMDL

  38. UML-VHDL SMDL SMDL = StateChart Description Language מושגים מצב – יחידת תוכנה מעבר – בדיקת אירוע: if ופקודת: goto בוזמניות – פקודת par(parallelism) לכל פקודה תווית יחידה.

  39. UML-VHDL דוגמה: StateChart Top state e2/e1

  40. UML-VHDL דוגמה: קודSDML 1 sys: top_state 2 event e1; queue q; 3 policy interleaving; 4 l1: par(A,B) • מצב על - כל המערכת נמצאת במצבtop state • מדיניות - interleaving = מריצה תווית אחת בכל מחזור • בוזמניות – שני תת-מצבים A ו-B רצים במקביל.

  41. UML-VHDL דוגמה: קודSDML עבור A A e2/e1 5 A: state 6 queue qA; event e2; 7 policy rtc; 8 a1: state 9 l2: if qA.e2 then 10 l3: emit(q.e1); l4: goto(a2) endif; 11 l5: endstate a1 12 a2: state l6: endstate a2 13 l7: endstate A מדיניות – rtc = run-to-completion = בכל מחזור

  42. UML-VHDL דוגמה: קודSDML עבור B B 14 B: state 15 policy rtc; 16 l8: par(B1,B2) 17 B1: state 18 b1: state 19 l9: if q.e1 then l10: goto(b2) endif; 20 l11: endstate b1 21 b2: state 22 l12: if q.e1 then l13: goto(b1) endif; 23 l14: endstate b2 24 l15: endstate B1 25 B2: state 26 b3: state 27 l16: if q.e1 then l17: goto(b4) endif; 28 l18: endstate b3 29 b4: state l19: endstate b4 30 l20: endstate B2 31 l21: endstate B

  43. 1 B: process(clk,reset ) 2 variable uml event : EventType; 3 variable state : StateType := B1b1 B2b3; 4 begin 5 if reset = ’0’ then 6 state := B1b1 B2b3; 7 elsif clk’event and clk = ’1’ then 8 if state = B1b1 B2b3 or state = B1b1 B2b4 then 9 queue q get event( uml event ); 10 if uml event = e1 then 11 state := B1b2 B2b4; 12 end if; 13 elsif state = B1b2 B2b4 then 14 queue q get event( uml event ); 15 if uml event = e1 then 16 state := B1b1 B2b4; 17 end if; 18 end if; 19 end if; 20 end process B; UML-VHDL דוגמה: קודVHDL עם אופטימיזציה

More Related