Πληροφοριακά Συστήματα: Μοντελοποίηση με UML

138
1 Πληροφοριακά Συστήματα: Μοντελοποίηση με UML Υλικό βασισμένο στις εξής πηγές: Pascal Roques, UML in Practice, John Wiley, 2004 UML Fundamentals & OOAD UML 2.0, www.acm.org Booch, Rumbaugh, Jacobson, The UML user guide, Addison-Wesley, 1999 Ιωάννης Γαβιώτης Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Σχεδίασης Προϊόντων & Συστημάτων Ε΄ εξάμηνο

description

Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Σχεδίασης Προϊόντων & Συστημάτων Ε΄ εξάμηνο. Πληροφοριακά Συστήματα: Μοντελοποίηση με UML. Υλικό βασισμένο στις εξής πηγές: Pascal Roques , UML in Practice , John Wiley, 2004 UML Fundamentals & OOAD UML 2.0 , www.acm.org - PowerPoint PPT Presentation

Transcript of Πληροφοριακά Συστήματα: Μοντελοποίηση με UML

Page 1: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

1

Πληροφοριακά Συστήματα:

Μοντελοποίηση με UML

Υλικό βασισμένο στις εξής πηγές:Pascal Roques, UML in Practice, John Wiley, 2004

UML Fundamentals & OOAD UML 2.0, www.acm.org Booch, Rumbaugh, Jacobson, The UML user guide, Addison-Wesley, 1999

Ιωάννης Γαβιώτης

Πανεπιστήμιο ΑιγαίουΤμήμα Μηχανικών Σχεδίασης Προϊόντων & Συστημάτων Ε΄ εξάμηνο

Page 2: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

2

Εισαγωγή

• Τα προγράμματα (λογισμικό) είναι οι πολυπλοκότερες μηχανές που έχει φτιάξει ο άνθρωπος. Ο προγραμματισμός δίνει πολλούς βαθμούς

ελευθερίας.

• Για να αντιμετωπίσουμε την πολυπλοκότητα, χρησιμοποιούμε: Αφαίρεση (abstraction) Αποσύνθεση (decomposition)

Page 3: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

3

Αξία της Μοντελοποίησης• Αν θέλεις να φτιάξεις σπίτι για το σκύλο σου, ξεκινάς κατευθείαν.

Αν θέλεις να χτίσεις σπίτι για την οικογένειά σου, χρειάζεσαι σχέδιο.

• Για σωστό και χρήσιμο λογισμικό υψηλής ποιότητας, η αρχιτεκτονική είναι κρίσιμη. Το λιγότερο λογισμικό για να επιτύχεις το

στόχο σου (επαναχρησιμοποίηση, reuse).• Μοντέλα σε:

οικοδομή, μαθηματικά,παραγωγή κινηματο-γραφικών ταινιών

Page 4: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

4

Σημασία Μοντελοποίησης

• Το μοντέλο είναι μια απλούστευση της πραγματικότητας.

• Φτιάχνουμε μοντέλα για να καταλάβουμε καλύτερα το σύστημα που αναπτύσσουμε. Προσφέρει γραφική απεικόνιση. Προσδιορίζει δομή και συμπεριφορά. Βοηθά στην οργάνωση της κατασκευής.

• Φτιάχνουμε μοντέλα γιατί δεν μπορούμε να αντιληφθούμε το σύνολο μεγάλων, πολύπλοκων συστημάτων. Όλα τα χρήσιμα συστήματα εξελίσσονται σε

πολύπλοκα με το πέρασμα του χρόνου.

Page 5: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

5

Αρχές Μοντελοποίησης

• Η επιλογή του μοντέλου επιδρά στη αντιμετώπιση του προβλήματος και στη δημιουργία της λύσης του.

• Υπάρχουν μοντέλα για διάφορα επίπεδα λεπτομέρειας.

• Καλύτερα είναι τα μοντέλα που συνδέονται με την πραγματικότητα.

• Δεν υπάρχει ένα μοναδικό μοντέλο που να καλύπτει όλες τις πλευρές του συστήματος. Διαφορετικοί τύποι μοντέλων προσεγγίζουν διαφορετικές πλευρές.

Page 6: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

6

UML Είναι μια Γλώσσα• Οπτική αναπαράσταση

Γραφικά σύμβολα – όχι ελεύθερο κείμενο• Εκφράζει προδιαγραφές

Ακριβείς, χωρίς διφορούμενα, πλήρεις• Βοηθά στην κατασκευή

Μοντέλα μετασχηματίζονται σε κώδικα (forward engineering) με εργαλεία CASE.

• Παρέχει τεκμηρίωση Για όλα τα στάδια του κύκλου ζωής του λογισμικού: απαιτήσεις,

αρχιτεκτονική, σχεδίαση, υλοποίηση, πρωτότυπα, συντήρηση

Unified Modeling Language

Page 7: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

7

Χαρακτηριστικά της UML

• Κοινός συμβολισμός – ανεξάρτητος γλώσσας, πλατφόρμας, μεθοδολογίας ανάτπυξης

• Αντικειμενοστραφής προσέγγιση

Page 8: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

8

Ιστορία της UML

• Δεκαετία 90: 50 μέθοδοι αντικειμενοστραφούς μοντελοποίησης Μέθοδος Booch (Grady Booch - Rational) OOSE (Ivar Jacobson –

Objectory) OMT-2 (James Rumbaugh – GE)

• 1995: Ενοποίηση μεθόδων στην UML• 1997: Η UML 1.0 υιοθετείται ως πρότυπο

του Object Management Group (OMG).• 2003: UML έκδοση 2.0

Δεκατρείς τύποι διαγραμμάτων Ανεξάρτητη μεθοδολογίας μοντελοποίησης

Οι τρεις καμπαλέρο

ς

Page 9: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

9

Άξονες Μοντελοποίησης

Λειτουργικότηταfunctionality

Συμπεριφοράbehavior

Δομήstructure

Τι κάνει;Ποιες λειτουργίες υποστηρίζει;

Πώς ανταποκρίνεται και από ποιες καταστάσεις περνάει;

Πώς είναι οργανωμένα τα συστατικά του τμήματα;

Page 10: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

10

Αυτόματη Ταμειολογιστική Μηχανή

1ο παράδειγμα

Λειτουργικότητα

ΣυμπεριφοράΔομή

Page 11: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

11

Περιγραφή Προβλήματος

Μια μηχανή μέσω της οποίας κάτοχοι ειδικών καρτών (πιστωτική, αναλήψεων) μπορούν να κάνουν αναλήψεις και καταθέσεις μετρητών, ερωτήσεις υπολοίπου.

Υπάλληλοι της τράπεζας τροφοδοτούν με μετρητά και παίρνουν φακέλους με μετρητά/επιταγές.

Η περιγραφή αρχικάείναι ελλιπής και ανακριβής

Page 12: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

12

Προσδιορίστε Δράστες

• Δράστης είναι μια οντότητα στις περιπτώσεις χρήσης που ορίζει ένα ρόλο που παίζει ένας χρήστης κατά την αλληλεπίδρασή του με το σύστημα. Μπορεί να είναι άνθρωπος, συσκευή, κά.

• Για το ΑΤΜ, δράστες είναι: Κάτοχος ειδικής κάρτας Υπάλληλος τράπεζας Πληροφοριακό σύστημα της τράπεζας Σύστημα εξουσιοδότησης πιστωτικής

κάρτας

Σύμβολο δράστη:

Actor

Page 13: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

13

Διάγραμμα Θεματικού Πεδίου

ΥπάλληλοςΤράπεζαςΠελάτηςΤράπεζας

ΚάτοχοςΚάρτας

0..1

0..10..1

0..1

ATM

Σύστημα εξουσιοδότησης πιστωτικής κάρτας

Πληροφοριακό σύστημα τράπεζας

Σχέση Είναι-Ένα: Δεν είναι όλοι οι κάτοχοι κάρτας

πελάτες της τράπεζας

Ανά πάσα στιγμή είναι

συνδεδεμένος το πολύ ένας δράστης

Σύμβολο για δράστες που

δεν είναι άνθρωποι (πχ συστήματα)

Σχέση Συσχέτιση

ς (association

)

Static Context Diagram

Page 14: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

14

Περιστατικό Χρήσης

• Είναι η προδιαγραφή μιας ακολουθίας ενεργειών και των παραλλαγών τους που μπορεί να εκτελέσει το σύστημα κατά την αλληλεπίδρασή του με τους δράστες. Μοντελοποιεί τις υπηρεσίες που προσφέρει

