Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 5/12/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.

Σχετικά έγγραφα
Τεχνολογία Λογισμικού

Τεχνολογία Λογισμικού

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 21/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Τεχνολογία Λογισμικού

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 21/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.

Τεχνολογία Λογισμικού

UML: Unified modelling language

Τεχνολογία Λογισμικού

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

09 Η γλώσσα UML II. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 8 ο & 9 ο Εργαστήριο -

Διαχείριση Πληροφοριακών Συστημάτων

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

ιαγράµµατα Συµπεριφοράς Ανάλυση Συστηµάτων 2009

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Τα διαγράµµατα καταστάσεων

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 7: Διαγράμματα Καταστάσεων

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Περιεχόμενο του μαθήματος

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία

Φροντιστήριο 5. Ημερομηνία: 01/12/2006 Θεματική Ενότητα: Μοντελοποίηση Συμπεριφοράς Θέμα: Διαγράμματα αλληλεπίδρασης και καταστάσεων

Κεφάλαιο 2ο. Κατανοώντας την αντικειμενοστρέφεια

Τεχνολογία Λογισμικού

Τεχνολογία Λογισμικού

UML

Τεχνολογία Λογισμικού

Εισαγωγή στη γλώσσα UML

Μέθοδοι μοντελοποίησης

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 7 ο Εργαστήριο -

. Μεθοδολογία Προγραμματισμού. UML Διαγράμματα. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

Περιεχόμενα και Διάρθρωση. Interaction Diagrams

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Διαγράμματα Αλληλεπίδρασης. Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Τεχνολογία Λογισμικού

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 28/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.

Περιεχόμενα. ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στη UML... 19

Εννοιολογικό Μοντέλο. Conceptual Model

Interaction Diagrams Διαγράμματα Αλληλεπίδρασης

Περιεχόμενο του μαθήματος

06 Αντικειμενοστρεφής ανάλυση και σχεδιασμός

Ανάλυση Περιπτώσεων Χρήσης

Τεχνολογία Λογισμικού

Σημειογραφία των προτύπων BPMN και UML (Activity Diagrams)

Η γλώσσα μοντελοποίησης UML. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής

Rational Unified Process:

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Συνεργασίας. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

ΕΚΦΩΝΗΣΗ ΥΠΟΧΡΕΩΤΙΚΗΣ ΕΡΓΑΣΙΑΣ σε UML

Ελληνικό Ανοικτό Πανεπιστήµιο. Τα διαγράµµατα UML. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στη Ενοποιηµένη Προσέγγιση Unified Process (UP) ρ. Πάνος Φιτσιλής

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

περιεχόμενα παρουσίασης

ΔΟΜΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΣΥΜΠΕΡΙΦΟΡΑΣ (9)

ιαγράµµατα Αλληλεπίδρασης ιαγράµµατα Ακολουθίας ιαγράµµατα Επικοινωνίας

Η γλώσσα μοντελοποίησης UML. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 7

ΕΙΣΑΓΩΓΗ ΣΤΗΝ UML ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΠΙΧΕΙΡΗΜΑΤΙΚΩΝ ΔΙΑΔΙΚΑΣΙΩΝ (ΔΙΑΓΡΑΜΜΑΤΑ ΔΡΑΣΤΗΡΙΟΤΗΤΩΝ & ΠΕΡΙΠΤΩΣΕΩΝ ΧΡΗΣΗΣ) (7-8)

Ανάλυση Πληροφοριακών Συστημάτων. «Βασικές Έννοιες Αντικειμενοστρεφούς Προγραμματισμού Διαγράμματα κλάσεων» Βασίλειος Καρακόιδας

Μοντελοποίηση ροών εργασίας

6. Εισαγωγή στη Ενοποιημένη Γλώσσα Μοντελοποίησης UML (Unified Modeling Language)

Θεωρίες Μάθησης και Εκπαιδευτικό Λογισμικό

ΜΕΘΟΔΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Βασικές Δομές μοντέλων Petri Nets. C.A. Petri

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Αλληλεπίδρασης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού

Ανάλυση Συστηµάτων και Τεχνολογία Λογισµικού

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο -

Use Cases: μια σύντομη εισαγωγή. Heavily based on UML & the UP by Arlow and Neustadt, Addison Wesley, 2002

Τεχνολογία Λογισμικού

ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων

Ελέγξτε την ταινία σας

Μοντελοποίηση Συμπεριφοράς (Behavioral Modeling)

Tεχνολογία Λογισµικού II

περιεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης

