ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 5 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάννα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ: Στουγιάννου Ελευθερία Email Επικοινωνίας: estoug@unipi.gr
Περιεχόμενο Ενότητας: Διαγράμματα Δραστηριοτήτων Εισαγωγή Έννοιες Διαγραμμάτων Δραστηριοτήτων Τρόπος Δημιουργίας Διαγράμματος Δραστηριότητας Παραδείγματα και Ασκήσεις Δημιουργίας Διαγραμμάτων Δραστηριοτήτων με UMLet
Εισαγωγή: Διαγράμματα Δραστηριοτήτων (1/2) Tο διάγραμμα δραστηριοτήτων είναι ένα διάγραμμα συμπεριφοράς που εμφανίζει μεταπτώσεις. Τα διαγράμματα δραστηριοτήτων στην UML απεικονίζουν την ακολουθιακή ή και παράλληλη εκτέλεση των δραστηριοτήτων σε μία διεργασία. Μία δραστηριότητα (activity) αναπαριστά μία σύνθετη συμπεριφορά, η οποία αναλύεται σε άλλες δραστηριότητες ή σε απλούστερη συμπεριφορά που είναι οι ενέργειες (actions).
Εισαγωγή: Διαγράμματα Δραστηριοτήτων (2/2) Τα διαγράµµατα δραστηριοτήτων χρησιμοποιούνται για την περιγραφή: µιας περίπτωσης χρήσης ροών εργασιών (workflows) διεργασιών (processes) επιχειρηµατικών διαδικασιών
Διαγράμματα Δραστηριοτήτων: Δομικά Στοιχεία Ένα διάγραµµα δραστηριοτήτων βασικά περιέχει: ραστηριότητες (activities) Ενέργειες (actions) Μεταβάσεις (transitions) Ροές αντικειµένων Κόµβοι ελέγχου (control node) Αρχικός κόµβος (initial) {μόνο ένας} Τελικός κόµβος (final activity) {ένας ή πολλοί} Τελική ροή (final flow) Απόφαση (decision) Συγχώνευση (merge) ιακλάδωση (fork) Σύνδεση (join)
Διαγράμματα Δραστηριοτήτων: Βασικά Σύμβολα
Επεξηγηματικό Παράδειγμα Διαγράμματος Δραστηριοτήτων: Σύστημα Παραγγελιοληψίας
Δράσεις vs Δραστηριότητες ράσεις (actions) εν µπορούν να αναλυθούν άλλο Η εκτέλεσή τους δεν µπορεί να διακοπεί Θέτουµε τιµή σε ένα πεδίο Καλούµε τη µέθοδο µιας άλλης κλάσης Καλούµε µια δραστηριότητα Στέλνουµε ένα µήνυµα ραστηριότητες (activities) Μπορούν να αναλυθούν περισσότερο σε ένα άλλο διάγραµµα δραστηριοτήτων Η εκτέλεσή τους µπορεί να διακοπεί
Ανάλυση Δραστηριότητας σε Υπο-Δραστηριότητες -Παράδειγμα-(1/2)
Ανάλυση Δραστηριότητας σε Υπο-Δραστηριότητες -Παράδειγμα-(2/2) Πως μπορούμε αντίστοιχα να αναλύσουμε τη δραστηριότητα «Αποστολή Τιμολογίου»;
Κόμβος Τελικής Ροής vs Τελικός Κόμβος Τερματίζει μόνο τη ροή που φτάνει σε αυτόν Αν στον κόμβο τελικής ροής καταλήγουν δύο ροές από δύο δραστηριότητες, τότε ο κόμβος αυτός θα τερματίσει τη ροή που θα φτάσει αρχικά πρώτη, επιτρέποντας όμως στην άλλη να συνεχίζεται μέχρις ότου τερματίσει και αυτή όταν φτάσει εκεί. Αν στον τελικό κόμβο καταλήγουν δύο ροές, ο τελικός κόμβος τερματίζει, όχι μόνο τη ροή που φτάνει πρώτη, αλλά και την άλλη που πιθανότατα να μην έχει ολοκληρωθεί
Άσκηση (1/2) Δίνονται οι εξής προδιαγραφές για τη δημιουργία ενός διαγράμματος δραστηριοτήτων: γίνεται η παραλαβή ενός ηλεκτρονικού μηνύματος, το οποίο αποθηκεύεται στο φάκελο των εισερχομένων και παράλληλα ενημερώνεται ο αποστολέας του για την επιτυχή παράδοσή του. Φτιάξτε το διάγραμμα δραστηριοτήτων.
Άσκηση (2/2) 1 η ΛΥΣΗ: 2 η ΛΥΣΗ:
Ας μάθουμε τώρα να δουλεύουμε τα διαγράμματα δραστηριοτήτων στο UMLet
UMLet: Activity Diagrams 1. Δημιουργείτε νέο UMLet diagram στο eclipse (κάτω από ένα νέο project) 2. Έπειτα από τη δεξιά λίστα επιλέγουμε UML Activity (δείτε διπλανή εικόνα) 3. Με διπλό κλικ σε κάθε στοιχείο από το δεξί πάνελ, εισάγετε στο κεντρικό παράθυρο σχεδίασης τα στοιχεία που θέλετε για να συνθέσετε το διάγραμμά σας 4. Μπορείτε να αλλάξετε τους τίτλους/περιγραφές των επιλεγμένων κάθε φορά στοιχείων από το δεξιά κάτω πλαίσιο «Properties». 5. Εξάγετε το κάθε διάγραμμα από το βασικό menu: UMLet Export as {BMP, EPS, GIF, JPG, PDF, PNG, SVG}
Βήματα Δημιουργίας ενός Διαγράμματος Δραστηριοτήτων 1. Δημιουργούμε το διάγραμμα περιπτώσεων χρήσης (use case diagram) του Συστήματος (προαιρετικό, συνήθως μας βοηθάει να βγάλουμε τις ενέργειες μέσα από αυτό) 2. Αναζητούμε και καταγράφουμε τις ενέργειες (activities) που λαμβάνουν χώρα. 3. Βρίσκουμε τις συσχετίσεις (associations) μεταξύ των ενεργειών αυτών και τους περιορισμούς (constraints) και τις συνθήκες (conditions).
Παράδειγμα Εξαγωγής Διαγράμματος Δραστηριοτήτων -Σύστημα Ανάληψης Χρημάτων (ATM)- (1/2) 5 βασικές ενέργειες (activities): Εισαγωγή Κάρτας Εισαγωγή PIN Εισαγωγή Ποσού Παραλαβή Κάρτας Παραλαβή Χρημάτων Εύρεση συσχετισμών και συνθηκών Ελέγχεται αν το PIN είναι σωστό Ελέγχει αν το ποσό που ζητείται υπάρχει στο μηχάνημα (??) Εύρεση Τερματισμού
Παράδειγμα Εξαγωγής Διαγράμματος Δραστηριοτήτων -Σύστημα Ανάληψης Χρημάτων (ATM)- (2/2)
Παράδειγμα Εξαγωγής Διαγράμματος Δραστηριοτήτων -Σύστημα Διαχείρισης Παραγγελειοληψίας- (1/2) 4 βασικές ενέργειες (activities): Αποστολή Παραγγελίας από τον πελάτη (Send order by the customer) Παραλαβή Παραγγελίας (Receipt of the order) Επιβεβαίωση Παραγγελίας (Confirm order) Αποστολή Παραγγελίας (Dispatch order) Εύρεση συσχετισμών και συνθηκών Ελέγχεται αν η παραγγελία είναι κανονική ή είναι κάποια ειδική παραγγελία Εύρεση Τερματισμού
Παράδειγμα Εξαγωγής Διαγράμματος Δραστηριοτήτων -Σύστημα Διαχείρισης Παραγγελειοληψίας- (2/2)
Παράδειγμα Διαγραμμάτων Δραστηριοτήτων - Άνοιγμα Τραπεζικού Λογαριασμού (1/3) Η διαδικασία ανοίγματος ενός τραπεζικού λογαριασμού απαιτεί την εισαγωγή των στοιχείων ενός πελάτη (στοιχεία ταυτότητας, ΑΦΜ, διεύθυνση) από την Εξυπηρέτηση Πελατών. Αν υπάρχει ήδη πελάτης με το ίδιο ΑΦΜ στο σύστημα, τότε δεν απαιτείται η καταχώρισή του, παρά μόνο η επικαιροποίηση των στοιχείων του (π.χ. διεύθυνση επάγγελμα). Μετά την επιλογή του ιδιοκτήτη του λογαριασμού, ακολουθεί η καταχώριση των συνδικαιούχων (στοιχεία ταυτότητας και ΑΦΜ). Στη συνέχεια το σύστημα παράγει αριθμό λογαριασμού και αρχικοποιεί το υπόλοιπο και την ημερομηνία ανοίγματος του λογαριασμού. Τέλος, γίνεται εκτύπωση των στοιχείων του λογαριασμού σε ένα νέο βιβλιάριο.
Παράδειγμα Διαγραμμάτων Δραστηριοτήτων - Άνοιγμα Τραπεζικού Λογαριασμού (2/3) ΔΙΑΓΡΑΜΜΑ ΠΕΡΙΠΤΩΣΕΩΝ ΧΡΗΣΗΣ
Παράδειγμα Διαγραμμάτων Δραστηριοτήτων - Άνοιγμα Τραπεζικού Λογαριασμού (3/3)
Διαγράμματα Δραστηριοτήτων: Αποθήκες Δεδομένων & Κόμβοι Αντικειμένων Κόμβοι Αντικειμένων αφορούν σε δεδομένα που ρέουν μεταξύ των δραστηριοτήτων. Αποθήκες Δεδομένων: ειδική περίπτωση των κόμβων αντικειμένων που έχουν τη λέξη κλειδί «datastore». Συμβολίζουν τη λήψη / αποθήκευση δεδομένων σε αρχεία, βάσεις δεδομένων κλπ.
Σήματα Τα σήματα μοντελοποιούν ασύγχρονη επικοινωνία Χρησιμοποιούνται για να δηλώσουν ότι ένα βήμα χρειάζεται συγκεκριμένα δεδομένα Παράδειγμα:
Διακλαδώσεις (Συγχρονισμός) Η διακλάδωση (fork) εκκινεί παράλληλες διαδικασίες. Μια διακλάδωση μπορεί να έχει μια μόνο είσοδο, αλλά πολλές εξόδους Η συνένωση (join) συγχρονίζει τις διαδικασίες.
Παράδειγμα με χρήση Σημάτων και Συγχρονισμού -Σύστημα Παραγγελειοληψίας- * Γεγονός που σταματάει τη ροή για κάποιο χρονικό διάστημα, π.χ. στο παράδειγμα μας, ανά 30 ημέρες γίνεται η επαναποστολή τιμολογίου.
Swimlanes - Διάγραμμα Δραστηριοτήτων Όταν απεικονίζουμε δραστηριότητες σε μία επιχείρηση είναι χρήσιμο να δείχνουμε ποιο τμήμα της επιχείρησης είναι υπεύθυνο για την εκτέλεση κάθε δραστηριότητας χρησιμοποιώντας διαδρομές. Κατανέμονται οι ενέργειες μίας δραστηριότητας σε διαφορετικές οργανωτικές μονάδες του οργανισμού.
Παράδειγμα Διαγράμματος Δραστηριότητας με swimlanes (1/2) ΠΕΡΙΓΡΑΦΗ: Ο οφειλέτης εισάγει την μαγνητική του κάρτα στον Αναγνώστη καρτών, ο οποίος την διαβάζει. Σε περίπτωση μη έγκυρης κάρτας την εξάγει, ενώ διαφορετικά ο οφειλέτης εισάγει το pin του. Το Σύστημα Διαχείρισης δίνει εντολή για εξαγωγή της κάρτας σε περίπτωση λανθασμένου pin, ενώ διαφορετικά εμφανίζει το ποσό της δόσης πληρωμής. Σε κάθε περίπτωση, μπορεί να γίνει ακύρωση της διαδικασίας πληρωμής, με ταυτόχρονη εξαγωγή της κάρτας και των χρημάτων που μπορεί να έχει εισάγει ο οφειλέτης. Στη συνέχεια, ο συλλέκτης χρημάτων υποδέχεται τα χρήματα, με τη σειρά (ένα-ένα), μέχρις ότου να εισαχθεί επαρκές ποσό. Ο υπολογισμός του υπόλοιπου ποσού και ο έλεγχος γίνεται από το Σύστημα Διαχείρισης. Όταν τα χρήματα που έχουν εισαχθεί είναι επαρκή, εκτυπώνεται απόδειξη εξόφλησης της δόσης και παράλληλα, εάν το ποσό έχει υπερκαλυφθεί, εξάγονται τα ρέστα. Τέλος, εμφανίζεται μήνυμα ολοκλήρωσης της διαδικασίας και εξάγεται η κάρτα.
Παράδειγμα Διαγράμματος Δραστηριότητας με swimlanes (2/2) ΔΙΑΓΡΑΜΜΑ: Για να φτιάξετε τα swimlanes χρησιμοποιήστε ένα από τα παρακάτω στο UMLet:
Διάγραμμα Δραστηριότητας -Παράδειγμα Δανειστική Βιβλιοθήκη-(1/2) ΠΕΡΙΓΡΑΦΗ: Ένας άνθρωπος επισκέπτεται τη βιβλιοθήκη του Πανεπιστήμιου για να δανειστεί ορισμένα βιβλία. Αρχικά, ελέγχεται αν ο άνθρωπος αυτός είναι μέλος της δανειστικής βιβλιοθήκης και έχει κάρτα μέλους για να μπορέσει να δανειστεί. Αν έχει κάρτα μέλους, έπειτα ελέγχεται από το σύστημα αν έχει υπερβεί το όριο των βιβλίων που μπορεί να δανειστεί. Αν έχει υπερβεί το όριο, δεν μπορεί να δανειστεί βιβλία και φεύγει. Αν όμως δεν έχει υπερβεί το όριο, τότε καταγράφεται ένα-ένα ο δανεισμός του εκάστοτε βιβλίου μέχρι να φτάσει το όριο δανεισμού. Αν ο άνθρωπος αυτός όμως, δεν έχει κάρτα μέλους, ελέγχεται αρχικά, αν ανήκει σε κάποια από τις ιδιότητες που θα μπορούσε να δανειστεί από τη βιβλιοθήκη χωρίς κάρτα. Αν δεν ανήκει σε κάποια από τις επιτρεπτές ιδιότητες, τότε δεν μπορεί να δανειστεί. Από την άλλη, αν η ιδιότητα του, του επιτρέπει να δανειστεί χωρίς κάρτα, τότε καταγράφονται τα στοιχεία του ως δανειζόμενος και κατόπιν καταγράφεται στο σύστημα και ο δανεισμός των βιβλίων που επιθυμεί μέχρι το επιτρεπτό όριο βιβλίων.
Διάγραμμα Δραστηριότητας -Παράδειγμα Δανειστική Βιβλιοθήκη-(2/2)
Άσκηση 1: Διάγραμμα Δραστηριότητας (1/2) Μπορείτε, αντίστοιχα να φτιάξετε το Διάγραμμα Δραστηριότητας για την επιστροφή βιβλίων στο προηγούμενο παράδειγμα της δανειστικής βιβλιοθήκης; Περιγραφή: Η Βιβλιοθήκη ελέγχει ένα-ένα αν το αντίτυπο του κάθε βιβλίου που έχει δανειστεί και επιστρέφει ο δανειζόμενος έχει κάποιο πρόστιμο λόγω καθυστέρησης επιστροφής του. Υπολογίζεται το συνολικό πρόστιμο. Αν το πρόστιμο είναι μεγαλύτερο του 0, τότε ο δανειζόμενος πληρώνει το πρόστιμο στο Ταμείο και μετά καταχωρείτε η επιστροφή των αντιτύπων των βιβλίων στη βιβλιοθήκη. Διαφορετικά, γίνεται αμέσως η καταχώρηση της επιστροφή των αντιτύπων των βιβλίων.
Άσκηση 1: Διάγραμμα Δραστηριότητας (2/2)
Άσκηση 2: Διάγραμμα Δραστηριότητας (1/2) Εγκατάσταση Νέας Εφαρμογής Εκφράστε με διάγραμμα δραστηριότητας τον κλασσικό διάλογο των συστημάτων αυτόματης εγκατάστασης λογισμικού.
Άσκηση 2: Διάγραμμα Δραστηριότητας (2/2)
Άσκηση 3: Διάγραμμα Δραστηριότητας (1/2) Επιλογή Δείπνου Εκφράστε με διάγραμμα δραστηριότητας το πρόβλημα απόφασης για το σημερινό δείπνο (επιλέγουμε να κλείσουμε να φάμε έξω ή να μαγειρέψουμε να φάμε μέσα). Αν αποφασίσουμε να φάμε μέσα να περιγραφεί στο διάγραμμα η διαδικασία προετοιμασίας του γεύματος.
Άσκηση 3: Διάγραμμα Δραστηριότητας (2/2)
Άσκηση 4: Διάγραμμα Δραστηριότητας (1/3) Κράτηση Αεροπορικού Εισιτηρίου Πρωταρχικό Σενάριο Χρήσης: 1. Ο πελάτης συνδέεται στο σύστημα. 2. Ο πελάτης επιλέγει τον τόπο αναχώρησης. 3. Ο πελάτης επιλέγει την ημερομηνία αναχώρησης. 4. Ο πελάτης επιλέγει τον αριθμό των επιβατών. 5. Το σύστημα εμφανίζει τις διαθέσιμες πτήσεις και τα στοιχεία τους. 6. Ο πελάτης επιλέγει την πτήση που τον ενδιαφέρει. 7. Το σύστημα παρουσιάζει την πλήρη πληροφορία τιμολόγησης. 8. Ο πελάτης εισάγει τα στοιχεία του και επιλέγει τον τρόπο πληρωμής. 9. Το σύστημα επιβεβαιώνει την κράτηση θέσης. 10. Ο πελάτης αποσυνδέεται από το σύστημα.
Άσκηση 4: Διάγραμμα Δραστηριότητας (2/3) Κράτηση Αεροπορικού Εισιτηρίου - Εναλλακτικές περιπτώσεις: Εναλλακτικό σενάριο: Επιλογή πτήσης allez-retour Στο βήμα 2, ο πελάτης επιλέγει τύπο πτήσης allez-retour. Να επιτραπεί στον πελάτη να εισάγει και τόπο άφιξης καθώς και ημερομηνία άφιξης. Εναλλακτικό σενάριο: Μη ύπαρξη απαιτούμενων κενών θέσεων σε μια πτήση Στο βήμα 6, να επιτραπεί στον πελάτη να επιλέξει διαφορετική πτήση για κάθε επιβάτη. Εναλλακτικό σενάριο: Επιλογή τρόπου πληρωμής 7α: Ο πελάτης επιλέγει σαν τρόπο πληρωμής τα μετρητά. Το σύστημα ενημερώνει τον πελάτη πως πρέπει να γίνει η αγορά του εισιτηρίου από ένα πρακτορείο μέχρι μια συγκεκριμένη ημερομηνία αλλιώς χάνεται η κράτηση. 7β: Ο πελάτης επιλέγει σαν τρόπο πληρωμής την πιστωτική κάρτα. Το σύστημα ζητά από τον πελάτη να εισάγει τα στοιχεία της πιστωτικής κάρτας. Εναλλακτικό σενάριο: Αποτυχία επιβεβαίωσης κράτησης θέσης Στο βήμα 8 το σύστημα αποτυγχάνει να εγκρίνει την πίστωση για την αγορά. Να επιτραπεί στον πελάτη να ξαναδώσει τα στοιχεία της πιστωτικής του κάρτας.
Άσκηση 4: Διάγραμμα Δραστηριότητας (3/3)
Άσκηση 5: Διάγραμμα Δραστηριότητας (1/3) Αποστολή SMS Πρωταρχικό Σενάριο Χρήσης: 1. Ο χρήστης ανοίγει του μενού της συσκευής και επιλέγει τη συγγραφή νέου μηνύματος. 2. Ο χρήστης πληκτρολογεί το περιεχόμενο του μηνύματος 3. Ο χρήστης επιλέγει τους παραλήπτες είτε πληκτρολογώντας των αριθμό τους είτε επιλέγοντας κάθε παραλήπτη από τη λίστα. 4. Αν πρόκειται για απάντηση σε μήνυμα ο πρωτεύον παραλήπτης έχει ήδη προεπιλεγεί. 5. Το σύστημα υπολογίζει τη χρέωση με βάση το είδος της συνδρομής του χρήστη και με βάση την τιμολογιακή πολιτική. 6. Γίνεται η χρέωση στο χρήστη. 7. Αν η χρέωση είναι αποδεκτή (δηλαδή δεν έχει ξεπεραστεί κάποιο όριο που έχει οριστεί από τη συνδρομή όπως υπάρχουν αρκετές μονάδες στο χρήστη) η αποστολή ολοκληρώνεται. 8. Επιβεβαίωση λήψης μηνύματος.
Άσκηση 5: Διάγραμμα Δραστηριότητας (2/3) Αποστολή SMS - Εναλλακτικές περιπτώσεις: Εναλλακτικό σενάριο: Επιλογή απάντησης / προώθησης μηνύματος Στο βήμα 1: Ο χρήστης επιλέγει το μήνυμα στο οποίο θέλει να απαντήσει. Ο χρήστης επιλέγει αν στην απάντηση θέλει να συμπεριλάβει το παλιό μήνυμα ή όχι Ο χρήστης πληκτρολογεί το επιπλέον περιεχόμενο του μηνύματος Εναλλακτικό σενάριο: Αποτυχία αποστολής μηνύματος Στο βήμα 7 ο χρήστης ενημερώνεται πως η διαδικασία δεν μπορεί να ολοκληρωθεί.
Άσκηση 5: Διάγραμμα Δραστηριότητας (3/3)