08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08...

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

Transcript of 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08...

Page 1: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

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

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

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

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

Page 2: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

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

2

Page 3: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

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

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

3

Page 4: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

4

Page 5: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

5

Page 6: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

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

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

6

Page 7: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

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

7

Page 8: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

VisioArgoUMLViolet UML editorUMLet

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

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

8

Page 9: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

9

Page 10: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

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

10

Page 11: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

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

11

Page 12: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

12

Page 13: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

13

Page 14: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

14

Page 15: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

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

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

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

15

Page 16: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

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

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

16

Page 17: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

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

17

Page 18: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

Παράδειγμα

18

Page 19: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

19

Page 20: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

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

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

20

Page 21: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

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

21

Page 22: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

Παράδειγμα

22

Page 23: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

23

Page 24: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

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

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

24

Page 25: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

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

25

Page 26: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

26

Page 27: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

27

Page 28: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

28

Page 29: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

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

29

Page 30: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

Παράδειγμα

30

Page 31: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

31

Page 32: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

32

Page 33: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

33

Page 34: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

Πολλές αρχιτεκτονικές οπτικές ﴾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﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

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

35

Page 36: 08 Η γλώσσα UML ﴾I﴿ - NTUAcourses.softlab.ntua.gr/softeng/2017b/Slides/08.uml.pdf · 08 Η γλώσσα UML ﴾I﴿ Τεχνολογία Λογισμικού Σχολή

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

36