Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 23/10/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Use Case Models & Diagrams Μοντέλα και Διαγράμματα Περιπτώσεων Χρήσης 1
Γενικεύει, Περιλαμβάνει & Επεκτείνει b a s e u s e c a s e e x te n s io n u s e c a s e P la c e O rd e r < < e x te n d > > < < in c lu d e > > Reques t Catalog < < in c lu d e > > < < in c lu d e > > p a re n t u s e c a s e S u p p ly C u s to m e r D a ta O rd e r P ro d u c t A rra n g e p a y m e n t in c lu s io n u s e ca s e s P ay Cas h A rrange Credit c h ild u s e c a s e s Τεκμηρίωση περιπτώσεων χρήσης Αποτελεί περιγραφή σε μορφή κειμένου της λειτουργικότητας της περίπτωσης χρήσης στη γλώσσα και ορολογία του χρήστη Δεν υπάρχει συγκεκριμένο UML format Περιγράφει το ΤΙ και όχι το ΠΩΣ Τυπικά περιλαμβάνει: Στόχους της περίπτωσης χρήσης Πώς αρχικοποιείται η περίπτωση χρήσης Τη ροή των γεγονότων (flow of events) Εναλλακτικές ροές στην περίπτωση χρήσης Πώς η περίπτωση χρήσης ολοκληρώνεται με κάποια αξία για το δράστη και περισσότερα... 2
Ροή Γεγονότων Η περίπτωση χρήσης είναι αφηρημένη έννοια συμπεριφοράς (set of sequences). Η συμπεριφορά της περίπτωσης χρήσης μπορεί να περιγραφεί από μία ροή γεγονότων ( flow of events ) που δείχνει με λεπτομέρειες τι ακριβώς κάνει η περίπτωση χρήσης Η Ροή Γεγονότων προσδιορίζει: Την κύρια ροή γεγονότων (what happens and in what order when all is well). Εναλλακτική/ές ροή/ές γεγονότων (what happens and in what order when something goes wrong) Περιπτώσεις Χρήσης & Σενάρια Μία περίπτωση χρήσης στην πραγματικότητα περιγράφει ένα σύνολο ακολουθιών (γεγονότων, ενεργειών) Κάθε ακολουθία αναπαριστά μία πιθανή ροή ενεργειών κατά τη χρήση του συστήματος Κάθε ακολουθία ονομάζεται σενάριο Ένα σενάριο είναι ουσιαστικά ένα στιγμιότυπο μιας περίπτωσης χρήσης Το σενάριο είναι για την περίπτωση χρήσης ότι το Αντικείμενο για μία Κλάση 3
Τεκμηρίωση περιπτώσεων χρήσης Όνομα Περιγραφή Επιθυμητό αποτέλεσμα Στόχοι χρήστη Συμμετέχοντες / Ρόλοι Εξαρτήσεις Pre-conditions (Κατάσταση εισόδου) Σενάρια Ροή γεγονότων Post-conditions (Κατάσταση εξόδου) Επιχειρηματικοί κανόνες Απαιτήσεις Σημειώσεις υλοποίησης Όνομα Όλες οι περιπτώσεις χρήσης πρέπει να ονομάζονται Χρησιμοποιήστε ουσιαστικό που δηλώνει ενέργεια (για παράδειγμα: "ανάληψη χρηματικών ποσών»ή «έλεγχος βιβλιαρίου"). Η σύμβαση αυτή ενθαρρύνει το όνομα περίπτωσης χρήσης να καθορίζει συνοπτικά τη λειτουργία που ασκοείται και το αντικείμενο (ή το υποσύστημα) που επηρεάζεται από τη λειτουργία. Τα ονόματα πρέπει πάντα να είναι με επίκεντρο τον χρήστη, και όχι system-centric. Για παράδειγμα, "κάνοντας μια κατάθεση (usercentric) έναντι "αποδοχή καταθέσεων (σύστημα-centric). Η ονομασία είναι από την πλευρά του χρήστη, και όχι από το σύστημα. Ένα όνομα, ανεξάρτητα από τη μορφή, είναι κρίσιμης σημασίας - πρέπει να μπορεί κάποιος να προσδιορίσει την περίπτωση χρήσης χωρίς αμφισημίες και να μπορεί να μιλήσει για αυτή αποτελεσματικά 4
Περιγραφή Περιγράψτε τι κάνει αυτή η περίπτωση χρήσης. Τι θα κάνει ο χρήστης, ενώ κάνει ανάληψη χρημάτων, ή ελέγχει το βιβλιάριο, για παράδειγμα. Μπαίνουμε σε λεπτομέρειες, αλλά δεν περιγράφουμε πώς ο χρήστης μπορεί να χρησιμοποιήσει ένα πρόγραμμα ηλεκτρονικού υπολογιστή πχ. Για παράδειγμα, ένας πελάτης τράπεζας μπορεί να κάνει μια ανάληψη συμπληρώνοντας ένα έντυπο ανάληψης και δίνοντάς το στον ταμία. Ο ταμίας πηγαίνει στη συνέχεια το έντυπο ανάληψης σε έναν ανώτερο τραπεζικό υπάλληλο για έγκριση. Ο τραπεζικός υπάλληλος ελέγχει το υπόλοιπο του λογαριασμού και εκδίδει έγκρισης κλπ. Να σημειωθεί ότι σε κανένα σημείο αυτής της συζήτησης δεν αναφερθήκαμε στο πρόγραμμα που θα χρησιμοποιήσει, παράθυρα διαλόγου, κλπ. Αυτά τα είδη των λεπτομερειών υλοποίησης είναι άνευ σημασίας σε αυτό το επίπεδο Επιθυμητό αποτέλεσμα Εξ ορισμού, μια περίπτωση χρήσης πρέπει να έχει ένα χρήσιμο αποτέλεσμα Πρέπει να εκτελείται κάποια εργασία που έχει αξία Περιγράψτε τα αποτελέσματα εδώ Το αποτέλεσμα μπορεί να είναι: μια έκθεση/report (στην περίπτωση αυτή θα πρέπει κάποιος να συμπεριλάβει και ένα παράδειγμα/υπόδειγμα της έκθεσης, ένα γεγονός ή κατάσταση (ο εργαζόμενος θα λαμβάνει πλέον οφέλη για την υγεία) αλλά πρέπει να υπάρχει ένα χρήσιμο αποτέλεσμα. 5
Στόχοι χρήστη Ποιοι είναι οι πραγματικοί στόχοι του χρήστη σε σχέση με την περίπτωση χρήσης; Οι στόχοι δεν είναι το ίδιο πράγμα με την περιγραφή περίπτωσης χρήσης. Αν στο «Επιθυμητό αποτέλεσμα» περιγράφεται τι επιθυμεί ο χρήστης να ολοκληρώσει, εδώ περιγράφει γιατί ο χρήστης το κάνει Η γνώση των στόχων του χρήστη μπορεί να επηρεάσει την κατεύθυνση μιας περίπτωσης χρήσης με ριζοσπαστικούς τρόπους Στόχοι χρήστη Έστω ότι είμαστε επιφορτισμένοι με τη δημιουργία ενός προγράμματος για χρονοπρογραμματισμό συναντήσεων. Μια δελεαστική περίπτωση χρήσης είναι «προγραμματισμός συνάντησης». Εικόνες από ημερολοόγια και ατζέντες έρχονται αμέσως στο μυαλό μας Ας εξετάσουμε όμως τους στόχους Ποιος είναι ο στόχος όλων σε σχέση με μια συνάντηση; Ίσως να μην πάμε καθόλου, ή να τελειώσουμε το ταχύτερο δυνατό, και να καταστεί η συνάντηση όσο πιο παραγωγική γίνεται! Ο μόνος τρόπος για να επιτευχθεί ο στόχος αυτός είναι να έχουμε μια ατζέντα Ως εκ τούτου, το πρώτο βήμα για την περίπτωση χρήσης "προγραμματισμός συνάντησης" είναι η υποπερίπτωση «δημιουργία ατζέντας». Η πραγματική λήψη αποφάσεων για την ημερομηνία και ώρα αποδεικνύεται ότι είναι δευτερεύουσας σημασίας 6
Συμμετέχοντες / Ρόλοι Οι συμμετέχοντες σε μια περίπτωση χρήσης δεν είναι τα άτομα, αλλά οι ρόλοι που ένα φυσικό πρόσωπο μπορεί να έχει σε σχέση με ένα σύστημα Για παράδειγμα, ας θεωρήσουμε ένα σύστημα έγκρισης αδειών. Δύο ρόλοι έρχονται αμέσως στο μυαλό: οι εργαζόμενοι (που συμπληρώνουν τις αιτήσεις) και οι διευθυντές (που δίνουν την έγκριση) Το γεγονός ότι το ίδιο φυσικό πρόσωπο μπορεί να τελέσει υπό δύο ρόλους σε κάποιο στάδιο, είναι άνευ σημασίας. Υπάρχουν δύο λογικές συμμετέχοντες: ο εργαζόμενος και ο διευθυντής Εξαρτήσεις Τυπικές σχέσεις εξάρτησης περιλαμβάνουν ένα ή περισσότερα από τα ακόλουθα: Subset/Combines όταν ένα περίπλοκο έργο μπορεί να ολοκληρωθεί με την πραγματοποίηση πολλών μικρότερων, αλλά αυτόνομων Uses/Is-used-by (includes) - Η κύρια διάκριση μεταξύ «subset»και «uses» είναι ότι μια σχέση «uses» εφαρμόζεται όταν μια περίπτωση χρήσης είναι μια subcase που είναι επίσης αυτόνομη περίπτωση χρήσης Precedes/Follows - Δημιουργεί μια ροή εργασίας μεταξύ των περιπτώσεων χρήσης Requires - Precedes/follows - δείχνουν ακολουθία, αλλά όχι εξάρτηση. Δηλαδή, η «εγγραφή ενός πελάτη" απαιτείται από την «τοποθέτηση προϊόντων στο καλάθι», αλλά προηγείται απλά από το «ξεφύλλισμα του καταλόγου" 7
Εξαρτήσεις Τυπικές σχέσεις εξάρτησης περιλαμβάνουν ένα ή περισσότερα από τα ακόλουθα: Εάν η περίπτωση χρήσης Β επεκτείνει την περίπτωση χρήσης Α (δηλαδή, προσθέτει δευτερεύουσες εργασίες, εργασίες, κ.λπ.), τότε η Β αποτελεί εξειδίκευση της Α. (Συνήθως είναι οι επιπλέον εργασίες που απαιτούνται προκειμένου να ικανοποιηθούν ορισμένες ειδικές απαιτήσεις οι οποίες δεν πραγματοποιούνται στη συνήθη περίπτωση χρήσης). Π.χ. «ο προσδιορισμός ενός διαχειριστή" μπορεί να είναι μια εξειδίκευση της «προσδιορισμός υπαλλήλου", επειδή ο διαχειριστής θα πρέπει να επικυρώνεται σε ένα υψηλότερο επίπεδο ασφάλειας συγκριτικά με ένα απλό υπάλληλο. Εξαρτήσεις Τυπικές σχέσεις εξάρτησης περιλαμβάνουν ένα ή περισσότερα από τα ακόλουθα: Resembles - δύο περιπτώσεις χρήσης φαίνεται να είναι όμοιες μεταξύ τους, αν και υπάρχουν μικρές διαφορές ως προς τη ροή εργασίας. Οι σχέσεις Resembles δείχνουν ότι θέλoυμε να εξετάσουμε πιο κοντά παρόμοιες περιπτώσεις χρήσης, προσπαθώντας να βρούμε κοινά χαρακτηριστικά που μπορούν να οδηγήσουν σε περιπτώσεις «υποσύνολα» ή ισοδύναμα. Equivalent - δύο περιπτώσεις χρήσης μπορεί να εμφανίζονται διαφορετικές από τη σκοπιά του χρήστη, αλλά μπορεί να καταλήξουν να υλοποιηθούν με τον ίδιο τρόπο. Είναι άσχετο προς το χρήστη αν ο υποκείμενος κωδικός είναι ο ίδιος - αναλήψεις και καταθέσεις είναι διαφορετικές λογικές πράξεις. 8
Pre-conditions (Κατάσταση εισόδου) Ποιες υποθέσεις κάνουμε σχετικά με την κατάσταση του κόσμου όταν η περίπτωση χρήσης τρέχει; Για παράδειγμα, οι πελάτες πρέπει να έχουν λογαριασμό στην τράπεζα για να μπορέσουν να κάνουν ανάληψη χρημάτων. Κατά συνέπεια, η περίπτωση χρήσης «άνοιγμα λογαριασμού πελάτη» πρέπει να έχει πραγματοποιηθεί πριν πραγματοποιηθεί η περίπτωση χρήσης «ανάληψη χρημάτων» Ποιες προϋποθέσεις πρέπει να υπάρχουν έτσι ώστε η περίπτωση χρήσης να ολοκληρωθεί με επιτυχία; Οι συνθήκες μπορεί να είναι εσωτερικές ή εξωτερικές. Για παράδειγμα: Το υπόλοιπο του λογαριασμού πρέπει να είναι μεγαλύτερο από το ποσό ανάληψης. Pre-conditions (Κατάσταση εισόδου) Ποιες υποθέσεις κάνουμε σχετικά με την κατάσταση του κόσμου όταν η περίπτωση χρήσης τρέχει; Για παράδειγμα, οι πελάτες πρέπει να έχουν λογαριασμό στην τράπεζα για να μπορέσουν να κάνουν ανάληψη χρημάτων. Κατά συνέπεια, η περίπτωση χρήσης «άνοιγμα λογαριασμού πελάτη» πρέπει να έχει πραγματοποιηθεί πριν πραγματοποιηθεί η περίπτωση χρήσης «ανάληψη χρημάτων» Ποιες προϋποθέσεις πρέπει να υπάρχουν έτσι ώστε η περίπτωση χρήσης να ολοκληρωθεί με επιτυχία; Οι συνθήκες μπορεί να είναι εσωτερικές ή εξωτερικές. Για παράδειγμα: Το υπόλοιπο του λογαριασμού πρέπει να είναι μεγαλύτερο από το ποσό ανάληψης. 9
Σενάρια Τα σενάρια είναι μικρές αφηγηματικές περιγραφές αυτού που περιγράφει την περίπτωση χρήσης. Γενικά πρέπει να προσπαθούμε να κρατάμε τα σενάρια όσο πιο αφηρημένα (abstract) γίνεται (μιλάμε για το πώς μια τράπεζα, και ΟΧΙ το πρόγραμμα υπολογιστή που προσομοιώνει μια τράπεζα, χρησιμοποιείται). «Ο Άγγελος πρέπει να κάνει μια ανάληψη για να αγοράσει διάφορα προϊόντα. Ψάχνει και ανακαλύπτει το τραπεζικό του βιβλιάριο κάτω από διάφορα πράγματα στο πρώτο συρτάρι της ντουλάπας του, και διαπιστώνει ότι το υπόλοιπό του είναι αρκετά μεγάλο για να καλύψει αυτό που χρειάζεται, και πηγαίνει προς την τράπεζα...» Πολύ σημαντικό! Συχνά, όταν επεξεργαζόμαστε ένα σενάριο, ανακαλύπτουμε περιπτώσεις χρήσης που δεν είχαμε σκεφτεί, ή ανακαλύπτουμε θέματα ροής εργασίας που δεν ήταν προφανή. Κι αν δεν μπορεί να βρει το βιβλιάριο; Σενάρια Θεωρείστε μία περίπτωση χρήσης που μπορεί να έχει διάφορα σχετικά σενάρια, Π.χ. Σύστημα εγγραφής στο Πανεπιστήμιο Υπάρχει μόνο μία περίπτωση χρήσης υψηλού επιπέδου: «Εγγραφή σε μαθήματα». Ωστόσο, μέσα σε αυτή την περίπτωση χρήσης, διάφορα σενάρια έρχονται στο νου: Μπαίνω στο σύστημα, εγγράφομαι σε όλα τα μαθήματα και είμαι ευτυχής. Αυτό το είδος του σεναρίου - στο οποίο όλα λειτουργούν χωρίς κανένα πρόβλημα καλείται το σενάριο του «ευτυχούς μονοπατιού». Μπαίνω στο σύστημα, εγγράφομαι στα μαθήματα, αλλά για ένα από αυτά οι εγγραφές είναι πλήρεις, οπότε τοποθετούμαι σε λίστα αναμονής. Αργότερα, μία θέση γίνεται διαθέσιμη στο συγκεκριμένο μάθημα και ειδοποιούμαι ότι η εγγραφή μου και σε αυτό το μάθημα ολοκληρώθηκε. Ίδιο με το παραπάνω, αλλά πρέπει οπωσδήποτε να εγγραφώ σε αυτό το μάθημα προκειμένου να αποφοιτήσω. 10
Ροή γεγονότων Συχνά η περιγραφή της περίπτωσης χρήσης είναι επαρκής για να περιγράψει τη ροή της εργασίας μέσα από ένα απλό σενάριο χρήσης ("κάνε το Α, στη συνέχεια, κάνε το Β, στη συνέχεια, κάνε το Γ"). Μερικές φορές, η ροή εργασίας είναι τόσο περίπλοκη που δεν θα ήταν σκόπιμο να επιχειρήσουμε να περιγράψουμε όλα αυτά στην ενότητα Περιγραφή Αυτό το είδος των πληροφοριών μπαίνει εδώ. Post- conditions (Κατάσταση εξόδου) Συχνά μια περίπτωση χρήσης αλλάζει την κατάσταση ενός συστήματος (δηλαδή, το υπόλοιπο του λογαριασμού είναι τώρα χαμηλότερο) δεν παράγει κάποιο φυσικό προϊόν. Επίσης, ορισμένες περιπτώσεις χρήσης πρέπει να ακολουθηθούν και από άλλες προκειμένου να ολοκληρωθεί μια εργασία. Αυτό το είδος των πληροφοριών πηγαίνει στα Postconditions. Δηλαδή, ένα post-condition είναι κάτι που μπορείς να ελέγξεις μετά την ολοκλήρωση της περίπτωσης χρήσης προκειμένου να καθορίσεις την επιτυχία ή την αποτυχία της περίπτωσης χρήσης. Ένα post-condition παράδειγμα: το νέο υπόλοιπο είναι το παλαιό υπόλοιπο μειωμένο κατά το ποσό της ανάληψης. 11
Επιχειρηματικοί κανόνες Οι επιχειρηματικοί κανόνες είναι οι πολιτικές που η επιχείρηση έχε καθιερώσει και οι οποίες μπορούν να επηρεάσουν το αποτέλεσμα της περίπτωσης χρήσης. Για παράδειγμα, "Μπορεί να μην μπορεί κάποιος να κάνει ανάληψη περισσότερα από 1000 ευρώ μέσα σε διάστημα επτά ημερών.«δεν είναι μια καλή ιδέα να φορτώνουμε την περιγραφή της περίπτωσης χρήσης με αυτούς τους κανόνες, αλλά πρέπει να καθορίζονται με κάποιο τρόπο σε κάποιο σημείο έτσι ώστε το έγγραφο να είναι αρκετά ακριβές για να μπορεί να χρησιμοποιηθεί. Απαιτήσεις Οι απαιτήσεις είναι συνήθως περιορισμοί συμπεριφοράς που επιβάλλονται από τους πελάτες στην υλοποίηση του συστήματος («Το σύστημα θα πρέπει να υποστηρίζει 10.000 συναλλαγές ανά λεπτό.») 12
Σημειώσεις υλοποίησης Αν και στόχος μας είναι να διατηρούμε το έγγραφο των περιπτώσεων χρήσης όσο πιο κοντά στον τομέα του προβλήματος, πολλές φορές σκεφτόμαστε λεπτομέρειες υλοποίησης ενώ εργαζόμαστε με τα σενάρια και τη ροή εργασίας. Προκειμένου να σημειώνουμε τέτοιου είδους πληρφορίες μόλις τις σκεφτόμαστε, χρησιμοποιούμε αυτή την ενότητα Οι σημειώσεις αυτές δεν αποτελούν προδιαγραφή υλοποίησης. Είναι συνήθως λεπτομέρειες που θα επηρεάσουν την υλοποίηση και είναι σχετικές με τη συγκεκριμένη περίπτωση χρήσης. Θα καθοδηγήσουν, αλλά δεν ελέγχουν το σχεδιασμό της υλοποίησης. Τεκμηρίωση περιπτώσεων χρήσης Παράδειγμα Πελάτης Παραγγελία Υπολογιστή (έτοιμης σύνθεσης) 13
Τεκμηρίωση περιπτώσεων χρήσης Σύντομη περιγραφή: Η περίπτωση χρήσης επιτρέπει σε έναν Πελάτη να δώσει μία παραγγελία αγοράς υπολογιστή. Η περίπτωση χρήσης περιλαμβάνει και την εισαγωγή διεύθυνσης αποστολής και λεπτομέρειες πληρωμής Pre-conditions (κατάσταση εισόδου): Ο Πελάτης επιλέγει μέσω ενός Internet browser τη σελίδα όπου ο κατασκευαστής επιτρέπει την αίτηση παραγγελίας. Η σελίδα παρουσιάζει τα χαρακτηριστικά του υπολογιστή και την τιμή του Τεκμηρίωση περιπτώσεων χρήσης Κύρια ροή γεγονότων: Η περίπτωση χρήσης ξεκινά όταν ο Πελάτης αποφασίσει να παραγγείλει την έτοιμη σύνθεση επιλέγοντας τη λειτουργία Συνέχεια (ή με παρόμοιο όνομα) όταν οι λεπτομέρειες της παραγγελίας φαίνονται στην οθόνη. Το σύστημα ζητά από τον πελάτη να εισάγει το ονοματεπώνυμο του, τη διεύθυνση του, τον τρόπο πληρωμής (μετρητά ή κάρτα) και οποιαδήποτε σχόλια. Ο Πελάτης επιλέγει τη λειτουργία Αγορά για την αποστολή της παραγγελίας στον κατασκευαστή. Το σύστημα αναθέτει έναν μοναδικό αριθμό στην παραγγελία και αποθηκεύει τον αριθμό στη βάση δεδομένων. Ο αριθμός αποστέλλεται και με email στον πελάτη μαζί με την επιβεβαίωση της παραγγελίας 14
Τεκμηρίωση περιπτώσεων χρήσης Εναλλακτική ροή γεγονότων: Ο πελάτης επιλέγει τη λειτουργία Αγορά πριν την εισαγωγή των απαραίτητων στοιχείων. Το σύστημα εκτυπώνει ένα μήνυμα σφάλματος και ζητά την πληροφορία που λείπει. Ο πελάτης επιλέγει τη λειτουργία Επανεκκίνηση για να επιστρέψει σε άδεια φόρμα εισαγωγής στοιχείων. Το σύστημα επιτρέπει στον πελάτη να ξαναεισάγει στοιχεία. Post-conditions (κατάσταση εξόδου): Αν η περίπτωση χρήσης είναι επιτυχής, η παραγγελία καταχωρείται στη βάση δεδομένων. Αλλιώς, η κατάσταση του συστήματος παραμένει αναλλοίωτη. Παράδειγμα περιγραφής περίπτωσης χρήσης: Validate User σε ένα ΑΤΜ Κύρια Ροή Γεγονότων: Η περίπτωση χρήσης αρχίζει όταν o πελάτης εισάγει την κάρτα του. Το σύστημα ζητά από τον πελάτη PIN. Ο πελάτης εισάγει το PIN από το πληκτρολόγιο καί στο τέλος πατά το κουμπί ENTER. To σύστημα ελέγχει την εγκυρότητα του PIN. Eάν το PIN είναι έγκυρο, το σύστημα γνωστοποιεί την εισαγωγή των στοιχείων καί η περίπτωση χρήσης τελειώνει. 15
Παράδειγμα περιγραφής περίπτωσης χρήσης: Validate User σε ένα ΑΤΜ Εναλλακτική Ροή Γεγονότων: Ο Πελάτης μπορεί ανά πάσα στιγμή να ακυρώσει τη συναλλαγή με το πάτημα του κουμπιού CANCEL, κι έτσι η περίπτωση χρήσης ξαναρχίζει Εναλλακτική Ροή Γεγονότων: Ο Πελάτης μπορεί ανά πάσα στιγμή να διαγράψει το PIN πριν το τελικό πάτημα του κουμπιού ENTER καί να ξαναβάλει ένα νέο PIN. Εναλλακτική Ροή Γεγονότων: Εάν ο πελάτης δώσει λανθασμένο PIN, η περίπτωση χρήσης ξαναρχίζει. Αν αυτό συμβεί τρείς φορές συνεχόμενες, το σύστημα ακυρώνει όλη τη συναλλαγή καί εμποδίζει τον πελάτη να κάνει άλλη συναλλαγή στα επόμενα 60 δευτερόλεπτα. Use Case Description - Example Use Case: Make Reservation Actors: Passenger, Reservation Clerk Purpose: Reserve a seat Overview: Allows the user to make a reservation for a journey. Normal Flow: 1. User logs in 2. User specifies the train and journey details. 3. User specifies passenger details 4. User specifies payment details 5. User confirms transaction 16
Περιγραφή των περιπτώσεων χρήσης Να θυμάστε ότι: H περιγραφή σχετίζεται με τον εξωτερικό δράστη (actor), όχι με το πώς γίνονται τα πράγματα μέσα στο σύστημα Το κείμενο να είναι σαφές, πλήρες, συνεπές, για να μπορεί να κατανοηθεί και να ελεγχθεί από τον πελάτη. Σύνθετες και περίπλοκες προτάσεις να αποφεύγονται Συνοπτική τεκμηρίωση περίπτωσης χρήσης Όνομα Σύντομη περιγραφή Στόχοι χρήστη Δράστες (actors) Pre-conditions (κατάσταση εισόδου) Σενάρια Βασική ροή γεγονότων Εναλλακτικές ροές γεγονότων Post-conditions (κατάσταση εξόδου) 17
Βήματα στη μοντελοποίηση περιπτώσεων χρήσης Ορισμός των ορίων του συστήματος Προσδιορισμός των δραστών που χρησιμοποιούν το σύστημα Για κάθε δράστη, προσδιορισμός των λειτουργιών που το σύστημα παρέχει για κάθε δράστη Αναπαράσταση κάθε λειτουργίας ως περίπτωση χρήσης (σωστή επιλογή ονόματος έτσι ώστε να δείχνει ενέργεια) Σύνδεση του δράστη με όλες τις περιπτώσεις χρήσης που αρχικοποιούνται από το δράστη Αν η περίπτωση χρήσης απαιτεί συμμετοχή άλλων δραστών, τότε σύνδεση αυτών των δραστών με την περίπτωση χρήσης Βήματα στη μοντελοποίηση περιπτώσεων χρήσης Καταγραφή προαιρετικής ή ασυνήθιστης συμπεριφοράς σε μία περίπτωση χρήσης, σε ξεχωριστή περίπτωση χρήσης και σύνδεση της νέας περίπτωσης χρήσης με την κύρια περίπτωση χρήσης με τη σχέση «extend» Ανάλυση όλων των περιπτώσεων χρήσης και προσδιορισμός κοινών λειτουργιών σε όλες τις ομάδες περιπτώσεων χρήσης. Καταγραφή κάθε κοινής λειτουργίας σε μία ξεχωριστή περίπτωση χρήσης και σύνδεση αυτής της κοινής περίπτωσης χρήσης με τις άλλες περιπτώσεις χρήσης που την χρησιμοποιούν με σχέση «include» 18
Ερωτήσεις για το τέλος της μοντελοποίησης των περιπτώσεων χρήσης Στοχεύουν: Να επιβεβαιώσουν ότι δεν έχει παραληφθεί κάποια περίπτωση χρήσης ή κάποιος δράστης (actor). Nα αναδείξουν διάφορες συσχετίσεις μεταξύ των δραστών (actors) ή μεταξύ των περιπτώσεων χρήσης (σχέσεις «γενικεύει», «περιλαμβάνει», «επεκτείνει»). Ερωτήσεις για το τέλος της μοντελοποίησης των περιπτώσεων χρήσης Υπάρχει μία τουλάχιστον σύνδεση γιά κάθε δράστη με μια ή περισσότερες περιπτώσεις χρήσης; Υπάρχουν δράστες ή περιπτώσεις χρήσης που δεν έχουν καμμιά σύνδεση επικοινωνίας; Αν ναί, κάτι πάει λάθος: ή έχουμε παραλείψει κάτι, ή είναι περιττοί οι δράστες ή οι περιπτώσεις χρήσης Υπάρχουν ομοιότητες μεταξύ κάποιων δραστών που αντιπροσωπεύουν κάποιο ρόλο και θα μπορούσαν να περιγραφούν σαν μια «βασική κλάση χαρακτήρα»; 19
Ερωτήσεις για το τέλος της μοντελοποίησης των περιπτώσεων χρήσης Υπάρχουν ομοιότητες μεταξύ των κάποιων περιπτώσεων χρήσεις που μπορούν να απομονωθούν καί να περιγραφούν με μια σχέση «περιλαμβάνει» ή με μια σχέση «γενίκευσης/εξειδίκευσης»; Υπάρχουν ειδικές περιπτώσεις σε μια περίπτωση χρήσης που θα μπορούσαν να περιγραφούν με μια σχέση «επεκτείνει»; Υπάρχουν κάποιες λειτουργικές απαιτήσεις που δεν συμπεριλαμβάνονται σε καμιά περίπτωση χρήσης; Αν ναί, δημιιουργείστε ανάλογες περιπτώσεις χρήσης για αυτές τις απαιτήσεις Μια καλοσχεδιασμένη περίπτωση χρήσης Περιγράφει μια συγκεκριμένη καί λογικά ατομική (ανεξάρτητη) συμπεριφορά του συστήματος (ή μέρους του συστήματος) Περιγράφει τη ροή των γεγονότων με σαφή καί εύληπτο τρόπο για κάποιον μη ειδικό πληροφορικής Περιγράφεται με ένα ελάχιστο σύνολο σεναρίων που περιγράφουν την κανονική συμπεριφορά και εναλλακτικές συμπεριφορές της περίπτωσης χρήσης Έχει χρησιμοποιήσει με επιτυχία τις σχέσεις γενίκευσης/εξειδίκευσης, «περιλαμβάνει» καί «επεκτείνει» 20
Όταν σχεδιάζετε περιπτώσεις χρήσης στη UML Δείξτε μόνο τις περιπτώσεις χρήσεις που είναι απαραίτητες για την κατανόηση της συμπεριφοράς του συστήματος ή μέρους του συστήματος εντός των ορίων του Δείξτε μόνο τους δράστες (actors) που σχετίζονται με αυτές τις περιπτώσεις χρήσεις Δώστε ένα όνομα που δείχνει το σκοπό της περίπτωσης χρήσης Bάλτε τα διάφορα στοιχεία με τέτοιο τρόπο ώστε να ελαχιστοποιηθούν οι γραμμές που διασταυρώνονται Όταν σχεδιάζετε περιπτώσεις χρήσης στη UML Οργανώστε το έτσι ώστε οι ρόλοι και οι συμπεριφορές που συσχετίζονται να βρίσκονται κοντά και φυσικά Χρησιμοποιείστε χρώμα και σημειώσεις για να τραβήξετε την προσοχή σε σημαντικά σημεία του διαγράμματος Μη δείχνετε πολλά είδη συσχετίσεων. Γενικά, αν έχετε πολύπλοκες συσχετίσεις «γενίκευσης/εξειδίκευσης», «περιλαμβάνει» ή «επεκτείνει», βάλτε τες σε ξεχωριστό διάγραμμα 21
Συνοψίζοντας... Οι περιπτώσεις χρήσεις είναι μια τεχνική για την περιγραφή των λειτουργικών απαιτήσεων ενός συστήματος από την άποψη του χρήστη Τα διαγράμματα περιπτώσεων χρήσης περιλαμβάνουν δράστες (actors), περιπτώσεις χρήσης και τις μεταξύ τους συσχετίσεις μέσα στα όρια του συστήματος που μοντελοποιείται Ο δράστης (actor) αναπαριστά ένα ρόλο κάποιας εξωτερικής οντότητας (π.χ. ενός χρήστη, κάποιου υλικού, κάποιου άλλου συστήματος, κλπ.) που αλληλεπιδρά με το σύστημα Συνοψίζοντας... Οι δράστες (actors) ενεργοποιούν και επικοινωνούν με τις περιπτώσεις χρήσης. Μία περίπτωση χρήσης είναι μία σειρά από ενέργειες που εκτελούνται για να παραχθεί κάποιο χειροπιαστό αποτέλεσμα (που είναι χρήσιμο για κάποιον δράστη). Oι δράστες (actors) και οι περιπτώσεις χρήσης είναι γενικές περιγραφές (όπως οι κλάσεις). Στιγμιότυπα των περιπτώσεων χρήσης δημιουργούνται όταν εξετάζουμε συγκεκριμένα σενάρια με συγκεκριμένες τιμές στα δεδομένα, τους actors κλπ. Ένας δράστης (actor) συνδέεται με μία ή περισσότερες περιπτώσεις χρήσεις. 22
Συνοψίζοντας... Και οι δράστες (actors) και οι περιπτώσεις χρήσης μπορεί να έχουν συσχετίσεις γενίκευσης/εξειδίκευσης, μέσω των οποίων κληρονομούν περιγραφή και συμπεριφορά Ένα μοντέλο περίπτωσης χρήσης μπορεί να περιλαμβάνει ένα ή περισσότερα διαγράμματα περίπτωσης χρήσης Πηγές / Acknowledgements 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, Πανεπιστήμιο Αιγαίου Γιάννης Τζίτζικας. Μοντελοποίηση Λειτουργιών, Πανεπιστήμιο Κρήτης Martin Fowler, UML Distilled: a Brief Guide to the Standard Object Modeling Language, 3 rd Edition, Pearson Education Inc., 2004 A. Dennis, B. Haley Wixom, D. Tegarden, Systems Analysis and Design with UML Version 2.0, 2 nd edition, Wiley, 2005. S. M. Mallya, Requirements Capture using UML Use Cases Ε. Γιακουμάκης, Ν. Διαμαντίδης «Τεχνολογία Λογισμικού», Εκδόσεις Σταμούλη, 2009 23