ΟΔΗΓΙΕΣ ΓΙΑ ΧΡΗΣΗ ΤΟΥ ΕΡΓΑΛΕΙΟΥ RATIONAL ROSE

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 8: Διαγράμματα Δραστηριοτήτων

Bizagi Modeler: Συνοπτικός Οδηγός

4η ιάλεξη. UML ιαγράμματα αλληλεπίδρασης

Εγχειρίδιο χρήσης Intalio Designer Εγχειρίδιο χρήσης Intalio Designer

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Rational Unified Process. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ & ΑΝΑΛΥΣΗΣ ΣΥΣΤΗΜΑΤΩΝ

Πανεπιστήµιο Πειραιά Τµήµα Εκπαιδευτικής Τεχνολογίας και Ψηφιακών Συστηµάτων. Εισαγωγή στην UML. Βασίλειος Βεσκούκης

Έγγραφο Περιγραφής Απαιτήσεων Λογισμικού

Ανάλυση Πληροφοριακών Συστημάτων. «Εισαγωγή στην UML» Βασίλειος Καρακόιδας

Διάλεξη 11: Αντικειμενοστρεφής Σχεδιασμός ΙII

Θεωρίες Μάθησης και Εκπαιδευτικό Λογισμικό

Transcript:

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων 5/12/2016 Τεχνολογία Λογισμικού & Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Ανάλυση Συστημάτων

State Diagrams Διαγράμματα Καταστάσεων

Διαγράμματα UML Διάγραμμα περιπτώσεων χρήσης (use case diagram) Διάγραμμα κλάσεων (class diagram) Διάγραμμα αντικειμένων (object diagram) Διάγραμμα καταστάσεων (state diagram) Διάγραμμα δραστηριοτήτων (activity diagram) Διαγράμματα αλληλεπίδρασης (interaction diagrams) Διάγραμμα ακολουθίας (sequence diagram) Διάγραμμα επικοινωνίας (communication diagram) Διαγράμματα υλοποίησης (physical diagrams) Διάγραμμα συστατικών (component diagram) Διάγραμμα ανάπτυξης (deployment diagram)

Άξονες Μοντελοποίησης Λειτουργικότητα functionality Τι κάνει το σύστημα; Ποιες λειτουργίες υποστηρίζει; Ανάλυση απαιτήσεων Περιγραφές από κείμενο Στατικά διαγράμματα Πώς είναι οργανωμένα τα συστατικά του τμήματα; Δυναμική συμπεριφορά Πώς ανταποκρίνεται και από ποιες καταστάσεις περνάει; Δομή structure Συμπεριφορά behaviour

Κατηγοριοποίηση Διαγραμμάτων UML 2.0

Μοντελοποίηση με τη γλώσσα UML Περιγραφή Λειτουργίας από την πλευρά του χρήστη Στατική δομή Δυναμικά χαρακτηριστικά - Συμπεριφορά Μοντελοποίηση Απαιτήσεων Μοντελοποίηση στατικής δομής του συστήματος Μοντελοποίηση δυναμικών χαρακτηριστικών του συστήματος Μοντελοποίηση της συμπεριφοράς συγκεκριμένων αντικειμένων Μοντελοποίηση των βημάτων εκτέλεσης μιας διαδικασίας Σενάρια, Διαγράμματα περιπτώσεων χρήσης (Scenaria, Use Case Diagrams) Διαγράμματα Κλάσεων (Class Diagrams) Διαγράμματα Αντικειμένων (Object Diagrams) Διαγράμματα Συστατικών (Component Diagrams) Διαγράμματα Ανάπτυξης (Deployment Diagrams) Διαγράμματα Ακολουθίας (Sequence Diagrams) Διαγράμματα Επικοινωνίας (Collaboration Diagrams Communication Diagrams στη UML 2.0) Διαγράμματα Κατάστασης ή Μηχανής Καταστάσεων (State Machine Diagrams) Διαγράμματα Δραστηριότητας (Activity Diagrams)

Εισαγωγή Τα διαγράμματα καταστάσεων ή μηχανής καταστάσεων (state machine diagrams) χρησιμοποιούνται για μια κλάση, προκειμένου να μοντελοποιήσουν τη δυναμική συμπεριφορά των αντικειμένων μιας κλάσης και τον τρόπο που μεταβάλλεται η κατάστασή τους ως ανάδραση σε συμβάντα Ένα διάγραμμα μηχανής καταστάσεων απεικονίζει το σύστημα σαν μια μηχανή πεπερασμένων καταστάσεων και περιλαμβάνει: Διάφορες καταστάσεις στις οποίες μπορεί να βρεθεί το αντικείμενο κατά τη λειτουργία Τις μεταβάσεις του αντικειμένου από τη μια κατάσταση στην άλλη ανταποκρινόμενο σε εσωτερικά ή εξωτερικά συμβάντα/γεγονότα Δραστηριότητες που ενδεχομένως αντιδρούν σε διάφορα συμβάντα

