Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Μεθοδολογίες Προγραμματισμού ΙΙ GRASP – Πρότυπα ΕΦΑΡΜΟΓΕΣ Παναγιώτης Σφέτσος, PhD"— Μεταγράφημα παρουσίασης:

1 Μεθοδολογίες Προγραμματισμού ΙΙ GRASP – Πρότυπα ΕΦΑΡΜΟΓΕΣ Παναγιώτης Σφέτσος, PhD

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Κατέβασμα ppt "Μεθοδολογίες Προγραμματισμού ΙΙ GRASP – Πρότυπα ΕΦΑΡΜΟΓΕΣ Παναγιώτης Σφέτσος, PhD"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google