Use-Case διαγράμματα και προδιαγραφές

Γενικά

Τα διαγράμματα περιπτώσεις χρήσης (use-case) παρουσιάζουν το σύστημα όπως αυτό φαίνεται από τη θέση ενός εξωτερικού παρατηρητή. Τα διαγράμματα αυτά απεικονίζουν γραφικά τη συμπεριφορά του συστήματος και μπορεί να καλύπτουν όλα ή τα πιο γενικά υποσυστήματα τα οποία απεικονίζονται με τα use-cases.

Στη φάση της ανάλυσης τα διαγράμματα use-case χρησιμοποιούνται για να γίνει κατανοητό πως το σύστημα θα πρέπει να δουλεύει. Στη φάση της σχεδίασης χρησιμοποιούνται για να καθορίσουν τη συμπεριφορά του συστήματος όταν αυτό υλοποιηθεί.

Ένα διάγραμμα use-case περιέχει:

  • Actors (χρήστες ή ενεργώντες) (οι αλληλεπιδρώντες με το σύστημα)
  • Use cases (περιπτώσεις χρήσης) (περιγράφουν τι κάνει το σύστημα ή ποιές είναι οι λειτουργίες του)
  • Interactions ή relationships (Αλληλεπεδράσεις ή σχέσεις ή συσχετίσεις) ανάμεσα σε Actors και Use cases

Actors (χρήστες)

Οι actors είναι οι χρήστες του συστήματος. Αυτοί που αλληλεπιδρούν με το σύστημα αλλά δεν ελέγχουν το σύστημα. Ένας Actor μπορεί να είναι ένα φυσικό πρόσωπο ή ένα άλλο σύστημα ή ένα μηχάνημα.

Παράδειγμα

Γενικά, ένας actor (χρήστης) είναι κάτι που:

  • Αλληλεπιδρά ή χρησιμοποιεί το σύστημα αλλά δεν είναι μέρος του συστήματος
  • Παρέχει δεδομένα ή λαμβάνει δεδομένα και πληροφορίες από το σύστημα
  • Βρίσκεται έξω από το σύστημα και δεν έχει κανένα έλεγχο στο σύστημα

Για να προσδιορίσουμε έναν actor ρωτάμε:

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

Use Case (περίπτωση χρήσης)

Ένα use case είναι μια σειρά από συμβάντα ή γεγονότα που εκτελούνται από το σύστημα όταν προκληθεί από έναν actor.

Ένα use case περιέχει όλα τα τα πιθανά συμβάντα και όχι μεμονωμένες περιπτώσεις.

Σε έναν απλό ορισμό, το use case περιγράφει το ειδικό τρόπο με τον οποίο ένας χρήστης χρησιμοποιεί το σύστημα.

Μπορείτε να ανακαλύψετε ένα use case εξετάζοντας τι χρειάζεται ένας χρήστης από το σύστημα και τι θα μπορεί να κάνει με το σύστημα έτσι ώστε το σύστημα να ανταποκρίνεται στις προσδοκίες του χρήστη.

Σε ένα διάγραμμα use case χρησιμοποιείτε μια συλλογή από use cases έτσι ώστε να περιγράψετε όλους τους τρόπους χρήσης.

Το όνομα ενός use case είναι περιγραφικό και αρχίζει με ένα ρήμα και τοποθετείται κάτω από το εικονίδιο.

Παράδειγμα

Γενικά, ένα use case περιγράφει:

  • Ένα πρότυπο συμπεριφοράς του συστήματος
  • Μια σειρά από αλληλεπιδράσεις ανάμεσα σε έναν actor και το σύστημα

Επίσης, ένα use case παρέχει τα μέσα για να μπορεί κάποιος να:

  • Προσδιορίζει τις προδιαγραφές και τα απαιτούμενα του συστήματος
  • Επικοινωνεί με τους τελικούς χρήστες και ειδικούς του συστήματος
  • Ελέγχει το σύστημα

Αλληλεπεδράσεις ή σχέσεις (Interactions or relationships)

Οι σχέσεις σε ένα διάγραμμα use case δείχνουν τις αλληλεπιδράσεις που συμβαίνουν ανάμεσα σε actors και use cases.
Μπορούμε να διακρίνουμε τις σχέσεις στις παρακάτω κατηγορίες:

  • Association (Συσχέτιση)
  • Dependency (Εξάρτηση)
  • Generalization (Γενίκευση)

