Αντικειμενοστρεφής Σχεδιασμός

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Αντικειμενοστρεφής Σχεδιασμός"

Transcript

1 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 1 Αντικειμενοστρεφής Σχεδιασμός Οι διαφάνειες προσαρμόστηκαν από διαλέξεις του μαθήματος «ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός» και παραχωρήθηκαν με την ευγενή χορηγία του διδάσκων Δρ. Παναγιώτη Ανδρέου

2 Φάση 1: Ανάλυση Απαιτήσεων και Προδιαγραφές ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 2 1Α. Ανάλυση Απαιτήσεων (Requirements Analysis) Περιγραφή των αναγκών του πελάτη (requirements statement) Αναγνώριση ενδιαφερομένων (stakeholders) Συνεντεύξεις χρηστών (users) Ανάπτυξη περιπτώσεων χρήσης (use cases). Αποκαλύπτουν βασικά χαρακτηριστικά του προγράμματος. Αποτελούν περιγραφικές απαντήσεις σε ερωτήσεις όπως: Ποιός θα χρησιμοποιήσει το σύστημα; Τι ενέργειες μπορούν να κάνουν οι χρήστες; Πώς αλλιώς θα μπορούσε αυτό να λειτουργήσει αν κάποιος άλλος έκανε την ενέργεια ή ο ίδιος χρήστης είχε διαφορετικό στόχο; Τι προβλήματα μπορεί να προκύψουν με το σύστημα; Ανάπτυξη Γρήγορων Πρωτοτύπων (rapid prototyping)

3 Φάση 1: Ανάλυση Απαιτήσεων και Προδιαγραφές (συν.) 1Β. Προδιαγραφές Συστήματος (System Specification) Προκαταρκτική αναγνώριση κλάσεων (Analysis Class Diagram) Συγκεκριμένη περιγραφή του τι θα πρέπει κάνει το πρόγραμμα (όχι πως θα το κάνει). Παράδειγμα του τι μπορεί να περιλαμβάνουν οι προδιαγραφές: Overall description Product perspective System Interfaces User Interfaces Hardware interfaces Software interfaces Communication Interfaces Memory Constraints Operations Site Adaptation Requirements Product functions User characteristics Constraints, assumptions and dependencies Specific requirements External interface requirements Functional requirements Performance requirements Design constraints Standards Compliance Logical database requirement Software System attributes Reliability, Availability, Security, Maintainability, Portability Other requirements ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 3

4 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 4 Φάση 2: Σχεδίαση Σχεδιασμός των αναγνωρισμένων κλάσεων και της αλληλεπίδρασης των κλάσεων Χρήση της τεχνικής των Καρτών Class-Responsibilities-Collaborators (CRC) Χρήση Διαγραμμάτων Ακολουθίας (sequence diagrams) Χρήση Διαγραμμάτων Κλάσεων (class diagrams) Πέντε στάδια σχεδιασμού αντικειμένων: Ανακάλυψη Αντικειμένου (Object discovery) Συναρμολόγηση Αντικειμένου (Object assembly) Κατασκευή Συστήματος Επέκταση Συστήματος Επαναχρησιμοποίηση κλάσεων

5 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 5 Φάση 2: Σχεδίαση Κατευθυντήριες γραμμές για σχεδιασμό των αντικειμένων: Οι κλάσεις προκύπτουν από το πρόβλημα επεκτείνονται και ωριμάζουν καθώς χρησιμοποιούνται για την επίλυση και άλλων προβλημάτων. Το μεγαλύτερο τμήμα του σχεδιασμού σας είναι να ανακαλύψετε τις κλάσεις που σας χρειάζονται. Δεν είναι ανάγκη να προβλέψετε τα πάντα από την αρχή μαθαίνετε καθώς προχωράτε. Ξεκινήστε τον προγραμματισμό νωρίς, ώστε να έχετε κάτι που θα αποδεικνύει την αξία ή προχειρότητα του σχεδιασμού σας. KIS: keep-it-simple. Οι απλές λύσεις είναι συνήθως οι καλύτερες.

6 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 6 Φάση 3: Υλοποίηση Φάση της μετατροπής του αρχικού σχεδιασμού σε πρόγραμμα προς μετάφραση και εκτέλεση 3Α. Αναγνώριση Τμήματος Πυρήνα Πυρήνας: Στόχος εδώ είναι να εντοπίσετε το τμήμα που αποτελεί τον πυρήνα του προγράμματός σας, από τον οποίο θα προκύψει το τελικό σύστημα. Ο πυρήνας μπορεί να μην περιέχει τα πάντα, είναι όμως η βάση για το χτίσιμο των λειτουργιών του συστήματός σας.

7 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 7 Φάση 3: Υλοποίηση (συν.) 3Β. Πρόσθεση Λειτουργιών Μετά το κτίσιμο του πυρήνα, γίνεται η υλοποίηση των λειτουργιών του συστήματος. Κάθε ξεχωριστή λειτουργία αντιπροσωπεύεται στη φάση του σχεδιασμού από μια αντίστοιχη περίπτωση χρήσης (use case). Η υλοποίηση των διαφορετικών περιπτώσεων χρήσης γίνεται διαδοχικά σε διαφορετικές επαναλήψεις και μέχρι να ολοκληρωθεί η υλοποίηση όλων των συστατικών του συστήματος. Πως δικαιολογείται η «επαναληπτική» προσέγγιση (iteration over the use cases);

8 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 8 Φάση 4: Συντήρηση / Εξέλιξη Η φάση της συντήρησης ή εξέλιξης του κώδικα: Διόρθωση σφαλμάτων. Αλλαγές στον κώδικα με βάση την εμπειρία χρήσης του. Πρόσθεση νέων λειτουργιών. Καλύτερη ικανοποίηση των απαιτήσεων.

9 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 9 ΟΟ Σχεδιασμός και Ευθύνες Πως σχεδιάζουμε αντικειμενοστρεφή προγράμματα; Ο ΟΟ σχεδιασμός εστιάζει στην αναγνώριση των κλάσεων ενός προβλήματος και στην ανάθεση ευθυνών στις κλάσεις (λειτουργίες που η κλάση είναι υπεύθυνη να εκτελέσει). Η ανάθεση ευθυνών συνεπάγεται ανάθεση ανεξαρτησίας. Δημιουργία ανεξάρτητων υποσυστημάτων, τα οποία μπορούν εύκολα να επαναχρησιμοποιηθούν.

10 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 10 Παράδειγμα Διαδικασίας Ανάπτυξης Λογισμικού Στις ακόλουθες διαφάνειες θα δούμε σαν παράδειγμα τη διαδικασία ανάπτυξης του συστήματος «Βιβλίο Διευθύνσεων»* αναλύοντας όλες τις φάσεις που αναφέραμε. Φάση 1Α: Ανάλυση Απαιτήσεων Σενάριο, Use Cases Φάση 1Β: Προδιαγραφές Ανάλυση Κλάσεων, Αναφορά Φάση 2: Σχεδιασμός CRC, Sequence Diagrams, Class Diagram Φάση 3: Υλοποίηση Λεπτομερής σχεδιασμός κλάσεων, Κώδικας Φάση 4: Συντήρηση: Νέες Απαιτήσεις, μετάφραση/διάδοση στις άλλες φάσεις Όπου υπάρχουν επιπρόσθετα εργαλεία από αυτά που θα χρησιμοποιήσουμε, θα αναφέρονται περιληπτικά * Έχει προσαρμοστεί από το παράδειγμα που βρίσκεται στην ιστοσελίδα

11 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 11 Παράδειγμα: Βιβλίο Διευθύνσεων Φάση 1Α: Ανάλυση Απαιτήσεων

12 Αναφορά Απαιτήσεων ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 12 Βιβλίο Διευθύνσεων: το πρόγραμμα αυτό διατηρεί και συντηρεί ένα βιβλίο διευθύνσεων. Το βιβλίο διευθύνσεων θα είναι μία συλλογή από οντότητες οι οποίες αναπαριστούν άτομα με πληροφορίες για όνομα, επίθετο, διεύθυνση, πόλη, επαρχία, ταχυδρομικό κώδικα και τηλέφωνο Το πρόγραμμα πρέπει να υποστηρίζει προσθήκη ενός ατόμου, ενημέρωση υφιστάμενου ατόμου (εκτός από το όνομα) και διαγραφή ατόμου Επιπρόσθετες λειτουργίες: Ταξινόμηση των ατόμων αλφαβητικά με επίθετο, όνομα ή ταχ. κώδικα Εκτύπωση όλων των ατόμων σε μορφή mailing label Δημιουργία ενός καινούριου και άνοιγμα ενός υφιστάμενου βιβλίου διευθύνσεων από τον δίσκο με τη χρήση διαπροσωπείας με τις συνηθισμένες επιλογές κάτω από το File (New, Open, Close, Save and Save As)

13 Αναφορά Απαιτήσεων (συν.) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 13 Επιπρόσθετες λειτουργίες (συν.): Το πρόγραμμα θα πρέπει να επεξεργάζεται, ανά πάσα στιγμή, μόνο ένα βιβλίο διευθύνσεων. Στην περίπτωση που ο χρήστης επιλέξει «Νέο Βιβλίο Διευθύνσεων» ή «Άνοιγμα Υφιστάμενου Βιβλίου Διευθύνσεων» τότε το πρόγραμμα θα σταματάει/ κλέινει το υφιστάμενο/τρέχον βιβλίο διευθύνσεων Σε κάποια φάση στο μέλλον, το πρόγραμμα πιθανόν να μπορεί να υποστηρίζει να τρέχουν πολλά γραμματοκιβώτια ταυτόχρονα, το καθένα στο δικό του παράθυρο. Σε αυτή την περίπτωση, όταν ο χρήστης επιλέξει «Νέο Βιβλίο Διευθύνσεων» ή «Άνοιγμα Υφιστάμενου Βιβλίου Διευθύνσεων» τότε το πρόγραμμα δεν θα επηρεάζει τα τρέχοντα βιβλία διευθύνσεων Το πρόγραμμα θα παρακολουθεί τις αλλαγές που γίνονται στο βιβλίο διευθύνσεων και θα παρέχει στο χρήστη την δυνατότητα να αποθηκεύσει τις αλλαγές στο υφιστάμενο ή σε νέο βιβλίο διευθύνσεων

14 Αναφορά Απαιτήσεων (συν.) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 14 Επιπρόσθετες λειτουργίες (συν.): Το πρόγραμμα θα παρακολουθεί το αρχείο από το οποίο έχει διαβαστεί ή που έχει αποθηκευτεί πιο πρόσφατα, θα παρουσιάζει το όνομα του αρχείου στον τίτλο του παραθύρου και θα το χρησιμοποιεί όταν ο χρήστης επιλέξει το «Save» Όταν ένα καινούριο παράθυρο δημιουργηθεί, τότε το παράθυρο θα παρουσιάζει τον τίτλο «Untitled» και η επιλογή «Save» μετατρέπεται σε «Save As» και ο χρήστης θα πρέπει να δώσει ένα όνομα αρχείου

15 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 15 Αναφορά Απαιτήσεων (συν.) Ανάλυση Διαπροσωπείας: Τίτλος Βιβλίου Διευθύνσεων: (π.χ., ΕΠΛ233) Όνομα Αρχείου: (π.χ., C:\ΕΠΛ233.txt) Ανδρέας Ανδρέου Ανδρέας Βάσου Βάσος Βάσου Γεώργιος Γεωργίου Δήμητρα Δημητρίου Ελένη Δημητρίου Add Edit Delete Sort by Name Sort by Zip

