1 / 90

ΚΛΑΣΕΙΣ, ΑΝΤΙΚΕΙΜΕΝΑ ΚΑΙ ΟΙ ΣΥΣΧΕΤΙΣΕΙΣ ΤΟΥΣ

ΚΛΑΣΕΙΣ, ΑΝΤΙΚΕΙΜΕΝΑ ΚΑΙ ΟΙ ΣΥΣΧΕΤΙΣΕΙΣ ΤΟΥΣ. 1. Γενικοί Ορισμοί 2. Κλάσεις καί η Περιγραφή τους 3. Σχέσεις Μεταξύ Κλάσεων 4. Αφαιρετικές Κλάσεις 5. Προχωρημένες Έννοιες 6. Ποιότητα του Μοντέλου. 1. Γενικοί Ορισμοί. Εισαγωγή Αντικείμενα Κλάσεις Μοντελοποίηση Συστημάτων

emi-lynn
Download Presentation

ΚΛΑΣΕΙΣ, ΑΝΤΙΚΕΙΜΕΝΑ ΚΑΙ ΟΙ ΣΥΣΧΕΤΙΣΕΙΣ ΤΟΥΣ

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. ΚΛΑΣΕΙΣ, ΑΝΤΙΚΕΙΜΕΝΑ ΚΑΙ ΟΙ ΣΥΣΧΕΤΙΣΕΙΣ ΤΟΥΣ 1. Γενικοί Ορισμοί 2. Κλάσεις καί η Περιγραφή τους 3. Σχέσεις Μεταξύ Κλάσεων 4. Αφαιρετικές Κλάσεις 5. Προχωρημένες Έννοιες 6. Ποιότητα του Μοντέλου

  2. 1. Γενικοί Ορισμοί • Εισαγωγή • Αντικείμενα • Κλάσεις • Μοντελοποίηση Συστημάτων • Διαγράμματα Κλάσεων • Διαγράμματα Αντικειμένων

  3. Εισαγωγή • Οι κλάσεις, τα αντικείμενα καί οι μεταξύ τους συσχετίσεις είναι τα πρωταρχικά στοιχεία μοντελοποίησης στην αντικειμενοστραφή θεώρηση • Οι κλάσεις καί τα αντικείμενα περιγράφουν τι υπάρχει μέσα στο σύστημα που περιγράφουμε • Οι συσχετίσεις μεταξύ τους περιγράφουν πως δομούνται το ένα συστατικό σε σχέση με το άλλο • Η ταξινόμηση χρησιμοποιείται εδώ καί χρόνια γιά απλοποιημένη περιγραφή πολύπλοκων συστημάτων • Όταν η υλοποίηση του συστήματος γίνεται σε μιά αντικειμενοστραφή γλώσσα, οι κλάσεις καί οι συσχετίσεις τους μεταμορφώνονται απ’ ευθείας σε κώδικα προγραμματισμού.

  4. Αντικείμενα • Ένα αντικείμενο υπάρχει στον πραγματικό κόσμο (π.χ. Πελάτης) ή αντιστοιχεί στη θεώρηση που έχουμε γιά τον πραγματικό κόσμο (π.χ. Αντικείμενα που αναπαριστούν δομές δεδομένων: στοίβα, ουρά, κλπ.) • Τα αντικείμενα μπορεί να μην υπάρχουν απ’ ευθείας στον κόσμο (π.χ. Αντικείμενα υλοποίησης σ’ένα πρόγραμμα) – είναι παράγωγα της αντίληψής μας γιά τη συμπεριφορά καί τη δομή των αντικειμένων του πραγματικού κόσμου

  5. Κλάσεις • Μιά κλάση είναι μιά περιγραφή ενός τύπου αντικειμένου: περιγράφει τα χαρακτηριστικά καί τη συμπεριφορά του συγκεκριμένου τύπου αντικειμένου • Όλα τα αντικείμενα είναι στιγμιότυπα μιάς κλάσης • Η σχέση ενός αντικειμένου με μιά κλάση είναι παρόμοια με τη σχέση μιάς μεταβλητής με τον τύπο της μεταβλητής σε μιά γλώσσα προγραμματισμού

  6. Μοντελοποίηση συστημάτων • Χρήση εννοιών καί αντικειμένων από τον πραγματικό κόσμο -> κατανοήσιμα μοντέλα • Ένα σύστημα γιά μιά ασφαλιστική εταιρεία, πρέπει να χρησιμοποιεί αντικείμενα όπως: συμβόλαιο ασφάλειας ζωής, ασφαλιζόμενος • Ένα σύστημα γιά το στρατό πρέπει να χρησιμοποιεί αντικείμενα όπως: φαντάρος, όπλο, τανκς κλπ. • Η μοντελοποίηση πρέπει να βασίζεται στα κύρια αντικείμενα του συστήματος γιά να μπορεί εύκολα να αλλάζει • Τα μοντέλα πρέπει να είναι: κατανοήσιμα, να προσφέρονται γιά συζήτηση, εύκολα να πιστοποιηθούν καί εύκολα να συντηρηθούν

  7. Διαγράμματα Κλάσεων • Είναι τύπος στατικού μοντέλου • Περιγράφουν τη στατική άποψη ενός συστήματος με κλάσεις καί συσχετίσεις • Η διαφορά τους απ’ τα μοντέλα δεδομένων είναι ότι περιγράφουν καί συμπεριφορά • Αποτελούν τη βάση γιά άλλα διαγράμματα που δείχνουν άλλα χαρακτηριστικά του συστήματος • Μιά κλάση υλοποιείται απ’ ευθείας σε μιά αντικειμενοστραφή γλώσσα πού υποστηρίζει άμεσα τη δομή της κλάσης

  8. Διάγραμμα Κλάσεων(παράδειγμα) Ασφαλιστική εταιρεία 1 0..* 0..* Συμβόλαιο ασφάλειας (or) 0..* 1..* 1..* Άτομο Εταιρεία

  9. Διαγράμματα Αντικειμένων • Δείχνουν συσχετίσεις μεταξύ αντικειμένων (μπορούν να αναφέρονται σε συγκεκριμένο σενάριο) • Τα διαγράμματα κλάσεων δείχνουν μόνο τις κλάσεις (δηλαδή των τύπο των αντικειμένων)

  10. Διάγραμμα Αντικειμένων(παράδειγμα) Bob’s PC: Υπολογιστής Bob : Ιδιοκτήτης Name =‘Bob.j’ age = 32 Name =‘Dell 466 memory=64

  11. 2. Κλάσεις καί η Περιγραφή τους • Τι είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ • Ερωτήματα γιά την εύρεση Κλάσεων • Αναπαράσταση Κλάσης στην UML • Παραδείγματα Κλάσεων καί Αντικειμένων • Χαρακτηριστικά (attributes) Kλάσεων • Λειτουργίες (Μέθοδοι) Κλάσεων • Παραδείγματα

  12. Τί είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ (1/4); • Μιά κλάση είναι μιά περιγραφή ενός τύπου αντικειμένου: περιγράφει τα χαρακτηριστικά καί τη συμπεριφορά του συγκεκριμένου τύπου αντικειμένου • Όλα τα αντικείμενα είναι στιγμιότυπα μιάς κλάσης • Η σχέση ενός αντικειμένου με μιά κλάση είναι παρόμοια με τη σχέση μιάς μεταβλητής με τον τύπο της μεταβλητής σε μιά γλώσσα προγραμματισμού

  13. Τί είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ (2/4); • Οι κλάσεις χρησιμοποιούνται γιά τη μοντελοποίηση καί περιγραφή συστημάτων καί γιά την ταξινόμηση αντικειμένων που υπάρχουν στον πραγματικό κόσμο • Σκεφτείτε τον Δαρβίνο που χρησιμοποίησε κλάσεις γιά να περιγράψει το ανθρώπινο είδος • Γιά να περιγράψει τη θεωρία του περί εξέλιξης, ταξινόμησε τις κλάσεις σε ιεραρχίες • Η τεχνική της δημιουργίας ιεραρχίας υπάρχει καί στην αντικειμενοστραφή μοντελοποίηση καί προγραμματισμό

  14. Τί είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ (3/4); • Μιά κλάση μπορεί να περιγράφει αντικείμενα οποιουδήποτε συστήματος: πληροφοριακό σύστημα, επιχειρησιακό σύστημα, τεχνικό σύστημα, κατανεμημένο σύστημα, λογισμικό κλπ. • Παραδείγματα κλάσεων σε πληροφοριακά ή επιχειρησιακά συστήματα είναι: πελάτης, συμφωνία, τιμολόγιο, δελτίο αποστολής

  15. Τί είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ (4/4); • Παραδείγματα κλάσεων σε τεχνικά συστήματα: • sensor, display, I/O card, engine, button, control class • Παραδείγματα κλάσεων γιά system software: • file, executable program, device, icon, window, scrollbar

  16. Ερωτήματα γιά εύρεση κλάσεων • Υπάρχει πληροφορία που θα πρέπει να περιγραφεί, αναλυθεί ή αποθηκευτεί; • Υπάρχουν εξωτερικά συστήματα τα οποία αλληλεπιδρούν με το σύστημά μας ; • Υπάρχουν πρότυπα, βιβλιοθήκες κλάσεων ή άλλα συστατικά από προηγούμενες μελέτες; • Υπάρχουν περιφερειακά που πρέπει να διαχειριστεί το σύστημα ; • Ποιος είναι ο ρόλος των διαφόρων χρηστών στο σύστημα ;

  17. Αναπαράσταση κλάσης στη UML Name Attributes Operations

  18. ΠΑΡΑΔΕΙΓΜΑ ΚΛΑΣΗΣ και ΑΝΤΙΚΕΙΜΕΝΟΥ Name Αυτοκίνητο Attribute Operation αριθμ.πινακίδας μοντέλο ταχύτητα κατεύθυνση Αfro΄s car: Αυτοκίνητο YIX 5831 Renault Clio 140 km Βορειοδυτική Ξεκίνα Επιτάχυνε Φρέναρε

  19. Χαρακτηριστικά (attributes) κλάσεων • H γενική περιγραφή ενός χαρακτηριστικούείναι : ορατότητα όνομα : τύπος=αρχική τιμή {property string} π.χ. +κατάσταση: Κατάσταση = απλήρωτο {απλήρωτο, πληρωμένο} • Μόνο το όνομα καί ο τύπος είναι υποχρεωτικά (αν η ανάπτυξη γίνει σε γλώσσα που δεν υποστηρίζει τύπους, ούτε ο τύπος είναι υποχρεωτικός) • Τύπος:Μπορεί να είναι πρωταρχικός τύπος όπως ακέραιος, πραγματικός, boolean, κ.λ.π. Μπορεί να είναι μιά κλάση αντικειμένων • Ορατότητα: Περιγράφει αν το χαρακτηριστικό είναι ορατό και αν μπορούν να αναφερθούν σε αυτό άλλες κλάσεις, εκτός από αυτή στην οποία ορίζεται (- + #). • Χαρακτηριστικό κλάσης: • Αφορά την κλάση καί όχι κάποιο συγκεκριμένο αντικείμενο. Η τιμή του είναι κοινή για όλα τα αντικείμενα. Υφίσταται χωρίς να υπάρχουν στιγμιότυπα της κλάσης. Δηλώνεται με υπογράμμιση. (Η UML παρέχει τη δυνατότητα να δηλώσουμε άν το χαρακτηριστικό παράγεται από άλλα χαρακτηριστικά ή άν είναι προαιρετικό)

  20. Μια κλάση με ιδωτικά, δημόσια ιδιοχαρακτηριστικάκαι εξ ορισμού τιμές (παράδειγμα) Τιμολόγιο + ποσό: Πραγματικός + ημερομηνία: Ημερομηνία=Τρέχουσα + πελάτης : Συμβολοσειρά - διοικητής:Συμβολοσειρά=‘Ανειδίκευτος’ Το σύμβολο μείον σημαίνει ότι το χαρακτηριστικό είναι ιδιωτικό (private), δηλαδή δεν μπορεί να χρησιμοποιηθεί και δεν είναι ορατό από άλλες κλάσεις. Το αντίθετο υποδηλώνει το σύμβολο συν το οποίο προσδιορίζει δημόσιο (public) χαρακτηριστικό. Το σύμβολο # δηλώνει ότι το χαρακτηριστικό είναι προστατευόμενο (protected).

  21. Μια κλάση με χαρακτηριστικό κλάσης(class attribute) Τιμολόγιο + ποσό: Πραγματικός + ημερομηνία: Hμερομηνία = Τρέχουσα Ημερ. + πελάτης: Συμβολοσειρά - διοικητής: Συμβολοσειρά = ‘Ανειδίκευτος’ - αριθμός τιμολογίων : Ακέραιος Το χαρακτηριστικό αριθμός τιμολογίων χρησιμοποιείται για να μετρήσει το πλήθος των τιμολογίων. Η τιμή αυτού του χαρακτηριστικού είναι κοινή για όλα τα αντικείμενα και υπάρχει και όταν δεν υπάρχει στιγμιότυπο της κλάσης (είναι 0).

  22. Τιμολόγιο + ποσό: Πραγματικός + ημερομηνία: Hμερομηνία =Τρέχουσα Ημερομηνία + πελάτης: Συμβολοσειρά - διοικητής: Συμβολοσειρά = ‘Ανειδίκευτος’ - αριθμός τιμολογίων: Ακέραιος +κατάσταση: Κατάσταση = απλήρωτο {απλήρωτο, πληρωμένο} Μια κλάση με property string(συμβολοσειρά ιδιοτήτων)

  23. Mέθοδοι (Λειτουργίες) κλάσεων • Οι μέθοδοι χρησιμοποιούνται για να διαχειριζόμαστε τα χαρακτηριστικά ή να εκτελούμε συγκεκριμένες ενέργειες. • Η γενική περιγραφή μιας μεθόδου (υπογραφή της μεθόδου) είναι : ορατότητα όνομα (λίστα παραμέτρων): τύπος επιστροφής {property string} • Οι μέθοδοι περιγράφουν τι υπηρεσίες προσφέρει η κάθε κλάση και κάποιες από αυτές παρέχουν την κατάλληλη διασύνδεση. • Οι μέθοδοι μπορούν: • Να παίρνουν πληροφορίες • Nα ενημερώνουν • Να κάνουν κάποιες ενέργειες πάνω στο αντικείμενο ή/καί να καλούν άλλα αντικείμενα

  24. Παράδειγμα κλάσης με διάφορες μεθόδους Αυτοκίνητο +αρ.πινακίδας : Συμβολοσειρά - δεδομένα : Δεδομένα_Αυτοκινήτου + ταχύτητα : Ακέραιος + κατεύθυνση : Κατεύθυνση + οδήγησε (ταχύτητα : ακέραιος, κατεύθυνση : Κατεύθυνση) + πάρε_Δεδομένα ( ) : Δεδομένα_Αυτοκινήτου Η μέθοδος οδήγησε δέχεται δύο παραμέτρους, ταχύτητα και κατεύθυνση. Η μέθοδος πάρε_Δεδομένα έχει έναν τύπο επιστροφής, Δεδομένα_Αυτοκινήτου.

  25. Παράδειγμα κλάσης με μέθοδο κλάσης Σχήμα μέγεθος: Μέγεθος θέση: Θέση μετρητήςΣχημάτων: Ακέραιος σχεδίασε() διάβασεΜετρητή(): Ακέραιος

  26. Παράδειγμα κλάσης με εξ ορισμού τιμές στις παραμέτρους των λειτουργιών Figure size: Size pos: Position + draw () + resize(percentX :Integer =25; percentY :Integer=25) + returnPos() : Position Call figure.resize(10,10) percentX=10, percentY=10 figure.resize(37) percentX=37, percentY =25 figure.resize ( ) percentX=25, percentY = 25

  27. 3. Σχέσεις μεταξύ Κλάσεων 3.0 Ορισμοί 3.1 Συσχέτιση (Association) 3.2 Γενίκευση (Generalization) 3.3 Εξάρτηση (Dependency) 3.4 Ανάλυση/Εκλέπτυνση (Refinement)

  28. 3.0 Ορισμοί • Συσχέτιση (association) : είναι μια σημασιολογική σχέση μεταξύ των αντικειμένων δύο ή περισσότερων κλάσεων. • Γενίκευση (generalization) : είναι η σχέση ανάμεσα σ’ένα πιο γενικό και σ’ένα πιο εξειδικευμένο στοιχείο.Το ειδικό στοιχείο θα πρέπει να περιέχει μόνο επιπρόσθετες πληροφορίες. • Εξάρτηση (dependency) : σχέση ανάμεσα σε ανεξάρτητο κι εξαρτημένο στοιχείο.Μια ενδεχόμενη αλλαγή στο ανεξάρτητο στοιχείο θα επηρεάσει το εξαρτημένο στοιχείο. • Εκλέπτυνση/Ανάλυση (refinement) : σχέση ανάμεσα σε δύο περιγραφές του ίδιου πράγματος , αλλά σε διαφορετικό επίπεδο ανάλυσης.

  29. 3.1 Συσχετίσεις (Αssocations)EIΔΗ ΣΥΣΧΕΤΙΣΕΩΝ • Κανονική Συσχέτιση (Normal Association) • Αναδρομική Συσχέτιση (Recursive Association) • Προσδιορίσιμη Συσχέτιση (Qualified Association) • Συσχέτιση Διάζευξης (OR-Assocation) • Ταξινομημένη Συσχέτιση (Ordered Association) • Tριαδική ή Ν-αδική Συσχέτιση (Τernary or N-ary Association) • Kλάση συσχέτισης (Association Class) • Συναθροίσεις (ειδική περίπτωση συσχέτισης) • Kανονική Συνάθροιση (Normal Aggregation) • Διαμοιραζόμενη ή Ασθενής Συνάθροιση (Shared or Weak Aggregation) • Συνάθροιση Σύνθεσης (Composition Aggregation)

  30. ΚΑΝΟΝΙΚΗ ΣΥΣΧΕΤΙΣΗ (Normal association) Άτομο 1..* κατέχει 0..* Αυτοκίνητο κατέχεται από Ένα άτομο κατέχει πολλά (από μηδέν εως πολλά) αυτοκίνητα. Ένα αυτοκίνητο ανήκει σε πολλά (ένα ή πολλά ) άτομα. Χαρακτηριστικό σε μια σύνδεση αποτελεί η πολλαπλότηταδηλαδή ο αριθμός που δηλώνει το πλήθος των αντικειμένων που συνδέονται

  31. Αναπαράσταση Συσχετίσεων • Συσχετίσεις μεταξύ κλάσεων • όνομα συσχέτισης (προαιρετικό) • το βέλος πάνω από κάθε ακμή δηλώνει την κατεύθυνση ανάγνωσης (προαιρετικό) • το βέλος στο τέλος μίας ακμής δηλώνει κατεύθυνση πλοήγησης (προαιρετικό) • κάθε άκρο της συσχέτισης προσδιορίζεται από την πολλαπλότητα (multiplicity) • για δυαδικές συσχετίσεις, η πολλαπλότητα στο τελικό άκρο δηλώνει πόσα αντικείμενα της τελικής κλάσης μπορούν να συσχετιστούν με ένα αντικείμενο του άλλου (πηγαίου) άκρου • Συσχετίσεις μεταξύ αντικειμένων • αναπαριστούν ένα στιγμιότυπο της συσχέτισης

  32. Πολλαπλότητα (Multiplicity) Συσχετίσεων • Ένας οποιοσδήποτε αριθμός “*” • Ένα εύρος που καθορίζεται από το “..” • Πιθανοί αριθμοί που διαχωρίζονται με κόμμα Το default είναι 1. Ακριβώς Ένα: 1  0: * ή (0..*) 0  1: 0..1 σταθερός αριθμός (π.χ. 3): 3 εύρος (π.χ. 3 ή περισσότερα): 3..* εύρος (π.χ. 3 έως και 6): 3..6 απαρίθμηση (π.χ. 3,6,7,8,9): 3,6..9

  33. ΔΙΑΓΡΑΜΜΑ ΚΛΑΣΕΩΝ (παράδειγμα) Πολιτική ασφάλισης 1..* 0..1 έχει Εκφράζεται σ’ένα Αναφέρεται σε εκφράζει 1 1 Ασφαλιστική εταιρεία Συμβόλαιο ασφάλισης Πελάτης 1 0..* έχει 0..* έχει 1..* Αναφέρεται σε Αναφέρεται σε

  34. ΔΙΑΓΡΑΜΜΑ ΚΛΑΣΕΩΝ ΚΑΙ ΔΙΑΓΡΑΜΜΑ ΑΝΤΙΚΕΙΜΕΝΩΝ (παράδειγμα) Υπολογιστής Ιδιοκτήτης χρησιμοποιεί Name : String memory: Integer Name : string age : Integer 0..* 1..* Bob’s PC: Υπολογιστής Bob : Ιδιοκτήτης Name =‘Bob.j’ age = 32 Name =‘Dell 466 memory=64 Ένα διάγραμμα αντικειμένων περιγράφει τα στιγμιότυπα των κλάσεων

  35. Αναδρομική συσχέτιση (recursive association) Υπάρχει η δυνατότητα συσχέτισης μιάς κλάσης με τον εαυτό της. Αποτελεί κι αυτή μιά σημασιολογική σύνδεση,μεταξύ όμως αντικειμένων της ίδιας κλάσης Κόμβος * * Συνδέει

  36. Μετατροπή συσχέτισης από Μ:Ν σε δύο 1:Μ συσχετίσεις * * A B Μπορεί να μετατραπεί 1 * * 1 C Α B Σε μερικές γλώσσες δεν είναι δυνατή η απ’ευθείας υλοποίηση μιάς συσχέτισης Μ:N. Σε τέτοια περίπτωση, μετατρέπουμε τη συσχέτιση από M:Ν σε δύο 1:Μ

  37. Ρόλοι σε μιά συσχέτιση Αυτοκίνητο Άτομο οδηγεί * * Αυτοκίνητο εταιρείας οδηγός Ένα άτομο παίζει το ρόλο ενός οδηγού κι ένα αυτοκίνητο παίζει το ρόλο του αυτοκινήτου εταιρείας στα πλαίσια της συσχέτισης μεταξύ των αντίστοιχων κλάσεων. Ένα αυτοκίνητο μπορεί να παίζει κι άλλους ρόλους όπως το ρόλο του ασθενοφόρου, αυτοκινήτου αστυνομίας κτλ. Οι ρόλοι αφορούν τις συσχετίσεις καί είναι προεραιτικοί. Δεν αποτελούν μέρος των κλάσεων.

  38. Παραδειγμα στο οποίο οι ρόλοι μπορεί να μην είναι εφαρμόσιμοι Άτομο Η Σύζυγος Ο Σύζυγος παντρεύεται Ο άντρας παντρεύεται μια γυναίκα. Τόσο ο άντρας όσο κι η γυναίκα είναι άτομα. Αν κάποιο άτομο δεν είναι παντρεμένο τότε δεν μπορεί να παίξει το ρόλο του συζύγου ή της συζύγου, που σημαίνει ότι η συσχέτιση «παντρεύεται» δεν είναι εφαρμόσιμη γι’ αυτό το άτομο.

  39. ΠΡΟΣΔΙΟΡΙΣΙΜΗ ΣΥΣΧΕΤΙΣΗ (Qualified Association) Canvas Figure * Figure.id προσδιοριστής • Ο προσδιοριστής είναι ένα ή περισσότερα χαρακτηριστικά της κλάσης • οι τιμές των οποίων δημιουργούν ξένες μεταξύ τους ομάδες στη σχετιζόμενη κλάση • τις περισσότερες φορές μειώνουν την πολλαπλότητα σε 1 • Χρησιμοποιείται σε συσχετίσεις 1:Μ ή Ν:Μ καί ουσιαστικά μετατρέπει τη συσχέτιση σε 1:1

  40. ΣΥΣΧΕΤΙΣΗ ΔΙΑΖΕΥΞΗΣ (OR-Association) Ασφαλιστική εταιρεία 1 0..* 0..* Συμβόλαιο ασφάλειας {or} 0..* 1..* 1..* Άτομο Εταιρεία • Η συσχέτιση διάζευξης: • θέτει περιορισμό σε δύο ή περισσότερες συσχετίσεις • εξασφαλίζει ότι μόνο μια από τις συσχετίσεις • είναι έγκυρη κάθε φορά

  41. ΤΑΞΙΝΟΜΗΜΕΝΗ ΣΥΣΧΕΤΙΣΗ (Οrdered Association) Συμβόλαιο Ασφάλειας 0..* {ταξινομημένο κατά αύξουσα σειρά χρόνου} 1..* Πελάτης Πολλές φορές είναι απαραίτητο να προσδιορισθεί κάποια συγκεκριμένη σειρά ανάμεσα στ’αντικείμενα. Αυτό φανερώνεται τοποθετώντας {ταξινομημένο } ανάμεσα στους συνδέσμους, και κοντά στην κλάση του αντικειμένου που Ταξινομείται. Το default είναι μη ταξινομημένο.

  42. ΚΛΑΣΗ ΣΥΣΧΕΤΙΣΗΣ (1/3) (Association class) Ουρά 4 Έλεγχος ανελκυστήρα ανελκυστήρας * Κουμπί Η κλάση συσχέτισης Ουρά μπορεί να επεκταθεί με διάφορες λειτουργίες όπως πρόσθεση αιτήσεων στην ουρά,ανάγνωση και μετακίνηση μηνυμάτων από την ουρά. Αν προστίθενται λειτουργίες ή γνωρίσματα στην κλάση συσχέτισης, αυτά αναπαρίστανται όπως σε μια κανονική κλάση

  43. ΚΛΑΣΗ ΣΥΣΧΕΤΙΣΗΣ (2/3)(Association class) • Απαραίτητη σε περιπτώσεις συσχετίσεων M:N • Αυξάνει την ευελιξία σε περίπτωση συσχετίσεων 1:1 και 1:N 1..* Participation * User Appointment isRelocatable 1 * Company Person name address name socSec# address loan position Employment loan position

  44. 1 1 Project Person * * Employment qualificationProfile hours dailyRate ΚΛΑΣΗ ΣΥΣΧΕΤΙΣΗΣ (3/3)(Association class) ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ  ΚΛΑΣΗ ΣΥΣΧΕΤΙΣΗΣ * * Project Person Employment Κάποιος μπορεί να έχει πάνω από μία σχέσεις employmentγια το ίδιοproject. qualificationProfile hours dailyRate

  45. TΡΙΑΔΙΚΗ ΣΥΣΧΕΤΙΣΗ (Ternary association) 0..* 1 Ασφαλιστική εταιρεία Συμβόλαιο ασφάλισης ασφαλιστής 0..* 0..1 Πολιτική ασφάλισης 1..* ασφαλιζόμενος Πελάτης Η τριαδική (Ν-αδική) συσχέτιση συσχετίζει τρεις (ή Ν) κλάσεις. Όπως φαίνεται από το σχήμα ο πελάτης μπορεί να έχει μηδέν εως πολλά συμβόλαια ασφάλισης, κάθε ένα από τα οποία έχει μηδέν εως μία πολιτική ασφάλισης και σχετίζεται με μια ασφαλιστική εταιρεία.

  46. ΣΥΝΑΘΡΟΙΣΗ (ΑGGREGATION) • Η συνάθροιση είναι μία ειδική περίπτωση συσχέτισης με • τις ακόλουθες ιδιότητες: • Μεταβατικότητα: Αν τα αντικείμενα της κλάσης C • είναι part-of των αντικειμένων της κλάσης B • και η B είναι part-of Α ΤΟΤΕ η C είναι part-of Α • Αντι-συμμετρικότητα: Αν η Β είναι part-of Α • ΤΟΤΕ η Α δεν είναι part-of B

  47. ΚΑΝΟΝΙΚΗ ΣΥΝΑΘΡΟΙΣΗ (NORMAL AGGREGATION) Στόλος Πολεμικά πλοία * περιέχει H συνάθροιση εκφράζεται με τις λέξεις “Περιέχει”, “Αποτελείται-από” ή “Είναι μέρος του (part of)” Ο στόλος αποτελείται από πολλά πλοία. Ορισμένα πλοία μπορούν να μετακινηθούν, ο στόλος όμως εξακολουθεί να υφίσταται. Όπως το ίδιο συμβαίνει κι αν προσθέσουμε κάποια πλοία. Τα τμήματα (πλοία) συνθέτουν το σύνολο (στόλος). Τα τμήματα υπάρχουν, έστω κι άν το σύνολο καταστραφεί.

  48. ΔΙΑΜΟΙΡΑΖΟΜΕΝΗ ΣΥΝΑΘΡΟΙΣΗ (SHARED AGGREGATION) * Ομάδα * Άτομο Αποτελείται από Mία συνάθροιση είναι διαμοιραζόμενη, αν η πολλαπλότητα στο μέρος του όλου είναι παραπάνω από 1. Τα μέρη είναι ανεξάρτητα του όλου καί μπορούν να αποτελούν μέρη καί άλλων αντικειμένων του ίδιου τύπου. Το παραπάνω μοντέλο αποτελεί ένα παράδειγμα διαμοιραζόμενης συνάθροισης, όπου τα άτομα είναι τα διαμοιραζόμενα μέρη. Μια ομάδα αποτελείται από διάφορα μέλη. Ένα άτομο μπορεί να είναι μέλος πολλών ομάδων. Yλοποιείται όπως καί η συσχέτιση, δηλαδή με κάποιο reference από το μέρος στο όλον.

  49. ΣΥΝΑΘΡΟΙΣΗ ΣΥΝΘΕΣΗΣ(Composition Aggregation) • Παρουσιάζει ισχυρή ιδιοκτησία των τμημάτων της • Τα τμήματα που «ζουν» μέσα στο σύνολο θα καταστραφούν , όταν καταστραφεί και το σύνολο • Η πολλαπλότητα στην πλευρά του συνόλου (wholeside) πρέπει να είναι 0..1 , ενώ η πολλαπλότητα στην πλευρά τμήματος (partside) είναι οποιοδήποτε διάστημα

  50. ΣΥΝΑΘΡΟΙΣΗ ΣΥΝΘΕΣΗΣ (Composition Aggregation) 1ος τρόπος απεικόνισης Κείμενο * Παράθυρο * Κουμπί * Μενού Το διαμάντι δείχνει τη συνάθροιση σύνθεσης.Το παράθυρο περιέχει πολλά μενού, κουμπιά και κείμενα.Όλοι οι τύποι της συνάθροισης μπορούν να έχουν ένα όνομα.

More Related