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

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

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

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

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

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

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

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

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

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

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

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

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

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

Homework 3 Solutions

Instruction Execution Times

derivation of the Laplacian from rectangular to spherical coordinates

SOAP API. Table of Contents

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

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

[1] P Q. Fig. 3.1

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

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

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

EE512: Error Control Coding

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

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

2 Composition. Invertible Mappings

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

Test Data Management in Practice

Partial Trace and Partial Transpose

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

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

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

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

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

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

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

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

CHAPTER 48 APPLICATIONS OF MATRICES AND DETERMINANTS

the total number of electrons passing through the lamp.

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

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

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

Example Sheet 3 Solutions

Block Ciphers Modes. Ramki Thurimella

The Simply Typed Lambda Calculus

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

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

4.6 Autoregressive Moving Average Model ARMA(1,1)

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

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

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

Section 8.3 Trigonometric Equations

Finite Field Problems: Solutions

C.S. 430 Assignment 6, Sample Solutions

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

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

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

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

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

Συστήματα Διαχείρισης Βάσεων Δεδομένων

PortSip Softphone. Ελληνικά Ι English 1/20

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

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

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

6.1. Dirac Equation. Hamiltonian. Dirac Eq.

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

Section 9.2 Polar Equations and Graphs

Démographie spatiale/spatial Demography

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

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

A Bonus-Malus System as a Markov Set-Chain. Małgorzata Niemiec Warsaw School of Economics Institute of Econometrics

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΑΛΛΗΛΟΓΡΑΦΙΑ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑ ΣΤΗΝ ΑΓΓΛΙΚΗ ΓΛΩΣΣΑ

Business English. Ενότητα # 9: Financial Planning. Ευαγγελία Κουτσογιάννη Τμήμα Διοίκησης Επιχειρήσεων

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

Example of the Baum-Welch Algorithm

Concrete Mathematics Exercises from 30 September 2016

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

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

ΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥ ΩΝ ΣΤΗ ΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ. ιπλωµατική Εργασία. της ΘΕΟ ΟΣΟΠΟΥΛΟΥ ΕΛΕΝΗΣ ΜΣ:5411

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

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

Activity Diagrams Examples and Enterprise Architect v6.5

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

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

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών. Business Process Modeling Notation (BPMN)

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

The challenges of non-stable predicates

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

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

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

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

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

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

Partial Differential Equations in Biology The boundary element method. March 26, 2013

Advanced Subsidiary Unit 1: Understanding and Written Response

Χρειάζεται να φέρω μαζί μου τα πρωτότυπα έγγραφα ή τα αντίγραφα; Asking if you need to provide the original documents or copies Ποια είναι τα κριτήρια

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

Other Test Constructions: Likelihood Ratio & Bayes Tests

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 Γιάννης Τζίτζικας ιάλεξη : 12 Ημερομηνία : [else] opt [needsconfirm] dispatch confirm U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 1 ιάρθρωση Τι είναι η μοντελοποίηση Συμπεριφοράς Interaction Diagrams (διαγράμματα αλληλεπίδρασης) Sequence Diagrams (ακολουθιακά διαγράμματα) Communication Diagrams (διαγράμματα επικοινωνίας) State diagrams (διαγράμματα καταστάσεων) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 2

Τι εξυπηρετεί η Μοντελοποίηση Συμπεριφοράς; Για να δείξουμε τα μηνύματα που ανταλλάσσονται μεταξύ των αντικειμένων στα πλαίσια μιας Περίπτωσης Χρήσης με τον τρόπο αυτό μπορούμε να βεβαιωθούμε οτι το αποτέλεσμα της δομικής μοντελοποίησης (κλάσεις και οι μέθοδοι τους) επαρκούν για την υλοποίηση των σεναρίων που περιγράφουν οι περιπτώσεις χρήσης) Υψηλού επιπέδου επιχειρηματικές ανάγκες καταγεγραμμένες στην Πρόταση Συστήματος Καθορισμός Απαιτήσεων Αναλυτική Καταγραφή Συγκεκριμένων απαιτήσεων Επόμενο βήμα Μοντελοποίηση του Συστήματος Λειτουργική /Δομική/Συμπεριφοράς (Functional/Structural/Behavioral) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 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 4

Πως μοντελοποιούμε τη συμπεριφορά στην Αντικειμενοστραφή Ανάλυση και Σχεδίαση; Συνήθως χρησιμοποιούμε 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 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 6

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 8

