Video Club
Μπαίνοντας στο VideoClub ο πελάτης, κατευθύνεται στα ράφια όπου είναι τοποθετημένα τα DVD ή τα παιχνίδια και μετά από αναζήτηση επιλέγει ένα ή περισσότερα τα οποία προσκομίζει στο ταμείο για ενοικίαση. Εναλλακτικά, μπορεί να πραγματοποιήσει παρόμοια αναζήτηση ηλεκτρονικά, σε τέσσερα τερματικά που υπάρχουν διαθέσιμα σε μία πλευρά του καταστήματος, καταχωρώντας την επιλογή του σε μία κράτηση στον κωδικό του, την οποία στη συνέχεια ζητάει για ενοικίαση από τον ταμία. Ο ταμίας ξεκινάει την ενοικίαση, αφού ζητήσει τον κωδικό του πελάτη, τον οποίο εισάγει στο σύστημα για επιβεβαίωση. Εισάγει ένα-ένα τα προϊόντα που έχει επιλέξει ο πελάτης, και το σύστημα εμφανίζει τον τίτλο, της αξία, και το μέγιστο σε ημέρες ενοικίασης του καθενός, εμφανίζοντας προοδευτικά την συνολική αξία. Τελειώνοντας, την εισαγωγή της ενοικίασης, ενημερώνει τον πελάτη για την αξία και του ζητάει επιβεβαίωση. Ο πελάτης ανταποκρίνεται καταβάλλοντας το τίμημα της αξίας της ενοικίασης. Ο ταμίας του παραδίδει τα προϊόντα της ενοικίασης, τα ρέστα, καθώς και μία αναλυτική εκτυπωμένη κατάσταση της ενοικίασης. Έτσι, τελειώνει και καταχωρείται η ενοικίαση στο σύστημα, ενημερώνοντας ταυτόχρονα και το ταμείο καθώς και την αποθήκη του καταστήματος.
void Customer::startSearch(int t) { if (t==0) lnksearch=new E_Search(); else lnksearch=new Manual_Search(); amount=lnkrent.setproducts(lnksearch->productlist()); deposit=deposit+amount; The endsale procedure records the information on the specific sale in a datbase system void Cashier::endSale() { lnkcustomer.endsale(); Cashier +startsale:void +endsale:void +startpayment:void void Cashier::startPayment(int typos) { lnkcustomer.startpayment(typos); void Cashier::startSale(int typos) { lnkcustomer.startsearch(typos); Payment makepayment:float Customer deposit:float +startsearch:void +endsale:void +startpayment:void Rent pr:product * * +setproducts:float 0 Product price:float CreditCard makepayment:floa Cash makepayment:floa Search +productlist:product * * The setproducts function appart from recording the products that are rented returns the total cost of the new renting to the customer's bill. Movie actor1:string actor2:string Game genre:string E Search Manual Search +productlist:product * * +productlist:product * *
Νέες Απαιτήσεις Το κατάστημα υιοθετεί μια νέα πολιτική με newsletters στους πελάτες. Κάθε πελάτης εγγράφεται σε μία κατηγορία ανάλογα με το εάν τον ενδιαφέρουν οι ταινίες ή τα παιχνίδια. Όταν στο κατάστημα έρχονται νέα προϊόντα αποστέλλονται e-mail με σχετικές πληροφορίες, στους αντίστοιχους πελάτες. Στο σύστημα διαχείρισης του Video Club χρειάζεται να προσθέσομε λειτουργικότητα σχετικά με την μισθοδοσία των υπαλλήλων. Κάθε υπάλληλος χαρακτηρίζεται ως ταμίας ή ως αποθηκάριος. Η πληρωμή του μπορεί να γίνεται είτε με βάση έναν μηνιαίο μισθό είτε με βάση τις ώρες που δούλεψε αυτό τον μήνα. Οι κατηγορίες πληρωμών δεν σχετίζονται με τις κατηγορίες των υπαλλήλων, δηλαδή κάθε υπάλληλος του Video Club μπορεί να πληρώνετε με οποιονδήποτε από τους δύο τρόπους ανεξαρτήτως της θέσης του. Στο σύστημα διαχείρισης του Video Club επιθυμούμε η διαχείριση του καλαθιού αγοράς του πελάτη να γίνεται με ενιαίο τρόπο, ανεξάρτητα με το εάν έχει αγοράσει ταινίες, παιχνίδια ή συνδυασμό των δύο. Όμως ειδικά για τις περιπτώσεις όπου μια ενοικίαση περιέχει παραπάνω από ένα προϊόντα επιθυμούμε την παροχή έκδοσης εκπτωτικού κουπονιού για την επόμενη αγορά ή την παραλαβή κάποιου δώρου.
Το κατάστημα υιοθετεί μια νέα πολιτική με newsletters στους πελάτες. Κάθε πελάτης εγγράφεται σε μία κατηγορία ανάλογα με το εάν τον ενδιαφέρουν οι ταινίες ή τα παιχνίδια. Όταν στο κατάστημα έρχονται νέα προϊόντα αποστέλλονται e-mail με σχετικές πληροφορίες, στους αντίστοιχους πελάτες.
void Cashier::end lnkcustomer.end void Cashier::startPaym lnkcustomer.startpaym void Customer::startSearch(int t) { if (t==0) lnksearch=new E_Search(); else lnksearch=new Manual_Search amount=lnkrent.setproducts(lnksea deposit=deposit+amount; The endsale procedu information on the sp datbase system Paymen makepaym MovieF GameF Custome 0..* deposit:floa +startsearc +endsale:v +startpaym Cashier +startsale: +endsale:v +startpaym Rent pr:product void Cashier::startSale lnkcustomer.startsearc Produc 0 price:flo Observer observers:cu +addobserve +notify:void void Observer::notif for all customers observers->se CreditCa makepaym Cash makepaym Search +productlist:p +setprodu The setproducts fun from recording the p are rented returns th cost of the new rent customer's bill. Movie 0..* Game Storage +addnewpro void Storage::addNewProd add p in vector lnkproducts Observer::notify(p); E Search Manual Sea actor1:s actor2:s genre:s +productlist:p +productlist:p
Στο σύστημα διαχείρισης του Video Club χρειάζεται να προσθέσομε λειτουργικότητα σχετικά με την μισθοδοσία των υπαλλήλων. Κάθε υπάλληλος χαρακτηρίζεται ως ταμίας ή ως αποθηκάριος. Η πληρωμή του μπορεί να γίνεται είτε με βάση έναν μηνιαίο μισθό είτε με βάση τις ώρες που δούλεψε αυτό τον μήνα. Οι κατηγορίες πληρωμών δεν σχετίζονται με τις κατηγορίες των υπαλλήλων, δηλαδή κάθε υπάλληλος του Video Club μπορεί να πληρώνετε με οποιονδήποτε από τους δύο τρόπους ανεξαρτήτως της θέσης του.
Pay Employe +paystoragewor +paycashier:voi calcsalary void Cashier::calcSal lnkpay->paycash void Customer::startSearch(int t) { if (t==0) lnksearch=new E_Search(); else lnksearch=new Manual_Search(); amount=lnkrent.setproducts(lnksearch-> deposit=deposit+amount; The endsale procedure information on the speci datbase system CreditCar makepayme PayPerHour +paystoragewo +paycashier:vo Cash makepayme PayPerSalar +paystoragewo +paycashier:vo Customer 0..* deposit:float +startsearch +endsale:vo +startpayme +sent_mail:v Payment Search +productlist:pro StorageWo calcsalary Cashier +startsale:vo +endsale:vo +startpayme +calcsalary:v Rent pr:product * +setproduct The setproducts funct from recording the pro are rented returns the cost of the new renting customer's bill. void Cashier::endS lnkcustomer.endsa void Cashier::startPaymen lnkcustomer.startpaymen void Cashier::startSale(int lnkcustomer.startsearch(t 0 price:floa Movie Produc 0..* Game Observer observers:cus +addobservers +notify:void Storage +addnewprod void Observer::notify(P for all customers in observers->sent_ void Storage::addNewProduct add p in vector lnkproducts Observer::notify(p); E Search Manual Sear actor1:st actor2:st genre:str +productlist:pro +productlist:pro
Στο σύστημα διαχείρισης του Video Club επιθυμούμε η διαχείριση του καλαθιού αγοράς του πελάτη να γίνεται με ενιαίο τρόπο, ανεξάρτητα με το εάν έχει αγοράσει ταινίες, παιχνίδια ή συνδυασμό των δύο. Όμως ειδικά για τις περιπτώσεις όπου μια ενοικίαση περιέχει παραπάνω από ένα προϊόντα επιθυμούμε την παροχή έκδοσης εκπτωτικού κουπονιού για την επόμενη αγορά ή την παραλαβή κάποιου δώρου.
Pay Employee +paystoragework +paycashier:void calcsalary: void Cashier::calcSalary lnkpay->paycashier void Customer::startSearch(int t) { if (t==0) lnksearch=new E_Search(); else lnksearch=new Manual_Search(); amount=lnkrent.setproducts(lnksearch->produ deposit=deposit+amount; The endsale procedure reco information on the specific s datbase system CreditCard makepayment PayPerHour +paystoragework +paycashier:void Payment makepayment Cash makepayment PayPerSalary +paystoragework +paycashier:void Customer deposit:float +startsearch:v +endsale:void +startpayment +sent_mail:voi Search StorageWor calcsalary:v 0..* Cashier +startsale:void +endsale:void +startpayment +calcsalary:vo Rent pr:productbas +setproducts: The setproducts function from recording the produc are rented returns the tota cost of the new renting to customer's bill. void Cashier::endSale lnkcustomer.ends void Cashier::startPayment(in lnkcustomer.startpaymen void Cashier::startSale(int typ lnkcustomer.startsearch(ty Movie ProductBas 0 price:float Game Decorator Observer observers:custo +addobservers:v +notify:void Storage +addnewproduc void Observer::notify(ProductBaske for all customers in observers observers->sent_mail(p); void Storage::addNewProduct(Produc add p in vector lnkproducts Observer::notify(p); +productlist:product actor1:str actor2:str genre:strin pb:productbasket E Search Manual Search +productlist:product +productlist:product CouponDeco PresentDeco