460 likes | 759 Views
ניתוח ועיצוב מערכות מידע תעשיה וניהול שנה ב סמסטר אביב 2009 הרצאה 8 : State Chart Diagram מבוסס על השקפים של ד"ר ערן טוך , הפקולטה לתעשייה וניהול, טכניון ד"ר דיצה ביימל Email: dizzab@ruppin.ac.il. סילבוס על פני ציר הזמן. DFD. UML: State chart diagram. מבוא. עקרונות ב OO. OPM.
E N D
ניתוח ועיצוב מערכות מידע תעשיה וניהול שנה בסמסטר אביב 2009הרצאה 8: State Chart Diagram מבוסס על השקפים של ד"ר ערן טוך,הפקולטה לתעשייה וניהול, טכניון ד"ר דיצה ביימלEmail: dizzab@ruppin.ac.il
סילבוס על פני ציר הזמן DFD UML: State chart diagram מבוא עקרונות ב OO OPM שלב הגדרה/ ניתוח 1 2 13 3 4 12 8 11 9 5 6 14 7 10
סיכום השיעור הקודם • מידול דינמי (התנהגותי) • תרשים הרצף - מורכב מאובייקטים ומסרים • מסלולים אלטרנטיביים - למשל לולאות • מודולאריות - למשל מקביליות
תוכן ההרצאה • מבוא לדיאגרמה • אבני הבניין של הדיאגרמה • מצבים • פעילויות • מעברים • מאפיינים מתקדמים • קינון מצבים • מצבים מקבילים
מה חסר במידול של תרשים הרצף? p : Product : ShooppingCart customer display() getPrice() addProduct (p) checkout () In Sequence diagram, we do not really know how the state of the shopping cart changes.
State chart diagram • אנחנו זקוקים למודל שבאמצעותו נוכל לתאר את ההתנהגות של אובייקט מסוים לאורך חייו, עם דגש על: • איך אובייקט מגיב לאירועים • באילו מצבים יכול להימצא האובייקט • איך משפיעים האירועים על מצבי האובייקט • Statecharts הוא פורמאליזם ויזואלי המאפשר לתארתבנית התנהגותית של מערכות מורכבות • פותחו ע"י דוד הראל
מכונת מצבים • מכונת מצבים מוגדרת כמכונה שהפלט שלה הוא פונקציה של הקלט, אבל לא רק. בנוסף, המכונה מתייחסת להיסטוריית הקלטים • היסטוריית הקלטים מיוצגת ע"י מצב פנימי (state) If the phone is ON, then clicking will turn it off If the phone is OFF, then clicking will turn it on
מידול מכונת מצבים באמצעות state chart Cellphone Transition State click Off On Event click
תוכן ההרצאה • מבוא לדיאגרמה • אבני הבניין של הדיאגרמה • מצבים • פעילויות • מעברים • מאפיינים מתקדמים • קינון מצבים • מצבים מקבילים
מרכיבי הדיאגרמה • מבחינה גרפית, הדיאגרמה היא אוסף של צמתים וקשתות • מרכיבי הדיאגרמה: • מצב state • פעילותactivity • מעבר transition • אירוע event • תנאים conditions • פעולה action
מחלקות ומצבים Class view State view State created Order Transition status: {created, sent, received} hasProblems : boolean in gathering gatherItems() updateInventory() sendOrder() received(customer) sendReciept() sent in problem is received
מצבים (states), מצב התחלתי, מצב סופי • אובייקט במערכת נמצא במצב מסוים בזמן נתון • בזמן שהוא נמצא במצב - הוא יכול לחכות לאירוע, ו/או לבצע פעילות • מייצגים מצב באמצעות מלבן עם פינות עגולות • קיימים שני מצבים מיוחדים: התחלתי וסופי
פעילויות (Activities) • בזמן שאובייקט נמצא במצב מסוים הוא יכול לבצע פעילות • הפעילות יכולה להיות מוגבלת בזמן או אין סופית • ניתן להגדיר אוסף של פעילויות, במקרה כזה הן מתרחשות סדרתית • פעילות שמבצע האובייקט ניתנת להפרעה in gathering do: gatherItems() do: updateInventory()
מעברים (Transitions) • הקשר בין מצב למצב נעשה באמצעות מעבר (מסומן כחץ) שקורה בנקודת זמן • מעבר יכול להכיל אירוע, תנאי, ופעולה • אירוע - event, trigger • תנאי - condition, guard • פעולה- action, effect • המעבר מאופשר כאשר האירוע קורה ובאם התנאי מתקיים • פעולה הינה יחידה אטומית (אינה ניתנת להפרעה) המתבצעת בעת מעבר • מעבר יכול לצאת ולהיכנס חזרה לאותו מצב
מעברים event[guard] | action x y The action that takes place when the transition is taken The event that triggers the transition Conditions that must be met for the transition to take place
אירועים (Events) • אירוע היא התרחשות במערכת שקורית במקום ובזמן מסוימים ויכולה לשמש טריגר למעבר ממצב למצב
סוגי אירועים • אירועים כלליים • בקשה לשירות מאובייקט אחר קריאה לפונקציה של האובייקט • received() • סיגנל פנימי או שהתקבל מאובייקט אחר • inventoryReady • אירועי שינוי ערכים • (Changes Of Value) המתרחש באובייקט • false(hasProblems) • אירועי זמן • tm(3 days) • When(1.1.09) • אירועי כניסה/יציאה למצב (במכונות מקביליות) • entered(Sent), exited(Sent) created inventoryReady in gathering false(hasProblems) sent tm(3 days) received() in problem is received
bid[value < 100] Happy bid[value >= 200] bid[(value >= 100) AND (value < 200)] Unhappy תנאים (Conditions) • הצהרה לוגית לגבי מצב של העצם • ביטוי בוליאני, יסומן ע“י סוגרים מרובעים • יכול להיות אוסף של תנאים פשוטים המחוברים באמצעות להופיע יחסים לוגיים כמו And , Or, Not • התנאי מחושב כאשר מתרחש האירוע • דוגמא [האור ברמזור ירוק] Selling
סוגי תנאים • תנאי בוליאני • value >= 100) AND (value < 200)) • [in(S)] , כאשר S הוא מצב • [active(A)] , כאשר A היא פעילות
מעברים ריקים • מעבר יכול להיות כל קומבינציה של שלושת מרכיביו, כולל קומבינציה ריקה • כאשר למעבר אין אירועים, הוא מאופשר בסיום כל הפעילויות של מעבר המקור Empty Transition Employee clean Cleaning do: put water do: put soap do: wash soap do: drain doing nothing Working do: shovel work work
S1 S2 S3 true(C) E1 S1 S2 S3 [C] E1 מה בין אירוע לתנאי? • מה ההבדל בין שתי מכונות המצבים? What happens if C changes to True before E1?
אפשור מעברים מתוך הרצאה של ד"ר איריס ברגר
פעולות (Actions) • אוסף של חישובים המתבצע באופן אטומי • סוגי פעולות • השמה של משתנה • יצירת אירוע (סיגנל או קריאה לפונקציה) • התחלה או סיום של פעילות • ניתן לשרשר פעולות received() | status := received sent is received received() | throw(InventoryUpdate) sent is received | start(sendBill); stop(delivery); x := x+1 sent is received
חוסר דטרמיניזם • אם שני מעברים היוצאים מאותו מצב מקדים מאופשרים באותו רגע, אחד מהם יתבצע באופן לא דטרמיניסטי • מה יקרה בדיאגרמת המצבים הבאה?
דוגמא: מכונת כביסה • On / Off button. Start button • No stop button. • Feedback is given on the current stage (soaking, rinsing, draining, drying) • Three plans: • Regular • Delicate (no soaking) • Super delicate (no soaking, no drying) • Off can be clicked only before starting, or after finishing
תוכן ההרצאה • מבוא לדיאגרמה • אבני הבניין של הדיאגרמה • מצבים • פעילויות • מעברים • מאפיינים מתקדמים • קינון מצבים • מצבים מקבילים
מצבים מקוננים (Composite States) • מצבים מקוננים מאפשרים הבנה טובה יותר של המערכת • מפחיתים באופן דרמתי את מספר המעברים • מקטינים את מספר השגיאות • כל מצב מקונן חייב להיות בעל מצב התחלתי אחד
דוגמא למספר גדול של מצבים: מכונת הכביסה What if the off button can be clicked at any time? What if we want to show how many minutes left to the end of the cycle? What if we want to come back to the same state we left?
היסטוריה History)) • H - חזרה למצב-העל האחרון • H* - חזרה לרמת הקינון העמוקה ביותר Shift ended | clh() Stop Diagnosing pause return Diagnostic1 Diagnostic2 H return-full setup Find a vein H* clh() – clears the history Check blood pressure Draw Blood completion transition (no trigger)
דוגמא להיסטוריה • בדיאגרמה הבאה: • באיזה מצב נמצא לאחר התרחשות האירועים e1 e4 e2 e6 e1 • מה יקרה אם נחליף H ב H* ?
Martial employee single Staff Member married Manager divorced מצבים מקביליים • לעתים, ניתן לראות מערכת, כמורכבת ממספר רכיבים אשר מתנהלים באופן עצמאי זה לצד זה
Martial employee single Staff Member married Manager divorced סימון של מצבים מקביליים • מחברים את התיאורים של הרכיבים לדיאגרמה אחת Martial employee single Staff Member married Manager divorced
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 מצב מקביל מול מצב לא מקביל • כל מידול מקבילי ניתן לתיאור ע"י מידול לא מקבילי שכולל יותר מעברים שימוש במצבים מקביליים ללא שימוש במצבים מקביליים
דיאגרמת האורגנית מתוך הרצאה של ד"ר איריס ברגר
סיכום • Statechart: • מידול מבוסס – מצבים • מתבסס על מכונות מצבים • אבני הבניין של Statechart • מצבים • מעברים • מאפיינים מתקדמים • מצבים מקוננים • מצבים מקבילים ונעבור ל: OPM