Μοντελοποίηση Συμπεριφοράς (Behavioral Modeling)

Σχετικά έγγραφα
Μοντελοποίηση Συμπεριφοράς (Behavioral Modeling)

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

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

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 5/12/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 28/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων

Φροντιστήριο 5. Ημερομηνία: 01/12/2006 Θεματική Ενότητα: Μοντελοποίηση Συμπεριφοράς Θέμα: Διαγράμματα αλληλεπίδρασης και καταστάσεων

Interaction Diagrams Διαγράμματα Αλληλεπίδρασης

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

Περιεχόμενα και Διάρθρωση. Interaction Diagrams

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

SOAP API. Table of Contents

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook

Homework 3 Solutions

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)

How to register an account with the Hellenic Community of Sheffield.

ιαγράµµατα Συµπεριφοράς Ανάλυση Συστηµάτων 2009

(C) 2010 Pearson Education, Inc. All rights reserved.

derivation of the Laplacian from rectangular to spherical coordinates

Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony

Διάθρωση. HΥ351 Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design

2 Composition. Invertible Mappings

Lecture 2: Dirac notation and a review of linear algebra Read Sakurai chapter 1, Baym chatper 3

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

[1] P Q. Fig. 3.1

Partial Trace and Partial Transpose

Φροντιστήριο 7. Ημερομηνία: 15/12/2006 Θεματική Ενότητα: OCL

Instruction Execution Times

Approximation of distance between locations on earth given by latitude and longitude

Test Data Management in Practice

Study of In-vehicle Sound Field Creation by Simultaneous Equation Method

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΝΟΣΗΛΕΥΤΙΚΗΣ

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

The Simply Typed Lambda Calculus

Διαγράμματα Αλληλεπίδρασης. Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

Example Sheet 3 Solutions

Démographie spatiale/spatial Demography

Block Ciphers Modes. Ramki Thurimella

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 8 ο & 9 ο Εργαστήριο -

Διάλεξη 10: Αντικειμενοστρεφής Σχεδιασμός ΙI. Διδάσκων: Παναγιώτης Ανδρέου

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

EE512: Error Control Coding

the total number of electrons passing through the lamp.

Use Cases: μια σύντομη εισαγωγή. Heavily based on UML & the UP by Arlow and Neustadt, Addison Wesley, 2002

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Section 8.3 Trigonometric Equations

C.S. 430 Assignment 6, Sample Solutions

ιαγράµµατα Αλληλεπίδρασης ιαγράµµατα Ακολουθίας ιαγράµµατα Επικοινωνίας

Models for Probabilistic Programs with an Adversary

Διάρκεια μιας Ομολογίας (Duration) Ανοσοποίηση (Immunization)

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων

Bizagi Modeler: Συνοπτικός Οδηγός

Potential Dividers. 46 minutes. 46 marks. Page 1 of 11

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ «ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ» ΚΑΤΕΥΘΥΝΣΗ «ΕΥΦΥΕΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΕΠΙΚΟΙΝΩΝΙΑΣ ΑΝΘΡΩΠΟΥ - ΥΠΟΛΟΓΙΣΤΗ»

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Τεχνολογίες και Εφαρμογές Διαδικτύου. Σχεδίαση Συστήματος

Üzleti élet Rendelés. Rendelés - Megrendelés. Rendelés - Visszaigazolás. Hivatalos, kísérleti

Εννοιολογικό Μοντέλο. Conceptual Model

Τα διαγράµµατα καταστάσεων

department listing department name αχχουντσ ϕανε βαλικτ δδσϕηασδδη σδηφγ ασκϕηλκ τεχηνιχαλ αλαν ϕουν διξ τεχηνιχαλ ϕοην µαριανι

Προσωπική Aνάπτυξη. Ενότητα 2: Διαπραγμάτευση. Juan Carlos Martínez Director of Projects Development Department

Code Breaker. TEACHER s NOTES

Μέθοδοι μοντελοποίησης

Προσομοίωση BP με το Bizagi Modeler

Δίκτυα Δακτυλίου. Token Ring - Polling

Other Test Constructions: Likelihood Ratio & Bayes Tests

09 Η γλώσσα UML II. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

Activity Diagrams Examples and Enterprise Architect v6.5

Exercises 10. Find a fundamental matrix of the given system of equations. Also find the fundamental matrix Φ(t) satisfying Φ(0) = I. 1.

Finite Field Problems: Solutions

Section 9.2 Polar Equations and Graphs

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Προσωπική Aνάπτυξη. Ενότητα 4: Συνεργασία. Juan Carlos Martínez Director of Projects Development Department

The challenges of non-stable predicates

Section 1: Listening and responding. Presenter: Niki Farfara MGTAV VCE Seminar 7 August 2016

Οι αδελφοί Montgolfier: Ψηφιακή αφήγηση The Montgolfier Βrothers Digital Story (προτείνεται να διδαχθεί στο Unit 4, Lesson 3, Αγγλικά Στ Δημοτικού)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

6.1. Dirac Equation. Hamiltonian. Dirac Eq.

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Fractional Colorings and Zykov Products of graphs

4.6 Autoregressive Moving Average Model ARMA(1,1)

UML

Κατανεμημένα Συστήματα. Javascript LCR example

Lecture 2. Soundness and completeness of propositional logic

Advanced Subsidiary Unit 1: Understanding and Written Response

Paper Reference. Paper Reference(s) 1776/04 Edexcel GCSE Modern Greek Paper 4 Writing. Thursday 21 May 2009 Afternoon Time: 1 hour 15 minutes

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο

ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. ΘΕΜΑ: «ιερεύνηση της σχέσης µεταξύ φωνηµικής επίγνωσης και ορθογραφικής δεξιότητας σε παιδιά προσχολικής ηλικίας»

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

Every set of first-order formulas is equivalent to an independent set

Galatia SIL Keyboard Information

ΣΧΕΔΙΑΣΜΟΣ ΕΠΙΓΕΙΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΛΥΣΟΚΙΝΗΣΗΣ ΓΙΑ ΜΕΤΑΦΟΡΑ ΤΡΟΛΕΪ

Assalamu `alaikum wr. wb.

Transcript:

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