. Μεθοδολογία Προγραμματισμού. UML Διαγράμματα. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

Σχετικά έγγραφα
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

4η ιάλεξη. UML ιαγράμματα αλληλεπίδρασης

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

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

Περιεχόμενο του μαθήματος

PDF created with pdffactory Pro trial version

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

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

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

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

περιεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης

. Μεθοδολογία Προγραμματισμού. Abstract Κλάσεις και Interfaces. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

Κεφάλαιο 2ο. Κατανοώντας την αντικειμενοστρέφεια

Διαγράμματα Κλάσεων στη Σχεδίαση

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Οι περιπτώσεις χρήσης

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού

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

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

. Μεθοδολογία Προγραμματισμού. Εισαγωγή. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

Ανάλυση Περιπτώσεων Χρήσης

. Μεθοδολογία Προγραμματισμού. Μοτίβα σχεδίασης (Design Patterns) Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

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

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

Τα διαγράµµατα ακολουθίας

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

ΕΚΦΩΝΗΣΗ ΥΠΟΧΡΕΩΤΙΚΗΣ ΕΡΓΑΣΙΑΣ σε UML

Διαγράμματα περιπτώσεων χρήσης

Περιεχόμενο του μαθήματος

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

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής

Μεθοδολογία Προγραμματισμού

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

Δομή Επιλογής. 1. Αν ο σκύλος ακουμπήσει ένα κόκαλο τότε το κόκαλο εξαφανίζεται και ο παίκτης κερδίζει 10 πόντους.

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Σημειογραφία των προτύπων BPMN και UML (Activity Diagrams)

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 3: Μοντελοποίηση Περιπτώσεων Χρήσης (1ο Μέρος)

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ: Γ2

του προγράμματος diagrama_rohs.zip )

Ηλεκτρονικό Κατάστημα

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

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

Κατάλογος εικόνων Πρόλογος της τρίτης έκδοσης Πρόλογος της πρώτης έκδοσης... 23

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 2: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (2ο Μέρος)

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

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

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Περίπτωση Χρήσης Use case

7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής

Εισαγωγή στην Πληροφορική

Προγραμματισμός Η/Υ (ΤΛ2007 )

Εφαρμογή δημιουργίας σεναρίων Sctatch

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

Τμήμα Μηχανικών Η/Υ Τηλεπικοινωνιών & Δικτύων,

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

Περιπτώσεις Χρήσης για το Π.Σ. ΜΟ.ΔΙ.Π. Κρήτης

Έγγραφο Περιγραφής Απαιτήσεων Λογισμικού

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2

Περιεχόμενα. ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στη UML... 19

ΔΟΜΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΣΥΜΠΕΡΙΦΟΡΑΣ (9)

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Περιπτώσεις Χρήσης και Διαγράµµατα Περιπτώσεων Χρήσης. Use Cases and Use Case Diagrams

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 7: Διαγράμματα Καταστάσεων

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Μεταβλητές. Για περισσότερες λεπτομέρειες πάνω στις μεταβλητές θα ήταν χρήσιμο να διαβάσεις το

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

Προγραμματιστικό Περιβάλλον

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής

Σειρά Προβλημάτων 5 Λύσεις

