Ασκήσεις Κεφάλαιο 14
14.1 Γιατί ο σχεδιασμός που βασίζεται σε αντικείμενα με χαλαρές σχέσεις που κρύβουν τις πληροφορίες αναπαράστασης – attributes – τροποποιείται εύκολα Ο αντικειμενοστρεφής σχεδιασμός βοηθά σε Να καταλάβουμε τη δομή (μικρότερες οντότητες είναι λογικό κομμάτι μεγαλύτερων οντοτήτων) Οι όποιες αλλαγές δεν έχουν side effect – δεν επηρεάζουν άλλες οντότητες Ασφάλεια – μπορούμε να κρύψουμε τα χαρακτηριστικά που δεν θέλουμε να φαίνονται εξωτερικά
14.2 Ποια η διαφορά μιας κλάσης και ενός αντικειμένου κλάσης – εξηγήστε με παραδείγματα Η κλάση είναι μια γενική περιγραφή από ένα σύνολο αντικειμένων με κοινά χαρακτηριστικά Τα αντικείμενα είναι instances / περιπτώσεις των κλάσεων στον πραγματικό κόσμο Τα attributes έχουν συγκεκριμένες τιμές Οι τιμές είναι που μας κάνουν να διακρίνουμε κάποιο αντικείμενο από ένα άλλο
14.2 Ποια η διαφορά μιας κλάσης και ενός αντικειμένου κλάσης – εξηγήστε με παραδείγματα Παράδειγμα: Object class: Book Attributes: author, title, publishers, date of publication Object: instance της κλάσης book, ένα συγκεκριμένο βιβλίο Author: Ian Sommervillle Title: Software Engineering Publisher: Addison-Wesley Date of publication: 2004
14.3 Σε ποιες περιπτώσεις χρησιμοποιούμε ταυτόχρονα αντικείμενα Σε κατανεμημένο σύστημα Για πραγματικού χρόνου συστήματα (Βασίζονται σε hardware) Πρέπει να ξέρουμε ότι κάθε αντικείμενο εκτελείτε από διαφορετικό hardware (επεξεργαστή, sensors, κλπ). Η δυσκολία με το object-oriented design σε πραγματικό χρόνο είναι ότι το overhead της κλήσης είναι απρόβλεπτο, άρα μπορεί να μην έχουμε απόκριση μέσα στο χρόνο που χρειάζεται
14.4 Χρησιμοποιώντας UML σχεδιάστε τις ακόλουθες κλάσεις αντικειμένων προσδιορίζοντας γνωρίσματα και λειτουργίες Τηλεφωνική συσκευή Εκτυπωτής προσωπικού υπολογιστή Στερεοφωνικό σύστημα Τραπεζικός λογαριασμός Κατάλογος βιβλιοθήκης
14.4 Χρησιμοποιώντας UML σχεδιάστε τις ακόλουθες κλάσεις αντικειμένων προσδιορίζοντας γνωρίσματα και λειτουργίες
14.7 Δείξτε πιθανά αντικείμενα, attributes, και μεθόδους Ημερολόγιο διαχείρισης χρόνου Υποστήριξη χρονικού προγραμματισμού συναντήσεων μιας ομάδας συνεργατών Όταν πρόκειται να πραγματοποιηθεί μία συνάντηση ανάμεσα σε κάποια άτομα το σύστημα βρίσκει κενή θέση στα ημερολόγια τους και κανονίζει τη συνάντηση την κατάλληλη χρονική στιγμή. Αν δεν υπάρχει καμία κενή θέση αλληλοεπιδρά με το χρήστη για να γίνει αλλαγή στο προσωπικό του ημερολόγιο και να ανοίξει χώρος
14.7 Δείξτε πιθανά αντικείμενα, attributes, και μεθόδους Πλήρως αυτοματοποιημένο πρατήριο βενζίνης Οι οδηγεί περνούν την πιστωτική τους κάρτα σε αναγνώστη συνδεδεμένο με την αντλία Η κάρτα επικυρώνεται από την τράπεζα Ορίζεται ένα όριο αγοράς καυσίμου Ο οδηγός μπορεί να λάβει το καύσιμο Η μάνικα επιστρέφεται στη θέση της Η πιστωτική κάρτα χρεώνεται με το κόστος του καυσίμου Η πιστωτική κάρτα επιστρέφεται Αν η κάρτα δεν είναι έγκυρη η αντλία την επιστρέφει πριν παραδώσει το καύσιμο Pump Tank System controller Communication system Price table Card reader
Card reader Pump System controller Price table Tank Communication system
14.7 Δείξτε πιθανά αντικείμενα, attributes, και μεθόδους cardReader.Read_card (Card number, Card_type) ; communicationsSystem.Check_status (Card_type, Card_status, Credit_limit) ; // Actions taken when invalid card are not shown if (Card_status == OK ) { Max_delivery := Credit_limit / Price_table.Lookup (Pump.Fuel_type) ; Pump.Set_maximum (Max_delivery) ; Pump.Activate ( Fuel_delivered ) ; Pump.Deactivate ; Fuel_tank.Remove ( Fuel_delivered ) ; Card_ reader.Print_receipt ( Fuel_delivered * Price_table.Lookup (Pump.Fuel_type)) ; }