Διάγραμμα κατάστασης μηχανής & διάγραμμα καταστάσεων σε UML

Τι είναι ένα διάγραμμα κατάστασης μηχανής;

Διάγραμμα κατάστασης χρησιμοποιούνται για την καταγραφή της συμπεριφοράς ενός συστήματος λογισμικού. Τα διαγράμματα μηχανής κατάστασης UML μπορούν να χρησιμοποιηθούν για τη μοντελοποίηση της συμπεριφοράς μιας κλάσης, ενός υποσυστήματος, ενός πακέτου ή ακόμα και ενός ολόκληρου συστήματος. Ονομάζεται επίσης διάγραμμα κατάστασης ή διάγραμμα μετάβασης κατάστασης.

Τι είναι ένα διάγραμμα κατάστασης;

Τα διαγράμματα καταστάσεων μας παρέχουν έναν αποτελεσματικό τρόπο για να μοντελοποιήσουμε τις αλληλεπιδράσεις ή την επικοινωνία που συμβαίνουν εντός των εξωτερικών οντοτήτων και ενός συστήματος. Αυτά τα διαγράμματα χρησιμοποιούνται για τη μοντελοποίηση του συστήματος που βασίζεται σε συμβάντα. Η κατάσταση ενός αντικειμένου ελέγχεται με τη βοήθεια ενός συμβάντος. Τα διαγράμματα καταστάσεων χρησιμοποιούνται για να περιγράψουν διάφορες καταστάσεις μιας οντότητας μέσα στο σύστημα εφαρμογής.

Υπάρχουν συνολικά δύο τύποι διαγραμμάτων μηχανής κατάστασης στο UML:

1. Διάγραμμα Μηχανής Κατάστασης Συμπεριφοράς

  • Καταγράφει τη συμπεριφορά μιας οντότητας που υπάρχει στο σύστημα.
  • Χρησιμοποιείται για να αναπαραστήσει τη συγκεκριμένη υλοποίηση ενός στοιχείου.
  • Η συμπεριφορά ενός συστήματος μπορεί να μοντελοποιηθεί χρησιμοποιώντας το διάγραμμα μηχανής κατάστασης συμπεριφοράς στο OOAD.

2. Διάγραμμα Μηχανής Κατάστασης Πρωτοκόλλου

  • Αυτά τα διαγράμματα χρησιμοποιούνται για την καταγραφή της συμπεριφοράς ενός πρωτοκόλλου.
  • Αντιπροσωπεύει πώς αλλάζει η κατάσταση του πρωτοκόλλου σχετικά με το συμβάν. Αντιπροσωπεύει επίσης αντίστοιχες αλλαγές στο σύστημα.
  • Δεν αντιπροσωπεύουν τη συγκεκριμένη υλοποίηση ενός στοιχείου.

Γιατί διάγραμμα κατάστασης μηχανής;

Το διάγραμμα καταστάσεων χρησιμοποιείται για την αποτύπωση της δυναμικής πτυχής ενός συστήματος. Τα διαγράμματα μηχανών κατάστασης χρησιμοποιούνται για να αναπαραστήσουν τη συμπεριφορά μιας εφαρμογής. Ένα αντικείμενο περνά από διάφορες καταστάσεις κατά τη διάρκεια της ζωής του. Η διάρκεια ζωής ενός αντικειμένου παραμένει μέχρι να τερματιστεί το πρόγραμμα. Το αντικείμενο πηγαίνει από πολλαπλές καταστάσεις ανάλογα με το γεγονός που συμβαίνει μέσα στο αντικείμενο. Κάθε κατάσταση αντιπροσωπεύει κάποιες μοναδικές πληροφορίες για το αντικείμενο.

