1 Ελληνικό Ανοικτό Πανεπιστήµιο Τα διαγράµµατα καταστάσεων ρ. Πάνος Φιτσιλής
2 Περιεχόµενα Βασικές έννοιες και συµβολισµοί Γεγονότα και µηνύµατα Παραδείγµατα
Τα διαγράµµατα καταστάσεων (statechart diagram) Προδιαγράφουν την δυναµική συµπεριφορά ενός αντικειµένου µιας κλάσης είχνουν όλες τις πιθανές καταστάσεις στις οποίες µπορεί να βρεθεί ένα αντικείµενο είχνουν πως το αντικείµενο αλλάζει καταστάσεις ανάλογα µετα µηνύµατα που λαµβάνει Περιγράφει µε λεπτοµερή τρόπο τη συµπεριφορά ενός αντικειµένου 3
4 Οι καταστάσεις Κατάσταση (state) = σύνολο τιµών των πεδίων που περιγράφουν την κατάσταση ενός αντικειµένου µια δεδοµένη χρονική στιγµή Λογαριασµός ΥπόλοιποΛογ : Float Υπερανάληψη ok καταστάσε
Αλλαγές καταστάσεων (1) Η αλλαγή κατάστασης (state transition) συµβαίνει ως αποτέλεσµα ενός γεγονότος (event) Aλλαγή κατάστασης σηµαίνει ότι άλλαξε η κατάσταση του αντικειµένου υπερανάληψη κατάθεση ανάληψη ok 5
Αλλαγές καταστάσεων (2) Τα γεγονότα µπορεί να είναι: Μηνύµατα (messages) ήσήµατα (signals) Ένα γεγονός δε σηµατοδοτεί υποχρεωτική αλλαγή κατάστασης. Το αντικείµενο µπορεί να παραµείνει στην ίδια κατάσταση κατάθεση υπερανάληψη κατάθεση ανάληψη ok ανάληψη 6
7 Μια κατάσταση περιγράφεται µε (1) Όνοµα κατάστασης Πεδία κατάστασης entry / δράση εισόδου do / δραστηριότητα-a event 1 (a:t)[exp]: action 1 event n (a:t)[exp]: action n exit / δράση εξόδου ραστηριότητα (Activity): Έχει διάρκεια, αποτελείται από δράσεις και µπορεί να διακοπεί ράση (Action): Είναι περιορισµένης διάρκειας εν µπορεί να διακοπεί ράση εισόδου (entry action) : η δράση που εκτελείται κατά την είσοδο στην κατάσταση ράση εξόδου (exit action) : η δράση που εκτελείται κατά την έξοδο από την κατάσταση do: µια συνεχής δραστηριότητα που εκτελείται όσο είµαστε στην κατάσταση (π.χ.: έλεγχος για πάτηµα ποντικιού)
8 Μεταβάσεις καταστάσεων State-A Γεγονός(παράµετροι)[συνθήκη]/δράση State-B Τα γεγονότα Πυροδοτούν τη µετάβαση Συνθήκη φρουρός( Guard condition): Η µετάβαση συµβαίνει µόνο όταν ικανοποιηθεί η συνθήκη φρουρός ράσεις: ράσεις που εκτελούνται κατά τη διάρκεια της µετάβασης.
9 Τα γεγονότα (events) Γεγονός = περιστατικό στο χρόνο και στο χώρο Εξωτερικό: λαµβάνει χώρα µεταξύ του συστήµατος και των χειριστών Εσωτερικό: λαµβάνει χώρα µεταξύ των αντικειµένων του συστήµατος Τα γεγονότα είναι τεσσάρων ειδών Σήµατα (signals), ασύγχρονα γεγονότα, Κλήσεις (calls), Χρόνου είχνουν πέρασµα του χρόνου και Αλλαγής Προκαλούν αλλαγή κατάστασης (change in state)
Γεγονότα κλήσης Γεγονός κλήσης = ξεκίνηµα µιας λειτουργίας, κλήση µιας µεθόδου Τα γεγονότα κλήσης είναι σύγχρονα manual startautopilot( normal ) Automatic 10
Γεγονότα χρόνου και αλλαγής Γεγονότα χρόνου (time event) Ηπιοσυνηθισµένη µορφή είναι: µετά από 2 δευτερόλεπτα µετά από 2 δευτερόλεπτα / άνοιξε τη βαλβίδα διαφυγής Γεγονότα αλλαγής (Change event) Η πιο συνηθισµένη µορφή είναι: when time = 4:00am when altitude<1000 when (12:00AM) / goforlunch() when time=4:00am / selftest() Γεγονός αλλαγής Γεγονός χρόνου idle after 2 seconds / dropconnection() active 11
Σήµατα (Signals) Μοντελοποιούνται σαν κλάσεις Μπορούν να συµµετέχουν σε ιεραρχίες κληρονοµικότητας Μπορούν να έχουν πεδία 12
οµή κληρονοµικότητας σηµάτων 13
14 Καταστάσεις αρχής και τέλους Initial state Event(attribute) State-B Αρχική Κατάσταση Τελική κατάστασ Αρχική κατάσταση Το αντικείµενο δεν µπορεί να παραµείνει στην κατάσταση αυτή εν επιτρέπονται εισερχόµενα γεγονότα Επιτρέπονται διακλαδώσεις Τελική κατάσταση Πολλά γεγονότα µπορούν να οδηγούν σε τελική κατάσταση
15 Ένα παράδειγµα: Παραγγελία προϊόντων ράση / έλεγχος πρώτου προϊόντος [ εάν δεν ελέγχθηκαν όλα τα προϊόντα ] / έλεγχος επόµενου προϊόντος Έλεγχος do: έλεγχος προϊόντος Γεγονός [ όλαταπροϊόνταελέχθησαν&& µερικά δεν είναι διαθέσιµα] Προϊόντα παρελήφθησαν [µερικά δεν είναι διαθέσιµ Αναµονή [ Ελέγχθηκανόλαταπροϊόντα&& είναι όλα διαθέσιµα] Προϊόντα παρελήφθησαν Συνθήκη Φρουρός Αποστολή do: έναρξη παράδοσης Παραδόθηκε Παράδοση
Ακύρωση παραγγελίας Εάν κάποιος θέλει να ακυρώσει την παραγγελία ύο λύσεις ηµιουργία µεταβάσεων από κάθε κατάσταση στην κατάσταση «ακύρωση» ηµιουργία υπερκατάστασης και µια απλή µετάβαση κατάστασης. 16
Ακύρωση παραγγελίας [ εάν δεν ελέγχθηκαν όλα τα προϊόντα ] / έλεγχος επόµενου προϊόντος Προϊόντα παρελήφθησαν [µερικά δεν είναι διαθέσιµ / έλεγχος πρώτου προϊόντος Έλεγχος do: έλεγχος προϊόντος [ όλαταπροϊόνταελέχθησαν&& µερικά δεν είναι διαθέσιµα] Προϊόντα παρελήφθησαν Αναµονή [ Ελέγχθηκανόλαταπροϊόντα&& είναι όλα διαθέσιµα] Αποστολή do: έναρξη παράδοσης Ακύρωση Ακύρωση Ακύρωση Ακύρωση Παραδόθηκε Παράδοση 17
Απλοποίηση διαγραµµάτων καταστάσεων µε χρήση υπερκαταστάσεων (superstates) Superstate Event A State-A State-B Event B Event C Οι σύνθετες καταστάσεις έχουν µια αρχή και ένα τέλος Το τέλος σηµατοδοτεί την επιστροφή στο υψηλότερο επίπεδο 18
Superstates/substates ΣΕ ΕΞΕΛΙΞΗ [ εάν δεν ελέγχθηκαν όλα τα προϊόντα ] / έλεγχος επόµενου προϊόντος Προϊόντα παρελήφθησαν [µερικά δεν είναι διαθέσιµα] / έλεγχος πρώτου προϊόντος Έλεγχος do: έλεγχος προϊόντος [ όλαταπροϊόνταελέχθησαν&& µερικά δεν είναι διαθέσιµα] Προϊόντα παρελήφθησαν Αναµονή [ Ελέγχθηκανόλαταπροϊόντα&& είναι όλα διαθέσιµα] Αποστολή do: έναρξη παράδοσης Παραδόθηκε Παράδοση Ακύρωση Ακύρωση 19
Χειρισµός σύνθετων καταστάσεων. Κατάσταση ιστορίας (history state) Superstate Event A H State-A State-B Event B Event C History state ηµιουργεί µνήµη στο διάγραµµα κατάστασης Εάν το γεγονός Α συµβεί τότε ο έλεγχος επανέρχεται στην κατάσταση που βρισκόµασταν πριν εγκαταλείψουµε τη σύνθετη κατάσταση 20
21 Παράδειγµα κατάστασης ιστορίας 5 1 2 3 4 6
22 Χειρισµός ταυτόχρονων γεγονότων Ροή Ελέγχου Ροή Εντολών
Παρατηρήσεις Τα διαγράµµατα καταστάσεων χρησιµοποιούνται για την περιγραφή της δυναµικής συµπεριφοράς των αντικειµένων/κλάσεων Μπορούν να χρησιµοποιηθούν για την περιγραφή των υποσυστηµάτων εν χρειάζεται να περιγράφουµε όλες τις κλάσεις µε διαγράµµατα καταστάσεων Τα διαγράµµατα καταστάσεων µπορεί να γίνουν πολύ πολύπλοκα. Για το χειρισµό της πολυπλοκότητας έχουµε: Σύνθετες καταστάσεις/υπερκαταστάσεις Καταστάσεις ιστορίας Παράλληλες ροές γεγονότων 23
24 Παρουσιάσαµε... ιαγράµµατα καταστάσεων Τρόπος περιγραφής καταστάσεων Είδη γεγονότων και χαρακτηριστικά τους Χειρισµός σύνθετων και πολύπλοκων περιπτώσεων