Μηχανή καταστάσεων Κατάσταση. Μία κατάσταση είναι μία συνθήκη ή μια περίπτωση στην οποία βρίσκεται ένα αντικείμενο κατά τη διάρκεια της ζωής του. Μπορεί να χαρακτηριστεί με τρεις συμπληρωματικούς τρόπους: ως ένα σύνολο τιμών αντικειμένου που είναι παρόμοιες από κάποια άποψη, ως μία περίοδος κατά την οποία ένα αντικείμενο αναμένει την εμφάνιση/πραγματοποίηση ενός γεγονότος, ως μία περίοδος κατά την οποία ένα αντικείμενο ικανοποιεί κάποια συνθήκη ή εκτελεί μία εργασία. Ένα αντικείμενο παραμένει σε μία κατάσταση για κάποιο χρονικό διάστημα Όταν ένα αντικείμενο βρίσκεται σε μία κατάσταση, αποκρίνεται σε γεγονότα που βρίσκονται στις μεταβάσεις που ξεκινούν από την κατάσταση αυτή.

Διάγραμμα καταστάσεων Παρουσιάζει όλες τις πιθανές καταστάσεις που μπορεί να έχει ένα συγκεκριμένο αντικείμενο (σε όλη τη διάρκεια ύπαρξής του) και πώς αυτές αλλάζουν ανάλογα με τα γεγονότα (events) που φθάνουν στο αντικείμενο ΑΡΑ ΔΕΝ περιοριζόμαστε σε μια περίπτωση χρήσης! Ένα διάγραμμα καταστάσεων αφορά μία κλάση Συνήθως ΔΕΝ σχεδιάζουμε διαγράμματα κατάστασης για όλες τις κλάσεις σε ένα σύστημα μόνο για εκείνες που παρουσιάζουν μία έντονα δυναμική συμπεριφορά. Το διάγραμμα κατάστασης μας βοηθάει να αντιληφθούμε αυτήν τη συμπεριφορά.

Διαγράμματα καταστάσεων Παρουσιάζουν τις διάφορες καταστάσεις και τους τρόπους αλλαγών της κατάστασης ενός αντικειμένου Τα βασικά στοιχεία που ορίζονται στα διαγράμματα κατάστασης είναι: Καταστάσεις ενός αντικειμένου σε διάφορες χρονικές στιγμές Ειδικούς συμβολισμούς έχουν η αρχική και τελική κατάσταση ενός αντικειμένου Μεταβάσεις μεταξύ των καταστάσεων ενός αντικειμένου Συνθήκες μετάβασης μεταξύ των καταστάσεων Γεγονότα και ενέργειες που προκαλούν τις μεταβάσεις Ομαδοποίηση καταστάσεων προς σύνθεση μεγαλύτερων

Βήματα για Κατασκευή Διαγράμματος Καταστάσεων 1. Επιλογή του αντικειμένου Ένα διάγραμμα καταστάσεων δεν μπορεί να περιλαμβάνει καταστάσεις πολλών αντικειμένων. Τα συμβάντα ωστόσο μπορούν να προκαλούνται από άλλα αντικείμενα. 2. Εντοπισμός των διακριτών καταστάσεων που μπορεί να μπει αυτό το αντικείμενο. 3. Εντοπισμός συμβάντων που προκαλούν μετάβαση ανάμεσα στις καταστάσεις. 11

Διάγραμμα καταστάσεων Ένα διάγραμμα καταστάσεων μπορούμε να το χρησιμοποιήσουμε από διάφορες προοπτικές: Εννοιολογική: Π.χ. ποιες είναι οι καταστάσεις μιας παραγγελίας στην επιχείρηση; Οι ακυρώσεις επιτρέπονται; Προδιαγραφική Οι καταστάσεις που πρέπει να διαχειριστούν οι διεπαφές των κλάσεων Υλοποιητική Οι πραγματικές καταστάσεις των αντικειμένων υλοποίησης

Διάγραμμα καταστάσεων Βασικές έννοιες Καταστάσεις Μεταβάσεις Γεγονότα Δραστηριότητες