το σύστημα.

• Ta περιστατικά χρήσης είναι σενάρια: Εξαντλούν τις πιθανές εκβάσεις. Περιλαμβάνουν επιτυχή κατάληξη ή

διάφορες περιπτώσεις αποτυχίας.

Use Case

Page 15: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

15

Περιστατικά Χρήσης Από Φοιτητολόγιο

ΦοιτητήςΕγγραφή σε μάθημα

Φοιτητής εγγράφεται σε μάθημα

Καθηγητής επιλέγει να διδάξει μάθημα

ΚαθηγητήςΔιδασκαλία μαθήματος

Page 16: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

16

Περιστατικά Χρήσης ανά Δράστη

• Κάτοχος κάρτας1. Ανάληψη μετρητών

• Πελάτης τράπεζας1. Ανάληψη μετρητών2. Ενημέρωση για το

υπόλοιπο του λογαριασμού

3. Κατάθεση μετρητών4. Κατάθεση επιταγών

• Υπάλληλος τράπεζας5. Τοποθέτηση

μετρητών6. Ανάσυρση καρτών

που έχουν κρατηθεί από το ΑΤΜ

7. Ανάσυρση επιταγών που έχουν κατατεθεί

• Πληροφοριακό σύστημα τράπεζας

• Σύστημα εξουσιοδότησης πιστωτικής κάρτας

Page 17: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

17

Πρωτεύοντες / Δευτερεύοντες Δράστες• Οι πρωτεύοντες δράστες πράγματι

χρησιμοποιούν το σύστημα.• Οι δευτερεύοντες δράστες παρέχουν

πληροφορίες ή ενημερώνονται από το σύστημα, αλλά δεν αναλαμβάνουν πρωτοβουλία ενεργειών. Στο παράδειγμα του ΑΤΜ, το πληροφοριακό

σύστημα της τράπεζας δεν μπορεί να χρησιμοποιήσει το ΑΤΜ, αλλά εμπλέκεται όταν ένας πελάτης το χρησιμοποιεί.

Page 18: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

18

Διάγραμμα Περιστατικού Χρήσης

1 Ανάληψη

2 Υπόλοιπο

3 Κατάθεση

4 Κατάθεση Επιταγής

5 ΤοποθέτησηΜετρητών

6 ΑνάσυρσηΚαρτών

7 ΑνάσυρσηΕπιταγών

ΚάτοχοςΚάρτας

Πελάτης Τράπεζας

Υπάλληλος

Τράπεζας

Συσχέτιση

ΑΤΜ

Γενίκευση

Περίπτωση χρήσης

Όριο του συστήματο

ς

Use Case Diagram

Page 19: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

19

Περιγραφή Περιστατικού Χρήσης

Αρχικά το περιστατικό χρήσης περιγράφεται σε κείμενο.

I. Βασικά στοιχεία1. Τίτλος2. Περίληψη3. Ημερομηνία δημιουργίας

& τροποποίησης4. Έκδοση5. Συγγραφέας6. Συμμετέχοντες δράστες

II. Ροή συμβάντων1. Προαπαιτήσεις (έναυσμα)2. Κύριο σενάριο επιτυχίας3. Εναλλακτικές ακολουθίες4. Ακολουθίες σφαλμάτων5. Μετα-συνθήκες

III. Απαιτήσεις παρουσιαστικού

IV. Μη λειτουργικοί περιορισμοί, πχ

1. Συχνότητα2. Ακεραιότητα3. Διαθεσιμότητα4. Ακρίβεια5. Επιδόσεις6. Ταυτοχρονισμός

Page 20: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

20

Χαρακτηριστικά Διαγραμμάτων Περιστατικού Χρήσης

• Το διάγραμμα περιστατικού χρήσης δείχνει τις λειτουργικές σχέσεις μεταξύ δραστών.

• Δεν περιγράφει διαδικασίες, ενέργειες ή διαδοχικές καταστάσεις του συστήματος.

• Αρχικά αυτά περιγράφονται στο κείμενο του κάθε περιστατικού χρήσης, και έπειτα με τα διαγράμματα δραστηριοτήτων, και ακολουθίας συστήματος.

Page 21: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

21

Διαγράμματα για Περιπτώσεις Χρήσης

Διάγραμμα ακολουθίας

Διάγραμμα δραστηριότητ

ας

Περίπτωση

χρήσης

Σενάριο

Κείμενο

Page 22: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

22

Διάγραμμα Ακολουθίας

Πρωτεύων δράστης

Δευτερεύων δράστης

Ανά

ληψ

η μ

ετρητώ

ν μ

ε πισ

τω

τικ

ή

κά

ρτα

System Sequence Diagram

Page 23: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

23

Τι Απεικονίζει το Διάγραμμα Ακολουθίας• Το διάγραμμα ακολουθίας (sequence

diagram) είναι ένα διάγραμμα ροής που απεικονίζει τη σειρά των ενεργειών ενός σεναρίου στον άξονα του χρόνου.

• Εξηγεί ποιος δράστης εκκινεί μια ενέργεια και με ποιον άλλο δράστη συνεργάζεται.

• Δεν δείχνει εναλλακτικές πορείες, παρά μόνο την κύρια ροή προς την επιτυχημένη κατάληξη. Για μια περίπτωση χρήσης, υπάρχουν

διαγράμματα ακολουθίας για κάθε σενάριο.

Page 24: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

24

Διάγραμμα Δραστηριότητας Α

νάληψ

η μ

ετρητώ

νActivity Diagram

Page 25: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

25

Σχέση «Περιλαμβάνει»

Γυρίζουμε πίσω στα διαγράμματα περιστατικών χρήσης …

Πελάτης Τράπεζας

Πληροφοριακό σύστημα τράπεζας

Κατάθεση

Πιστοποίηση πελάτη

Κατάθεση με Επιταγή

ΚατάθεσηΜετρητών

Σχέση ‘Περιλαμβάνει’: Για

να καταθέσει οτιδήποτε, ο

χρήστης πρέπει να πιστοποιηθεί.

Σχέση ‘Είναι-Ένα’: Δεν είναι όλοι οι

κάτοχοι πιστωτικής κάρτας πελάτες της

τράπεζας.

include

Page 26: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

26

Πλήρες Διάγραμμα Περιστατικών Χρήσης

Page 27: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

27

Ομαδοποίηση Στοιχείων Διαγράμματος

Ανάληψη με χρέωση πιστωτικής κάρτας

ΚάτοχοςΠιστωτικής

Κάρτας

Πελάτης Τράπεζας

Συντήρηση μηχανήματος

Δοσοληψίες πελάτη τράπεζας

ΧειριστήςΜηχανήματος

Υποστηρικτικές λειτουργίες

Πακέτα:μηχανισμός ομαδοποίησης

στοιχείων στην UML

Σχέση ‘Περιλαμβάνει’ ανάμεσα σε πακέτα

incl

ud

e

Page 28: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

28

Διάγραμμα Πακέτων

• Ομαδοποιεί τα αντικείμενα με βάση τα κοινά τους χαρακτηριστικά ή τις υπηρεσίες που παρέχουν.

• Δείχνει τις εξαρτήσεις των πακέτων.

Page 29: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

29

Τι Διαγράμματα Είδαμε

Λειτουργικότηταfunctionality

Συμπεριφοράbehavior

Δομήstructure

Διάγραμμα Θεματικού ΠεδίουΔιάγραμμα Περιστατικού Χρήσης

Διάγραμμα Πακέτων Διάγραμμα ΑκολουθίαςΔιάγραμμα Δραστηριότητας

Page 30: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

30

Σύμβολα Διαγραμμάτων

Σχετίζεται

Είναι-ένα

Association

is-a, Generalization

Σύμβολο Σχέση

ΠακέτοΔράστηςΠεριστατικό

Χρήσης

Περιλαμβάνει,Επεκτείνει

include (υποχρεωτικό)extend (προαιρετικό)

Page 31: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

31

Διάγραμμα Περιστατικού Χρήσης

Μοντελοποίηση των στόχων

Page 32: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

32

Τι Είναι τα Περιστατικά Χρήσης

• Μέσο για τον προσδιορισμό απαιτήσεων• Επικεντρώνεται στα χαρακτηριστικά

του συστήματος και τη λειτουργικότητα που πρέπει να παρέχει. Περιγράφει το στόχο.

