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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Κληρονομικότητα. Εισαγωγή  Κληρονομικότητα (Inheritance) καλείται ο μηχανισμός με τον οποίο μία νέα κλάση που ονομάζεται παράγωγη (derived class) δημιουργείται.
Advertisements

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Copy Constructor Deep and Shallow Copies.
Δαμιανός Χατζηαντωνίου Οικονομικό Πανεπιστήμιο Αθηνών
Μεθοδολογίες Προγραμματισμού ΙΙ Διάγραμμα Περίπτωσης Χρήσης
POINTERS, AGGREGATION, COMPOSITION. POINTERS TO OBJECTS.
Μεθοδολογίες Προγραμματισμού ΙΙ
Μεθοδολογίες Προγραμματισμού ΙΙ ΣΧΕΔΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟΔΙΟΤΗΤΕΣ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΟΠΑ - Τεχνολογία Λογισμικού - Εμμ. Γιακουμάκης
Μεθοδολογίες Προγραμματισμού ΙΙ Μ Ε Τ Ρ Ι Κ Ε Σ ΑΝΤΚΕΙΜΕΝΟΣΤΡΕΦΟΥΣ ΣΧΕΔΙΑΣΗΣ Ποιότητα Λογισμικού Παναγιώτης Σφέτσος, PhD
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 3: Υλοποίηση μεθόδων.
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήρια Εισηγητής: Σπύρος Αργυρόπουλος Μέλος ΕΤΕΠ Εργαστήριο Προγραμματισμού & Τεχνολογίας Ευφυών Συστημάτων.
Μεθοδολογίες Προγραμματισμού ΙΙ Μ Ε Τ Ρ Ι Κ Ε Σ ΑΝΤΚΕΙΜΕΝΟΣΤΡΕΦΟΥΣ ΣΧΕΔΙΑΣΗΣ Ποιότητα Λογισμικού Παναγιώτης Σφέτσος, PhD
Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος Λογισμικού - ECLIPSE JUNIT – TDD TFD + Refactoring Παναγιώτης Σφέτσος, PhD
Μηχανική Λογισμικού ΙΙ
Example 1   a professor teaches zero, one or many classes and a class is taught by one professor a course may generate zero, one or many classes and a.
Μεθοδολογίες Προγραμματισμού ΙΙ JUNIT - Test First Design
Ε ΝΤΟΠΙΣΜΟΣ Κ ΙΝΟΥΜΕΝΩΝ Α ΝΤΙΚΕΙΜΕΝΩΝ ΠΑΡΟΥΣΙΑΣΗ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΗΣ ΕΡΓΑΣΙΑΣ Βόγκλης Κωνσταντίνος Τσίπουρας Μάρκος.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου.
Μεθοδολογίες Προγραμματισμού ΙΙ Σχεδιαστικά Πρότυπα (1) Παναγιώτης Σφέτσος, PhD
Μεθοδολογίες Προγραμματισμού ΙΙ
Java A Crash Course in (Προσέγγιση μέσω UML)
7.7 Πρωτόκολλο ARP Δίκτυα Υπολογιστών ΙΙ.
Νταλιακούρας Νικόλαος CEID – Πανεπιστήμιο Πατρών Object Oriented Programming II (C++) Χειμερινό Εξάμηνο
Μοντελοποίηση συμπεριφοράς. Συμβάντα - Καταστάσεις - Μεταβάσεις Στην UML για παράσταση συμβάντων και καταστάσεων σε αντικείμενα. Συμβάν Πρόκληση λειτουργίας.
Αντικειμενοστρεφής Προγραμματισμός ΚΛΑΣΕΙΣ ΙΙ. Υπερφόρτωση (Overloading) Όταν το ίδιο όνομα συνάρτησης (μεθόδου) χρησιμοποιείται για περισσότερες από.
Μεθοδολογίες Προγραμματισμού ΙΙ Αναδόμηση Λογισμικού - 2 Software Refactoring - Εφαρμογές Παναγιώτης Σφέτσος, PhD
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό Κλάσεις και αντικείμενα Κλάσεις και αντικείμενα Κατασκευαστές κλάσεων (constructors) Κατασκευαστές κλάσεων.
ΟΠΑ - Τεχνολογία Λογισμικού - Εμμ. Γιακουμάκης
7.9 Δρομολόγηση Δίκτυα Υπολογιστών ΙΙ.
7.8 Πρωτόκολλο DNS Δίκτυα Υπολογιστών ΙΙ.
Περίπτωση χρήσης: Process sale Από την ΠΧ στον κώδικα.
ΜΑΘΗΜΑ: ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Τμ.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό
Συσταδοποίηση IΙ Οι διαφάνειες στηρίζονται στο P.-N. Tan, M.Steinbach, V. Kumar, «Introduction to Data Mining», Addison Wesley, 2006.
ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΠΟΛΥΜΟΡΦΙΣΜΟΣ. ΑΝΑΚΕΦΑΛΑΙΩΣΗ Θεματολόγιο Κληρονομικότητα Παράδειγμα Κληρονομικότητα – Βελτιωμένο Παράδειγμα Ενθυλάκωση : public – private.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Πολυμορφισμός.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies.
Έλεγχος Ονομάτων (Name Control) Για ένα πρόγραμμα που αποτελείται από πολλά τμήματα κάποια από τα οποία έχουν πιθανώς γραφτεί από άλλους προγραμματιστές.
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
1 Κεφάλαιο 2 Εισαγωγή στον αντικειμενοστραφή προγραμματισμό.
Αντικειμενοστραφής Προγραμματισμός Ι
ΜΠΕΜΠΕΤΣΟΣ ΕΥΑΓΓΕΛΟΣ Ph.D.. ΕΡΕΥΝΕΣ ΦΥΣΙΟΛΟΓΙΚΕΣ Ή ΠΑΘΟΓΕΝΕΙΣ ΜΕΘΟΔΟΥΣ ΑΠΩΛΕΙΑΣ ΒΑΡΟΥΣ: Α) ΑΥΤΟΑΠΟΚΑΛΟΥΜΕΝΟΣ ΕΜΕΤΟΣ Β) ΧΡΗΣΗ ΔΙΟΥΡΗΤΙΚΩΝ ΚΑΙ ΚΑΘΑΡΤΙΚΩΝ.
Μεταρρύθμιση Φορολογίας Εισοδήματος. Νέες Κλίμακες Φορολογίας Εισοδήματος Το εισόδημα από μισθούς ( συντάξεις ) και επιχειρηματική δραστηριότητα φορολογείται.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Παράδειγμα Κληρονομικότητας Γενικευμένες κλάσεις.
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Site: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ.
1 State Diagrams. 2 Τα διαγράμματα καταστάσεων (State diagrams) χρησιμοποιούνται: Για να βοηθήσουν στην ανάπτυξη ενός συστήματος Για να βοηθήσουν στην.
Διαγράμματα Πακέτων (Package Diagrams)
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Οντοκεντρικός Προγραμματισμός
Κληρονομικότητα [inheritance]
Software Engineering for Web Applications
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Activity Diagrams.
Βιοκινητική αξιολόγηση αθλητικών ικανοτήτων
Ειδικά Θέματα στον προγραμματισμό Υπολογιστών
Η Νοτιοανατολική Ευρώπη υπό ξένη κυριαρχία
Η Νοτιοανατολική Ευρώπη υπό ξένη κυριαρχία ( )
ΥΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ
ΔΙΑΓΩΝΙΣΜΟΣ ΣΤΗΝ ΤΑΞΗ ΜΟΝΤΕΡΝΑ ΠΟΙΗΣΗ VS ΠΑΡΑΔΟΣΙΑΚΗ ΠΟΙΗΣΗ.
Εφαρμογή Μεθοδολογίας ICONIX
Για να γίνει το γεύμα σας πιο ισορροπημένο...
ΝΈΟ ΟΡΓΑΝΟΓΡΑΜΜΑ (ΙΑΝ14) VS. ΕΓΚΡΙΘΕΝ ΟΡΓΑΝΟΓΡΑΜΜΑ (ΑΥΓ13)
Νοσηλευτική φροντίδα ασθενών που βιώνουν Απώλεια, Θρήνο και Θάνατο
Ζορμπάς – Καζαντζάκης Συναίσθημα – Λογική
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΗΘΙΚΗ Ζ΄ ΕΞΑΜΗΝΟΥ ΜΕΘΟΔΟΛΟΓΙΑ ΤΗΣ ΗΘΙΚΗΣ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Μεταγράφημα παρουσίασης:

