Μοντελοποίηση Συστημάτων Διαγράμματα Κλάσεων ClassDiagrams
Διαγράμματα Κλάσεων Χρησιμοποιούνται στα βήματα: Ανάλυση απαιτήσεων Π.Σ. Σχεδιασμός Π.Σ. Είναι στατικά διαγράμματα που δείχνουν: Κλάσεις Ιδιότητες Λειτουργίες σχέσεις μεταξύ κλάσεων 2
Διαγράμματα Κλάσεων Η κλάση αναπαρίσταται στη UML με ορθογώνιο Το όνομα της κλάσης είναι (από σύμβαση) μια λέξη με το πρώτο γράμμα κεφαλαίο Το πακέτο αναπαρίσταται ως: 3
Συμβολισμός Κλάσης Ο συμβολισμός της κλάσης έχει 3 τμήματα: Το όνομα της κλάσης Τις ιδιότητες (attributes) της κλάσης Τις λειτουργίες (operations) της κλάσης 4
Ιδιότητες Κλάσης Οι ιδιότητες (attributes) παραπέμπουν στα πεδία της Java και σχετίζονται με δεδομένα της κλάσης Τυπική σύνταξη ιδιοτήτων Όνομα : Τύπος = αρχική_τιμή Ο τύπος μπορεί να είναι ένας τύπος της UML, κάποιος τύπος της γλώσσας προγραμματισμού ή κάποια κλάση Παραγόμενες (derived) ιδιότητες είναι αυτές που η τιμή τους προκύπτει από άλλες ιδιότητες της κλάσης. Οι παραγόμενες ιδιότητες έχουν το σύμβολο / πριν από το όνομα. 5
Εμβέλεια Ιδιοτήτων & Λειτουργιών Πρόθεμα Ονομασία Εμβέλεια - Ιδιωτική Ορατότητα μόνο εντός της κλάσης ~ Περιεχόμενη Ορατότητα μόνο στο πακέτο που περιέχει την κλάση + Δημόσια Ορατότητα σε όλο το σύστημα # Προστατευόμενη Ορατότητα μόνο στην κλάση και τους απογόνους της 6
Αντικείμενο Κλάσης Κάθε αντικείμενο της κλάσης έχει συγκεκριμένη τιμή για κάθε ιδιότητα Τυπική σύνταξη Όνομα αντικειμένου : Όνομα κλάσης Το όνομα του αντικειμένου αρχίζει με μικρό γράμμα 7
Λειτουργίες Κλάσης Οι λειτουργίες (operations) παραπέμπουν στις μεθόδους της Java Τυπική σύνταξη Όνομα(Παράμετρος1 : Τύπος1, Παράμετρος2 : Τύπος2, ) : Τύπος_Επιστροφής 8
Συσχετίσεις Κλάσεων Η συσχέτιση (association) αναπαριστά κάποια σύνδεση των αντικειμένων δύο κλάσεων Το βέλος δείχνει πώς διαβάζεται η σχέση Οι συσχετίσεις μεταξύ κλάσεων «μοιάζουν» με τις σχέσεις των πινάκων μίας βάσης δεδομένων 9
Πολλαπλότητα Συσχετίσεων Η πολλαπλότητα αναφέρεται στα άκρα των συσχετίσεων. Ακριβώς ένα 1 Ένα ή περισσότερα 1..* Κανένα ή περισσότερα * Κανένα ή ένα 0..1 10
Πολλαπλότητα Συσχετίσεων Συμβολισμός Πολλαπλότητας Περιγραφή 1 Ακριβώς 1 0 1 0 ή 1 0 * ή * 0 ή πολλά 1 * 1 ή πολλά 0 5 0 έως 5 2 10 2 έως 10 3, 5, 6 3 ή 5 ή 6 11
Συσσώρευση (aggregation) Η συσσώρευση είναι μία ειδική μορφή συσχέτισης. Είναι μία συσχέτιση όλου τμήματος. Η κλάση Α αναπαριστά το «όλο» και η κλάση Β το «τμήμα» Αν η κλάση Α καταστραφεί δεν καταστρέφονται τα περιεχόμενά της. 12
Συσσώρευση Παράδειγμα Το αυτοκίνητο έχει ως τμήμα του ένα κινητήρα. Ο κινητήρας μπορεί να είναι τμήμα πολλών αυτοκινήτων. Σημασιολογική ερμηνεία: «Το αυτοκίνητο δεν μπορεί να λειτουργήσει χωρίς τον κινητήρα». 13
Σύνθεση Η σύνθεση (composition) είναι μία ισχυρή μορφή συσσώρευσης Το όλο ελέγχει πλήρως τα τμήματά του και ιδιαίτερα τον κύκλο ζωής τους. Π.χ. η διαγραφή ενός αντικειμένου «όλου» διαγράφει και τα τμήματά του. Η πρόσβαση σε κάποιο «τμήμα» γίνεται αποκλειστικά μέσω του «όλου» 14
Σύνθεση Παράδειγμα Η εταιρεία θα έχει πάντα τουλάχιστον ένα τμήμα Όταν διαγραφεί η κλάση εταιρεία θα διαγραφούν και τα τμήματά της. 15
Αυτοσυσχέτιση Υπάρχει και η δυνατότητα αυτοσυσχέτισης. Η αυτοσυσχέτιση του σχήματος παράγει ιεραρχία αντικειμένων 16
Κλάση Συσχέτισης Μία κλάση συσχέτισης (association class) αποδίδει ιδιότητες και λειτουργίες σε μία συσχέτιση Η κλάση C είναι η κλάση συσχέτισης των Α και B Χρησιμοποιείται συνήθως σε συσχετίσεις «πολλά-προςπολλά» Σύνδεση με τη γραμμή συσχέτισης με - - - - - 17
Κλάση Συσχέτισης: Παράδειγμα (1/2) Ένας υπάλληλος εργάζεται σε πολλές εταιρείες και κάθε εταιρεία έχει πολλούς υπαλλήλους Ερώτημα: Πώς θα απεικονιστεί ο μισθός που λαμβάνει ένας υπάλληλος από μία εταιρεία? 18
Κλάση Συσχέτισης: Παράδειγμα (2/2) Ο περιορισμός της κλάσης συσχέτισης είναι ότι ο υπάλληλος δεν μπορεί να έχει δύο εργασίες στην ίδια εταιρεία. 19
Γενίκευση Η γενίκευση παραπέμπει στην κληρονομικότητα. Η κλάση Β είναι υποκλάση της κλάσης Α. Η υποκλάση κληρονομεί ιδιότητες συσχετίσεις και λειτουργίες της υπερκλάσης. Μία υποκλάση μπορεί να επαναορίσει (override) λειτουργίες της υπερκλάσης της. 20
Γενίκευση Παραδείγματα 21
Ολοκληρωμένο Παράδειγμα 1 Σ ένα ηλεκτρονικό forum υπάρχει ο απλός χρήστης, ο συγγραφέας και ο διαχειριστής. Ο απλός χρήστης μπορεί να διαβάζει τα άρθρα και να γράφει σχόλια σε κάποια άρθρα. Ο συγγραφέας εκτός από το να διαβάζει άρθρα και να γράφει σχόλια, μπορεί και να γράφει νέα άρθρα. Ο διαχειριστής, διαχειρίζεται τα άρθρα και τα σχόλια. 22
Ολοκληρωμένο Παράδειγμα 1 23
Ολοκληρωμένο Παράδειγμα 2 Σε ένα ηλεκτρονικό κατάστημα υπάρχει ο πελάτης και ο πωλητής Ο πελάτης μπορεί να κάνει αναζήτηση προϊόντος από τον online κατάλογο Ο πελάτης μπορεί να παραγγείλει ένα προϊόν. (για να ολοκληρωθεί η παραγγελία, πρέπει να συμφωνήσει με τους όρους πληρωμής) Οι πιο συνηθισμένες παραγγελίες, είναι οι παραγγελίες υπολογιστών Ο πωλητής συμμετέχει στη διαδικασία παραγγελίας με το να παρέχει πληροφόρηση στον πελάτη 24
Ολοκληρωμένο Παράδειγμα 2 25