25
Διαγράμματα UML στην Ανάλυση Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων

Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

ΔιαγράμματαUMLστηνΑνάλυση

ΜέροςΒΔιαγράμματαΚλάσεων

ΔιαγράμματαΑντικειμένων

Page 2: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

περιεχόμεναπαρουσίασης

• Διαγράμματακλάσεων• Διαγράμματααντικειμένων

Page 3: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

διαγράμματακλάσεων

• Χρησιμοποιούνταιστηνανάλυσητωναπαιτήσεωνκαιστησχεδίασητουλογισμικού

• Είναιστατικάδιαγράμματαπουδείχνουνκλάσεις,ιδιότητες,λειτουργίεςκαισχέσειςμεταξύκλάσεων

Page 4: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

κλάσεις

Οσυμβολισμόςτωνκλάσεωνέχειτρίατμήματα:

• Τοόνοματηςκλάσης• Τιςιδιότητες(attributes)της

κλάσης• Τιςλειτουργίες(operations)της

κλάσης

Page 5: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

ιδιότητες

• Οιιδιότητες(attributes)παραπέμπουνσταπεδίατηςJavaκαισχετίζονταιμεδεδομένατηςκλάσης

• ΤυπικήσύνταξηιδιοτήτωνΌνομα:Τύπος=αρχική_τιμή

• ΟτύποςμπορείναείναιέναςτύποςτηςUML,κάποιοςτύποςτηςγλώσσαςπρογραμματισμούήκάποιακλάση

• Παραγόμενες(derived)ιδιότητεςείναιαυτέςπουητιμήτουςπροκύπτειαπόάλλεςιδιότητεςτηςκλάσης.Οιπαραγόμενεςιδιότητεςέχουντοσύμβολο/πριναπότοόνομα.

Page 6: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

λειτουργίες

• Οιλειτουργίες(operations)παραπέμπουνστιςμεθόδουςτηςJava

• ΤυπικήσύνταξηΌνομα(Παράμετρος1:Τύπος1,

Παράμετρος2:Τύπος2,…):Τύπος_Επιστροφής

Page 7: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

λειτουργίες

• Ανκαιοιλειτουργίεςμίαςκλάσηςπαραπέμπουνστιςμεθόδουςτης,οιδύοέννοιεςδενείναιταυτόσημες.

• ΜετηUMLορίζουμεμίαλειτουργίαωςμίαυπηρεσίαπουπαρέχουντααντικείμενατηςκλάσης.

• Ημέθοδοςείναιμίαυλοποίησητηςλειτουργίαςδηλαδήτηςυπηρεσίαςπουπαρέχεταιαπότααντικείμενα.

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

• Μετονπολυμορφισμόμπορούμεναέχουμεδιαφορετικέςμεθόδουςπουυλοποιούντηνίδιαλειτουργία.

Page 8: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

συσχετίσεις

• Ησυσχέτιση(association)αναπαριστάκάποιασύνδεσητωναντικειμένωνδύοκλάσεων

• Απεικονίζειτησχέσημεταξύτωνκλάσεων• Οισυσχετίσειςμεταξύκλάσεων«μοιάζουν»μετιςσχέσειςτων

πινάκωνμίαςβάσηςδεδομένων

Page 9: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

πολλαπλότητασυσχετίσεων

Ηπολλαπλότητααναφέρεταισταάκρατωνσυσχετίσεων.

• Ακριβώςένα->1• Έναήπερισσότερα->1..*• Κανέναήπερισσότερα->*• Κανέναήένα->0..1

Page 10: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

πολλαπλότητεςσυσχετίσεων

1 Ακριβώς ένα

10 Ακριβώς δέκα

* Κανένα, ένα ή περισσότερα

1..* Ένα ή περισσότερα

1..10 Ένα έως δέκα

Page 11: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

συσσωμάτωση

• Ησυσσωμάτωση(aggregation)είναιμίαειδικήμορφήσυσχέτισης.• Είναιμίασυσχέτισηόλου– τμήματος.• ΗκλάσηΑαναπαριστάτο«όλο»καιηκλάσηΒτο«τμήμα»• Δενεπιτρέπονται«κύκλοι»συσσωματώσεων• Ηδιάκρισηαπότησυσχέτισηέχειπερισσότεροεννοιολογικό

χαρακτήρα:το«όλο»δενμπορείνα«λειτουργήσει»χωρίςτο«τμήμα».

Page 12: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

παράδειγμασυσσωμάτωσης

• Τοαυτοκίνητοέχειωςτμήματουένακινητήρα.• Οκινητήραςμπορείναείναιτμήμαπολλώναυτοκινήτων.• Σημασιολογικήερμηνεία:«Τοαυτοκίνητοδενμπορείνα

λειτουργήσειχωρίςτονκινητήρα».

Page 13: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

σύνθεση

• Ησύνθεση(composition)είναιμίαισχυρήμορφήσυσσωμάτωσης• Τοόλοελέγχειπλήρωςτατμήματάτουκαιιδιαίτερατονκύκλο

ζωήςτους.Π.χ.ηδιαγραφήενόςαντικειμένου«όλου»διαγράφεικαιτατμήματάτου.

• Ηπρόσβασησεκάποιο«τμήμα»γίνεταιαποκλειστικάμέσωτου«όλου»