Γεγονότα Συνήθως η μετάβαση από μια κατάσταση σε μια άλλη σηματοδοτείται από την αποστολή ενός μηνύματος (=εκτέλεση μιας μεθόδου) από ένα αντικείμενο σε ένα άλλο αντικείμενο. Μερικές φορές η μετάβαση σε μια άλλη κατάσταση πυροδοτείται όταν ισχύσει μια συνθήκη στην κατάσταση του αντικειμένου. Τότε χρησιμοποιούμε την ετικέτα when με τη συνθήκη που πυροδοτεί τη μετάβαση.

Βασικά σύμβολα Διαγράμματος Καταστάσεων Κατάσταση αντικειμένου όνομα / περιγραφή πώς προσδιορίζεται σε σχέση με τις ιδιότητες του αντικείμενου; Μετάβαση από μια κατάσταση σε μια άλλη Πάνω στο βέλος αναγράφεται το συμβάν/γεγονός που πυροδοτεί τη μετάβαση Αρχική κατάσταση Τελική κατάσταση Ακουστικό στη θέση του έναρξησυνομιλίας

Διάγραμμα Καταστάσεων Όλα τα διαγράμματα κατάστασης αρχίζουν Με μια αρχική κατάσταση εκκίνησης του αντικειμένου που μοντελοποιείται. Αυτή είναι η κατάσταση του αντικειμένου όταν αυτό δημιουργείται. Μετά την αρχική κατάσταση του αντικειμένου το αντικείμενο αλλάζει καταστάσεις. Οι συνθήκες που βασίζονται στις δραστηριότητες μιας κατάστασης του αντικειμένου μπορούν να επηρεάσουν την επόμενη κατάσταση του αντικειμένου.

Γεγονότα που Πυροδοτούν Μετάβαση 17 Εξωτερικό γεγονός Εσωτερικό γεγονός

Μεταβάσεις Transitions Δείχνουν τη μετακίνηση από μία κατάσταση σε μία άλλη Συμβαίνει όταν ένα αντικείμενο εκτελέσει συγκεκριμένες ενέργειες όντας σε μία κατάσταση και πραγματοποιηθεί ένα συγκεκριμένο γεγονός και ικανοποιηθούν συγκεκριμένες συνθήκες για να μεταβεί στην επόμενη κατάσταση Η μετάβαση προσδιορίζεται από την κατάσταση προέλευσης (source state) και την κατάσταση στόχου (target state) Επιπλέον η μετάβαση μπορεί να έχει τα εξής προαιρετικά χαρακτηριστικά/συστατικά: Event[Condition]/Action

Μεταβάσεις Transitions Event (γεγονός) είναι ένα γεγονός που ενεργοποιεί την αλλαγή κατάστασης αντικειμένου, από τη μία κατάσταση στην άλλη. Εάν είναι κενό, τότε η μετάβαση πραγματοποιείται μόλις η εργασία έχει ολοκληρωθεί Condition (συνθήκη) Λογική συνθήκη που ελέγχεται όταν ενεργοποιηθεί το γεγονός που οδηγεί στη μετάβαση και πρέπει να αληθεύει για να πραγματοποιηθεί η μετάβαση Οι συνθήκες των μεταβάσεων που εκκινούν από μια κατάσταση πρέπει να είναι αμοιβαίως αποκλειόμενες (mutually exclusive) ώστε να διασφαλίζεται ότι έχουμε μια μοναδική επόμενη κατάσταση Action(δράση) λειτουργία που εκτελείται κατά τη μετάβαση είτε στο αντικείμενο του διαγράμματος είτε σε κάποιο άλλο που σχετίζεται με το πρώτο Η εργασία αυτή γίνεται «στιγμιαία» και δεν διακόπτεται!

Παράδειγμα μετάβασης με ετικέτα της μορφής Event[Condition]/Action Διάγραμμα καταστάσεων ενός υπαλλήλου Event[Condition]/Action After 1 year [successful so far] Inform the director of personnel

Τύποι γεγονότων Entry Οποιαδήποτε ενέργεια σχετίζεται με γεγονός εισόδου εκτελείται κάθε φορά που εισέρχεται στην κατάσταση από μετάβαση Exit Κατά την έξοδο After 20 minutes Παράδειγμα γεγονότος που παράγεται μετά από χρονική περίοδο When (temperature > 40) Παράδειγμα γεγονότος που παράγεται όταν μία συνθήκη γίνεται αληθής

Παράδειγμα μεταβάσεων με time-outs και συνθήκες

Μέρη κατάστασης Όνομα (Name): Το όνομα της κατάστασης Ενέργειες Εισόδου (Entry effects/actions): Ενέργειες που εκτελούνται κατά την είσοδο στην κατάσταση Ενέργειες Εξόδου (Exit effects/actions): Ενέργειες που εκτελούνται κατά την έξοδο από την κατάσταση Δραστηριότητες (Do activities): Ενέργειες που πραγματοποιούνται όσο ένα αντικείμενο είναι σε μια κατάσταση μεταξύ των ενεργειών εισόδου και εξόδου. Υποκαταστάσεις (Substates): Οι υποκαταστάσεις μιας κατάστασης