Association (Συσχέτιση)

Αυτού του είδους οι σχέσεις είναι πολύ γενικές και κατά συνέπεια εννοιολογικά αφηρημένες.
Μια συσχέτιση μπορεί να είναι τύπου Uni-directional (που είναι ή προκαθορισμένος τύπος) και τύπου Bi-directional. Ανάλογα προς ποια κατεύθυνση κινούνται τα δεδομένα.

Παράδειγμα

Dependency (Εξάρτηση)

Αυτού του είδους οι σχέσεις δείχνουν ότι μια αλλαγή σε ένα στοιχείο (π.χ. use case) θα επηρεάσει το άλλο στοιχείο ή ότι μια λειτουργία ενός στοιχείου (π.χ. class) θα καλέσει μια λειτουργία του άλλου στοιχείου.

Στερεότυπα (Stereotypes)

Τα στερεότυπα παρέχουν επιπρόσθετες διακριτές πληροφορίες σε ένα μοντέλο χωρίς να υποστηρίζονται ρητά από την UML.

Το στερεότυπο "include"

Προστίθεται σε μια εξάρτηση και δηλώνει ότι ένα use case περιλαμβάνεται (υποχρεωτικά) και κατ' επέκταση χρησιμοποιείται από ένα άλλο use case.

Παράδειγμα

Το στερεότυπο "extend"

Προστίθεται σε μια εξάρτηση και δηλώνει ότι η λειτουργία ενός use case εισάγεται στη λειτουργία ενός άλλου use case, δείχνοντας με αυτόν τον τρόπο την επιλεκτική ή προαιρετική ή υπό συνθήκη συμμετοχή του και χρήση του.
Χρησιμοποιείται συνήθως σε Συσχετίσεις και Εξαρτήσεις.

Παράδειγμα

Generalization (Γενίκευση)

Αυτού του είδους οι σχέσεις δείχνουν ποιο είναι το γενικό στοιχείο και ποιο το ειδικό στοιχείο. Για παράδειγμα μια κλάση και μια υποκλάση.

Μια γενίκευση ανάμεσα σε δύο στοιχεία συμβολίζεται με ένα βέλος με μύτη τριγώνου.

Γενικεύσεις μπορούμε να έχουμε και σε actors και σε use cases.

Το στερεότυπο "refine"

Δηλώνει ότι ένα use case (στόχος) είναι μια πιο ειδική και λεπτομερή (ραφιναρισμένη) περίπτωση σε σχέση με ένα use case (πηγή) που είναι μια περίπτωση γενική και αφηρημένη. Για παράδειγμα μια διεπαφή που υλοποιείται από μια υποκλάση.

Τεκμηρίωση

Κάθε διάγραμμα συνοδεύεται από σχετική τεκμηρίωση. Σ΄αυτή γίνεται σύντομη περιγραφή του συστήματος, των χρηστών, των περιπτώσεων χρήσης, των λειτουργιών αλλά και των προ-συνθηκών και μετά-συνθηκών.

Περιγραφή

Το σύστημα προσφέρει τη δυνατότητα σε ενδιαφερόμενους να κάνουν κράτηση σε ένα ξενοδοχείο.

Actors

Ενδιαφέρομενος (τουρίστας)

Τουριστικός πράκτορας (μπορεί να λειτουργήσει και ως τουρίστας)

Βασικό σενάριο

1. Ο ενδιαφερόμενος κάνει σύνδεση

2. Επιλέγει αναζήτηση για διαθεσιμότητα

3. Επιλέγει κριτήρια αναζήτησης όπως ημερομηνία κλπ.

4. Κάνει κράτηση

5. Προαιρετικά μπορεί να κάνει μια προκαταβολή.

Εναλλακτικό σενάριο

1 α. Αν δεν είναι εγγεγραμμένος μπορεί να κάνει εγγραφή.

5 α. Αν ζητήσει να κάνει προκαταβολή τότε θα μεταφερθεί στο σύστημα πληρωμών.

Προ-συνθήκες

Το σύστημα πρέπει να έχει σύνδεση με τη ΒΔ

Το σύστημα πρέπει να επικοινωνεί με το σύστημα πληρωμών

Μετά-συνθήκες

Το σύστημα επιστρέφει κωδικό στο email του χρήστη μετά την εγγραφή

Το σύστημα επιστρέφει επιβεβαίωση στο email του χρήστη μετά την κράτηση