Τύποι σχέσεων UML: συσχέτιση, εξάρτηση, γενίκευση
Τι είναι η σχέση UML;
Σχέσεις στο UML χρησιμοποιούνται για να αναπαραστήσουν μια σύνδεση μεταξύ δομικών, συμπεριφορικών ή ομαδοποιητικών πραγμάτων. Ονομάζεται επίσης σύνδεσμος που περιγράφει πώς δύο ή περισσότερα πράγματα μπορούν να σχετίζονται μεταξύ τους κατά την εκτέλεση ενός συστήματος. Ο τύπος της σχέσης UML είναι συσχέτιση, εξάρτηση, γενίκευση και πραγματοποίηση.
Ας τα μελετήσουμε αναλυτικά
Τύποι σχέσεων διαγραμμάτων κατηγορίας UML
Σχέση
Είναι ένα σύνολο συνδέσμων που συνδέει στοιχεία του μοντέλου UML. Καθορίζει επίσης πόσα αντικείμενα συμμετέχουν σε αυτή τη σχέση.
Εξάρτηση
Σε μια σχέση εξάρτησης, όπως υποδηλώνει το όνομα, δύο ή περισσότερα στοιχεία εξαρτώνται το ένα από το άλλο. Σε αυτό το είδος μιας σχέσης, εάν κάνουμε μια αλλαγή σε ένα συγκεκριμένο στοιχείο, τότε είναι πιθανό ότι όλα τα άλλα στοιχεία θα επηρεαστούν επίσης από την αλλαγή.
Γενίκευση
Λέγεται και σχέση γονέα-παιδιού. Σε γενίκευση, ένα στοιχείο είναι εξειδίκευση μιας άλλης γενικής συνιστώσας. Μπορεί να αντικατασταθεί. Χρησιμοποιείται κυρίως για την αντιπροσώπευση της κληρονομιάς.
Πραγματοποίηση
Σε μια σχέση υλοποίησης του UML, μια οντότητα υποδηλώνει κάποια ευθύνη που δεν υλοποιείται από μόνη της και η άλλη οντότητα που τις υλοποιεί. Αυτή η σχέση εντοπίζεται κυρίως στην περίπτωση του διεπαφές.
Σχέση
Είναι μια δομική σχέση που αναπαριστά αντικείμενα που μπορούν να συνδεθούν ή να συσχετιστούν με ένα άλλο αντικείμενο μέσα στο σύστημα. Οι ακόλουθοι περιορισμοί μπορούν να εφαρμοστούν στη σχέση συσχέτισης.
- {σιωπηρή} – Οι σιωπηροί περιορισμοί προσδιορίζουν ότι η σχέση δεν είναι εμφανής. βασίζεται σε μια έννοια.
- {διέταξε} – Οι διατεταγμένοι περιορισμοί καθορίζουν ότι το σύνολο των αντικειμένων στο ένα άκρο μιας συσχέτισης είναι με συγκεκριμένο τρόπο.
- {μεταβλητός} – Ο μεταβλητός περιορισμός καθορίζει ότι η σύνδεση μεταξύ διαφόρων αντικειμένων στο σύστημα μπορεί να προστεθεί, να αφαιρεθεί και να τροποποιηθεί σύμφωνα με τις απαιτήσεις.
- {addOnly} – Καθορίζει ότι οι νέες συνδέσεις μπορούν να προστεθούν από ένα αντικείμενο που βρίσκεται στο άλλο άκρο μιας συσχέτισης.
- {παγωμένος} – Καθορίζει ότι όταν ένας σύνδεσμος προστίθεται μεταξύ δύο αντικειμένων, τότε δεν μπορεί να τροποποιηθεί ενώ ο παγωμένος περιορισμός είναι ενεργός στη δεδομένη σύνδεση ή σε μια σύνδεση.
Μπορούμε επίσης να δημιουργήσουμε μια κλάση που έχει ιδιότητες συσχέτισης. ονομάζεται κλάση συσχέτισης.
Ανακλαστικός συσχετισμός
Ο αντανακλαστικός συσχετισμός είναι ένας υποτύπος σχέσης συσχέτισης στο UML. Σε έναν αντανακλαστικό συσχετισμό, τα στιγμιότυπα της ίδιας τάξης μπορούν να σχετίζονται μεταξύ τους. Ένα στιγμιότυπο μιας κλάσης λέγεται επίσης ότι είναι ένα αντικείμενο.
Ο αντανακλαστικός συσχετισμός δηλώνει ότι ένας σύνδεσμος ή μια σύνδεση μπορεί να υπάρχει μέσα στα αντικείμενα της ίδιας κλάσης.
Ας εξετάσουμε ένα παράδειγμα φρούτου τάξης. Η κατηγορία φρούτων έχει δύο περιπτώσεις, όπως το μάνγκο και το μήλο. Ο αντανακλαστικός συσχετισμός δηλώνει ότι μια σύνδεση μεταξύ μάνγκο και μήλου μπορεί να υπάρχει καθώς πρόκειται για περιπτώσεις της ίδιας κατηγορίας, όπως τα φρούτα.
Κατευθυνόμενος σύλλογος
Όπως υποδηλώνει το όνομα, η κατευθυνόμενη συσχέτιση σχετίζεται με την κατεύθυνση της ροής εντός των κλάσεων συσχέτισης.
Σε έναν κατευθυνόμενο συσχετισμό, η ροή κατευθύνεται. Η συσχέτιση από τη μια κλάση στην άλλη κλάση ρέει προς μία μόνο κατεύθυνση.
Συμβολίζεται χρησιμοποιώντας μια συμπαγή γραμμή με αιχμή βέλους.
Παράδειγμα:
Μπορείτε να πείτε ότι υπάρχει μια κατευθυνόμενη σχέση συσχέτισης μεταξύ ενός διακομιστή και ενός πελάτη. Ένας διακομιστής μπορεί να επεξεργαστεί τα αιτήματα ενός πελάτη. Αυτή η ροή είναι μονής κατεύθυνσης, που ρέει μόνο από διακομιστή σε πελάτη. Ως εκ τούτου, μια κατευθυνόμενη σχέση συσχέτισης μπορεί να υπάρχει σε διακομιστές και πελάτες ενός συστήματος.
Εξάρτηση
Χρησιμοποιώντας μια σχέση εξάρτησης στο UML, μπορεί κανείς να συσχετίσει πώς διάφορα πράγματα μέσα σε ένα συγκεκριμένο σύστημα εξαρτώνται το ένα από το άλλο. Η εξάρτηση χρησιμοποιείται για να περιγράψει τη σχέση μεταξύ διαφόρων στοιχείων στο UML που εξαρτώνται το ένα από το άλλο.
Στερεότυπα
- "δένω" – Το Bind είναι ένας περιορισμός που προσδιορίζει ότι η πηγή μπορεί να προετοιμάσει το πρότυπο σε μια θέση προορισμού, χρησιμοποιώντας παρεχόμενες παραμέτρους ή τιμές.
- "αντλώ" – Αντιπροσωπεύει ότι η θέση ενός αντικειμένου πηγής μπορεί να υπολογιστεί από το αντικείμενο προορισμού.
- «φίλος» – Καθορίζει ότι η πηγή έχει μοναδική ορατότητα στο αντικείμενο-στόχο.
- «παράδειγμα» – Καθορίζει ότι η παρουσία ενός ταξινομητή στόχου είναι το αντικείμενο προέλευσης.
- «στιγμιαίο» – Καθορίζει ότι το αντικείμενο προέλευσης είναι ικανό να δημιουργεί στιγμιότυπα ενός αντικειμένου στόχου.
- "διυλίζω" – Καθορίζει ότι το αντικείμενο προέλευσης έχει εξαιρετική αφαίρεση από αυτό του αντικειμένου στόχου.
- "χρήση" – Χρησιμοποιείται όταν δημιουργούνται πακέτα σε UML. Το στερεότυπο χρήσης περιγράφει ότι τα στοιχεία ενός πακέτου πηγής μπορούν να υπάρχουν και μέσα στο πακέτο προορισμού. Περιγράφει ότι το πακέτο προέλευσης χρησιμοποιεί ορισμένα στοιχεία ενός πακέτου προορισμού.
- "υποκατάστατο" – καθορίζει ότι ο πελάτης μπορεί να αντικατασταθεί από τον προμηθευτή κατά το χρόνο εκτέλεσης.
- "πρόσβαση" – Καθορίζει ότι το πακέτο προέλευσης έχει πρόσβαση στα στοιχεία του πακέτου προορισμού που ονομάζεται και ιδιωτική συγχώνευση.
- "Εισαγωγή" – Καθορίζει ότι ο στόχος μπορεί να εισαγάγει το στοιχείο ενός πακέτου πηγής όπως ορίζεται μέσα στο στόχος που ονομάζεται επίσης δημόσια συγχώνευση.
- "άδεια" – καθορίζει ότι το στοιχείο πηγής έχει πρόσβαση στο στοιχείο προμηθευτή, ανεξάρτητα από τη δηλωμένη ορατότητα του προμηθευτή.
- "επεκτείνω" – Σας βοηθά να καθορίσετε ότι ο στόχος μπορεί να επεκτείνει τη συμπεριφορά του στοιχείου προέλευσης.
- "περιλαμβάνω" – Σας επιτρέπει να καθορίσετε το στοιχείο προέλευσης στο οποίο μπορεί να συμπεριληφθεί η συμπεριφορά ενός άλλου στοιχείου σε μια καθορισμένη θέση. (το ίδιο με μια κλήση συνάρτησης στο c/c++)
- "γίνομαι" – Καθορίζει ότι ο στόχος είναι παρόμοιος με την πηγή με διαφορετικές τιμές και ρόλους.
- "κλήση" – Καθορίζει ότι η πηγή μπορεί να καλέσει μια μέθοδο αντικειμένου στόχου.
- "Αντίγραφο" – Καθορίζει ότι το αντικείμενο-στόχος είναι ανεξάρτητο, αντίγραφο ενός αντικειμένου προέλευσης.
- «παράμετρος» – η προμηθευτής είναι μια παράμετρος των λειτουργιών του πελάτη.
- "στείλετε" - ο πελάτης είναι μια λειτουργία που στέλνει στον προμηθευτή κάποιο απροσδιόριστο στόχο.
Στερεότυπα ανάμεσα στην κρατική μηχανή
- "στείλετε" – Καθορίζει ότι η λειτουργία προέλευσης στέλνει το συμβάν προορισμού.
Γενίκευση
Είναι μια σχέση μεταξύ μιας γενικής οντότητας και μιας μοναδικής οντότητας που υπάρχει μέσα στο σύστημα.
Σε μια σχέση γενίκευσης, καλείται η αντικειμενοστραφής έννοια κληρονομία μπορεί να εφαρμοστεί. Υπάρχει μια σχέση γενίκευσης μεταξύ δύο αντικειμένων, που ονομάζονται επίσης οντότητες ή πράγματα. Σε μια σχέση γενίκευσης, μια οντότητα είναι γονέας και μια άλλη λέγεται ότι είναι παιδί. Αυτές οι οντότητες μπορούν να αναπαρασταθούν χρησιμοποιώντας κληρονομικότητα.
Στην κληρονομικότητα, ένα παιδί οποιουδήποτε γονέα μπορεί να έχει πρόσβαση, να ενημερώσει ή να κληρονομήσει τη λειτουργικότητα όπως καθορίζεται μέσα στο γονικό αντικείμενο. Ένα θυγατρικό αντικείμενο μπορεί να προσθέσει τη λειτουργικότητά του στον εαυτό του καθώς και να κληρονομήσει τη δομή και τη συμπεριφορά ενός γονικού αντικειμένου.
Αυτός ο τύπος σχέσης συλλογικά γνωστός ως σχέση γενίκευσης.
Τα στερεότυπα και οι περιορισμοί τους
- "εκτέλεση" – Αυτό το στερεότυπο χρησιμοποιείται για να αναπαραστήσει ότι η θυγατρική οντότητα υλοποιείται από τη μητρική οντότητα κληρονομώντας τη δομή και τη συμπεριφορά ενός γονικού αντικειμένου χωρίς να παραβιάζονται οι κανόνες.Σημείωση Αυτό το στερεότυπο αν χρησιμοποιείται ευρέως σε ένα μόνο κληρονομία.
Η σχέση γενίκευσης περιέχει περιορισμούς όπως πλήρης, ελλιπής για να ελεγχθεί εάν όλες οι θυγατρικές οντότητες περιλαμβάνονται στη σχέση ή όχι.
Πραγματοποίηση
Σε μια σχέση υλοποίησης του UML, μια οντότητα υποδηλώνει κάποια ευθύνη που δεν υλοποιείται από μόνη της και η άλλη οντότητα που τις υλοποιεί. Αυτή η σχέση εντοπίζεται κυρίως στην περίπτωση του διεπαφές.
Η πραγματοποίηση μπορεί να αναπαρασταθεί με δύο τρόπους:
- Χρησιμοποιώντας ένα κανονική μορφή
- Χρησιμοποιώντας ένα ολισθηρή μορφή
Στο παραπάνω διάγραμμα, οι επιχειρηματικοί κανόνες λογαριασμού πραγματοποιούν τη διεπαφή IRuleAgent.
Τύποι πραγματοποίησης
- Κανονική μορφή Σε μια σχέση υλοποίησης του UML, η κανονική μορφή χρησιμοποιείται για την υλοποίηση διεπαφών σε όλο το σύστημα. Χρησιμοποιεί ένα στερεότυπο διεπαφής για τη δημιουργία μιας διεπαφής και η σχέση υλοποίησης χρησιμοποιείται για την υλοποίηση της συγκεκριμένης διεπαφής. Σε μια κανονική μορφή, η σχέση πραγματοποίησης συμβολίζεται χρησιμοποιώντας τη διακεκομμένη κατευθυνόμενη γραμμή με μια αρκετά ανοιχτή αιχμή βέλους. Στο παραπάνω διάγραμμα, η διεπαφή Iruleagent πραγματοποιείται χρησιμοποιώντας ένα αντικείμενο που ονομάζεται Επιχειρηματικοί Κανόνες Λογαριασμού.
- Elided μορφή Realization in the Διάγραμμα κλάσης UML μπορεί επίσης να παρουσιαστεί χρησιμοποιώντας μια διαγραμμένη φόρμα. Σε διακεκομμένη μορφή, η διεπαφή συμβολίζεται χρησιμοποιώντας έναν κύκλο που ονομάζεται επίσης συμβολισμός γλειφιτζούρι. Αυτή η διασύνδεση, όταν υλοποιείται χρησιμοποιώντας οτιδήποτε υπάρχει μέσα στο σύστημα, δημιουργεί μια απολεσθείσα δομή. Στο παραπάνω διάγραμμα, η διεπαφή Iruleagent υποδηλώνεται χρησιμοποιώντας μια διακεκομμένη μορφή που υλοποιείται από το acctrule.dll.
Σύνθεση
Δεν είναι μια τυπική σχέση UML, αλλά εξακολουθεί να χρησιμοποιείται σε διάφορες εφαρμογές.
Η σύνθετη συνάθροιση είναι ένας υποτύπος σχέσης συγκέντρωσης με χαρακτηριστικά όπως:
- είναι μια αμφίδρομη σύνδεση μεταξύ των αντικειμένων.
- Είναι μια σχέση ολόκληρου/μερικού.
- Εάν διαγραφεί ένα σύνθετο, όλα τα άλλα μέρη που σχετίζονται με αυτό διαγράφονται.
Η σύνθετη συσσώρευση περιγράφεται ως μια δυαδική ένωση διακοσμημένη με ένα γεμάτο μαύρο διαμάντι στο αθροιστικό (ολόκληρο) άκρο.
Ένας φάκελος είναι μια δομή που περιέχει n αριθμό αρχείων σε αυτόν. Ένας φάκελος χρησιμοποιείται για την αποθήκευση των αρχείων μέσα σε αυτόν. Κάθε φάκελος μπορεί να συσχετιστεί με οποιονδήποτε αριθμό αρχείων. Σε ένα σύστημα υπολογιστή, κάθε αρχείο είναι μέρος τουλάχιστον ενός φακέλου μέσα στο σύστημα οργάνωσης αρχείων. Το ίδιο αρχείο μπορεί επίσης να είναι μέρος ενός άλλου φακέλου, αλλά δεν είναι υποχρεωτικό. Κάθε φορά που ένα αρχείο αφαιρείται από το φάκελο, ο φάκελος παραμένει ανεπηρέαστος ενώ τα δεδομένα που σχετίζονται με το συγκεκριμένο αρχείο καταστρέφονται. Εάν εκτελεστεί μια λειτουργία διαγραφής στο φάκελο, τότε επηρεάζει επίσης όλα τα αρχεία που υπάρχουν μέσα στο φάκελο. Όλα τα αρχεία που σχετίζονται με το φάκελο καταστρέφονται αυτόματα μόλις αφαιρεθεί ο φάκελος από το σύστημα.
Αυτός ο τύπος σχέσης στο UML είναι γνωστός με τη σχέση σύνθετης συνάθροισης.
Συσσωμάτωση
An συσσωμάτωση είναι ένας υποτύπος μιας σχέσης συσχέτισης στο UML. Η συγκέντρωση και η σύνθεση είναι και οι δύο τύποι σχέσης συσχέτισης στο UML. Μια σχέση συνάθροισης μπορεί να περιγραφεί με απλά λόγια ως «ένα αντικείμενο μιας κλάσης μπορεί να κατέχει ή να έχει πρόσβαση στα αντικείμενα μιας άλλης κλάσης».
Σε μια σχέση συνάθροισης, το εξαρτημένο αντικείμενο παραμένει στο εύρος μιας σχέσης ακόμη και όταν το αντικείμενο προέλευσης καταστρέφεται.
Ας εξετάσουμε ένα παράδειγμα αυτοκινήτου και τροχού. Ένα αυτοκίνητο χρειάζεται τροχό για να λειτουργήσει σωστά, αλλά ένας τροχός δεν χρειάζεται πάντα αυτοκίνητο. Μπορεί επίσης να χρησιμοποιηθεί με το ποδήλατο, το ποδήλατο ή οποιοδήποτε άλλο όχημα αλλά όχι ένα συγκεκριμένο αυτοκίνητο. Εδώ, το αντικείμενο του τροχού έχει νόημα ακόμη και χωρίς το αντικείμενο του αυτοκινήτου. Αυτός ο τύπος σχέσης ονομάζεται σχέση συνάθροισης.
Σύνοψη
- Η σχέση στο UML επιτρέπει σε ένα πράγμα να συσχετιστεί με άλλα πράγματα μέσα στο σύστημα.
- Οι σχέσεις συσχέτισης, εξάρτησης, γενίκευσης και υλοποίησης ορίζονται από το UML.
- Η σχέση σύνθεσης μπορεί επίσης να χρησιμοποιηθεί για να αναπαραστήσει ότι το αντικείμενο μπορεί να είναι μέρος μόνο ενός σύνθετου τη φορά.
- Η συσχέτιση χρησιμοποιείται για να περιγράψει ότι ένα αντικείμενο μπορεί να συσχετιστεί με ένα άλλο αντικείμενο.
- Η εξάρτηση υποδηλώνει ότι τα αντικείμενα μπορούν να εξαρτώνται το ένα από το άλλο.
- Η πραγματοποίηση είναι μια ουσιαστική σχέση μεταξύ ταξινομητών.
- Η γενίκευση ονομάζεται επίσης σχέση γονέα-παιδιού.