Τύποι Μηνυμάτων (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 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 10

Παραδείγματα Μηνυμάτων (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 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 12

Παράδειγμα Μερικές ροές μηνυμάτων μήκους 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 13 Πως τα αντικείμενα αυτού του μοντέλου επικοινωνούν; How the objects of this model interact? Customer 1 * Order date Product Order Line 1 1 1..* * id: String Quantity: Num price: Num Πως υπολογίζεται η τιμή μιας παραγγελίας (εδώ θεωρούμε οτι δεν έχουμε ακόμα ορίσει τις μεθόδους) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 14

Παράδειγμα διαγράμματος ακολουθίας Υπολογισμός τιμής μιας παραγγελιογραμμής Customer Υπολογισμός τιμής μιας γραμμής μιας παραγγελίας Order Order Line Product an Order : OrderLine a: Product : Customer calculateprice 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 15 calculateprice an Order : OrderLine a: Product : Customer calculateprice getprice(quantity:integer) getdiscountedvalue(an Order) getbasevalue discountedvalue From this we could proceed and define the methods of the classes that we have identified (if we have not defined them yet) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 16

Υπολογισμός της τιμής μιας παραγγελιογραμμής μια διαφορετική υλοποίηση Υπολογισμός τιμής μιας γραμμής μιας παραγγελίας : 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 17 Συγκρίνοντας τα δύο διαγράμματα : 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 more.. centralized control more..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 18

Συγκρίνοντας τα δύο διαγράμματα 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 19 ημιουργία και ιαγραφή Συμμετεχόντων (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 20

Τι γίνεται με τους βρόγχους; (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 21 Μοντελοποιώντας την δομή ελέγχου (βρόγχοι, συνθήκες) (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 22

Μοντελοποιώντας την δομή ελέγχου (βρόγχοι, συνθήκες) :Order careful: Distributor regular: Distributor : Messenger dispatch 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 23 Μοντελοποιώντας την δομή ελέγχου (βρόγχοι, συνθήκες) :Order careful: Distributor regular: Distributor : Messenger dispatch 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 24

Μοντελοποιώντας την δομή ελέγχου (βρόγχοι, συνθήκες) 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 25 Μοντελοποιώντας την δομή ελέγχου (βρόγχοι, συνθήκες) 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 26

Βρόγχοι και Συνθήκες (με συμβολισμούς της 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 27 Τελεστές διαγραμμάτων ακολουθίας (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 28

Παράδειγμα: Ανάληψη μετρητών από ΑΤΜ (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 29 Ανάληψη μετρητών από ΑΤΜ Παράδειγμα χρήσης του τελεστή 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 30

Ανάληψη μετρητών από ΑΤΜ Παράδειγμα χρήσης των τελεστών 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 31 Ανάληψη μετρητών από ΑΤΜ Παράδειγμα χρήσης των τελεστών 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 32

Ανάληψη μετρητών από ΑΤΜ Παράδειγμα χρήσης των τελεστών 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 33 Έστω ότι έχουμε ήδη ορίσει τα παρακάτω 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 34

Μπορούμε να τα «εκμεταλλευτούμε» (ήτοι να τα επαναχρησιμοποιήσουμε) με τον τελεστή 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 35 Άλλο ένα παράδειγμα : 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 36

Communication Diagrams (UML 2.0) ~ Collaboration Diagrams (UML V 1.3) [B] Communication Diagrams (διαγράμματα επικοινωνίας) Collaboration Diagrams (v.1) Sequence Diagram ισοδύναμα Communication Diagram 1: Find( ) : Department : Course : Student : 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 38

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 39 Τρόποι Αρίθμησης μηνυμάτων στα ιαγράμματα Συνεργασίας Numbering Methods in Collaboration Diagrams 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 40

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 41 Sequence Diagrams vs Communication Diagrams Μερικοί (προγραμματιστές/αναλυτές) προτιμούνταμενάλλοιταδε. : P CustomConfig uration 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 42

some more examples (diagrams prepared with Enterprise Architect) interfaces of components that are going to be developed by different software development teams U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 44

U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 45 Duration and Time Constraints (ένας τρόπος να απεικονίσουμε το χρόνο αποστολής μηνυμάτων) By default, a message is shown as a horizontal line. Since the lifeline represents the passage of time down the screen, when modelling a real-time system, or even a time-bound business process, it can be important to consider the length of time it takes to perform actions. By setting a duration constraint for a message, the message will be shown as a sloping line. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 46

Πότε να χρησιμοποιούμε; 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 47 ιαγράμματα Καταστάσεων (State Diagrams)

State Diagrams ιαγράμματα Καταστάσεων Ένα διάγραμμα καταστάσεων παρουσιάζει όλες τις πιθανές καταστάσεις που μπορεί να έχει ένα συγκεκριμένο αντικείμενο (σε όλη τη διάρκεια ύπαρξης του) και πως αυτές αλλάζουν ανάλογα με τα γεγονότα (events) που φθάνουν στο αντικείμενο άρα δεν περιοριζόμαστε σε μια Use Case Ένα διάγραμμα καταστάσεων συνήθως αφορά μία κλάση (συγκεκριμένα το κάθε αντικείμενο μιας κλάσης) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 49 State Diagrams ιαγράμματα Καταστάσεων Μπορούμε να τα χρησιμοποιήσουμε από διάφορες προοπτικές Προοπτικές Εννοιολογική: Π.χ. ποιες είναι οι καταστάσεις μιας παραγγελίας στην επιχείρηση; Οι ακυρώσεις επιτρέπονται; Προδιαγραφική Ποιές καταστάσεις πρέπει διαχειριστούν οι διεπαφές των κλάσεων; Υλοποιητική Ποιές πρόκειται να είναι οι πραγματικές καταστάσεις των αντικειμένων των κλάσεων υλοποίησης; U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 50

Βασικές έννοιες 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 Αφορά τα αντικείμενα μιας κλάσης Employee U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 51 Μεταβάσεις 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 52

Παράδειγμα μετάβασης με ετικέτα της μορφής 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 53 Τύποι Γεγονότων 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 54

ράσεις vs ραστηριότητες (UML V1.) ή Εσωτερικές 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 55 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 56

Παράδειγμα Θυμηθείτε το διάγραμμα κλάσεων με τις Παραγγελίες και το διάγραμμα ακολουθίας που περιγράφει τον υπολογισμό της αξίας μιας παραγγελίας : 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 57 Οι καταστάσεις ενός αντικειμένου τύπου 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 58

Οι καταστάσεις ενός αντικειμένου τύπου Order (ΙΙ) action condition This concerns an Order object [ Not all items checked ] / get next item / get first item Checking [All items checked && all items available] Dispatching do/ Check item do/ initiate delivery activity [All items checked && some not in stock] 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 59 Παράδειγμα (συνέχεια) Έστω ότι θέλουμε να μπορούμε να ακυρώσουμε οποιαδήποτε στιγμή Λύση 1: προσθήκη μιας μετάβασης cancel από κάθε κατάσταστη [ Not all items checked ] / get next item / get first item Checking do/ Check item [All items checked && all items available] Dispatching do/ initiate 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 60

Παράδειγμα (συνέχεια) : Superstates Έστω ότι θέλουμε να μπορούμε να ακυρώσουμε οποιαδήποτε στιγμή Λύση 2 : Ορισμός μιας superstate και προσθήκη μετάβασης cancel μόνο σε αυτήν (οι «υποκαταστάσεις» (substates) την κληρονομούν) [ Not all items checked ] / get next item / get first item Checking do/ Check item [All items checked && all items available] Dispatching do/ initiate delivery Active [All items checked && some not in stock] Checking Dispatching 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 61 Άλλο παράδειγμα Εδώ βλέπουμε τις καταστάσεις ενός αντικειμένου τύπου 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 62

Concurrent State Diagrams ( ιαγράμματα με Ταυτόχρονες Καταστάσεις) Επιτρέπουν «παράλληλη» εκτέλεση Πολλές καταστάσεις μπορεί να είναι ενεργές (active) ταυτόχρονα Όταν ένα αντικείμενο βγει από τις παράλληλες καταστάσεις μεταβαίνει σε μία κατάσταση U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 63 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 64

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 65 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 66

Παράδειγμα: Τοστιέρα From http://odl-skopje.etf.ukim.edu.mk/uml-help/ Υποθέστε ότι θέλετε να σχεδιάσετε μια τοστιέρα. Εδώ θα εστιάσουμε στα διαγράμματα κατάστασης. Ποια είναι τα βήματα για την ετοιμασία ενός τοστ; Αρχικά ανάβουμε το μηχάνημα, τοποθετούμε το ψωμί και αναμένουμε για μερικά λεπτά. Το αρχικό διάγραμμα καταστάσεων φαίνεται παρακάτω: U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 67 Τοστιέρα (2) Το προηγούμενο διάγραμμα είναι ελλιπές. Για αποφυγή καψίματος προσθέτουμε μια κατάσταση Idle και μεταβάσεις lowerlimit kai upperlimit U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 68

Τοστιέρα (3) Η μετάβαση μεταξύ Working και Idle δεν παρουσιάστηκε λεπτομερώς. Μπορούμε με substates να περιγράψουμε πιο συγκεκριμένα. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 69 Παράδειγμα: Class Diagram for the Appointment System PERSON Taken from Dennis et al. 2005 U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 70

Application: Hospital State diagram of a Patient U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 71 Examples using Enterprise Architect

Example 1 A door can be in one of three states: "Opened", "Closed" or "Locked". It can respond to the events Open, Close, Lock and Unlock. If a door is opened, you cannot lock it until you close it. If the door is Opened, it can only respond to the Close event if the condition doorway->isempty is fulfilled. Express the above in a state diagram U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 73 Example 2 Make the state diagram of a mobile phone including states about: startup, PIN entry, network selection and power offf. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 74

Example 2 (cont) Here we analyzed the CheckPin state in more detail U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 75 History States A history state is used to remember the previous state of a state machine when it was interrupted. The following diagram illustrates the use of history states. The example is a state machine belonging to a washing machine. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 76

Concurrent Regions A state may be divided into regions containing sub-states that exist and execute concurrently. The example below shows that within the state "Applying Brakes", the front and rear brakes will be operating simultaneously and independently. Notice the use of fork and join pseudo-states, rather than choice and merge pseudostates. These symbols are used to synchronize the concurrent threads. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 77 ιαγράμματα Καταστάσεων Πότε τα χρησιμοποιούμε ; Για να περιγράψουμε τη συμπεριφορά ενός αντικειμένου επί ενός συνόλου Περιπτώσεων Χρήσης Τα διαγράμματα αυτά δεν είναι «βολικά» αν υπάρχουν πολλά συνεργαζόμενα αντικείμενα (τότε χρησιμοποιούμε 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 78

Περίληψη 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 79