HY 351: Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων CS 351: Information Systems Analysis and Design ΗΥ351: Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Μοντελοποίηση Συμπεριφοράς (Behavioral Modeling) : care O ful: r Distr d ibut dispatch e or r loop[for each line item] alt [value>10k] dispatch regu lar: Distr ibut or : Mes sen ger Unpaid partial payment Partly Paid final payment final payment Fully Paid Γιάννης Τζίτζικας [else] opt [needsconfirm] dispatch confirm ιάλεξη : 11 Ημερομηνία : 29-11-2006 U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 1 ιάρθρωση Τι είναι η μοντελοποίηση Συμπεριφοράς Interaction Diagrams (διαγράμματα αλληλεπίδρασης) Sequence Diagrams (ακολουθιακά διαγράμματα) Communication Diagrams (διαγράμματα επικοινωνίας) State diagrams (διαγράμματα καταστάσεων) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 2 1
Τι εξυπηρετεί η Μοντελοποίηση Συμπεριφοράς; Για να δείξουμε τα μηνύματα που ανταλλάσσονται μεταξύ των αντικειμένων στα πλαίσια μιας Περίπτωσης Χρήσης Υψηλού επιπέδου επιχειρηματικές ανάγκες καταγεγραμμένες στην Πρόταση Συστήματος Καθορισμός Απαιτήσεων Αναλυτική Καταγραφή Συγκεκριμένων απαιτήσεων Επόμενο βήμα Μοντελοποίηση του Συστήματος Λειτουργική /Δομική/Συμπεριφοράς (Functional/Structural/Behavioral) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 3 Πως τα αντικείμενα αυτού του μοντέλου επικοινωνούν; How the objects of this model interact? Customer 1 * Order date Product Order Line 1 1 1..* * id: String Amount: Num price: Num E.g. how the price of an order is calculated? U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 4 2
Πως μοντελοποιούμε τη συμπεριφορά στην Αντικειμενοστραφή Ανάλυση και Σχεδίαση; Συνήθως χρησιμοποιούμε 3 τύπους μοντέλων:: Sequence diagrams Interaction diagrams Communication diagrams (in UML 1. they were called Collaboration Diagrams ) Statechart diagrams Παρατήρηση: Αν μοντελοποιήσουμε τη συμπεριφορά λεπτομερειακά, είναι σαν να υλοποιούμε το σύστημα! Άραπρέπειναεστιάζουμεστασημαντικάσημεία(the key aspects) like storyboarding in film making (i.e. key frames) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 5 Interaction Diagrams ( ιαγράμματα Αλληλεπίδρασης) Interaction Diagrams (Διαγράμματα Αλληλεπίδρασης) Sequence Diagrams (Διαγράμματα Ακολουθίας) Communication/Collaboration Diagrams (Διαγράμματα Συνεργασίας) Περιγράφουν τον τρόπο με τον οποίο μια ομάδα αντικειμένων συνεργάζεται. Ένα διάγραμμα συνήθως περιγράφει τη συμπεριφορά σε μια Περίπτωση Χρήσης. Δείχνει παραδείγματα αντικειμένων που εμπλέκονται και τα μηνύματα που ανταλλάσσονται μεταξύ τους κατά τη διάρκεια της Περίπτωσης Χρήσης. Use Case 18 Interaction Diagrams U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 6 3
Sequence Diagrams ( ιαγράμματα Ακολουθίας) [A] Sequence Diagrams (διαγράμματα ακολουθίας/διαδοχής/αλληλουχίας) : Lecturer : Department : Course : Student Addition of a new student Find( ) Find( ) Add( ) Οριζόντια γραμμή: δείχνει τα αντικείμενα ως κουτιά Κατακόρυφη γραμμή: χρόνος (αυξάνει προς τα κάτω) Activation box: δείχνει πότε το αντικείμενο είναι ενεργό (στη μνήμη) μηνύματα: μεταξύ των activation boxes δύο αντικειμένων U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 8 4
Message Types (Τύποι Μηνημάτων) Τύποι μηνυμάτων Call: κλήση μιας λειτουργίας (Invocation of an operation) Ένα αντικείμενο μπορεί να στείλει ένα μήνυμα στον εαυτό του (local invocation of an operation) Return: επιστρέφει μια τιμή στον καλούντα (returns a value to the caller) Send: στέλνει ένα σήμα (signal) σε ένα αντικείμενο Create: δημιουργεί ένα αντικείμενο Destroy: καταστρέφει ένα αντικείμενο A signal is an object value communicated to a target object asynchronously. After sending a signal, the sending object continues its own execution. When the target object receives the signal message,it independently decides what to do about it. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 9 Πως εικονίζουμε τα μηνύματα; How we depict messages? Ένα βέλος μεταξύ των κατακόρυφων γραμμάτων δυο αντικειμένων Το βέλος συνοδεύεται από όνομα μηνύματος (π.χ. όνομα της καλούμενης λειτουργίας) Πιθανά ορίσματα (possible arguments) Πληροφορίες ελέγχου (control info) condition: δείχνειτοπότετομήνυμαστέλνεται, π.χ. [outofstock] iteration marker: δείχνει ότι το μήνυμα στέλνεται πολλές φορές σε πολλαπλά αντικείμενα, π.χ. *[for all order lines] // for UML 1. Τα μηνύματα επιστροφής (Return messages) συμβολίζονται με διάστικτα βέλη (<- -) Μπορούμε να τα παραλείψουμε και να δείξουμε μόνο τα κρίσιμα. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 10 5
Παραδείγματα Μηνυμάτων (Examples of Messages) Person +assign(task:string) * employment 0..1 Company Διάγραμμα κλάσεων Αντικείμενο τύπου Person assign(task) message p:person :Company assign( Prepare slides ) Message instance Yannis:Person c1:company U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 11 Παραδείγματα Μηνυμάτων A +a1() +a2() B +b1() +b2() Ποια είναι όλα τα δυνατά μηνύματα θεωρώντας το παραπάνω διάγραμμα κλάσεων; a1() a2() b1() b2() a1() a2() b1() b2() U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 12 6
Παράδειγμα Μερικές ροές μηνυμάτων μήκους 2: A +a1() +a2() B +b1() +b2() a1() b1() b1() a1() a1() b2() b1() a2() a1() a2() a2() a2() a2() b1() b2() a1() b1() b2() b2() b2() b2() a1() a2() b1() Ερώτηση: πόσες είναι όλες οι ροές μηνυμάτων μήκους 2; U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 13 Πως τα αντικείμενα αυτού του μοντέλου επικοινωνούν; How the objects of this model interact? Customer 1 * Order date Product Order Line 1 1 1..* * id: String Amount: Num price: Num Πως υπολογίζεται η τιμή μιας παραγγελίας U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 14 7
Παράδειγμα διαγράμματος ακολουθίας Example of a sequence diagram Customer Υπολογισμός τιμής μιας γραμμής μιας παραγγελίας Order Order Line Product calculateprice an Order : OrderLine a: Product : Customer calculateprice getprice(quantity:integer) parameter getdiscountedvalue(an Order) getbasevalue discountedvalue return message (we show only those that can aid understanding) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 15 Παράδειγμα διαγράμματος ακολουθίας διαφορετικής υλοποίησης Sequence diagram of a different implementation Υπολογισμός τιμής μιας γραμμής μιας παραγγελίας : Order : Order Line a : Product : Customer calculateprice getquantity getproduct getpricingdetails Self-call calculatebaseprice calculatedis counts getdiscountinfo U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 16 8
Συγκρίνοντας τα δύο διαγράμματα Comparing the two diagrams : Order : Order Line a : Product : Customer getquantity an Order calculateprice : OrderLine a: Product : Customer getproduct getpricingdetails calculateprice getprice(quantity:integer) calculatebaseprice calculatedis counts getdiscountinfo getdiscountedvalue(an Order) getbasevalue discountedvalue centralized control distributed control Sequence diagrams are not very good at showing details (algs with loops and conditions), but they make the calls between participants very clear and give a good picture about which participants are doing which processing. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 17 Συγκρίνοντας τα δύο διαγράμματα Customer Order Order Line Product : Order : Order Line a : Product : Customer getquantity an Order calculateprice : OrderLine a: Product : Customer getproduct getpricingdetails calculateprice getprice(quantity:integer) calculatebaseprice calculatedis counts getdiscountinfo getdiscountedvalue(an Order) getbasevalue discountedvalue Εδώ μια Order επικοινωνεί με ένα Product (παρόλο που αυτά τα αντικείμενα δεν σχετίζονται στο διάγραμμα κλάσεων) Εδώ μόνο τα αντικείμενα που είναι συσχετισμένα επικοινωνούν U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 18 9
ημιουργία και ιαγραφή Συμμετεχόντων (Creating and Deleting Participants) query database a Handler creation new a Query Command new execute a Database Statement results extra results deletion from another object close results self-deletion In a garbage-collected environment we don t delete objects directly, but it is still worth using X to know when an object is no longer available and can be deleted U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 19 Τι γίνεται με τους βρόγχους; (What about loops?) : Order : Order Line a : Product : Customer calculateprice getquantity getproduct getpricingdetails calculatebaseprice calculatedis counts getdiscountinfo Σε αυτό το διάγραμμα δεν φαίνεται πουθενά ότι οι εικονιζόμενες κλήσεις πρέπει να γίνουν για κάθε παραγγελιογραμμή (OrderLine) μιας Παραγγελίας (Order) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 20 10
Μοντελοποιώντας την δομή ελέγχου (βρόγχοι, συνθήκες) (Loops and Conditionals (modeling control logic)) Δεν είναι αυτή η έμφαση των Διαγραμμάτων Ακολουθίας Θα μπορούσαμε να χρησιμοποιήσουμε Activity Diagrams ή ψευδοκώδικα για αυτόν το σκοπό. procedure dispatch foreach (lineitem) if (product.value > $10K) careful.dispatch else regular.dispatch endif endfor if (needsconfirmation) messenger.confirm end U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 21 Μοντελοποιώντας την δομή ελέγχου (βρόγχοι, συνθήκες) dispatch :Order careful: Distributor regular: Distributor : Messenger procedure dispatch foreach (lineitem) if (product.value > $10K) careful.dispatch else regular.dispatch endif endfor if (needsconfirmation) messenger.confirm end dispatch dispatch confirm U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 22 11
Μοντελοποιώντας την δομή ελέγχου (βρόγχοι, συνθήκες) dispatch :Order careful: Distributor regular: Distributor : Messenger procedure dispatch loop foreach (lineitem) if (product.value > $10K) careful.dispatch else regular.dispatch endif endfor if (needsconfirmation) messenger.confirm end [for each line item] dispatch dispatch confirm U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 23 Μοντελοποιώντας την δομή ελέγχου (βρόγχοι, συνθήκες) dispatch :Order careful: Distributor regular: Distributor : Messenger procedure dispatch loop foreach (lineitem( alt if (product.value > $10K) careful.dispatch else regular.dispatch endif endfor if (needsconfirmation) messenger.confirm end [for each line item] [value>10k] dispatch [else] dispatch confirm U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 24 12
Μοντελοποιώντας την δομή ελέγχου (βρόγχοι, συνθήκες) dispatch :Order careful: Distributor regular: Distributor : Messenger procedure dispatch loop foreach (lineitem( alt if (product.value > $10K) careful.dispatch else regular.dispatch endif endfor if (needsconfirmation) messenger.confirm end [for each line item] [value>10k] dispatch [else] opt [needsconfirm] dispatch confirm U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 25 Βρόγχοι και Συνθήκες (συμβολισμοί της UML 1) dispatch :Order careful: Distributor regular: Distributor : Messenger procedure dispatch foreach (lineitem( if (product.value > $10K) careful.dispatch else regular.dispatch endif endfor if (needsconfirmation) messenger.confirm end *[for each line item] [value>10k] dispatch [else] dispatch [needsconfirm] confirm U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 26 13
Τελεστές διαγραμμάτων ακολουθίας (Operators for sequence diagrams) alt: alternative multiple fragments; only the one whose condition is true will be executed opt: optional fragments; executed only if its condition is true (equiv to alt with one fragment) par: parallel execution of fragments loop: the fragments will be executed multiple times (based on the guard) region: critical region; the fragment can have only one thread executing it at once neg: the fragment shows an invalid interaction ref: reference: refers to an interaction defined on another diagram. The frame is drawn to cover the lifelines involved in the interaction. You can define parameters and a return a value. sd: sequence diagram; used to surround the entire diagram U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 27 Παράδειγμα: Ανάληψη μετρητών από ΑΤΜ (Withdraw cash from an ATM) user:person bank:atm enter(password) valid=verify (password) enter(account) enter(amount) deliver cash U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 28 14
Ανάληψη μετρητών από ΑΤΜ Παράδειγμα χρήσης του τελεστή sd sd withdrawal user:person bank:atm enter(password) valid=verify (password) enter(account) enter(amount) deliver cash U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 29 Ανάληψη μετρητών από ΑΤΜ Παράδειγμα χρήσης των τελεστών sd, loop sd withdrawal user:person bank:atm loop (1,3) [invalid password] enter(password) valid=verify (password) enter(account) enter(amount) deliver cash U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 30 15
Ανάληψη μετρητών από ΑΤΜ Παράδειγμα χρήσης των τελεστών sd, loop, opt sd withdrawal user:person bank:atm loop (1,3) [invalid password] enter(password) valid=verify (password) opt [valid password] enter(account) enter(amount) deliver cash U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 31 Ανάληψη μετρητών από ΑΤΜ Παράδειγμα χρήσης των τελεστών sd, loop, opt, par sd withdrawal user:person bank:atm loop (1,3) [invalid password] enter(password) valid=verify (password) opt [valid password] par enter(account) enter(amount) deliver cash U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 32 16
Έστω ότι έχουμε ήδη ορίσει τα παρακάτω 2 διαγράμματα sd getpassword user:person bank:atm loop (1,3) [invalid password] enter(password) valid=verify (password) sd getcach user:person bank:atm par enter(account) enter(amount) deliver cash U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 33 Μπορούμε να τα «εκμεταλλευτούμε» (επαναχρησιμοποιήσουμε) με τον τελεστή ref sd withdrawal user:person bank:atm ref get password opt [valid password] ref get cash U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 34 17
Άλλο ένα παράδειγμα : ReqForm : ReqControl : Cours e : StudentRec : Schedule register( ) open( ) gettime( ) getdays( ) checkschedulingconflicts( ) measuresshot( ) libraryfees( ) parkingfees( ) new( ) assign(course) assign(schedule) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 35 Communication Diagrams (UML 2.0) ~ Collaboration Diagrams (UML V 1.3) 18
[B] Communication Diagrams (διαγράμματα επικοινωνίας) Collaboration Diagrams (v.1) Sequence Diagram Communication Diagram : Department : Course : Student 1: Find( ) : Department : Lecturer : Lecturer Addition of a new student Find( ) Find( ) Add( ) 2: Find( ) : Course 3: Add( ) : Student Here the sequence is indicated by numbering messages. Advantage: better exploits the drawing space (more compact) Weakness: makes it harder to see the sequence (comparing to sequence diagrams) Sequence Diagram <=> Communication Diagram Automatic transformation is possible (e.g. F5 in Rational rose) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 37 Sequence vs Collaboration Diagrams: Example : Order : Order Line a : Product : Customer calculateprice getquantity getproduct 5:calculateBasePrice() 6:calculateDiscounts() :Order 1:calculatePrice 7:getDiscountInfo :Customer getpricingdetails calculatebaseprice 2:getQuantity 3:getProduct 4:getPricingDetails calculatedis counts getdiscountinfo :Order Line a:product Customer It is like an object diagram that shows message passing relationships instead of aggregation or generalization associations Order Order Line Product U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 38 19
Τρόποι Αρίθμησης Numbering Methods 5:calculateBasePrice() 6:calculateDiscounts() 1:calculatePrice 7:getDiscountInfo 1.4:calculateBasePrice() 1.5:calculateDiscounts() 1:calculatePrice 1.5.1:getDiscountInfo :Order :Customer :Order :Customer 2:getQuantity 4:getPricingDetails 1.1:getQuantity 1.3:getPricingDetails 3:getProduct 1.2:getProduct :Order Line a:product :Order Line a:product Numbering methods 1, 2, 3, 1, 1.1, 1.1.1, 1.1.2, 2.1 (Decimal numbering (used by UML)) communication diagrams have not a precise notation for control logic we could however use iteration markers and guards U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 39 Numbering Methods (II) Why 1.5.1 and not 1.6? 1.4:calculateBasePrice() 1.5:calculateDiscounts() :Order 1:calculatePrice 1.5.1:getDiscountInfo :Customer 1.1:getQuantity 1.2:getProduct 1.3:getPricingDetails Procedural (or nested) sequence 1, 2, 2.1, 2.2 Flat sequence 1, 2, 3, 4 :Order Line a:product ( 2.1 and 2.2 are performed while the object of 2 is still active) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 40 20
Sequence Diagrams vs Communication Diagrams Μερικοί (προγραμματιστές/αναλυτές) προτιμούν τα μεν άλλοι τα δε. : P CustomConfiguration 1. submit() : EComputer : EConfigurationItem 1. submit() 1.1.1. getcomputername() 1.1.3. getprice() 1.1. getcurrentconf() 1.1.1. getcomputername() 1.1. getcurrentconf() : PCustomConfiguration : EComputer 1.1.2. getitemdescr() 1.1.3. getprice() 1.2. new(currentconf) 1.2.1. display() 1.1.2. getitemdescr() 1.2. new(currentconf) : PConfigurationSummary 1.2.1. display() : PConfigurationSummary : EConfigurationItem U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 41 Πότε να χρησιμοποιούμε; When to use Interaction Diagrams To show the behaviour of several objects within a single Use Case Tip: Focus on simplicity If the control is complex split it to several interaction diagrams When use not Interaction Diagrams If you want to look at the behaviour of a single object across multiple use cases, then use a state diagram If you want to look at the behaviour across many use cases and many threads consider an activity diagram U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 42 21
ιαγράμματα Καταστάσεων (State Diagrams) State Diagrams ιαγράμματα Καταστάσεων Παρουσιάζει όλες τις πιθανές καταστάσεις που μπορεί να έχει ένα συγκεκριμένο αντικείμενο (σε όλη τη διάρκεια ύπαρξης του) και πως αυτές αλλάζουν ανάλογα με τα γεγονότα (events) που φθάνουν στο αντικείμενο άρα δεν περιοριζόμαστε σε μια Use Case Ένα διάγραμμα καταστάσεων συνήθως αφορά μία κλάση U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 44 22
State Diagrams ιαγράμματα Καταστάσεων Μπορούμε να τα χρησιμοποιήσουμε από διάφορες προοπτικές Προοπτικές Εννοιολογική: Π.χ. ποιες είναι οι καταστάσεις μιας παραγγελίας στην επιχείρηση; Οι ακυρώσεις επιτρέπονται; Προδιαγραφική Οι καταστάσεις που πρέπει διαχειριστούν οι διεπαφές των κλάσεων Υλοποιητική Οι πραγματικές καταστάσεις των αντικειμένων υλοποίησης U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 45 Βασικές έννοιες States Transitions Events Activities Καταστάσεις Μεταβάσεις Γεγονότα Δραστηριότητες staff of the departhemt Unsuccessfully completed 1 year period Fired Start employ Probabionary do/work End successfully completed 1 year period Permanent do/work Left Resigned state activity transition event U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 46 23
Μεταβάσεις Transitions Active Idle keypress [key=off]/beep Οι μεταβάσεις μπορεί να έχουν ετικέτες της μορφής: Event[Condition]/Action και τα τρία συστατικά τους είναι προαιρετικά Event (γεγονός) Εάν είναι κενό (nil) τότε η μετάβαση πραγματοποιείται μόλις η εργασία έχει ολοκληρωθεί Condition (συνθήκη) Λογική συνθήκη (πρέπει να αληθεύει για να πραγματοποιηθεί η μετάβαση) Οι συνθήκες των μεταβάσεων που εκκινούν από μια κατάσταση πρέπει να είναι αμοιβαίως αποκλειόμενες (mutually exclusive) ώστε να διασφαλίζεται ότι έχουμε μια μοναδική επόμενη κατάσταση Action (δράση) Εργασία που γίνεται «στιγμιαία» και δεν διακόπτεται U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 47 Παράδειγμα μετάβασης με ετικέτα της μορφής Event[Condition]/Action Διάγραμμα καταστάσεων ενός υπαλλήλου Event[Condition]/Action After 1 year [successful so far]/inform the director of personnel staff of the departhemt Start employ Probabionary successfully completed 1 year period Unsuccessfully completed 1 year period Fired Permanent Left Resigned End U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 48 24
Τύποι Γεγονότων Kinds of Events Entry any action related to entry event is executed whenever the given state is entered via a transition Exit when we exit the transition After 20 minutes example of event generated after a period of time When (temperature > 40) example of event generated when a condition becomes true... U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 49 ράσεις vs ραστηριότητες (UML V2) ή Εσωτερικές vs Εξωτερικές ραστηριότητες (UML V2) UML V 1. : Actions vs Activities UML V 2.0: Internal vs External Activities Η διαφορά είναι η εξής: Actions (ή internal activities) σχετίζονται συνήθως με μεταβάσεις (και διαρκούν λίγο) δεν διακόπτονται (not interruptible) Activities (ή external activities) σχετίζονται με καταστάσεις (μπορεί να διαρκούν πολύ) Μπορούν να διακοπούν από γεγονότα (events) Κάθε κατάσταση μπορεί να έχει μια activity που σχετίζεται με αυτήν που συνήθωςσυμβολίζεταιμετοεξήςσυντακτικό: do/activity U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 50 25
Actions vs Activities activity staff of the departhemt Start employ do/working action Probabionary After 1 year [successful so far]/inform the director of personnel successfully completed 1 year period Unsuccessfully completed 1 year period Fired Permanent Left Resigned End U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 51 Παράδειγμα Θυμηθείτε το διάγραμμα κλάσεων με τις Παραγγελίες και το διάγραμμα ακολουθίας που περιγράφει τον υπολογισμό της αξίας μιας παραγγελίας : Order : Order Line a : Product : Customer calculateprice getquantity getproduct Customer Order Order Line Product getpricingdetails calculatebaseprice calculatedis counts getdiscountinfo Ποιες είναι οι (σημαντικές) καταστάσεις ενός αντικειμένου τύπου Order? U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 52 26
Οι καταστάσεις ενός αντικειμένου τύπου Order This concerns an Order object Checking do/ Check item Dispatching do/ initiate delivery Waiting Delivered U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 53 Οι καταστάσεις ενός αντικειμένου τύπου Order (ΙΙ) action condition This concerns an Order object [ Not all items checked ] / get next item activity / get first item [All items checked && some not in stock] Checking do/ Check item [All items checked && all items available] Dispatching do/ initiate delivery event Items Received [all items available] Delivered Item Received[ some items not in stock ] Waiting event Delivered U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 54 27
Παράδειγμα (συνέχεια) Έστω ότι θέλουμε να μπορούμε να ακυρώσουμε οποιαδήποτε στιγμή Λύση 1: προσθήκη μιας μετάβασης cancel από κάθε κατάσταστη [ Not all items checked ] / get next item / get first item Checking [All items checked && all items available] Dispatching do/ Check item do/ initiat e delivery [All items checked && some not in stock] Items Received [all items available] Delivered Item Received[ some items not in stock ] Waiting Delivered Cancelled U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 55 Παράδειγμα (συνέχεια) : Superstates Έστω ότι θέλουμε να μπορούμε να ακυρώσουμε οποιαδήποτε στιγμή Λύση 2 : Ορισμός μιας superstate και προσθήκη μετάβασης cancel μόνο σε αυτήν (οι «υποκαταστάσεις» (substates) την κληρονομούν) [ Not all items checked ] / get next item / get first item Checking [All items checked && all items available] Dispatching Active do/ Check item do/ initiate delivery [All items checked && some not in stock] Checking Di spat ching Items Received [all items available] Delivered Item Received[ some items not in stock ] Waiting Delivered Cancelled Waiting Cancelled Delivered U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 56 28
Άλλο παράδειγμα Εδώ βλέπουμε τις καταστάσεις ενός αντικειμένου τύπου Order όσον αφορά την πληρωμή Unpaid partial payment final payment Partly Paid final payment Rejected Fully Paid Ερώτημα: Πώς να συνδυάσουμε αυτές τις καταστάσεις με τις προηγούμενες ( checking, waiting, dispatching, delivered) ; U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 57 Concurrent State Diagrams ( ιαγράμματα με Ταυτόχρονες Καταστάσεις) Επιτρέπουν «παράλληλη» εκτέλεση Πολλές καταστάσεις μπορεί να είναι ενεργές (active) ταυτόχρονα Όταν ένα αντικείμενο βγει από τις παράλληλες καταστάσεις μεταβαίνει σε μία κατάσταση U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 58 29
Concurrent State Diagrams Rejected Unpaid partial payment Partly Paid final payment final payment Fully Paid Delivered Checking Dispatching Cancelled Waiting U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 59 Rejected Unpaid partial payment Partly Paid final payment final payment Fully Paid Delivered Checking Dispatching Cancelled Waiting Άρα τα concurrent state diagrams μας επιτρέπουν να έχουμε ανεξάρτητα σύνολα καταστάσεων. Σύνδεση με προηγούμενη ύλη: Θυμηθείτε ότι στα διαγράμματα δραστηριοτήτων (activity diagrams) παριστάναμε την παραλληλία δραστηριοτήτων με fork και join Εδώ μιλάμε για παράλληλες καταστάσεις U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 60 30
Internal Activities (or self-transitions) Εσωτερικές ραστηριότητες (ή αυτομεταβάσεις) Ακόμα και οι καταστάσεις μπορούν να αντιδρούν σε γεγονότα χωρίς να έχουμε μετάβαση (προς άλλη κατάσταση). Συγκεκριμένα μπορούμε μέσα στο κατάσταση να βάλουμε event[guard]/activity Έστω ότι έχουμε ένα αντικείμενο τύπου TextField το οποίο έχει μια κατάσταση Typing. Παρακάτω βλέπουμε τα εσωτερικά γεγονότα και τις δραστηριότητες. Typing entry/highlight all exit/update field character/handle character help[verbose]/open help message help[quiet]/update status bar U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 61 Παράδειγμα: Τοστιέρα From http://odl-skopje.etf.ukim.edu.mk/uml-help/ Υποθέστε ότι θέλετε να σχεδιάσετε μια τοστιέρα. Εδώ θα εστιάσουμε στα διαγράμματα κατάστασης. Ποια είναι τα βήματα για την ετοιμασία ενός τοστ; Αρχικά ανάβουμε το μηχάνημα, τοποθετούμε το ψωμί και αναμένουμε για μερικά λεπτά. Το αρχικό διάγραμμα καταστάσεων φαίνεται παρακάτω: U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 62 31
Τοστιέρα (2) Το προηγούμενο διάγραμμα είναι ελλιπές. Για αποφυγή καψίματος προσθέτουμε μια κατάσταση Idle και μεταβάσεις lowerlimit kai upperlimit U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 63 Τοστιέρα (3) Η μετάβαση μεταξύ Working και Idle δεν παρουσιάστηκε λεπτομερώς. Μπορούμε με substates να περιγράψουμε πιο συγκεκριμένα. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 64 32
Παράδειγμα: Class Diagram for the Appointment System PERSON Taken from Dennis et al. 2005 U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 65 Application: Hospital State diagram of a Patient U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 66 33
ιαγράμματα Καταστάσεων Πότε τα χρησιμοποιούμε ; Για να περιγράψουμε τη συμπεριφορά ενός αντικειμένου επί ενός συνόλου Περιπτώσεων Χρήσης Τα διαγράμματα αυτά δεν είναι «βολικά» αν υπάρχουν πολλά συνεργαζόμενα αντικείμενα (τότε χρησιμοποιούμε interaction diagrams ή activity diagrams) Classical cases for using state machine diagrams: Example applications Cruise controls vendor machines Formal methods verification of network protocols U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 67 Summary Sequence diagrams (and Communication diagrams) illustrate the classes that participate in a use case and the messages that pass between them. State diagrams show the different states that a single class passes through in response to events. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas, Fall 2005 68 34