6. Εισαγωγή στη Ενοποιημένη Γλώσσα Μοντελοποίησης UML (Unified Mdeling Language) Χειμερινό εξάμηνο 2016 Πέτρος Κωμοδρόμος kmdrms@ucy.ac.cy http://www.eng.ucy.ac.cy/petrs 1
Θέματα Εισαγωγή στη Unified Mdeling Language (UML) Διαγράμματα UML Use case diagrams (διαγράμματα χρήσεων) Class diagrams (διαγράμματα κλάσεων) State machine diagrams (διαγράμματα κατάστασης) Activity diagrams (διαγράμματα ενεργειών) Interactin diagrams (διαγράμματα αλληλεπιδράσεων) Cmmunicatin diagrams (διαγράμματα επικοινωνίας) Sequence diagrams (διαγράμματα ακολουθίας) Deplyment diagrams (διαγράμματα εγκατάστασης) Package diagrams (διαγράμματα πακέτων) Παράδειγμα χρήσης UML για την ανάπτυξη ενός προγράμματος ATM 2
Unified Mdeling Language (UML) Παρέχει ένα γραφικό τρόπο καθορισμού, παρουσίασης του σχεδιασμού και τρόπου υλοποίησης ενός λογισμικού Βασικό εργαλείο στην ανάπτυξη αντικειμενοστραφή λογισμικού Χρήση βασικών διαγραμμάτων: Class diagrams (διαγράμματα κλάσεων) Περιγράφουν τις κλάσεις ενός συστήματος: Use case diagrams (διαγράμματα χρήσεων) Περιγράφουν τους τρόπους χρήσης ενός συστήματος 3
State machine diagrams (διαγράμματα κατάστασης) Παρουσιάζουν τις διάφορες καταστάσεις και τους τρόπους αλλαγών της κατάστασης (changes state) ενός αντικειμένου (bject) Activity diagrams (διαγράμματα ενεργειών) Παρουσιάζουν τις ενέργειες ενός αντικειμένου κατά την εκτέλεση ενός προγράμματος Interactin diagrams (διαγράμματα αλληλεπιδράσεων) Cmmunicatin diagrams (διαγράμματα επικοινωνίας/συνεργασίας) Παρουσιάζουν τις αλληλοεπιδράσεις και επικοινωνία μεταξύ αντικειμένων με έμφαση στις ενέργειες που συμβαίνουν Sequence diagrams (διαγράμματα ακολουθίας) Παρουσιάζουν τις αλληλοεπιδράσεις μεταξύ αντικειμένων με έμφαση το πότε χρονικά συμβαίνουν 4
Παράδειγμα ανάπτυξης αντικειμενοστραφούς λογισμικού χρησιμοποιώντας την Unified Mdeling Language (UML) 5
Έγγραφο απαιτήσεων - Requirements Dcument Καθορίζει το σκοπό ενός συστήματος και τι πρέπει να κάνει Παράδειγμα: ΑΤΜ Allws basic financial transactin view balance withdraw cash depsit funds User interface display screen keypad cash dispenser depsit slt ATM sessin authenticate user execute financial transactin 6
Κυρίως μενού ATM 7
Μενού αναλήψεων ATM 8
Use case diagram (διάγραμμα ενεργειών) για το ATM Περιγράφουν τους τρόπους χρήσης ενός συστήματος: 9
Τροποποιημένο use case diagram για το ATM 10
Class diagrams (διαγράμματα κλάσεων) Περιγράφει τις κλάσεις ενός συστήματος: Screen Keypad Cash dispenser Depsit slt Πάνω τμήμα: περιέχει το όνομα της κλάσης Μεσαίο τμήμα: περιέχει τις μεταβλητές (attributes/instance variables) Κάτω τμήμα: περιέχει τις μεθόδους (methds) 11
Τύποι πολλαπλότητας - Multiplicity types. Symbl Meaning 0 Nne 1 One m An integer value 0..1 Zer r ne m, n m r n m..n At least m, but nt mre than n * Any nn-negative integer (zer r mre) 0..* Zer r mre (identical t *) 1..* One r mre 12
Class diagram shwing cmpsitin relatinships f a class Car 13
Class diagram shwing cmpsitin relatinships. 14
Class diagram fr the ATM system mdel. 15
Class diagram fr the ATM system mdel including class Depsit. 16
Identifying Class Attributes 17
Identifying Class Attributes and Operatins. 18
Class attributes και peratins και επίπεδα πρόσβασης 19
State machine diagrams (διαγράμματα κατάστασης) Παρουσιάζουν τις διάφορες καταστάσεις και τους τρόπους αλλαγών της κατάστασης (changes state) ενός αντικειμένου (bject) State Machine Diagrams, ή απλά state diagrams, δίνουν έμφαση στη συμπεριφορά ενός αντικειμένου Συμβολισμοί: Κατάσταση (state) Στρογγυλευμένο ορθογώνιο (runded rectangle) Αρχική κατάσταση (initial state) Συμπαγής κύκλος (slid circle) Αλλαγές/Μεταβολές (transitins) Τόξα 20
Activity diagrams (διαγράμματα ενεργειών ) Παρουσιάζουν τις ενέργειες ενός αντικειμένου κατά την εκτέλεση ενός προγράμματος με έμφαση στη συμπεριφορά του συστήματος καθορίζοντας τη σειρά που ακολουθείται Στρογγυλευμένα ορθογώνια καθορίζουν ενέργειες που πρέπει να γίνουν Ρόμβοι (diamnds) συμβολίζουν: σημεία αποφάσεων (decisin symbls) σημεία συγχώνευσης (merge symbls) Μικροί κύκλοι (small circles) Συμπαγής: αρχικές συνθήκες Διπλός κύκλος: τελικές συνθήκες Βέλη μετάβασης (transitin arrws) Καθορίζουν τη σειρά εκτέλεσης Ορθογώνια με διπλωμένο πάνω δεξί άκρο Επεξηγηματικές σημειώσεις/σχόλια 21
Activity diagram για ένα BalanceInquiry αντικείμενο Activity diagram για διαδικασία ανάληψης 22
Επέκταση ενός διαγράμματος ενεργειών (activity diagram) για ανάπτυξη δομημένου (structured) προγράμματος Ξεκινώντας από το απλούστερο δυνατό διάγραμμα ενεργειών activity diagram: 23
Μπορεί να επεκταθεί αντικαθιστώντας την κάθε actin state με δύο διαδοχικά actin states, το οποίο μπορεί να επαναληφθεί όσες φορές χρειάζεται: 24
Επίσης, μπορεί να επεκταθεί αντικαθιστώντας την κάθε actin state με κάποια δομή ελέγχου και το αντίστοιχο UML activity diagram, το οποίο μπορεί να επαναληφθεί όσες φορές χρειάζεται: 25
Interactin diagrams (διαγράμματα αλληλεπιδράσεων) Cmmunicatin diagrams (διαγράμματα επικοινωνίας/συνεργασίας) Παρουσιάζουν τις αλληλοεπιδράσεις και επικοινωνία μεταξύ αντικειμένων με έμφαση στις ενέργειες που συμβαίνουν Sequence diagrams (διαγράμματα ακολουθίας) Παρουσιάζουν τις αλληλοεπιδράσεις μεταξύ αντικειμένων με έμφαση το πότε χρονικά συμβαίνουν 26
Cmmunicatin/cllabratin diagrams (διαγράμματα επικοινωνίας/συνεργασίας) Παρουσιάζουν τις αλληλοεπιδράσεις και επικοινωνία μεταξύ αντικειμένων με έμφαση στις ενέργειες που συμβαίνουν Ένα αντικείμενο στέλνει μήνυμα σε ένα άλλο αντικείμενο (δηλαδή καλεί κάποια μέθοδο του) ώστε να επιτευχθεί κάποιος στόχος Αφού προσδιορίσουμε την απαιτούμενη επικοινωνία και αλληλοεπιδράσεις μεταξύ αντικειμένων πρέπει να καθοριστούν ποια αντικείμενα στέλνουν μήνυμα (καλούν κάποια μέθοδο) σε ποια αντικείμενα (των οποίων οι μέθοδοι καλούνται) Η σειρά με την οποία καλείται μια μέθοδος μπορεί να καθοριστεί στα αριστερά του ονόματος της μεθόδου 27
Συνεργασίες και αλληλοεπιδράσεις στοatm An bject f class ATM sends the message displaymessage getinput authenticateuser execute execute Execute BalanceInquiry getavailablebalance getttalbalance displaymessage Withdrawal Depsit BankDatabase displaymessage getinput getavailablebalance issufficientcashavailable debit dispensecash displaymessage getinput isenvelpereceived Credit validatepin getavailablebalance getttalbalance debit Credit t an bject f class Screen Keypad BankDatabase BalanceInquiry Withdrawal Depsit BankDatabase BankDatabase Screen Screen Keypad BankDatabase CashDispenser BankDatabase CashDispenser Screen Keypad DepsitSlt BankDatabase Accunt Accunt Accunt Accunt Accunt 28
Παράδειγμα cmmunicatin/cllabratin diagram (διαγράμματα επικοινωνίας/συνεργασίας) 29
Sequence diagrams (διαγράμματα ακολουθίας) Παρουσιάζουν τις αλληλοεπιδράσεις μεταξύ αντικειμένων με έμφαση το πότε χρονικά συμβαίνουν Καθορίζεται η χρονική ακολουθία της αλληλεπίδρασης μεταξύ αντικειμένων 30
Sequence diagram για την εκτέλεση ανάληψης 31
Sequence diagram για την εκτέλεση κατάθεσης 32