16 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 16 Περιπτώσεις Χρήσης (Use Cases) Τεχνική ανάλυσης με την οποία περιγράφουμε, με τρόπο τυπικό (use case), πώς πρέπει να λειτουργήσει ένα πρόγραμμα. Μετάφραση της Αναφοράς Απαιτήσεων σε Use Cases Κάθε use case εστιάζει σε ένα συγκεκριμένο σενάριο Κάθε σενάριο περιγράφει τα βήματα που πρέπει να πραγματοποιηθούν για να φέρουν το σενάριο σε μία επιτυχημένη ολοκλήρωση. Η ολοκλήρωση του σεναρίου πρέπει να αντιστοιχεί στην επίτευξη ενός σημαντικού στόχου Κάθε βήμα αναπαριστά μια αλληλεπίδραση του προγράμματος με ανθρώπους ή εξωτερικές οντότητες του προγραμματιστικού συστήματος

17 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 17 Διαγράμματα Περίπτωσης Χρήσης (Use Case Diagrams) Use Case Diagram: γραφική αναπαράσταση υψηλού επιπέδου του συστήματος Βλέποντας ένα use case diagram πρέπει να μπορούμε να πούμε εύκολα τι κάνει το σύστημα και ποιος αλληλεπιδρά μαζί του Περιλαμβάνει τα use cases, που αντιπροσωπεύουν τις διάφορες λειτουργίες του συστήματος και actors, που αντιπροσωπεύουν τους χρήστες/ρόλους του συστήματος

18 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 18 Διαγράμματα Περίπτωσης Χρήσης (Use Case Diagrams) Μπορούμε να δημιουργήσουμε περισσότερο του ένα use case diagrams για ένα σύστημα: Το κάθε use case θα δείχνει ένα υποσύνολο του συστήματος Μπορούν να οργανωθούν σε πακέτα για καλύτερη οργάνωση του μοντέλου Ένα use case diagram μπορεί να βοηθήσει στην επικοινωνία με τους τελικούς χρήστες του συστήματος. Είναι απλό, μη τεχνικό ώστε ο καθένας στην ομάδα (προγραμματιστές και τελικοί χρήστες) να καταλήξουν σε μία κοινή κατανόηση του συστήματος Συνήθως δημιουργείται από την τεχνική ομάδα σε συνδυασμό με αντιπρόσωπους των τελικών χρηστών

19 Περιπτώσεις Χρήσης (Use Cases) (συν.) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 19 Χρήση των πιο κάτω διαγραμμάτων Ρόλος/Χρήστης (actor): ένα άτομο ή ένα σύνολο από άτομα που ανήκουν στον ίδιο ρόλο και αλληλεπιδρούν με το σύστημα ή μεταξύ τους Περιπτώσεις Χρήσης (use case): μία υψηλού επιπέδου λειτουργία που παρέχει το σύστημα Σχέσεις (relationships): αλληλεπίδραση actor με use case Σχέση «include»: υποδηλώνει ότι ένα use case ΠΡΕΠΕΙ να χρησιμοποιήσει κάποιο άλλο Σχέση «extend»: υποδηλώνει ότι ένα use case επεκτείνει την βασική λειτουργία κάποιου άλλου use case Σχέση «generalization»: ένας actor ή use case κληρονομεί τα χαρακτηριστικά κάποιου άλλου actor ή use case Add a Person «include» «extend»

20 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 20 Βιβλίο Διευθύνσεων: Use Case Diagram Address Book (AdBook) Application Add a Person Edit a Person Delete a Person Sort by Name Sort by ZIP Print AdBook User Create New AdBook Open Existing AdBook Save AdBook «include» Save AdBook As Quit Program «extend» «extend» «include» «extend» Prompt to save changes

21 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 21 Βιβλίο Διευθύνσεων: Use Case Package Diagram Address Book (AdBook) Application Manage Entries Sort/Print Entries User Manage AddressBook

22 Βιβλίο Διευθύνσεων: Use Case Diagram (packets) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 22 Manage Entries Add a Person Edit a Person Delete a Person User

23 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 23 Βιβλίο Διευθύνσεων: Use Cases Add Person Το εν λόγω use case ξεκινά όταν ο χρήστης κάνει κλικ στο κουμπί "Προσθήκη" στο κύριο παράθυρο. Εμφανίζεται ένα παράθυρο διαλόγου, με τίτλο "Νέο Άτομο", το οποίο περιέχει πεδία στα οποία πρέπει να συμπληρωθεί το όνομα και το επώνυμο του νέου ατόμου και άλλες πληροφορίες. Το παράθυρο διαλόγου μπορεί να κλείσει είτε κάνοντας κλικ στο κουμπί "OK" ή "Άκυρο". Εάν πατηθεί το κουμπί "OK", ένα νέο άτομο προστίθεται στο τέλος του βιβλίου διευθύνσεων, και το όνομα του ατόμου, προστίθεται στο τέλος της λίστας των ονομάτων στο κύριο παράθυρο. Εάν πατηθεί το κουμπί "Άκυρο", δεν γίνονται αλλαγές ούτε στο βιβλίο διευθύνσεων, ούτε στο κύριο παράθυρο.

24 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 24 Βιβλίο Διευθύνσεων: Use Cases Edit Person Το εν λόγω use case ξεκινά όταν ο χρήστης επιλέξει είτε ένα όνομα από τη λίστα των ονομάτων στο κύριο παράθυρο και, στη συνέχεια κάνει κλικ στο κουμπί "Επεξεργασία", είτε κάνει διπλό κλικ σε ένα όνομα. Σε κάθε περίπτωση, ένα παράθυρο διαλόγου, με τίτλο "Επεξεργασία ονόματος του ατόμου", εμφανίζεται περιέχοντας πληροφορίες σχετικές με το επιλεγμένο πρόσωπο (εκτός από το όνομα του ατόμου, το οποίο εμφανίζεται μόνο στον τίτλο). Ο χρήστης μπορεί στη συνέχεια να επεξεργαστεί τα πεδία με τα χαρακτηριστικά του ατόμου. Το παράθυρο διαλόγου μπορεί να κλείσει είτε κάνοντας κλικ στο "OK" ή "Άκυρο". Εάν πατηθεί το κουμπί "OK", η καταχώρηση στο βιβλίο διευθύνσεων για το επιλεγμένο πρόσωπο ενημερώνεται με τις αλλαγές που έγιναν από το χρήστη. Εάν πατηθεί το κουμπί "Άκυρο", δεν γίνονται αλλαγές στο βιβλίο διευθύνσεων.

25 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 25 Βιβλίο Διευθύνσεων: Use Cases Sort by Name Το εν λόγω use case ξεκινά όταν ο χρήστης κάνει κλικ στο κουμπί " Ταξινόμηση κατά Όνομα " στο κύριο παράθυρο. Οι καταχωρήσεις στο βιβλίο διευθύνσεων ταξινομούνται αλφαβητικά κατά όνομα, και ο κατάλογος στο κύριο παράθυρο ενημερώνεται ώστε να αντικατοπτρίζει τη ταξινόμηση.

26 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 26 Βιβλίο Διευθύνσεων: Use Cases Prompt to Save Changes Extension Το εν λόγω use case ξεκινά μέσα από τη Δημιουργία νέου βιβλίου διευθύνσεων, Άνοιγμα υπάρχον βιβλίο διευθύνσεων, ή Έξοδος προγράμματος, εφόσον το τρέχον βιβλίο διευθύνσεων έχει αλλάξει από τη τελευταία επιτυχημένη λειτουργία New, Open, Save, ή Save As. Ένα παράθυρο διαλόγου εμφανίζεται, ενημερώνοντας τον χρήστη ότι υπάρχουν μη αποθηκευμένες αλλαγές, και ζητώντας από το χρήστη είτε να αποθηκεύσει τις αλλαγές, να μην αποθηκεύσει τις αλλαγές, ή να ακυρώσει τη λειτουργία. Αν ο χρήστης επιλέξει να αποθηκεύσει τις αλλαγές, το use case Αποθήκευση Βιβλίου Διευθύνσεων εκτελείται (το οποίο μπορεί να οδηγήσει στην εκτέλεση του use case Αποθήκευση Βιβλίου Διευθύνσεων ως, σε περίπτωση που δεν υπάρχει τρέχον αρχείο). Εάν ο χρήστης δεν επιλέξει να αποθηκεύσει τις αλλαγές, η αρχική λειτουργία απλά επαναλαμβάνεται. Εάν ο χρήστης επιλέξει να ακυρώσει (ή ακυρώσει το διάλογο Αποθήκευση αρχείου), η αρχική λειτουργία ακυρώνεται.

27 Πλήρης Περιγραφή Use Cases ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός Title 8. Minimal Guarantees 2. Primary Actor 3. Goal in Context 4. Scope 5. Level 6. Stakeholders and Interests 7. Precondition 9. Success Guarantees 10.Trigger 11.Main Success Scenario 12.Extensions 13.Technology & Data Variations List 14.Related Information.

28 Περιγραφή Αποκλίσεων (Variations List) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 28 Κατά την εκτέλεσή του, ένα σενάριο μπορεί σε κάποιο στάδιο να αποτύχει. Για παράδειγμα, στις Περιπτώσεις Χρήσης του Βιβλίου Διευθύνσεων: η αποθήκευση σε ένα αρχείο μπορεί να αποτύχει γιατί το αρχείο ήδη υπάρχει και επιτρέπεται μόνο η ανάγνωση η δημιουργία ενός καινούριου ατόμου μπορεί να αποτύχει γιατί δεν υπάρχει άλλη μνήμη Για την κάλυψη των περιπτώσεων αποτυχίας ενός σεναρίου, στην περιγραφή της Περίπτωσης Χρήσης συμπεριλαμβάνεται και η περιγραφή Αποκλίσεων (variations) Σε αυτό το κείμενο αναφέρονται και εναλλακτικές λύσεις για επίλυση των προβλημάτων

29 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 29 Παράδειγμα: Βιβλίο Διευθύνσεων Επόμενη Φάση 1Β: Προδιαγραφές

30 Φάση 1: Ανάλυση Απαιτήσεων και Προδιαγραφές (συν.) 1Β. Προδιαγραφές Συστήματος (System Specification) Προκαταρκτική αναγνώριση κλάσεων (Analysis Class Diagram) Συγκεκριμένη περιγραφή του τι θα πρέπει κάνει το πρόγραμμα (όχι πως θα το κάνει). Παράδειγμα του τι μπορεί να περιλαμβάνουν οι προδιαγραφές: Overall description Product perspective System Interfaces User Interfaces Hardware interfaces Software interfaces Communication Interfaces Memory Constraints Operations Site Adaptation Requirements Product functions User characteristics Constraints, assumptions and dependencies Specific requirements External interface requirements Functional requirements Performance requirements Design constraints Standards Compliance Logical database requirement Software System attributes Reliability, Availability, Security, Maintainability, Portability Other requirements ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 30

31 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 31 Ανάλυσης Κλάσεων Στα αρχικά στάδια του προγράμματος, είναι καλό να διεξαχθεί μία προκαταρκτική αναγνώριση των κλάσεων/αντικειμένων του συστήματος (Class Analysis) καθώς και οι αλληλεπιδράσεις μεταξύ τους. Οι κλάσεις σε αυτό το προκαταρκτικό στάδιο παίρνουν την μορφή κλάσεων συνόρων, κλάσεων οντοτήτων και κλάσεων ελέγχου. Τα use cases συνήθως αποκαλύπτουν το μεγαλύτερο ποσοστό των κλάσεων Οι έμπειροι αναλυτές/προγραμματιστές μπορεί να αναγνωρίσουν όλες τις κλάσεις προς ολοταχώς στην υλοποίηση, χωρίς σχεδίαση

