Διαγράμματα καταστάσεων (state diagrams)
Μοντελοποιούν τις διαφορετικές καταστάσεις (states) που μπορεί να έχει μια κλάση και το πως γίνεται αυτή η μετάβαση (από κατάσταση σε κατάσταση).
Δηλαδή, τι προκαλεί τη μετάβαση (trigger), ποιές είναι οι προϋποθέσεις (guards) και ποιο το αποτέλεσμα (effect).
Τα τρία παραπάνω στοιχεία έχουν τη μορφή: <trigger>/[<guard>]/<effect> και αναφέρονται ως υπογραφή μετάβασης (transition signature).
Η μοντελοποίηση μπορεί να αναφέρεται και σε συστήματα και σε υποσυστήματα.
Τα διαγράμματα καταστάσεων αφορούν κυρίως τις κλάσεις (που παρουσιάζουν ενδιαφέρον) και τις μεταβάσεις τους σε καταστάσεις στη διάρκεια λειτουργίας ενός συστήματος.
Τα διαγραμματικά στοιχεία είναι:
- Αρχή (starting point)
- Γραμμή μετάβασης (transition line)
- Κατάσταση (state)
- Σημείο απόφασης (decision point)
- Τέλος (termination point)
Προαιρετικά μπορεί να προστεθεί και η υπογραφή μετάβασης σε μια γραμμή μετάβασης.
Γενικό παράδειγμα
Δραστηριότητες κατάστασης
Όταν ένα αντικείμενο μεταβαίνει σε μια κατάσταση έστω Χ, διακρίνουμε τρείς φάσεις δρστηριοτήτων τις οποίες μπορούμε να περιγράψουμε και αυτές είναι:
- Εισαγωγή (entry). Δραστηριότητες που συμβαίνουν κατά την είσοδο του αντικειμένου στην κατάσταση Χ
- Εκτέλεση (do). Δραστηριότητες που συμβαίνουν κατά τη διάρκεια του αντικειμένου στην κατάσταση Χ
- Έξοδος (exit). Δραστηριότητες που συμβαίνουν κατά την έξοδο του αντικειμένου από την κατάσταση Χ
Παράδειγμα
Υπο-καταστάσεις
Σε μια κατάσταση μπορούμε να διακρίνουμε μια σειρά από υποκαταστάσεις.
Διαγραμματικά αυτό μπορεί να απεικονιστεί όπως παρακάτω.
Παράδειγμα
Διχάλες και ενώσεις (Fork and Join)
Όπως και σε άλλα διαγράμματα μπορούμε να χρησιμοποιήσουμε διχάλες και ενώσεις για να δείξουμε ότι κάποιες καταστάσεις συμβαίνουν ή "τρέχουν" ταυτόχρονα.
Παράδειγμα
Στο παραπάνω παράδειγμα οι καταστάσεις 2 και 3 πρέπει να τελειώσουν πριν πάμε στην 4.
Εναλλακτικό σημείο αρχής
Μπορούμε να έχουμε εναλλακτικό σημείο αρχής το οποίο συμβολίζεται με έναν λευκό κύκλο και το οποίο θεωρείται προαιρετικό.
Παράδειγμα
Στο παραπάνω παράδειγμα, προαιρετικά, μπορεί η πρώτη κατάσταση να είναι η "state 0"