1 / 20

Μεθοδολογίες Προγραμματισμού ΙΙ GRASP – Πρότυπα ΕΦΑΡΜΟΓΕΣ

Μεθοδολογίες Προγραμματισμού ΙΙ GRASP – Πρότυπα ΕΦΑΡΜΟΓΕΣ. Παναγιώτης Σφέτσος , PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr. Η μεγάλη εικόνα. Στόχοι. Στόχοι. Μείωση του Χάσματος Απεικόνισης Low Representational Gap – LRG). Low Level Design (L.L.D.).

Download Presentation

Μεθοδολογίες Προγραμματισμού ΙΙ GRASP – Πρότυπα ΕΦΑΡΜΟΓΕΣ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Μεθοδολογίες Προγραμματισμού ΙΙ GRASP – Πρότυπα ΕΦΑΡΜΟΓΕΣ Παναγιώτης Σφέτσος, PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr

  2. Η μεγάλη εικόνα Στόχοι Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  3. Στόχοι Μείωση του Χάσματος Απεικόνισης Low Representational Gap – LRG) Low Level Design (L.L.D.) Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  4. Ανάθεση Αρμοδιοτήτων ή Εκχώρηση Ευθυνών Στόχοι • Τα αντικείμενα έχουν αρμοδιότητες: • να ‘δρουν-πράττουν’ • να ‘γνωρίζουν’ • Οι αρμοδιότητες των αντικειμένων εκχωρούνται στην φάση L.L.D. (όπως των υποσυστημάτων/στοιχείων στην H.L.D.) • Συνεργασία(Collaboration): • Εκπλήρωση αρμοδιότητας από την ίδια κλάση • Εκπλήρωση αρμοδιότητας σε συνεργασία με • άλλες κλάσεις Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  5. Πρότυπο Δημιουργός (Creator Pattern) Στόχοι • Εφαρμογή:Παιχνίδι Monopoly • Παράδειγμα: Χρειαζόμαστε την δημιουργία ενόςαντικειμένου • τύπου τετράγωνο (square) • Ερώτηση: Ποιος θα δημιουργεί το αντικείμενο τετράγωνο; • Απάντηση: • Βήμα 1ο:Ξεκινάμε από τις υπάρχουσες κλάσεις. Αν δεν έχουν οριστεί ακόμη κοιτάμε το Domain Model (σύμφωνα με την LRG) • Βήμα 2ο:Εφαρμόζουμε το πρότυπο Δημιουργός (από τις υπάρχουσες κλάσεις), σύμφωνα με το διάγραμμα κλάσεων (LLD) • Βήμα 3ο: Αποφασίζουμε την αρμοδιότητα (κλάση) και σχεδιάζουμε τα διάγραμμα ακολουθίας και κλάσεων Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  6. Στόχοι Βήμα 1ο - Από το Domain Model Μπορεί να είναι κάποια εξωτερική κλάση (σκύλος, καπέλο..); Όχι αλλά γιατί; Βλέπουμε ότι το Boardπεριέχει τα τετράγωνα: Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  7. Στόχοι Βήμα 2ο και 3ο -Εφαρμογή του Creator Στο δυναμικό διάγραμμα (χωρίς το loop των 40 squares): Στο στατικό διάγραμμα: Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  8. Φορέας πληροφορίας (Information Expert) Στόχοι Εφαρμογή:Παιχνίδι Monopoly Παράδειγμα: Κάποιο αντικείμενο πρέπει να αναφέρεται σε κάποιο τετράγωνο (square) με το όνομά του. Ερώτηση: Ποιος θα είναι φορέας πληροφορίας για αυτό το τετράγωνο; Απάντηση:Το αντικείμενο που γνωρίζει (έχει την πληροφορία) για όλα τα τετράγωνα. Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  9. Στόχοι Εφαρμογή του Φορέα πληροφορίας Η Boardπεριέχει όλα τα τετράγωνα άρα κατέχει και την πληροφορία για την υλοποίηση της αρμοδιότητας: Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  10. Μειωμένη Σύζευξη (Low Coupling) Μείωση του κόστους Αλλαγών Στόχοι Γιατί όχι ένα αντικείμενο π.χ. τύπου dog; Δύο αντικ. έχουν σύζευξη με το square. Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  11. Στόχοι Ελεγκτής (Controller) – 1/3 Ποιο αντικείμενο θα χειριστεί συμβάντα (events) – διεπιφάνειας (UI); Από το SSD για το Monopoly: Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  12. Στόχοι Ελεγκτής (Controller) – 2/3 Ποιο αντικείμενο στο επίπεδο προβλήματος(domain) θα χειριστεί τα συμβάντα / κλήσεις μεθόδων; Σχηματική απεικόνιση: Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  13. Στόχοι Ελεγκτής (Controller) – 3/3 Ένα αντικείμενο που απεικονίζει το σύστημα / root object (π.χ. MonopolyGame) ή μιασυσκευή (π.χ. phone, cashier, κλπ.). Διαλέγουμε την 1η επιλογή γιατί έχουμε λίγες λειτουργίες. Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  14. Στόχοι Υψηλή Συνοχή (High Cohesion) - 1/2 Σχεδιαστικά είμαστε εδώ: Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  15. Στόχοι Υψηλή Συνοχή (High Cohesion) – 2/2 Αν επιλέξουμε το αριστερό διάγραμμα θα έχουμε χαμηλή συνοχή, Καλύτερη με το δεξιό διάγραμμα. Γιατί; Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  16. Ποιος έχει την ευθύνη για τηνεπανάληψη του παιχνιδιού; Στόχοι Ο αλγόριθμος: for N rounds for each Player p p takes a turn Από τον φορέαπληροφορίας το αντικείμενο MonopolyGame. Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  17. Στόχοι Ποιος ‘παίζει’; Από τον φορέαπληροφορίας το αντικείμενο Player: Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  18. Στόχοι Τα τελικά δυναμικά διαγράμματα Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  19. Στόχοι Το τελικό στατικό διάγραμμα Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

  20. Στόχοι Η αρχικοποίηση (Περίπτωση Χρήσης) Το MonopolyGameείναι το root-object, δημιουργεί το Boardκαι Players: Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ

More Related