32 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 32 Διαγράμματα Ανάλυσης Κλάσεων Κλάσεις Σύνορα (Boundary Classes): χειρίζονται την επικοινωνία μεταξύ actors και components του συστήματος, π.χ., user interface, device interface. Συνήθως μόνο ένα boundary class για κάθε use case. Κλάσεις Οντότητες (Entity Classes): μοντελοποιούν την πληροφορία που χειρίζεται το σύστημα Κλάσεις Ελέγχου (Control Classes): αντιπροσωπεύουν το συντονισμό/ροή ελέγχου για ένα use case.

33 Βιβλίο Διευθύνσεων: Class Analysis ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 33 Το πρόγραμμα, ανά πάσα στιγμή διαχειρίζεται ένα βιβλίο διευθύνσεων (AddressBook). οντότητα Κάθε άτομο (Person) μπορεί να αναπαρασταθεί σαν μία οντότητα με τα χαρακτηριστικά της οντότητα Μία διαπροσωπεία (AddressBookGUI) θα υπάρχει μεταξύ χρήστη και συστήματος. Ο χρήστης δεν θα μπορεί να έχει πρόσβαση διαφορετικά με το σύστημα σύνορο Μία διαπροσωπεία/αντικείμενο (FileSystem) θα υπάρχει μεταξύ του συστήματος και του λειτουργικού ώστε το σύστημα να μπορεί να διαχειρίζεται αρχεία σύνορο Ένα αντικείμενο διαχειριστής (AddressBookController) χρειάζεται για να αναλάβει την εκτέλεση των use cases σε ανταπόκριση των διαφόρων λειτουργιών που θα επιλέξει ο χρήστης από το μενού. controller *(Για ένα τέτοιο μικρό πρόβλημα, ένας controller είναι αρκετός.)

34 Βιβλίο Διευθύνσεων: Analysis Class Diagram ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 34 FileSystem AddressBook Controller User AddressBook GUI Person AddressBook

35 Βιβλίο Διευθύνσεων: Class Analysis (συν.) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 35 Το use case Add a Person έχει σχέση με την εισαγωγή νέας πληροφορίας (δηλ. νέο άτομο) από τον χρήστη. Τέλος, θα καλεστεί το αντικείμενο AddressBook ώστε να εισάξει το νέο άτομο στη συλλογή. Το use case Edit a Person έχει σχέση με την παρουσίαση της τρέχουσας πληροφορίες κάποιου ατόμου μέσω του αντικειμένου AddressBook και παροχή της ικανότητας αλλαγή των στοιχείων αυτού. Στο τέλος, θα καλεστεί το αντικείμενο AddressBook για να αποθηκεύει τις αλλαγές. Το use case Delete a Person έχει σχέση με την διαγραφή ενός υπάρχον ατόμου. παρουσίαση της τρέχουσας. Στο τέλος, θα καλεστεί το αντικείμενο AddressBook για να αφαιρέσει το άτομο από την συλλογή. Το use case Sort by Name θα καλέσει το αντικείμενο AddressBook για να ταξινομήσει τη συλλογή των ατόμων με το όνομα και επίθετο τους. Το use case Sort by ZIP θα καλέσει το αντικείμενο AddressBook για να ταξινομήσει τη συλλογή των ατόμων με τον ταχυδρομικό κώδικα τους.

36 Βιβλίο Διευθύνσεων: Class Analysis (συν.) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 36 Το use case Create New Address Book δημιουργεί ένα καινούριο αντικείμενο τύπου AddressBook. Το use case Open Existing Address Book θα ζητήσει από τον χρήστη ένα αρχείο και μετά θα χρησιμοποιήσει το αντικείμενο FileSystem για να διαβάσει ένα αντικείμενο τύπου AddressBook που έχει αποθηκευτεί στο αρχείο. Το use case Save Address Book θα χρησιμοποιήσει το αντικείμενο FileSystem για να αποθηκεύσει ένα αντικείμενο τύπου AddressBook στο πιο πρόσφατο αρχείο που έχει διαβαστεί ή αποθηκευτεί). Αν δεν υπάρχει κάποιο αρχείο τότε θα εκτελέσει το use case Save Address Book As Το use case Print Address Book θα ζητήσει από το αντικείμενο AddressBook να τυπώσει την συλλογή της σύμφωνα με την τρέχουσα ταξινόμηση. Το use case Quit Program δεν έχει σχέση με τα υπόλοιπα αντικείμενα.

37 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 37 Παράδειγμα: Βιβλίο Διευθύνσεων Επόμενη Φάση 2: Σχεδίαση

38 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 38 Φάση 2: Σχεδίαση Σχεδιασμός των αναγνωρισμένων κλάσεων και της αλληλεπίδρασης των κλάσεων Χρήση της τεχνικής των Καρτών Class-Responsibilities-Collaborators (CRC) Χρήση Διαγραμμάτων Ακολουθίας (sequence diagrams) Χρήση Διαγραμμάτων Κλάσεων (class diagrams) Πέντε στάδια σχεδιασμού αντικειμένων: Ανακάλυψη Αντικειμένου (Object discovery) Συναρμολόγηση Αντικειμένου (Object assembly) Κατασκευή Συστήματος Επέκταση Συστήματος Επαναχρησιμοποίηση κλάσεων

39 Κάρτες CRC (ΚEΣ: ΚΛΑΣΕΙΣ-ΕΥΘΥΝΕΣ-ΣΥΝΕΡΓΑΤΕΣ) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 39 Προτάθηκε από τους Cunningham και Beck με βάση τις εμπειρίες που αποκόμισαν από την γλώσσα SMALLTALK. Στη μέθοδο των καρτών CRC προκρίνεται: Η διερεύνηση των «υπευθυνοτήτων» των κλάσεων, αποφεύγοντας την περιγραφή δομών δεδομένων και αλγοριθμικών διεργασιών. Η χρήση απλών χάρτινων καρτών Class-Responsibility-Collaboration (CRC) 10cm x 15cm αντί για διαγράμματα, μοντέλα, ή προσδιορισμό μεθόδων και διαπροσωπειών. Ο συμμετοχικός σχεδιασμός. Υπευθυνότητα είναι μια υψηλού επιπέδου περιγραφή της αποστολής μιας κλάσης. Με μια CRC κάρτα μπορούμε να απεικονίσουμε μια κλάση και τα χαρακτηριστικά της, στη φάση της σχεδίασης.

40 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 40 Κάρτες CRC (συν.) Δομή καρτών CRC Class name Super class Sub Classes Κλάσεις οι οποίες κληρονομούν από την κλάση Responsibilities Κατάλογος με τις ευθύνες (λειτουργίες) αυτής της κλάσης Collaborators Κλάσεις με τις οποίες συνεργάζεται η κλάση

41 Αρχές Ονοματολογίας Κλάσεων ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 41 Πολύ σημαντική η ονοματολογία: διευκολύνει την ανάγνωση και κατανόηση του κώδικα. Βασικές αρχές: χρήση ευανάγνωστων και εύηχων ονομάτων χρήση κεφαλαίων στην αρχή καινούργιας λέξης, έστω κι αν ενώνουμε δύο ή περισσότερες λέξεις (π.χ., CardReader) προσεκτική χρήση συντομογραφιών για αποφυγή παρεξηγήσεων αποφυγή χρήσης αριθμών εντός των ονομάτων κατάλληλη ονομασία λογικών μεταβλητών (π.χ., PrinterIsReady - PrinterStatus)

42 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 42 Κάρτες CRC: Περιγραφή Υπευθυνοτήτων Ο χώρος των υπευθυνοτήτων είναι το συμβόλαιο με το οποίο καθορίζονται τα χαρακτηριστικά και οι ευθύνες μιας κλάσης. Οι ευθύνες περιγράφουν το πρόβλημα που πρέπει να επιλύει η κλάση: χρησιμοποιώντας σύντομα ρήματα και μικρές εκφράσεις περιγράφοντας το τι πρέπει να γίνει και όχι το πως θα γίνει βασική επεξήγηση: ποιό θα είναι το αποτέλεσμα αν χρησιμοποιηθεί το αντικείμενο κατά τον Α ή Β τρόπο το πολύ μια κάρτα ανά κλάση

43 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 43 Κάρτες CRC: Περιγραφή Συνεργατών Κατάλογος των κλάσεων με τις οποίες συνεργάζεται η παρούσα κλάση, δηλ. οι κλάσεις, τις οποίες πρέπει να λαμβάνει υπόψη της: Παρέχουν υπηρεσίες στην κλάση ώστε αυτή να μπορεί να διεκπεραιώσει τις ευθύνες της Κλάσεις που χρησιμοποιούν υπηρεσίες της παρούσας κλάσης. Η απόφαση για συμπερίληψη στον κατάλογο συνεργατών καθορίζεται από το βαθμό συνεργασίας μεταξύ δύο κλάσεων. Π.χ., η κλάση «στοίβα» δεν συμπεριλαμβάνει τις κλάσεις που πιθανώς να την χρησιμοποιούν (όχι όμως το αντίστροφο).

44 Ανακαλύπτοντας τις κλάσεις ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 44 Κατηγορίες Κλάσεων: Διαχειριστές πληροφοριών, δεδομένων και καταστάσεων (Data managers, Data or state classes). Πηγές ή αποδέκτες πληροφοριών (data sources or sinks). Κλάσεις απεικονίσεως ή παρουσιάσεως (view or observer classes) Data Manager Classes: Models Display Classes: Views Βοηθητικές κατηγορίες (facilitators or helper classes)

45 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 45 Σχεδιασμός με Σενάρια Ο σχεδιασμός με κάρτες CRC δεν ακολουθεί ούτε το top-down ούτε το bottom-up μοντέλο σχεδιασμού λογισμικού. Διεργασία σχεδίασης με CRC: από το γνωστό προς το άγνωστο Ξεκινάμε από τις προφανείς κλάσεις κι αυτές που απαιτούνται για το ξεκίνημα της εφαρμογής Συνεχίζουμε ξετυλίγοντας υποθετικά σενάρια ( what if ) Χρησιμοποιούμε τις κάρτες για να προσομοιώσουμε την εξέλιξη του προγράμματος Κάθε ενέργεια που αναγνωρίζεται, καταχωρείται σαν υπευθυνότητα της σχετικής κλάσης

46 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 46 Σχεδιασμός με Σενάρια (συν.) Δοκιμάζονται διαφορετικά σενάρια και δημιουργούνται νέες υπευθυνότητες. Ελέγχονται σενάρια που εμπεριέχουν καταστάσεις σφάλματος ή έκτακτα περιστατικά. Οι σχεδιαστές ενθαρρύνονται να εργάζονται με το συγκεκριμένο ανά χείρας πρόβλημα και να μην προσπαθούν να προβλέψουν μελλοντικές απαιτήσεις του λογισμικού, οι οποίες δεν προκύπτουν από τα εξεταζόμενα σενάρια. Συχνά, οι υπευθυνότητες αλλάζουν κλάση, καθώς εξελίσσεται η σχεδίαση και εξετάζονται διαφορετικά σενάρια.

47 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 47 Πλεονεκτήματα των CRC Ως τεχνική σχεδιασμού είναι: απλή φθηνή οι κάρτες αντικαθιστούνται εύκολα εύκολα μεταβάλλονται Με την χρήση και τον έλεγχο σεναρίων βεβαιωνόμαστε ότι το σχέδιο του λογισμικού περιέχει όλες τις πληροφορίες, οι οποίες είναι αναγκαίες για την εκτέλεση και την εκπλήρωση μιας εργασίας.