Τα διαγράμματα καταστάσεων χρησιμοποιούνται για το σχεδιασμό διαδραστικών συστημάτων που ανταποκρίνονται είτε σε εσωτερικό είτε σε εξωτερικό γεγονός. Το διάγραμμα καταστάσεων στο UML απεικονίζει τη ροή της εκτέλεσης από μια κατάσταση σε μια άλλη κατάσταση ενός αντικειμένου.

Αντιπροσωπεύει την κατάσταση ενός αντικειμένου από τη δημιουργία ενός αντικειμένου μέχρι να καταστραφεί ή να τερματιστεί το αντικείμενο.

Ο πρωταρχικός σκοπός ενός διαγράμματος καταστάσεων είναι να μοντελοποιήσει διαδραστικά συστήματα και να ορίσει κάθε κατάσταση ενός αντικειμένου. Τα διαγράμματα καταστάσεων σχεδιάζονται για να αποτυπώνουν τη δυναμική συμπεριφορά ενός συστήματος εφαρμογών. Αυτά τα διαγράμματα χρησιμοποιούνται για να αναπαραστήσουν διάφορες καταστάσεις ενός συστήματος και οντοτήτων μέσα στο σύστημα.

Σημείωση και σύμβολο για διάγραμμα κατάστασης μηχανής (Διάγραμμα Statechart)

Ακολουθούν οι διάφοροι συμβολισμοί που χρησιμοποιούνται σε όλο το διάγραμμα του γραφήματος κατάστασης. Όλες αυτές οι σημειώσεις, όταν συνδυάζονται, συνθέτουν ένα ενιαίο διάγραμμα.

Σημειώσεις διαγραμμάτων κατάστασης UML
Σημειώσεις διαγραμμάτων κατάστασης UML

Αρχική κατάσταση

Το σύμβολο αρχικής κατάστασης χρησιμοποιείται για να υποδείξει την αρχή ενός διαγράμματος μηχανής κατάστασης.

Τελική κατάσταση

Αυτό το σύμβολο χρησιμοποιείται για να υποδείξει το τέλος ενός διαγράμματος μηχανής κατάστασης.

Κουτί απόφασης

Περιέχει μια συνθήκη. Ανάλογα με το αποτέλεσμα μιας αξιολογούμενης συνθήκης φύλαξης, λαμβάνεται μια νέα διαδρομή για την εκτέλεση του προγράμματος.

Μετάβαση

Μια μετάβαση είναι μια αλλαγή σε μια κατάσταση σε μια άλλη κατάσταση που συμβαίνει λόγω κάποιου γεγονότος. Μια μετάβαση προκαλεί μια αλλαγή στην κατάσταση ενός αντικειμένου.

Πολιτικό κουτί

Είναι μια συγκεκριμένη στιγμή στη διάρκεια ζωής ενός αντικειμένου. Ορίζεται χρησιμοποιώντας κάποια συνθήκη ή μια δήλωση μέσα στο σώμα του ταξινομητή. Χρησιμοποιείται για την αναπαράσταση οποιωνδήποτε στατικών καθώς και δυναμικών καταστάσεων.

Συμβολίζεται χρησιμοποιώντας ένα ορθογώνιο με στρογγυλές γωνίες. Το όνομα μιας πολιτείας αναγράφεται μέσα στο στρογγυλεμένο ορθογώνιο.

Το όνομα μιας πολιτείας μπορεί επίσης να τοποθετηθεί έξω από το ορθογώνιο. Αυτό μπορεί να γίνει σε περίπτωση σύνθετων ή υπομηχανικών καταστάσεων. Κάποιος μπορεί είτε να τοποθετήσει το όνομα μιας πολιτείας μέσα στο ορθογώνιο είτε έξω από το ορθογώνιο σε ένα πλαίσιο πίνακα. Δεν μπορεί κανείς να εκτελέσει και τα δύο ταυτόχρονα.

