08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿...

36
08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017‐18 Δρ. Κώστας Σαΐδης ﴾[email protected]﴿

Transcript of 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿...

Page 1: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

08 Η γλώσσα UML ﴾I﴿

Τεχνολογία Λογισμικού

Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών YπολογιστώνΕθνικό Μετσόβιο Πολυτεχνείο

Χειμερινό εξάμηνο 2017‐18

Δρ. Κώστας Σαΐδης ﴾[email protected]﴿

Page 2: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Unified Modeling Language ﴾UML﴿Γλώσσα μοντελοποίησης γενικής χρήσης που στοχεύει στηνπαροχή ενός καθιερωμένου τρόπου οπτικοποίησης καιεπικοινωνίας των σημαντικών χαρακτηριστικών ενόςσυστήματος λογισμικού.ISO standard 19501:2005

Τελευτία έκδοση 2.5 ﴾2015﴿

2

Page 3: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Στοιχεία και χαρακτηριστικάΕνοποιημένη μοντελοποίηση τόσο των απαιτήσεων όσο καιτου σχεδιασμού του λογισμικούΑνεξάρτητη του πεδίου εφαρμογής και της μεθοδολογίαςανάπτυξης του λογισμικούΕίναι μια "γραφική ‐ οπτική" γλώσσα

δεν είναι αυστηρώς ορισμένη ﴾διαφορετικές ερμηνείεςενός μοντέλου﴿

δεν καλύπτει όλες τις πιθανές πτυχές ﴾μη πλήρηςμοντελοποίηση﴿δεν είναι γλώσσα προγραμματισμού

3

Page 4: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Διαγράμματα της UMLΤο βασικό όχημα έκφρασης των χαρακτηριστικών του υπόμοντελοποίηση συστήματοςΜοντελοποίηση τόσο στοιχείων συμπεριφοράς όσο καιδομικών στοιχείων

4

Page 5: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

5

Page 6: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Μοντελοποίηση συμπεριφοράςΔιαγράμματα περιπτώσεων χρήσης ﴾Use‐case diagrams﴿

Διαγράμματα δραστηριότητας ﴾Activity diagrams﴿Διαγράμματα μηχανών κατάστασης ﴾State machine diagrams﴿Διαγράμματα ακολουθίας ﴾Sequence diagrams﴿Διαγράμματα επικοινωνίας ﴾Communication diagrams﴿

Διαγράμματα χρονισμού ﴾Timing diagrams﴿

6

Page 7: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Μοντελοποίηση δομήςΔιαγράμματα κλάσεων ﴾Class diagrams﴿Διαγράμματα συστατικών ﴾Component diagrams﴿Διαγράμματα πακέτων ﴾Package diagrams﴿

Διαγράμματα "παράταξης / εγκατάστασης" ﴾Deploymentdiagrams﴿Διαγράμματα σύνθετης δομής ﴾Composite structure diagrams﴿

7

Page 8: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

ΕργαλείαΔιάφορα γραφικά εργαλεία ﴾ελεύθερα / δωρεάν ή μη﴿:

VisioArgoUMLViolet UML editorUMLet

κ.άΔοκιμάστε και επιλέξτε ένα που να ικανοποιεί όλα τα μέλητης ομάδαςΠροσωπική ﴾καθαρά﴿ προτίμηση:

PlantUML ﴾text‐based δημιουργία UML διαγραμμάτων﴿

8

Page 9: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Διαγράμματα δομήςΤα διαγράμματα συμπεριφοράς θα τα κουβεντιάσουμε στην επόμενηδιάλεξη

9

Page 10: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Διαγράμματα κλάσεων ﴾Class diagrams﴿Διαγράμματα αποτύπωσης του σχεδιασμού των κλάσεων﴾interface, class, abstract class﴿, της δομής τους, τωνχαρακτηριστικών στοιχείων τους και των σχέσεων μεταξύτους.

Αντικειμενοστραφείς αρχιτεκτονικές ﴾object‐oriented﴿.

10

Page 11: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Βασικά στοιχεία της UMLClass / Abstract class / Interface / Stereotype

Property ﴾attribute, field﴿ / Operation ﴾method﴿Visibility / Multiplicity / ConstraintAssociation / Aggregation / Composition / UsageGeneralization

11

Page 12: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Παραδείγματα

12

Page 13: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

13

Page 14: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Συγκεντρωτικάhttps://www.uml‐diagrams.org/class‐reference.html

14

Page 15: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Διαγράμματα συστατικών ﴾Componentdiagrams﴿

Διαγράμματα αποτύπωσης των συστατικών του λογισμικούσε ένα υψηλότερο επίπεδο αφαίρεσης, όπου η έμφασηδίνεται στις διεπαφές, αλληλεπιδράσεις και αλληλεξαρτήσειςμεταξύ των συστατικών.

Αρχιτεκτονικές επικεντρωμένες στα συστατικά ﴾component‐oriented﴿.

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

15

Page 16: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Βασικά στοιχεία της UMLΣυστατικό

Μπορεί να είναι μια "λογική" οντότητα ﴾π.χ. συστατικάεπιχειρησιακής λογικής﴿