48 Σχεδιασμός με CRC ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 48 Η τεχνική CRC χωρίζεται σε δύο μέρη: 1. Το ερευνητικό μέρος (exploratory phase) ανακαλύπτουμε τις κλάσεις που χρειάζονται για την υλοποίηση του προβλήματος καθορίζουμε και αναθέτουμε τις υπευθυνότητες στις διάφορες κατηγορίες αναγνωρίζουμε την συνεργασία που υπάρχει μεταξύ των διαφόρων κατηγοριών 2. Το αναλυτικό μέρος (analysis phase) εκλέπτυνση του σχεδίου που προέκυψε από το ερευνητικό μέρος δημιουργία κλάσεων που περιέχουν κοινές ευθύνες (ιεραρχία) τοποθέτηση σχετικών κλάσεων μαζί

49 Βιβλίο Διευθύνσεων: Κάρτες CRC ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 49 FileSystem Responsibilities - Διάβασε ένα αποθηκευμένο βιβλίο διευθύνσεων από το αρχείο - Αποθήκευσε ένα βιβλίο διευθύνσεων σε αρχείο - Collaborators - AddressBook - AddressBook

50 Βιβλίο Διευθύνσεων: Κάρτες CRC ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 50 Person Responsibilities - Δημιουργία καινούριου ατόμου με τα στοιχεία του - Επιστροφή στοιχείων ατόμου - Ενημέρωση στοιχείων ατόμου (εκτός ονόματος) - Collaborators

51 Βιβλίο Διευθύνσεων: Κάρτες CRC ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 51 AddressBookGUI Responsibilities - Παρακολούθηση του τρέχον AddressBook - Παρουσίαση λίστα με ονόματα ατόμων - Παρουσίαση του τίτλου του AddressBook - Collaborators - AddressBook - AddressBook - AddressBook

52 Βιβλίο Διευθύνσεων: Κάρτες CRC ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 52 AddressBookController Responsibilities Επιτρέπει την εκτέλεση των use case: - Add/Edit/Delete Person - Sort Entries (Name/Zip) - Create new AddressBook - Open Existing AddressB - Save AddressBook Collaborators - AddressBook - AddressBook - AddressBook - FileSystem - FileSystem -

53 Διαγράμματα Ακολουθίας (sequence diagrams) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 53 Διαγράμματα Ακολουθίας (sequence diagrams): Περιγράφουν τις αλληλεπιδράσεις μεταξύ αντικειμένων κατά την σεναρίου (use case) σε σχέση με το χρόνο Παρουσιάζουν την ροή της λειτουργίας και του έλεγχου ανάμεσα στα αντικείμενα του συστήματος ή use case. Απαντούν ερωτήσεις για το πώς δουλεύει το σύστημα Υποκατηγορία των Interaction Diagrams (συμπληρωματικά διαγράμματα των collaboration diagrams) Μπορούν να υπάρχουν πολλαπλά διαγράμματα ακολουθίας για ένα use case

54 Σχεδίαση Διαγραμμάτων Ακολουθίας ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 54 Γραμμή Ζωής (lifeline) : αντιπροσωπεύουν ρόλους ή αντικείμενα (στιγμιότυπα κλάσης) που λαμβάνουν μέρος στην συγκεκριμένη ακολουθία. Μέσα στο κουτί αναγράφεται το όνομα του στιγμιότυπου και το όνομα της κλάσης Μηνύματα (messages): Ένα αντικείμενο καλεί μία λειτουργία κάποιου άλλου αντικειμένου. Μηνύματα επιστροφής (dashed arrow) <instance> : <class> method() Μηνύματα από ένα αντικείμενο στον εαυτό του Σύγχρονα (το αντικείμενο περιμένει μέχρι να τελειώσει η λειτουργία) και ασύγχρονα μηνύματα (το αντίστροφο) synchronous asynchronous Στήλη ενεργοποίησης (activation bar): αντιπροσωπεύει τη ζωή μίας λειτουργίας. Παρουσιάζεται μαζί

55 Παράδειγμα: sequence diagrams ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 55 analyst : FinancialAnalyst system : ReportingSystem secsystem: SecuritySystem getavailablereports() getsecurityclearance(userid) userclearance getavailablereports() availablereports

56 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 56 Βιβλίο Διευθύνσεων: Sequence Diagrams Use case: Add Person : AddressBook GUI : AddressBook Controller : MultiInput Dialog : AddressBook : Person guiaddperson() showdialog() getaddressbook() guiaddperson() createperson() setchanged SinceLastSave()

57 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 57 Βιβλίο Διευθύνσεων: Sequence Diagrams Use case: Sort by Name : AddressBook GUI : AddressBook Controller : AddressBook : Person. CompareByName guisortbyname() getaddressbook() showdialog() comparepersons() setchanged SinceLastSave()

58 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 58 Διαγράμματα Κατάστασης (state diagrams) Διαγράμματα Κατάστασης (state diagrams): Απλά διαγράμματα τα οποία παρουσιάζουν μία μοντελοποίηση των καταστάσεων που μπορεί να βρεθεί το σύστημα ή use case: Προϋποθέτουν ότι ένα σύστημα μπορεί να περιγραφεί με ένα διακριτό αριθμό βημάτων Υπάρχουν πολλές μορφές Περιλαμβάνουν: Καταστάσεις (states): αντιπροσωπεύουν καταστάσεις του συστήματος ή κάποιου αντικειμένου Συμβάν (event): Μία λειτουργία που διαδέχεται μεταξύ καταστάσεων state event()

59 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 59 Παράδειγμα: state diagram Μηχανή ATM OFF/Problem display: Not Available switch/turn off Perform shutdown switch/turn on Perform startup Serving Customer Include session card inserted create session session completed or aborted OFF/Problem display: Not Available

60 Βιβλίο Διευθύνσεων: state diagram ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 60 Start AddressBook Application Create New Display GUI Display: Create New or Open Existing cancel cancel Open existing Save file dialog Display: Enter File Name Open file dialog Display: Select File Manage AddressBook Add/Edit/Delete Person, Print, Sort,

61 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 61 Διαγράμματα Κλάσης (class diagrams) Ένα από τα κυριότερα εργαλεία αντικειμενοστρεφής μοντελοποίησης Περιγράφει τη δομή του συστήματος παρουσιάζοντας: τις κλάσεις του συστήματος τις σχέσεις μεταξύ κλάσεων Δύο είδη διαγραμμάτων: Γενικό εννοιολογικό μοντέλο: χρησιμοποιείται στην ανάλυση και σχεδίαση Αναλυτικό μοντέλο: χρησιμοποιείται για μετάφραση των μοντέλων σε πραγματικό κώδικα (θα το κοιτάξουμε στη Φάση 3: υλοποίηση)

62 Στοιχεία Διαγράμματος Κλάσης ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 62 Κλάσεις (Classes) Ένα όνομα το οποίο αναπαριστά την οντότητα που μοντελοποιείται (γενικό+αναλυτικό) Ένα σύνολο από χαρακτηριστικά που σχετίζονται με την κλάση δηλ., κάθε αντικείμενο της κλάσης θα έχει αυτά τα χαρακτηριστικά (αναλυτικό) Ένα σύνολο από μεθόδους (λειτουργίες) που θα παρέχουν τα αντικείμενα της κλάσης (αναλυτικό) Σχέσεις (Relationships) Υποδεικνύουν τις σχέσεις μεταξύ κλάσεων (γενικό+αναλυτικό) Υποδεικνύουν τις σχέσεις μεταξύ στιγμιότυπων μίας κλάσης (γενικό+αναλυτικό) Υποδεικνύουν γενικές σχέσεις μεταξύ κλάσεων και αντικειμένων (γενικό+αναλυτικό) Πολλαπλότητες Επιβάλλουν ποσοτικούς περιορισμούς στις σχέσεις μεταξύ κλάσεων (γενικό+αναλυτικό)

63 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 63 Σχέσεις μεταξύ κλάσεων Σχέσεις Επίπεδο Στιγμιότυπου (Instance-level relationships) Συσχέτιση (Association) Κατευθυνόμενη Συσχέτιση (Directed Association) Συνάθροιση(Aggregation) Σύνθεση (Composition) Σχέσεις σε Επίπεδο Κλάσης (Class-level relationships) Γενίκευση (Generalization) Πραγματοποίηση (Realization) Γενικές Σχέσεις (General relationships) Εξάρτηση (Dependency) Πολλαπλότητα (Multiplicity)

64 Παράδειγμα Διαγράμματος Κλάσης (Class Diagram) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 64

65 Σχέση: Συσχέτιση (Association) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 65 Διαγραμματική Αναπαράσταση Υποδεικνύει ότι μία κλάση χρειάζεται να επικοινωνήσει με μία άλλη κλάση Μόνιμη σχέση Δομημένη σχέση Η κατάσταση της κλάσης Α περιέχει την κλάση Β Παράδειγμα: 1. Ο χρήστης για να γραφτεί σε ένα μάθημα πρέπει να περάσει από τη διαδικασία της εγγραφής (enrolment) 2. Oι φοιτητές έχουν σχέση με τα μαθήματα 3. Τα μαθήματα έχουν σχέση με φοιτητές Student Enrollment Course

66 Σχέση: Κατευθυνόμενη Συσχέτιση (Directed Association) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 66 Διαγραμματική Αναπαράσταση Παρόμοια με σχέση συσχέτιση (association) Υποδεικνύει ότι μία κλάση Α γνωρίζει για μία κλάση Β αλλά η κλάση Β δεν γνωρίζει για την κλάση Α Παράδειγμα: Το FBI γνωρίζει πληροφορίες για τους πολίτες. Οι πολίτες όμως δεν γνωρίζουν για το FBI. Citizen FBI

67 Σχέση: Ανακλαστική Συσχέτιση (Reflexive Association) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 67 Διαγραμματική Αναπαράσταση Παρόμοια με σχέση συσχέτιση (association) Υποδεικνύει ότι μία κλάση έχει σχέση με τον εαυτό της Επίσης μπορεί να υποδηλώνει ότι μία κλάση έχει πολλαπλές ιδιότητες Παράδειγμα: 1. Κάθε υπάλληλος μπορεί να έχει διευθυντή 2. Κάθε υπάλληλος μπορεί να είναι διευθυντής, υπάλληλος ταμείου, διαφημιστής, λογιστής κτλ., Employee

68 Σχέση: Συνάθροιση (Aggregation) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 68 Διαγραμματική Αναπαράσταση Προκύπτει όταν αντικείμενα μιας κλάσης περιέχουν αντικείμενα κάποιας άλλης κλάσης για μια χρονική περίοδο Ειδική κατηγορία συσχέτισης εξάρτησης ( has-a ) Ένα πεδίο δεδομένων μιας κλάσης μπορεί να περιγραφεί είτε με συνάθροιση είτε σαν κατηγόρημα (attribute) της κλάσης. Παράδειγμα: Ένα τιμολόγιο περιέχει 0 ή περισσότερες γραμμές προϊόντων Invoice Invoice Items

69 Σχέση: Σύνθεση (Composition) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 69 Διαγραμματική Αναπαράσταση Πιo ισχυρή μορφή συνάθροισης Tα συναθροισμένα αντικείμενα δεν έχουν ανεξάρτητη ύπαρξη έξω από το αντικείμενο που τα συναθροίζει Χρήση συνάθροισης ή σύνθεσης μόνο όταν η μια κλάση διαχειρίζεται τα αντικείμενα της άλλης Ειδική κατηγορία συσχέτισης εξάρτησης ( part-of ) Παράδειγμα: Μία μηχανή είναι μέρος κάποιου αυτοκινήτου Car Engine

70 Σχέση: Γενίκευση (Generalization) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 70 Διαγραμματική Αναπαράσταση Υποδηλώνει κληρονομικότητα Η κλάση παιδί κληρωνομεί όλα τα χαρακτηριστικά, λειτουργίες και σχέσεις της κλάσης πατέρας Σχέση is-a Δεν μπορεί να χρησιμοποιηθεί με πολλαπλότητα Παράδειγμα Ο φοιτητής είναι άνθρωπος Ο καθηγητής είναι άνθρωπος Person student professor