Μια κατάσταση μπορεί να είναι είτε ενεργή είτε ανενεργή. Όταν μια κατάσταση βρίσκεται σε κατάσταση λειτουργίας, είναι ενεργή, μόλις σταματήσει να εκτελείται και μεταβεί σε άλλη κατάσταση, η προηγούμενη κατάσταση γίνεται ανενεργή και η τρέχουσα κατάσταση γίνεται ενεργή.

Τύποι κράτους

Η ενοποιημένη γλώσσα μοντελοποίησης ορίζει τρεις τύπους καταστάσεων:

  • Απλή κατάσταση
  • Δεν έχουν κανένα υποκράτος.
  • Σύνθετη κατάσταση
  • Αυτοί οι τύποι πολιτειών μπορούν να έχουν ένα ή περισσότερα από ένα υποκατάστατα.
  • Μια σύνθετη κατάσταση με δύο ή περισσότερες υποκαταστάσεις ονομάζεται ορθογώνια κατάσταση.
  • Κατάσταση υπομηχανής
  • Αυτές οι καταστάσεις είναι σημασιολογικά ίσες με τις σύνθετες καταστάσεις.
  • Σε αντίθεση με τη σύνθετη κατάσταση, μπορούμε να χρησιμοποιήσουμε ξανά τις καταστάσεις υπομηχανής.

Πώς να σχεδιάσετε ένα διάγραμμα κατάστασης;

Τα διαγράμματα καταστάσεων χρησιμοποιούνται για να περιγράψουν τις διάφορες καταστάσεις από τις οποίες διέρχεται ένα αντικείμενο. Μια μετάβαση μεταξύ μιας κατάστασης σε μια άλλη κατάσταση συμβαίνει λόγω κάποιου γεγονότος που προκαλείται. Για να σχεδιάσετε ένα διάγραμμα κατάστασης UML, πρέπει κανείς να προσδιορίσει όλες τις πιθανές καταστάσεις οποιασδήποτε συγκεκριμένης οντότητας.

Ο σκοπός αυτών Διαγράμματα UML είναι η αναπαράσταση καταστάσεων ενός συστήματος. Τα κράτη διαδραματίζουν ζωτικό ρόλο στα διαγράμματα μετάβασης κατάστασης. Όλα τα ουσιαστικά αντικείμενα, καταστάσεις και τα γεγονότα που προκαλούν αλλαγές εντός των καταστάσεων πρέπει πρώτα να αναλυθούν πριν από την εφαρμογή του διαγράμματος.

Οι ακόλουθοι κανόνες πρέπει να λαμβάνονται υπόψη κατά τη σχεδίαση ενός διαγράμματος καταστάσεων:

  1. Το όνομα μιας μετάβασης κατάστασης πρέπει να είναι μοναδικό.
  2. Το όνομα ενός κράτους πρέπει να είναι εύκολα κατανοητό και να περιγράφει τη συμπεριφορά ενός κράτους.
  3. Εάν υπάρχουν πολλά αντικείμενα, τότε μόνο βασικά αντικείμενα θα πρέπει να υλοποιούνται.
  4. Πρέπει να δίνονται τα κατάλληλα ονόματα για κάθε μετάβαση και ένα συμβάν.

Πότε να χρησιμοποιήσετε ένα διάγραμμα κατάστασης μηχανής;

Τα διαγράμματα καταστάσεων χρησιμοποιούνται για την υλοποίηση μοντέλων εργασίας και αντικειμενοστρεφών συστημάτων σε πραγματικό χρόνο. Αυτά τα διαγράμματα χρησιμοποιούνται για να συγκρίνουν τη δυναμική και τη στατική φύση ενός συστήματος καταγράφοντας τη δυναμική συμπεριφορά ενός συστήματος.

Τα διαγράμματα καταστάσεων χρησιμοποιούνται για την καταγραφή των αλλαγών σε διάφορες οντότητες του συστήματος από την αρχή μέχρι το τέλος. Χρησιμοποιούνται για την ανάλυση του τρόπου με τον οποίο ένα γεγονός μπορεί να προκαλέσει αλλαγές σε πολλαπλές καταστάσεις ενός συστήματος.