Δράσεις vs Δραστηριότητες UML v1: Actions vs Activities UML v2.0: Internal vs External Activities Η διαφορά είναι η εξής: Actions (ή internal activities) σχετίζονται συνήθως με μεταβάσεις (και διαρκούν λίγο) ΔΕΝ διακόπτονται (not interruptible) Activities (ή external activities) σχετίζονται με καταστάσεις (μπορεί να διαρκούν πολύ) Μπορούν να διακοπούν από γεγονότα (events) Κάθε κατάσταση μπορεί να έχει μια activity που σχετίζεται με αυτήν (do/activity)

Εσωτερικές δραστηριότητες Οι καταστάσεις μπορούν να αντιδράσουν σε συμβάντα χωρίς μετάβαση, χρησιμοποιώντας εσωτερικές δραστηριότητες (internal activities) Μια εσωτερική δραστηριότητα είναι όμοια με μια αυτομετάβαση (self-transition), δηλαδή μια μετάβαση που επιστρέφει στην ίδια κατάσταση, με την εξής διαφορά: Η εσωτερική δραστηριότητα δεν ενεργοποιεί δραστηριότητες εισόδου / εξόδου Η σύνταξη των εσωτερικών δραστηριοτήτων ακολουθεί την ίδια λογική για το γεγονός, τη συνθήκη και τη δράση Event[Condition]/Action

Εσωτερικές Δραστηριότητες (ή αυτομεταβάσεις) Έστω ότι έχουμε ένα αντικείμενο τύπου TextField το οποίο έχει μια κατάσταση Typing. Παρακάτω βλέπουμε τα εσωτερικά γεγονότα και τις δραστηριότητες. Typing entry/ highlight all exit/update field character/handle character help[verbose]/open help message help[quiet]/update status bar

Actions vs Activities

Καταστάσεις Δραστηριότητας Στις απλές καταστάσεις, το αντικείμενο παραμένει «ήσυχο», περιμένοντας το επόμενο συμβάν, προκειμένου να κάνει κάτι Στις καταστάσεις δραστηριότητας (activity states), το αντικείμενο εκτελεί κάποια εξελισσόμενη εργασία Η εξελισσόμενη δραστηριότητα επισημαίνεται με τη λέξη /do και γι αυτό ονομάζεται δραστηριότητα ενέργειας (doactivity) Σε αντίθεση με τις κανονικές δραστηριότητες, που συμβαίνουν στιγμιαία, οι δραστηριότητες ενέργειας έχουν χρονική διάρκεια και μπορούν να διακοπούν

Περιγραφή για Ξυπνητήρι Ένα ρολόι που δείχνει την ώρα. Μπορούμε να ενεργοποιήσουμε ή να απενεργοποιήσουμε το ξυπνητήρι. Όταν η ώρα που δείχνει το ρολόι ταυτιστεί με την ώρα του ξυπνητηριού και το ξυπνητήρι έχει ενεργοποιηθεί, χτυπάει ένα κουδούνι συνέχεια. Μπορούμε να σταματήσουμε το κουδούνισμα. 29

Διάγραμμα Καταστάσεων Ξυπνητηριού Ανενεργό ενεργοποίησεξυπνητήρι (ώραξυπν) απενεργοποίησεξυπνητήρι Ενεργό when (ώραρολογιού = ώραξυπν) σταμάτακουδούνισμα Κουδουνίζει 30

Διάγραμμα Καταστάσεων Σύνθετη κατάσταση (Composite State): Μια σύνθετη κατάσταση χρησιμοποιείται όταν θέλουμε να μοντελοποιήσουμε διάφορες καταστάσεις (υποκαταστάσεις) που λαμβάνει ένα αντικείμενο όταν αυτό ήδη βρίσκεται σε κάποια κατάσταση.

Σύνθετη κατάσταση

Διάγραμμα Καταστάσεων για ένα ρολόι

Διάγραμμα Καταστάσεων για ένα ρολόι Το ρολόι βρίσκεται σε δύο δυνατές καταστάσεις: o o κατάσταση εμφάνισης ώρας («Display Time») και κατάσταση ρύθμισης ώρας («Set Time»)