Μεθοδολογίες Προγραμματισμού ΙΙ Διαγράμματα Κλάσεων Παναγιώτης Σφέτσος, PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Παραγγελία προϊόντων μέσω καταλόγου (Order) – 1 Για οποιοδήποτε πλήθος: Παραγγελία (Order) από τον Customer Υλοποιείται από τον Employee Πληρώνεται μέσω της PaymentMethod Υλοποιείται μέσω μιας Address που ανήκει σε ένα Customer. - Αποτελείται από OrderItems Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παραγγελία προϊόντων μέσω καταλόγου (Order) – 2 H PaymentMethod έχει τρεις διαφορετικούς τρόπους πληρωμής που μπορεί να χρησιμοποιεί. (Γενίκευση – Κληρονομικότητα) Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Παραγγελία προϊόντων μέσω καταλόγου (Order) – 3 Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

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

Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Στόχοι Προσανατολισμός – Πλοήγηση - 1 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Στόχοι Προσανατολισμός – Πλοήγηση - 2 Η κλάση Register έχει το χαρακτηριστικό currentSale που δείχνει αντικείμενο της Sale. Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Στόχοι Προσανατολισμός – Πλοήγηση - 3 Εξαρτήσεις: H Register ξέρει ένα προϊόν από την Catalog, ενώ η Sale λαμβάνει ένα ProductSpecification στο μήνυμα makeLineItem . Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Στόχοι Δημιουργία μεθόδων από τα Διαγράμματα Αλληλεπίδρασης - 1 Από το διάγραμμα enterItem: Μήνυμα enterItem , καλεί μέθοδο στην κλάση Register Μήνυμα getProductDescription στέλνεται στην ProductCatalog για να πάρουμε ProductDescription Μήνυμα makeLineItem, καλεί μέθοδο στην κλάση Sale Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Στόχοι Δημιουργία μεθόδων από τα Διαγράμματα Αλληλεπίδρασης - 2 Καλούμε την ProductCatalog για ProductDescription, και την makeLineItem για την τρέχουσα πώληση Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Στόχοι Δημιουργία μεθόδων από τα Διαγράμματα Αλληλεπίδρασης - 3 Κλήση στην ProductDescription της ProductCatalog για να πάρουμε ProductDescription Κλήση στην makeLineItem για της Sale Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Στόχοι Δημιουργία μεθόδων από τα Διαγράμματα Αλληλεπίδρασης - 4 Προσέξτε τον δομητή SalesLineItem(). Προέρχεται από το μήνυμα create(desc, qty) στην SalesLineItem από το διάγραμμα Αλληλεπίδρασης enterItem (βλέπε προηγ. διαφάνεια). Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Σύνθεση vs. Συσσωμάτωση Composition - Aggregation Στόχοι Σύνθεση: Το τμήμα (π.χ. Square) πρέπει να ανήκει σε ένα όλο (Board) (δεν υπάρχουν ελεύθερα Squares) Το τμήμα (π.χ. Square) ανήκει μόνο σε ένα όλο (τρέχον Board) Το όλο είναι υπεύθυνο για την δημιουργία και διαγραφή των τμημάτων Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Σύνθεση vs. Συσσωμάτωση Παράδειγμα Στόχοι Συσσωμάτωση: Η Account χρησιμοποιεί την AddressBook, μπορεί να χρησιμοποιηθεί και από άλλες κλάσεις. Σύνθεση: Η AddressBook αποτελείται από τις υποκλάσεις ή εμπεριέχει τις υποκλάσεις : Contact και ContactGroup. Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Κλάσεις στο παράδειγμα ΑΤΜ – 1/4 Στόχοι Κλάσεις στο παράδειγμα ΑΤΜ – 1/4 Ξεχωρίστε τις κλάσεις του Συστή- ματος και επεξηγήστε τις επιλογές… Η κλάση ΑΤΜ χειρίζεται το Startup και Shutdown για αυτό δεν χρειάζονται ξεχωριστά αντικείμενα Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Κλάσεις στο παράδειγμα ΑΤΜ – 2/4 Στόχοι Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Κλάσεις στο παράδειγμα ΑΤΜ – 3/4 Στόχοι Κλάσεις στο παράδειγμα ΑΤΜ – 3/4 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Κλάσεις στο παράδειγμα ΑΤΜ – 4/4 Στόχοι Κλάσεις στο παράδειγμα ΑΤΜ – 4/4 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ class School { Name name; String address; Number phone; void addStudent() {} void removeStudent() {} void getStudent() {} void getAllStudents() {} void addDepartment() {} void removeDepartment() {} void getDepartment() {} void getAllDepartments() {} } class Department { void addInstructor() {} void removeInstructor() {} void getInstructor() {} void getAllInstructors() {} } class Student { Number studentID;} class Course { Number courseID; } class Instructor { Name name;} Στόχοι has 1..* Member * Student composed 1..* has 1..* Department AssignedTo 1..* Instructor assoc 1..* - 1..* Course assoc 0..* - "0..1 chairperson" Instructor assoc * Attends * Course assoc 1..* Teaches * Course Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