• Ορίζει το ‘εύρος’ του συστήματος τι περιλαμβάνει και τι όχι.

• Δεν καταγράφει το πώς εκτελείται (υλοποιείται εκ των έσω) μια διεργασία – απλώς τα βήματά της αν την εκτελούσε ένας χρήστης.

Page 33: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

33

Στοιχεία Διαγράμματος Περιστατικού Χρήσης

1. Δράστης (actor): άνθρωπος, σύστημα, συσκευή που εμπλέκεται

2. Σύστημα: θέτει τα όρια του συστήματος σε σχέση με τους δράστες και τα περιστατικά

3. Περιστατικό χρήσης (use case): ένα αποτέλεσμα που υλοποιεί το σύστημα

4. Συσχέτιση (association): μια αλληλεπίδραση

Page 34: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

34

Σχήματα για Δράστες

• Για κάθε δράστη αναγράφουμε τον ρόλο που διαδραματίζει στο διάγραμμα.

• Πχ τραπεζίτης, ταμίας, χρηματοκιβώτιο, πελάτης της τράπεζας

• ‘Αποπροσωποποιούμε’ τους δράστες: ψάχνουμε ρόλους, όχι άτομα.

Page 35: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

35

Σχήμα για Περιστατικό Χρήσης

• Αντιστοιχεί σε κάποια λειτουργικότητα του συστήματος.

• Η αναγραφή δίνει το στόχο που πετυχαίνει αυτό το περιστατικό χρήσης, πχ ‘ανάληψη μετρητών’, ‘ενημέρωση υπολοίπου’.

• Δεν περιγράφει πώς το σύστημα επιτυγχάνει αυτό το στόχο (πχ με ποια βήματα).

Page 36: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

36

Σχήματα για Σχέσεις

Απλή σχέση ανάμεσα σε ένα δράστη και ένα περιστατικό χρήσης

Εξουσιοδοτεί ένα άλλο περιστατικό χρήσης για την εκτέλεση (τμήματος) της λειτουργίας.

Page 37: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

37

Συνοδευτικό Κείμενο

• Το διάγραμμα περιστατικού χρήσης, ακόμα και με τους ρόλους, είναι πολύ αφηρημένο για να γίνει κατανοητό, γι’ αυτό συνοδεύεται από κείμενο σε φυσική γλώσσα.

• Αυτό περιλαμβάνει : Προϋποθέσεις για την εκτέλεση του περιστατικού Περιγραφή της διεργασίας (ίσως και με διάγραμμα

ροής – flowchart, ή με διάγραμμα δραστηριότητας - activity diagram)

Κατάσταση μετά την εκτέλεση του περιστατικού

Page 38: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

38

Σενάρια σε Περιστατικό Χρήσης

• Το περιστατικό χρήσης περιγράφει τον κύριο στόχο του συστήματος.

• Όμως αυτός δεν επιτυγχάνεται σε όλες τις περιπτώσεις.

• Κάθε πιθανό αποτέλεσμα μιας προσπάθειας να επιτύχουμε το στόχο ονομάζεται σενάριο.

• Πρέπει να περιγράψουμε (όλα) τα σενάρια, είτε επιτυχίας, είτε αποτυχίας και να προσδιορίσουμε τις συνθήκες υπό τις οποίες συμβαίνουν.

Page 39: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

39

Ταμειακή Μηχανή

2ο παράδειγμα

Page 40: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

40

Περιγραφή Προβλήματος

Πελάτης φτάνει στο ταμείο με τα είδη που θέλει να αγοράσει. Για κάθε είδος σαρώνεται ο γραμμωτός του κώδικας, ο ταμίας εισάγει ποσότητα και στην οθόνη εμφανίζεται περιγραφή και τιμή.

Στο τέλος εμφανίζεται το κόστος και επιλέγεται τρόπος πληρωμής: μετρητά, επιταγή ή πιστωτική κάρτα.

Με την πληρωμή τυπώνεται η απόδειξη και ενημερώνεται το υπόλοιπο των ειδών στο κατάστημα.

Ο διευθυντής το πρωί δίνει στον ταμία κάποια χρήματα για να ξεκινήσει και το βράδυ παίρνει την είσπραξη.

Page 41: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

41

Δράστες

Ταμίας

Διευθυντής

Πελάτης

Σύστημα έγκρισηςπιστωτικής κάρτας

Αποθέματα καταστήματοςΕκκινά / κλείνει τη

συσκευή και παίρνει τα μετρητά

Ενημερώνει το διαθέσιμο στοκ κάθε είδους

Εγκρίνει την πληρωμή μέσω πιστωτικής

κάρτας

Επιλέγει τρόπο

πληρωμής

Page 42: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

42

Διάγραμμα Περιστατικού Χρήσης

Ταμίας

Διευθυντής

Πελάτης

Σύστημα τήρησης αποθεμάτων

καταστήματος

ΠληρωμήΕιδών

Άνοιγμα Ταμείου

include

ΕπεξεργασίαΠληρωμής

Σύστημα έγκρισηςπιστωτικής κάρτας

ΠληρωμήΜεΜετρητά

ΠληρωμήΜεΠιστωτικήΚάρτα

Δευτερεύων

ΚλείσιμοΤαμείου

Page 43: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

43

Περιγραφή Περιστατικού Χρήσης

I. Βασικά στοιχεία1. Τίτλος: ΠληρωμήΕιδών2. Περίληψη: Πελάτης στο

ταμείο με καλάθι με είδη. Ταμίας καταγράφει είδη και ποσότητες. Επιλέγεται τρόπος πληρωμής. Με την πληρωμή, εκδίδεται απόδειξη και ενημερώνεται υπόλοιπο.

3. Ημερομηνία δημιουργίας & τροποποίησης: 29/7/04

4. Έκδοση: 1.15. Συγγραφέας: Χ. Τάδε6. Συμμετέχοντες δράστες:

Ταμίας, πελάτης, Σύστημα τήρησης αποθεμάτων καταστήματος

II. Ροή συμβάντων1. Προαπαιτήσεις: η

ταμειακή μηχανή είναι αναμμένη. Ο ταμίας έχει πιστοποιηθεί.

2. Κύριο σενάριο επιτυχίας: …

3. Εναλλακτικές ακολουθίες:1. Άγνωστος γραμμωτός

κώδικας2. Πελάτης δεν μπορεί να

πληρώσει3. Ταμίας δεν έχει να

δώσει ρέστα4. Ακολουθίες σφαλμάτων5. Μετα-συνθήκες

Page 44: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

44

Διάγραμμα Ακολουθίας

Περιστατικό χρήσης: Πληρωμή ειδών με μετρητά (Σενάριο

επιτυχίας)

Page 45: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

45

Διάγραμμα ΚατάστασηςState Diagram

Page 46: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

46

Συμβουλές για Διαγράμματα

• Δράστες (actors) είναι οι άνθρωποι – χρήστες και τα άλλα συστήματα που αλληλεπιδρούν με το σύστημα που μοντελοποιείται.

• Με το διάγραμμα θεματικού πεδίου (static context diagram) σχετίζουμε στιγμιότυπα των δραστών με συγκεκριμένα σημεία του συστήματος.

• Συντάσσουμε περιγραφές των περιστατικών χρήσης (use cases) με κείμενο.

• Περιγράφουμε το κύριο σενάριο επιτυχίας με ένα διάγραμμα ακολουθίας (sequence diagram).

• Περιγράφουμε τη δυναμική ενός περιστατικού χρήσης με διάγραμμα δραστηριότητας (activity diagram).

Page 47: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

47

Συμβουλές για Σχέσεις

• Καθώς επεκτείνουμε το διάγραμμα ακολουθίας συστήματος, χρησιμοποιούμε σχέσεις: ΠΕΡΙΛΑΜΒΑΝΕΙ (includes): ομαδοποιεί κοινή

συμπεριφορά που επαναλαμβάνεται σε πολλά σημεία (realization)

ΕΠΕΚΤΕΙΝΕΙ (extends): μοντελοποιεί προαιρετική συμπεριφορά (dependency)

ΕΊΝΑΙ-ΈΝΑ (is-a): γενικεύει / εξειδικεύει (generalization)

ΣΥΣΧΕΤΙΖΕΙ: δομική σχέση (association)0..1 *

Page 48: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

48

Διάγραμμα Κλάσης

Μοντελοποίηση της δομής

Page 49: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

49

Αντικείμενα

