Διαγράμματα uml στην Ανάλυση · Ο συμβολισμός των...
TRANSCRIPT
ΔιαγράμματαUMLστηνΑνάλυση
ΜέροςΒΔιαγράμματαΚλάσεων
ΔιαγράμματαΑντικειμένων
περιεχόμεναπαρουσίασης
• Διαγράμματακλάσεων• Διαγράμματααντικειμένων
διαγράμματακλάσεων
• Χρησιμοποιούνταιστηνανάλυσητωναπαιτήσεωνκαιστησχεδίασητουλογισμικού
• Είναιστατικάδιαγράμματαπουδείχνουνκλάσεις,ιδιότητες,λειτουργίεςκαισχέσειςμεταξύκλάσεων
κλάσεις
Οσυμβολισμόςτωνκλάσεωνέχειτρίατμήματα:
• Τοόνοματηςκλάσης• Τιςιδιότητες(attributes)της
κλάσης• Τιςλειτουργίες(operations)της
κλάσης
ιδιότητες
• Οιιδιότητες(attributes)παραπέμπουνσταπεδίατηςJavaκαισχετίζονταιμεδεδομένατηςκλάσης
• ΤυπικήσύνταξηιδιοτήτωνΌνομα:Τύπος=αρχική_τιμή
• ΟτύποςμπορείναείναιέναςτύποςτηςUML,κάποιοςτύποςτηςγλώσσαςπρογραμματισμούήκάποιακλάση
• Παραγόμενες(derived)ιδιότητεςείναιαυτέςπουητιμήτουςπροκύπτειαπόάλλεςιδιότητεςτηςκλάσης.Οιπαραγόμενεςιδιότητεςέχουντοσύμβολο/πριναπότοόνομα.
λειτουργίες
• Οιλειτουργίες(operations)παραπέμπουνστιςμεθόδουςτηςJava
• ΤυπικήσύνταξηΌνομα(Παράμετρος1:Τύπος1,
Παράμετρος2:Τύπος2,…):Τύπος_Επιστροφής
λειτουργίες
• Ανκαιοιλειτουργίεςμίαςκλάσηςπαραπέμπουνστιςμεθόδουςτης,οιδύοέννοιεςδενείναιταυτόσημες.
• ΜετηUMLορίζουμεμίαλειτουργίαωςμίαυπηρεσίαπουπαρέχουντααντικείμενατηςκλάσης.
• Ημέθοδοςείναιμίαυλοποίησητηςλειτουργίαςδηλαδήτηςυπηρεσίαςπουπαρέχεταιαπότααντικείμενα.
• Επομένως,μίααπλήδιάκρισηείναιότιοιλειτουργίεςπαρέχουντιςδιεπαφέςγιατηνπαροχήτωνυπηρεσιών,ενώοιμέθοδοιπαρέχουντηνυλοποίησήτους.
• Μετονπολυμορφισμόμπορούμεναέχουμεδιαφορετικέςμεθόδουςπουυλοποιούντηνίδιαλειτουργία.
συσχετίσεις
• Ησυσχέτιση(association)αναπαριστάκάποιασύνδεσητωναντικειμένωνδύοκλάσεων
• Απεικονίζειτησχέσημεταξύτωνκλάσεων• Οισυσχετίσειςμεταξύκλάσεων«μοιάζουν»μετιςσχέσειςτων
πινάκωνμίαςβάσηςδεδομένων
πολλαπλότητασυσχετίσεων
Ηπολλαπλότητααναφέρεταισταάκρατωνσυσχετίσεων.
• Ακριβώςένα->1• Έναήπερισσότερα->1..*• Κανέναήπερισσότερα->*• Κανέναήένα->0..1
πολλαπλότητεςσυσχετίσεων
1 Ακριβώς ένα
10 Ακριβώς δέκα
* Κανένα, ένα ή περισσότερα
1..* Ένα ή περισσότερα
1..10 Ένα έως δέκα
συσσωμάτωση
• Ησυσσωμάτωση(aggregation)είναιμίαειδικήμορφήσυσχέτισης.• Είναιμίασυσχέτισηόλου– τμήματος.• ΗκλάσηΑαναπαριστάτο«όλο»καιηκλάσηΒτο«τμήμα»• Δενεπιτρέπονται«κύκλοι»συσσωματώσεων• Ηδιάκρισηαπότησυσχέτισηέχειπερισσότεροεννοιολογικό
χαρακτήρα:το«όλο»δενμπορείνα«λειτουργήσει»χωρίςτο«τμήμα».
παράδειγμασυσσωμάτωσης
• Τοαυτοκίνητοέχειωςτμήματουένακινητήρα.• Οκινητήραςμπορείναείναιτμήμαπολλώναυτοκινήτων.• Σημασιολογικήερμηνεία:«Τοαυτοκίνητοδενμπορείνα
λειτουργήσειχωρίςτονκινητήρα».
σύνθεση
• Ησύνθεση(composition)είναιμίαισχυρήμορφήσυσσωμάτωσης• Τοόλοελέγχειπλήρωςτατμήματάτουκαιιδιαίτερατονκύκλο
ζωήςτους.Π.χ.ηδιαγραφήενόςαντικειμένου«όλου»διαγράφεικαιτατμήματάτου.
• Ηπρόσβασησεκάποιο«τμήμα»γίνεταιαποκλειστικάμέσωτου«όλου»
παράδειγμασύνθεσης
• Τοαυτοκίνητοέχειωςτμήματονκινητήρατου.• Οκινητήραςδενμπορείναανήκειταυτόχρονασεάλλο
αυτοκίνητο.• Οέξωκόσμοςδενέχειπρόσβασηστονκινητήραπαράμόνομέσω
τουαυτοκινήτου.
αυτοσυσχέτιση
• Υπάρχεικαιηδυνατότητααυτοσυσχέτισης.• Ηαυτοσυσχέτισητουσχήματοςπαράγειιεραρχίααντικειμένων
κλάσησυσχέτισης
• Μίακλάσησυσχέτισης(associationclass)αποδίδειιδιότητεςκαιλειτουργίεςσεμίασυσχέτιση
• ΗκλάσηCείναιηκλάσησυσχέτισηςτωνΑκαιB• Χρησιμοποιείταισυνήθωςσεσυσχετίσεις«πολλά-προς-πολλά»
παράδειγμακλάσηςσυσχέτισης
• Έναςυπάλληλοςεργάζεταισεπολλέςεταιρείεςκαικάθεεταιρείαέχειπολλούςυπαλλήλους
• Ερώτημα:Πώςθααπεικονιστείομισθόςπουλαμβάνειέναςυπάλληλοςαπόμίαεταιρεία?
παράδειγμακλάσηςσυσχέτισης
• Υπάρχουνδύολύσεις.Ηπρώτηείναιμετηνκλάσησυσχέτισης.Ηδεύτερηείναιμε«ενδιάμεση»κλάση.
• Οπεριορισμόςτηςκλάσηςσυσχέτισηςείναιότιουπάλληλοςδενμπορείναέχειδύοεργασίεςστηνίδιαεταιρεία.
• Στοσυγκεκριμένοπαράδειγμαηκλάσησυσχέτισηςείναιησωστήλύση
ιδιαιτερότητεςκλάσηςσυσχέτισης
Οιδύολύσειςμοιάζουν,αλλάδενείναιίδιες.• Ηχρήσητηςκλάσηςσυσχέτισηςυπονοείεπιπλέονότιδενμπορεί
ναυπάρξουνδύοαντικείμενατηςκλάσηςσυσχέτισηςγιατονίδιοσυνδυασμόαντικειμένωντωνκλάσεωνπουσυσχετίζονται.
• ΣτοσυγκεκριμένοπαράδειγμαηκλάσησυσχέτισηςΕργασίαμάςλέειότιέναςεργαζόμενοςμπορείναεργάζεταισεδιαφορετικέςεταιρείες,αλλάδενμπορείταυτόχροναναέχειδύοεργασίεςστηνίδιαεταιρεία.
• Αντίθετα,στηλύσηόπουηκλάσηΕργασίααπλώςπαρεμβάλλεταιμεταξύτουεργαζομένουκαιτιςεταιρείας,επιτρέπεταιέναςεργαζόμενοςναέχειπολλέςεργασίεςστηνίδιαεταιρείακαιναεισπράττειβέβαιαπολλούςμισθούςαπότηνίδιαεταιρεία.
• Έτσιστιςσυσχετίσειςπολλά-προς-πολλά,ανάλογαμετησημασιολογίαπουπροκύπτειαπότοπρόβλημα,επιλέγεταιηκλάσησυσχέτισηςήηπαρεμβαλλόμενηκλάση
γενίκευση
• Ηγενίκευσηπαραπέμπειστηνκληρονομικότητα.• ΗκλάσηΒείναιυποκλάσητηςκλάσηςΑ.• Ηυποκλάσηκληρονομείιδιότητες,συσχετίσειςκαιλειτουργίεςτης
υπερκλάσης.• Μίαυποκλάσημπορείναεπαναορίσει(override)λειτουργίεςτης
υπερκλάσηςτης.
παράδειγμαγενίκευσης
διαγράμματααντικειμένων
• Τααντικείμεναείναιστιγμιότυπατωνκλάσεων• Οισύνδεσμοιείναιστιγμιότυπατωνσυσχετίσεων
αντικείμενα
• Οσυμβολισμόςτωναντικειμένωνείναιόμοιοςμετοσυμβολισμότωνκλάσεωνμετηδιαφοράότιτοτμήματουονόματοςείναιυπογραμμισμένο
• Τυπικήσύνταξηαντικειμένου– όνομα_αντικειμένου:όνομα_κλάσης– Γιαανώνυμααντικείμενα:όνομα_κλάσης
• Οιιδιότητεςτωνκλάσεωνέχουνπλέονκαιτιμές• Σεέναδιάγραμμααντικειμένωναπεικονίζουμεέναδίκτυο
αντικειμένωνγιακάποιαχρονικήστιγμή
χρήσηδιαγραμμάτωναντικειμένων
• Επαλήθευσηδιαγραμμάτωνκλάσεων• Εμφάνισησχέσεωνγιατιςοποίεςταδιαγράμματακλάσεωνδεν
επαρκούν
χρήσηδιαγραμμάτωναντικειμένων
• Τοδιάγραμμακλάσεωνμαςδίνειμίαγενικήδομήμίαςιεραρχίας• Τοδιάγραμμααντικειμένωνμαςδίνειτηνίδιατηνιεραρχία