Μπορεί να είναι μια "φυσική" οντότητα κάποιουσυγκεκριμένου framework ﴾π.χ. EJB, WSDL, κ.ο.κ﴿

16

Page 17: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

ΕπιπρόσθεταΤα συστατικά παρέχουν ﴾provide﴿ και απαιτούν ﴾require﴿διεπαφές ﴾interfaces﴿.Τα συστατικά διαθέτουν επιμέρους "μέρη" ﴾parts﴿.

Τα συστατικά διαθέτουν θύρες ﴾ports﴿ για την επικοινωνία μετο περιβάλλον τους.Τα συστατικά διαθέτουν συνδέσεις ﴾connectors﴿ μεταξύ τουςμέσω των θυρών ή των διεπαφών.

17

Page 18: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Παράδειγμα

18

Page 19: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Συγκεντρωτικάhttps://www.uml‐diagrams.org/component‐diagrams‐reference.html

19

Page 20: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Διαγράμματα πακέτων ﴾Packagediagrams﴿

Αποτύπωση του λογισμικού σε επίπεδο πακέτων ﴾packages﴿,η οποία στοχεύει κυρίως στην ‐υψηλού αρχιτεκτονικάεπιπέδου‐ παρουσίαση των εξαρτήσεων ﴾dependencies﴿.

Πολυ‐επίπεδες αρχιτεκτονικές.

20

Page 21: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Βασικά στοιχεία της UMLΠακέτα ﴾packages﴿ που χρησιμοποιούν ﴾private / publicimport, use﴿ άλλα πακέτα.

Ένωση πακέτων ﴾package merge﴿.

21

Page 22: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Παράδειγμα

22

Page 23: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Συγκεντρωτικάhttps://www.uml‐diagrams.org/package‐diagrams‐reference.html

23

Page 24: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Διαγράμματα "παράταξης /εγκατάστασης" ﴾Deployment diagrams﴿

Αποτύπωση της αρχιτεκτονικής του συστήματος μέσω τηςεγκατάστασης ﴾deployment﴿ των software artifacts σεσυγκεκριμένες θέσεις ﴾deployment targets﴿.

Φυσική αρχιτεκτονική ﴾τι εγκαθίσταται που﴿.

24

Page 25: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Βασικά στοιχεία της UMLSoftware artifacts ﴾π.χ. αρχεία war, jar﴿Manifestations ﴾π.χ. κάποιων components﴿

Deployment targets ﴾π.χ. εγκαθίστανται σε κάποιονapplication server﴿

25

Page 26: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Παραδείγματα

26

Page 27: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

27

Page 28: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Συγκεντρωτικάhttps://www.uml‐diagrams.org/deployment‐diagrams‐reference.html

28

Page 29: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Διαγράμματα σύνθετης δομής﴾Composite structure diagrams﴿Αποτύπωση μιας σύνθετης δομής, όπως είναι η εσωτερική δομήενός συστατικού / πακέτου.

Χρήσιμα όταν οι επιμέρους έννοιες/ρόλοι ﴾κλάσεις, συστατικά,πακέτα﴿ δεν είναι γνωστές ή δεν απαραίτητες για την κατανόησημια σύνθετης δομής.

29

Page 30: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Παράδειγμα

30

Page 31: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Συγκεντρωτικάhttps://www.uml‐diagrams.org/composite‐structure‐diagrams‐reference.html

31

Page 32: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

ΕργασίαΣτο δεύτερο παραδοτέο της εργασίας θα πρέπει νααποτυπώσετε το σχεδιασμό και την αρχιτεκτονική τουλογισμικού σας με βάση τα παραπάνω διαγράμματα ﴾εσείςθα επιλέξετε ποια﴿.Συνήθως τα class, component, deployment διαγράμματα είναιαπαραίτητα.

32

Page 33: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

ΘυμηθείτεΑπό τη διάλεξη 5 ﴾αρχιτεκτονικά πρότυπα﴿

33

Page 34: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

Πολλές αρχιτεκτονικές οπτικές ﴾4+1﴿

By mpan ‐ Based on File:4+1 Architectural View Model.jpg by User:Mdd,CC BY‐SA 3.0, https://commons.wikimedia.org/w/index.php?curid=50144028

34

Page 35: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

ΕιδικότεραLogical view: έμφαση στη λειτουργικότητα του συστήματοςσε υψηλό επίπεδοPhysical view: έμφαση στην τοπολογία και διασύνδεση τωνσυστατικών του σε φυσικό επίπεδο ﴾deployment﴿Development view: έμφαση στην οπτική του προγραμματιστή

Process view: έμφαση στη δυναμική συμπεριφορά τουσυστήματος κατά την εκτέλεσή του ﴾απόδοση, κλιμάκωση,κτλ.﴿Scenarios ‐ Use case view: έμφαση στη χρηστική πλευρά τουσυστήματος και στους σχετικούς ελέγχους αποδοχής

35

Page 36: 08 Η γλώσσα UML ﴾I﴿ · 2019-12-09 · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών

2ο ΠαραδοτέοΠληρέστερο αν παρουσιάζει τις 4 οπτικές ﴾ΔΕΝ είναι απαραίτητονα ασχοληθείτε με τo process view στο πλαίσιο της εργασίας﴿.

36