Τα διαγράµµατα πακέτων

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Τα διαγράµµατα πακέτων"

Transcript

1 1 Ελληνικό Ανοικτό Πανεπιστήµιο Τα διαγράµµατα πακέτων ρ. Πάνος Φιτσιλής

2 2 Περιεχόµενα Βασικές έννοιες Πως αποικοδοµούµε ένα σύστηµα σε πακέτα Παραδείγµατα διαγράµµατος πακέτων Στερεότυπα πακέτων

3 3 Οχωρισµός του συστήµατος σε µεγάλα αρχιτεκτονικά στοιχεία Ένα βασικό στοιχείο της αρχιτεκτονικής ενός συστήµατος είναι ο χωρισµός αυτού σε µεγάλα αρχιτεκτονικά στοιχεία(large Scale Elements LSE): Αρχιτεκτονικά επίπεδα (layers) Υποσυστήµατα (subsystems) Κοµµάτια (modules) Πλαίσια εργασίας (frameworks)

4 Πως σπάω ένα µεγάλο σύστηµα σε µικρότερα κοµµάτια? Η ρωµαϊκή στρατηγική του διαίρει και βασίλευε: Χωρισµός ενός προβλήµατος σε µικρότερα υποπροβλήµατα Χωρισµός του συστήµατος σε µικρότερα υποσυστήµατα Οι κλάσεις είναι ήδη µια διαίρεση του προβλήµατος σε µικρότερα κοµµάτια. Όµως τις περισσότερες φορές είναι πολλές και δηµιουργούν πρόβληµα στην καλή κατανόηση του συστήµατος Πακέτα είναι η λογική οµαδοποίηση των 4

5 Τα πακέτα Orders Είναι ένα γενικός µηχανισµός για την οργάνωση κλάσεων σε οµάδες Τα πακέτα προσδιορίζουν ένα χώρο ονοµάτων (namespace) Στοχώροαυτόταονόµατα των στοιχείων που συµµετέχουν είναι µοναδικά εν µπορούµε ναέχουµε δύο κλάσεις µε το ίδιο όνοµα στο ίδιο πακέτο Στη UML ακόµη και όταν δεν ορίζουµε κανένα πακέτο υπάρχει το πακέτο ρίζα (root) 5

6 Τα διαγράµµατα πακέτων είχνουν τα πακέτα είχνουν τις αλληλεξαρτήσεις µεταξύ των πακέτων (dependencies) Υπάρχει µια αλληλεξάρτηση µεταξύ δύο στοιχείων όταν αλλαγή στο ένα πακέτο προκαλεί αλλαγή και στο άλλο Import (εισαγωγή): το πακέτο πηγή έχει πρόσβαση στο πακέτο στόχος 6

7 7 Ο βασικός στόχος Οστόχος(και η τέχνη) στη σχεδίαση µεγάλων και πολύπλοκων συστηµάτων είναι να ελαχιστοποιήσουµε τις αλληλεξαρτήσεις µεταξύ των πακέτων έτσι ώστε να ελαχιστοποιήσουµε την εξάπλωση των αλλαγών όταν και εφόσον αυτές συµβαίνουν

8 8 Παράδειγµα διαγράµµατος πακέτων Αρχιτεκτονικά επίπεδα

9 9 Παράδειγµα διαγράµµατος πακέτων (συνέχεια) λληλεξαρτήσεις

10 Οι αλληλεξαρτήσεις µεταξύ των πακέτων Μια αλληλεξάρτηση υπάρχει όταν υπάρχει αλληλεξάρτηση µεταξύ των κλάσεων των πακέτων ΗκλάσηΑκαλείµια µέθοδο της κλάσης Β. Η κλάση Α περιέχει ένα στιγµιότυπο της B (aggregation relationship) Μια µέθοδος της κλάσης Α έχει ως παράµετρο ένα αντικείµενο κλάσης Β Οι αλληλεξαρτήσεις δεν είναι µεταβατικές Α--> Β --> C δεν σηµαίνει και Α--> C 10

11 11 Ο χειρισµός της ορατότητας µε τη χρήση πακέτων Η ορατότητα (visibility) στα πακέτα δουλεύει µε τονίδιοτρόποόπως και στις κλάσεις. Public ορατό σε όλους που κάνουν import το πακέτο Private Ορατό µόνο µέσα στο πακέτο Protected Ορατό µέσα στο πακέτο και στα παιδιά των στοιχείων του πακέτου

12 12 Ο χειρισµός της ορατότητας µε τη χρήση πακέτων (συνέχεια) Όλες οι κλάσεις του πακέτου είναι private (ορατές µόνο µέσα στο πακέτο) Ορισµός µιας ή περισσοτέρων (πολύ λίγων σε αριθµό) συγκεκριµένων κλάσεων που υλοποιούν τη λειτουργικότητα του πακέτου. Οι κλάσεις αυτές ορίζονται public

13 13 Τα στερεότυπα των πακέτων facade Προσδιορίζει ότι ένα πακέτο είναι µόνο η πρόσοψη (façade) ενός άλλου πακέτου framework Το πλαίσιο εργασίας (framework) προσδιορίζει ότι ένα πακέτο αποτελείται από πρότυπα (ανάλυσης, σχεδιασµού, κ.λπ.) stub Προσδιορίζει ότι ένα πακέτο δρα ως πληρεξούσιο (proxy) ενός άλλου πακέτου (public part) subsystem Ένα πακέτο υποσύστηµα αναπαριστά ένα ανεξάρτητο τµήµα του υπό ανάπτυξη συστήµατος system Προσδιορίζει το σύστηµα υπό ανάπτυξη

14 14 Μερικοί κανόνες Προσπαθούµε νααποφύγουµε κύκλους στις αλληλεξαρτήσεις µεταξύ των πακέτων Εάν υπάρχουν πάρα πολλές αλληλεξαρτήσεις τότε θα πρέπει να ξανασχεδιαστεί το σύστηµα Εάν το µονοπάτι των αλληλεξαρτήσεων είναι µεγάλο θα πρέπει να σκεφτούµε µήπως χρειάζεται να δοµήσουµε το σύστηµα διαφορετικά. Όταν υπάρχει µεγάλος αριθµός κλάσεων τότε θα πρέπει να δηµιουργούµε πακέτα για την οµαδοποίησή τους Σε κάθε πακέτο µόνο λίγες κλάσεις να υλοποιούν την public συµπεριφορά

15 15 Παρουσιάσαµε... Αποικοδόµηση του συστήµατος σε πακέτα Παραδείγµατα διαγραµµάτων Στερεότυπα