Χρησιμοποιούνται διαγράμματα χαρακτήρων καταστάσεων:

  1. Για τη μοντελοποίηση αντικειμένων ενός συστήματος.
  2. Να μοντελοποιήσει και να εφαρμόσει διαδραστικά συστήματα.
  3. Για εμφάνιση συμβάντων που προκαλούν αλλαγές εντός των καταστάσεων.

Παράδειγμα Κρατικής Μηχανής

Το παρακάτω διάγραμμα κατάστασης παραδείγματος γράφημα αντιπροσωπεύει τη διαδικασία ελέγχου ταυτότητας χρήστη.

Διάγραμμα κατάστασης UML

Διάγραμμα κατάστασης UML

Υπάρχουν συνολικά δύο καταστάσεις και η πρώτη κατάσταση υποδεικνύει ότι πρέπει πρώτα να εισαχθεί το OTP. Μετά από αυτό, το OTP ελέγχεται στο πλαίσιο απόφασης, εάν είναι σωστό, τότε θα συμβεί μόνο η μετάβαση κατάστασης και ο χρήστης θα επικυρωθεί. Εάν το OTP είναι λανθασμένο, τότε η μετάβαση δεν θα πραγματοποιηθεί και θα επιστρέψει ξανά στην αρχική κατάσταση έως ότου ο χρήστης εισαγάγει το σωστό OTP όπως φαίνεται στο παραπάνω παράδειγμα διαγράμματος μηχανής κατάστασης.

Διάγραμμα κατάστασης μηχανής έναντι διαγράμματος ροής

Ακολουθούν οι βασικές διαφορές μεταξύ του διαγράμματος κατάστασης και του διαγράμματος ροής

Διάγραμμα κατάστασης μηχανής ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ
Αντιπροσωπεύει διάφορες καταστάσεις ενός συστήματος. Το διάγραμμα ροής απεικονίζει τη ροή εκτέλεσης του προγράμματος.
Το μηχάνημα κατάστασης έχει μια έννοια WAIT, δηλαδή, αναμονή για μια ενέργεια ή ένα συμβάν. Το διάγραμμα ροής δεν ασχολείται με την αναμονή για μια ιδέα.
Οι κρατικές μηχανές χρησιμοποιούνται για ένα σύστημα ζωντανής λειτουργίας. Το διάγραμμα ροής απεικονίζει διακλαδισμένες ακολουθίες ενός συστήματος.
Η μηχανή κατάστασης είναι ένα διάγραμμα μοντελοποίησης. Ένα διάγραμμα ροής είναι μια ροή ακολουθίας ή ένα διάγραμμα DFD.
Η μηχανή κατάστασης μπορεί να εξερευνήσει διάφορες καταστάσεις ενός συστήματος. Το διάγραμμα ροής ασχολείται με τα μονοπάτια και τον έλεγχο της ροής.

Σύνοψη

  • Τα διαγράμματα καταστάσεων ονομάζονται επίσης διαγράμματα μηχανών κατάστασης.
  • Αυτά τα διαγράμματα χρησιμοποιούνται για τη μοντελοποίηση του συστήματος που βασίζεται σε συμβάντα.
  • Μια κατάσταση μιας οντότητας ελέγχεται με τη βοήθεια ενός συμβάντος.
  • Υπάρχουν συνολικά δύο τύποι διαγραμμάτων μηχανής κατάστασης: 1) Διάγραμμα κατάστασης μηχανής συμπεριφοράς 2) Διάγραμμα κατάστασης μηχανής πρωτοκόλλου
  • Το διάγραμμα καταστάσεων χρησιμοποιείται για την αποτύπωση της δυναμικής πτυχής ενός συστήματος.
  • Μια κατάσταση είναι μια συγκεκριμένη στιγμή στη διάρκεια ζωής ενός αντικειμένου.