Διάγραμμα Καταστάσεων για ένα ρολόι Κατάσταση ρύθμισης ώρας αναλύεται σε δύο υποκαταστάσεις: ρύθμιση ωρών («Set Hours») ρύθμιση λεπτιών («Set Minutes») Οι υποκαταστάσεις περιέχονται στη σύνθετη κατάσταση «Set Time».

Διάγραμμα Καταστάσεων για ένα ρολόι Κάθε κατάσταση συνδέεται με τις άλλες καταστάσεις με βέλη που ονομάζονται μεταβάσεις Μία μετάβαση λαμβάνει χώρα όταν προκύπτει ένα γεγονός Από την αρχική κατάσταση (μαύρος κύκλος) περνάμε στην κατάσταση εμφάνισης της ώρας αφού προκύψει το συμβάν Switch On

Διάγραμμα Καταστάσεων για ένα ρολόι Μετά το όνομα του συμβάντος μπορούμε να βάλουμε μία κάθετο (/) και να αναγράψουμε τυχόν ενέργειες που γίνονται κατά τη μετάβαση Για παράδειγμα, κατά τη μετάβαση από την αρχική κατάσταση στην κατάσταση «Display Time» οι ώρες και τα λεπτά παίρνουν αρχική τιμή μηδέν. entry: κατά την είσοδο στην κατάσταση exit: κατά την έξοδο από την κατάσταση αποθήκευση ώρας με την savetime do: κατά τη διάρκεια της κατάστασης - δραστηριότητα displaytime

Διάγραμμα Καταστάσεων για ένα ρολόι Για παράδειγμα, κατά τη μετάβαση στις καταστάσεις ρύθμισης ωρών και λεπτών: entry: κατά την είσοδο στην κατάσταση blinkhours και blinkminutes Aυτομεταβάσεις: στις καταστάσεις ρύθμισης ωρών και λεπτών, για τα πατήματα των πλήκτρων "+" και "-" που έχουν ως αποτέλεσμα την αύξηση ή μείωση κατά 1 των ωρών ή των λεπτών αντίστοιχα το ρολόι παραμένει στην ίδια κατάσταση

Διάγραμμα Καταστάσεων για ένα ρολόι Σύνθετες καταστάσεις: όταν έχουμε μεταβάσεις από ένα σύνολο καταστάσεων σε μια άλλη κατάσταση, αφού προκύψει κάποιο συμβάν Κατάσταση ρύθμισης ώρας συνολικά (ωρών, λεπτών): ο χρήστης πατάει το πλήκτρο ακύρωσης cancel, -> μεταφορά στην κατάσταση Display Time και με εκτέλεση της ενέργειας restoretime, η ώρα θα αποκατασταθεί στην τιμή που είχε όταν βγήκαμε από την κατάσταση εμφάνισης της ώρας

Διάγραμμα Καταστάσεων για ένα ρολόι Η σύνθετη κατάσταση βοηθάει να απεικονίσουμε την κοινή μετάβαση ως μετάβαση από τη σύνθετη κατάσταση συνολικά προς την κατάσταση εμφάνισης της ώρας. Η μετάβαση ισχύει για οποιαδήποτε υποκατάσταση της σύνθετης κατάστασης Υπάρχει η δυνατότητα μετάβασης από εξωτερική κατάσταση σε υποκατάσταση, πχ μετάβαση από την κατάσταση DisplayTime στην SetHours με το πλήκτρο Set

Διάγραμμα Καταστάσεων Ιστορική κατάσταση (History State): Μια ιστορική κατάσταση χρησιμοποιείται σε συνδυασμό με μια σύνθετη κατάσταση για να κρατάει την τελευταία κατάσταση που ήταν ενεργή μέσα στη σύνθετη κατάσταση, σε περίπτωση που κάποιο γεγονός διακόψει την εκτέλεση της σύνθετης κατάστασης. Μπορεί δηλαδή μια ροή να απαιτεί για ένα αντικείμενο να μεταβεί σε μια κατάσταση αναμονής και με την ενεργοποίηση ενός συγκεκριμένου γεγονότος να μεταβεί στην κατάσταση που βρίσκονταν πριν από την κατάσταση αναμονής την τελευταία ενεργή κατάστασή του.

Παράδειγμα ομαδοποίησης καταστάσεων Θα δημιουργήσουμε ένα διάγραμμα καταστάσεων το οποίο να μοντελοποιεί τον κύκλο ζωής ενός σεμιναρίου από τη στιγμή που θα προταθεί η διενέργειά του μέχρι τη στιγμή που θα ολοκληρωθεί

Παράδειγμα ομαδοποίησης καταστάσεων

Παράδειγμα ομαδοποίησης καταστάσεων

