Σχεδιασμός Πληροφοριακών Συστημάτων Η παρακάτω Άσκηση είναι το θέμα της εξέτασης Θεωρίας Ιουνίου 2009. Μπορείτε να το μελετήσετε και να το υλοποιήσετε στον υπολογιστή σας. Αυτό θα ήταν μια εξαιρετική εργασία που θα μπορούσατε να παρουσιάσετε τον Σεπτέμβρη, αντί της κλασσικής εξέτασης Θεωρίας και Εργαστηρίου. Βελτιώνω μια λεπτομέρεια, σε σχέση με την Ανακοίνωση από 22/6/2009 (1.4.3) Άσκηση για το καλοκαίρι Θα σχεδιάσετε ένα μικρό μέρος μιας εφαρμογής ηλεκτρονικού καταστήματος βάσει της παρακάτω Απαίτησης Λογισμικού. Το τμήμα αυτό αφορά την Δήλωση της Διεύθυνσης Αποστολής για την παραγγελία και είναι συνέχεια του τμήματος της εφαρμογής που είδαμε στο Μάθημα. Ειδικότερα, η ανάλυση και ο σχεδιασμός σας θα περιλαμβάνει τα εξής: 1. Λογικό σχεδιασμό της βάσης δεδομένων 2. Κώδικα SQL που αντιστοιχεί στον παραπάνω λογικό σχεδιασμό 3. Διεπαφή Χρήστη 4. Επιχειρησιακή Λογική (κώδικας) Πρέπει οπωσδήποτε να γράψετε τα τμήματα της Επιχειρησιακής Λογικής 2.4.1 και 2.4.2. ΤΕΙ Ηπείρου Σχεδιασμός Πληροφοριακών Συστημάτων - Εξέταση Θεωρίας 17-6-2009 σελ. 1/6
1. Απαίτηση Λογισμικού 1.1 Χρήστης 1.1.1 Χρήστης είναι ο πελάτης του ηλεκτρονικού καταστήματος 1.2 Εισαγωγή 1.2.0 Ο πελάτης γενικά κάνει τα παρακάτω: 1.2.1 Αφού έχει επιλέξει ένα τουλάχιστον προϊόν (στο καλάθι του), ο πελάτης αποφασίζει «να πάει στο ταμείο» (proceed to checkout) για να δώσει την παραγγελία πώλησης. 1.2.2 Εάν ο πελάτης δεν έχει ακόμα ταυτοποιηθεί (authenticated), τότε ταυτοποιείται με διαδικασία σύνδεσης (login). 1.2.3 Στην συνέχεια, ο πελάτης δίνει την Διεύθυνση Αποστολής που θα χρησιμοποιηθεί για την παραγγελία πώλησης 1.2.4 Ύστερα, ο πελάτης δίνει τα στοιχεία χρέωσης (πιστωτική κάρτα) που θα χρησιμοποιηθεί για την παραγγελία πώλησης 1.2.5 Τέλος, ο πελάτης ελέγχει τα πλήρη στοιχεία της παραγγελίας πώλησης και υποβάλλει την παραγγελία αυτή. 1.3.1 Θα σχεδιάσετε μόνο το παραπάνω Τμήμα 1.2.3 της Απαίτησης, δηλαδή την Δήλωση της Διεύθυνσης Αποστολής. 1.3.2 Θα υποθέσετε ότι έχει ήδη γίνει η σύνδεση (login) του πελάτη. 1.4 Δεδομένα Σύνδεσης Πελάτη 1.4.1 Για την σύνδεση (login), ο πελάτης δίνει το όνομα χρήστη ( user_name ). 1.4.2 Το user_name είναι το email του πελάτη. 1.4.3 Η εφαρμογή αποθηκεύει τo user_name του συνδεδεμένου πελάτη στην προκαθορισμένη μεταβλητή APP_USER. Μπορείτε να χρησιμοποιήσετε την τιμή της μεταβλητής αυτής όπου χρειάζεται. Κοιτάξτε τις Σημειώσεις και τα παραδείγματα στην σελ. 3-18 του εγχειριδίου της Oracle Application Express Application Builder User s Guide Release 3.1.2 E10499-02. ΤΕΙ Ηπείρου Σχεδιασμός Πληροφοριακών Συστημάτων - Εξέταση Θεωρίας 17-6-2009 σελ. 2/6
1.5 Δεδομένα Διεύθυνσης Αποστολής 1.5.1 Το ηλεκτρονικό κατάστημα αποστέλλει μόνο εντός Ελλάδας. 1.5.2.0 Κάθε διεύθυνση αποστολής αποτελείται από τα παρακάτω 4 στοιχεία: 1.5.2.1 Ονοματεπώνυμο Παραλήπτη: Υποχρεωτικής συμπλήρωσης. Αποτελείται από 60 το πολύ χαρακτήρες. Default τιμή: Ονοματεπώνυμο του συνδεδεμένου Πελάτη. 1.5.2.2 Γραμμή Διεύθυνσης 1. Υποχρεωτικής συμπλήρωσης. Αποτελείται από 50 το πολύ χαρακτήρες 1.5.2.3 Γραμμή Διεύθυνσης 2. Προαιρετικής συμπλήρωσης. Αποτελείται από 50 το πολύ χαρακτήρες 1.5.2.4 Τόπος Αποστολής. Υποχρεωτικής συμπλήρωσης. 1.5.3.1 Ο παραπάνω Τόπος Αποστολής παίρνει τιμές από ένα αποθηκευμένο σύνολο τιμών, που περιέχει όλους τους Δήμους και τις Κοινότητες της Ελλάδας. 1.5.3.2 Το σύνολο των τιμών του παραπάνω Τόπου Αποστολής μπορεί να μεταβληθεί (από τον διαχειριστή της εφαρμογής). 1.6 Διαδικασία Δήλωσης Διεύθυνσης Αποστολής 1.6.1.0 Ο πελάτης ακολουθεί την μία από τις παρακάτω δύο εναλλακτικές δυνατότητες (κοιτάξτε και την διεπαφή χρήστη στην σελίδα 3): 1.6.1.1 Πρώτη Δυνατότητα: Ο πελάτης ορίζει μια νέα διεύθυνση αποστολής, συμπληρώνοντας τα 4 παραπάνω στοιχεία της διεύθυνσης αποστολής (παράγραφος 1.5.2) και ζητά την καταχώρηση αυτής της διεύθυνσης αποστολής. 1.6.1.2 Δεύτερη Δυνατότητα: Το Λογισμικό εμφανίζει τις τυχόν ήδη καταχωρημένες διευθύνσεις αποστολής για τον πελάτη αυτόν, από προηγούμενες ενέργειες ορισμού νέας διεύθυνσης. Ο πελάτης επιλέγει μία από τις διευθύνσεις αυτές. 1.6.1.1 Ειδικές απαιτήσεις για την Πρώτη Δυνατότητα: 1.6.1.1.1 Η εφαρμογή προτείνει αυτόματα ως Ονοματεπώνυμο Παραλήπτη, το Ονοματεπώνυμο του συνδεδεμένου πελάτη. 1.6.1.1.2 Ο πελάτης μπορεί να εισάγει ένα άλλο Ονοματεπώνυμο Παραλήπτη (π.χ., αν η παραγγελία αφορά δώρο σε κάποιον άλλον). 1.6.1.1.3 Η συμπλήρωση του Τόπου Αποστολής γίνεται με επιλογή από ένα μενού (λίστα) που δίνει όλους τους δυνατούς τόπους αποστολής (βλ. 1.5.3.1). ΤΕΙ Ηπείρου Σχεδιασμός Πληροφοριακών Συστημάτων - Εξέταση Θεωρίας 17-6-2009 σελ. 3/6
Μαρία Παπαδάκη Logout Διεύθυνση Αποστολής Μπορείτε να επιλέξετε μία από τις παρακάτω διευθύνσεις: Ονοματεπώνυμο Παραλήπτη Γραμμή Διεύθυνσης 1 Γραμμή Διεύθυνσης 2 Τόπος Αποστολής Μαρία Παπαδάκη Βασ. Πύρρου 987 ΑΡΤΑ Επιλογή Μαρία Παπαδάκη Καφενείο το Πλατάνι Χωριό Κρυονέρι ΑΓΡΑΦΑ Επιλογή Γιώργος Παπάς Καφενείο το Πλατάνι Χωριό Κρυονέρι ΑΓΡΑΦΑ Επιλογή Εναλλακτικά, μπορείτε να δώσετε μία νέα διεύθυνση: Ονοματεπώνυμο Παραλήπτη : Μαρία Παπαδάκη Γραμμή Διεύθυνσης 1 : Γραμμή Διεύθυνσης 2 : Τόπος Αποστολής : < μενού Επιλέξτε Τόπο Αποστολής > Submit Αγραφα Αλεξάνδρεια Αλεξανδρούπολη Αργος Αρτα... ΤΕΙ Ηπείρου Σχεδιασμός Πληροφοριακών Συστημάτων - Εξέταση Θεωρίας 17-6-2009 σελ. 4/6
2. Ζητούμενα 2.1 Λογικός Σχεδιασμός Βάσης Δεδομένων (15 λεπτά, Βαθμός 2.5) 2.1.1 Σχεδιάστε ένα διάγραμμα E/R. Δείξτε τις οντότητες και τις σχέσεις τους (connectivity και προαιρετική ύπαρξη). Μην βάλετε τα χαρακτηριστικά οντοτήτων πάνω στο διάγραμμα. Γράψτε τα χαρακτηριστικά κατ ευθείαν στον κώδικα SQL (βλ. παρακάτω 2.2). Πρέπει να παραστήσετε: - την οντότητα ή τις οντότητες που μοντελοποιούν την Διεύθυνση Αποστολής - και τις υπόλοιπες οντότητες που σχετίζονται άμεσα με την Διεύθυνση Αποστολής. 2.1.2 Γράψτε ένα μικρό σχόλιο (μια-δυό γραμμές) για τις επιλογές σας σχετικά με την Διεύθυνση Αποστολής. 2.2 Μοντέλο SQL (20 λεπτά, Βαθμός 2) 2.2.1 Θα μετατρέψετε το παραπάνω διάγραμμα E/R σε κώδικα SQL. Θα ορίσετε και τα χαρακτηριστικά των πινάκων. 2.2.2 Για έναν πίνακα της επιλογής σας, θα ορίσετε και έναν μηχανισμό αυτόματης δημιουργίας τιμής για το πρωτεύον κλειδί, για κάθε νέα γραμμή του πίνακα. Δεν πειράζει αν υπάρχουν συντακτικά σφάλματα - αρκεί να βγαίνει νόημα. 2.3 Διεπαφή Χρήστη (20 λεπτά, Βαθμός 1) Για ευκολία, σας προτείνω μια διεπαφή χρήστη (σελίδα 3). Δεκτές είναι και δικές σας εναλλακτικές ιδέες. 2.3.1 Καταγράψτε τα αντικείμενα της διεπαφής, χρησιμοποιώντας την ορολογία της Oracle Application Express. ΤΕΙ Ηπείρου Σχεδιασμός Πληροφοριακών Συστημάτων - Εξέταση Θεωρίας 17-6-2009 σελ. 5/6
2.4 Επιχειρησιακή Λογική (40 λεπτά, Βαθμός 3.5) Γράψτε τον κώδικα PL/SQL που κάνει την διεπαφή χρήστη και την εφαρμογή «να παίζει». Δεν πειράζει αν υπάρχουν συντακτικά σφάλματα - αρκεί να βγαίνει νόημα. 2.4.1 (3 λεπτά) Γράψτε τον κώδικα που εμφανίζει στην διεπαφή χρήστη τις παλιότερες καταχωρημένες διευθύνσεις αποστολής του πελάτη (εφ όσον υπάρχουν). 2.4.2 (3 λεπτά) Γράψτε ένα process σελίδας, που καταχωρεί στην βάση κάθε νέα διεύθυνση αποστολής. Πότε ενεργοποιείται το process αυτό; 2.4.3 Πρέπει με κάποιο τρόπο να «απομνημονευτεί» η διεύθυνση αποστολής που δήλωσε ο χρήστης γιατί θα χρειαστεί αργότερα κατά την δημιουργία της παραγγελίας πώλησης. Προτείνετε κάποιους μηχανισμούς απομνημόνευσης. Εάν ο χρήστης επιλέξει μια από τις παλιές διευθύνσεις, η λύση είναι εύκολη. Εάν ο χρήστης δώσει μια νέα διεύθυνση, το συζητάμε. 2.4.4 Φιάξτε ένα validation 2.4.5 Αν έχετε χρόνο: Γράψτε τον κώδικα που προεπιλέγει και εμφανίζει το Ονοματεπώνυμο του Πελάτη ως τιμή by default στο πρώτο πεδίο «Ονοματεπώνυμο Παραλήπτη» της νέας διεύθυνσης αποστολής. 2.5 Επιχειρησιακή Λογική - Δημιουργία stored function/procedure (5 λεπτά, Βαθμός 1) 2.5.1 Πάρτε τον κώδικα του παραπάνω process σελίδας 2.4.2, και υλοποιείστε το υπό μορφήν αποθηκευμένης στην βάση συνάρτησης ή διαδικασίας (stored function/procedure). 2.5.2 Δείξτε πως γίνεται η κλήση της αποθηκευμένης στην βάση συνάρτησης ή διαδικασίας από την σελίδα της εφαρμογής. Δεν πειράζει αν υπάρχουν συντακτικά σφάλματα - αρκεί να βγαίνει νόημα. ΤΕΙ Ηπείρου Σχεδιασμός Πληροφοριακών Συστημάτων - Εξέταση Θεωρίας 17-6-2009 σελ. 6/6