• Εντοπίζουμε τα πράγματα που είναι σημαντικά για το σύστημα που μοντελοποιούμε Πχ σε ένα σπίτι τα δομικά στοιχεία είναι

τοίχοι, παράθυρα, πόρτες, κλπ• Μοντελοποιούνται ως κλάσεις.

Κλάση είναι μια αφαίρεση για το σύνολο ομοειδών αντικειμένων

Πχ ένα σπίτι έχει τέσσερεις τοίχους και δύο παράθυρα (αντικείμενα). Αυτά είναι στιγμιότυπα των κλάσεων «τοίχος» και «παράθυρο».

Page 50: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

50

Τι Προσφέρει το Διάγραμμα Κλάσης• Δίνει μια στατική όψη των στοιχείων

που αποτελούν το σύστημα. Όπως το σχέδιο με τα εξαρτήματα μιας

μηχανής δείχνει πώς συναρμολογούνται, αλλά όχι πώς συμπεριφέρονται όταν η μηχανή τεθεί σε λειτουργία.

• Περιλαμβάνει ιδιότητες, λειτουργίες (μεθόδους), ευθύνες, συσχετίσεις μεταξύ κλάσεων.

Class Diagram

Page 51: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

51

Το Λεξικό του Μοντέλου

• Από την περιγραφή (διατύπωση σε κείμενο) του συστήματος που μοντελοποιούμε: Ουσιαστικά γίνονται

κλάσεις Επιθετικοί προσδιορι-

σμοί γίνονται ιδιότητες Ρήματα γίνονται

λειτουργίες

Page 52: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

52

Διάγραμμα μιας Κλάσης

εδώ μπαίνει το όνομα της κλάσης

εδώ μπαίνουν οι ευθύνες της κλάσης

εδώ μπαίνουν οι λειτουργίες της κλάσης

εδώ μπαίνουν οι ιδιότητες της κλάσης

Αν κάποιο δεν υπάρχει, το κελί μένει κενό

Page 53: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

53

Υποστήριξη από Εργαλεία

• Τα διαγράμματα κλάσεων υποστηρίζονται από εργαλεία CASE. Παράγεται σκελετός κώδικα σε γλώσσα

προγραμματισμού (forward engineering). Από γραμμένο πηγαίο κώδικα μπορούν να

(ανα)κατακευαστούν τα διαγράμματα κλάσεων (reverse engineering).

Page 54: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

54

Τι Είναι οι Ιδιότητες

• Ιδιότητα είναι μια πληροφορία που τηρείται για κάθε αντικείμενο της κλάσης.

• Για κάθε ιδιότητα έχουμε: Όνομα Τύπο δεδομένων (πχ ακέραιος, συμβολοσειρά,

κά) και περιορισμοί ακεραιότητας στις τιμές του– Πχ συμβολοσειρά μόνο με γράμματα και αριθμούς,

ή πραγματικός με θετικές τιμές και 2 δεκαδικά ψηφία

Εμβέλεια (δημόσια, ιδιωτική, προστατευμένη) Αν είναι υποχρεωτική ή προαιρετική (και εξ

ορισμού τιμή, default value)

Properties

Page 55: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

55

Τι Κάνουν οι Ιδιότητες

• Αναπαριστάνουν την κατάσταση των αντικειμένων

• Κάθε ιδιότητα δέχεται τιμές συγκεκριμένου τύπου Ενδεχομένως από

περιορισμένο εύρος

• Αναφέρονται ως: Χαρακτηριστικά

(αttributes) Properties

όνομα: StringκάρταΜέλους: Boolean = false

πρώτηΕπίσκεψη: Dateεπισκέψεις: Integer (0 …)

τζίρος: Real (0.0 …)

Πελάτης

Τύπος δεδομένω

ν

Τιμή εξ ορισμού (default)

Εύρος τιμών

Page 56: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

56

Λειτουργίες

• Ορίζουν τη συμπεριφορά των αντικειμένων, δηλαδή τι ενέργειες μπορούν να εκτελεστούν πάνω τους Η εκτέλεση τους προκαλεί

συνήθως αλλαγή της κατάστασής τους (τροποποιεί τις ιδιότητες)

• Κάθε λειτουργία δέχεται παραμέτρους συγκεκριμένου τύπου και επιστρέφει αποτέλεσμα

• Αναφέρονται και ως μέθοδοι (methods)

...

αρχικοποίησε()όρισεΘερμοκρασία(t: Real)τιμήΘερμοκρασίας(): Realυπερβαίνει(): Boolean

Θερμοστάτης

Παράμετροι και τύπος τους

Τι επιστρέφει

το όνομα είναι συνήθως ρήμα

Page 57: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

57

Ευθύνες

• Ορίζουν ένα «συμβόλαιο» με τις υποχρεώσεις της κλάσης Είναι περιγραφές με

ελεύθερο κείμενο

• Αν υπάρχουν ευθύνες, τοποθετούνται σε ένα κουτί κάτω-κάτω στο διάγραμμα κλάσης

...

αρχικοποίησε()όρισεΘερμοκρασία(t: Real)τιμήΘερμοκρασίας(): Real

Θερμοστάτης

ΕυθύνεςΑπό τη στιγμή που θα ενεργοποιηθεί, ο θερμοστάτης καταγράφει την τρέχουσα θερμοκρασία και μπορεί να την επιστρέψει, όταν του ζητηθεί.Όταν του θέσουμε μια θερμοκρασία ελέγχου, τη συγκρίνει με την τρέχουσα θερμοκρασία και σε περίπτωση υπέρβασης, κλείνει το κύκλωμα. Αν η θερμοκρασία επανέλθει, το κύκλωμα ανοίγει.

Responsibilities

Page 58: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

58

Παράδειγμα Κλάσης: Πελάτης

Όνομα κλάσης

Ιδιότητες

Λειτουργίες

Εμβέλεια: ιδιωτική

Εμβέλεια: δημόσια

Page 59: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

59

Σχέσεις Κλάσεων

• Οι κλάσεις σχετίζονται με άλλες κλάσεις. Στο διάγραμμα αυτό απεικονίζεται με μια γραμμή.

Page 60: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

60

Χαρακτηριστικά Σχέσεων

• Πάνω στη γραμμή εμφανίζεται το όνομα της σχέσης.

• Προαιρετικά στα δύο άκρα της γραμμής που συνδέονται με κλάσεις μπορεί να εμφανίζονται οι ρόλοι τους.

• Στα άκρα της γραμμής μπορούμε να έχουμε σύμβολα που υποδηλώνουν τον πληθάριθμο της σχέσης: 0, 1, n, *

Page 61: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

61

Παράδειγμα Σχέσης Κλάσεων

1. Ρόλος της κλάσης ως προς τη σχέση

2. Όνομα της σχέσης 3. Ρόλος της κλάσης ως

προς τη σχέση 4. Κλάση

5. Περιορισμός: προαιρετικός

6. Πληθάριθμος 7. Γραμμή σχέσης8. Πληθάριθμος 9. Κλάση

Page 62: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

62

Ανακλαστικές Σχέσεις Κλάσεων

• Συνδέουν αντικείμενα της ίδιας κλάσης.• Η γραμμή ενώνει την κλάση με τον

εαυτό της.

Page 63: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

63

Κλάσεις Συσχέτισης

• Τις χρησιμοποιούμε όταν θέλουμε να διατηρήσουμε πληροφορία για τη σχέση.

• Χρησιμοποιούμε διακεκομμένη γραμμή.

Association classes

Page 64: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

64

Παράδειγμα: Καθηγητές και Μαθήματα

Καθηγητής

Μάθημα

Φοιτητής

Βαθμός

1..*

1

διδάσκει

0..*

1..*είναιΥπεύθυνος

0..*

παρακολουθεί αξιολογείται

0..*

Page 65: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

65

Ομαδοποίηση Κλάσεων

• Χρησιμοποιούμε ομαδοποίηση όταν αντικείμενα αποτελούνται από συνάθροιση άλλων αντικειμένων.

Aggregation

Ρόμβος στην κλάση που συντίθεται από

άλλες κλάσειςΠληθάριθμος ομαδοποίησης

Τα συστατικά διατηρούν την οντότητά τους

ανεξάρτητα από την ομαδοποίηση

Page 66: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

66

Σύνθεση Κλάσεων

• Η σύνθεση είναι μια ομαδοποίηση όπου τα συστατικά δεν διατηρούνται ανεξάρτητα από την ομαδοποίησή τους.

Composition

