ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 6 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάννα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ: Στουγιάννου Ελευθερία Email Επικοινωνίας: estoug@unipi.gr
Περιεχόμενο Ενότητας: Διαγράμματα Ακολουθίας Εισαγωγή Έννοιες Διαγραμμάτων Ακολουθίας Τρόπος Δημιουργίας Διαγράμματος Ακολουθίας Παραδείγματα και Ασκήσεις Δημιουργίας Διαγραμμάτων Ακολουθίας με UMLet
Εισαγωγή: Διαγράμματα Αλληλεπίδρασης (1/2) Σε ένα σύστημα τα αντικείμενα αλληλοεπιδρούν ανταλλάσσοντας μηνύματα. Η δυναμική συμπεριφορά του συστήματος στη UML απεικονίζεται με τα διαγράμματα αλληλεπίδρασης. Συνήθως, τα διαγράμματα αλληλεπίδρασης περιγράφουν το σενάριο μιας περίπτωσης χρήσης ή μέρους αυτής. Μία απεικόνιση αλληλεπίδρασης εμπεριέχει: Αντικείμενα Μηνύματα Αλληλεπίδραση: ανταλλαγή ενός σετ μηνυμάτων μεταξύ ενός σετ αντικειμένων για την επίτευξη ενός σκοπού.
Εισαγωγή: Διαγράμματα Αλληλεπίδρασης (2/2) Δύο είδη διαγραμμάτων: Διαγράμματα Ακολουθίας (Sequence Diagrams) Διαγράμματα Επικοινωνίας (Communication Diagrams) Και τα δύο δείχνουν το ίδιο πράγμα, αντικείμενα (objects) και μηνύματα (messages) που ανταλλάσσονται ανάμεσά τους, αλλά με διαφορετικό τρόπο. Τα διαγράμματα ακολουθίας δίνουν έμφαση στην ακριβή χρονική ακολουθία των μηνυμάτων που ανταλλάσσονται. Τα διαγράμματα επικοινωνίας δίνουν έμφαση στις σχέσεις ανάμεσα στα αντικείμενα.
Εισαγωγή: Διαγράμματα Ακολουθίας (1/2) Το διάγραμμα ακολουθίας είναι ένα διάγραμμα αλληλεπίδρασης (συμπεριφοράς) που παρουσιάζει τον τρόπο που διαφορετικά αντικείμενα συνεργάζονται μεταξύ τους σε μια χρονική ακολουθία. Περιλαμβάνει: Χειριστές Μηνύματα Αντικείμενα Τη διάρκεια ζωής κάθε αντικειμένου Σχέσεις μεταξύ αντικειμένων Την περιοχή ελέγχου για κάθε αντικείμενο Τα αντικείμενα οργανώνονται στον οριζόντιο άξονα και τα γεγονότα στον κάθετο άξονα του χρόνου.
Εισαγωγή: Διαγράμματα Ακολουθίας (2/2) Η σειρά των μηνυμάτων φαίνεται από την τοποθέτηση τους στον κατακόρυφο άξονα. Η ανταλλαγή μηνυμάτων σε ένα διάγραμμα ακολουθίας θα πρέπει να ενημερώνει και τις λειτουργίες του αντίστοιχου διαγράμματος κλάσεων.
Διαγράμματα Ακολουθίας Μηνύματα (1/3) Η αποστολή του μηνύματος dosomething στο αντικείμενο :Β αντιστοιχεί στην «κλήση» της λειτουργίας dosomething της κλάσης Β.
Διαγράμματα Ακολουθίας Μηνύματα (2/3) 5 Είδη Ενεργειών/Μεταδόσεις Μηνυμάτων: Ενέργεια Κλήσης: Η επικοινωνία είναι σύγχρονη (synchronous) που σημαίνει ότι, το αντικείμενο δέκτης είναι έτοιμο να δεχτεί το μήνυμα και ότι το αντικείμενο αποστολέας περιμένει την απάντηση του αντικειμένου λήπτη για να συνεχίσει. Ενέργεια Επιστροφής: Η επιστροφή τιμής στο αντικείμενο αποστολέα σαν απάντηση σε ενέργεια κλήσης.
Διαγράμματα Ακολουθίας Μηνύματα (3/3) Ενέργεια Δημιουργίας: Καλεί μία κλάση να δημιουργήσει ένα αντικείμενό της. Ενέργεια Αποστολής: Η επικοινωνία είναι ασύγχρονη (asynchronous). Π.χ. exceptions Ενέργεια Διαγραφής: Καλεί ένα αντικείμενο να διαγραφεί. Παράδειγμα:
Διαγράμματα Ακολουθίας Επαναλήψεις (1/2) Για την επανάληψη χρησιμοποιείται πλαίσιο (frame) με την ένδειξη loop. Η επανάληψη συνοδεύεται με την αντίστοιχη συνθήκη.
Διαγράμματα Ακολουθίας Επαναλήψεις (2/2) Για την αποστολή μηνυμάτων υπό συνθήκη (if) χρησιμοποιείται το πλαίσιο με την ένδειξη opt (συνοδεύεται και από την αντίστοιχη συνθήκη). Για την αποστολή μηνυμάτων με αμοιβαίο αποκλεισμό (if else) χρησιμοποιείται το πλαίσιο με την ένδειξη alt (η διακεκομμένη γραμμή υποδεικνύει τον αμοιβαίο αποκλεισμό).
Κανόνες Δημιουργίας Διαγραμμάτων Ακολουθίας Χρησιμοποιούμε ένα διάγραμμα ακολουθίας για κάθε περίπτωση χρήσης. Στα διαγράμματα ακολουθίας δίνουμε λεπτομέρειες για τον τρόπο που υλοποιείται μια συμπεριφορά. Τα διαγράμματα ακολουθίας δεν είναι απλή αντιγραφή των βημάτων που περιγράψαμε στις περιπτώσεις χρήσης, αλλά είναι το εργαλείο για να αναθέσουµε/ξεκαθαρίσουµε τη λειτουργία, το ρόλο και τη συμπεριφορά των αντικειμένων. Για να παρουσιάσετε τη σχέση μεταξύ του διαγράμματος ακολουθίας και της περίπτωσης χρήσης, γράψτε στο περιθώριο του διαγράμματος ακολουθίας το αντίστοιχο κείμενο από την περίπτωση χρήσης. KISS (keep it small and simple)
Χρήση UMLet: Σχεδίαση Διαγραμμάτων Ακολουθίας 1. Δημιουργείτε νέο UMLet diagram στο eclipse (κάτω από ένα νέο project) 2. Έπειτα από τη δεξιά λίστα επιλέγουμε UML Sequence (δείτε διπλανή εικόνα) 3. Με διπλό κλικ σε κάθε στοιχείο από το δεξί πάνελ, εισάγετε στο κεντρικό παράθυρο σχεδίασης τα στοιχεία που θέλετε για να συνθέσετε το διάγραμμά σας Τοποθετούμε τα αντικείμενα της αλληλοεπίδρασης στο επάνω μέρος του διαγράμματος και κατά μήκος του Χ άξονα Τοποθετούμε τα μηνύματα της αλληλεπίδρασης πηγαίνοντας σειριακά από πάνω προς τα κάτω, κατά μήκος του Υ άξονα 4. Μπορείτε να αλλάξετε τους τίτλους/περιγραφές των επιλεγμένων κάθε φορά στοιχείων από το δεξιά κάτω πλαίσιο «Properties». 5. Μπορείτε να χρησιμοποιήσετε και το σύμβολο του actor από την επιλογή της λίστας UML UseCase.
Απλό Παράδειγμα Διαγράμματος Ακολουθίας -Make a phone call-
Σχεδίαση Διαγράμματος Ακολουθίας -Απλό Παράδειγμα με UMLet-
Παράδειγμα Διαγράμματος Ακολουθίας -Εκτυπωτής-
Άσκηση (1/3) -Σύστημα Online Αιτήσεων Πρόσληψης- Σχεδιάστε το διάγραμμα ακολουθίας για την διαδικασίας συμπλήρωσης μιας online αίτησης πρόσληψης σε μια υπηρεσία, η οποία περιγράφεται ως εξής: Ο χρήστης επισκέπτεται την αρχική σελίδα και πατάει το κουμπί «Συμπλήρωση Αίτησης» Το σύστημα αιτείται από τον server την εμφάνιση του παράθυρου με τη φόρμα αίτησης Το σύστημα εμφανίζει την οθόνη με τη φόρμα αίτησης Ο χρήστης πληκτρολογεί τα στοιχεία του και συμπληρώνει την αίτηση Ο χρήστης μόλις τελειώσει, πατάει το κουμπί «Αποστολή Φόρμας» Το σύστημα αποστέλλει τη φόρμα στον server Ο server αποθηκεύει τη φόρμα στη βάση δεδομένων Ο χρήστης πατάει το κουμπί «Εκτύπωση Φόρμας» Το σύστημα προετοιμάζει τη φόρμα για εκτύπωση Το σύστημα εκτυπώνει τη φόρμα
Βήματα Σχεδίασης: Άσκηση (2/3) -Σύστημα Online Αιτήσεων Πρόσληψης- 1. Τοποθετούμε στον οριζόντιο άξονα τους χρήστες και τα αντικείμενα σύμφωνα με την περιγραφή της περίπτωσης χρήσης. 2. Τοποθετούμε ένα-ένα τα μηνύματα που μας περιγράφει η λεκτική περιγραφή της περίπτωσης χρήσης ξεκινώντας από τον χρήστη (ρόλο). 3. Συμπληρώνουμε την αρίθμηση των μηνυμάτων που υποδηλώνει και τη σειρά τους.
Άσκηση (3/3) -Σύστημα Online Αιτήσεων Πρόσληψης-
Άσκηση (1/3) -ATM- ΠΕΡΙΓΡΑΦΗ ΣΕΝΑΡΙΟΥ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ: Ένας χρήστης ATM επισκέπτεται ένα μηχάνημα ATM και αφού εισάγει την κάρτα του και το συνθηματικό του (password), αιτείται και του εμφανίζεται στην οθόνη το υπόλοιπο του λογαριασμού του. ΠΕΡΙΓΡΑΦΗ ΒΗΜΑΤΩΝ ΑΠΑΙΤΗΣΕΩΝ: Ο χρήστης εισάγει την κάρτα στον Αναγνώστη Καρτών Ο Αναγνώστης Καρτών διαβάζει τα δεδομένα της κάρτας και στη συνέχεια ζητάει επικύρωση από την Τράπεζα Η Τράπεζα στέλνει επικύρωση της κάρτας στον Αναγνώστη Καρτών
Άσκηση (2/3) -ATM- Συνέχεια. ΠΕΡΙΓΡΑΦΗ ΒΗΜΑΤΩΝ ΑΠΑΙΤΗΣΕΩΝ: Ο Αναγνώστης Καρτών εμφανίζει στην Οθόνη μήνυμα προτροπής για εισαγωγή password Ο Χρήστης πληκτρολογεί το password και πατάει το πλήκτρο OK Το Σύστημα στέλνει αίτημα επικύρωσης του password στην Τράπεζα Η Τράπεζα επικυρώνει το password και αμέσως εμφανίζεται στην Οθόνη το κεντρικό μενού Ο Χρήστης επιλέγει τη λειτουργία «Εμφάνιση υπολοίπου» Η Τράπεζα επιστρέφει το υπόλοιπο του λογαριασμού και τέλος Το σύστημα εμφανίζει στην Οθόνη το υπόλοιπο του λογαριασμού
Άσκηση (3/3) -ATM-
Άσκηση (1/3) -Σύστημα online Δήλωσης Μαθημάτων- ΠΕΡΙΓΡΑΦΗ ΣΕΝΑΡΙΟΥ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ: Ένας φοιτητής μετά από επιτυχημένο Login στην ιστοσελίδα δήλωσης μαθημάτων του ιδρύματος στο οποίο φοιτά, επιλέγει ένα μάθημα και στη συνέχεια αφού γίνει επιτυχής έλεγχος προ απαιτούμενων και υπέρβασης πλήθους δήλωσης μαθημάτων, πιστοποιείται η εγγραφή. ΠΕΡΙΓΡΑΦΗ ΒΗΜΑΤΩΝ ΑΠΑΙΤΗΣΕΩΝ: Ο Φοιτητής εισάγει τα στοιχεία του [username, password] στην Οθόνη Login και γίνεται η πιστοποίηση Το σύστημα εμφανίζει την Oθόνη Δήλωσης Μαθημάτων στην οποία εμφανίζονται και τα στοιχεία του φοιτητή (έχουν ανακτηθεί κατά τη διαδικασία Login) Το σύστημα εμφανίζει στο παράθυρο δήλωσης μαθημάτων όλα τα ονόματα χρωστούμενων μαθημάτων, τα οποία ανασύρουν μέσω της Λίστας Χρωστούμενων Μαθημάτων (η λίστα αυτή είναι ένας πίνακας αναφορών προς κάθε μάθημα)
Άσκηση (2/3) -Σύστημα online Δήλωσης Μαθημάτων- Συνέχεια. ΠΕΡΙΓΡΑΦΗ ΒΗΜΑΤΩΝ ΑΠΑΙΤΗΣΕΩΝ: Ο Φοιτητής επιλέγει ένα μάθημα Το σύστημα ανακτά το μάθημα, μέσω της Λίστας Χρωστούμενων Μαθημάτων Το σύστημα ανακτά τα προαπαιτούμενα του μαθήματος (πληροφορία του κάθε μαθήματος) Το σύστημα κάνει επιτυχή έλεγχο προαπαιτούμενων για το επιλεγμένο μάθημα (συγκρίνοντας τα προαπαιτούμενα του επιλεγμένου μαθήματος με τα μαθήματα που έχει περάσει ο φοιτητής) Το σύστημα κάνει επιτυχή έλεγχο μη υπέρβασης του επιτρεπτού ορίου δήλωσης μαθημάτων Το σύστημα καταχωρεί το μάθημα στη Λίστα Εγγεγραμμένων Μαθημάτων που διατηρεί το αντικείμενο Φοιτητής Το σύστημα καταχωρεί το φοιτητή στη Λίστα Εγγεγραμμένων Φοιτητών που διατηρεί το αντικείμενο Μάθημα (για να ξέρει πόσοι και ποιοι το παρακολουθούν) Το σύστημα εμφανίζει στην Οθόνη ένα σχετικό μήνυμα επιτυχούς εγγραφής
Άσκηση (3/3) -Σύστημα online Δήλωσης Μαθημάτων-
Στο 4 ο Εργαστήριο: «Διαγράμματα Κλάσεων», αναφέραμε τα Διαγράμματα Ευρωστίας και τη χρήση των (α) συνοριακών κλάσεων (boundary), των (β) κλάσεων οντοτήτων (entity) και των (γ) κλάσεων ελέγχου (controller). Πώς μπορούμε να συνδέσουμε αυτές τις κλάσεις με τα Διαγράμματα Ακολουθίας?
Entity-Control-Boundary Pattern (ECB) σε Διαγράμματα Ακολουθίας Σχεδιάζουμε το Διάγραμμα Ακολουθίας, όπως μάθαμε, και στη συνέχεια ορίζουμε ποιες κλάσεις είναι συνοριακές, ποιες οντοτήτων και ποιες ελέγχου, και τις απεικονίζουμε καταλληλά, όπως φαίνεται στο παρακάτω παράδειγμα:
Είμαστε έτοιμοι τώρα, να σχεδιάσουμε τα Διαγράμματα Ακολουθίας με τον ECB τρόπο Χρησιμοποιώντας και το UMLet!!! Απορίες??