Page 14: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

παράδειγμασύνθεσης

• Τοαυτοκίνητοέχειωςτμήματονκινητήρατου.• Οκινητήραςδενμπορείναανήκειταυτόχρονασεάλλο

αυτοκίνητο.• Οέξωκόσμοςδενέχειπρόσβασηστονκινητήραπαράμόνομέσω

τουαυτοκινήτου.

Page 15: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

αυτοσυσχέτιση

• Υπάρχεικαιηδυνατότητααυτοσυσχέτισης.• Ηαυτοσυσχέτισητουσχήματοςπαράγειιεραρχίααντικειμένων

Page 16: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

κλάσησυσχέτισης

• Μίακλάσησυσχέτισης(associationclass)αποδίδειιδιότητεςκαιλειτουργίεςσεμίασυσχέτιση

• ΗκλάσηCείναιηκλάσησυσχέτισηςτωνΑκαιB• Χρησιμοποιείταισυνήθωςσεσυσχετίσεις«πολλά-προς-πολλά»

Page 17: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

παράδειγμακλάσηςσυσχέτισης

• Έναςυπάλληλοςεργάζεταισεπολλέςεταιρείεςκαικάθεεταιρείαέχειπολλούςυπαλλήλους

• Ερώτημα:Πώςθααπεικονιστείομισθόςπουλαμβάνειέναςυπάλληλοςαπόμίαεταιρεία?

Page 18: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

παράδειγμακλάσηςσυσχέτισης

• Υπάρχουνδύολύσεις.Ηπρώτηείναιμετηνκλάσησυσχέτισης.Ηδεύτερηείναιμε«ενδιάμεση»κλάση.

• Οπεριορισμόςτηςκλάσηςσυσχέτισηςείναιότιουπάλληλοςδενμπορείναέχειδύοεργασίεςστηνίδιαεταιρεία.

• Στοσυγκεκριμένοπαράδειγμαηκλάσησυσχέτισηςείναιησωστήλύση

Page 19: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

ιδιαιτερότητεςκλάσηςσυσχέτισης

Οιδύολύσειςμοιάζουν,αλλάδενείναιίδιες.• Ηχρήσητηςκλάσηςσυσχέτισηςυπονοείεπιπλέονότιδενμπορεί

ναυπάρξουνδύοαντικείμενατηςκλάσηςσυσχέτισηςγιατονίδιοσυνδυασμόαντικειμένωντωνκλάσεωνπουσυσχετίζονται.

• ΣτοσυγκεκριμένοπαράδειγμαηκλάσησυσχέτισηςΕργασίαμάςλέειότιέναςεργαζόμενοςμπορείναεργάζεταισεδιαφορετικέςεταιρείες,αλλάδενμπορείταυτόχροναναέχειδύοεργασίεςστηνίδιαεταιρεία.

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

• Έτσιστιςσυσχετίσειςπολλά-προς-πολλά,ανάλογαμετησημασιολογίαπουπροκύπτειαπότοπρόβλημα,επιλέγεταιηκλάσησυσχέτισηςήηπαρεμβαλλόμενηκλάση

Page 20: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

γενίκευση

• Ηγενίκευσηπαραπέμπειστηνκληρονομικότητα.• ΗκλάσηΒείναιυποκλάσητηςκλάσηςΑ.• Ηυποκλάσηκληρονομείιδιότητες,συσχετίσειςκαιλειτουργίεςτης

υπερκλάσης.• Μίαυποκλάσημπορείναεπαναορίσει(override)λειτουργίεςτης

υπερκλάσηςτης.

Page 21: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

παράδειγμαγενίκευσης

Page 22: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

διαγράμματααντικειμένων

• Τααντικείμεναείναιστιγμιότυπατωνκλάσεων• Οισύνδεσμοιείναιστιγμιότυπατωνσυσχετίσεων

Page 23: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

αντικείμενα

• Οσυμβολισμόςτωναντικειμένωνείναιόμοιοςμετοσυμβολισμότωνκλάσεωνμετηδιαφοράότιτοτμήματουονόματοςείναιυπογραμμισμένο

• Τυπικήσύνταξηαντικειμένου– όνομα_αντικειμένου:όνομα_κλάσης– Γιαανώνυμααντικείμενα:όνομα_κλάσης

• Οιιδιότητεςτωνκλάσεωνέχουνπλέονκαιτιμές• Σεέναδιάγραμμααντικειμένωναπεικονίζουμεέναδίκτυο

αντικειμένωνγιακάποιαχρονικήστιγμή

Page 24: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

χρήσηδιαγραμμάτωναντικειμένων

• Επαλήθευσηδιαγραμμάτωνκλάσεων• Εμφάνισησχέσεωνγιατιςοποίεςταδιαγράμματακλάσεωνδεν

επαρκούν

Page 25: Διαγράμματα UML στην Ανάλυση · Ο συμβολισμός των κλάσεων έχει τρία τμήματα: • Το όνομα της κλάσης •

χρήσηδιαγραμμάτωναντικειμένων

• Τοδιάγραμμακλάσεωνμαςδίνειμίαγενικήδομήμίαςιεραρχίας• Τοδιάγραμμααντικειμένωνμαςδίνειτηνίδιατηνιεραρχία