Διάγραμμα Καταστάσεων Ορθογώνια κατάσταση (Orthogonal State): Μια ορθογώνια κατάσταση χρησιμοποιείται όταν θέλουμε να μοντελοποιήσουμε την ταυτόχρονη λήψη διαφόρων καταστάσεων (υποκαταστάσεις) που λαμβάνει ένα αντικείμενο όταν αυτό ήδη βρίσκεται σε κάποια κατάσταση συντρέχουσες υποκαταστάσεις

Concurrent State Diagrams (Διαγράμματα με Ταυτόχρονες Καταστάσεις) Επιτρέπουν «παράλληλη» εκτέλεση Πολλές καταστάσεις μπορεί να είναι ενεργές ταυτόχρονα Όταν ένα αντικείμενο βγει από τις παράλληλες καταστάσεις μεταβαίνει σε μία κατάσταση Xωρίζουμε μία κατάσταση σε δύο ή και περισσότερα μέρη με μια διακεκομμένη γραμμή και δείχνουμε τα ταυτόχρονα διαγράμματα κατάστασης στα διαφορετικά μέρη Η μετάβαση από μία εξωτερική κατάσταση στη σύνθετη ταυτόχρονη κατάσταση συνεπάγεται ότι το αντικείμενο θα βρεθεί ταυτόχρονα στις αρχικές ψευδοκαταστάσεις των ταυτόχρονων καταστάσεων

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

Παράδειγμα Θυμηθείτε το διάγραμμα κλάσεων με τις Παραγγελίες και το διάγραμμα ακολουθίας που περιγράφει τον υπολογισμό της αξίας μιας παραγγελίας Ποιες είναι οι (σημαντικές) καταστάσεις ενός αντικειμένου τύπου Order?

Καταστάσεις αντικειμένου τύπου Order Αφορά ΜΟΝΟ το αντικείμενο τύπου Order

Διάγραμμα καταστάσεων αντικειμένου τύπου Order action condition Αφορά ΜΟΝΟ το αντικείμενο τύπου Order

Παράδειγμα (συνέχεια) Έστω ότι θέλουμε να μπορούμε να ακυρώσουμε οποιαδήποτε στιγμή Λύση 1: προσθήκη μιας μετάβασης cancel από κάθε κατάσταση

Παράδειγμα (συνέχεια): Superstates Έστω ότι θέλουμε να μπορούμε να ακυρώσουμε οποιαδήποτε στιγμή Λύση 2 : Ορισμός μιας superstate και προσθήκη μετάβασης cancel μόνο σε αυτήν (οι «υποκαταστάσεις» (substates) την κληρονομούν)

Παράδειγμα μεταβάσεων με συνθήκες

Διάγραμμα καταστάσεων παράδειγμα με substates

Συνέχεια του παραδείγματος Order Εδώ βλέπουμε τις καταστάσεις ενός αντικειμένου τύπου Order σχετικά με την πληρωμή Ερώτημα: Πώς να συνδυάσουμε αυτές τις καταστάσεις με τις προηγούμενες (checking, waiting, dispatching, delivered) ;

Concurrent State Diagrams Άρα τα concurrent state diagrams μας επιτρέπουν να έχουμε ανεξάρτητα σύνολα καταστάσεων.

Ταυτόχρονες καταστάσεις

Μεταβάσεις από και προς ταυτόχρονες καταστάσεις Μία συντρέχουσα κατάσταση μπορεί να έχει πολλές πηγαίες καταστάσεις και πολλές καταστάσεις στόχους. Αναπαριστά ένα συγχρονισμό ή/και το διαχωρισμό του ελέγχου σε συντρέχοντα νήματα χωρίς συντρέχουσες υποκαταστάσεις. Μία συντρέχουσα μετάβαση ενεργοποιείται όταν έχουν καταληφθεί όλες οι πηγαίες καταστάσεις της. Αφού πυροδοτηθεί η σύνθετη μετάβαση καταλαμβάνονται όλες οι καταστάσεις στόχοι της. Μία συντρέχουσα μετάβαση περιέχει μία μικρή βαριά μπάρα (μία μπάρα συγχρονισμού, η οποία μπορεί να αναπαριστά συγχρονισμό, διάσπαση forking ή και τα δύο). Η μπάρα μπορεί να δέχεται ένα ή περισσότερα βέλη από καταστάσεις (ονομάζονται πηγαίες καταστάσεις). Η μπάρα μπορεί να στέλνει ένα ή περισσότερα βέλη προς καταστάσεις (ονομάζονται καταστάσεις στόχοι).

Μεταβάσεις από και προς ταυτόχρονες καταστάσεις

