e96d4e93238795ae9666f2063600a2f2.ppt
- Количество слайдов: 75
ΔΥΝΑΜΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ ä Οψεις της UML ä Οψεις καί Διαγράμματα ä Δυναμικά Διαγράμματα ä Διαγράμματα Καταστάσεων ä Διαγράμματα Ακολουθίας ä Διαγράμματα Συνεργασίας ä Διαγράμματα Δραστηριοτήτων
Oψεις της UML Component view Logical view Use-case View Deployment view Concurrency View
Οψη περίπτωσης χρήσης Use Case View ä Περιγράφει το ΤΙ. Δηλαδή τί λειτουργι- κότητα που αναμένεται να προσφέρει το σύστημα σε εξωτερικούς actors ä Οδηγεί τη δημιουργία των άλλων όψεων ä Χρησιμοποιείται γιά επικύρωση καί επιβεβαίωση από ä πελάτες, σχεδιαστές, προγραμματιστές, ελεγκτές
Λογική Όψη Σχεδιασμού Logical View or Design View ä Περιγράφει το ΠΩΣ, δηλαδή πως παρέχεται η λειτουργικότητα του συστήματος ä Είναι χρήσιμο γιά τους σχεδιαστές καί τους προγραμματιστές
Όψη Συστατικών/Υλοποίησης Component/Implementation View ä Δείχνει ä την οργάνωση των συνιστωσών του κώδικα (code components) ä τη δομή των συνιστωσών, τις εξαρτήσεις μεταξύ τους, κατανομή πόρων, διοικητικές πληροφορίες ä Χρησιμοποιείται από τους προγραμματιστές
Οψη Διεργασιών Concurrency/Process View ä Περιγράφει την κατανομή σε διεργασίες καί επεξεργαστές ä Συνισφέρει στην αποδοτική χρήση των πόρων ä Χρησιμοποιείται από όσους αναπτύσσουν καί ενοποιούν λογισμικό
Φυσική Όψη Deployment View ä Περιγράφει τη φυσική όψη του συστήματος, δηλαδή τις φυσικές συνιστώσες του συστήματος: υπολογιστές, περιφερειακά, συνδέσεις ä Χρησιμοποιείται από όσους αναπτύσσουν, ενοποιούν καί ελέγχουν το λογισμικό
UML Διαγράμματα ä ä ä ä Use case diagrams Class Diagrams and Object Diagrams State Diagrams Sequence Diagrams Collaboration Diagrams Αctivity Diagrams Component Diagrams Deployment Diagrams
UML Όψεις καί Διαγράμματα UML Views and Diagrams
UML Διαγράμματα ä Use case diagrams ä Class Diagrams and Object Diagrams ä State Diagrams Sequence Diagrams Collaboration Diagrams Αctivity Diagrams ä ä ä Component Diagrams Deployment Diagrams Διαγράμματα Λειτουργικότητας Στατικά Διαγράμματα Συμπεριφοράς/ Δυναμικά Διαγράμματα Υλοποίησης
UML Διαγράμματα Λειτουργική Όψη Στατική Όψη Δυναμική Όψη ‘Οψη Υλοποίησης Use case διάγραμμα Διαγράμματα αντικειμένων και κλάσεων Kαταστάσεων, Ακολουθίας, Συνεργασίας, Δραστηριοτήτων Εξαρτημάτων, ανάπτυξης
Δυναμικά Διαγράμματα Γιατί χρειάζονται; ä ä ä Γιά να δείξουν στοιχεία που δεν δείχνουν τα διαγράμματα κλάσεων Γιά την κατανόηση της συμπεριφοράς ενός αντικειμένου σε σχέση με το χρόνο Γιά την κατανόηση συμπεριφοράς που εξαρτάται από την κατάσταση του αντικειμένου Γιά την αποκάλυψη κρυμμένων ιδιοτήτων Γιά τον προσδιορισμό ιδιωτικών λειτουργιών ή λειτουργιών που λείπουν Γιά τον προσδιορισμό της αλληλουχίας των λειτουργιών καί των μυνημάτων
Είδη δυναμικών διαγραμμάτων u Διαγράμματα καταστάσεων (State Diagrams) : Περιγράφουν τις διάφορες καταστάσεις που μπορεί να κατέχει κάποιο αντικείμενο και τα γεγονότα που οδήγησαν στην αλλαγή u Διαγράμματα ακολουθίας (Sequence Diagrams): Περιγράφουν πώς τα αντικείμενα αλληλεπιδρούν μεταξύ τους, εστιάζοντας περισσότερο σε θέματα χρόνου. u Διαγράμματα συνεργασίας (Collaboration Diagrams) : Περιγράφουν πως τα αντικείμενα επικοινωνούν μεταξύ τους, εστιάζοντας σε θέματα χώρου. u Διαγράμματα δραστηριοτήτων (Activity Diagrams) : Δίνουν έμφαση σε θέματα λειτουργιών. Τα αντικείμενα εκτελούν κάποιο έργο μέσω κάποιων δραστηριοτήτων
Διαγράμματα Καταστάσεων State Charts ή State Diagrams
Τα δυναμικά αντικείμενα αλλάζουν κατάσταση με την πάροδο του χρόνου ä Η συμπεριφορά/κατάσταση επηρεάζεται από: ä ä ä αλλαγές σε τιμές μεταβλητών αποτελέσματα λειτουργιών εξωτερικά ή εσωτερικά γεγονότα/συμβάντα
Διαγράμματα Καταστάσεων ä ä Περιγράφουν ä τον κύκλο ζωής των στιγμιοτύπων των κλάσεων ä την εκτέλεση μίας πράξης ενός στιγμιοτύπου μίας κλάσης μοντελοποιούν ä τις πιθανές καταστάσεις των στιγμιοτύπων των κλάσεων ä τις πιθανές μεταβάσεις από μία κατάσταση σε άλλη ä τα συμβάντα που προκαλούν τις μεταβάσεις ä τις πράξεις (δράσεις και δραστηριότητες) που εκτελούνται στην κατάσταση ή κατά τη μετάβαση
Διάγραμμα Κατάστασης: Σχηματική Αναπαράσταση Δημιουργία τιμολογίου Απλήρωτο Πληρωμή Πληρωμένο Καταστροφή τιμολογίου Ο μαυρισμένος κύκλος δείχνει το σημείο έναρξης των τιμολογίων (δημιουργία αντικειμένου). Ο κύκλος με το άσπρο περίγραμμα φανερώνει το σημείο λήξης (καταστροφή αντικειμένου). Τα βέλη ανάμεσα στις καταστάσεις δείχνουν τις μεταβολές των καταστάσεω και τα γεγονότα/συμβάντα που τον προκαλούν
Είδη γεγονότων/συμβάντων ä Call. Event: λήψη ενός μηνύματος, π. χ. cancel ä Signal. Event: λήψη ενός σήματος, π. χ. left_button_down ä Change. Event: συνθήκη γίνεται αληθής, π. χ. when(x<y) ä Time. Event: σχετικό ή απόλυτο σημείο στο χρόνο, π. χ. after(5 sec)
Μυνήματα - Τύποι μηνυμάτων Τα μυνήματα δείχνουν την αλληλεπίδραση μεταξύ των αντικειμένων καί είναι τριών ειδών: u Απλά : Περιγράφουν πως ο έλεγχος περνάει από το ένα αντικείμενο στο άλλο , χωρίς να περιγράφει λεπτομέρειες για την επικοινωνία u Σύγχρονα : Υλοποιούνται σαν μια κλήση συνάρτησης. Η συνάρτηση που διαχειρίζεται το μήνυμα συμπληρώνεται πριν τη διαδικασία της εκτέλεσης. u Ασύγχρονα : O αποστολέας συνεχίζει να εκτελεί τις υπόλοιπες λειτουργίες του αφού στείλει το μήνυμα , χωρίς να περιμένει για την διαχείρισή του. Χρησιμοποιείται κυρίως σε συστήματα πραγματικού χρόνου, όπου τα αντικείμενα εκτελούνται ταυτόχρονα
Σχηματική αναπαράσταση τύπου μηνυμάτων Σύγχρονα Ασύγχρονα Απλά Σύγχρονα με άμεση επιστροφή
Διάγραμμα κατάστασης χωρίς σημείο τέλους On first floor Go up (floor) Moving up arrived Moving to 1 st floor arrived Moving down arrived Go down (floor) Time out Idle Go up (floor
Διάγραμμα Καταστάσεων γιά την κλάση appointment cancel() Canceled Appointment start duration delete() new() Enter Details Active cancel() delete() Finished when(start + duration <= now)
Μετάβαση κατάστασης ä ä ä Μία μετάβαση κατάστασης λαμβάνει χώρα αν ä λαμβάνει χώρα ένα συμβάν και ä η συνθήκη είναι αληθής Υποθέσεις ä η έλειψη συμβάντος δηλώνει ότι η δραστηριότητα έχει τελειώσει (μετάβαση ολοκλήρωσης) ä η έλλειψη συνθήκης αντιστοιχεί σε [true] Είναι δυνατές οι δράσεις κατά τη μετάβαση ä Ειδική δράση: αποστολή μηνύματος σε άλλο αντικείμενο ^receiver. message() ä Παράδειγμα: ä right-mouse-down (loc) [loc in window] / obj : = pickobj(loc); ^obj. highlight()
ΤΜΗΜΑΤΑ ΚΑΤΑΣΤΑΣΗΣ Όνομα Μεταβλητές κατάστασης Δραστηριότητες Η τυπική σύνταξη γιά το τμήμα δραστηριοτήτων έχει ως εξής: Event-name argument-list ‘/ ‘ action-expression Το event-name μπορεί να είναι κάποιο γεγονός πχ είσοδος , έξοδος κι εκτέλεση. Η action-expression φανερώνει ποια ενέργεια πρέπει να εκτελεστεί (αύξηση μετρητών, κλήση συναρτήσεων)
Παράδειγμα κατάστασης Login-time=Current time Entry/type «login» do/get user name do / get password help/display help exit/login(user name, pwd) H κατάσταση login περιλαμβάνει τη log-in time που σχετίζεται με τη τρέχουσα ώρα κι όπου ένας αριθμός ενεργειών εφαρμόζονται πάνω πάν στην είσοδο , έξοδο και εκτέλεση
Τυπική σύνταξη για την μετάβαση κατάστασης Event-signature ‘ [ ‘ guard-condition ‘]’ action-expression ‘ ^ ‘ send-clause
Υπογραφή γεγονότος (Event-signature Ορισμός Αποτελείται από ένα όνομα γεγονότος και παραμέτρους που προσδιορίζουν το γεγονός που ενεργοποιεί μια μετάβαση από μι κατάσταση σε μια άλλη Σύνταξη παραμέτρων Όνομα -παραμέτρου ‘ : ‘ έκφραση-τύπου , όνομα παραμέτρου ‘ : ‘ έκφραση-τύπου. ( η έκφραση τύπου δεν είναι τίποτε άλλο από τον τύπο της παραμέτρου πχ ακέραιος, πραγματικός ) Παραδείγματα draw ( f: Figure, c: Color) print (invoice)
Συνθήκη φύλαξης ( Guard Condition) Ορισμός Eίναι μια λογική έκφραση που βρίσκεται σε μια μετάβαση κατάστασης. Αν η συνθήκη φύλαξης συνδυάζεται με μια υπογραφ γεγονότος (event-signature) , για να ενεργοποιηθεί η μετάβαση κατάστασης , πρέπει να είναι αληθής η συνθήκη φύλαξης. Παράδειγμα μεταβάσεων καταστάσεων με guard cond [t = 15 sec] [number-of-invoices > n] withdrawl (amount) [balance >= amount]
Έκφραση-Δράσης (Action-expression) Oρισμός Η έκφραση δράσης (action-expression) είναι μια έκφρ διαδικασιών που εκτελείται όταν ενεργοποιείται η μετάβα καταστάσεων. Αυτή μπορεί να γραφτεί είτε μέσα στο αντικείμενο που κατέχει όλες τις καταστάσεις , είτε με παραμέτρους εντός της υπογραφής συμβάντος Παραδείγματα των action-expression increase () / n: =n+1 / m: =m+1 add (n) / sum : = sum + n Αction expression
Send-Clause ( Όροι αποστολής) Ορισμός To send -clause είναι μια σαφής σύνταξη για την αποστολή του μηνύματος κατά την διάρκεια της μετάβασης ανάμεσα σε δύο καταστάσεις. Σύνταξη Αποτελείται από μια έκφραση προορισμού κι ένα όνομα συμβάν Η έκφραση προορισμού μπορεί να αξιολογεί ένα αντικείμενο ή έν σύνολο από αντικείμενα. Παράδειγμα [timer = Time-out ] / go down (first floor) αυτό μεταφράζεται σ’ ένα send-clause ως εξής : [timer = Time-out ] ^ self. go down (first floor)
Events (Γεγονότα) Ορισμός Ένα γεγονός είναι κάτι που συμβαίνει και μπορεί να προκαλέσει κάπ ενέργεια (action ) πχ το πάτημα ενός κουμπιού μπορεί να προκαλέσ έναρξη της ενέργειας play. Causality (σχέση αιτίου-αιτιατού) Όταν υπάρχουν καλά ορισμένες συνδέσεις ανάμεσα στα γεγονότα και στις ενέργειες , αυτό καλείται αιτιώδης συνάφεια (causality)
Είδη των μηνυμάτων στην UML u. Mια συνθήκη γίνεται αληθής : Αυτό παριστάνεται σαν μια συνθήκη φύλαξης σε ένα διάγραμμα κατάστασης uΛήψη ενός συγκεκριμένου σήματος από άλλο αντικείμενο. Το μήνυμα είναι επίσης ένα αντικείμενο. Παριστάνεται στις υπογραφές συμβάντος στα διαγράμματα κατάστασης. Αυτό το είδος συμβάντος ονομάζεται μήνυμα. uΛήψη από μια κλήση μιας λειτουργίας από άλλο αντικείμενο. Ονομάζεται επίσης μήνυμα και παριστάνεται σαν υπογραφή συμβάντος uΠέρασμα μιας συγκεκριμένης χρονικής περιόδου : O χρόνος υπολογίζεται μετά από κάποιο συγκεκριμένο γεγονός ή μετά το πέρασμα κάποιου χρονικού ορίου
Παράδειγμα Digital. Watch mode. Button() inc / hours: =hours+1 Display time do / Display current time mode. Button new inc / min: =min+1 mode. Button Set hours Set minutes entry / beep do / display hours entry / beep do / display minutes mode. Button
Εκλεπτύνσεις διαγραμμάτων ä Ξένα μεταξύ τους υποδιαγράμματα - OR- εκλέπτυνση ä Ακριβώς μία υποκατάσταση είναι ενεργή κάθε φορά που είναι ενεργή η υπερ-κατάσταση (σύνθετη κατάσταση) Z A B
Aποστολή μηνύματος ανάμεσα σε διαγράμματα καταστάσεων Υποκαταστάσεις (substates) Εν κινήσει Προς τα εμπρός Προς τα πίσω Μια υποκατάσταση διάζευξης (or-substate) έχει υποκαταστάσεις αλλά μόνο μία κάθε φορά μπορεί να είναι ενεργή. Για παράδειγμα ένα αυτοκίνητο που βρίσκεται στην κατάσταση εν κινήσει μπορεί να έχει δύο υποκαταστάσεις μπροστά ή πίσω. Είναι αυτονόητο ότι οι δύο αυτές υποκαταστάσεις , δεν μπορεί να είναι ενεργές ταυτόχρονα.
Εκλέπτυνση διαγραμμάτων (2) ä Παράλληλες υποκαταστάσεις - AND- εκλέπτυνση ä Όταν η υπερκατάσταση είναι ενεργή και όλες οι υποκαταστάσεις είναι ενεργές ä Οι υποκαταστάσεις εκλεπτύνονται με OR Z A B
Παράδειγμα - Appointment (1/2) cancel new Canceled delete Enter Details Active Finished when(start + duration <= now)
Παράδειγμα - Appointment (2/2) Active Occurred when(start<=now) Not Current Reschedule (new. Start) [not in Current] / start : = new. Start Fixed when(start+duration<=now) Rescheduled do/notify participants and update views
Μια υποκατάσταση σύζευξης (And-substate) Εν κινήσει Προς τα εμπρός Προς τα πίσω Χαμηλή ταχύτητα Υψηλή ταχύτητα Μια υποκατάσταση σύζευξης (and-substate) μπορεί να συμβεί ταυτόχρονα κάποια άλλη. Στο παραπάνω παράδειγμα συνδυάζεται και με or-substrate κ υποκατάσταση μπροστά , μπορεί να συνυπάρξει με την υποκατάσταση χ υψηλή ταχύτητα.
Ιστορική κατάσταση (1/2) ä ä ä Οι σύνθετες καταστάσεις μπορούν να θυμούνται την εσωτερική κατάσταση από την οποία έφυγαν λόγω διακοπής. Στο μέλλον μπορούν να επιστρέψουν σε αυτή μέσω μίας μετάβασης από την υπερκατάσταση μέσω μίας ψευδοκατάστασης H. ä επανεκτελούνται όλες οι δράσεις εισόδου. Μέσω της Η* απομνημονεύονται όλες οι καταστάσεις στο βάθος της ένθεσης.
Ιστορική κατάσταση (2/2) + when(Balance < 0) - when(Balance > 0) Balancing [not in Frozen] / Balance : = 0 H Deposit(b) / Balance : = Balance + b Withdrawal(b) [not in Frozen] / Balance : = Balance - b Open / Balance : = 0 Normal Freeze Frozen Unfreeze
Σημασιολογία AND-εκλέπτυνσης when(Balance < 0) N/+ N/- when(Balance > 0) Balancing / Balance : = 0 Freeze Withdrawal(b) / Balance : = Balance - b Unfreeze Freeze Unfreeze H when(Balance < 0) F/+ H* when(Balance > 0) F/- Deposit(b) / Balance : = Balance + b Open / Balance : = 0
Κατάσταση stubbed Question yes no F 1 / display help do / pose question “ναι” yes “όχι” no
Κατάσταση synch ä Συγχρονισμός ελέγχου ανάμεσα σε συντρέχουσες περιοχές. ä Παραγωγός - καταναλωτής. ä Κατά την ενεργοποίηση εισάγεται στην κατάσταση synch ένα διακριτικό (token) (το πολύ k διακριτικά, k = 1, 2, … *). ä Η εξερχόμενη μετάβαση μπορεί να ενεργοποιηθεί μόνο αν υπάρχει τουλάχιστον ένα διακριτικό.
Παράδειγμα P 1 P 2 k C 1 C 2
Διαγράμματα Ακολουθίας Sequence Diagrams
Γενικά χαρακτηριστικά των διαγραμμάτων ακολουθίας (sequence diagram) u Φανερώνουν πώς τα αντικείμενα αλληλεπιδρούν μεταξύ τους. u Εστιάζουν στο πώς στέλνονται και λαμβάνονται μηνύματα ανάμεσα στα αντικείμενα. u Έχουν δύο άξονες : ο κάθετος άξονας που δείχνει τον χρόνο κι ο οριζόντιος που φανερώνει ένα σύνολο αντικειμένων. u Κάθε αντικείμενο του οριζόντιου άξονα παριστάνεται από ένα ορθογώνιο που έχει υπογραμμισμένο το όνομα της κλάσης u Επίσης μια διακεκομμένη κάθετη γραμμή ονομάζεται γραμμή ζωής του αντικειμένου(lifeline) , και δείχνει την εκτέλεση του αντικειμένου κατά την διάρκεια της ακολουθίας. u Η ανάγνωση του ακολουθιακού διαγράμματος γίνεται από πάνω προς τα κάτω , βλέποντας με αυτόν τον τρόπο την ακολουθία των μηνυμάτων με την πάροδο του χρόνου.
Μορφές των διαγραμμάτων ακολουθίας (γενική ή στιγμιότυπο)- generic or instance ä Η μορφή στιγμιότυπο περιγράφει λεπτομερώς ένα συγκεκριμένο σενάριο ä Η γενική μορφή περιγράφει όλες τις εναλλακτικές ενός σεναρίου , έτσι μπορούν να συμπεριληφθούν σε αυτή διακλαδώσεις , συνθήκες κι επαναλήψεις. ä Το μήνυμα (message) είναι ένας τρόπος επικοινωνίας ανάμεσα στα αντικείμενα , που μεταφέρει πληροφορίες με την προσδοκία ότι θα ληφθεί κάποια ενέργεια. Μπορεί να είναι σύγχρονο, ασύγχρονο ή απλό. ä Όταν λαμβάνεται κάποιο μήνυμα , αρχίζει μια δραστηριότητα στο λαμβανόμενο αντικείμενο. Αυτό οναμάζεται ενεργοποίηση (activation)
ΤΙ ΠΑΡΙΣΤΑΝΕΙ ΚΑΘΕ ΙΔΙΑΙΤΕΡΟ ΣΧΗΜΑ ΣΕ ΕΝΑ ΑΚΟΛΟΥΘΙΑΚΟ ΔΙΑΓΡΑΜΜΑ Εκτύπωση(αρχείου) : Υπολογιστής Απλό μήνυμα Δραστηριοποίηση Σύγχρονο μήνυμα Γραμμή ζωής (lifeline) Επιστροφή : Serverεκτυπωτ. : Εκτυπωτής Εκτύπωση(αρχ. ) [όχι ουρά] εκτυπ. (αρχείου) Αντικείμενο Συνθήκη φύλαξη
Παράδειγμα ακολουθιακού διαγράμματος (sequence diagram Περιγραφή εναλλακτικών καταστάσεων σε ακολουθιακό διάγραμμα : Υπολογιστής : Serverεκτυπ. Εκτύπωση(αρχ. ) : Εκτυπωτής [Εκτυπ, ελευθερος] εκτυπ (αρχείου) Εκτυπ. απασχολημ. Αποθ. αρχείου : Ουρά
Ετικέτες που προσδιορίζουν κάποιους περιορισμούς Εκτύπωση(αρχείου) : Yπολογιστής a { b-a < 5 sec} b : Serverεκτυπωτ : Εκτυπωτής Εκτυπ (αρχείου) Εκτυπ. α ρχείου { b’-b <1 sec} b’ Οι ετικέτες χρησιμοποιούνται για να προσδιορίσουν περιορισμούς σχετικά με τον χ Η χρονική διάρκεια ανάμεσα στο a και το b δεν πρέπει να είναι μεγαλύτερη από 5 s To μήνυμα Εκτύπωση από τον Serverεκτυπωτή θα πρέπει να ληφθεί εντός ενός δευτερολέπτου. Οι περιορισμοί φαίνονται μέσα σε άγκιστρα.
Ετικέτες που προσδιορίζουν επανάληψη (διακοπή της με κάποια συνθήκη) op 1( ) C 1: C D 1: D Op 2( ) Στείλε το μήνυμα op 2 μέχρι. . . Op 3( ) D 2: D
Δημιουργία αντικειμένων New. Customer(Data) : Customer. Window Customer(Data) : Customer Ένα αντικείμενο μπορεί να δημιουργήσει κάποιο άλλο αντικείμενο μέσω ενός μηνύματ Το αντικείμενο τοποθετείται ακριβώς τη χρονική στιγμή που δημιουργείται (στον κάθετο άξονα του χρόνου). Το μήνυμα δημιουργίας ενός αντικειμένου είναι ένα σύγχρονο μήνυμα
ΚΑΤΑΣΤΡΟΦΗ ΑΝΤΙΚΕΙΜΕΝΟΥ Remove. Customer() : Customer. Window : Customer Delete. Customer( ) X Όταν ένα αντικείμενο καταστρέφεται, μαρκάρεται με ένα μεγάλο Χ. Επίσης διαγράφετ η γραμμή ζωής (lifeline) από το σημείο καταστροφής του αντικειμένου κι έπειτα.
ΑΝΑΔΡΟΜΗ (RECURSION) Oper( ) Object name : class Oper() H λειτουργία oper ( ) καλεί τον εαυτό της. . Πρέπει να υπάρχει μια συνθήκη στην λειτ που διακόπτει την αναδρομή
Διαγράμματα συνεργασίας Collaboration diagrams
Διάγραμμα συνεργασίας (collaboration diagram) - Γενικά χαρακτηριστικά • Το διάγραμμα συνεργασίας εστιάζει σε θέματα χώρου σε • • • αντίθεση με το διάγραμμα ακολουθίας που εστιάζει σε θέματα χρόνου. Δείχνει τα αντικείμενα και τους μεταξύ τους συνδέσμους καθώς επίσης και τα μηνύματα που στέλνονται ανάμεσα στα συνδεδεμένα αντικείμενα. Τα μηνύματα συνοδεύονται κι από ετικέτες που προσδιορίζουν μεταξύ άλλων και τον ακολουθιακό αριθμό του μηνύματος. Αρχικοποιείται με ένα μήνυμα όπως η κλήση μιας συνάρτησης.
Παράδειγμα διαγράμματος συνεργασίας (collaboration diagram) Εκτύπωση(αρχείου) : Υπολογιστής 1: εκτύπωση(αρχείου) : Serverεκτυπωτ. : Εκτυπωτής [εκτυπωτ. ελεύθερος] 1. 1: εκτύπωση (αρχείου) O actor στέλνει ένα μήνυμα εκτύπωσης στον υπολογιστή. Ο υπολογιστής σ ένα μήνυμα εκτύπωσης στον server του εκτυπωτή. Ο server του εκτυπωτή μήνυμα εκτύπωσης στον εκτυπωτή αν αυτός είναι ελεύθερος.
ΡΟΗ ΜΗΝΥΜΑΤΩΝ ΣΥΝΤΑΞΗ ΕΤΙΚΕΤΩΝ ΤΟΥ ΜΗΝΥΜΑΤΟΣ Σύνταξη ετικέτας μηνύματος προκάτοχος συνθήκη-φύλαξης έκφραση-ακολουθίας επιστρεφόμενη υπογραφόμενη τιμή predecessor guard-condition sequence-expression return-value: =signa Σύνταξη προκατόχου αριθμός-ακολουθίας ‘ , ’ … ‘/’ Σύνταξη συνθήκης φύλαξης ‘ [ ‘ συνθήκη ‘ ] ‘ Σύνταξη έκφραση ακολουθίας [ακέραιος | όνομα ] [αναδρομή] ‘: ‘ Σύνταξη αναδρομής ‘* ‘ ‘[ ‘ συνθήκη επανάληψης ‘] ‘ ‘[ ‘ συνθήκη ‘ ] ‘
Τρόπος αναπαράστασης επανάληψης κι επιστρεφόμενης τιμής σε ένα collaboration diagra Calcprim (n) : Calculator Επιστρεφόμεν τιμή 1* [z: =1. . n] : prim : =next. Prim(prim) : Prim module επανάληψη
Σύνδεσμοι (Links) Ρόλοι αντικειμένων στους συνδέσμους u Σφαιρικός (global) : προσδιορίζει ότι το αντίστοιχο στιγμιότυπο είναι ορατό σε ολόκληρο το σύστημα u Τοπικός (local) : το στιγμιότυπο είναι ορατό επειδή είναι μια τοπική μεταβλητή στη συνάρτηση u Παραμετρικός (parameter) : το αντίστοιχο στιγμιότυπο είναι ορατό επειδή αποτελεί την παράμετρο μιας συνάρτησης. u Ατομικός (self) : ο περιορισμός αυτός προσδιορίζει ότι ένα αντικείμενο μπορεί να στείλει κάποιο μήνυμα και στον εαυτό του u Από ψηφοφορία (vote) : αυτή προσδιορίζει ότι η επιστρεφόμενη τιμή επιλέγεται ανάμεσα από μια συλλογή μηνυμάτων επιστροφής , λόγω πλειοψηφίας. u Εκπομπή (broadcast) : προσδιορίζει ότι το σύνολο των μηνυμάτων ενεργοποιούνται σε τυχαία σειρά.
Η ζωή ενός αντικειμένου (lifetime of an object) Δημιουργία ενός αντικειμένου σ’ένα διάγραμμα συνεργασίας. 2: nextjob=Getjob() 1. 1 [all queues] : len: =Length() {broadcast} 1. 3 : invoke (job) : Queue : Elevator {parameter} job : Elevator control : Order(new) 1. 2: Create() job {local} nextjob 1: Getelevator(floorid) : Button Push() Ένα διάγραμμα συνεργασίας όπου κάποιος actor πατάει ένα κουμπί για να φέρει τον ανελκυστήρα στον όροφό του. Το αντικείμενο elevator control ελέγχει το μήκος όλων των ουρών εργασίας του ανελκυστήρα κι επιλέγει τη μικρότερη. . Μετά δημιουργεί ένα μικρότερη. . Μετά καινούριο job order αντικείμενο και το ανακαλεί με το να το βάλει στην ουρά. Η δήλωση new δηλώνει την δημιουργία ενός ουρά. αντικειμένου. To αντικείμενο elevator τρέχει συγχρόνως καί παίρνει jobs από τις ουρές. O elevator είναι ένα active object, δηλαδή αντικειμένου. εκτελείται συγχρόνως με το δικό του thread of control.
ΖΩΗ ΕΝOΣ ΑΝΤΙΚΕΙΜΕΝΟΥ Προσωρινά αντικείμενα - transient: δημιουργούνται καταστρέφονται στο ίδιο collaboration διάγραμμα. New. Customer() : Main. Window [free memory] 1: Create() : Customer{new} {parameter} 3: show(Customer) 2: Create( ) : Customer. Window {transient} 3. 1: update(data) To αντικείμενο Main Window λαμβάνει το μήνυμα New. Customer και δημιουργεί τ αντικείμενο Customer. To Customer. Window δημιουργείται και το αντικείμενο Cus περνιέται στο Customer. Window , το οποίο επιτρέπει ή όχι την ενημέρωση των δε του πελάτη
Διαγράμματα Δραστηριοτήτων Activity Diagrams
Διάγραμμα δραστηριοτήτων: Στόχοι u Η καταγραφή των ενεργειών που εφαρμόζονται κατά την εκτέλεση μιας λειτουργίας (στιγμιότυπο της υλοποίησης της λειτουργίας) u Περιγραφή της εσωτερικής λειτουργίας ενός αντικειμένου u Περιγραφή συσχετιζόμενων ενεργειών που εφαρμόζονται, και πως αυτές επηρεάζουν τα γύρω αντικείμενά τους. u Υπόδειξη του τρόπου ένα στιγμιότυπο κάποιου use-case μπορεί να εφαρμοστεί στο πλαίσιο των αλλαγών της κατάστασης του αντικειμένου. u Αναφορά στο πώς μια επιχείρηση λειτουργεί (εργαζόμενοι, ροή εργασιών, οργάνωση και αντικείμενα)
Ενέργειες και μεταβάσεις (Actions and transitions) Customer. Window. Print. All. Customers() Show Message. Box “Printing” on Screen Create postsscript file Σημείο έναρξης Ενέργεια (Action) Σημείο λήξης Μετάβαση Remove Message. Box Send Postcript file to printer Όταν κάποιος καλεί την συνάρτηση εκτύπωση( ), τότε αρχίζουν οι διάφορες ενέργειες. Η πρώτη ενέργεια είναι η εμφάνιση μηνύματος στην οθόνη , ενώ η δεύτερη η δημιουργία κάποιου αρχείου. Τρίτη ενέργεια η αποστολή αρχείου εκτυπωτή και τέταρτη η εξαφάνιση των κουτιών μηνυμάτων.
Παράδειγμα μετάβασης μεταξύ καταστάσε Show Message. Box Customer. Window. Print. All. Customer () «Printing on screen» Remove Message. Box Create postscript file ^Printer. Print(file) Οι μεταβάσεις ανάμεσα στις καταστάσεις μπορούν να παρασταθ με βέλη τα οποία πιθανώς να συνοδεύονται από κάποιες συνθή φύλαξης (guard-condition) , όροι αποστολής (send-clause) κτλ.
Μετάβαση καταστάσεων μέσω κάποιων συνθηκών φύλαξης [ Δίσκος γεμάτος ] ΠαράθυροΠελάτη. Εκτύπωση ( ) Εμφάνισε μύνημα «Δίσκος γεμάτος» Εμφάνισε μύνημα «Εκτύπωση» στην οθόνη [ Ελεύθερος χώρος δίσκου ] ^Εκτυπωτής. Εκτύπωση() Δημιουργησε Μετακίνησε κουτιά μηνυμάτων postscript αρχείο Ο ρόμβος φανερώνει ότι ακολουθεί κάποια διακλάδωση. Ανάλογ λοιπόν αν ισχύει ή όχι κάποια συνθήκη έπεται η αντίστοιχη ενέρ
Η έντονη γραμμή φανερώνει ότι οι ενέργειες που ακολουθο ακολουθ εκτελούνται παράλληλα. Επίσης υποδηλώνουν την ενοποίηση των διακλαδιζόμενων ενεργειών. Sampler. Run(channerl, frequency) Initiate Updating displayer Measuring
Το swimlane δείχνει που εφαρμόζονται οι διάφορες ενέργειες, δηλ. σε ποιο αντικείμενο ή σε ποιο κομμάτι της οργάνωσης Displayer Sampler. run(channel, freq. ) Initiate Updating displayer Μeasuring
Aντικείμενα στο διάγραμμα δραστηριοτήτ Δειγματολήπτη Οθόνη Sampler. Run (channel, frequency) Αντικείμενο , που χρησιμεύει σαν είσοδος στην Updating Displayer και σαν έξοδος measuring Updating displayer Initiate Measured value Measuring
Μυνήματα στα διαγράμματα δραστηριοτήτω a. Printer: Printer Print Customer. Window. Print. All. Customers ( ) Show Message. Box ‘Printing’ on screen Create postcript file Print (file) Remove Message. Box
Περίληψη (1/3) ä ä Όλα τα συστήματα έχουν στατική δομή καί δυναμική συμπεριφορά Η στατική δομή περιγράφεται με κλάσεις, συσχετίσεις, αντικείμενα καί συστατικά Η συμπεριφορά περιγράφει πώς αλληλεπιδρούν στο χρόνο τα συστατικά της στατικής δομής Η UML παρέχει 4 διαγράμματα γιά τη μοντελοποίηση της δυναμικής συμπεριφοράς, καθένα από τα οποία εξυπηρετεί διαφορετικό σκοπό ä διαγράμματα καταστάσεων, ακολουθίας, συνεργασίας καί δραστηριοτήτων
Περίληψη (2/3) ä Τα διαγράμματα κατάστασης περιγράφουν τη συμπεριφορά καί τις εσωτερικές καταστάσεις μιάς κλάσης ή ενός συστήματος ή υποσυστήματος. Εστιάζουν στο πώς τα αντικείμενα αλλάζουν καταστάσεις στο χρόνο ανάλογα με το τί συμβαίνει: γεγονότα, συμπεριφορά καί δραστηριότητες μέσα στις καταστάσεις, καί μεταβάσεις. Ένα γεγονός μπορεί να είναι η επαλήθευση μιάς συνθήκης, η λήψη ενός μυνήματος ή απλά η πάροδος του χρόνου. ä Τα διαγράμματα ακολουθίας περιγράφουν πώς ένα σύνολο από αντικείμενα αλληλεπιδρούν μεταξύ τους βάσει ενός συγκεκριμένου σεναρίου. Εστιάζουν στη διαδοχή των μυνημάτων που στέλνονται καί λαμβάνονται μεταξύ των αντικειμένων. Έχουν δύο άξονες: τον κάθετο άξονα που δείχνει το χρόνο καί τον οριζόντιο άξονα που δείχνει τα αντικείμενα που εμπλέκονται στο σενάριο. Η βασική εστίαση των διαγραμμάτων ακολουθίας είναι ο χρόνος.
Περίληψη (3/3) ä Τα διαγράμματα συνεργασίας περιγράφουν πώς αλληλεπιδρούν τα αντικείμενα στο χώρο, δηλαδή, εκτός από τη δυναμική τους αλληλεπίδραση, το διάγραμμα δείχνει καί πώς συνδέονται μεταξύ τους τα αντικείμενα. Δεν υπάρχει άξονας χρόνου. Τα μυνήματα αριθμούνται ακολουθιακά. ä Τα διαγράμματα δραστηριοτήτων περιγράφουν πώς γίνονται οι διάφορες δουλειές που πρέπει να εκτελεστούν. Χρησιμοποιούνται γιά να περιγράψουν λειτουργίες, κλάσεις, use cases, καθώς επίσης καί γιά να δείξουν ροή εργασίας. Μπορούν επίσης να χρησιμοποιηθούν γιά να μοντελοποιήσουν επιχειρησιακές διαδικασίες με εργαζόμενους καί οργανωτικές δομές.
e96d4e93238795ae9666f2063600a2f2.ppt