Αν διαλυθεί η ομάδα (πάψει να

υπάρχει το αντικείμενο), οι

παίκτες εξακολουθούν να

υφίστανται.

Αν καταστραφεί το βιβλίο, τα κεφάλαιά του

καταστρέφονται.

Page 67: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

67

Παράδειγμα Σύνθεσης

• Ένα Book αποτελείται από πολλά Chapter (τουλάχιστον 1).

• Κάθε Chapter περιέχει κάποια Footnote (ίσως κανένα).

• Κάθε Footnote αναφέρεται σε ένα ή κανένα Chapter του Book που ανήκει ή σε κάποιο άλλο Book.

Page 68: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

68

Γενίκευση

• Είναι η οργάνωση κλάσεων σε ιεραρχίες με βάση τα κοινά τους χαρακτηριστικά.

Generalization

Page 69: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

69

Επισκόπηση Διαγράμματος Κλάσης

όνομα

ευθύνες

λειτουργίες

ιδιότητες

Συσχέτιση

Γενίκευση

Ομαδοποίηση

Σύνθεση

Πληθάριθμος: 0..11..n1..*0..*

Συσχέτιση

Page 70: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

70

Διάγραμμα Αντικειμένων

Page 71: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

71

Η Χρησιμότητα του Διαγράμματος Αντικειμένων• Μετά την κατασκευή του διαγράμματος

κλάσης αρκετοί προχωρούν στη συγγραφή κώδικα.

• Θα θέλαμε ένα τρόπο να ελέγχουμε την ορθότητα του διαγράμματος κλάσης πριν ξεκινήσουμε τον προγραμματισμό.

• Άλλες μεθοδολογίες χρησιμοποιούν το διάγραμμα αντικειμένων κατά την ανάλυση και από εκεί παράγουν το διάγραμμα κλάσεων.

• Θυμηθείτε: κλάση = καλούπι, πρότυποαντικείμενο = στιγμιότυπο

Page 72: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

72

Παράδειγμα Διαγράμματος Αντικειμένων

Page 73: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

73

Έλεγχος με Διάγραμμα Αντικειμένων• Ξεκινήσαμε περιγράφοντας το πεδίο του

προβλήματος με περιπτώσεις χρήσης. Οι περιπτώσεις χρήσης περιγράφουν αλληλεπιδράσεις δραστών με το σύστημα.

• Οι διάφορες εξελίξεις μιας περίπτωσης χρήσης είναι τα σενάρια. Παρακολουθώντας την εκτέλεση των σεναρίων φτιάχνουμε τα διαγράμματα αντικειμένων.

Page 74: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

74

Σύστημα Κρατήσεων Θέσεωνσε Αεροπορικές Πτήσεις

3ο παράδειγμα

Page 75: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

75

Περιγραφή Προβλήματος

1. Αεροπορικές εταιρίες προσφέρουν διάφορες πτήσεις.

2. Κάθε πτήση ανοίγει και κλείνει για κρατήσεις.3. Πελάτης μπορεί να κάνει κρατήσεις για μια ή

περισσότερες πτήσεις για επιβάτες.4. Κάθε κράτηση αφορά μια πτήση και ένα επιβάτη.5. Κράτηση επιβεβαιώνεται ή ακυρώνεται.6. Κάθε πτήση έχει αεροδρόμιο αναχώρησης και

προορισμού.7. Κάθε πτήση έχει ημερομηνία / ώρα αναχώρησης και

άφιξης.8. Μια πτήση μπορεί να έχει στάσεις σε αεροδρόμια.9. Η στάση έχει ώρα άφιξης και αναχώρησης.10. Κάθε αεροδρόμιο εξυπηρετεί μια ή περισσότερες

πόλεις.

Page 76: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

76

Συμβάσεις Διαγραμμάτων Κλάσεων• Ονόματα κλάσεων (και ρόλοι) είναι ουσιαστικά

που ξεκινούν με κεφαλαίο γράμμα.• Ονόματα ιδιοτήτων ξεκινούν με πεζό.• Ονόματα λειτουργιών είναι ρήματα που

ξεκινούν με πεζό γράμμα.• Συμβολισμοί εμβέλειας ιδιοτήτων και μεθόδων:

+ δημόσια (εντός και εκτός της κλάσης)- ιδιωτική (μόνο εντός της κλάσης)

Στο στάδιο της ανάλυσης και αρχικής σχεδίασης ιδιωτικές ιδιότητες και μέθοδοι μπορεί να παραληφθούν, όπως και οι παράμετροι των μεθόδων.

Page 77: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

77

Εταιρίες και Πτήσεις

1. Αεροπορικές εταιρίες προσφέρουν διάφορες πτήσεις.

2. Κάθε πτήση ανοίγει και κλείνει για κρατήσεις.7. Κάθε πτήση έχει ημερομηνία / ώρα αναχώρησης και

άφιξης.

ΣυσχέτισηΡόλος

Κάθε εταιρία προσφέρει

τουλάχιστον μία πτήση.

Κάθε πτήση προσφέρεται από εταιρίες που

λειτουργούν ως ναυλωτές.

Μια πτήση μπορεί να δέχεται κρατήσεις ή

όχι.

Page 78: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

78

Πτήσεις και Αεροδρόμια

6. Κάθε πτήση έχει αεροδρόμιο αναχώρησης και προορισμού.

7. Κάθε αεροδρόμιο εξυπηρετεί μια ή περισσότερες πόλεις.

Ιδιότητες

Page 79: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

79

Διάγραμμα Αντικειμένων Ετ-Πτ-Αε

elVenizelos: Αεροδρόμιο

aegean: ΑεροπορικήΕταιρία

Α1815: Πτήση

13/12/05 16.0013/12/05 17.00

αναχωρείΑπό Kos: Αεροδρόμιο

προσγειώνεταιΣε

Κως: Πόλη

lufthasna: ΑεροπορικήΕταιρία

Α3137: Πτήση

17/12/05 10.0017/12/05 11.36

Heathrow: Αεροδρόμιο

αναχωρείΑπό

προσγειώνεταιΣε

Αθήνα: Πόλη

Ρώμη: Πόλη

εξυπηρετεί

Page 80: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

80

Ενδιάμεσες Στάσεις

8. Μια πτήση μπορεί να έχει στάσεις σε αεροδρόμια.9. Η στάση έχει ώρα άφιξης και αναχώρησης.

Κάθε πτήση μπορεί να κάνει 0, 1 ή περισσότερες

ενδιάμεσες (ταξινομημένες)

στάσεις.

Page 81: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

81

Διάγραμμα Αντικειμένων ΕνδιαμέσηΣτάση

LH1685: Πτήση

13/12/05 21.5514/12/05 00.10

Fumicino: Αεροδρόμιο

Incheon: Αεροδρόμιο

αναχωρείΑ

π

όπροσγειώνεταιΣεΣεούλ: Πόλη

lufthasna: ΑεροπορικήΕταιρία

Ρώμη: Πόληεξυπηρετεί

Dubai: Αεροδρόμιο

Λάρνακα: Αεροδρόμιο

Ε1: ΕνδιάμεσηΣτάση

Ε2: ΕνδιάμεσηΣτάση

Λευκωσία: Πόλη

Ακρωτήρι: Πόλη

Page 82: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

82

Κρατήσεις και Επιβάτες

3. Πελάτης μπορεί να κάνει κρατήσεις σε μια ή περισσότερες πτήσεις για επιβάτες.

4. Κάθε κράτηση αφορά μια πτήση και ένα επιβάτη.

5. Κράτηση επιβεβαιώνεται ή ακυρώνεται.

Επιτρέπουμε πελάτες που δεν

έχουν κάνει καμιά κράτηση.

Page 83: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

83

Διάγραμμα Αντικειμένων Κρατήσεις

LH1685: Πτήση

13/12/05 21.5514/12/05 00.10

κ113: Κράτηση

κ164: Κράτηση

κ114: Κράτηση

πανΑιγαίου: Πελάτης

ΈχειΓίνειΣτην

κάνει

κάνει

ε2323: Επιβάτης

Νίκος Νικολάου

ε6773: Επιβάτης

Μαίρη Νικολάου

αφορά

Α3137: Πτήση

17/12/05 10.0017/12/05 11.36

αφορά

ΈχειΓίνειΣτηνπ6244: Πελάτης

κάνει

αφορά

Page 84: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

84

Κρατήσεις Θέσεων: Πλήρες

Page 85: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

85

