Interaction Diagrams Διαγράμματα Αλληλεπίδρασης
|
|
- Λαυρέντιος Αλεξανδρίδης
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 20/11/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια Interaction Diagrams Διαγράμματα Αλληλεπίδρασης 1
2 Διαγράμματα UML Διάγραμμα περιπτώσεων χρήσης (use case diagram) Διάγραμμα δραστηριοτήτων (activity diagram) Διάγραμμα κλάσεων (class diagram) Διάγραμμα αντικειμένων (object diagram) Διαγράμματα αλληλεπίδρασης (interaction diagrams) Διάγραμμα ακολουθίας (sequence diagram) Διάγραμμα επικοινωνίας (communication diagram) Διάγραμμα καταστάσεων (state diagram) Διαγράμματα υλοποίησης (physical diagrams) Διάγραμμα συστατικών (component diagram) Διάγραμμα ανάπτυξης (deployment diagram) Άξονες Μοντελοποίησης Λειτουργικότητα functionality Τι κάνει το σύστημα; Ποιες λειτουργίες υποστηρίζει; Ανάλυση απαιτήσεων Περιγραφές από κείμενο Στατικά διαγράμματα Πώς είναι οργανωμένα τα συστατικά του τμήματα; Δυναμική συμπεριφορά Πώς ανταποκρίνεται και από ποιες καταστάσεις περνάει; Δομή structure Συμπεριφορά behaviour 2
3 Κατηγοριοποίηση Διαγραμμάτων UML 2.0 Μοντελοποίηση με τη γλώσσα UML Περιγραφή Λειτουργίας από την πλευρά του χρήστη Στατική δομή Δυναμικά χαρακτηριστικά - Συμπεριφορά Μοντελοποίηση Απαιτήσεων Μοντελοποίηση στατικής δομής του συστήματος Μοντελοποίηση δυναμικών χαρακτηριστικών του συστήματος Μοντελοποίηση της συμπεριφοράς συγκεκριμένων αντικειμένων Μοντελοποίηση των βημάτων εκτέλεσης μιας διαδικασίας Σενάρια, Διαγράμματα περιπτώσεων χρήσης (Scenaria, Use Case Diagrams) Διαγράμματα Κλάσεων (Class Diagrams) Διαγράμματα Αντικειμένων (Object Diagrams) Διαγράμματα Συστατικών (Component Diagrams) Διαγράμματα Ανάπτυξης (Deployment Diagrams) Διαγράμματα Ακολουθίας (Sequence Diagrams) Διαγράμματα Επικοινωνίας (Collaboration Diagrams Communication Diagrams στη UML 2.0) Διαγράμματα Κατάστασης (State Machine Diagrams) Διαγράμματα Δραστηριότητας (Activity Diagrams) 3
4 Δυναμικά Μοντέλα Τα δυναμικά μοντέλα απεικονίζουν τη δυναμική συμπεριφορά του συστήματος, πχ πώς αποκρίνεται στις ενέργειες των χρηστών ή σε άλλα εξωτερικά ερεθίσματα και πώς διαμορφώνεται η εσωτερική του κατάσταση κατά τη λειτουργία του. Απεικονίζουν την αλληλεπίδραση μεταξύ αντικειμένων Κατά την ανάπτυξη του δυναμικού μοντέλου ενδέχεται να προκύψουν βελτιώσεις της στατικής δομής Δυναμικά μοντέλα Παρουσιάζουν τον τρόπο με τον οποίο πολλά αντικείμενα ή ομάδες αντικειμένων συνεργάζονται και αλληλεπιδρούν μεταξύ τους σε μια περίπτωση χρήσης για την ολοκλήρωση μιας εργασίας Χρησιμοποιούνται και στη φάση της ανάλυσης του συστήματος λογισμικού και στη φάση της σχεδίασης Αφορούν συμπεριφορά! Τι εξυπηρετεί όμως η μοντελοποίηση της συμπεριφοράς? Για να δείξουμε τα μηνύματα που ανταλλάσσονται μεταξύ των αντικειμένων στα πλαίσια μιας περίπτωσης Χρήσης και τη σειρά αυτών Πώς επικοινωνούν τα αντικείμενα ενός μοντέλου; Παρατήρηση: Αν μοντελοποιήσουμε τη συμπεριφορά λεπτομερειακά, είναι σαν να υλοποιούμε το σύστημα! Άρα πρέπει να εστιάζουμε στα σημαντικά σημεία (the key aspects) 4
5 Δυναμικά μοντέλα Παράδειγμα... Πώς υπολογίζεται η τιμή της παραγγελίας? Δυναμικά μοντέλα Συνήθως σε ένα αντικειμενοστρεφές σύστημα, χρησιμοποιούμε τους εξής τύπους μοντέλων για να μοντελοποιήσουμε τη συμπεριφορά: Διάγραμμα καταστάσεων (state diagram) Διαγράμματα αλληλεπίδρασης (interaction diagrams) Διάγραμμα ακολουθίας (sequence diagram) Διάγραμμα επικοινωνίας (communication diagram) Τα διαγράμματα αλληλεπίδρασης περιέχουν και απεικονίζουν την ίδια πληροφορία που καθορίζεται από την αλληλεπίδραση και είναι συμπληρωματικά. Έχουν διαφορετική μορφή δίνοντας έμφαση σε διαφορετική οπτική γωνία και όψη της αλληλεπίδρασης (σε πολλά εργαλεία το ένα είδος διαγράμματος παράγεται αυτόματα από το άλλο) 5
6 Διαγράμματα αλληλεπίδρασης Τα διαγράμματα αλληλεπίδρασης περιγράφουν τον τρόπο με τον οποίο μια ομάδα αντικειμένων συνεργάζεται Ένα διάγραμμα συνήθως περιγράφει τη συμπεριφορά σε μια Περίπτωση Χρήσης. Δείχνει παραδείγματα αντικειμένων που εμπλέκονται και τα μηνύματα που ανταλλάσσονται μεταξύ τους κατά τη διάρκεια της Περίπτωσης Χρήσης. Use Case 3 Interaction Diagrams Διαγράμματα αλληλεπίδρασης Αλληλεπίδραση (interaction): το σύνολο των μηνυμάτων που ανταλλάσσονται μεταξύ των αντικειμένων Μήνυμα: μονόδρομη επικοινωνία μεταξύ δύο αντικειμένων ροή ελέγχου με πληροφορία από αποστολέα προς αποδέκτη Ένα μήνυμα μπορεί να έχει παραμέτρους μεταφέροντας τιμές μεταξύ των αντικειμένων Η ακολουθία των μηνυμάτων παρουσιάζεται: είτε με διαγράμματα ακολουθίας που εστιάζουν στη χρονική ακολουθία των μηνυμάτων είτε με διαγράμματα επικοινωνίας που εστιάζουν στις σχέσεις μεταξύ των αντικειμένων που ανταλλάσσουν μηνύματα 6
7 Διαγράμματα αλληλεπίδρασης Η διαδικασία απεικόνισης της συνεργασίας των αντικειμένων του συστήματος μέσω των αλληλεπιδράσεων είναι σημαντική: μέσω αυτής προκύπτουν οι λειτουργίες που πρέπει να υποστηρίζουν τα αντικείμενα του συστήματος ή ακόμα και τα ίδια τα αντικείμενα και οι κλάσεις Διαγράμματα Αλληλεπίδρασης Διάγραμμα ακολουθίας (Sequence Diagram) Αναπαριστά τη χρονική σειρά εκτέλεσης των γεγονότων που λαμβάνουν χώρα κατά τη διάρκεια της αλληλεπίδρασης δίνει επομένως έμφαση στη χρονική ακολουθία μηνυμάτων! Κάθετη διάσταση (vertical dimension) (χρόνος) και Οριζόντια διάσταση (horizontal dimension) (διαφορετικά αντικείμενα) 7
8 Διαγράμματα Αλληλεπίδρασης Διάγραμμα επικοινωνίας (Communication Diagram) Αναπαριστά και τις σχέσεις μεταξύ των αντικειμένων. Καλό για την κατανόηση των επιπτώσεων σε ένα στιγμιότυπο/αντικείμενο Το διάγραμμα επικοινωνίας απαιτεί λιγότερο σχεδιαστικό χώρο μια και η διάταξη των αντικειμένων είναι ελεύθερη στο χώρο και επομένως προτιμάται όταν έχουμε πολλά αντικείμενα σε μία αλληλεπίδραση ή όταν σχεδιάζουμε ένα διάγραμμα με το χέρι Διαγράμματα Αλληλεπίδρασης Διάγραμμα ακολουθίας (Sequence Diagram) δεν αναπαριστά τις σχέσεις μεταξύ των αντικειμένων αλλά μόνο τον τρόπο αλληλεπίδρασής τους Διάγραμμα επικοινωνίας (Communication Diagram) αναπαριστά τα αντικείμενα και τις σχέσεις μεταξύ τους ανεξάρτητα από την αλληλεπίδρασή τους 8
9 Διάγραμμα Ακολουθίας Απεικονίζει τη σειρά των ενεργειών ενός σεναρίου στον άξονα του χρόνου Εξηγεί ποιος δράστης εκκινεί μια ενέργεια και με ποιον δράστη συνεργάζεται ΟΧΙ εναλλακτικές πορείες ΜΟΝΟ η κύρια ροή προς την επιτυχημένη κατάληξη Διάγραμμα ακολουθίας Σε κάθε αντικείμενο αντιστοιχεί μία κάθετη γραμμή που ονομάζεται γραμμή ζωής (lifeline). Για όσο χρόνο ένα αντικείμενο υφίσταται, η γραμμή αυτή είναι διακεκομμένη ενώ για όσο χρόνο μία διαδικασία του εν λόγω αντικειμένου είναι ενεργή, η γραμμή ζωής σχεδιάζεται ως μία διπλή γραμμή (με activation box). Ένα μήνυμα συμβολίζεται ως μία ακμή από τη γραμμή ζωής ενός αντικειμένου προς τη γραμμή ζωής ενός άλλου. Η θέση των ακμών αντιστοιχεί στην τοποθέτησή τους σε σχέση με τον χρόνο (μία ακμή χαμηλότερα από μία άλλη αντιστοιχεί σε μεταγενέστερο χρόνο) Απαντήσεις σε μηνύματα υποδηλώνονται ως οριζόντιες διακεκομμένες ακμές Τα αντικείμενα γράφονται από αριστερά προς τα δεξιά και στον οριζόντιο άξονα Τα αντικείμενα ανταλλάσσουν μηνύματα Οριζόντια γραμμή: δείχνει τα αντικείμενα ως κουτιά Κατακόρυφη γραμμή: χρόνος (αυξάνει προς τα κάτω) Activation box: δείχνει πότε το αντικείμενο είναι ενεργό (στη μνήμη) Μηνύματα: μεταξύ των activation boxes δύο αντικειμένων 9
10 Στοιχεία διαγραμμάτων ακολουθίας Στοιχείο Περιγραφή Συμβολισμός Ένα αντικείμενο αναπαρίσταται με ένα ορθογώνιο στο οποίο αναγράφεται το όνομα του αντικείμενο αντικειμένου στη συνέχεια μία άνω κάτω τελεία και ακολουθεί το όνομα της κλάσης στην οποία ανήκει. Πλαίσιο Ενεργοποίησης Αποστολή Μηνύματος Κάτω από κάθε αντικείμενο εκτείνεται μια διακεκομμένη γραμμή που αντιστοιχεί στη γραμμή ζωής του αντικειμένου. Όταν λαμβάνεται ένα μήνυμα ξεκινά ένα πλαίσιο ενεργοποίησης (διπλή γραμμή) το οποίο αντιστοιχεί στη διάρκεια εκτέλεσης της λειτουργίας εξυπηρέτησης του μηνύματος. Μία προσανατολισμένη ακμή από το αντικείμενο που αποστέλλει το μήνυμα προς το αντικείμενο που είναι αποδέκτης. Υλοποιείται με μία λειτουργία στην κλάση του αντικειμένου που είναι αποδέκτης του μηνύματος. Στο παράδειγμα η τάξη Department θα πρέπει να έχει μία μέθοδο με όνομα getcustomer( ). Αν η αποστολή του μηνύματος γίνεται υπό συνθήκη, η συνθήκη μπαίνει σε αγκύλες πριν το όνομα του μηνύματος. Αν το μήνυμα αποστέλλεται επαναληπτικά, συμβολίζεται με ένα αστεράκι πριν το όνομα του μηνύματος. B o b : E m p lo y e e S a le s : D e p a rtm e n t 1 : g e tc u s to m e r( ) S a le s : D e p a rtm e n t S a le s : D e p a rtm e n t Στοιχεία διαγραμμάτων ακολουθίας Επιστροφή Μηνύματος Μία διακεκομμένη ακμή που επιστρέφει από το κληθέν αντικείμενο σε αυτό που πραγματοποίηση την κλήση υποδηλώνοντας ολοκλήρωση της λειτουργίας εξυπηρέτησης ενός μηνύματος. (Προαιρετικό) P a y F o rm : F o rm Αυτο-κλήση Αποστολή μηνύματος ενός αντικειμένου στον εαυτό του ή αλλιώς κλήση μιας μεθόδου του αντικειμένου από το ίδιο το αντικείμενο. 3 : H ig h lig h ta m o u n t( ) Ασύγχρονο Μήνυμα Ένα ασύγχρονο μήνυμα δεν εμποδίζει το αντικείμενο που πραγματοποιεί την κλήση να συνεχίσει την όποια λειτουργία του χωρίς να αναμένει αν το μήνυμα λήφθηκε ή όχι. Συνεπώς, ένα ασύγχρονο μήνυμα δημιουργεί ένα νέο νήμα εκτέλεσης ή μπορεί να δημιουργήσει ένα νέο αντικείμενο. A c c o u n tin g : Departm ent 1 : c re a te ( ) B o b : E m p lo y e e 10
11 Αντικείμενο Ονομασία αντικειμένου: συντακτικό: [instancename][:classname] Η ονομασία των κλάσεων θα πρέπει να είναι συνεπής με το class diagram (ίδιες κλάσεις). Πρέπει να περιλαμβάνουμε και instance names όταν αντικείμενα αναφέρονται σε μηνύματα ή όταν αρκετά αντικείμενα του ιδίου τύπου υπάρχουν στο διάγραμμα mybirthdy :Date Σύγχρονες και Ασύγχρονες Κλήσεις Σύγχρονη κλήση Συμβολίζεται με «συμπαγή» αιχμή βέλους ή ολόκληρο βέλος Όταν ο καλών πραγματοποιεί μια σύγχρονη κλήση, πρέπει να περιμένει μέχρι αυτή να ολοκληρωθεί και μετά να συνεχίσει Ασύγχρονη κλήση Συμβολίζεται με «ανοιχτή» αιχμή βέλους ή μισό βέλος Αν ο καλών πραγματοποιήσει μια ασύγχρονη κλήση, μπορεί να συνεχίσει την επεξεργασία χωρίς να περιμένει την απόκριση επεξεργάζεται την απάντηση όταν και όποτε αυτή σταλεί Ασύγχρονες κλήσεις χρησιμοποιούνται για τη μοντελοποίηση πολυνηματικών (multithread) εφαρμογών 11
12 Διάγραμμα Ακολουθίας 23 Διάγραμμα ακολουθίας : actor : Kiosk : Server : C reditservice 1: insertcard (customer) 2: pickdate (date) 3: offer (seatchoice) 4: select (seats) 9: print (order) 5: subm it (or der) 8: OK Η γραμμή ζωής αναπαριστά ένα στιγμιότυπο της κλάσης CreditService Το όνομα της κλάσης είναι υπογραμμισμένο γιατί αναπαριστά συγκεκριμένο στιγμιότυπο μιας κλάσης 6: charg e (customer, amount) σε ένα διάγραμμα ακολουθίας 7: c onfi rm at io n 12
13 Διάγραμμα ακολουθίας Fred : Student Fred : Φοιτητής : Πρόγραμμα Μαθημάτων ΠλάνοFred : Πλάνο Σπουδών ΑντίγραφοFred : Αντίγραφο OBJ101 : Τάξη 1: Εισαγωγή 2: παρουσίαση προγράμματος 3: πρόγραμμα παρουσιάστηκε 4: αίτηση θέσης 5: έλεγξε πλάνο σπουδών 6: ΟΚ 7: έλεγξε προαπαιτούμενα 8: ΟΚ 9: επιβεβαίωση διαθεσιμότητας 10: πρόσθεσε Μάθημα 11: εκτύπωση μηνύματος επιβεβαίωσης Διάγραμμα ακολουθίας Τα διαγράμματα ακολουθίας είναι εξαιρετικά χρήσιμα για τον εντοπισμό λειτουργιών στις διάφορες κλάσεις. Αν ένα αντικείμενο λαμβάνει ένα μήνυμα alpha, συνεπάγεται ότι η κλάση στην οποία ανήκει το εν λόγω αντικείμενο θα πρέπει να έχει μία μέθοδο με το ίδιο όνομα για να εξυπηρετεί τον αποστολέα Υπονοείται επίσης, ότι αφού δύο αντικείμενα επικοινωνούν μεταξύ τους μέσω μηνυμάτων, θα πρέπει να υπάρχει κάποιου είδους συσχέτιση μεταξύ τους που θα λειτουργεί ως δίαυλος επικοινωνίας Παράδειγμα αν ένα αντικείμενο Α στέλνει ένα μήνυμα ζητώντας κάποια λειτουργία από ένα αντικείμενο Β, το Α θα πρέπει με κάποιο τρόπο να γνωρίζει που να αποστείλει το μήνυμα. Αν αυτό συνεπάγεται την ύπαρξη μιας μονόδρομης συσχέτισης μεταξύ των αντίστοιχων κλάσεων, θα πρέπει κατά την υλοποίηση του συστήματος, στο συγκεκριμένο αντικείμενο Α να γνωστοποιηθεί η θέση του αντικειμένου Β 13
14 Γεγονότα Η αλληλεπίδραση μεταξύ αντικειμένων ενεργοποιείται από γεγονότα Γεγονός είναι οποιοδήποτε εξωτερικό ερέθισμα σε ένα αντικείμενo, που σηματοδοτείται ως λήψη ενός μηνύματος. Ένα γεγονός μπορεί να ενεργοποιείται από: εξωτερικούς χρήστες (click στο mouse) άλλα υπολογιστικά συστήματα (λήψη ενός ) άλλο αντικείμενο στο ίδιο σύστημα (αλυσιδωτή ενεργοπ.) την πάροδο του χρόνου Όταν ένα αντικείμενο ειδοποιηθεί για ένα γεγονός μέσω μηνύματος, μπορεί να: αλλάξει την κατάστασή του στείλει μήνυμα (γεγονός) σε άλλο αντικείμενο επιστρέψει μία τιμή αγνοήσει το γεγονός Γεγονότα Όταν ένα αντικείμενο ειδοποιηθεί για ένα γεγονός μέσω μηνύματος, μπορεί να αλλάξει την κατάστασή του... class Professor { public: addstudent(student* s) {πρόσθεσε το s στο supervisedstudents;} private: }; std::list<student*> supervisedstudents; addstudent (&Joe) Professor Joe 14
15 Γεγονότα Όταν ένα αντικείμενο ειδοποιηθεί για ένα γεγονός μέσω μηνύματος, μπορεί να στείλει μήνυμα (γεγονός) σε άλλο αντικείμενο... class Section { public: addstudent(student* s) { στείλε μήνυμα στο course; } private: Course* course; }; addstudent (Joe) Professor enrollstudent (Joe) ένα άλλο αντικείμενο μπορεί να χειρίζεται την εκτύπωση ή την εμφάνιση στην οθόνη Math101 Κλασσικό παράδειγμα delegation (κατανομής αρμοδιοτήτων) όπου ένα αντικείμενo υποστηρίζει μία λειτουργία άλλου αντικειμένου Γεγονότα Όταν ένα αντικείμενο ειδοποιηθεί για ένα γεγονός μέσω μηνύματος, μπορεί να επιστρέψει μία τιμή... class Section { public: whatisthecapacity() { επιστροφή τιμής capacity; } private: Course* course; 25 int capacity; }; whatisthecapacity Section1 Κλασσικό παράδειγμα get συναρτήσεων 15
16 Γεγονότα Όταν ένα αντικείμενο ειδοποιηθεί για ένα γεγονός μέσω μηνύματος, μπορεί να αγνοήσει το γεγονός... Παράδειγμα: Έστω ότι ο Καθηγητής λαμβάνει το μήνυμα Προσθήκη ενός Φοιτητή στους Επιβλεπόμενους. Αν ο φοιτητής είναι ήδη εγγεγραμμένος στη λίστα, το αντικείμενο Καθηγητής δεν θα κάνει τίποτα δηλαδή δεν θα αλλάξει κατάσταση, ούτε θα αποστείλει νέο μήνυμα Διαγράμματα ακολουθίας Κατά τη μελέτη σεναρίων (ανάπτυξη διαγραμμάτων ακολουθίας) είναι πιθανό να προκύψουν νέες κλάσεις, ιδιότητες και σχέσεις και συνεπώς να τροποποιηθεί το στατικό μοντέλο. Κάτι τέτοιο συμβαίνει συχνά και είναι επιθυμητό Αν για παράδειγμα από τη μελέτη διαφόρων διαγραμμάτων ακολουθίας προκύπτει ότι δύο αντικείμενα αποκρίνονται με τον ίδιο τρόπο στα διάφορα δυνατά μηνύματα, τότε τα δύο αυτά αντικείμενα είτε θα ανήκουν στην ίδια κλάση είτε θα ανήκουν σε κλάσεις που συνδέονται με σχέση κληρονομικότητας. Υπό αυτή την έννοια, η επαναληπτική εξέταση διαγραμμάτων ακολουθίας και διαγραμμάτων κλάσεων οδηγεί στην ανάπτυξη του τελικού συστήματος, πολύ πριν αρχίσει η φάση της κωδικοποίησης. Θα πρέπει να γίνει κατανοητό, ότι αυτή η επαναληπτική διαδικασία στη φάση της ανάλυσης βρίσκεται στο επίκεντρο της αντικειμενοστρεφούς μεθοδολογίας για την ανάπτυξη συστημάτων 16
17 Χρήση διαγραμμάτων ακολουθίας για τον καθορισμό μεθόδων Αυτο-κλήσεις υποδηλώνουν λειτουργίες που το αντικείμενο πραγματοποιεί στον εαυτό του: είτε ιδιωτικές μεθόδους είτε δημόσια διαθέσιμες μεθόδους που μπορούν να χρησιμοποιήσουν και άλλα αντικείμενα Η εξέταση όλων των διαγραμμάτων ακολουθίας (σεναρίων) θα αποκαλύψει τις περισσότερες λειτουργίες/μεθόδους του συστήματος Ωστόσο, κάποιες από τις μεθόδους δεν θα έρθουν στην επιφάνεια μέχρι την υλοποίηση του συστήματος. ΑΝΑΜΕΝΟΜΕΝΟ! Παράδειγμα διαγράμματος ακολουθίας συμμετέχων γραμμή ζωής επιστροφή μήνυμα αυτο-κλήση πλαίσιο ενεργοποίησης 17
18 Τύποι μηνυμάτων Call: κλήση μιας λειτουργίας (Invocation of an operation) Ένα αντικείμενο μπορεί να στείλει ένα μήνυμα στον εαυτό του (local invocation of an operation) Return: επιστρέφει μια τιμή στον καλούντα (returns a value to the caller) Send: στέλνει ένα σήμα (signal) σε ένα αντικείμενο Create: δημιουργεί ένα αντικείμενο Destroy: καταστρέφει ένα αντικείμενο Απεικόνιση μηνυμάτων Ένα βέλος μεταξύ των κατακόρυφων γραμμών δυο αντικειμένων Το βέλος συνοδεύεται από όνομα μηνύματος (π.χ. όνομα της καλούμενης λειτουργίας) Πιθανά ορίσματα (possible arguments) Πληροφορίες ελέγχου (control info) condition: δείχνει το πότε το μήνυμα στέλνεται, π.χ. [outofstock] iteration marker: δείχνει ότι το μήνυμα στέλνεται πολλές φορές σε πολλαπλά αντικείμενα, π.χ. *[for all order lines] // for UML 1. Τα μηνύματα επιστροφής (Return messages) συμβολίζονται με διάστικτα βέλη (<- -) Μπορούμε να τα παραλείψουμε και να δείξουμε μόνο τα κρίσιμα. 18
19 Ενέργεια κλήσης Καλεί σε ενέργεια μια λειτουργία ενός αντικειμένου Η επικοινωνία είναι σύγχρονη (synchronous) Απεικονίζεται με ένα βέλος από το καλών αντικείμενο προς το αντικείμενο λήψης : Class Object: Class action name action name lifeline ενέργεια κλήσης Κλήση αντικειμένου προς τον εαυτό του Ενέργεια επιστροφής Η επιστροφή τιμής στον αποστολέα σαν απάντηση σε ενέργεια κλήσης. Απεικονίζεται με ένα βέλος διακεκομμένων γραμμών από το αντικείμενο που επιστρέφει την τιμή προς το αντικείμενο που την λαμβάνει. : Class Object: Class return value 19
20 Παράδειγμα κλήσης επιστροφής : Customer : ΑΤΜ assignpin() OK pin Ενέργεια δημιουργίας Καλεί μία κλάση να δημιουργήσει μία εκδοχή της (instance), δηλ. ένα αντικείμενο της. Απεικονίζεται με ένα βέλος και το στερεότυπο <<create>> από το αντικείμενο που καλεί την ενέργεια προς το δημιουργούμενο αντικείμενο. Object: Class : Class Object: Class <<create>> ή <<create>> : Class 20
21 Ενέργεια δημιουργίας :A :B :A <<create>> <<create>> :B Constructor Ενέργεια διαγραφής Καλεί ένα αντικείμενο να διαγραφεί. Η διαγραφή αφορά, είτε άλλο αντικείμενο, είτε τον εαυτό του. Απεικονίζεται με ένα βέλος και το στερεότυπο <<destroy>> από το αντικείμενο που καλεί την ενέργεια προς το διαγραφόμενο αντικείμενο. Object: Class : Class <<destroy>> X 21
22 Ενέργεια αποστολής Η αποστολή σήματος (signal) προς ένα αντικείμενο. Η επικοινωνία είναι ασύγχρονη (asynchronous). Π.χ. οι εξαιρέσεις (exceptions) Απεικονίζονται με ένα βέλος με μισή αιχμή στο αντικείμενο λήπτη του σήματος. : Class Object: Class action name Παραδείγματα μηνυμάτων Person * employment 0..1 Company Διάγραμμα κλάσεων +assign(task:string) Αντικείμενο τύπου Person μήνυμα assign(task) p:person c:company Message instance John:Person assign( Prepare slides ) C1:Company 22
23 Παραδείγματα μηνυμάτων Ποια είναι τα δυνατά μηνύματα θεωρώντας το διάγραμμα κλάσεων? Α +a1() +a2() Β +b1() +b2() a1() a2() b1() b2() a1() a2() b1() b2() Αλληλεπίδραση των αντικειμένων του μοντέλου Πώς υπολογίζεται η τιμή της παραγγελίας? 23
24 Διάγραμμα ακολουθίας Υπολογισμός της τιμής μιας γραμμής παραγγελίας Παράμετρος Μήνυμα επιστροφής Δείχνουμε μόνο τα κρίσιμα, που βοηθούν την κατανόηση Παράδειγμα διαγράμματος ακολουθίας διαφορετικής υλοποίησης Υπολογισμός της τιμής μιας γραμμής παραγγελίας Self-call 24
25 Συγκρίνοντας τα δύο διαγράμματα distributed control -Η επεξεργασία πραγματοποιείται από ένα σύνολο αντικειμένων -είναι πιο κοντά στο αντικειμενοστρεφές στυλ προγραμματισμού centralized control -πιο απλός -όλη η επεξεργασία γίνεται σε ένα σημείο Συγκρίνοντας τα δύο διαγράμματα Customer Εδώ μόνο τα αντικείμενα που είναι συσχετισμένα επικοινωνούν Order Order line Product Εδώ μια Order επικοινωνεί με ένα Product (παρόλο που αυτά τα αντικείμενα δεν σχετίζονται στο διάγραμμα κλάσεων) 25
26 Δημιουργία και Διαγραφή Συμμετεχόντων Αν το αντικείμενο δημιουργείται ή καταστρέφεται στη χρονική περίοδο που αναπαριστά το διάγραμμα, τότε η γραμμή ζωής του ξεκινά ή σταματά στο κατάλληλο σημείο Αν το αντικείμενο δημιουργείται κατά τη διάρκεια του διαγράμματος, τότε το βέλος που απεικονίζει το ερέθισμα που δημιουργεί το αντικείμενο, σχεδιάζεται με την κεφαλή του πάνω στο σύμβολο του αντικειμένου Αν το αντικείμενο καταστρέφεται κατά τη διάρκεια του διαγράμματος, τότε η καταστροφή σημειώνεται με ένα μεγάλο Χ, είτε στην απεικόνιση του βέλους στο ερέθισμα που προκαλεί την καταστροφή είτε (στην περίπτωση αυτοκαταστροφής) στο τελικό βέλος επιστροφής από το κατεστραμμένο αντικείμενο Δημιουργία και Διαγραφή Συμμετεχόντων Συνήθως δεν σβήνουμε αντικείμενα αμέσως, καλό είναι να χρησιμοποιούμε ένα X για να γνωρίζουμε πότε ένα αντικείμενο δεν είναι πλέον διαθέσιμο και μπορεί να σβηστεί. Το Χ τερματίζει τη γραμμή ζωής 26
27 Διαγράμματα ακολουθίας Γενικά, τα διαγράμματα ακολουθίας δεν είναι κατάλληλα στο να δείχνουν λεπτομέρειες (αλγόριθμους με βρόχους loops και συμπεριφορές υπό συνθήκη) ΑΛΛΑ δείχνουν πολύ ξεκάθαρα τις κλήσεις μεταξύ των συμμετεχόντων και ποιοι συμμετέχοντες κάνουν ποια επεξεργασία Παρόλ αυτά, η UML προσφέρει τα πλαίσια αλληλεπίδρασης (interaction frames) για τη μοντελοποίηση βρόχων και συνθηκών σε διαγράμματα ακολουθίας Βρόχοι (loops) Σε αυτό το διάγραμμα δεν φαίνεται πουθενά ότι οι εικονιζόμενες κλήσεις πρέπει να γίνουν για κάθε παραγγελιογραμμή (OrderLine) μιας Παραγγελίας (Order) 27
28 Μοντελοποιώντας τη δομή ελέγχου (βρόχοι, συνθήκες) procedure dispatch foreach (lineitem) if (product.value > $10K) careful.dispatch else regular.dispatch endif endfor if (needsconfirmation) messenger.confirm End Δεν είναι αυτή η έμφαση των Διαγραμμάτων Ακολουθίας Θα μπορούσαμε να χρησιμοποιήσουμε Activity Diagrams ή ψευδοκώδικα για αυτόν το σκοπό. Μοντελοποιώντας τη δομή ελέγχου (βρόχοι, συνθήκες) 28
29 Μοντελοποιώντας τη δομή ελέγχου (βρόχοι, συνθήκες) Μοντελοποιώντας τη δομή ελέγχου (βρόχοι, συνθήκες) 29
30 Μοντελοποιώντας τη δομή ελέγχου (βρόχοι, συνθήκες) Τελεστές ελέγχου διαγραμμάτων ακολουθίας Τελεστής alt: Το σώμα ενός υποθετικού τελεστή χωρίζεται σε περιοχές με τη χρήση διακεκομμένων γραμμών. Κάθε περιοχή αναπαριστά ένα εναλλακτικό τμήμα μιας συνθήκης και περιέχει μια συνθήκη. Αν η συνθήκη μιας περιοχής ικανοποιείται, τότε αυτή η περιοχή εκτελείται. Αν καμία συνθήκη δεν ικανοποιείται, τότε δεν εκτελείται καμία περιοχή. Στον υποθετικό τελεστή υπάρχει η δυνατότητα μια περιοχή να έχει τη συνθήκη (else) η οποία εκτελείται όταν καμία άλλη συνθήκη δεν ικανοποιείται. Τελεστής opt: τα μηνύματα που εμπεριέχονται σε ένα προαιρετικό τελεστή εκτελούνται μόνο αν ικανοποιείται η λογική (boolean) συνθήκη που βρίσκεται μέσα σε αγκύλες [ ] (ισοδύναμο με το alt με ένα τμήμα) 30
31 Τελεστές ελέγχου διαγραμμάτων ακολουθίας Τελεστής par: παράλληλη συμπεριφορά/εκτέλεση, το σώμα ενός τελεστή παράλληλης εκτέλεσης χωρίζεται σε περιοχές με τη χρήση διακεκομμένων γραμμών. Κάθε περιοχή εκτελείται παράλληλα (ταυτόχρονα) με τις υπόλοιπες περιοχές. Η εκτέλεση των μηνυμάτων σε κάθε περιοχή πραγματοποιείται σειριακά. Ο τελεστής παράλληλης εκτέλεσης δεν πρέπει να χρησιμοποιείται όταν οι διαφορετικές περιοχές αλληλεπιδρούν Τελεστής loop: στην επαναληπτική εκτέλεση υπάρχει μια συνθήκη η οποία καθορίζει πόσες φορές θα εκτελεστεί επαναληπτικά το σώμα αυτού του τελεστή. Όσο η συνθήκη είναι αληθής, εκτελείται επαναληπτικά το σώμα του τελεστή και όταν αυτή η συνθήκη είναι ψευδής, συνεχίζεται η εκτέλεση έξω από το σώμα του τελεστή. Τελεστές ελέγχου διαγραμμάτων ακολουθίας Τελεστής break: Το σώμα ενός τελεστή διακοπής περιέχει μια συνθήκη. An αυτή η συνθήκη ικανοποιείται, εκτελούνται οι ενέργειες που περιέχονται στο σώμα του τελεστή διακοπής και διακόπτεται η διαδικασία. Aν η συνθήκη δεν ικανοποιείται συνεχίζεται η διαδικασία μετά τον τελεστή διακοπής. Τελεστής neg: άρνηση. Το τμήμα δείχνει μη έγκυρη αλληλεπίδραση Τελεστής ref: αναφορά. Το τμήμα αναφέρεται σε αλληλεπίδραση που ορίζεται σε άλλο διάγραμμα Τελεστής sd: διάγραμμα ακολουθίας για να περικλείσει ολόκληρο το διάγραμμα ακολουθίας Τελεστής region: κρίσιμο τμήμα. Το πλαίσιο μπορεί να έχει μόνο ένα νήμα εκτέλεσης κάθε φορά 31
32 Hotel reservation Hotel reservation Το αντικείμενο που ενεργοποιεί την ακολουθία μηνυμάτων είναι Reservation window Στέλνει μήνυμα makereservation() στο HotelChain Το HotelChain στέλνει μήνυμα makereservation() στο Hotel Αν το Hotel έχει διαθέσιμα δωμάτια, τότε κάνει Reservation και Confirmation. Κάθε κάθετη γραμμή είναι η γραμμή ζωής που αναπαριστά το χρόνο που ένα αντικείμενο υπάρχει. Κάθε βέλος είναι κλήση μηνύματος. Ένα μήνυμα πάει από τον sender στην κορυφή του activation bar του μηνύματος στη γραμμή ζωής του receiver. Το activation bar αναπαριστά τη διάρκεια εκτέλεσης του μηνύματος Το Hotel issues a self call για να καθορίσει αν υπάρχει δωμάτιο διαθέσιμο. Αν ναι, το Hotel δημιουργεί Reservation και Confirmation. Ο αστερίσκος σημαίνει iteration (διαθέσιμο δωμάτιο για κάθε μέρα της παραμονής). Έκφραση σε [ ] συνθήκη. Το διάγραμμα έχει και μία επεξηγηματική σημείωση 32
33 Παράδειγμα: Ανάληψη μετρητών από ΑΤΜ Χρήση τελεστή sd 33
34 Χρήση τελεστών sd, loop Χρήση τελεστών sd, loop, opt 34
35 Χρήση τελεστών sd, loop, opt, par Έστω ότι έχουμε ήδη ορίσει τα παρακάτω 2 διαγράμματα 35
36 Με τη χρήση του τελεστή ref, μπορούμε να τα επαναχρησιμοποιήσουμε Κανόνες χρήσης Τα διαγράμματα ακολουθίας χρησιμοποιούνται για την εξέταση της συμπεριφοράς πολλών αντικειμένων στο πλαίσιο μίας περίπτωσης χρήσης είναι κατάλληλα για την απεικόνιση της συνεργασίας μεταξύ των αντικειμένων δεν είναι κατάλληλα για τον ακριβή ορισμό της συμπεριφοράς του κάθε αντικειμένου Για τον ορισμό της συμπεριφοράς ενός και μόνο αντικειμένου, χρησιμοποιείστε διαγράμματα καταστάσεων Για τον ορισμό της συμπεριφοράς πολλών αντικειμένων σε πολλές περιπτώσεις χρήσης, χρησιμοποιείστε διαγράμματα δραστηριοτήτων 36
37 Διάγραμμα Επικοινωνίας - Communication Diagram (UML 2.0) ~ Collaboration Diagrams (UML v1.3) Είναι μια εναλλακτική αποτύπωση του διαγράμματος ακολουθίας. Αντί να διαρθρώσουμε τα μηνύματα κατά τον άξονα του χρόνου, τα τοποθετούμε πάνω σε ένα διάγραμμα αντικειμένων. Δείχνει την αλληλεπίδραση ανάμεσα στις κλάσεις για μια περίπτωση χρήσης, χωρίς να είναι διαρθρωμένο κατά τον άξονα του χρόνου. Χρήση: Αποτυπώνει τη συμπεριφορά των κλάσεων κατά την 'εκτέλεση' της περίπτωσης χρήσης. Φάσεις: ανάλυση, σχεδίαση Διάγραμμα Επικοινωνίας Μία επικοινωνία ορίζει ένα σύνολο συμμετεχόντων και σχέσεων που έχουν νόημα για το συγκεκριμένο σύνολο στόχων. Ο προσδιορισμός των συμμετεχόντων και των σχέσεων τους δεν έχει καθολική έννοια. Οι συμμετέχοντας ορίζουν τους ρόλους που παίζουν τα αντικείμενα όταν αλληλεπιδρούν μεταξύ τους. Συνεπώς, μία συνεργασία καθορίζει ένα σύνολο ρόλων classifier και ρόλων συσχετίσεων. Τα αντικείμενα που ικανοποιούν (ή συνδέονται) με τους ρόλους classifier παίζουν τους ρόλους που αυτοί καθορίζουν, ενώ οι σύνδεσμοι ανάμεσα στα αντικείμενα θα πρέπει να ικανοποιούν τους ρόλους συσχέτισης της συνεργασίας. Ένα ρόλος classifier (ρόλος συσχέτισης) ορίζει μία χρήση του αντικειμένου (συνδέσμου), ενώ μία κλάση (συσχέτιση) καθορίζει όλες τις ιδιότητες του αντικειμένου (συνδέσμου). 37
38 Διάγραμμα Επικοινωνίας Στο πλαίσιο μίας συνεργασίας ορίζεται μία αλληλεπίδραση. Καθορίζει τα patterns επικοινωνίας ανάμεσα στους ρόλους. Πιο συγκεκριμένα, περιέχει ένα σύνολο μερικά ταξινομημένων μηνυμάτων, κάθε ένα από τα οποία καθορίζει μία επικοινωνία, π.χ. ποιο σήμα θα σταλεί ή ποια πράξη θα ενεργοποιηθεί, καθώς και τους ρόλους που θα πρέπει να παίξουν ο αποστολέας και ο παραλήπτης, αντίστοιχα. Επομένως το διάγραμμα επικοινωνίας δείχνει τις μεθόδους που θα υλοποιεί κάθε κλάση και ποια άλλη κλάση θα τις καλεί. Διάγραμμα Επικοινωνίας Τα διαγράμματα επικοινωνίας δίνουν έμφαση στους συνδέσμους ανταλλαγής δεδομένων μεταξύ των διαφόρων συμμετεχόντων σε μια αλληλεπίδραση Τα αντικείμενα μπορούν να εμφανίζονται σε οποιοδήποτε σημείο του διαγράμματος και τοποθετούνται ελεύθερα στο διάγραμμα, σε αντίθεση με τα διαγράμματα ακολουθίας Όπως και στα διαγράμματα ακολουθίας, χρησιμοποιείται αρίθμηση για την απεικόνιση της ακολουθίας των μηνυμάτων 38
39 Διάγραμμα Επικοινωνίας Διάγραμμα Επικοινωνίας 1 : ins ertc ard (c us tom er) 2 : pic k D ate (date ) 4 : s e le c t (s e a ts) : K io s k : ac tor 3 : o ffe r (s e a tc h o ic e ) 9 : p rin t (o rd e r) 8 : O K 5 : s ubm it (order) 6 : c harge (c us tom er, am ount) : S erver : C redits ervic e 7 : c o n firm a tio n 39
40 Διάγραμμα Επικοινωνίας 1: Εισαγωγή Fred : Φοιτητής 9: επιβεβαίωση διαθεσιμότητας Fred : Student 2: παρουσίαση προγράμματος 3: πρόγραμμα παρουσιάστηκε : Πρόγραμμα Μαθημάτων 10: πρόσθεσε Μάθημα 4: αίτηση θέσης 11: εκτύπωση μηνύματος επιβεβαίωσης ΑντίγραφοFred : Αντίγραφο 8: ΟΚ OBJ101 : Τάξη 6: ΟΚ 7: έλεγξε προαπαιτούμενα 5: έλεγξε πλάνο σπουδών ΠλάνοFred : Πλάνο Σπουδών Διάγραμμα Επικοινωνίας 40
41 Σύμβολα Διαγράμματος Επικοινωνίας 1. Αντικείμενο 2. Απλό μήνυμα 3. Απλή επιστροφή 4. Αναφορά στον εαυτό 5. Αριθμός ακολουθίας 6. Ανώνυμο αντικείμενο 7. Σχόλιο για επανάληψη 81 Μετασχηματισμός σε Διάγραμμα Κλάσης Κάθε μήνυμα γίνεται μέθοδος και τοποθετείται στην κλάση από όπου εκπορεύεται
42 Κανόνες χρήσης Τα διαγράμματα ακολουθίας είναι καλύτερα όταν θέλουμε να δώσουμε έμφαση στην ακολουθία των κλήσεων Τα διαγράμματα επικοινωνίας είναι καλύτερα όταν θέλουμε να δώσουμε έμφαση στους συνδέσμους ανταλλαγής δεδομένων Οπτική Γωνία κάθε Διαγράμματος Το διάγραμμα επικοινωνίας επικεντρώνεται σε σχέσεις στο χώρο, ενώ το διάγραμμα ακολουθίας σε σχέσεις στο χρόνο. Εργαλεία CASE μπορούν να μετακινούνται από το ένα προς το άλλο διάγραμμα. Το διάγραμμα επικοινωνίας δείχνει τις μεθόδους που θα υλοποιεί κάθε κλάση και ποια άλλη κλάση θα τις καλεί
43 Διαγράμματα αλληλεπίδρασης Αρίθμηση για την απεικόνιση της ακολουθίας των μηνυμάτων που ανταλλάσσονται μεταξύ των αντικειμένων - αριθμοί ακολουθίας. Πλεονέκτημα: καλύτερη χρήση του σχεδιαστικού χώρου (more compact) Μειονέκτημα: πιο δύσκολο να δει κάποιος την ακολουθία σε σύγκριση με τα διαγράμματα ακολουθιών Sequence vs Collaboration Diagrams: Παράδειγμα Μοιάζει με διάγραμμα αντικειμένων που δείχνει συσχετίσεις περάσματος μηνυμάτων αντί για συσχετίσεις 43
44 Τρόποι Αρίθμησης / Numbering Methods Τρόποι αρίθμησης 1, 2, 3, 1, 1.1, 1.1.1, 1.1.2, 2.1 (Decimal numbering (used by UML)) Τα διαγράμματα επικοινωνίας δεν έχουν συγκεκριμένο notation για λογική ελέγχου με βρόχους και συνθήκες Μπορεί κάποιος να χρησιμοποιήσει markers και φρουρούς (guards) Τρόποι αρίθμησης Γιατί και όχι 1.6??? Procedural (or nested) sequence 1, 2, 2.1, 2.2 Flat sequence 1, 2, 3, 4 ( τα 2.1 και 2.2 εκτελούνται ενώ το αντικείμενο του 2 είναι ακόμη ενεργό 44
45 Sequence Diagrams vs Communication Diagrams Μερικοί (προγραμματιστές/αναλυτές) προτιμούν τα μεν άλλοι τα δε. Βρείτε τις αλληλεπιδράσεις που λείπουν ELM-01, ELM-02, ELM-03, ELM-04, ELM-05, ELM-06 45
46 Πότε να χρησιμοποιούμε τι? Διαγράμματα αλληλεπίδρασης? Για να δείξουμε τη συμπεριφορά κάποιων αντικειμένων σε μία Περίπτωση Χρήσης Tip: Εστιάστε στην απλότητα! Αν ο έλεγχος είναι πολύπλοκος, χωρίστε το σε διάφορα διαγράμματα αλληλεπίδρασης Πότε ΔΕΝ χρησιμοποιούμε διαγράμματα αλληλεπίδρασης? Αν θέλουμε να μελετήσουμε τη συμπεριφορά ενός μόνο αντικειμένου σε διάφορες περιπτώσεις χρήσης! Τότε χρησιμοποιούμε διάγραμμα καταστάσεων! Αν θέλουμε να μελετήσουμε τη συμπεριφορά πολλών περιπτώσεων χρήσης, τότε χρησιμοποιούμε διάγραμμα δραστηριοτήτων! Συνοψίζοντας Διαγράμματα ακολουθίας (και διαγράμματα επικοινωνίας): αναπαριστούν τις κλάσεις που συμμετέχουν σε μία περίπτωση χρήσης και τα μηνύματα που ανταλλάσονται μεταξύ τους 46
47 Πηγές / Acknowledgements Booch G., Rumbaugh J., Jacobson I. Unified Modeling Language User Guide. Addison-Wesley Professional 2 Edition, ISBN Pascal Roques, UML in Practice, John Wiley, 2004 UML Fundamentals & OOAD UML 2.0, Αφροδίτη Τσαλγατίδου. Εισαγωγή στη UML, Καποδιστριακό Πανεπιστήμιο Αθηνών Ιωάννης Γαβιώτης. Πληροφοριακά Συστήματα Μοντελοποίηση με UML, Πανεπιστήμιο Αιγαίου Γιάννης Τζίτζικας. Μοντελοποίηση Λειτουργιών, Πανεπιστήμιο Κρήτης Martin Fowler, UML Distilled: a Brief Guide to the Standard Object Modeling Language, 3 rd Edition, Pearson Education Inc., 2004 A. Dennis, B. Haley Wixom, D. Tegarden, Systems Analysis and Design with UML Version 2.0, 2 nd edition, Wiley,
Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 28/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων 28/11/2016 Τεχνολογία Λογισμικού & Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Ανάλυση Συστημάτων Interaction Diagrams Διαγράμματα Αλληλεπίδρασης
Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 21/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων 21/11/2016 Τεχνολογία Λογισμικού & Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Ανάλυση Συστημάτων Object Diagrams Διαγράμματα Αντικειμένων
Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων
Διαγράμματα UML στην Ανάλυση Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων περιεχόμενα παρουσίασης Διαγράμματα επικοινωνίας Διαγράμματα ακολουθίας Διαγράμματα
Διαγράμματα Αλληλεπίδρασης. Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας
Διαγράμματα Αλληλεπίδρασης Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας 1 Διαγράμματα αλληλεπίδρασης Απεικονίζουν την αλληλεπίδραση των αντικειμένων μέσω μηνυμάτων Η ανάθεση αρμοδιοτήτων περιλαμβάνει
Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 14/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Class Diagrams Διαγράμματα Κλάσεων Άξονες
Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 6 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάννα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ: Στουγιάννου
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Αλληλεπίδρασης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Αλληλεπίδρασης Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
ιαγράµµατα Αλληλεπίδρασης ιαγράµµατα Ακολουθίας ιαγράµµατα Επικοινωνίας
ιαγράµµατα Αλληλεπίδρασης ιαγράµµατα Ακολουθίας ιαγράµµατα Επικοινωνίας 1 ιαγράµµατα αλληλεπίδρασης Απεικονίζουν την αλληλεπίδραση των αντικειµένων µέσω µηνυµάτων Η ανάθεση αρµοδιοτήτων περιλαµβάνει µεγάλο
Τεχνολογία Λογισμικού
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 3/12/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Physical Diagrams Διαγράμματα Υλοποίησης Διαγράμματα UML Διάγραμμα
Τεχνολογία Λογισμικού
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 26/11/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr State Diagrams Διαγράμματα Καταστάσεων Διαγράμματα UML Διάγραμμα
09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο
09 Η γλώσσα UML I Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Εαρινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Unified Modeling Language
Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Τεχνολογία Λογισμικού Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Φροντιστήριο 5. Ημερομηνία: 01/12/2006 Θεματική Ενότητα: Μοντελοποίηση Συμπεριφοράς Θέμα: Διαγράμματα αλληλεπίδρασης και καταστάσεων
Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Φθινόπωρο 2006 ΗΥ351: Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Φροντιστήριο 5 Ημερομηνία: 01/12/2006 Θεματική
ιαγράµµατα Συµπεριφοράς Ανάλυση Συστηµάτων 2009
ιαγράµµατα Συµπεριφοράς Ανάλυση Συστηµάτων 2009 ιαγράµµατα Συµπεριφοράς ιαγράµµατα Ακολουθίας ιαγράµµατα Μηχανής Καταστάσεων ιαγράµµατα Επικοινωνίας ιαγράµµατα ραστηριοτήτων ιαγράµµατα Ακολουθίας (Sequence
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Συνεργασίας. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Συνεργασίας Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Τα διαγράµµατα ακολουθίας
1 Ελληνικό Ανοικτό Πανεπιστήµιο Τα διαγράµµατα ακολουθίας ρ. Πάνος Φιτσιλής 2 Περιεχόµενα Βασικά στοιχεία των διαγραµµάτων ακολουθίας Τα είδη των µηνυµάτων Παραδείγµατα ιαγράµµατα αλληλεπίδρασης (interaction
UML: Unified modelling language
UML: Διαγράμματα UML: Unified modelling language Γλώσσα μοντελοποίησης για ανάλυση και σχεδιασμό Παρέχει το συμβολισμό για ανάλυση και σχεδιασμό. Είναι γλώσσα συμβολισμού. Δεν είναι ολόκληρη μεθοδολογία.
. Μεθοδολογία Προγραμματισμού. UML Διαγράμματα. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014
.. Μεθοδολογία Προγραμματισμού UML Διαγράμματα Νικόλαος Πεταλίδης Τμήμα Μηχανικών Η/Υ ΤΕΙ Κεντρικής Μακεδονίας Εισαγωγή Εαρινό Εξάμηνο 2014 Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού
Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 8 ο & 9 ο Εργαστήριο -
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 8 ο & 9 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάνα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ:
09 Η γλώσσα UML II. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο
09 Η γλώσσα UML II Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Μοντελοποίηση συμπεριφοράς
Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 24/10/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Use Case Models & Diagrams Μοντέλα και
Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές
Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές Ελληνικό Ανοικτό Πανεπιστήμιο ΓΤΠ61 Πληροφορική Πολυμέσα Αγγελική Μαζαράκη Τι είναι η UML Είναι μια γραφική γλώσσα μοντελοποίησης συστημάτων.
Εισαγωγή στη γλώσσα UML
Κεφάλαιο 1 o Εισαγωγή στη γλώσσα UML 1.1 Προσθέτοντας μια νέα μέθοδο Στις πρώτες εποχές των υπολογιστών, οι προγραμματιστές συνήθιζαν να περιορίζονται στην ανάλυση σε βάθος των προβλημάτων που αντιμετώπιζαν.
Περιεχόμενα και Διάρθρωση. Interaction Diagrams
Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών ΗΥ351: Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Interaction Diagrams Περιεχόμενα και Διάρθρωση Εισαγωγή Διαγράμματα
Τεχνολογία Λογισμικού
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 20/11/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr State Diagrams Διαγράμματα Καταστάσεων 1 Διαγράμματα UML Διάγραμμα
Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 7 ο Εργαστήριο -
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 7 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάνα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ: Στουγιάννου
Διαχείριση Πληροφοριακών Συστημάτων
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Διαχείριση Πληροφοριακών Συστημάτων Ενότητα #7: UML Χρήστος Δρόσος Τμήμα Μηχανικών Αυτοματισμού Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
περιεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης
Περιπτώσεις Χρήσης περιεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης περιπτώσεις χρήσης Τι θα κάνει το λογισμικό για κάποιον
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για
3 Αλληλεπίδραση Αντικειμένων
Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 5/12/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων 5/12/2016 Τεχνολογία Λογισμικού & Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Ανάλυση Συστημάτων State Diagrams Διαγράμματα Καταστάσεων
Περιεχόμενο του μαθήματος
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Απαιτήσεις Λογισμικού Περιπτώσεις χρήσης Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Περιεχόμενο του μαθήματος
4η ιάλεξη. UML ιαγράμματα αλληλεπίδρασης
4η ιάλεξη UML ιαγράμματα αλληλεπίδρασης ιαγράμματα αλληλεπίδρασης Τα διαγράμματα αλληλεπίδρασης είναι μοντέλα που περιγράφουν κάποιες ομάδες αντικειμένων Μπορούν να χρησιμοποιηθούν για να δείξουν ένα σχέδιο
Τεχνολογία Λογισμικού
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 14/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Μοντέλα Παράστασης
Διαγράμματα Κλάσεων στη Σχεδίαση
Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν
Μέθοδοι μοντελοποίησης
Μέθοδοι μοντελοποίησης Ευθύμιος Ταμπούρης tambouris@uom.gr Περιεχόμενα Ο ρόλος των μοντέλων Διαγράμματα Δραστηριοτήτων Διαγράμματα Περιπτώσεων Χρήσης Διαγράμματα Κλάσεων Διαγράμματα Ακολουθίας Διαγράμματα
Τεχνολογία Λογισμικού
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 13/11/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Activity Diagrams Διαγράμματα Δραστηριοτήτων Διαγράμματα UML
Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 21/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων 21/11/2016 Τεχνολογία Λογισμικού & Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Ανάλυση Συστημάτων Activity Diagrams Διαγράμματα Δραστηριοτήτων
UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα
ΕΙΣΑΓΩΓΗ ΣΤΗ UML UML Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις ιαγράµµατα Παραδείγματα Ορισμός του μοντέλου Αποτελεί µια αφηρηµένη περιγραφή ενός Φυσικού συστήµατος. Αποτελεί ένα σχέδιο για την
Περιεχόμενο του μαθήματος
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Η Αντικειμενοστρεφής Τεχνολογία Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 202-203 Περιεχόμενο του μαθήματος Η έννοια
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 17/10/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Use Case Models & Diagrams Μοντέλα και
Ανάλυση Περιπτώσεων Χρήσης
Ανάλυση Περιπτώσεων Χρήσης ανάλυση απαιτήσεων ü Διαγράμματα Δραστηριότητας. Επιχειρησιακή μοντελοποίηση και ροή εργασιών σε περιπτώσεις χρήσης ü Μοντελοποίηση Πεδίου. Δημιουργία διαγραμμάτων κλάσεων για
Τεχνολογία Λογισμικού
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 9/10/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων UML - Unified
Προβλήματα, αλγόριθμοι, ψευδοκώδικας
Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι
Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 10/10/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων
2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008
Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής
Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)
Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 7: Εισαγωγή στη UML Τι είναι η UML; 2 Βασικό πρόβλημα τεχνολογίας λογισμικού Έλλειψη κοινά αποδεκτής «γλώσσας» για την έκφραση των σχεδίων λογισμικού. Το
08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο
08 Η γλώσσα UML I Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Unified Modeling Language
Τεχνολογία Λογισμικού
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 16/10/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Use Case Models & Diagrams Μοντέλα και Διαγράμματα Περιπτώσεων
Τεχνολογία Λογισμικού
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 15/10/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Use Case Models & Diagrams Μοντέλα και Διαγράμματα Περιπτώσεων
2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης
Εννοιολογικό Μοντέλο. Conceptual Model
Εννοιολογικό Μοντέλο Conceptual Model 1 Εννοιολογικό Μοντέλο (1/2) Αποτελεί: βασικό εργαλείο για τη σχεδίαση εισαγωγή σε διάφορα μέσα τεκμηρίωσης (artifacts) απεικόνιση σημαντικών εννοιολογικών κλάσεων
Τεχνολογία Λογισμικού
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 23/10/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Use Case Models & Diagrams Μοντέλα και Διαγράμματα Περιπτώσεων
Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο -
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάννα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ: Στουγιάννου
Εφαρμογή Μεθοδολογίας ICONIX
Πρόγραμμα Μεταπτυχιακών Σπουδών στην Εφαρμοσμένη Πληροφορική Προηγμένη Τεχνολογία Λογισμικού, 2016 Α. Χατζηγεωργίου Εφαρμογή Μεθοδολογίας ICONIX Παράδειγμα: Εγγραφή Φοιτητή σε Μάθημα Θέμα Θεωρείστε ότι
Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python
Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Β Μέρος Δομή Ελέγχου if-elif-else Επαναληπτική Δομή Ελέγχου while Επαναληπτική Δομή Ελέγχου for Αλληλεπίδραση χρήστη-προγράμματος Συναρτήσεις Η δομή
ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων
ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ Οι Μηχανικοί Λογισμικού παράγουν μοντέλα που βοηθούν στη διατύπωση των απαιτήσεων με τη μορφή προδιαγραφών. Η εργασία της παραγωγής μοντέλων περιγράφεται ως ανάλυση απαιτήσεων. Η ανάλυση
Περιεχόμενα. ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στη UML... 19
Περιεχόμενα ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στη UML... 19 1.1 Εισαγωγή... 19 1.2 Η γλώσσα UML... 20 1.2.1 Μεθοδολογίες ανάπτυξης λογισμικού... 21 1.2.2 Τύποι διαγραμμάτων της UML... 22 1.3 Διαγράμματα της UML... 24
FORTRAN και Αντικειμενοστραφής Προγραμματισμός
FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών
Η κατασκευή αντικειμένων της κλάσης Student μπορεί να πραγματοποιηθεί είτε στη main είτε σε οποιαδήποτε μέθοδο κλάσης:
Αντικειμενοστρεφής Προγραμματισμός Τμήμα Εφαρμοσμένης Πληροφορικής Δημιουργία Κλάσεων/Αντικειμένων/Συσχετίσεων/Συνδέσεων Δημιουργία κλάσεων και αντικειμένων Θεωρούμε ένα υποθετικό σύστημα που αναφέρεται
ΟΔΗΓΙΕΣ ΓΙΑ ΧΡΗΣΗ ΤΟΥ ΕΡΓΑΛΕΙΟΥ RATIONAL ROSE
ΟΔΗΓΙΕΣ ΓΙΑ ΧΡΗΣΗ ΤΟΥ ΕΡΓΑΛΕΙΟΥ RATIONAL ROSE Το path που ακολουθούμε για να ανοίξουμε το εργαλείο είναι: Start All Programs Lab Programs Rational Software Rational Rose Enterprise Edition 1 ο ΔΙΑΓΡΑΜΜΑ:
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2
Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή
Διαγράμματα περιπτώσεων χρήσης
Διαγράμματα περιπτώσεων χρήσης Use case diagrams Περιγράφουν τη συμπεριφορά ενός συστήματος από την οπτική γωνία ενός χρήστη. Το μοντέλο περιπτώσεων χρήσης περιλαμβάνει : Τις ίδιες τις περιπτώσεις χρήσης
Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 18/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων
Διάγραμμα Κλάσεων. Class Diagram
Διάγραμμα Κλάσεων Class Diagram Γενικά Ορίζει τις κλάσεις αντικειμένων σε ένα σύστημα, τις μεθόδους και τις συναρτήσεις τους, και τις συσχετίσεις μεταξύ των κλάσεων. Περιγράφουν την δομή και συμπεριφορά
Πληροφοριακά Συστήματα Διοίκησης Ενότητα 7: Διαγράμματα Καταστάσεων
Πληροφοριακά Συστήματα Διοίκησης Ενότητα 7: Διαγράμματα Καταστάσεων Γρηγόριος Μπεληγιάννης Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων και Τροφίμων Σκοποί
Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός
Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει
Ανάλυση Πληροφοριακών Συστημάτων. «Βασικές Έννοιες Αντικειμενοστρεφούς Προγραμματισμού Διαγράμματα κλάσεων» Βασίλειος Καρακόιδας
Ανάλυση Πληροφοριακών Συστημάτων «Βασικές Έννοιες Αντικειμενοστρεφούς Προγραμματισμού Διαγράμματα κλάσεων» Βασίλειος Καρακόιδας 7 12 2005 Περιεχόμενα Παρουσίασης Βασικές Έννοιες Αντικειμενοστραφούς προγραμματισμού
Σημειογραφία των προτύπων BPMN και UML (Activity Diagrams)
ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Α.Ε. «Ελληνικό Πλαίσιο Παροχής Υπηρεσιών» Πρόσθετο Υλικό (White Paper) Σημειογραφία των προτύπων BPMN και UML (Activity Φεβρουάριος 2008 PLANET ΑΝΩΝΥΜΗ ΕΤΑΙΡΕΙΑ ΠΑΡΟΧΗΣ ΣΥΜΒΟΥΛΕΥΤΙΚΩΝ
Use Cases: μια σύντομη εισαγωγή. Heavily based on UML & the UP by Arlow and Neustadt, Addison Wesley, 2002
Use Cases: μια σύντομη εισαγωγή Heavily based on UML & the UP by Arlow and Neustadt, Addison Wesley, 2002 (γενικές εισαγωγικές ιδέες) ΣΥΛΛΟΓΗ ΑΠΑΙΤΗΣΕΩΝ 2 Ανάλυση απαιτήσεων Λειτουργικές απαιτήσεις: τι
Πληροφορική 2. Αλγόριθμοι
Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται
Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 31/10/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Class Diagrams Διαγράμματα Κλάσεων Διαγράμματα
ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python
ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής
περιεχόμενα παρουσίασης
Ανάλυση Απαιτήσεων περιεχόμενα παρουσίασης Δημιουργία μοντέλου Προσεγγίσεις Μοντελοποίησης Μοντελοποίηση δεδομένων Διαγράμματα ροής δεδομένων Μη διαγραμματικά μοντέλα ανάλυσης Διαγράμματα δραστηριότητας
ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου Σκοπός και περίγραμμα της Ενότητας 4 Σκοπός της παρουσίασης Να μελετήσουμε τις συναρτήσεις που ελέγχουν την ροή και την εκτέλεση ενός προγράμματος Σύνοψη
... Unified Modeling Language (UML) UML UML. Μοντελοποίηση? Μοντελοποίηση. Πλεονεκτήµατα ενός µοντέλου. Μεγάλα Έργα Λογισµικού = επικοινωνία
UML Unified Modeling Language... (UML) Three Amigos Grady Booch James Rumbaugh Ivar Jacobson Μεγάλα Έργα Λογισµικού = επικοινωνία Πολλαπλέςµονάδες, πολλαπλέςγενιές, πολλοί προγραµµατιστές, πολλοί πελάτες-χρήστες
Αντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java
Π2.1 - Σχεδιασμός Πλατφόρμας Παραδοτέο έργου
TRACER Κωδικός Έργου: 09ΣΥΝ-72-942 Π2.1 - Σχεδιασμός Πλατφόρμας Παραδοτέο έργου Ενότητα Εργασίας: 2: Έρευνα και Σχεδιασμός Αριθμός Παραδοτέου: 2.1 Συντονιστής: Π. Κατσαρός (ΑΠΘ) Συντελεστές: Α. Αμπατζόγλου,
Εισαγωγή στην αντικειµενοστρεφή τεχνολογία
1 Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στην αντικειµενοστρεφή τεχνολογία ρ. Πάνος Φιτσιλής Περιεχόµενα Γιατί µοντελοποιούµε Εισαγωγή στη UML Ένα απλό παράδειγµα 2 Γιατί µοντελοποιούµε; Ησηµασία της µοντελοποίησης
Κεφάλαιο 2ο. Κατανοώντας την αντικειμενοστρέφεια
Περιεχόμενα Πρόλογος... 11 Κεφάλαιο 1ο. Εισαγωγή στη γλώσσα UML 1.1 Προσθέτοντας μια νέα μέθοδο...13 1.2 Πως αναπτύχθηκε η UML...14 1.3 Κατανοώντας την UML...15 1.4 Αναγνωρίζοντας τα επί μέρους τμήματα
ΕΚΦΩΝΗΣΗ ΥΠΟΧΡΕΩΤΙΚΗΣ ΕΡΓΑΣΙΑΣ σε UML
ΕΚΦΩΝΗΣΗ ΥΠΟΧΡΕΩΤΙΚΗΣ ΕΡΓΑΣΙΑΣ σε UML για το µάθηµα ΑΝΑΛΥΣΗΣ ΣΥΣΤΗΜΑΤΩΝ Ακαδηµαϊκό Έτος 2012-2013 «Αντικειµενοστρεφής Ανάλυση Ηλεκτρονικού Καταστήµατος Προσφορών (e-shop)» Η άσκηση αφορά στη χρήση της
Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής
Προγραμματισμός Η/Υ Ενότητα 4: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Έλεγχος της ροής ενός προγράμματος
Πληροφοριακά Συστήματα Διοίκησης Ενότητα 2: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (2ο Μέρος)
Πληροφοριακά Συστήματα Διοίκησης Ενότητα 2: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (2ο Μέρος) Γρηγόριος Μπεληγιάννης Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης
ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 2016-2017 ΕΡΓΑΣΙΑ 1 (JAVA) Παράδοση 26/4/2017 Στα πλαίσια της εργασίας θα υλοποιηθεί ένα απλοϊκό πρόγραμμα κρατήσεων Ξενοδοχείων. Για απλοποίηση θα περιοριστούμε
public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);
Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας
Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6
Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:
K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων
K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού
Κλάσεις και αντικείμενα #include <iostream.h<
Κλάσεις και αντικείμενα #include class Person private: char name[30]; int age; public: void readdata() cout > name; cout > age; void
UML
Εισαγωγή στη UML UML Μοντέλο Μοντελοποίηση Εισαγωγή στη UML Πως φθάσαμε στη UML Γέννηση της UML Σκοπός της UML Γιατί Διαγράμματα Τυπικές Μέθοδοι (Formal Methods) Γενικά Ανάλυση και Σχεδίαση με UML [Α]
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις
Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java
Εξάμηνο Μάθημα Τίτλος 2017 2018 Εαρινό Αντικειμενοστραφής Προγραμματισμός Ι Ύλη εργαστηρίου, Ασκήσεις Java Ημερομηνία Εργαστήριο 5 ο Α. Ύλη εργαστηρίου 5.1 Έννοιες αντικειμενοστραφούς προγραμματισμού,
PDF created with pdffactory Pro trial version www.pdffactory.com
Περιπτώσεις Χρήσης (Use Cases)- Γενικά Περίπτωση χρήσης: ένα σύνολο διαδοχικών ενεργειών (που μπορεί να περιλαμβάνει και εναλλακτικές ενέργειες) το οποίο οδηγεί σε ένα χρήσιμο αποτέλεσμαγιαέναν χειριστή
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Αντικείμενα μέσα σε αντικείμενα Ορίζουμε κλάσεις για να ορίσουμε τύπους δεδομένων τους οποίους χρειαζόμαστε Π.χ., ο τύπος δεδομένων Date
Εντολές επιλογής Επαναλήψεις (if, switch, while)
Εντολές επιλογής Επαναλήψεις (if, switch, while) Οι σημειώσεις αυτές έχουν σαν στόχο την μάθηση εντολών επιλογής (if, switch, while) που ελέγχουν τη ροή εκτέλεσης ενός προγράμματος. Πρώτα όμως, είναι αναγκαίο
Έγγραφο Περιγραφής Απαιτήσεων Λογισμικού
Ιστορικό Ημερομηνία Έκδοση Περιγραφή Συγγραφέας Σελ. 2 Πίνακας Περιεχομένων 1. Εισαγωγή xx
Χάρτες Ακολουθίας Μηνυμάτων Message Sequence Charts - MSC
Χάρτες Ακολουθίας Μηνυμάτων Message Sequence Charts - MSC Τυπικός σχεδιασμός υπηρεσιών και πρωτοκόλλων 14 Ιουνίου 2011 1/24 2/24 H τυποποίηση των χαρτών Οι Χάρτες Ακολουθίας Μηνυμάτων (Message Sequence
Αντικειμενοστρεφής Προγραμματισμός
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 3/4/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Γιατί έλεγχος πρόσβασης? Προστασία ιδιωτικής πληροφορίας