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

Post on 01-Mar-2020

0 views 0 download

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

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

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

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

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

Δρ. Κώστας Σαΐδης ﴾saiko@di.uoa.gr﴿

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