Διάγραμμα Αντικειμένων Μεγάλο

LH1685: Πτήση

13/12/05 21.5514/12/05 00.10

Fumicino: Αεροδρόμιο

Incheon: Αεροδρόμιο

αναχωρείΑπό

προσγειώνεταιΣε

Σεούλ: Πόλη

lufthasna: ΑεροπορικήΕταιρία

Α3137: Πτήση

17/12/05 10.0017/12/05 11.36

Heathrow: Αεροδρόμιο

αναχωρείΑπό

προσγειώνεταιΣε

Αθήνα: Πόλη

Ρώμη: Πόλη

εξυπηρετεί

Dubai: ΑεροδρόμιοΛάρνακα: Αεροδρόμιο

Ε1: ΕνδιάμεσηΣτάση

Ε2: ΕνδιάμεσηΣτάση

elVenizelos: Αεροδρόμιο

aegean: ΑεροπορικήΕταιρία

Α1815: Πτήση

13/12/05 16.0013/12/05 17.00

αναχωρείΑπό Kos: Αεροδρόμιο

προσγειώνεταιΣε

Κως: Πόλη

Page 86: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

86

Άσκηση Μοντελοποίησης με Κλάσεις

Ποια στατική συσχέτιση (γενίκευση, σύνθεση, ομαδοποίηση, συσχέτιση) αρμόζει στις παρακάτω προτάσεις:

1. Ένας φάκελος περιέχει αρχεία.2. Ένα δωμάτιο αποτελείται από τοίχους.3. Τα μόντεμ και τα πληκτρολόγια είναι

περιφερειακές συσκευές.4. Μια χρηματιστηριακή συναλλαγή είναι είτε

αγορά, είτε πώληση.5. Ένας τραπεζικός λογαριασμός μπορεί να

ανήκει σε ένα πρόσωπο ή σε μια εταιρία.6. Δύο άνθρωποι μπορεί να είναι παντρεμένοι.

Page 87: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

89

Διάγραμμα Δραστηριότητας

Page 88: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

90

Μοντελοποίηση Διεργασιών

• Ο πηγαίος κώδικας που γράφουμε εκτελεί διεργασίες χρησιμοποιώντας ακολουθιακή εκτέλεση, έλεγχο ροής και λογικές συνθήκες. Θέλουμε να καταλαβαίνουμε πως ρέει ο έλεγχος ανάμεσα στις διεργασίες.

• Παραδοσιακά, είχαμε τα διαγράμματα ροής (flowcharts).

• Στη UML, η εξέλιξη τους ονομάζεται διαγράμματα δραστηριότητας (σε αυτή την ενότητα, ΔΔ). Η αντικειμενοστραφής προσέγγιση υποβαθμίζει τη

μοντελοποίηση της συμπεριφοράς, αφού έχει σε πρώτη προτεραιότητα τα διαγράμματα κλάσεων / αντικειμένων.

Page 89: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

91

Σκοπός του Διαγράμματος Δραστηριότητας• Το χρησιμοποιούμε στις περιπτώσεις

χρήσης και στις λειτουργίες κλάσεων.• Είδαμε ότι οι στόχοι του συστήματος

περιγράφονται με τις περιπτώσεις χρήσης. Το αντίστοιχο διάγραμμα είναι πολύ γενικό και γι' αυτό χρησιμοποιήσαμε περιγραφές με κείμενο. Ένα ΔΔ είναι πιο συγκεκριμένο.

• Όταν μια μέθοδος μιας κλάσης είναι περίπλοκη, ένα ΔΔ την αποσαφηνίζει.

Activity Diagram

Page 90: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

92

Χαρακτήρας των ΔΔ

• Ένα διάγραμμα δραστηριότητας δείχνει τη ροή από μια διεργασία σε μια άλλη.

• Παράδειγμα ανοικοδόμησης κτίσματος

Δραστηριότητα

Μετάβαση

Page 91: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

93

Σύμβολα Διαγράμματος Δραστηριότητας

Δραστηριότητα

μετάβαση

[συνθήκη]

απόφαση

τέλοςαρχή

"Φυλασσόμενη" μετάβαση: ακολουθείται

όταν η συνθήκη γίνει αληθής.

Ο ρόμβος συμβολίζει ένα σημείο επιλογής της ροής ελέγχου (if, case)

Page 92: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

94

ΔΔ για Online Παραγγελία

Πρόβαλε άδεια φόρμα παραγγελίας

Ενεργοποίησε νέα παραγγελία

Πρόσθεσε υλικό

Πρόβαλε ενημερωμένηφόρμα παραγγελίας

[υπέρβαση χρόνου]

[ολοκληρώθηκε]

Αποθήκευσε παραγγελία

Email για επικύρωση

[εντάξει]

[υπέρβαση χρόνου]

Page 93: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

95

Σύμβολα Διαγράμματος Δραστηριότητας

Διάσπαση (fork)

ροής εκτέλεσης

Συγχώνευση ροής

εκτέλεσης

Ταυτοχρονισμός

(concurrency)

3

Μπάρα συγχρονισμού

Ξεκινούν τρεις όμοιες

διεργασίες.

Μπορείς να προχωρήσεις

αν ενεργοποιηθούν 2 μεταβάσεις.

[2]*Επανάληψη

Page 94: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

96

ΔΔ με ΣυγχρονισμόΑ

νάληψ

η μ

ετρητώ

ν α

πό Α

ΤΜ

Activity Diagram

Page 95: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

97

Διαδρομές Κολύμβησης

• Τα ΔΔ μοιάζουν ανησυχητικά με τα διαγράμματα ροής. Πώς θα αντιστοιχίσουμε τις δραστηριότητες σε αντικείμενα;

• Μπορούμε να ξανασχεδιάσουμε το ΔΔ τοποθετώντας τις δραστηριότητες σε διαδρομές – κάθε διάδρομος αντιστοιχεί σε ένα αντικείμενο. Κάθε δραστηριότητα αντιστοιχεί σε μια λειτουργία της αντίστοιχης κλάσης. Έτσι συνδέουμε το ΔΔ με το διάγραμμα κλάσεων.

Swimlanes

Page 96: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

98

ΔΔ με Διαδρομές

Κάθε διαδρομή ανήκει σε ένα αντικείμενο.

Παράδειγμα διεργασίας: παραγγελία προϊόντος

(λήψη, επεξεργασία και

εκτέλεση)

Page 97: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

99

Ανακεφαλαίωση ΔΔ

• Τα ΔΔ μοντελοποιούν διεργασίες, προσθέτοντας στα διαγράμματα ροής (που υποστηρίζουν ακολουθιακή εκτέλεση) δυνατότητες:(α) ταυτοχρονισμού / συγχρονισμού

νημάτων, (β) οργάνωσης σε διαδρομές, όπου μια κλάση

αναλαμβάνει την ευθύνη μιας δραστηριότητας.

• Τα ΔΔ είναι κοντά στα διαγράμματα PERT (χρονοπρογραμματισμός έργου).

Page 98: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

100

Διάγραμμα Ακολουθίας

Page 99: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

101

Δυναμικά Μοντέλα

• Το διάγραμμα κλάσης είναι το βασικότερο στατικό μοντέλο που περιγράφει τη δομή του συστήματος.

• Τα δυναμικά μοντέλα απεικονίζουν τη δυναμική συμπεριφορά του συστήματος, πχ πώς αποκρίνεται στις ενέργειες των χρηστών ή σε άλλα εξωτερικά ερεθίσματα και πώς διαμορφώνεται η εσωτερική του κατάσταση κατά τη λειτουργία του.

• Το δυναμικό μοντέλο αποτελείται από τα διαγράμματα ακολουθίας και συνεργασίας.

Page 100: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

102

Διάγραμμα Ακολουθίας

• Μοντελοποιεί αλληλεπιδράσεις μεταξύ αντικειμένων.

• Στην αρχική φάση της μοντελοποίησης, φτιάξαμε τις περιπτώσεις χρήσης και σενάρια λειτουργίας για καθεμιά.

• Το διάγραμμα ακολουθίας προκύπτει από τις περιγραφές των σεναρίων σε κείμενα.

• Μοιάζει με το διάγραμμα δραστηριότητας σε διαδρομές.

Sequence Diagram

Page 101: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

103

Διαδικασία Κατασκευής Διαγράμματος Ακολουθίας

