Upload
others
View
21
Download
0
Embed Size (px)
Citation preview
08 Η γλώσσα UML ﴾I﴿
Τεχνολογία Λογισμικού
Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών YπολογιστώνΕθνικό Μετσόβιο Πολυτεχνείο
Χειμερινό εξάμηνο 2017‐18
Δρ. Κώστας Σαΐδης ﴾[email protected]﴿
Unified Modeling Language ﴾UML﴿Γλώσσα μοντελοποίησης γενικής χρήσης που στοχεύει στηνπαροχή ενός καθιερωμένου τρόπου οπτικοποίησης καιεπικοινωνίας των σημαντικών χαρακτηριστικών ενόςσυστήματος λογισμικού.ISO standard 19501:2005
Τελευτία έκδοση 2.5 ﴾2015﴿
2
Στοιχεία και χαρακτηριστικάΕνοποιημένη μοντελοποίηση τόσο των απαιτήσεων όσο καιτου σχεδιασμού του λογισμικούΑνεξάρτητη του πεδίου εφαρμογής και της μεθοδολογίαςανάπτυξης του λογισμικούΕίναι μια "γραφική ‐ οπτική" γλώσσα
δεν είναι αυστηρώς ορισμένη ﴾διαφορετικές ερμηνείεςενός μοντέλου﴿
δεν καλύπτει όλες τις πιθανές πτυχές ﴾μη πλήρηςμοντελοποίηση﴿δεν είναι γλώσσα προγραμματισμού
3
Διαγράμματα της UMLΤο βασικό όχημα έκφρασης των χαρακτηριστικών του υπόμοντελοποίηση συστήματοςΜοντελοποίηση τόσο στοιχείων συμπεριφοράς όσο καιδομικών στοιχείων
4
5
Μοντελοποίηση συμπεριφοράςΔιαγράμματα περιπτώσεων χρήσης ﴾Use‐case diagrams﴿
Διαγράμματα δραστηριότητας ﴾Activity diagrams﴿Διαγράμματα μηχανών κατάστασης ﴾State machine diagrams﴿Διαγράμματα ακολουθίας ﴾Sequence diagrams﴿Διαγράμματα επικοινωνίας ﴾Communication diagrams﴿
Διαγράμματα χρονισμού ﴾Timing diagrams﴿
6
Μοντελοποίηση δομήςΔιαγράμματα κλάσεων ﴾Class diagrams﴿Διαγράμματα συστατικών ﴾Component diagrams﴿Διαγράμματα πακέτων ﴾Package diagrams﴿
Διαγράμματα "παράταξης / εγκατάστασης" ﴾Deploymentdiagrams﴿Διαγράμματα σύνθετης δομής ﴾Composite structure diagrams﴿
7
ΕργαλείαΔιάφορα γραφικά εργαλεία ﴾ελεύθερα / δωρεάν ή μη﴿:
VisioArgoUMLViolet UML editorUMLet
κ.άΔοκιμάστε και επιλέξτε ένα που να ικανοποιεί όλα τα μέλητης ομάδαςΠροσωπική ﴾καθαρά﴿ προτίμηση:
PlantUML ﴾text‐based δημιουργία UML διαγραμμάτων﴿
8
Διαγράμματα δομήςΤα διαγράμματα συμπεριφοράς θα τα κουβεντιάσουμε στην επόμενηδιάλεξη
9
Διαγράμματα κλάσεων ﴾Class diagrams﴿Διαγράμματα αποτύπωσης του σχεδιασμού των κλάσεων﴾interface, class, abstract class﴿, της δομής τους, τωνχαρακτηριστικών στοιχείων τους και των σχέσεων μεταξύτους.
Αντικειμενοστραφείς αρχιτεκτονικές ﴾object‐oriented﴿.
10
Βασικά στοιχεία της UMLClass / Abstract class / Interface / Stereotype
Property ﴾attribute, field﴿ / Operation ﴾method﴿Visibility / Multiplicity / ConstraintAssociation / Aggregation / Composition / UsageGeneralization
11
Παραδείγματα
12
13
Συγκεντρωτικάhttps://www.uml‐diagrams.org/class‐reference.html
14
Διαγράμματα συστατικών ﴾Componentdiagrams﴿
Διαγράμματα αποτύπωσης των συστατικών του λογισμικούσε ένα υψηλότερο επίπεδο αφαίρεσης, όπου η έμφασηδίνεται στις διεπαφές, αλληλεπιδράσεις και αλληλεξαρτήσειςμεταξύ των συστατικών.
Αρχιτεκτονικές επικεντρωμένες στα συστατικά ﴾component‐oriented﴿.
Συστατικό = κλάση ή σύνολο κλάσεων που υλοποιούν μια ‐υψηλούαρχιτεκτονικά επιπέδου‐ λειτουργία
15
Βασικά στοιχεία της UMLΣυστατικό
Μπορεί να είναι μια "λογική" οντότητα ﴾π.χ. συστατικάεπιχειρησιακής λογικής﴿
Μπορεί να είναι μια "φυσική" οντότητα κάποιουσυγκεκριμένου framework ﴾π.χ. EJB, WSDL, κ.ο.κ﴿
16
ΕπιπρόσθεταΤα συστατικά παρέχουν ﴾provide﴿ και απαιτούν ﴾require﴿διεπαφές ﴾interfaces﴿.Τα συστατικά διαθέτουν επιμέρους "μέρη" ﴾parts﴿.
Τα συστατικά διαθέτουν θύρες ﴾ports﴿ για την επικοινωνία μετο περιβάλλον τους.Τα συστατικά διαθέτουν συνδέσεις ﴾connectors﴿ μεταξύ τουςμέσω των θυρών ή των διεπαφών.
17
Παράδειγμα
18
Συγκεντρωτικάhttps://www.uml‐diagrams.org/component‐diagrams‐reference.html
19
Διαγράμματα πακέτων ﴾Packagediagrams﴿
Αποτύπωση του λογισμικού σε επίπεδο πακέτων ﴾packages﴿,η οποία στοχεύει κυρίως στην ‐υψηλού αρχιτεκτονικάεπιπέδου‐ παρουσίαση των εξαρτήσεων ﴾dependencies﴿.
Πολυ‐επίπεδες αρχιτεκτονικές.
20
Βασικά στοιχεία της UMLΠακέτα ﴾packages﴿ που χρησιμοποιούν ﴾private / publicimport, use﴿ άλλα πακέτα.
Ένωση πακέτων ﴾package merge﴿.
21
Παράδειγμα
22
Συγκεντρωτικάhttps://www.uml‐diagrams.org/package‐diagrams‐reference.html
23
Διαγράμματα "παράταξης /εγκατάστασης" ﴾Deployment diagrams﴿
Αποτύπωση της αρχιτεκτονικής του συστήματος μέσω τηςεγκατάστασης ﴾deployment﴿ των software artifacts σεσυγκεκριμένες θέσεις ﴾deployment targets﴿.
Φυσική αρχιτεκτονική ﴾τι εγκαθίσταται που﴿.
24
Βασικά στοιχεία της UMLSoftware artifacts ﴾π.χ. αρχεία war, jar﴿Manifestations ﴾π.χ. κάποιων components﴿
Deployment targets ﴾π.χ. εγκαθίστανται σε κάποιονapplication server﴿
25
Παραδείγματα
26
27
Συγκεντρωτικάhttps://www.uml‐diagrams.org/deployment‐diagrams‐reference.html
28
Διαγράμματα σύνθετης δομής﴾Composite structure diagrams﴿Αποτύπωση μιας σύνθετης δομής, όπως είναι η εσωτερική δομήενός συστατικού / πακέτου.
Χρήσιμα όταν οι επιμέρους έννοιες/ρόλοι ﴾κλάσεις, συστατικά,πακέτα﴿ δεν είναι γνωστές ή δεν απαραίτητες για την κατανόησημια σύνθετης δομής.
29
Παράδειγμα
30
Συγκεντρωτικάhttps://www.uml‐diagrams.org/composite‐structure‐diagrams‐reference.html
31
ΕργασίαΣτο δεύτερο παραδοτέο της εργασίας θα πρέπει νααποτυπώσετε το σχεδιασμό και την αρχιτεκτονική τουλογισμικού σας με βάση τα παραπάνω διαγράμματα ﴾εσείςθα επιλέξετε ποια﴿.Συνήθως τα class, component, deployment διαγράμματα είναιαπαραίτητα.
32
ΘυμηθείτεΑπό τη διάλεξη 5 ﴾αρχιτεκτονικά πρότυπα﴿
33
Πολλές αρχιτεκτονικές οπτικές ﴾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
ΕιδικότεραLogical view: έμφαση στη λειτουργικότητα του συστήματοςσε υψηλό επίπεδοPhysical view: έμφαση στην τοπολογία και διασύνδεση τωνσυστατικών του σε φυσικό επίπεδο ﴾deployment﴿Development view: έμφαση στην οπτική του προγραμματιστή
Process view: έμφαση στη δυναμική συμπεριφορά τουσυστήματος κατά την εκτέλεσή του ﴾απόδοση, κλιμάκωση,κτλ.﴿Scenarios ‐ Use case view: έμφαση στη χρηστική πλευρά τουσυστήματος και στους σχετικούς ελέγχους αποδοχής
35
2ο ΠαραδοτέοΠληρέστερο αν παρουσιάζει τις 4 οπτικές ﴾ΔΕΝ είναι απαραίτητονα ασχοληθείτε με τo process view στο πλαίσιο της εργασίας﴿.
36