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

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

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

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

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

Περιπτώσεις Χρήσης και Διαγράµµατα Περιπτώσεων Χρήσης. Use Cases and Use Case Diagrams

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

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

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 3: Μοντελοποίηση Περιπτώσεων Χρήσης (1ο Μέρος)

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

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

Τμήμα Μηχανικών Η/Υ Τηλεπικοινωνιών & Δικτύων,

Περίπτωση Χρήσης Use case

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

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

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

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

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

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

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

PDF created with pdffactory Pro trial version

Ηλεκτρονικό Κατάστημα

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

Οι περιπτώσεις χρήσης

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

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

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

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

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

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

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

Ενδεικτικές λύσεις ασκήσεων διαγραμμάτων καταστάσεων (2 ο επαναληπτικό μάθημα)

Διαγράμματα περιπτώσεων χρήσης

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

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

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

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

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

Μοντελοποίηση Πεδίου

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

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

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

Μοντελοποίηση Συστημάτων

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

UML: Unified modelling language

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

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

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

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

Μοντελοποίηση Συστημάτων

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Εγχειρίδιο Λειτουργίας Τράπεζας Χρόνου

Database Design. Documenting Business Rules Τεκμηρίωση Επιχειρησιακών κανόνων. 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.

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

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

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

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

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

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

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

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

Rational Unified Process:

Pylon Entry. Πόροι. Στη διαδικασία αυτή περιγράφεται η Δημιουργία- Μεταβολή-Διαγραφή Αναζήτηση Πόρων

Περιπτώσεις Χρήσης για το Π.Σ. ΜΟ.ΔΙ.Π. Κρήτης

Οδηγίες χρήσης εφαρμογής Ε.Ο.Π.Υ.Υ - Σύστημα Ηλεκτρονικής Προέγκρισης Φαρμάκων για Θεράποντες Ιατρούς

6. Διαχείριση Έργου. Έκδοση των φοιτητών

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

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

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

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

Πληροφορική 2. Τεχνολογία Λογισμικού

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ

Βελτιώνω μια λεπτομέρεια, σε σχέση με την Ανακοίνωση από 22/6/2009 (1.4.3)

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 4: Μοντελοποίηση Περιπτώσεων Χρήσης (2ο Μέρος)

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

Εγχειρίδιο εγκατάστασης Megasoft 2009

Αρχιτεκτονική Λογισμικού

Ενδιαφερόμενοι - Stakeholders. Πελάτης Ταμίας υπάλληλος Διαχειριστής Σύστημα εξουσιοδότησης πληρωμής

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

ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ. Άσκηση 1 Εφαρµογή Web

Ιστορικό. *Ομάδα ανάπτυξης: Γρεασίδης Θοδωρής: 265 Κουτσαυτίκης Δημήτρης: 258 Μπούρα Βάγια: 257 Πετράκη Ελένη: 266 Φουντά Σταυρούλα: 256

Κατάλογος εικόνων Πρόλογος της τρίτης έκδοσης Πρόλογος της πρώτης έκδοσης... 23

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr»

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΑΣΦΑΛΙΣΤΙΚΩΝ ΕΤΑΙΡΕΙΩΝ

Εγχειρίδιο Χρήσης Εφαρμογής Συστήματος Διαχείρισης Λογισμικού

Απαιτήσεις Λογισμικού

Εγχειρίδιο Φοιτητή. Course Management Platform. Εισαγωγή. for Universities Ομάδα Ασύγχρονης Τηλεκπαίδευσης Παν. Μακεδονίας Σεπτέμβριος 2004

ΔΙΕΥΘΥΝΣΗ ΨΗΦΙΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΣΥΣΚΕΥΗΣ ΚΩΔΙΚΩΝ ΜΙΑΣ ΧΡΗΣΗΣ (HARDWARE TOKEN) ΓΙΑ ΕΠΙΧΕΙΡΗΣΕΙΣ

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

Αυτή η ενότητα παρέχει πρόσθετες πληροφορίες και λεπτομέρειες για την Υπηρεσία

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Τραπεζικές Συναλλαγές μέσω Διαδικτύου

Υπολογισμός και αποστολή Αναλυτικής Περιοδικής Δήλωσης

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

Scheduling έργου 1 Τρίτη, 27 Οκτωβρίου 2015

Μάθημα «Υπηρεσίες Ηλεκτρονικής Υγείας»

ΔΙΕΥΘΥΝΣΗ ΨΗΦΙΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΣΥΣΚΕΥΗΣ ΚΩΔΙΚΩΝ ΜΙΑΣ ΧΡΗΣΗΣ (HARDWARE TOKEN) ΓΙΑ ΕΠΙΧΕΙΡΗΣΕΙΣ

Teaching Computer Science

Transcript:

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 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