1 η ΑΣΚΗΣΗ ΕΡΓΑΣΤΗΡΙΟΥ (ομαδική: 2 ή 3 ατόμων) (Ημερομηνία Παράδοσης: 18/11/2017) (Ζητούμενο) Η εταιρία «ΧΥΖ» ειδικεύεται στην πώληση βιβλίων και CDs και επιθυμεί να δημιουργήσει ένα ηλεκτρονικό κατάστημα αυτοματοποιώντας τις δραστηριότητές της, όπως περιγράφονται παρακάτω. Το Σύστημα της εταιρίας θα πρέπει: Να εμφανίζει μια λίστα με όλα τα προϊόντα (βιβλία και cds) που παρέχονται/πωλούνται από την εταιρία και να επιτρέπει στον πελάτη να περιηγηθεί στα προϊόντα αυτά. Να αποθηκεύεται πληροφορία για τα βιβλία, όπως: τίτλος, συγγραφείς, εκδότης, τιμή, περιγραφή. Να αποθηκεύεται πληροφορία για τα CDs, όπως: καλλιτέχνης, ετικέτα, συνθέτης, τιμή, περιγραφή. Να επιτρέπει σε έναν πελάτη να διαχειριστεί το λογαριασμό του. Πιο συγκεκριμένα: o Επιτρέπει σε έναν πελάτη να εγγράφεται (register) στο σύστημα μέσω του site. Οι πληροφορίες που θα κρατούνται από το σύστημα για τον πελάτη κατά την εγγραφή του θα είναι: username, password, name, shipping address, email address, phone number, fax number. o Επιτρέπει στους πελάτες να συνδέονται στο σύστημα (login). o Επιτρέπει στους πελάτες να δουν (view) και να τροποποιήσουν (edit/update) την καρτέλα με τις προσωπικές του πληροφορίες o Επιτρέπει στους πελάτες να διαγραφούν από τη λίστα των πελατών της εταιρίας (delete). Να οργανώνει τον κατάλογο των προϊόντων με βάση την κατηγορία του κάθε προϊόντος. Τα προϊόντα έχουν ταξινομηθεί σε κατηγορίες, έτσι ώστε παρόμοια προϊόντα (όπως π.χ. βιβλία επιστημονικής φαντασίας) να ομαδοποιούνται και να προσφέρουν στον πελάτη (customer) την ευκολία της αναζήτησής τους, αλλά και στον χρήστη του συστήματος που είναι υπεύθυνος για την διαχείριση του καταλόγου (shopkeeper), την ευκολία στη διαχείριση/συντήρησή του. o Ο υπεύθυνος για την διαχείριση του καταλόγου (shopkeeper) θα μπορεί να αναζητά ανά κατηγορία ή να προσθέτει ή να αφαιρεί προϊόντα (βιβλία, CDs) από τον κατάλογο προϊόντων. Να εμφανίζει μετά από αναζήτηση του πελάτη στον κατάλογο- λεπτομερείς περιγραφές προϊόντων, οι οποίες θα αποτελούνται από όνομα, τιμή και περιγραφή (κατόπιν ζήτησης του πελάτη). Να επιτρέπει στον πελάτη να διαχειριστεί τις παραγγελίες του: o Θα μπορεί να δημιουργεί νέα παραγγελία, o Θα μπορεί να βλέπει τις παραγγελίες που έχει κάνει μέχρι στιγμής, και o Θα μπορεί να αλλάζει τις παραγγελίες του. Μία παραγγελία μπορεί να αλλάξει μόνο αν είναι «ανοικτή». (Μια παραγγελία μπορεί είτε να είναι σε κατάσταση «ανοικτή» είτε σε κατάσταση «κλειστή» είτε σε κατάσταση «ακυρωμένη») Να εμφανίζει τον τρέχων αριθμό (σύνολο) των προϊόντων που βρίσκονται στο καλάθι αγορών σε κάθε σελίδα του καταλόγου. Να επιτρέπει στον πελάτη να πληρώσει με όλα τα είδη πιστωτικών καρτών. o Θα πρέπει να επικυρώνει όλες οι πληρωμές (συναλλαγές) μέσω μιας εξωτερικής εταιρίας, υπεύθυνης για την επικύρωση των συναλλαγών με πιστωτικές κάρτες (credit card processing company). o Ένας πελάτης μπορεί να πληρώσει με μία το πολύ κάρτα
o Το σύστημα θα κρατάει πληροφορίες για την κάρτα, όπως: τύπος κάρτας, όνομα κάρτας, αριθμός κάρτας, ημερομηνία λήξης και κωδικός επικύρωσης. Να υπολογίζει το κόστος της παραγγελίας και να προσθέτει αυτόματα το κόστος αποστολής στην παραγγελία, καθώς επίσης και τον υπολογισμό και προσθήκη του φόρου (ΦΠΑ) στην παραγγελία. Να επιτρέπει στον πελάτη να διαχειριστεί το καλάθι του, είτε προσθέτοντας είτε αφαιρώντας προϊόντα από αυτό. Να επιτρέπει στον πελάτη να κάνει «check out» και να πληρώνει για τα προϊόντα που πρόκειται να αγοράσει και έχει μέσα στο καλάθι του. Να ενημερώνει το Τμήμα Αποστολής (Dispatcher) να κλείσει την παραγγελία όταν η παραγγελία έχει εξοφληθεί. Το Τμήμα Αποστολής (Dispatcher) αλλάζει την κατάσταση της παραγγελίας σε closed όταν η παραγγελία έχει πια ταχυδρομηθεί. Το Σύστημα θα έχει έναν υπερ-χρήστη (System Administrator) που θα διαχειρίζεται όλους τους λογαριασμούς των χρηστών του συστήματος, δίνοντάς τους τα κατάλληλα δικαιώματα πρόσβασης. o Θα μπορεί να προσθέτει νέους χρήστες o Θα μπορεί να διαγράφει παλιούς χρήστες Όλοι οι χρήστες του Συστήματος θα πρέπει να έχουν αυθεντικοποιηθεί για να μπορούν να το χρησιμοποιήσουν. Τέλος, θα πρέπει να υπάρχει μια αποθήκη (Inventory), που θα διαχειρίζεται τα αποθέματα των προϊόντων είτε κατά το checkout της παραγγελίας είτε κατά την πληρωμή της με κάρτα. Ζητούνται: α) Οι actors του Συστήματος. β) Το διάγραμμα περιπτώσεων χρήσης της περιγραφής του παραπάνω συστήματος. γ) Το διάγραμμα κλάσεων που αφορά τη περιγραφή του παραπάνω συστήματος ενσωματώνοντας τις πολλαπλότητες όπου αυτές απαιτούνται (για λόγους απλοποίησης, μη χρησιμοποιήσετε ορατότητες και τύπους δεδομένων στις ιδιότητες και στις μεθόδους των κλάσεων). Θα υποβληθεί ένα αρχείο συμπίεσης (zip), το οποίο θα έχει ως όνομα αρχείου: αριθμός μητρώου-επώνυμο-lab1 (για τους συμμετέχοντες της ομάδας 1 του εργαστηρίου) ή αριθμός μητρώου-επώνυμο-lab2 (για τους συμμετέχοντες της ομάδας 2 του εργαστηρίου) ή αριθμός μητρώου-επώνυμο-lab3 (για τους συμμετέχοντες της ομάδας 3 του εργαστηρίου). Το παραδοτέο μέσα στο zip θα είναι σε μορφή WORD και οι εικόνες (διάγραμμα περιπτώσεων χρήσης, διάγραμμα κλάσεων) σε διαδεδομένα μορφότυπα (πχ. jpg, bmp, κλπ). Εντός του αρχείου θα πρέπει υποχρεωτικά να αναγράφονται οι αριθμοί μητρώου και τα ονοματεπώνυμα και των δύο ή τριών φοιτητών της ομάδας. Χρησιμοποιήστε τα στοιχεία του ενός μόνο ατόμου από την ομάδα σας στο όνομα του αρχείου zip και doc (τα στοιχεία και των δύο ή τριών ατόμων της εργασίας θα αναγράφονται μέσα στο WORD αρχείο-παραδοτέο).
Οι εργασίες είναι ομαδικές (2 ή 3 ατόμων) και θα υποβληθούν στην αντίστοιχη περιοχή του Ευδόξου (Εργασίες). ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ ΔΙΑΓΡΑΜΜΑΤΑ ΑΝΑΛΥΣΗΣ ΚΑΙ ΣΧΕΔΙΑΣΗΣ ΣΥΣΤΗΜΑΤΟΣ Ενδεικτική Λύση 1 Generic Use Case Diagram
Ενδεικτική Λύση 2 Use Case Diagram (more analytical)
Ενδεικτική Λύση 3 Class Diagram
Ενδεικτική Λύση 4 More Specific Class Diagram (with multiplicities) Αν θέλουμε, τις παραπάνω κλάσεις μπορώ να τις ομαδοποιήσουμε σε πακέτα, όπως φαίνεται παρακάτω:
Ενδεικτική Λύση 5 Class Diagram (with attributes & methods - classes in packages)