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

Πληροφορίες

Κωδικός : ΥΠ10

Τύπος : Υποχρεωτικό

Εξάμηνο : 3

Μονάδες ECTS: 6

URL: https://eclass.hua.gr/courses/DIT267/

Αναμενόμενα Αποτελέσματα

Το μάθημα έχει ως στόχο την εμβάθυνση στον σχεδιασμό και την ανάπτυξη εφαρμογών σύμφωνα με το παράδειγμα του αντικειμενοστρεφούς προγραμματισμού. Καλύπτει τις βασικές αρχές και τεχνικές του αντικειμενοστρεφούς σχεδιασμού προγραμμάτων. Παρουσιάζει γνωστά σχεδιαστικά μοτίβα και μελετάει την εφαρμογή τους στον σχεδιασμό γνωστών βιβλιοθηκών λογισμικού. Εφαρμόζει στην πράξη το παράδειγμα του αντικειμενοστρεφούς προγραμματισμού χρησιμοποιώντας την γλώσσα προγραμματισμού Java.

Με το τέλος του μαθήματος, οι φοιτητές θα είναι σε θέση:
- να γνωρίζουν τις βασικές μεθόδους και τεχνικές αντικειμενοστρεφούς προγραμματισμού
- να σχεδιάζουν και να δομούν εφαρμογές με σύνθετα χαρακτηριστικά
- να αναγνωρίζουν και να χρησιμοποιούν σχεδιαστικά μοτίβα
- να εκμεταλλεύονται έτοιμες βιβλιοθήκες και δομές δεδομένων

Περιεχόμενο

- Αντικείμενα, μηνύματα, κλάσεις μέθοδοι, αρχικοποίηση αντικειμένων, στατικές μέθοδοι.
- Αφαίρεση δεδομένων, η σχέση “έχει” και “είναι”, σύνθετα αντικείμενα, ενθυλάκωση, ιδιωτική και δημόσια ορατότητα, κληρονόμηση, διεπαφές, επέκταση διεπαφών, πακέτα κλάσεων.
- Πολυμορφισμός, υπερφόρτωση μεθόδων, υποσκέλιση μεθόδων, αφηρημένες κλάσεις, το μοτίβο της πρότυπης κλάσης, γενικευμένος προγραμματισμός.
- Συλλογές αντικειμένων, μοντελοποίηση στον αντικειμενοστρεφή προγραμματισμό, setters and getters, ισότητα αντικειμένων, σύγκριση αντικειμένων και συγκριτές, το μοτίβο του επαναλήπτη, εσωτερικές κλάσεις.
- Ρεύματα εισόδου-εξόδου, το μοτίβο του διακοσμητή, το μοτίβο του σύνθετου αντικειμένου, ρεύματα χαρακτήρων, το μοτίβο του προσαρμοστή, διαχείριση σφαλμάτων, χειρισμός και ρίψη εξαιρέσεων.
- Καταγραφή γεγονότων, η διεπαφή του καταγραφέα, αποσιώπηση καταγραφής, καταγραφή σε επίπεδα, ιεραρχία καταγραφέων, το μοτίβο της αλυσίδας ευθύνης, κατασκευή καταγραφέων, το μοτίβο του εργαστασίου αντικειμένων, το μοτίβο του μοναδικού αντικειμένου.
- Παράθυρα, θέση παράθυρου, γραφικά στοιχεία, τοποθέτηση στοιχείων, αυτόματη τοποθέτηση, το μοτίβο της στρατηγικής, η βιβλιοθήκη Swing, έτοιμα γραφικά στοιχεία, έτοιμες στρατηγικές τοποθέτησης.
- Προγραμματισμός οδηγούμενος από συμβάντα, είσοδος στις παραθυρικές εφαρμογές, το μοτίβο του παρατηρητή, συμβάντα και ακροατές, οι διεπαφές των ακροατών στην Swing, ανώνυμες κλάσεις, το μοτίβο της εντολής, διαχείριση εντολών, μακροεντολές, αναίρεση εντολών.
- Σχεδιαστικά θέματα παραθυρικών εφαρμογών, διαχωρισμός λειτουργικότητας, το μοτίβο μοντέλο-όψη-ελεγκτής, παραλλαγές, πολλαπλές όψεις και διαμοιρασμός μοντέλου, υλοποίηση του μοτίβου στην Swing.
- Αμυντικός προγραμματισμός, ισχυρισμοί στην Java, δοκιμές μονάδας, JUnit, αντικείμενα σωσίες, προβλήματα ενθυλάκωσης και κληρονόμησης, ανάπτυξη οδηγούμενη από δοκιμές.

Τρόπος Αξιολόγησης

Γραπτή τελική εξέταση 60%
Ομαδικές εργασίες 40%

Βιβλιογραφία

- Java Προγραμματιμός, 10η Έκδοση, Συγγραφείς: Harvey M. ,Paul J. Deitel, ISBN: 978-960-512-6810, Εκδόσεις:Γκιούρδας
- Εισαγωγή στην Java, Συγγραφείς: Γιώργος Λιακές, ISBN: 978-960-461-659-6, Εκδώσεις Κλειδάριθμος
- Java 10η Έκδοση, Συγγραφείς: Liang D.Y., ISBN: 978-960-418-500-9, Εκδόσεις Τζιόλα

- Conference on Object-oriented Programming, Systems, Languages and Applications (OOPSLA)