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



Σχετικά έγγραφα
ΟΡΓΑΝΩΣΗ ΕΝΟΤΗΤΩΝ Α ΤΑΞΗΣ ΕΝΟΤΗΤΑ 3

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

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

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΙΚΟ ΣΗΜΕΙΩΜΑ 13 Α' ΜΕΡΟΣ ΑΠΟ ΤΟΝ ΠΟΛΕΜΟ ΤΟΥ 1897 ΣΤΟ ΓΟΥΔΙ

Σε ποιες κατηγορίες μειώνεται η σύνταξη από 1/1/2009 (σε εφαρμογή του Ν.3655/2008)

Υποψήφιοι Σχολικοί Σύμβουλοι

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο

Πρακτικό εργαλείο. για την ταυτοποίηση πρώτου επιπέδου των θυμάτων παράνομης διακίνησης και εμπορίας. τη σεξουαλική εκμετάλλευση

Α. ΟΡΓΑΝΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΕΦΑΡΜΟΓΗΣ

5 η Ενότητα Κουλτούρα και στρατηγική

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

Πρακτικό 6/2012 της συνεδρίασης της Επιτροπής Ποιότητας Ζωής, του Δήμου Λήμνου, της 4ης Μαΐου 2012.

Συσκευή Πεδίου Για Την Μέτρηση Ηλεκτρικής Αγωγιμότητας, Υγρασίας και ph Εδάφους

ΠΟΛΙΤΙΚΉ ΠΑΙΔΕΙΑ. Α Γενικού Λυκείου και ΕΠΑ.Λ. Καζάκου Γεωργία, ΠΕ09 Οικονομολόγος

ΤΟ ΝΕΟ ΑΣΦΑΛΙΣΤΙΚΟ ΤΟΠΙΟ

Όμιλος Λογοτεχνίας. Δράκογλου Αναστασία, Κιννά Πασχαλίνα

Τα χρώματα και η σχέση τους με τα συναισθήματα μας

Το ολοκαύτωμα της Κάσου

ΣΥΝΤΟΝΙΣΤΕΣ ΟΜΑΔΑΣ PROJECT ΑΝΘΡΩΠΙΣΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ: ΟΜΑΔΑ PROJECT ΑΝΘΡΩΠΙΣΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ:

Εσωτερικοί Κανονισμοί Τοπικής Αυτοδιοίκησης

Αυτός που δεν μπορεί να δει τα μικρά πράγματα είναι τυφλός και για τα μεγαλύτερα. (Κομφούκιος, πχ)

ΠΡΟΒΛΗΜΑΤΑ ΤΗΣ ΔΗΜΟΣΙΑΣ ΖΩΗΣ, ΜΙΑ ΨΥΧΑΝΑΛΥΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ

Απομόνωση χλωροφύλλης

«ΑΝΩ ΛΙΟΣΙΑ: ΤΟΠΙΚΗ ΙΣΤΟΡΙΑ, ΠΕΡΙΒΑΛΛΟΝ, ΠΡΟΚΛΗΣΕΙΣ, ΠΡΟΟΠΤΙΚΕΣ»

ΔΙΑΔΟΣΗ ΘΕΡΜΟΤΗΤΑΣ Φυσική Β' Γυμνασίου. Επιμέλεια: Ιωάννης Γιαμνιαδάκης

ΣΥΝΕΝΤΕΥΞΗ ΤΥΠΟΥ. Η ολοκληρωμένη προσέγγιση θα εφαρμοστεί με τα παρακάτω Εργαλεία

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών

Ηλεκτρικό φορτίο Ηλεκτρική δύναμη

ΙΕΘΝΗΣ ΣΥΜΒΑΣΗ ΕΡΓΑΣΙΑΣ 183 «για την αναθεώρηση της (αναθεωρηµένης) σύµβασης για την προστασία της µητρότητας,»

Η υποστήριξη της επαγγελματικής μάθησης μέσα από την έρευνα-δράση: διαδικασίες και αποτελέσματα

289 ον Σύστημα Αεροπροσκόπων Αγίας Φύλας ΟΜΑΔΑ ΠΡΟΣΚΟΠΩΝ ΕΓΧΕΙΡΙΔΙΟ ΧΑΛΚΙΝΟΥ ΤΡΙΦΥΛΛΟΥ

ΕΘΙΜΑ ΤΟΥ ΚΟΣΜΟΥ. Αγγελική Περιστέρη Α 2

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

ΒΑΣΙΚΗ ΕΚΠΑΙΔΕΥΣΗ. Οδηγός Οργάνωσης και Λειτουργίας ΕΚΔΟΣΗ 1.0

Χημεία Β Γυμνασίου Τμήμα Β3. Γρηγόρης Μαγουλάς Φανή Μανούσου Κύρος Μαλλαμίδης Ελίνα Μάλλιαρη Μάγδα Μαντά