Το διάγραμμα ακολουθίας φτιάχνεται εύκολα αν υπάρχει το διάγραμμα περιπτώσεων χρήσης (δίνει τα σενάρια) και το διάγραμμα αντικειμένων (δίνει τα αντικείμενα).

Page 102: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

104

Σύμβολα Διαγράμματος Ακολουθίας

1. Άξονας του χρόνου

2. Συμβάν / μήνυμα3. Επιστροφή4. Αριθμός

ακολουθίας5. Αναφορά στον

εαυτό του6. Όνομα

αντικειμένου7. Ανώνυμο

αντικείμενο8. Σχόλιο

επανάληψης9. Απλό σχόλιο10. Υπογραφή

μηνύματος11. Συνθήκη

Page 103: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

105

Τι Είναι Πίσω Από Ένα Συμβάν

Αντικείμενο Α Αντικείμενο Β

παράγγειλεΠροϊόν(περιγραφή)

Αποστολέας του

μηνύματος

Παραλήπτης του

μηνύματος

Όνομα του μηνύματος

Αποστολέας του

μηνύματος

Page 104: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

106

Διάγραμμα Συνεργασίας

Page 105: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

107

Διάγραμμα Συνεργασίας

• Είναι μια εναλλακτική αποτύπωση του διαγράμματος ακολουθίας. Αντί να διαρθρώσουμε τα μηνύματα κατά τον άξονα του χρόνου, τα τοποθετούμε πάνω σε ένα διάγραμμα αντικειμένων.

Collaboration Diagram

Page 106: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

108

Οπτική Γωνία του Κάθε Διαγράμματος• Το διάγραμμα συνεργασίας

επικεντρώνεται σε σχέσεις στο χώρο, ενώ το διάγραμμα ακολουθίας σε σχέσεις στο χρόνο.

• Εργαλεία CASE μπορούν να μετακινούνται από το ένα προς το άλλο διάγραμμα.

• Το διάγραμμα συνεργασίας δείχνει τις μεθόδους που θα υλοποιεί κάθε κλάση και ποια άλλη κλάση θα τις καλεί.

Page 107: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

109

Σύμβολα Διαγράμματος Συνεργασίας

1. Αντικείμενο2. Απλό

μήνυμα3. Απλή

επιστροφή4. Αναφορά

στον εαυτό5. Αριθμός

ακολουθίας6. Ανώνυμο

αντικείμενο7. Σχόλιο για

επανάληψη

Page 108: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

110

Μετασχηματισμός σε Διάγραμμα Κλάσης

Κάθε μήνυμα γίνεται μέθοδος και τοποθετείται στην κλάση από όπου εκπορεύεται.

Page 109: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

111

Τηλέφωνο με Κερματοδέκτη

4ο παράδειγμα

Page 110: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

112

Στόχος του Παραδείγματος

• Θα μοντελοποιήσουμε μια τηλεφωνική συσκευή με κερματοδέκτη, από αυτές που βρίσκονται σε δημόσιους χώρους.

• Θα προσδιορίσουμε δράστες και περιπτώσεις χρήσης.

• Θα μοντελοποιήσουμε τη δυναμική συμπεριφορά του συστήματος και τις καταστάσεις από τις οποίες περνά κατά τη λειτουργία του.

Page 111: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

113

Διατύπωση Προβλήματος

Μια τηλεφωνική συσκευή με κερματοδέκτη λειτουργεί ως εξής:

1. Η ελάχιστη χρέωση είναι 20 λεπτά.2. Αφού εισάγει τα κέρματα, ο καλών έχει 2 λεπτά για

να πληκτρολογήσει έναν αριθμό.3. Η γραμμή μπορεί να είναι ελεύθερη ή κατειλημμένη.4. Ο καλούμενος μπορεί να κλείσει πρώτος.5. Η συσκευή αφαιρεί από το ποσό των κερμάτων από

τη στιγμή που απαντά ο καλούμενος και όποτε ‘πέφτει’ μια τηλεφωνική μονάδα.

6. Ο καλών μπορεί να προσθέσει κέρματα ανά πάσα στιγμή.

7. Μόλις κλείσει η γραμμή, επιστρέφεται το υπόλοιπο ποσό στον κερματοδέκτη.

Page 112: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

114

Διάγραμμα Θεματικού Πεδίου

Καλών

Καλούμενος

ΤηλεφωνικόΔίκτυο

Κερματοδέκτης

ΤηλεφωνικήΣυσκευή

Αυτό το σύστημα

μοντελοποιούμε.

Θα επικεντρώσουμε

στον δράστη ‘Καλών’, στο

σύστημα-στόχος ‘Κερματοδέκτης’,

και στον δευτερεύοντα

δράστη ‘ΤηλεφωνικόΔίκτυο

’.

Page 113: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

115

Διάγραμμα Περιστατικού Χρήσης

ΤηλεφωνικόΔίκτυο

Κερματοδέκτης

Καλών

Περιστατικό χρήσης: ο καλών χρησιμοποιεί τη συσκευή του κερματοδέκτη για να πραγματοποιήσει κλήσεις μέσω του τηλεφωνικού δικτύου.

Σενάριο 1: ο καλών τοποθετεί 60 λεπτά στον κερματοδέκτη και καλεί ένα σωστό τηλεφωνικό αριθμό. Ο καλούμενος απαντά και συζητούν για λίγη ώρα, μέχρι που ο καλών κλείνει το ακουστικό.

Page 114: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

116

Διάγραμμα Ακολουθίας Για Σενάριο 1

Καλών Τηλεφωνικό Δίκτυο

Κερματοδέκτης

σηκώνειΑκουστικό

εισάγειΚέρμα(20λ)

καλείΑριθμό(22810…)

δρομολογείΚλήση(22810…)

σήμαΓραμμής(μηΚατειλημμένη)

έναρξηΣυνομιλίας

φωνήΚαλούμενου

φωνήΚαλούνταπέφτειΜονάδα

εισάγειΚέρμα(20λ)πέφτειΜονάδα

κατεβάζειΑκουστικότέλοςΣυνομιλίας

Χρ

όνο

ς

Page 115: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

117

Διάγραμμα Συνεργασίας

:Καλών

:ΤηλεφωνικόΔίκτυο

:Κερματοδέκτης

σηκώνειΑκουστικόεισάγειΚέρμα(ποσόν)καλείΑριθμό(αριθμός)

φωνήΚαλούντακατεβάζειΑκουστικό

δρομολογείΚλήση(αριθμός)τέλοςΣυνομιλίας

σήμαΓραμμής(τύπος)

έναρξηΣυνομιλίας

φωνήΚαλούμενουπέφτειΜονάδα

Αντικατάσταση τιμών από το σενάριο με

παραμέτρους.

εγκυρότηταΑριθμού(αριθμός)

τέλοςΚλήσης

τερμάτισεΚλήση'Εσωτερικές'

λειτουργίες του συστήματος

Page 116: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

118

Διάγραμμα Καταστάσεων

Ακουστικό στη θέση

του

Τηλ. επικοινωνία σε

εξέλιξη

Αναμονή για κέρμα

Αναμονή για αριθμό

Αναμονή να απαντήσει ο καλούμενος

Έγκυρος αριθμός κλήσης;

σηκώνειΑκουστικό when(πίστωση>20λεπτά)

καλείΑριθμό

εγκυρότηταΑριθμού

έναρξηΣυνομιλίας

κατεβάζειΑκουστικό

1 Νόμιμες καταστάσεις

2 Μεταβάσεις

Page 117: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

119

Διάγραμμα Καταστάσεων

Page 118: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

120

Περιγραφή Διαγράμματος Κατάστασης• Απεικονίζει το σύστημα σαν μια μηχανή

πεπερασμένων καταστάσεων: Κατά τη λειτουργία, το σύστημα θα πρέπει

να βρίσκεται σε μια από ένα πεπερασμένο πλήθος 'νόμιμων' καταστάσεων.

Ανταποκρινόμενο σε εσωτερικά ή εξωτερικά συμβάντα το σύστημα θα μεταβαίνει από μια κατάσταση σε μια άλλη.

• Αφορά ένα αντικείμενο και τις διαδοχικές καταστάσεις που αυτό μεταπίπτει κατά την εκτέλεση ενός σεναρίου μιας περίπτωσης χρήσης.

Page 119: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

121

Βήματα για Κατασκευή Διαγράμματος Καταστάσεων

1. Επιλογή του αντικειμένου Ένα διάγραμμα καταστάσεων δεν μπορεί