Παράδειγμα - Τοστιέρα Υποθέστε ότι θέλετε να σχεδιάσετε μια τοστιέρα. Ποια είναι τα βήματα για την ετοιμασία ενός τοστ; Αρχικά ανάβουμε το μηχάνημα, τοποθετούμε το ψωμί και αναμένουμε για μερικά λεπτά. Το αρχικό διάγραμμα καταστάσεων φαίνεται παρακάτω: Διαδικασία: Ενεργοποίηση τοστιέρας Τοποθέτηση ψωμιού Αναμονή Ψημένο ψωμί

Παράδειγμα - Τοστιέρα Το προηγούμενο διάγραμμα είναι ελλιπές. Για αποφυγή καψίματος προσθέτουμε μια κατάσταση Idle και μεταβάσεις lowerlimit kai upperlimit Θερμοστάτης Για τη διατήρηση ορίων θερμοκρασίας

Παράδειγμα - Τοστιέρα Η μετάβαση μεταξύ Working και Idle δεν παρουσιάστηκε λεπτομερώς. Μπορούμε με σύνθετη κατάσταση και substates να περιγράψουμε πιο συγκεκριμένα και να μοντελοποιήσουμε τις καταστάσεις (υποκαταστάσεις) στις οποίες βρίσκεται η τοστιέρα όταν ήδη βρίσκεται στην κατάσταση Working ή στην κατάσταση Idle.

Διαγράμματα Καταστάσεων Πότε τα χρησιμοποιούμε; Για να περιγράψουμε τη συμπεριφορά ενός αντικειμένου επί ενός συνόλου Περιπτώσεων Χρήσης Τα διαγράμματα αυτά δεν είναι «βολικά» αν υπάρχουν πολλά συνεργαζόμενα αντικείμενα (τότε χρησιμοποιούμε interaction diagrams ή activity diagrams) Δεν έχει νόημα να σχεδιάζουμε ένα διάγραμμα καταστάσεων για κάθε κλάση του συστήματος. Το κάνουμε μόνο για εκείνες τις κλάσεις που εμφανίζουν ενδιαφέρουσα συμπεριφορά Όταν η κατασκευή ενός διαγράμματος καταστάσεων θα βοηθήσει στην κατανόηση του τί συμβαίνει

Κανόνες σχεδίασης διαγραμμάτων καταστάσεων Εξετάστε όλες τις πιθανές καταστάσεις στις οποίες μπορεί να βρεθούν τα αντικείμενα μιας κλάσης Οι διάφορες καταστάσεις που μπορεί να βρεθούν τα αντικείμενα τοποθετούνται ως κορυφές ενός γράφου Εξετάστε πώς γίνεται η μετάβαση μεταξύ των καταστάσεων ως αποτέλεσμα των γεγονότων που διαχειρίζεται το αντικείμενο Οι μεταβάσεις μεταξύ των καταστάσεων αποτελούν τις ακμές του βρόγχου Πάνω στις ακμές γίνεται η τοποθέτηση των συνθηκών μετάβασης από τη μια κατάσταση στην άλλη

Πηγές Ε. Κιουντούζης, Μεθοδολογίες Ανάλυσης και Σχεδιασμού Πληροφοριακών Συστημάτων,Εκδόσεις Α.Σταμούλη, Αθήνα 2002 Γιάννης Τζίτζικας. Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων, Πανεπιστήμιο Κρήτης Shari Lawrence Pfleeger. Τεχνολογία Λογισμικού: Θεωρία και Πράξη, τόμος 1, Κλειδάριθμος, Αθήνα, 2003 Leszek A. Maciaszek, Requirements Analysis and System Design (2nd edition), Addison Wesley, 2005 A.Dennis, B. Haley Wixom, D. Tegarden, Systems Analysis and Design with UML Version 2.0 (2nd edition) Wiley, 2005 Booch G., Rumbaugh J., Jacobson I. Unified Modeling Language User Guide. Addison- Wesley Professional 2 Edition, ISBN 0321267974. Pascal Roques, UML in Practice, John Wiley, 2004 UML Fundamentals & OOAD UML 2.0, www.acm.org Αφροδίτη Τσαλγατίδου. Εισαγωγή στη UML, Καποδιστριακό Πανεπιστήμιο Αθηνών Αντικειμενοστρεφής Ανάπτυξη Λογισμικού με τη UML, επιμέλεια Π. Φιτσιλής, Κλειδάριθμος 2006 Ιωάννης Γαβιώτης. Πληροφοριακά Συστήματα Μοντελοποίηση με UML, Πανεπιστήμιο Αιγαίου