Kεντρικός συντονισμός πολιτικών, μόνιμοι υφυπουργοί, μείωση ειδικών συμβούλων, κατάργηση αναπληρωτών.

Πρώτη διδακτική πρόταση Χρωματίζοντας ένα σκίτσο

Ο Ραμύς στο ανάκτορο της Ζάκρου. Εκπαιδευτική περιήγηση στο μινωικό ανάκτορο της Ζάκρου και το Αρχαιολογικό Μουσείο Σητείας

Αξιολόγηση Προγράμματος Αλφαβητισμού στο Γυμνάσιο Τρίτο Έτος Αξιολόγησης

03-00: Βιομάζα για παραγωγή ενέργειας Γενικά ζητήματα εφοδιαστικών αλυσίδων

3o ΓΕΝΙΚΟ ΛΥΚΕΙΟ ΗΡΑΚΛΕΙΟΥ σχολ. Έτος

ΔΙΟΙΚΗΣΗ ΛΕΙΤΟΥΡΓΙΩΝ

ΔΥΟ ΝΕΑ ΕΡΓΑΣΤΗΡΙΑ ΔΥΟ ΝΕΑ ΠΑΙΧΝΙΔΙΑ για τη διδασκαλία της Βιολογίας στο Γυμνάσιο

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

ΣΩΜΑ ΠΡΟΣΚΟΠΩΝ ΚΥΠΡΟΥ

7. ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΕΛΛΗΝΙΚΗΣ ΝΟΗΜΑΤΙΚΗΣ ΓΛΩΣΣΑΣ ΤΗΣ ΠΡΩΤΗΣ ΤΑΞΗΣ ΤΟΥ ΔΗΜΟΤΙΚΟΥ ΣΧΟΛΕΙΟΥ

ΤΑΞΗ: Β ΛΥΚΕΙΟΥ ΜΑΘΗΜΑ: ΕΡΕΥΝΗΤΙΚΗ ΕΡΓΑΣΙΑ ΣΧΟΛ. ΕΤΟΣ Α ΤΕΤΡΑΜΗΝΟ ΥΠΕΥΘΥΝΗ ΚΑΘΗΓΗΤΡΙΑ: ΤΣΙΑΚΑΡΑ ΕΥΑΓΓΕΛΙΑ ΠΕ 01 Ο ΕΘΕΛΟΝΤΙΣΜΟΣ

Πρόγραμμα Σπουδών για το "Νέο Σχολείο"

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

Σύνταγμα, Εργασία και Συναφή Δικαιώματα ( Συνδικαλιστική Ελευθερία, Απεργία )

Πρότυπο Σχέδιο Δράσης για τα Συμβούλια Ένταξης Μεταναστών

ΤΑΞΗ: ΣΤ Δημοτικού ΠΙΘΑΝΟΤΗΤΕΣ

«Ειρήνη» Σημειώσεις για εκπαιδευτικούς

Η Αγορά Ηλεκτρικής Ενέργειας στην Κύπρο έχει οργανωθεί σε τομείς που υπόκεινται στις ακόλουθες ρυθμίσεις:

Συνωμοσία Πυρήνων της Φωτιάς - Πυρήνας Αντάρτικου Πόλης

Η εξέλιξη της επιστηµονικής σκέψης και του πειραµατισµού στην Ελληνιστική

ΠΕΡΙΦΕΡΕΙΑΚΗ ΕΦΟΡΕΙΑ ΑΘΗΝΩΝ. Αθήνα, 19 Ιανουαρίου 2015 Α ΝΑΚΟΙΝΩΣΗ 3/15. ΠΡΟΣ : Όλους τους Βαθμοφόρους της Αθήνας ΚΟΙΝΟΠΟΙΗΣΗ :

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

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

Από τη διδασκαλία της περίληψης στη διδασκαλία της έκθεσης Η διδασκόμενη θεωρία στην πράξη Εισηγήτρια: Μαρία Κάππου

1 Επιμέλεια: Γράβαλος Βασίλειος, Χρυσανθάκης Ιωάννης

Β) Ντάκουλας Κωνσταντίνος Παππάς Βασίλης Πάσχος Αλέξανδρος Τσούκος Ηρακλής. Γ) Γείτονα Ανθή Πάτση Συμέλα Σκινήτης Φίλιππος Χασκή Βασιλική

Τρίτη, 2 Σεπτεμβρίου 2014 Αριθ. Τεύχους: 200 Περιεχόμενα

Κεφάλαιο Πέμπτο Εθνοπολιτισμική Ζωή και Εμπειρίες Ελληνικότητας των Ελληνοαυστραλών Εφήβων

Περιεχόμενα. Εισαγωγή... 7 ΜΕΡΟΣ Α Κεφάλαιο 1. Κεφάλαιο 2. Κεφάλαιο 3. Κεφάλαιο 4. Κεφάλαιο 5. Κεφάλαιο 6. Κεφάλαιο 7. Κεφάλαιο 8.

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