71 Σχέση: Πραγματοποίηση (Realization) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 71 Διαγραμματική Αναπαράσταση Χρησιμοποιείται όταν μία κλάση πρέπει να υλοποιήσει μία διαπροσωπεία (interface) Υποδηλώνει ότι η λειτουργικότητα που καθορίζεται από μία κλάση πρέπει να υλοποιηθεί από κάποια άλλη Παράδειγμα: To printer πρέπει να υλοποιήσει τις επιλογές (printing preferences) που έχουν καθοριστεί από τον χρήστη printer printer setup

72 Σχέση: Εξάρτηση (Dependency) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 72 Διαγραμματική Αναπαράσταση Υποδηλώνει εξάρτηση μεταξύ κλάσεων για κάποιο χρονικό διάστημα Πιο αδύνατη σχέση Μπορεί να προκληθεί όταν μία κλάση χρησιμοποιεί την άλλη μέσα από: Τοπική μεταβλητή Παράμετρο Τιμή επιστροφής Παράδειγμα: Το αυτοκίνητο εξαρτάται από τους τροχούς Wheel Car

73 Σχέση: Πολλαπλότητα (Multiplicity) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 73 Διαγραμματική Αναπαράσταση Κάποιες συσχετίσεις μπορεί να έχουν ποσοτικούς περιορισμούς Η πολλαπλότητα δηλώνει σε πόσα αντικείμενα μπορεί να αναφέρεται η πηγή του αντικειμένου Παράδειγμα: Ένας καθηγητής έχει τουλάχιστον ένα μάθημα Ένα μάθημα έχει ακριβώς ένα καθηγητή Συμβολισμός Επεξήγηση 0..1 Zero or one 1 One only 0..* Zero or more * Zero or more 1..* One or more 3 Three only 0..5 Zero to Five Five to Fifteen Professor 1 1..* Course

74 Παραδείγματα: Σχέσεις ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 74

75 Βιβλίο Διευθύνσεων: Class Diagram ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 75 MultiInput Pane Address Book Application Address Book Controller File System AddressBook GUI AddressBook Person Person CompareByName Person CompareByZip

76 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 76 Παράδειγμα: Βιβλίο Διευθύνσεων Επόμενη Φάση 3: Υλοποίηση

77 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 77 Φάση 3: Υλοποίηση Φάση της μετατροπής του αρχικού σχεδιασμού σε πρόγραμμα προς μετάφραση και εκτέλεση 3Α. Αναγνώριση Τμήματος Πυρήνα Πυρήνας: Στόχος εδώ είναι να εντοπίσετε το τμήμα που αποτελεί τον πυρήνα του προγράμματός σας, από τον οποίο θα προκύψει το τελικό σύστημα. Ο πυρήνας μπορεί να μην περιέχει τα πάντα, είναι όμως η βάση για το χτίσιμο των λειτουργιών του συστήματός σας.

78 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 78 Φάση 3: Υλοποίηση (συν.) 3Β. Πρόσθεση Λειτουργιών Μετά το κτίσιμο του πυρήνα, γίνεται η υλοποίηση των λειτουργιών του συστήματος. Κάθε ξεχωριστή λειτουργία αντιπροσωπεύεται στη φάση τού σχεδιασμού από μια αντίστοιχη περίπτωση χρήσης (use case). Η υλοποίηση των διαφορετικών περιπτώσεων χρήσης γίνεται διαδοχικά σε διαφορετικές επαναλήψεις και μέχρι να ολοκληρωθεί η υλοποίηση όλων των συστατικών του συστήματος. Πως δικαιολογείται η «επαναληπτική» προσέγγιση (iteration over the use cases);

79 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 79 Διαγράμματα Κλάσης (class diagrams) Ένα από τα κυριότερα εργαλεία αντικειμενοστρεφής μοντελοποίησης Περιγράφει τη δομή του συστήματος παρουσιάζοντας: τις κλάσεις του συστήματος τις σχέσεις μεταξύ κλάσεων Δύο είδη διαγραμμάτων: Γενικό εννοιολογικό μοντέλο (ΓΜ): χρησιμοποιείται στην ανάλυση και σχεδίαση Αναλυτικό μοντέλο (ΑΜ): χρησιμοποιείται για μετάφραση των μοντέλων σε πραγματικό κώδικα

80 Διαγράμματα Κλάσης (class diagrams) (συν.) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 80 Αναλυτικό μοντέλο Διάγραμμα Κλάσης Κάθε κλάση χωρίζεται σε 4 μέρη 1. Το όνομα της κλάσης (class name) 2. Τα χαρακτηριστικά (attributes) της κλάσης 3. Τις λειτουργίες (operations) της κλάσης 4. (Προαιρετικό) Επιπρόσθετα συστατικά (additional components) της κλάσης Διάγραμμα αντικειμένου Όμοιο με Διάγραμμα Κλάσης Όνομα αντικειμένου αντί Όνομα Κλάσης Όνομα αντικειμένου υπογραμμισμένο Class Name Attributes Operations Components Object Name Attributes Operations Components