Διαγράμματα. Νίκος Σκουλίδης, Σημειώσεις Φυσικής Α` Γυμνασίου, , Διαγράμματα_1_0.docx

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

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

αντίστοιχο γεγονός. Όταν όντως το κουμπί

3 ο Εργαστήριο Μεταβλητές, Τελεστές

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

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

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

Σκοπός του μαθήματος

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

ΕΙΣΑΓΩΓΗ ΣΤΗΝ UML ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΠΙΧΕΙΡΗΜΑΤΙΚΩΝ ΔΙΑΔΙΚΑΣΙΩΝ (ΔΙΑΓΡΑΜΜΑΤΑ ΔΡΑΣΤΗΡΙΟΤΗΤΩΝ & ΠΕΡΙΠΤΩΣΕΩΝ ΧΡΗΣΗΣ) (7-8)

Σειρά Προβλημάτων 5 Λύσεις

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

Αναπαραγωγή με αρχεία ήχου

Σειρά Προβλημάτων 5 Λύσεις

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

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

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

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Transcript:

.. Μεθοδολογία Προγραμματισμού UML Διαγράμματα Νικόλαος Πεταλίδης Τμήμα Μηχανικών Η/Υ ΤΕΙ Κεντρικής Μακεδονίας Εισαγωγή Εαρινό Εξάμηνο 2014 Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 1 / 57

UML Diagrams Τα υπόλοιπα διαγράμματα UML Η UML εκτός από τα διαγράμματα κλάσεων έχει και μια σωρεία άλλων διαγραμμάτων που χρησιμοποιούνται σε διαφορετικές συνθήκες Δομικά διαγράμματα Διαγράμματα συμπεριφοράς Διαγράμματα αλληλεπίδρασης Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 2 / 57

Δομικά Διαγράμματα Δομικά (Structural) Διαγράμματα Δίνουν έμφαση στη δομή του συστήματος ανεξάρτητα από το πως μεταβάλλεται στο χρόνο Κλάσεων Συστατικών Διάταξης Αντικειμένων Πακέτων Σύνθετων δομών Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 3 / 57

Δομικά Διαγράμματα Διαγράμματα συστατικών Δείχνουν τις εξαρτήσεις μεταξύ των συστατικών του λογισμικού Δείχνουν τόσο τις κλάσεις αλλά όσο και τα αρχεία από τα οποιά αποτελείται το λογισμικό (scripts, binary files κτλ) Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 4 / 57

Δομικά Διαγράμματα Παράδειγμα διαγράμματος συστατικών Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 5 / 57

Δομικά Διαγράμματα Συστατικά Ένα συστατικό είναι μια αυτόνομη μονάδα Ένα συστατικό έχει Interfaces Δηλαδή ένα σύνολο από λειτουργίες και υποχρεώσεις Εξαρτήσεις Σχέσεις με άλλα συστατικά Ports Σημεία διεπαφής με άλλα συστατικά και το περιβάλλον Connectors Συνδέουν το εξωτερικό ενός συστατικού με το εσωτερικό του Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 6 / 57

Δομικά Διαγράμματα Παρεχόμενες διεπαφές Ένα συστατικό μπορεί να δηλώσει ότι παρέχει μια διεπαφή Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 7 / 57

Δομικά Διαγράμματα Απαιτούμενες διεπαφές Ένα συστατικό μπορεί να δηλώσει ότι απαιτεί μια διεπαφή Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 8 / 57

Δομικά Διαγράμματα Εξαρτήσεις Μια εξάρτηση δηλώνει ότι ένα συστατικό απαιτεί ένα άλλο προκειμένου να λειτουργήσει Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 9 / 57

Δομικά Διαγράμματα Ports Μια πόρτα δηλώνει ένα ξεχωριστό σημείο επαφής μεταξύ ενός συστατικού και του περιβάλλοντός του ή μεταξύ ενός συστατικού και των εσωτερικών τμημάτων του Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 10 / 57

Δομικά Διαγράμματα Ports Μια πόρτα μπορεί να είναι μόνο για εισαγωγή ή εξαγωγή δεδομένων ή και για αμφίδρομη επικοινωνία. Μπορείτε να θεωρήσετε τις πόρτες ως ένα σύνολο από interfaces με συγκεκριμένο όνομα Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 11 / 57

Δομικά Διαγράμματα Connectors Πολλές φορές είναι χρήσιμο να δείξουμε την εσωτερική δομή ενός συστατικού Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 12 / 57

Δομικά Διαγράμματα Διαγράμματα διάταξης Παρουσιάζουν μια στατική δομή της διάταξης του συστήματος Δείχνουν την παραμετροποίηση του hardware καθώς και ποιά κομμάτια λογισμικού εκτελούνται σε ποιό hardware Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 13 / 57

Δομικά Διαγράμματα Παράδειγμα διαγράμματος διάταξης Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 14 / 57

Δομικά Διαγράμματα Διαγράμματα αντικειμένων Παρόμοια με τα διαγράμματα κλάσεων μόνο που δείχνουν αντικείμενα και όχι κλάσεις Δείχνουν πώς συγκεκριμένα αντικείμενα σχετίζονται με άλλα σε συγκεκριμένα σενάρια Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 15 / 57

Δομικά Διαγράμματα Παράδειγμα διαγράμματος αντικειμένων Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 16 / 57

Δομικά Διαγράμματα Διαγράμματα πακέτων Παρόμοια με τα διαγράμματα κλάσεων Ομαδοποιούν κλάσεις σε πακέτα και αναπαριστούν το σύστημα με λιγότερη λεπτομέρεια Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 17 / 57

Δομικά Διαγράμματα Παράδειγμα διαγράμματος πακέτων Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 18 / 57

Δομικά Διαγράμματα Παράδειγμα διαγράμματος σύνθετης δομής Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 19 / 57

Διαγράμματα συμπεριφοράς Διαγράμματα συμπεριφοράς (behavioural) Δείχνουν τη συμπεριφορά μιας συγκεκριμένης διαδικασίας Δραστηριότητας Χάρτες καταστάσεων Περιπτώσεων χρήσης Αλληλεπίδρασης Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 20 / 57

Διαγράμματα συμπεριφοράς Διαγράμματα δραστηριότητας Είναι το ισοδύναμο των παραδοσιακών διαγραμμάτων ροής Δείχνουν τη ροή του ελέγχου μέσα στο σύστημα Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 21 / 57

Διαγράμματα συμπεριφοράς Παράδειγμα διαγράμματος δραστηριότητας Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 22 / 57

Διαγράμματα συμπεριφοράς Χάρτες καταστάσεων Η UML μας δίνει σαν εργαλείο τους χάρτες καταστάσεων για να δείξουμε πως μπορεί να αλλάξει η κατάσταση ενός αντικειμένου Δείχνουν τις καταστάσεις από τις οποίες περνά ένα αντικείμενο Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 23 / 57

Διαγράμματα συμπεριφοράς Παράδειγμα: Οι καταστάσεις μιας παραγγελίας Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 24 / 57

Διαγράμματα συμπεριφοράς Διαγράμματα κατάστασης Σε ένα διάγραμμα κατάστασης συμβαίνουν κάποιες ενέργειες οι οποίες αλλάζουν την κατάσταση του συστήματος και τις δραστηριότητες που μπορούν να εκτελεστούν Συνήθως η τριπλέτα Συμβάν[Συνθήκη]/Ενέργεια σημαίνει ότι αν συμβεί το Συμβάν και η Συνθήκη είναι αληθής τότε εκτελείται η Ενέργεια και ολοκληρώνεται η μετάβαση από μια κατάσταση σε μια άλλη. Ενόσω το σύστημα είναι σε μια κατάσταση μπορεί να ολοκληρώσει διάφορες δραστηριότητες Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 25 / 57

Διαγράμματα συμπεριφοράς Παράδειγμα Έστω ότι έχουμε μία κλάση που αφορά ένα πρωτόκολλο εισόδου (Login Protocol) Σε αυτό το πρωτόκολλο αφού πάρουμε εντολή στέλνουμε ένα αίτημα Login περιμένουμε μια απάντηση OK. (LoginSent) Αν η απάντηση είναι θετική θεωρούμε ότι η είσοδος είναι πετυχημένη (LoginDone) Αν η απάντηση είναι αρνητική θεωρούμε ότι η είσοδος είναι αποτυχημένη (LoginRejected) Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 26 / 57

Διαγράμματα συμπεριφοράς Παράδειγμα (συνέχεια) Αν αργήσουμε να πάρουμε απάντηση για πάνω από 30sec τότε έχουμε ένα Timeout και ξαναπροσπαθούμε για το πολύ 3 φορές. Την 3η φορά θεωρούμε ότι αποτύχαμε στην είσοδο (LoginFailed) Επίσης ακυρώνουμε την ενέργεια οποτεδήποτε η συνθήκη cancelispressed γίνει αληθής οπότε και ακυρώνουμε την είσοδο (LoginCancelled) Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 27 / 57

Διαγράμματα συμπεριφοράς Παράδειγμα: LoginProtocol Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 28 / 57

Διαγράμματα συμπεριφοράς Είδη συμβάντων CallEvent: λήψη ενός μηνύματος, π.χ. sendlogin SignalEvent: λήψη ενός σήματος, π.χ. OKReceived ChangeEvent: συνθήκη γίνεται αληθής, π.χ. when(canceliedpressed) TimeEvent: σχετικό ή απόλυτο σημείο στο χρόνο, π.χ. after(30 sec) Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 29 / 57

Διαγράμματα συμπεριφοράς Υπερκαταστάσεις Όταν από πολλές καταστάσεις υπάρχει η ίδια μετάβαση στην ίδια κατάσταση τότε μπορούμε να χρησιμοποιήσουμε την έννοια της υπερκατάστασης Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 30 / 57

Διαγράμματα συμπεριφοράς Παράδειγμα υπερκατάστασης Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 31 / 57

Διαγράμματα συμπεριφοράς Ταυτοχρονισμός Υπάρχουν επίσης πολλά προβλήματα τα οποία εμπεριέχουν την έννοια της παραλληλίας Για παράδειγμα όσο γίνεται ο έλεγχος για μια παραγγελία στην αποθήκη, ταυτόχρονα γίνεται έλεγχος για την πληρωμή της παραγγελίας Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 32 / 57

Διαγράμματα συμπεριφοράς Παράδειγμα ταυτοχρονισμού Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 33 / 57

Διαγράμματα συμπεριφοράς Διαγράμματα Περιπτώσεων χρήσης Χρησιμοποιούνται για την αναπαράσταση της λειτουργίας ενός συστήματος, υποσυστήματος ή κλάσης, όπως αυτή γίνεται αντιληπτή από τον εξωτερικό χρήστη (χαρακτήρας). Χωρίζουν τη λειτουργία του συστήματος σε συναλλαγές που έχουν νόημα για τους χαρακτήρες (actors). Κάθε χωριστή και ολοκληρωμένη λειτουργία είναι μια περίπτωση χρήσης. Το σύνολο των περιπτώσεων χρήσης συνιστούν τη συμπεριφορά του συστήματος. Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 34 / 57

Διαγράμματα συμπεριφοράς Διαγράμματα Περιπτώσεων χρήσης Σε κάθε διάγραμμα περίπτωσης χρήσης απεικονίζεται ένας χρήστης του συστήματος ως ένα ανθρωπάκι Η περίπτωση χρήσης απεικονίζεται ως μία έλλειψη. Ο χρήστης «ξεκινά» μία περίπτωση χρήσης αναμένοντας την εκτέλεση κάποια λειτουργίας. Η συσχέτιση μεταξύ χρήστη και περίπτωσης χρήσης απεικονίζεται με μία γραμμή μεταξύ τους ενώ η φορά της ενεργοποίησης με τη χρήση κατευθυνόμενης γραμμής. Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 35 / 57

Διαγράμματα συμπεριφοράς Παράδειγμα Έστω ότι πρέπει να φτιάξετε ένα πρόγραμμα δημιουργίας γράφων. Ένα τέτοιο πρόγραμμα θα σας επιτρέπει να «ζωγραφίζετε» στην οθόνη γράφους σαν αυτούς πιο κάτω Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 36 / 57

Διαγράμματα συμπεριφοράς Μοντέλο παραδείγματος Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 37 / 57

Διαγράμματα συμπεριφοράς Κανονική και εναλλακτικές ροές Μια περίπτωση χρήσης έχει μια κανονική και πολλές εναλλακτικές συμπεριφορές Σε ένα μοντέλο περιπτώσεων χρήσης θεωρείται ότι η εκτέλεση κάθε περίπτωσης χρήσης είναι ανεξάρτητη από τις υπόλοιπες (ορθογωνικότητα) Στην πράξη βέβαια, κατά την υλοποίηση του συστήματος μπορεί να υπάρχουν εξαρτήσεις μεταξύ τους. Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 38 / 57

Διαγράμματα συμπεριφοράς Περιγραφή μιας περίπτωσης χρήσης Σύντομη Περιγραφή Περιγραφή σε 1 ή 2 σειρές της συμπεριφοράς που εκτελείται και των χρηστών της συγκεκριμένης περίπτωσης Προαπαιτούμενα Τι πρέπει να ισχύει ώστε να είναι δυνατή η έναρξη της περίπτωσης χρήσης Κύρια ροή Περιγραφή σε μορφή κειμένου των γεγονότων με τη σειρά που θα συμβούν Εναλλακτικές ροές Περιγραφή εξαιρέσεων ή λανθασμένων καταστάσεων Αποτελέσματα Συνθήκες που θα ισχύουν μετά την ομαλή εκτέλεση της εν λόγω περίπτωσης χρήσης. Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 39 / 57

Διαγράμματα συμπεριφοράς Παράδειγμα περιγραφής Σύντομη Περιγραφή Η περίπτωση χρήσης επιτρέπει σε έναν Χρήστη να εισάγει ένα νέο κόμβο στο γράφο Προαπαιτούμενα Ο χρήστης έχει τρέξει την περίπτωση χρήσης «Δημιουργία νέου γράφου» (δε φαίνεται στην προηγούμενη διαφάνεια) Κύρια ροή 1. Η περίπτωση χρήσης ξεκινά όταν ο Χρήστης αποφασίσει να προσθέσει ένα κόμβο. 2. Το σύστημα δίνει τη δυνατότητα στον Χρήστη να τοποθετήσει ένα μικρό κύκλο σε οποιοδήποτε σημείο του καμβά του προγράμματος 3. Ο Χρήστης τοποθετεί τον κόμβο και το σύστημα τον ρωτάει να εισάγει το facebookid του χρήστη στον οποίο αντιστοιχεί ο κόμβος Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 40 / 57

Διαγράμματα συμπεριφοράς Παράδειγμα περιγραφής Εναλλακτική ροή γεγονότων Ο χρήστης προσπαθεί να προσθέσει έναν κόμβο αλλά το σύστημα δεν του επιτρέπει λόγω περιορισμών μνήμης. Πρέπει να εμφανίζεται ανάλογο μήνυμα Αποτέλεσμα Αν η περίπτωση χρήσης είναι επιτυχής, ο γράφος περιέχει έναν περισσότερο κόμβο Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 41 / 57

Διαγράμματα συμπεριφοράς Συνεργασία μεταξύ περιπτώσεων χρήσης Συσχέτιση Το μονοπάτι επικοινωνίας μεταξύ ενός χαρακτήρα και μιας περίπτωσης χρήσης στην οποία συμμετέχει Επέκταση (extends) Η προσθήκη λειτουργικότητας σε μία βασική περίπτωση χρήσης (η οποία δεν γνωρίζει για αυτή) Γενίκευση Μία συσχέτιση μεταξύ μιας γενικής περίπτωσης χρήσης και μίας ειδικότερης που κληρονομεί στοιχεία συμπεριφοράς και προσθέτει νέα χαρακτηριστικά. Περιεκτικότητα (includes) Η προσθήκη λειτουργικότητας σε μία βασική περίπτωση χρήσης (η οποία περιγράφει σαφώς την περίπτωση που εμπεριέχεται) Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 42 / 57

Διαγράμματα συμπεριφοράς Πότε να χρησιμοποιείτε τις σχέσεις Περιεκτικότητα Όταν επαναλαμβάνετε τα ίδια σε δύο ή περισσότερες περιπτώσεις χρήσης για να αποφύγετε την επανάληψη Επέκταση (extends) Όταν περιγράφετε μια παραλλαγή μιας κανονικής συμπεριφοράς και θέλετε να ελέγξετε ακριβώς τα σημεία στα οποία αυτή διαφέρει από την κανονική (σημεία επέκτασης) Γενίκευση Όταν περιγράφετε μια παραλλαγή μιας κανονικής συμπεριφοράς και θέλετε να το κάνετε με κομψό τρόπο Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 43 / 57

Διαγράμματα συμπεριφοράς Παράδειγμα σχέσεων Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 44 / 57

Διαγράμματα αλληλεπίδρασης Διαγράμματα αλληλεπίδρασης (interaction) Δείχνουν πώς αλληλεπιδρούν μεταξύ τους τα αντικείμενα Ακολουθίας Επικοινωνίας Χρονισμού (δεν θα αναλυθούν) Σύνοψης (δεν θα αναλυθούν) Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 45 / 57

Διαγράμματα αλληλεπίδρασης Παράδειγμα διαγράμματος ακολουθίας Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 46 / 57

Διαγράμματα αλληλεπίδρασης Επεξήγηση Τα παραλληλόγραμμα στην κορυφή δηλώνουν τους συμμετέχοντες (συνήθως αντικείμενα) Η γραμμή κάτω από κάθε παραλληλόγραμμο είναι γνωστή ως γραμμή ζωής (lifeline) Ένα παραλληλόγραμμο ενεργοποίησης δηλώνει απλώς ότι τη συγκεκριμένη στιγμή το αντικείμενο εκτελεί κάποια ενέργεια Ο κατακόρυφος άξονας είναι ο άξονας του χρόνου. Ο χρόνος είναι σημαντικός μόνο ως προς την αλληλουχία των γεγονότων εκτός και αν αναφέρεται κάτι διαφορετικό Οι οριζόντιες γραμμές αναπαριστούν μηνύματα Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 47 / 57

Διαγράμματα αλληλεπίδρασης Ονομασία αντικειμένων Η μέθοδος ονομασίας των αντικειμένων που εμφανίζεται στα διαγράμματα ακολουθεί τη μορφή: Όνομα αντικειμένου: όνομα κλάσης Πολλές φορές μπορεί να αναγράψουμε μόνο το ένα από τα δύο, δηλ. Όνομα αντικειμένου: ή :Όνομα κλάσης (είτε Όνομα κλάσης) Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 48 / 57

Διαγράμματα αλληλεπίδρασης 2ο Παράδειγμα διαγράμματος ακολουθίας Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 49 / 57

Διαγράμματα αλληλεπίδρασης Επεξήγηση.1 Το αντικείμενο mediator λαμβάνει ένα μήνυμα μέσω της notify() (Εναλλακτικά: το αντικείμενο editpane καλεί τη συνάρτηση notify() του mediator).2 Το αντικείμενο mediator δημιουργεί ένα νέο αντικείμενο facebookidform της κλάσης EditFacebookIdForm.3 To αντικείμενο facebookidform στέλνει ένα μήνυμα στον εαυτό του.4 okbuttonclicked Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 50 / 57

Διαγράμματα αλληλεπίδρασης Είδη μηνυμάτων Ένα μήνυμα στην πιο απλή του μορφή μπορεί να εννοηθεί ως η κλήση μιας συνάρτησης. Υπάρχουν όμως πολλά είδη μηνυμάτων που μπορούν να ανταλλαχθούν Σύγχρονα Ασύγχρονα Απλά Περιγράφουν πως ο έλεγχος περνάει από το ένα αντικείμενο στο άλλο, χωρίς λεπτομέρειες για την επικοινωνία Υλοποιούνται σαν μια κλήση συνάρτησης. Ο αποστολέας συνεχίζει να εκτελεί τις υπόλοιπες λειτουργίες του αφού στείλει το μήνυμα, χωρίς να περιμένει για την διαχείρισή του. Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 51 / 57

Διαγράμματα αλληλεπίδρασης Αναπαράσταση μηνυμάτων Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 52 / 57

Διαγράμματα αλληλεπίδρασης Εναλλακτικές ροές Στα διαγράμματα ακολουθίας προσπαθήστε να δείξετε μία συγκεκριμένη περίπτωση φορά Αν υπάρχουν πολλές εναλλακτικές ροές κάντε και πολλά διαγράμματα Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 53 / 57

Διαγράμματα αλληλεπίδρασης Διαγράμματα επικοινωνίας Σε ένα διάγραμμα επικοινωνίας τα αντικείμενα απεικονίζονται ως εικονίδια Όπως και σε ένα διάγραμμα ακολουθίας τα βέλη απεικονίζουν αποστολές μηνυμάτων στο πλαίσιο της αναπαράστασης μιας συγκεκριμένης λειτουργίας Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 54 / 57

Διαγράμματα αλληλεπίδρασης Παράδειγμα διαγράμματος επικοινωνίας Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 55 / 57

Διαγράμματα αλληλεπίδρασης Επεξήγηση Το αντικείμενο JimsOrderForm στέλνει ένα μήνυμα ετοίμασε() στο αντικείμενο JimsOrder Για κάθε στοιχείο παραγγελίας, το αντικείμενο JimsOrder στέλνει ένα μήνυμα ετοίμασεπροϊον() στο αντικείμενο JimsOrderItem To αντικείμενο JimsOrderItem στέλνει ένα μήνυμα έλεγξεαποθήκη() στο αντικείμενο JimsStockITem και αποθηκεύει το αποτέλεσμα στη μεταβλητή ΥπάρχειΣτοΣτοκ Το αντικείμενο JimsStockITem στέλνει ένα μήνυμα στον εαυτό του χρειάζεταιπαραγγελία() και αποθηκεύει το αποτέλεσμα στη μεταβλητή χρειάζεταιπαραγγελία Αν η μεταβλητή χρειάζεταιπαραγγελία είναι αληθής τότε το αντικείμενο AthensStock στέλνει ένα μήνυμα νέο στο αντικείμενο ΝεwOrderItem Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 56 / 57

Διαγράμματα αλληλεπίδρασης Παρατηρήσεις Στα διαγράμματα επικοινωνίας η αρίθμηση των μηνυμάτων δείχνει την ακολουθία τους Αυτό μπορεί να κάνει πιο δύσκολη την παρακολούθηση της ακολουθίας σε σχέση με την παράθεση των μηνυμάτων από πάνω προς τα κάτω Όμως μπορείτε να δείξετε πιο εύκολα πως συνδέονται τα αντικείμενα μεταξύ τους Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 57 / 57