να περιλαμβάνει καταστάσεις πολλών αντικειμένων. Τα συμβάντα ωστόσο μπορούν να προκαλούνται από άλλα αντικείμενα.

2. Εντοπισμός των διακριτών καταστάσεων που μπορεί να μπει αυτό το αντικείμενο.

3. Εντοπισμός συμβάντωνπου προκαλούν μετάβαση ανάμεσα στις καταστάσεις.

Page 120: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

122

Συμβάντα

• Συνήθως η μετάβαση από μια κατάσταση σε μια άλλη σηματοδοτείται από την αποστολή ενός μηνύματος (=εκτέλεση μιας μεθόδου) από ένα αντικείμενο σε ένα άλλο αντικείμενο.

• Μερικές φορές η μετάβαση σε μια άλλη κατάσταση πυροδοτείται όταν ισχύσει μια συνθήκη στην κατάσταση του αντικειμένου. Τότε χρησιμοποιούμε την ετικέτα when με την συνθήκη που πυροδοτεί τη μετάβαση.

Page 121: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

123

Σύμβολα Διαγράμματος Καταστάσεων• Μια κατάσταση του αντικειμένου

• όνομα / περιγραφή• πώς προσδιορίζεται σε σχέση

με τις ιδιότητες του αντικείμενου;

• Μετάβαση από μια κατάσταση σε μια άλλη

Πάνω στο βέλος αναγράφεται το συμβάν που πυροδοτεί τη μετάβαση

• Αρχική κατάσταση• Τελική κατάσταση

Ακουστικό στη θέση

του

έναρξηΣυνομιλίας

Page 122: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

124

Καταστάσεις ΤραπεζικούΛογαριασμού

Page 123: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

125

Τύποι Συμβάντων

• Εξωτερικό: προκαλείται από αντικείμενο εκτός του αντικειμένου του οποίου την κατάσταση περιγράφουμε.

• Εσωτερικό: προκαλείται από το ίδιο το αντικείμενο.

• Χρονικά: προκαλείται σε συγκεκριμένο χρόνο ή χρονικό διάστημα. Πχ, κάθε 1η Ιανουαρίου και 1η Ιουλίου

ενσωμάτωνε τους τόκους στο κεφάλαιο.

Page 124: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

126

Συμβάντα που Πυροδοτούν Μετάβαση

Εξωτερικό συμβάν

Εσωτερικό συμβάν

Page 125: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

127

Άσκηση: ΑΤΜ

• Κατασκευάστε διάγραμμα καταστάσεων για ATM. Αντικείμενο: Λογαριασμός Αντικείμενο: Πελάτης Αντικείμενο: ΑΤΜ Αντικείμενο: ΚάρταΓιαΑΤΜ

Page 126: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

128

Ρολόι με Ξυπνητήρι

4ο παράδειγμα

Page 127: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

129

Περιγραφή για Ξυπνητήρι

• Ένα ρολόι που δείχνει την ώρα.• Μπορούμε να ενεργοποιήσουμε ή να

απενεργοποιήσουμε το ξυπνητήρι.• Όταν η ώρα που δείχνει το ρολόι

ταυτιστεί με την ώρα του ξυπνητηριού και το ξυπνητήρι έχει ενεργοποιηθεί, χτυπάει ένα κουδούνι συνέχεια.

• Μπορούμε να σταματήσουμε το κουδούνισμα.

Page 128: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

130

Διάγραμμα Καταστάσεων Ξυπνητηριού

Ανενεργό

Ενεργό

Κουδουνίζει

ενεργοποίησεΞυπνητήρι(ώραΞυπν)

απενεργοποίησεΞυπνητήρι

when(ώραΡολογιού = ώραΞυπν)

σταμάταΚουδούνισμα

Εξωτερικό συμβάν

Εσωτερικό συμβάν

Τι θα συμβεί αν σταματήσουμε το

κουδούνισμα αμέσως μόλις αρχίσει να

κουδουνίζει;

Page 129: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

131

Διάγραμμα Περίπτωσης Χρήσης και Κλάσης

Υπναράς

Ξυπνητήρι

- ώραΡολογιού = 00.00 - ώραΞυπν = null

+ ενεργοποίησε(ώραΞυπν)+ απενεργοποίησε()

+ σταμάταΚουδούνισμα()- κουδούνισε()

0..n

Page 130: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

132

Επεκτάσεις

• Κάντε το ξυπνητήρι να σταματάει να κουδουνίζει μόνο του μετά από 5 λεπτά.

• Προσθέστε δυνατότητα ο χρήστης να μπορεί να αλλάζει την ώρα του ρολογιού. Όσο συμβαίνει αυτό, το ξυπνητήρι απενεργοποιείται.

• Το ρολόι έχει και ένα λαμπάκι που μπορεί να το ανάψει ο χρήστης για να δει την ώρα. Το λαμπάκι ανάβει όσο κουδουνίζει το ξυπνητήρι.

Page 131: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

133

Ανακεφαλαίωση

Page 132: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

134

1 Διάγραμμα Περιπτώσεων Χρήσης• Δείχνει την αλληλεπίδραση ανάμεσα

στους εξωτερικούς χρήστες και το σύστημα.

• Χρήση: Αποτυπώνει τις επιχειρησιακές απαιτήσεις για το σύστημα.

• Φάσεις: Καθ' όλη την διάρκεια της ανάπτυξης του συστήματος

• Αποτελεί το σημείο εκκίνησης για την αντικειμενοστραφή ανάπτυξη.

Page 133: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

135

2 Διάγραμμα Κλάσεων

• Δείχνει την στατική δομή του συστήματος σε επίπεδο κλάσης.

• Χρήση: Αποτυπώνει τις σχέσεις μεταξύ των κλάσεων που εμφανίζονται στο μοντέλο του συστήματος.

• Φάσεις: ανάλυση, σχεδίαση

Page 134: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

136

3 Διάγραμμα Αντικειμένων

• Δείχνει την στατική δομή του συστήματος σε επίπεδο αντικειμένων.

• Χρήση: Αποτυπώνει τις σχέσεις μεταξύ των αντικειμένων που εμφανίζονται στο μοντέλο του συστήματος. Χρησιμοποιείται όταν συγκεκριμένα στιγμιότυπα των κλάσεων κάνουν το μοντέλο πιο ευκολονόητο.

• Φάσεις: ανάλυση, σχεδίαση

Page 135: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

137

4 Διάγραμμα Ακολουθίας

• Δείχνει την αλληλεπίδραση ανάμεσα στις κλάσεις ενός συγκεκριμένου σεναρίου μιας περίπτωσης χρήσης και είναι διαρθρωμένο κατά τον άξονα του χρόνου.

• Χρήση: Αποτυπώνει τη συμπεριφορά των κλάσεων κατά την 'εκτέλεση' του σεναρίου

• Φάσεις: ανάλυση, σχεδίαση

Page 136: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

138

5 Διάγραμμα Συνεργασίας

• Δείχνει την αλληλεπίδραση ανάμεσα στις κλάσεις για μια περίπτωση χρήσης, χωρίς να είναι διαρθρωμένο κατά τον άξονα του χρόνου.

• Χρήση: Αποτυπώνει τη συμπεριφορά των κλάσεων κατά την 'εκτέλεση' της περίπτωσης χρήσης.

• Φάσεις: ανάλυση, σχεδίαση

Page 137: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

139

6 Διάγραμμα Καταστάσεων

• Δείχνει την ακολουθία των καταστάσεων που μπορεί να πέσει ένα αντικείμενο, καθώς και τα συμβάντα που προκαλούν την μετάβαση από μια κατάσταση σε μια άλλη.

• Χρήση: Αποτυπώνει τις νόμιμες καταστάσεις κάθε κλάσης κατά την εξέλιξη μιας περίπτωσης χρήσης.

• Φάσεις: ανάλυση, σχεδίαση

Page 138: Πληροφοριακά Συστήματα: Μοντελοποίηση με  UML

140

7 Διάγραμμα Δραστηριότητας

• Καταγράφει μια συγκεκριμένη επιχειρησιακή διαδικασία ή τη δυναμική μιας ομάδας αντικειμένων. Προβάλει μια άποψη των ροών και περιγράφει τι συμβαίνει κατά την εξέλιξη μιας περίπτωσης χρήσης μεταξύ των κλάσεων.

• Χρήση: Αποτυπώνει τη ροή των δραστηριοτήτων μέσα σε μια περίπτωση χρήσης.

• Φάσεις: ανάλυση, σχεδίαση