81 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 81 Προσδιοριστές για Διαγράμματα Κλάσης Προσδιοριστές Ορατότητας (Visibility Modifiers) (+) public : Η πρόσβαση είναι ανοικτή σε όλους! (-) private: Η πρόσβαση είναι περιορισμένη μόνο στην κλάση (~) package (friendly): Η πρόσβαση είναι περιορισμένη σε κλάσεις που βρίσκονται στο ίδιο πακέτο με την κλάση (#) protected: Όπως το default αλλά και σε κλάσεις που κληρονομούν από την ίδια κλάση (εντός πακέτου ή όχι) Άλλοι Προσδιοριστές (underline) static : Τα δεδομένα, μεθόδοι ισχύουν για όλα τα αντικείμενα της κλάσης (/) derived: Τα δεδομένα, μεθόδοι κληρονομούνται από άλλες κλάσεις Συμβολισμός + Public - Private Επεξήγηση # Protected ~ Package / Derived <underline> Static

82 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 82 Βιβλίο Διευθύνσεων: Class Diagrams (αναλυτικά) Person - firstname: String - lastname: String - address: String - city: String - state: String - zip: String - phone: String + Person(String firstname, String lastname, String address, String city, String state, String zip, String phone) + getfirstname(): String + getlastname(): String + getaddress(): String + getcity(): String + getstate(): String + getzip(): String + getphone(): String

83 Βιβλίο Διευθύνσεων: Class Diagrams (αναλυτικά) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 83 FileSystem + readfile(file file): AddressBook + savefile(addressbook addressbook, File file)

84 Βιβλίο Διευθύνσεων: Class Diagrams (αναλυτικά) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 84 AddressBookApplication - filesystem: FileSystem - controller: AddressBookController + main() + quitapplication()

85 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 85 Βιβλίο Διευθύνσεων: Class Diagrams (αναλυτικά) AddressBook - collection: Person [ ] or Vector or ArrayList - count: int - file: File - changedsincelastsave: boolean + AddressBook() + getnumberofpersons(): int + addperson(string firstname, String lastname, ) + getfullnameofperson(int index): String + updateperson(int index, String address, String city, String state, ) + removeperson(int index) + sortbyname() + sortbyzip() + printall() + sortbyname() + getfile(): File + gettitle(): String

86 Βιβλίο Διευθύνσεων: Υλοποίηση ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 86 import java.io.*; import java.util.*; public class AddressBook { private Vector collection; private File file; private boolean changedsincelastsave; public AddressBook() { } collection = new Vector(); file = null; changedsincelastsave = false; public int getnumberofpersons() { } return collection.size(); public void addperson(string s, String s1, String s2, String s3, String s4, String s5, String s6) { collection.addelement(new Person(s, s1, s2, s3, s4, s5, s6)); } setchangedsincelastsave(true); public String getfullnameofperson(int i) { Person person = (Person)collection.elementAt(i); return person.getfirstname() + " " + person.getlastname(); } public void updateperson(int i, String s, String s1, String s2, String s3, String s4) { (Person)collection.elementAt(i)).update(s, s1, s2, s3, s4); } setchangedsincelastsave(true);

87 Βιβλίο Διευθύνσεων: Υλοποίηση ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 87 public class Person { private String firstname; private String lastname; private String address; private String city; private String state; private String zip; private String phone; public Person(String s, String s1, String s2, String s3, String s4, String s5, String s6) { firstname = s; lastname = s1; address = s2; city = s3; state = s4; zip = s5; phone = s6; } public String getfirstname() { } return firstname; public String getaddress() { } return address; public void update(string s, String s1, String s2, String s3, String s4) { } address = s; city = s1; state = s2; zip = s3; phone = s4; }

88 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 88 Διαγράμματα Ανάπτυξης (deployment diagrams) Παρουσιάζει πως θα αναπτυχθεί/εγκατασταθεί το λογισμικό στον πελάτη/οργανισμό. Παρουσιάζει και το υλικό (hardware), π.χ., εξυπηρετητές. Οι κόμβοι παρουσιάζονται σαν κουτιά Τα τεχνουργήματα (artifacts) που υπάρχουν σε κάθε κόμβο παρουσιάζονται σαν ορθογώνια μέσα στα κουτιά Οι κόμβοι μπορούν να έχουν υπο-κόμβους Δύο είδη κόμβων: Κόμβος Συσκευής (Device Node) Κόμβος Περιβάλλον Εκτέλεσης (Execution Environment Node) Desktop Computer File Interface

89 Βιβλίο Διευθύνσεων: Deployment Diagram ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 89 Desktop Computer File System File Interface Operating System

90 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 90 Παράδειγμα: Βιβλίο Διευθύνσεων Επόμενη Φάση 4: Συντήρηση

91 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 91 Φάση 4: Συντήρηση Η φάση της συντήρησης ή εξέλιξης του κώδικα: Διόρθωση σφαλμάτων. Αλλαγές στον κώδικα με βάση την εμπειρία χρήσης του. Πρόσθεση νέων λειτουργιών. Καλύτερη ικανοποίηση των απαιτήσεων.

92 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 92 Βιβλίο Διευθύνσεων: Συντήρηση/Εξέλιξη Το use case Print Entries τυπώνει τα ονόματα στο System.out. Διαφορετικά θα μπορούσε να γράφει σε αρχείο. Το πρόγραμμα μπορεί να διαχειρίζεται πολλαπλά βιβλία διευθύνσεων. Αυτό συμπεριλαμβάνει τις εξής αλλαγές: Το use case Create New Address Book και Open Existing Address Book Use Cases δεν θα κλείνουν το τρέχον address book. Αντίθετα θα δημιουργούν ένα καινούριο αντίγραφο του GUI και θα το διαχειρίζονται ξεχωριστά. Θα δημιουργηθεί ένα καινούριο use case (Close Address Book) το οποίο θα εκτελείται όταν κλείνει ένα address book αντί του use case Quit Program.

93 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 93 Σύνοψη για την UML: Unified Modelling Language

94 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 94 UML: Unified Modelling Language Τυποποιημένη γλώσσα μοντελοποίησης γενικού σκοπού στο πεδίου της αντικειμενοστρεφή ανάπτυξης λογισμικού (objectoriented software engineering). Δημιουργήθηκε από το Object Management Group το 1997 Η UML περιλαμβάνει ένα σύνολο από διαγραμματικές τεχνικές αναπαράστασης για να δημιουργήσει visual models

95 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 95 Κατηγορίες Διαγραμμάτων UML UML 2.2: 14 διαγράμματα Δύο βασικές κατηγορίες διαγραμμάτων: Διαγράμματα Δομής (structure diagrams) Δίνουν έμφαση στο τι πρέπει να είναι παρόν στο σύστημα που μοντελοποιείται, δηλ., την αρχιτεκτονική του. Διαγράμματα Συμπεριφοράς (behavior diagrams) Δίνουν έμφαση στο τι πρέπει να γίνει στο σύστημα που μοντελοποιείται, δηλ., την λειτουργικότητά του

96 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 96 Διαγράμματα Δομής (structure diagrams) Class diagram: περιγράφει τη δομή του συστήματος με κλάσεις, χαρακτηριστικά και σχέσεις. Component diagram: περιγράφει πως ένα σύστημα είναι διαχωρισμένο σε συστατικά (components) και τις εξαρτήσεις μεταξύ αυτών. Composite structure diagram: περιγράφει την εσωτερική δομή μίας κλάσης και τις συνεργασίες που επιτυγχάνει. Deployment diagram: περιγράφει το υλικό (hardware) που χρησιμοποιεί το σύστημα και τα περιβάλλοντα εκτέλεσης που αναπτύσσονται σε αυτό. Object diagram: περιγράφει μία πλήρης ή μερική όψη της δομής του συστήματος σε κάποιο συγκεκριμένο χρόνο. Package diagram: περιγράφει πως το σύστημα είναι διαχωρισμένο σε λογικές κατηγορίες και ποιες είναι οι εξαρτήσεις μεταξύ τους. Profile diagram: καθορίζει στερεότυπα τα οποία επιτρέπουν την προσαρμογή του μοντέλου σε διαφορετικές πλατφόρμες (π.χ., J2EE ή.net) ή διαφορετικά πεδία domains (π.χ., real-time or business modeling).

97 Διαγράμματα Συμπεριφοράς (behavior diagrams) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 97 Activity diagram: περιγράφει ροές εργασίας (workflows) και ροές ελέγχου (flow of control) σε ένα σύστημα. State machine diagram: περιγράφει καταστάσεις και μεταβάσεις του συστήματος. Use Case Diagram: περιγράφει τη λειτουργικότητα του συστήματος με ρόλους/χρήστες και λειτουργίες. Communication diagram: περιγράφει την επικοινωνία μεταξύ αντικειμένων με μηνύματα. Είναι συνδυασμός Class, Sequence, and Use Case Diagrams. Interaction overview diagram: κάθε κόμβος είναι ένα communication diagram. Sequence diagram: Παρόμοιο με communication diagram με τη διαφορά ότι κάθε αντικείμενο παρουσιάζει και το χρόνο ζωής του. Timing diagrams: περιγράφει χρονικούς περιορισμούς.

98 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 98 UML: Τι έχουμε μάθει; Use Case diagram Class Analysis diagram State machine diagram Sequence diagram Class diagram Detailed Class diagram Deployment diagram

99 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 99 UML Παραδείγματα Κατανόηση των UML διαγραμμάτων Κατανόηση συσχετίσεων Παραδείγματα Κατοικίδια ζώα και Ιδιοκτήτες Οργάνωση σκληρών δίσκων Τραπεζικό σύστημα Σύστημα κεντρικής θέρμανσης Σύστημα εκτύπωσης

100 UML Example Veterinary System Try to read & understand UML diagram 1 or more Pets associated with 1 PetOwner

101 UML Example Computer System Try to read & understand UML diagram

102 UML Example Computer System Try to read & understand UML diagram 1 CPU associated with 0 or more Controllers 1-4 DiskDrives associated with 1 SCSIController SCSIController is a (specialized) Controller

103 UML Example Banking System 1 Bank associated with 0 or more Accounts Checking, Savings, MoneyMarket are Accounts

104 UML Example Home Heating System Each Thermostat associated with 1 Room Each Thermostat associated with 0 or more Heaters ElectricHeater is a specialized Heater AubeTH101D is a specialized Thermostat

105 UML Class Diagrams & Java Διαφορετική αναπαράσταση της ίδιας πληροφορίας Name, state, behavior of class Relationship(s) between classes Χρειάζεται εξάσκηση έτσι ώστε να μπορούμε να μετατρέπουμε το ένα στο άλλο και να αναπαριστούμε με ακρίβεια τα μοντέλα

106 UML & Java : Veterinary System UML Java class Pet { PetOwner myowner; // 1 owner for each pet } class PetOwner { Pet [ ] mypets; // multiple pets for each owner }

107 UML & Java : Veterinary System Java class Pet { PetOwner myowner; // 1 owner for each pet } class PetOwner { Pet [ ] mypets; // multiple pets for each owner } UML

108 UML & Java : Computer System UML Java class Controller { } class SCSIController extends Controller { } κληρονόμος Μητρική Κλάση

109 UML & Java : Computer System UML Java Design code using all available information in UML

110 UML & Java : Computer System Java class CPU { Controller [ ] myctlrs; } class Controller { CPU mycpu; } class SCSIController extends Controller { DiskDrive [ ] mydrives = new DiskDrive[4]; } Class DiskDrive { SCSIController myscsi; }

111 Java & UML : Printing System Java class Registry { PrintQueue findqueue(); } class PrintQueue { List printjobs; states Printer myprinter; Registry myregistry; void newjob(); int length(); Resources getresource(); } behavior

112 Java & UML : Printing System Java Class Printer { Resources myresources; Job curjob; void print(); boolean busy(); boolean on(); } class Job { Job(Registry r) { } }

113 Java & UML : Printing System

114 UML Σύνοψη Γλώσσα γραφικών μοντελοποιήσεων (Μόνο??) Γραφική απεικόνιση των σχεδιαγραμμάτων του συστήματος Εστιάσουμε περισσότερο στα διαγράμματα κλάσεων Περιεχόμενα της κλάσης Συσχετίσεις μεταξύ των κλάσεων Πρέπει να είστε σε θέση να: Σχεδιάζετε τα UML διαγράμματα από τον κώδικα Java Γράφετε τον κώδικα Java από το UML διάγραμμα

Διάλεξη 11: Αντικειμενοστρεφής Σχεδιασμός ΙII

Διάλεξη 11: Αντικειμενοστρεφής Σχεδιασμός ΙII Διάλεξη 11: Αντικειμενοστρεφής Σχεδιασμός ΙII Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Παράδειγμα Διαδικασίας Ανάπτυξης Λογισμικού: Βιβλίο Διευθύνσεων(συν.) - Φάση 3: Υλοποίηση(αναλυτικά

Διαβάστε περισσότερα

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

Διάλεξη 10: Αντικειμενοστρεφής Σχεδιασμός ΙI. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 10: Αντικειμενοστρεφής Σχεδιασμός ΙI Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Παράδειγμα Διαδικασίας Ανάπτυξης Λογισμικού: Βιβλίο Διευθύνσεων - Φάση 2: Σχεδίαση(Κάρτες CRC, διαγράμματα

Διαβάστε περισσότερα

Διάλεξη 8-9: Αντικειμενοστρεφής Σχεδιασμός Ι

Διάλεξη 8-9: Αντικειμενοστρεφής Σχεδιασμός Ι Διάλεξη 8-9: Αντικειμενοστρεφής Σχεδιασμός Ι Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διαδικασίες Ανάπτυξης Λογισμικού, Μοντέλα -Παράδειγμα Διαδικασίας Ανάπτυξης Λογισμικού: Βιβλίο Διευθύνσεων

Διαβάστε περισσότερα

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

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο 09 Η γλώσσα UML I Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Εαρινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Unified Modeling Language

Διαβάστε περισσότερα

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

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο 08 Η γλώσσα UML I Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Unified Modeling Language

Διαβάστε περισσότερα

Διάγραμμα Κλάσεων. Class Diagram

Διάγραμμα Κλάσεων. Class Diagram Διάγραμμα Κλάσεων Class Diagram Γενικά Ορίζει τις κλάσεις αντικειμένων σε ένα σύστημα, τις μεθόδους και τις συναρτήσεις τους, και τις συσχετίσεις μεταξύ των κλάσεων. Περιγράφουν την δομή και συμπεριφορά

Διαβάστε περισσότερα

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

09 Η γλώσσα UML II. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο 09 Η γλώσσα UML II Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Μοντελοποίηση συμπεριφοράς

Διαβάστε περισσότερα

Ανάλυση Πληροφοριακών Συστημάτων. «Βασικές Έννοιες Αντικειμενοστρεφούς Προγραμματισμού Διαγράμματα κλάσεων» Βασίλειος Καρακόιδας

Ανάλυση Πληροφοριακών Συστημάτων. «Βασικές Έννοιες Αντικειμενοστρεφούς Προγραμματισμού Διαγράμματα κλάσεων» Βασίλειος Καρακόιδας Ανάλυση Πληροφοριακών Συστημάτων «Βασικές Έννοιες Αντικειμενοστρεφούς Προγραμματισμού Διαγράμματα κλάσεων» Βασίλειος Καρακόιδας 7 12 2005 Περιεχόμενα Παρουσίασης Βασικές Έννοιες Αντικειμενοστραφούς προγραμματισμού

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Τεχνολογία Λογισμικού 8ο Εξάμηνο 2018 19 Unified Modeling Language II Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Μοντελοποίηση δομής Διαγράμματα κλάσεων Class diagrams

Διαβάστε περισσότερα

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

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο - ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάννα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ: Στουγιάννου

Διαβάστε περισσότερα

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

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 6 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάννα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ: Στουγιάννου

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Η Αντικειμενοστρεφής Τεχνολογία Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 202-203 Περιεχόμενο του μαθήματος Η έννοια

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ανάλυση Περιπτώσεων Χρήσης Ανάλυση Περιπτώσεων Χρήσης ανάλυση απαιτήσεων ü Διαγράμματα Δραστηριότητας. Επιχειρησιακή μοντελοποίηση και ροή εργασιών σε περιπτώσεις χρήσης ü Μοντελοποίηση Πεδίου. Δημιουργία διαγραμμάτων κλάσεων για

Διαβάστε περισσότερα

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

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Απαιτήσεις Λογισμικού Περιπτώσεις χρήσης Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Περιεχόμενο του μαθήματος

Διαβάστε περισσότερα

UML: Unified modelling language

UML: Unified modelling language UML: Διαγράμματα UML: Unified modelling language Γλώσσα μοντελοποίησης για ανάλυση και σχεδιασμό Παρέχει το συμβολισμό για ανάλυση και σχεδιασμό. Είναι γλώσσα συμβολισμού. Δεν είναι ολόκληρη μεθοδολογία.

Διαβάστε περισσότερα

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

Διαγράμματα Κλάσεων στη Σχεδίαση Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν

Διαβάστε περισσότερα

Μέθοδοι. Υποσυστήµατα και πακέτα. Μοντέλα αντικειµενοστραφούς σχεδίασης. Αντικειµενοστραφής Σχεδίαση. Στα πρώτα στάδια της ανάλυσης

Μέθοδοι. Υποσυστήµατα και πακέτα. Μοντέλα αντικειµενοστραφούς σχεδίασης. Αντικειµενοστραφής Σχεδίαση. Στα πρώτα στάδια της ανάλυσης Αντικειµενοστραφής Σχεδίαση Αντώνης Καραγεώργος Τµήµα Μηχανικών Η/Υ και ικτύων Πανεπιστήµιο Θεσσαλίας karageorgos@inf.uth.gr Μέθοδοι Στα πρώτα στάδια της γράφουµε µόνο τα ονόµατα των µεθόδων Γράφουµε τις

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 8 ο & 9 ο Εργαστήριο - ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 8 ο & 9 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάνα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ:

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 15: Σχεδίαση Εφαρμογών Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία 1 Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στην αντικειµενοστρεφή τεχνολογία ρ. Πάνος Φιτσιλής Περιεχόµενα Γιατί µοντελοποιούµε Εισαγωγή στη UML Ένα απλό παράδειγµα 2 Γιατί µοντελοποιούµε; Ησηµασία της µοντελοποίησης

Διαβάστε περισσότερα

ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων

ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ Οι Μηχανικοί Λογισμικού παράγουν μοντέλα που βοηθούν στη διατύπωση των απαιτήσεων με τη μορφή προδιαγραφών. Η εργασία της παραγωγής μοντέλων περιγράφεται ως ανάλυση απαιτήσεων. Η ανάλυση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Σχεδιασμός Βάσεων Δεδομένων

Σχεδιασμός Βάσεων Δεδομένων Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σχεδιασμός Βάσεων Δεδομένων Εργαστήριο 1 Δρ. Βασιλική Κούφη Περιεχόμενα 1. Εισαγωγή 2. Κύκλος ζωής ανάπτυξης Βάσεως Δεδομένων 3. Oracle SQL Developer Data

Διαβάστε περισσότερα

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

Τα διαγράµµατα κλάσεων 1 Ελληνικό Ανοικτό Πανεπιστήµιο Τα διαγράµµατα κλάσεων ρ. Πάνος Φιτσιλής 2 Περιεχόµενα Βασικές έννοιες µοντέλου κλάσεων Βασικές συσχετίσεις Παραδείγµατα 3 ιαγράµµατα κλάσεων (class diagrams) Είναι το βασικότερο

Διαβάστε περισσότερα

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

Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές Ελληνικό Ανοικτό Πανεπιστήμιο ΓΤΠ61 Πληροφορική Πολυμέσα Αγγελική Μαζαράκη Τι είναι η UML Είναι μια γραφική γλώσσα μοντελοποίησης συστημάτων.

Διαβάστε περισσότερα

Διαχείριση Πληροφοριακών Συστημάτων

Διαχείριση Πληροφοριακών Συστημάτων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Διαχείριση Πληροφοριακών Συστημάτων Ενότητα #7: UML Χρήστος Δρόσος Τμήμα Μηχανικών Αυτοματισμού Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Διαγράμματα Αλληλεπίδρασης. Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας Διαγράμματα Αλληλεπίδρασης Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας 1 Διαγράμματα αλληλεπίδρασης Απεικονίζουν την αλληλεπίδραση των αντικειμένων μέσω μηνυμάτων Η ανάθεση αρμοδιοτήτων περιλαμβάνει

Διαβάστε περισσότερα

Από τη UML στον Κώδικα. Μέρος Α

Από τη UML στον Κώδικα. Μέρος Α Από τη UML στον Κώδικα Μέρος Α περιεχόμενα παρουσίασης Κλάσεις Ισότητα αντικειμένων Μονόδρομες συσχετίσεις με πολλαπλότητα «ένα» Μονόδρομες συσχετίσεις με πολλαπλότητα «πολλά» Συλλογές από το σχέδιο στον

Διαβάστε περισσότερα

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

Κεφάλαιο 2ο. Κατανοώντας την αντικειμενοστρέφεια Περιεχόμενα Πρόλογος... 11 Κεφάλαιο 1ο. Εισαγωγή στη γλώσσα UML 1.1 Προσθέτοντας μια νέα μέθοδο...13 1.2 Πως αναπτύχθηκε η UML...14 1.3 Κατανοώντας την UML...15 1.4 Αναγνωρίζοντας τα επί μέρους τμήματα

Διαβάστε περισσότερα

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

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 7: Εισαγωγή στη UML Τι είναι η UML; 2 Βασικό πρόβλημα τεχνολογίας λογισμικού Έλλειψη κοινά αποδεκτής «γλώσσας» για την έκφραση των σχεδίων λογισμικού. Το

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13 Wrapper Classes, Abstract Classes and Interfaces Διάλεξη #13: Μεταβλητές/μέθοδοι κλάσης, αφηρημένες κλάσεις και διαπροσωπείες Μεταβλητές /πεδία κλάσης [class variables] Τα αντικείμενα ανήκουν σε κλάσεις

Διαβάστε περισσότερα

POINTERS, AGGREGATION, COMPOSITION

POINTERS, AGGREGATION, COMPOSITION POINTERS, AGGREGATION, COMPOSITION POINTERS TO OBJECTS Η κλάση mystring class mystring private: char *s; int size; public: mystring(const char *); ~mystring(); char *GetString(); int GetSize(); ; mystring::mystring(const

Διαβάστε περισσότερα

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 Use Cases: μια σύντομη εισαγωγή Heavily based on UML & the UP by Arlow and Neustadt, Addison Wesley, 2002 (γενικές εισαγωγικές ιδέες) ΣΥΛΛΟΓΗ ΑΠΑΙΤΗΣΕΩΝ 2 Ανάλυση απαιτήσεων Λειτουργικές απαιτήσεις: τι

Διαβάστε περισσότερα

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

Οι περιπτώσεις χρήσης 1 Ελληνικό Ανοικτό Πανεπιστήµιο Οι περιπτώσεις χρήσης ρ. Πάνος Φιτσιλής 2 Περιεχόµενα Το µοντέλο των περιπτώσεων χρήσης Τα διαγράµµατα των περιπτώσεων χρήσης Λεκτική περιγραφή των περιπτώσεων χρήσης Τρόπος

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 6: Αφαιρετικότητα, Βιβλιοθήκες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αφαιρετικότητα -Βιβλιοθήκες (packages) Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός

Διαβάστε περισσότερα

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 Μ6. Φάσεις ανάπτυξης λογισμικού: προδιαγραφές, σχεδίαση, υλοποίηση, επαλήθευση, τεκμηρίωση, συντήρηση προγραμμάτων Δρ. Γεώργιος Παπαλάμπρου Επικ.

Διαβάστε περισσότερα

Η γλώσσα μοντελοποίησης UML. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Η γλώσσα μοντελοποίησης UML. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Η γλώσσα μοντελοποίησης UML 1 Περιεχόμενα Διαγράμματα περιπτώσεων χρήσης Διαγράμματα ακολουθίας Διαγράμματα συνεργασίας Διαγράμματα καταστάσεων Διαγράμματα κλάσεων 2 Περιπτώσεις χρήσης Οι περιπτώσεις χρήσης

Διαβάστε περισσότερα

Διάλεξη 13: Επανάληψη για ενδιάμεση εξέταση. Διδάσκων: Παναγιώτης Ανδρέου. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός

Διάλεξη 13: Επανάληψη για ενδιάμεση εξέταση. Διδάσκων: Παναγιώτης Ανδρέου. ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 13: Επανάληψη για ενδιάμεση εξέταση Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός 1 Προγράμματα Τα προγράμματα (software), είναι βασικά ένα σύνολο από οδηγίες στον υπολογιστή.

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

Διαβάστε περισσότερα

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 Μ6. Φάσεις ανάπτυξης λογισμικού: προδιαγραφές, σχεδίαση, υλοποίηση, επαλήθευση, τεκμηρίωση, συντήρηση προγραμμάτων Δρ. Γεώργιος Παπαλάμπρου Επικ.

Διαβάστε περισσότερα

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

Μέθοδοι μοντελοποίησης Μέθοδοι μοντελοποίησης Ευθύμιος Ταμπούρης tambouris@uom.gr Περιεχόμενα Ο ρόλος των μοντέλων Διαγράμματα Δραστηριοτήτων Διαγράμματα Περιπτώσεων Χρήσης Διαγράμματα Κλάσεων Διαγράμματα Ακολουθίας Διαγράμματα

Διαβάστε περισσότερα

Εισαγωγή στη UML. Περιεχόμενα. Γενικά χαρακτηριστικά. Στοιχεία μοντέλων. Συσχετίσεις. Διαγράμματα. Παραδείγματα. Γλώσσες Προδιαγραφής 1

Εισαγωγή στη UML. Περιεχόμενα. Γενικά χαρακτηριστικά. Στοιχεία μοντέλων. Συσχετίσεις. Διαγράμματα. Παραδείγματα. Γλώσσες Προδιαγραφής 1 Εισαγωγή στη UML Γλώσσες Προδιαγραφής 1 Περιεχόμενα Γενικά χαρακτηριστικά Στοιχεία μοντέλων Συσχετίσεις Διαγράμματα Παραδείγματα Γλώσσες Προδιαγραφής 2 Τι είναι μοντέλο? Αποτελεί µια αφηρηµένη περιγραφή

Διαβάστε περισσότερα

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα ΕΙΣΑΓΩΓΗ ΣΤΗ UML UML Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις ιαγράµµατα Παραδείγματα Ορισμός του μοντέλου Αποτελεί µια αφηρηµένη περιγραφή ενός Φυσικού συστήµατος. Αποτελεί ένα σχέδιο για την

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Περιπτώσεις Χρήσης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Περιπτώσεις Χρήσης Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

1 η ΑΣΚΗΣΗ ΕΡΓΑΣΤΗΡΙΟΥ (ομαδική: 2 ή 3 ατόμων) (Ημερομηνία Παράδοσης: 18/11/2017) (Ζητούμενο)

1 η ΑΣΚΗΣΗ ΕΡΓΑΣΤΗΡΙΟΥ (ομαδική: 2 ή 3 ατόμων) (Ημερομηνία Παράδοσης: 18/11/2017) (Ζητούμενο) 1 η ΑΣΚΗΣΗ ΕΡΓΑΣΤΗΡΙΟΥ (ομαδική: 2 ή 3 ατόμων) (Ημερομηνία Παράδοσης: 18/11/2017) (Ζητούμενο) Η εταιρία «ΧΥΖ» ειδικεύεται στην πώληση βιβλίων και CDs και επιθυμεί να δημιουργήσει ένα ηλεκτρονικό κατάστημα

Διαβάστε περισσότερα

Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων

Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων Διαγράμματα UML στην Ανάλυση Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων περιεχόμενα παρουσίασης Διαγράμματα κλάσεων Διαγράμματα αντικειμένων διαγράμματα κλάσεων Χρησιμοποιούνται στην ανάλυση

Διαβάστε περισσότερα

Μοντελοποίηση Συστημάτων. Διαγράμματα Κλάσεων ClassDiagrams

Μοντελοποίηση Συστημάτων. Διαγράμματα Κλάσεων ClassDiagrams Μοντελοποίηση Συστημάτων Διαγράμματα Κλάσεων ClassDiagrams Διαγράμματα Κλάσεων Χρησιμοποιούνται στα βήματα: Ανάλυση απαιτήσεων Π.Σ. Σχεδιασμός Π.Σ. Είναι στατικά διαγράμματα που δείχνουν: Κλάσεις Ιδιότητες

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΓΙΑ ΧΡΗΣΗ ΤΟΥ ΕΡΓΑΛΕΙΟΥ RATIONAL ROSE

ΟΔΗΓΙΕΣ ΓΙΑ ΧΡΗΣΗ ΤΟΥ ΕΡΓΑΛΕΙΟΥ RATIONAL ROSE ΟΔΗΓΙΕΣ ΓΙΑ ΧΡΗΣΗ ΤΟΥ ΕΡΓΑΛΕΙΟΥ RATIONAL ROSE Το path που ακολουθούμε για να ανοίξουμε το εργαλείο είναι: Start All Programs Lab Programs Rational Software Rational Rose Enterprise Edition 1 ο ΔΙΑΓΡΑΜΜΑ:

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Περιεχόμενα. ΚΕΦΑΛΑΙΟ 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

Διαβάστε περισσότερα

Εισαγωγή στη γλώσσα UML

Εισαγωγή στη γλώσσα UML Κεφάλαιο 1 o Εισαγωγή στη γλώσσα UML 1.1 Προσθέτοντας μια νέα μέθοδο Στις πρώτες εποχές των υπολογιστών, οι προγραμματιστές συνήθιζαν να περιορίζονται στην ανάλυση σε βάθος των προβλημάτων που αντιμετώπιζαν.

Διαβάστε περισσότερα

Θεωρίες Μάθησης και Εκπαιδευτικό Λογισμικό

Θεωρίες Μάθησης και Εκπαιδευτικό Λογισμικό ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Θεωρίες Μάθησης και Εκπαιδευτικό Λογισμικό Ενότητα 9: Αρχιτεκτονική Λογισμικού, Όψεις Αρχιτεκτονικής Λογισμικού, Διαγράμματα UML Σταύρος

Διαβάστε περισσότερα

Μοντελοποίηση Πεδίου

Μοντελοποίηση Πεδίου Μοντελοποίηση Πεδίου περιεχόμενα παρουσίασης Εννοιολογικές κλάσεις Συσχετίσεις εννοιολογικών κλάσεων Τύποι ιδιοτήτων Γενίκευση Συχνά σφάλματα μοντελοποίησης πεδίου Εννοιολογικές κλάσεις και κλάσεις λογισμικού

Διαβάστε περισσότερα

Αντικειμενοστρεφής Σχεδιασμός

Αντικειμενοστρεφής Σχεδιασμός Αντικειμενοστρεφής Σχεδιασμός Μ. Δικαιάκος Πανεπιστήμιο Κύπρου Μεθοδολογία Μεθοδολογία (ή μέθοδος):σύνολο από διαδικασίες και ευρετικές προσεγγίσεις που αποσκοπούν στην απλούστευση ενός προγραμματιστικού

Διαβάστε περισσότερα

Διάλεξη 03: Εννοιολογική Σχεδίαση Βάσης Δεδομένων I (Entity Relationship Modelling) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 03: Εννοιολογική Σχεδίαση Βάσης Δεδομένων I (Entity Relationship Modelling) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 03: Εννοιολογική Σχεδίαση Βάσης Δεδομένων I (Entity Relationship Modelling) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: Μεθοδολογία Ανάπτυξης Βάσεων Δεδομένων

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Αντικείμενα μέσα σε αντικείμενα Ορίζουμε κλάσεις για να ορίσουμε τύπους δεδομένων τους οποίους χρειαζόμαστε Π.χ., ο τύπος δεδομένων Date

Διαβάστε περισσότερα

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

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής περιεχόμενα παρουσίασης Διαγράμματα πακέτων Διαγράμματα συστατικών Διαγράμματα παράταξης Το μοντέλο των 4+1 όψεων τεκμηρίωση αρχιτεκτονικής και UML

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

Διαβάστε περισσότερα

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

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:

Διαβάστε περισσότερα

περιεχόμενα παρουσίασης

περιεχόμενα παρουσίασης Ανάλυση Απαιτήσεων περιεχόμενα παρουσίασης Δημιουργία μοντέλου Προσεγγίσεις Μοντελοποίησης Μοντελοποίηση δεδομένων Διαγράμματα ροής δεδομένων Μη διαγραμματικά μοντέλα ανάλυσης Διαγράμματα δραστηριότητας

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων class Person { private String name; public Person(String name){ this.name = name; public String getname(){ return name; class Car { private

Διαβάστε περισσότερα

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

Φροντιστήριο 5. Ημερομηνία: 01/12/2006 Θεματική Ενότητα: Μοντελοποίηση Συμπεριφοράς Θέμα: Διαγράμματα αλληλεπίδρασης και καταστάσεων Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Φθινόπωρο 2006 ΗΥ351: Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Φροντιστήριο 5 Ημερομηνία: 01/12/2006 Θεματική

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 3/12/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Physical Diagrams Διαγράμματα Υλοποίησης Διαγράμματα UML Διάγραμμα

Διαβάστε περισσότερα

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

Περιπτώσεις Χρήσης και Διαγράµµατα Περιπτώσεων Χρήσης. Use Cases and Use Case Diagrams Περιπτώσεις Χρήσης και Διαγράµµατα Περιπτώσεων Χρήσης Use Cases and Use Case Diagrams Τι είναι οι Περιπτώσεις Χρήσης (Use Cases)! Eίναι µια τεχνική αποτύπωσης των λειτουργικών απαιτήσεων ενός συστήµατος!

Διαβάστε περισσότερα

Ελληνικό Ανοικτό Πανεπιστήµιο. Τα διαγράµµατα UML. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Τα διαγράµµατα UML. ρ. Πάνος Φιτσιλής Ελληνικό Ανοικτό Πανεπιστήµιο Τα διαγράµµατα UML ρ. Πάνος Φιτσιλής Περιεχόµενα Σύντοµη περιγραφή των διαγραµµάτων UML Στατική δοµή υναµική δοµή ιαγράµµατα UML - 1 Περιγράφουν τη στατική δοµή του συστήµατος

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 21/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια. Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων 21/11/2016 Τεχνολογία Λογισμικού & Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Ανάλυση Συστημάτων Object Diagrams Διαγράμματα Αντικειμένων

Διαβάστε περισσότερα

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

Διαβάστε περισσότερα

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

ΔΟΜΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΣΥΜΠΕΡΙΦΟΡΑΣ (9) ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΜΕΣΟΛΟΓΓΙ) ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΔΟΜΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΣΥΜΠΕΡΙΦΟΡΑΣ (9) ΓΙΩΡΓΟΣ ΜΟΥΡΚΟΥΣΗΣ Μηχανικός Η/Υ & Πληροφορικής

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Nα κατασκευάσουν πίνακες από δεδομένα. Να κατασκευάσουν συναρτήσεις με πίνακες. Να κάνουν χρήση

Διαβάστε περισσότερα

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

Τμήμα Μηχανικών Η/Υ Τηλεπικοινωνιών & Δικτύων, Περιπτώσεις Χρήσης (Προδιαγραφές Απαιτήσεων) Ιδέα του Jacobson ( 92, OOSE) μηχανισμός ανακάλυψης και καταγραφής των λειτουργικών απαιτήσεων ιστορίες χρήσης του συστήματος εργαλείο ανάλυσης ακόμη και σε

Διαβάστε περισσότερα

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?

Διαβάστε περισσότερα

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

Μοντελοποίηση ροών εργασίας Μοντελοποίηση ροών εργασίας ΕΣΔΔ Σειρά 22 η Ενότητα 4 Περιεχόμενα Διαδικασία Μοντελοποίηση Διαδικασιών Τεχνικές Μοντελοποίησης Διαδικασιών Εργαλεία Μοντελοποίησης Διαδικασιών Business Process Model and

Διαβάστε περισσότερα

PDF created with pdffactory Pro trial version www.pdffactory.com

PDF created with pdffactory Pro trial version www.pdffactory.com Περιπτώσεις Χρήσης (Use Cases)- Γενικά Περίπτωση χρήσης: ένα σύνολο διαδοχικών ενεργειών (που μπορεί να περιλαμβάνει και εναλλακτικές ενέργειες) το οποίο οδηγεί σε ένα χρήσιμο αποτέλεσμαγιαέναν χειριστή

Διαβάστε περισσότερα

Η γλώσσα μοντελοποίησης UML. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 7

Η γλώσσα μοντελοποίησης UML. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 7 Η γλώσσα μοντελοποίησης UML 1 Περιεχόμενα Διαγράμματα περιπτώσεων χρήσης Διαγράμματα ακολουθίας Διαγράμματα συνεργασίας Διαγράμματα καταστάσεων Διαγράμματα κλάσεων 2 Περιπτώσεις χρήσης Οι περιπτώσεις χρήσης

Διαβάστε περισσότερα

Αρχιτεκτονική Λογισμικού

Αρχιτεκτονική Λογισμικού Αρχιτεκτονική Λογισμικού περιεχόμενα παρουσίασης Τι είναι η αρχιτεκτονική λογισμικού Αρχιτεκτονική και απαιτήσεις Σενάρια ποιότητας Βήματα αρχιτεκτονικής σχεδίασης Αρχιτεκτονικά πρότυπα Διαστρωματωμένη

Διαβάστε περισσότερα

Management School School Profile Save

Management School School Profile Save School School Profile Ο School Manager μπορεί να δει και να επεξεργαστεί γενικές πληροφορίες για το σχολείο που ανήκει και διαχειρίζεται. Από το κεντρικό μενού Management School School Profile. Η σελίδα

Διαβάστε περισσότερα

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου Αντικειμενοστρέφεια Henri Matisse, Harmony in Red, 1908 Κωστής Σαγώνας Νίκος Παπασπύρου Ορισμοί αντικειμενοστρέφειας Ποιοι είναι οι ορισμοί των παρακάτω; Αντικειμενοστρεφής

Διαβάστε περισσότερα

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

Διαβάστε περισσότερα

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

Διαβάστε περισσότερα

SIMATIC MANAGER SIMATIC MANAGER

SIMATIC MANAGER SIMATIC MANAGER 1 Προγραμματισμός του PLC. 1. Γενικά Μια προσεκτική ματιά σε μια εγκατάσταση που θέλουμε να αυτοματοποιήσουμε, μας δείχνει ότι αυτή αποτελείται από επιμέρους τμήματα τα οποία είναι συνδεδεμένα μεταξύ τους

Διαβάστε περισσότερα

Ανάλυση Πληροφοριακών Συστημάτων. Εαρινό Εξάμηνο Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

Ανάλυση Πληροφοριακών Συστημάτων. Εαρινό Εξάμηνο Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Ανάλυση Πληροφοριακών Συστημάτων Εαρινό Εξάμηνο 2018-2019 Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Διαγράμματα Κλάσεων Τα βασικά στοιχεία Διαλέξεις παρουσιάσεις Το υλικό του μαθήματος στηρίζεται

Διαβάστε περισσότερα

Μοντελοποίηση Συστημάτων

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

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

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

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java

Διαβάστε περισσότερα

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12 Διάγραμμα κλάσεων [Class diagram] Διάλεξη #12: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism] Database Music Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή

Διαβάστε περισσότερα

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

Διαβάστε περισσότερα

Wrapper Classes, Abstract Classes and Interfaces

Wrapper Classes, Abstract Classes and Interfaces Wrapper Classes, Abstract Classes and Interfaces Εβδοµάδα 3: Κλάσεις συσκευαστές, αφηρηµένες κλάσεις και διαπροσωπείες Αντικείµενα και µη-αντικείµενα Η Java παρέχει τύπους αντικειµένων και απλούς τύπους

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Generic Types Τα Generics έχουν προστεθεί στη JAVA από το 2004 ως μέρος του J2SE 5.0 Με τη χρήση

Διαβάστε περισσότερα

Τεχνολογία λογισμικού στην πράξη

Τεχνολογία λογισμικού στην πράξη Τεχνολογία λογισμικού στην πράξη Μοντέλα και μέθοδοι τεχνολογίας λογισμικού Διομήδης Σπινέλλης Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας Οικονομικό Πανεπιστήμιο Αθηνών dds@aueb.gr http://www.dmst.aueb.gr/dds

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ ΥΛΟΠΟΙΗΣΗ ΣΤΟΙΧΕΙΩΝ ΑΝΑΛΥΣΗΣ UML ΜΕ JAVA. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ ΥΛΟΠΟΙΗΣΗ ΣΤΟΙΧΕΙΩΝ ΑΝΑΛΥΣΗΣ UML ΜΕ JAVA Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας

Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας ΕΡΓΑΣΙΑ 2 Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας Εισαγωγή Ημερομηνία Ανάρτησης: 16/02/2017 Ημερομηνία Παράδοσης: 06/03/2017,

Διαβάστε περισσότερα