ΠΡΟΛΟΓΟΣ... 9 ΕΙΣΑΓΩΓΙΚΑ ΣΧΟΛΙΑ ΑΝΘΡΩΠΟΙ... 17

Κατερίνα Παναγοπούλου: Δημιουργώντας κοινωνικό κεφάλαιο την εποχή της κρίσης

Αξιολόγηση του Εκπαιδευτικού Έργου. Διαδικασία Αυτοαξιολόγησης στη Σχολική Μονάδα

Οικονομική αξιολόγηση συγκοινωνιακών έργων

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

Βασικά σημεία διάλεξης

Τοποθέτηση Δημάρχου Γ. Πατούλη. για τεχνικό πρόγραμμα 2010

Ένας περίπατος στη Μονή Καισαριανής

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

Σηµειώσεις στο ταξινοµούµε

1. ΕΡΩΤΗΣΗ: Οι ρυθμίσεις του νόμου για το Ασφαλιστικό θα είναι μόνιμες; Οι περικοπές του σταθερές; ΑΠΑΝΤΗΣΗ:

Σκοπός του παιχνιδιού. Περιεχόμενα

ΑΠΑΝΤΗΣΕΙΣ ΣΤΟ ΔΙΑΓΩΝΙΣΜΑ ΝΕΟΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ. Α. Να αποδώσετε την περίληψη του κειμένου ( λέξεις)

Βρήκαμε πολλά φυτά στο δάσος, αλλά και ήλιο, νερό, αέρα, έδαφος!

Σοφία Γιουρούκου, Ψυχολόγος Συνθετική Ψυχοθεραπεύτρια

ΔΕΛΤΙΟ ΤΥΠΟΥ. Ελλείψεις στο φορολογικό νομοσχέδιο. Σοβαρές ελλείψεις στη νέα μορφή του φορολογικού νομοσχεδίου

ΠΕΤΡΟΓΕΝΕΤΙΚΑ ΟΡΥΚΤΑ ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΕΞΕΤΑΣΕΙΣ

Ασυντήρητες και επικίνδυνες οικοδομές

Αξιοποιούμε το χαλκό με γνώμονα τον άνθρωπο

Δρ.ΠΟΛΥΚΑΡΠΟΣ ΕΥΡΙΠΙΔΟΥ

Μαρία-Στεφανία-Γιάννης 1 ο Πρότυπο Πειραματικό Δημοτικό Σχολείο Θεσσαλονίκης Ε2 Π.Τ.Δ.Ε.-Α.Π.Θ

Δράση 1.2. Υλοτομία και προσδιορισμός ποσοτήτων υπολειμμάτων.

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

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

Αναφορικά με το παραπάνω θέμα, σας πληροφορούμε τα εξής:

Σεμινάριο με θέμα : Εθελοντισμός & Δικαιώματα Παιδιού

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

Φώτης Γεωργίου. Καταγωγή μητέρας: Γεωργία

Συνοπτική Παρουσίαση. Ελλάδα

Ευρετήριο πινάκων. Ασκήσεις και υπομνήματα

ΣΥΣΤΗΜΑ ΔΙΑΓΝΩΣΗΣ ΑΝΑΓΚΩΝ ΑΓΟΡΑΣ ΕΡΓΑΣΙΑΣ

Ο αθλητισμός εμπνέεται από την ειρήνη. Η ειρήνη εμπνέεται από τον αθλητισμό.

ΕΡΓΑΣΙΑ ΣΤΗ ΓΕΩΜΕΤΡΙΑ

Ο αναλφαβητισμός ως σύγχρονο πρόβλημα

Transcript:

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

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

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

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

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

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

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

Ανακαλύπτοντας τις κλάσεις Κατηγορίες Κλάσεων: Διαχειριστές πληροφοριών, δεδομένων και καταστάσεων (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) ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 8

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

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

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

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

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

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

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

Βιβλίο Διευθύνσεων: Κάρτες CRC 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 - ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 16

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

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

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

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

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

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

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

Παράδειγμα: 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 ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 24

Βιβλίο Διευθύνσεων: state diagram Start AddressBook Application Display GUI Display: Create New or Open Existing Create New 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, ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 25

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

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

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

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

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

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

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

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

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

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

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

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

Σχέση: Πολλαπλότητα (Multiplicity) Διαγραμματική Αναπαράσταση Κάποιες συσχετίσεις μπορεί να έχουν ποσοτικούς περιορισμούς Η πολλαπλότητα δηλώνει σε πόσα αντικείμενα μπορεί να αναφέρεται η πηγή του αντικειμένου Παράδειγμα: Ένας καθηγητής έχει τουλάχιστον ένα μάθημα Ένα μάθημα έχει ακριβώς ένα καθηγητή Συµβολισµός Επεξήγηση 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 5..15 Five to Fifteen Professor 1 1..* Course ΕΠΛ233: Αντικειμενοστρεφής Προγραμματισμός 38

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

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

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