Αντικειµενοστρεφής σχεδίαση

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

Download "Αντικειµενοστρεφής σχεδίαση"

Transcript

1 Αντικειµενοστρεφής σχεδίαση Μετάφραση του κεφαλαίου 6 από το βιβλίο The Essence of Program Design, των Douglas Bell, Ian Morrey, John Pugh, Prentice Hall, Εισαγωγή Ξεκινάµε παρουσιάζοντας τις αρχές του αντικειµενοστρεφούς (O-O) προγραµµατισµού. Εξετάζουµε τα ιδιαίτερα χαρακτηριστικά του και πώς αυτά υποστηρίζονται από τις αντικειµενοστρεφείς γλώσσες προγραµµατισµού. Αργότερα θα δούµε πώς σχεδιάζουµε αντικειµενοστρεφή προγράµµατα. Αν νιώθετε ότι είστε εξοικειωµένοι µε τις έννοιες του αντικειµενοστρεφούς προγραµµατισµού, όπως κλάσεις και κληρονοµικότητα, ίσως θα θέλατε να προσπεράσετε τις πρώτες ενότητες µέχρι να φτάσετε στο «Εισαγωγή στην Αντικειµενοστρεφή Σχεδίαση». 2 Αντικειµενοστρεφείς έννοιες Τα τελευταία χρόνια αρκετές αντικειµενοστρεφείς γλώσσες έχουν διαδοθεί ευρέως. Μπορούν να χωριστούν σε δύο οµάδες αµιγείς Ο-Ο γλώσσες (πχ Smalltalk, Eiffel και Java) και υβριδικές γλώσσες (πχ C++, Objective-C, CLOS και αντικειµενοστρεφείς διάλεκτοι της Pascal). Οι υβριδικές γλώσσες είναι επεκτάσεις παραδοσιακών γλωσσών και συνεπώς υποστηρίζουν το παραδοσιακό, αλλά και το Ο-Ο στιλ προγραµµατισµού, ενώ οι αµιγείς γλώσσες έχουν σχεδιαστεί ειδικά για να υποστηρίζουν την Ο-Ο φιλοσοφία ανάπτυξης. Οι Ο-Ο γλώσσες υποστηρίζουν τις ακόλουθες έννοιες: αντικείµενα και ενθυλάκωση πολυµορφισµό και δυναµική δέσµευση κλάσεις κληρονοµικότητα και υποκλάσεις βιβλιοθήκες κλάσεων Ας τις εξετάσουµε µία-προς-µία. 3 Αντικείµενα και ενθυλάκωση Αντίθετα από τις παραδοσιακές γλώσσες, όπου διαδικασίες και δεδοµένα θεωρούνται σαν ξεχωριστές οντότητες, οι Ο-Ο γλώσσες υιοθετούν την άποψη ότι πρέπει να χρησιµοποιηθεί µία αδιαχώριστη οντότητα, το αντικείµενο, για να ενθυλακώσει τα δεδοµένα και τις διαδικασίες. Τα δεδοµένα που περιέχονται σε ένα αντικείµενο µπορούν να τροποποιηθούν µε τις διαδικασίες (που συνήθως αποκαλούνται µέθοδοι) που είναι µέρος αυτού του αντικειµένου. Στον Ο-Ο προγραµµατισµό, η κλήση µιας µεθόδου συχνά αναφέρεται ως πέρασµα µηνύµατος σε ένα αντικείµενο. Ένα πρόγραµµα αποτελείται από µια συλλογή αντικειµένων τα οποία περνούν µηνύµατα το ένα στο άλλο. Τα αντικείµενα ανταποκρίνονται στα µηνύµατα, παράγοντας και νέα αντικείµενα ως αποτέλεσµα. Κάθε αντικείµενο µπορούµε να το σκεφτούµε σαν ένα µικρό εικονικό επεξεργαστή του οποίου η συµπεριφορά ορίζεται µόνο από το πώς ανταποκρίνεται στη λήψη µηνυµάτων. Ανακεφαλαιώνοντας, ένα Ο-Ο σύστηµα µπορούµε να το φανταστούµε σαν µια συλλογή αντικειµένων που επικοινωνούν (συνεργάζονται) για να επιτύχουν κάποιο αποτέλεσµα. Ας υποθέσουµε, σαν παράδειγµα, ότι θέλουµε να δηµιουργήσουµε ένα αντικείµενο για να αναπαραστήσουµε ένα σηµείο στο δισδιάστατο χώρο. Το αντικείµενο Σηµείο απεικονίζεται στην Εικόνα 1. ύο χα- ΚΑΤΑΣΤΑΣΗ ΛΕΙΤΟΥΡΓΙΕΣ ρακτηριστικά ή ιδιότητες αποτελούν την κατάστασή του - η τετµηµένη x (µε τιµή 100) και η τεταγµένη y (µε τιµή 225). Οι χρήστες επικοινωνούν µε το αντικείµενο στέλνοντας µηνύµατα σε αυτό. Ένα αντικείµενο Σηµείο Τετµηµένη x µπορεί, για παράδειγµα, να ανταποκριθεί σε (ή να υποστηρίζει το πρωτό- getx κολλο για) µηνύµατα που: ανακαλούν την τετµηµένη x 100 setx gety ανακαλούν την τεταγµένη y Τεταγµένη y sety επιστρέφουν ένα νέο σηµείο (y, x) ίσο µε το κατοπτρικό του σηµείου (x, y) που έλαβε το µήνυµα katoptrikoshmeio 225 Τα αντικείµενα υιοθετούν µια θεµελιώδη αρχή για την δόµηση των συστη- µάτων λογισµικού την απόκρυψη πληροφορίας. Η ιδέα πίσω από την απόκρυψη πληροφορίας είναι ότι οι χρήστες ενός αντικειµένου δεν χρειάζεται Μεταβλητές Μέθοδοι (και δεν θα έπρεπε) να έχουν πρόσβαση στην αναπαράστασή του ή στην στιγµιότυπου (κώδικας) υλοποίηση των λειτουργιών του. Είναι χρήσιµο να σκεφτούµε τα αντικείµενα σαν να παρέχουν δύο όψεις του εαυτού τους: µια για τους δυνητικούς Εικόνα 1 χρήστες ή πελάτες του αντικειµένου, και µια άλλη για αυτούς που υλοποιούν το αντικείµενο. Οι χρήστες του αντικειµένου µπορούν να αλλάξουν την κατάστασή του, αλλά µόνο έµµεσα, στέλνοντας ένα µήνυµα στο αντικείµενο. Το µεγαλύτερο πλεονέκτηµα της προσέγγισης αυτής είναι ότι επιτρέπει σε αυτόν που υλοποιεί το αντικείµενο να αλλάζει την αναπαράστασή του κατά τρόπο που να είναι διαφανής στους χρήστες. Οι χρήστες του αντικειµένου δεν χρειάζεται να αντιληφθούν την αλλαγή. Αυτός ο διαχωρισµός της δηµόσιας διεπαφής του αντικειµένου από την εσωτερική υλοποίησή του είναι απαραίτητος για την παραγωγή συντηρήσιµου και επαναχρησιµοποιήσιµου λογισµικού.

2 Αντικειµενοστρεφής σχεδίαση Σελίδα 2 Στο παραπάνω παράδειγµα, δεν θα υπήρχε κανένας αντίκτυπος στους χρήστες αν, για παράδειγµα, τα σηµεία υλοποιούνταν έτσι ώστε η κατάστασή τους να τηρείται σε πολικές (ακτίνα r, γωνία θ), και όχι σε καρτεσιανές (x, y) συντεταγµένες. Σίγουρα, η υλοποίηση της µεθόδου που επιστρέφει την τετµηµένη x ενός σηµείου, πρέπει να αλλάξει, αλλά αυτή η αλλαγή δεν θα επηρεάσει τους χρήστες. Α- κόµα θα στέλνουν το ίδιο µήνυµα για να ανακτήσουν αυτήν την πληροφορία. Ένα Ο-Ο πρόγραµµα δουλεύει µε αντικείµενα τα οποία στέλνουν µηνύµατα σε άλλα αντικείµενα. Όταν ένα αντικείµενο λαµβάνει ένα µήνυµα, προσδιορίζει αν έχει κατάλληλη µέθοδο που να του επιτρέπει να ανταποκριθεί. Ο ορισµός της µεθόδου περιγράφει πώς το αντικείµενο θα αντιδράσει µε τη λήψη του µηνύµατος. Σε µη Ο-Ο ορολογία, θα µιλούσαµε για το σύνολο των λειτουργιών και διαδικασιών που παρέχονται από το αντικείµενο. Έτσι για να ανακεφαλαιώσουµε την ορολογία: Μέθοδος: Συνώνυµο της διαδικασίας ή λειτουργίας. Καλείται όταν ένα µήνυµα λαµβάνεται από ένα αντικείµενο. Πρωτόκολλο: Το σύνολο των µηνυµάτων στα οποία ανταποκρίνεται ένα αντικείµενο. Για να εκτελεστεί µια λειτουργία, µιλάµε για αποστολή ενός µηνύµατος σε ένα αντικείµενο, αντί για την κλήση µιας διαδικασίας. Το αντικείµενο που λαµβάνει το µήνυµα αναφέρεται ως παραλήπτης (ή αποδέκτης). Έτσι, το µήνυµα είσαικόκκινη? µπορεί να σταλεί σε µια µπάλα σε ένα πρόγραµµα βιντεοπαιχνιδιού. Παρά τη νέα ορολογία, το αποτέλεσµα της αποστολής ενός µηνύµατος σε ένα αντικείµενο ταυτίζεται µε µια παραδοσιακή κλήση λειτουργίας, όπου το αντικείµενο που λαµβάνει το µήνυµα θα ήταν µια παράµετρος της λειτουργίας. Το αποτέλεσµα της αποστολής ενός µηνύµατος στο αντικείµενο είναι να καλέσει την κατάλληλη µέθοδο, η ο- ποία µετά επιστρέφει ένα αντικείµενο σαν αποτέλεσµα. Στην περίπτωση του µηνύµατος είσαικόκκινη?, το αποτέλεσµα που επιστρέφεται θα είναι ένα αντικείµενο που µπορεί να τιµή αληθές ή ψευδές. Γενικότερα, τα µηνύµατα αποτελούνται από έναν επιλογέα µέσω του οποίου αναγνωρίζεται η εργασία που απαιτείται από τον παραλήπτη και ένα σύνολο από µηδέν ή παραπάνω παραµέτρους. Για παράδειγµα, για να αλλάξουµε τη θέση µιας µπάλας σε ένα βιντεοπαιχνίδι, πρέπει να παρέχουµε την νέα θέση της µπάλας σαν µέρος του µηνύµατος. Έτσι το αντικείµενο µπάλα1 λαµβάνει ένα µήνυ- µα που αποτελείται από τον επιλογέα άλλαξε και την παράµετρο µιανέα. 4 Πολυµορφισµός και δυναµική δέσµευση Ένα από τα πιο σηµαντικά χαρακτηριστικά του Ο-Ο προγραµµατισµού είναι ότι η ερµηνεία ενός µηνύµατος είναι στα χέρια του παραλήπτη, δηλαδή το ίδιο µήνυµα µπορεί να ερµηνευτεί από διαφορετικούς παραλήπτες µε διαφορετικούς τρόπους. Μέθοδοι που έ- χουν αυτή την ιδιότητα λέγονται πολυµορφικές. Τα µηνύµατα είναι λοιπόν κλήσεις διαδικασίας, µε το πρόσθετο χαρακτηριστικό ότι η πραγµατική διαδικασία που θα ξεκινήσει δεν είναι καθορισµένη µέχρι το µήνυµα να σταλεί σε ένα συγκεκριµένο παραλήπτη. Αυτή η διαδικασία της καθυστέρησης του καθορισµού της πραγµατικής µεθόδου µέχρι το χρόνο εκτέλεσής της, ονοµάζεται δυναµική δέσµευση (dynamic binding) Ένα σηµαντικό πλεονέκτηµα του πολυµορφισµού και της δυναµικής δέσµευσης είναι ότι επιτρέπει την υπερφόρτωση ονοµάτων, δηλαδή το ίδιο όνοµα µπορεί να χρησιµοποιηθεί στο σύστηµα για να δηλώσει µία κοινώς χρησιµοποιούµενη και καλά κατανοητή εργασία. Αυτή η συνέπεια στην ονοµασία των λειτουργιών µειώνει το πλήθος των διαφορετικών ονοµάτων, ειδικά σε µεγάλα συστήµατα. Ας δούµε ακόµα ένα παράδειγµα της χρησιµότητας πολυµορφισµού και δυναµικής δέσµευσης όπου θα συγκρίνουµε την δυναµική δέσµευση µε την στατική που υπάρχει στις παραδοσιακές γλώσσες. Ας θεωρήσουµε µια εφαρµογή που διαχειρίζεται (πχ σχεδιάζει, κλπ) διάφορα είδη γεωµετρικών σχηµάτων, όπως τετράγωνα, τρίγωνα, ορθογώνια και κύκλους. Για να συλλάβουµε την αφηρηµένη έννοια του σχήµατος µε τύπους δεδοµένων σε µια παραδοσιακή γλώσσα, όπως η Pascal, πρέπει να ορίσουµε µια εγγραφή µε µεταβλητό πεδίο (variant) µέσω του οποίου θα διακρίνονται οι διαφορετικοί τύποι σχηµάτων. Στη γλώσσα C, αυτό θα ήταν ένα πεδίο σε µία δοµή (struct) που θα διαχώριζε τους διαφορετικούς τύπους σχηµάτων. Μετά θα υλοποιούσαµε µια λειτουργία προβολής της εγγραφής. Για να αναλύσουµε την υλοποίηση στα συνθετικά της µέρη, θα µπορούσαµε να παρέχουµε διαφορετικές διαδικασίες για κάθε σχήµα. Σε αυτή την περίπτωση, η διαδικασία θα χρησιµοποιούσε κάποιο είδος εντολής πολλαπλής επιλογής (case) για να καθορίσει τον τύπο σχήµατος που εµπλέκεται, ώστε να καλέσει τη σωστή διαδικασία για το συγκεκριµένο σχήµα (δείτε Εικόνα 2). Επειδή η συσχέτιση µεταξύ κάθε διαδικασίας σχετιζόµενης µε ένα σχήµα και του τύπου της παραµέτρου πρέπει να γίνει κατά τη µεταγλώττιση, η σύνδεση των δυο τους ονοµάζεται στατική δέσµευση (static binding). Με τον ίδιο τρόπο θα µπορούσαµε να ορίσουµε λειτουργίες για τη µετακίνηση ή τον υπολογισµό Εικόνα 2 του εµβαδού κάθε σχήµατος. Αυτές οι διαδικασίες θα είχαν την ίδια λογική πολλαπλής επιλογής case µε την παραπάνω διαδικασία προβολής. Σε µία Ο-Ο γλώσσα µε δυναµική δέσµευση, πάλι πρέπει να υλοποιήσουµε µία µέθοδο προβολής για καθένα από τα τρίγωνα, τετράγωνα, ορθογώνια και κύκλους. Ωστόσο, µπορούµε να χρησιµοποιήσουµε το ίδιο όνοµα σε όλες τις περιπτώσεις. Επιπλέον, δεν είναι πια ευθύνη του προγραµµατιστή να καθορίσει την σωστή µέθοδο που πρέπει να κληθεί. Ο προγραµµατιστής µπορεί να στείλει το µήνυµα προβολής σε οποιοδήποτε σχήµα. Ανάλογα µε τον τύπο του σχήµατος, θα εκτελεστεί η σωστή µέθοδος προβολής από το µήνυ- µα του αποστολέα του συστήµατος (δείτε Εικόνα 3).

3 Αντικειµενοστρεφής σχεδίαση Σελίδα 3 Η Ο-Ο λύση είναι καταλληλότερη όταν έχουµε συχνές αλλαγές και επιθυµούµε να επαναχρησιµοποιούµε τον κώδικα. Ας υποθέσουµε ότι θέλουµε να επεκτείνουµε το παράδειγµα µε τα σχήµατα ώστε να συµπεριλάβουµε άλλον ένα τύπο σχήµατος, το πεντάγωνο. Θα θέλαµε να εφοδιάσουµε τα πεντάγωνα µε ό- λες τις λειτουργίες που υποστηρίζονται από τα άλλα σχήµατα. Στην παραδοσιακή λύση, πρέπει να τροποποιήσουµε όλες τις λειτουργίες συµπεριλαµβάνοντας µια περίπτωση στην πολλαπλή επιλογή για το πεντάγωνο. Σε κάθε περίπτωση πρέπει να προστίθεται µια νέα επιλογή. Σε ένα µεγάλο σύστηµα, µε αυτό το σενάριο είναι εύκολο να προκύψουν λάθη. Υπάρχουν πιθανότητες να παραλείψουµε µία ή περισσότερες από τις απαραίτητες αλλαγές. Σε ένα Ο-Ο σύστηµα, οι απαιτούµενες αλλαγές είναι εντοπισµένες στον κώδικα που υλοποιεί το νέο σχήµα, το πεντάγωνο και απλώς υλοποιούµε αυτόν τον κώδικα, χωρίς να Εικόνα 3 αλλάζουµε τίποτε άλλο. Περιληπτικά, οι έννοιες του πολυµορφισµού και της δυναµικής δέσµευσης επιτρέπουν τη χρήση γενικού, επαναχρησιµοποιήσιµου κώδικα. 5 Κλάσεις Μια σηµαντική ικανότητα που έχουµε είναι να οµαδοποιούµε και να κατηγοριοποιούµε. Οι ελέφαντες, οι τίγρεις, οι πολικές αρκούδες, τα άλογα και οι αγελάδες είναι θηλαστικά. Ο µόλυβδος, το ασήµι και ο λευκόχρυσος είναι όλα µέταλλα. Οι τρεχούµενοι λογαριασµοί, οι κλειστές καταθέσεις µε προθεσµία, είναι τύποι τραπεζικών λογαριασµών, κοκ. Μέσω της οµαδοποίησης είµαστε σε θέση να συσχετίζουµε κοινά χαρακτηριστικά σε όλα τα µέλη µιας κλάσης. Όλα τα θηλαστικά είναι σπονδυλωτά (έχουν ραχοκοκαλιά), είναι θερµόαιµα και έχουν τρίχωµα στο σώµα τους. Όλα τα µέταλλα έχουν ατοµικά βάρη και όλοι οι τραπεζικοί λογαριασµοί έχουν υπόλοιπο. Στον Ο-Ο προγραµµατισµό, η κλάση είναι η αφαίρεση που συλλαµβάνει τις ιδιότητες και τις λειτουργίες που είναι κοινές για ένα σύνολο αντικειµένων. Μια κλάση περιγράφει την αναπαράσταση και το πρωτόκολλο µηνυµάτων που ακολουθεί κάθε µέλος της, ή στην ορολογία του Ο-Ο προγραµµατισµού, το στιγµιότυπο της κλάσης. Στις περισσότερες Ο-Ο γλώσσες, κάθε αντικείµενο είναι στιγµιότυπο κάποιας κλάσης. Συνοψίζοντας, η κλάση είναι µια περιγραφή ενός συνόλου αντικειµένων µε παρόµοια χαρακτηριστικά, ιδιότητες και συµπεριφορά. Ένα στιγµιότυπο είναι ένα µεµονωµένο αντικείµενο που περιγράφεται από την κλάση του και είναι µέλος της. Ας εξετάσουµε µια απλή τραπεζική εφαρµογή στην οποία επιθυµούµε να υποστηρίξουµε ένα σύνολο τραπεζικών λογαριασµών και να εφαρµόσουµε κοινές λειτουργίες, όπως ερώτηση υπολοίπου, κατάθεση και ανάληψη. Τα δεδοµένα που συσχετίζονται µε κάθε ξεχωριστό τραπεζικό λογαριασµό θα αποτελούνται από τουλάχιστον έναν αριθµό λογαριασµού, ένα όνοµα λογαριασµού και ένα υπόλοιπο. Η απεικόνιση του αντικειµένου µπορεί να θεωρηθεί ως µια εγγραφή (record) της Pascal, ή ως µια δοµή (struct) της γλώσσας C - µια συλλογή δηλαδή, από ετερογενή στοιχεία ή πεδία. Τα πεδία ενός αντικειµένου αναφέρονται ως µεταβλητές στιγµιότυπου, δεδοµένου ότι θα απαντώνται σε κάθε στιγµιότυπο και θα µπορούν να τροποποιηθούν. Όλοι οι τραπεζικοί λογαριασµοί εποµένως έχουν τρεις µεταβλητές στιγ- µιότυπου: αριθµό λογαριασµού, όνοµα λογαριασµού και υπόλοιπο. Κατά συνέπεια: Μεταβλητή στιγµιότυπου: εδοµένα που είναι συστατικό µέρος ή πεδίο ενός αντικειµένου. Οι λειτουργίες στους τραπεζικούς λογαριασµούς θα µπορούσαν να περιλαµβάνουν αναλήψεις, καταθέσεις, και ερωτήσεις για το υπόλοιπό τους. Συνεπώς ένα αντικείµενο ενθυλακώνει κατάσταση (δεδοµένα) και λειτουργίες. Ωστόσο, δεδοµένου ότι όλα τα στιγµιότυπα µιας κλάσης υποστηρίζουν το ίδιο σύνολο λειτουργιών, οι µέθοδοι ή λειτουργίες µπορούν να συνδεθούν µε την κλάση. Μόνο η κατάσταση ή ιδιωτικές πληροφορίες που σχετίζονται µε ένα συγκεκριµένο αντικείµενο ανήκουν στην µεταβλητή στιγµιότυπου. Ας εξετάσουµε στιγµιότυπα της κλάσης BankAccount. Κάθε στιγµιότυπο έχει τον δικό του αριθµό, όνοµα, και υπόλοιπο. Ε- ντούτοις, οι λειτουργίες για την πραγµατοποίηση καταθέσεων, αναλήψεων και ερωτήσεων υπολοίπου µπορούν να είναι κοινές για όλα τα στιγµιότυπα και να αποθηκεύονται στην κλάση. Όταν ένα µήνυµα στέλνεται σε έναν τραπεζικό λογαριασµό, το σύστηµα ψάχνει για την αντίστοιχη µέθοδο στην κλάση BankAccount. Η Εικόνα 4 επεξηγεί τις κοινές λειτουργίες που συνδέονται µε την κλάση BankAccount και τρία στιγµιότυπα καθένα από τα οποία διατηρεί την δική του κατάσταση. Εικόνα 4 Αυτή η φυσική, σε αντίθεση µε τη λογική, άποψη των κλάσεων και των στιγµιότυπων µας οδηγεί στους ακόλουθους εναλλακτικούς ορισµούς:

4 Αντικειµενοστρεφής σχεδίαση Σελίδα 4 Κλάση: Αποθήκη για µεθόδους (λειτουργίες) που τις µοιράζονται όλα τα στιγµιότυπα (αντικείµενα) που ανήκουν σε εκείνη την κλάση - ένας µηχανισµός κοινοκτηµοσύνης κώδικα. Στιγµιότυπο: Αποθήκη για δεδοµένα που περιγράφουν την κατάσταση ενός συγκεκριµένου µέλους µιας κλάσης. Ας περιγράψουµε την υλοποίηση της κλάσης BankAccount. Μια κλάση αρχίζει µε τη δήλωση του ονόµατος κλάσης. Κατόπιν α- κολουθεί η δήλωση των µεταβλητών που απαιτούνται για οποιοδήποτε στιγµιότυπο της κλάσης. Αυτές είναι: accountnumber, accountname, και balance. Στο τέλος προσδιορίζονται οι µέθοδοι, κάθε µία από τις οποίες διαθέτει ένα όνοµα µεθόδου και τα απαραίτητα ορίσµατα. Αυτές είναι οι openaccount, withdraw, deposit και querybalance. Για να δηµιουργηθεί ένα νέο στιγµιότυπο της κλάσης BankAccount πρέπει να σταλεί ένα µήνυµα στη µέθοδο OpenAccount. Έτσι δηµιουργείται ένα νέο αντικείµενο. Σε αρκετές γλώσσες (συµπεριλαµβανοµένων των Smalltalk, C++ και Java) αυτό επιτυγχάνεται µε τη λέξη new. Στο παράδειγµα, το µήνυµα που στέλνεται στη µέθοδο OpenAccount θα περιλαµβάνει το όνοµα του λογαριασµού, τον αριθµό λογαριασµού και το αρχικό υπόλοιπο ως παραµέτρους. Το σύστηµα θα δηµιουργήσει τα δεδοµένα στιγµιότυπου για το αντικείµενο και θα σηµειώσει σε ποια κλάση ανήκει. Ας δούµε τώρα τη µέθοδο deposit για παράδειγµα. Έχει µια παράµετρο, το χρηµατικό ποσό που πρόκειται να κατατεθεί. Ο ρόλος της µεθόδου είναι να προσθέσει την παράµετρο στο υπάρχον υπόλοιπο του αντικειµένου που αντιπροσωπεύει το συγκεκριµένο λογαριασµό. 6 Κληρονοµικότητα και υποκλάσεις Συχνά σκεφτόµαστε τα αντικείµενα ως εξειδικεύσεις άλλων αντικειµένων. Τα πολύτιµα µέταλλα είναι υποκατηγορία των µετάλλων, τα αγωνιστικά αυτοκίνητα είναι υποκατηγορία των αυτοκινήτων, τα ροµαντικά µυθιστορήµατα είναι υποκατηγορία των βιβλίων, κ.ο.κ. Όλα τα πολύτιµα µέταλλα είναι µέταλλα αλλά όλα τα µέταλλα δεν είναι πολύτιµα. Οµοίως, όλα τα αγωνιστικά αυτοκίνητα είναι αυτοκίνητα και όλα τα ροµαντικά µυθιστορήµατα είναι βιβλία, αλλά το αντίστροφο δεν ισχύει. Επεκτείνοντας αυτή την έννοια, µπορούµε να θεωρήσουµε µια κλάση αντικειµένων ως υποκλάση κάποιας άλλης. Μπορούµε επίσης να µιλήσουµε για µια κλάση που είναι υπέρ-κλάση κάποιας άλλης. Συνοψίζοντας, µπορούµε να δηµιουργήσουµε Πολύγωνο Τραπεζικός ιεραρχίες κλάσεων που να λογαριασµός βασίζονται σε σχέσεις είναι-ένα. Στην Εικόνα 5 οι προθεσµιακοί, τρεχούµενοι Τετράπλευρο Τρίγωνο και αποταµιευτικοί λογαριασµοί είναι όλοι τραπεζικοί λογαριασµοί. Οµοίως, Προθεσµιακός λογαριασµός Τρεχούµενος λογαριασµός Αποταµιευτικός Καταθετικός λογαριασµός στην Εικόνα 5, τα τετρά- Παραλληλόγραµµο πλευρα και τα τρίγωνα είναι πολύγωνα και τα τετράγωνα και τα παραλληλόγραµµα είναι ειδικές περιπτώσεις Τετράγωνο τετραπλεύρων. Επιπλέον, ένα τετράγωνο είναι ειδική Εικόνα 5 περίπτωση ενός ορθογωνίου. Αυτοί οι τύποι διαγραµµάτων ονοµάζονται (για προφανείς λόγους) διαγράµµατα ιεραρχίας κλάσεων. Το διάγραµµα ιεραρχίας κλάσεων είναι ένα δενδρικό διάγραµµα που εµφανίζει ποιες κλάσεις είναι υποκλάσεις άλλων. Είναι απαραίτητο να επιδειχθεί λίγη προσοχή εδώ. Αρχάριοι, µερικές φορές ακόµα και πεπειραµένοι, έχουν την τάση να συγχέουν τη σχέση είναι-ένα µε τη σχέση αποτελείται-από. ύο παραδείγµατα ιεραρχίας αποτελείται-από εµφανίζονται στην Εικόνα 6. Το έµβολο είναι ένα στοιχείο της µηχανής, δεν είναι µια µηχανή. Οµοίως, ένας κύκλος δεν είναι ένα σηµείο. Το έναυσµα για να περιγραφεί ο κύκλος ως υποκλάση του σηµείου µπορεί να είναι ότι ένα σηµείο απαιτείται για το κέντρο του κύκλου. Ωστόσο, µε αυτόν τον συλλογισµό, ο κύκλος θα έ- πρεπε επίσης να κληρονοµήσει και από την κλάση αριθµός, επειδή ένας αριθµός απαιτείται για την ακτίνα του κύκλου. Μηχανή Έµβολο Σηµείο Κύκλος Εξειδίκευση και γενίκευση Εικόνα 6 Τι σηµαίνει ότι µια κλάση είναι µια υποκλάση κάποιας άλλης; ιαισθητικά, εννοούµε ότι η υποκλάση έχει όλα τα χαρακτηριστικά της γενικότερης κλάσης, αλλά την επεκτείνει κατά κάποιο τρόπο. Τα πολύτιµα µέταλλα έχουν όλα τα χαρακτηριστικά των µετάλλων αλλά, επιπλέον, µπορούν να διακριθούν από τα υπόλοιπα µέταλλα µε βάση τη νοµισµατική τους αξία. Οµοίως, τα τετράπλευρα είναι ειδικές περιπτώσεις πολυγώνων µε τέσσερις πλευρές. Τα πολύγωνα µπορούν να έχουν οποιοδήποτε αριθµό πλευρών. Τα τετράγωνα είναι ειδικές περιπτώσεις των τετραπλεύρων όπου και οι τέσσερις πλευρές έχουν ίσο µήκος, και οι προσκείµενες πλευρές είναι κάθετες η µια στην άλλη. Εφαρµόζοντας ανάποδα αυτά τα επιχειρήµατα, µπορούµε να περιγράψουµε την υπέρ-κλάση µιας κλάσης ως γενίκευση της κλάσης.

5 Αντικειµενοστρεφής σχεδίαση Σελίδα 5 Ένας από τους καλύτερους τρόπους να περιγραφεί κάτι καινούργιο σε κάποιον άλλο είναι να περιγραφεί µε όρους κάποιου µε το ο- ποίο είναι παρόµοιο, δηλαδή περιγράφοντας πώς αυτό διαφέρει από κάτι γνωστό. Ένα παράδειγµα είναι ότι η ζέβρα είναι ένα άλογο µε ρίγες! Αυτός ο συνοπτικός ορισµός περιέχει ένα µεγάλο ποσό πληροφοριών σε κάποιον σχετικό µε τα άλογα. Οι αντικειµενοστρεφείς γλώσσες υποστηρίζουν τις έννοιες της εξειδίκευσης και της περιγραφής διαφορών. Οι κλάσεις οργανώνονται ιεραρχικά σε σχέσεις εξειδίκευσης. Όταν µια κλάση είναι µια υποκλάση κάποιας άλλης, θεωρείται δεδοµένο ότι θα κληρονοµήσει την αναπαράσταση και τη συµπεριφορά της υπέρ-κλάσης της. Χάρη στο µοίρασµα που επιτυγχάνεται λόγω κληρονοµικότητας, η νέα κλάση πρέπει να περιγράψει, µόνο, κατά τι διαφέρει από την υπέρ-κλάση. Συνοψίζοντας: Υποκλάση: Κλάση που κληρονοµεί τις µεθόδους και την αναπαράσταση από µια υπάρχουσα κλάση. Υπέρ-κλάση: Κλάση από την οποία µια άλλη κλάση κληρονοµεί αναπαράσταση και µεθόδους. Για να έχουµε µια καλύτερη αίσθηση για τις έννοιες αυτές, θα επεκτείνουµε το τραπεζικό µας παράδειγµα σε µια ιεραρχία κλάσεων τραπεζικών λογαριασµών, όπως ΤραπεζικόςΛογαριασµός φαίνεται στην Εικόνα 7. Για ΑριθµόςΛογ λόγους απλότητας, έχουµε πε- ΥπόλοιποΛογ ριορίσει το πρόβληµα µόνο στα στοιχειώδη. Ας υποθέσουµε ότι όλοι οι τραπεζικοί λογαριασµοί ΠροθεσµιακόςΛογαριασµός ΑποταµιευτικόςΛογαριασµός ΤρεχούµενοςΛογαριασµός ΗµνίαΛήξης έχουν έναν αριθµό λογαριασµού και ένα υπόλοιπο και, ε- πιπλέον, οι προθεσµιακοί λογα- ΠροθεσµιακόςΛογαριασµός ΑποταµιευτικόςΛογαριασµός ΤρεχούµενοςΛογαριασµός ριασµοί έχουν µια ηµεροµηνία ΑριθµόςΛογ: ΑριθµόςΛογ: ΑριθµόςΛογ: λήξης. Η κλάση ΥπόλοιποΛογ: ,0 ΥπόλοιποΛογ: 134,55 ΥπόλοιποΛογ: 16,44 ΤραπεζικόςΛογαριασµός, ε- ΗµνίαΛήξης: 3/4/2006 ποµένως, έχει δύο µεταβλητές στιγµιότυπου, τις ΑριθµόςΛογ Εικόνα 7 και ΥπόλοιποΛογ, και όλες οι τρεις υποκλάσεις κληρονοµούν αυτή την αναπαράσταση, έτσι ώστε όλα τα στιγµιότυπα έχουν τουλάχιστον αυτά τα δύο πεδία. Οι υ- ποκλάσεις ΤρεχούµενοςΛογαριασµός και ΑποταµιευτικόςΛογαριασµός δεν προσθέτουν καµία µεταβλητή επιπλέον. Η κλάση ΠροθεσµιακόςΛογαριασµός, εντούτοις, παρουσιάζει µια επιπλέον µεταβλητή στιγµιότυπου την ΗµνίαΛήξης, δίνοντας στους κλειστούς λογαριασµούς χρονικό όριο. Γενικά, οι υποκλάσεις µπορούν να προσθέσουν καινούργιες µεταβλητές, αλλά δε µπορούν ποτέ να αφαιρέσουν. Ωστόσο, οι υποκλάσεις µπορούν να προσθέσουν µεθόδους µε ίδια ονόµατα για να υπερισχύσουν των µεθόδων που κληρονοµούνται από την υπέρ-κλάση. Όλοι οι τύποι τραπεζικών λογαριασµών υποστηρίζουν λειτουργίες για ερώτηση υπολοίπου ενός λογαριασµού. Εάν η λειτουργία έχει τις πανοµοιότυπες υλοποιήσεις σε κάθε υποκλάση, µπορούµε να υλοποιήσουµε τη λειτουργία µία και µόνο φορά στην κοινή υπέρκλάση ΤραπεζικόςΛογαριασµός και οι τρεις υποκλάσεις θα την κληρονοµήσουν. Άλλες λειτουργίες, όπως η ερώτηση για την προθεσµία ενός λογαριασµού, θα πρέπει να είναι συγκεκριµένες στην κλάση ΠροθεσµιακόςΛογαριασµός. Σε µερικές περιπτώσεις, µια κοινή λειτουργία που ίσως να επιθυµούσαµε να εφαρµόσουµε µία και µόνο φορά σε µία υπέρ-κλάση θα πρέπει να επαναληφθεί στις υποκλάσεις, εάν η υλοποίησή της εξαρτάται από τον συγκεκριµένο τύπο λογαριασµού. Παραδείγµατος χάριν, η λειτουργία της κατάθεσης (τοποθετώ χρήµατα σε λογαριασµό) µπορεί να είναι ΤραπεζικόςΛογαριασµός ανάληψη: ποσόν κοινή για τους τρεχούµενους κατάθεση: ποσόν και τους αποταµιευτικούς λο- ερώτυπολοίπου γαριασµούς, αλλά να απαιτείται διαφορετική υλοποίηση για τους προθεσµιακούς λογαρι- ΠροθεσµιακόςΛογαριασµός ΑποταµιευτικόςΛογαριασµός ΤρεχούµενοςΛογαριασµός ασµούς. Η Εικόνα 8 απεικονίζει ανάληψη: ποσόν ανάληψη: ποσόν - κατάθεση: ποσόν µια σχεδίαση για την τοποθέ- πότελήγει τηση των λειτουργιών µέσα στην ιεραρχία των κλάσεων. Οι Εικόνα 8 λειτουργίες πρέπει να τοποθετούνται όσο το δυνατόν υψηλότερα στην ιεραρχία, έτσι ώστε µπορούν να µοιράζονται σε όσο το δυνατόν περισσότερες υποκλάσεις. Όταν ένα µήνυµα στέλνεται σε ένα αντικείµενο, το σύστηµα κοιτάζει αρχικά για µια µέθοδο µε το ίδιο όνοµα στην κλάση του αντικειµένου. Εάν βρεθεί η µέθοδος, εκτελείται. Ειδάλλως, συνεχίζεται η αναζήτηση στην υπέρ-κλάση κ.ο.κ. Τελικά, θα βρεθεί µια µέθοδος και θα εκτελεσθεί ή θα φτάσουµε στην κορυφή της ιεραρχίας. Τότε ανακοινώνεται λάθος, δεδοµένου ότι δεν υπάρχει καµία µέθοδος που να µπορεί να ανταποκριθεί στο µήνυµα. Για να διευκρινισθεί αυτή η διαδικασία αναζήτησης, µελετήστε το παράδειγµα στην Εικόνα 8 για να προσδιορίσετε ποια µέθοδος εκτελείται πραγµατικά. Ανακεφαλαιώνοντας, µια νέα κλάση µπορεί να διαφοροποιείται από τις υπέρ-κλάσεις της µε διάφορους τρόπους. Ειδικότερα, η νέα κλάση µπορεί να κάνει ένα ή περισσότερα από τα εξής: Να υποστηρίξει πρόσθετες λειτουργίες, πέρα από αυτές που κληρονοµούνται. Να υποστηρίξει νέες υλοποιήσεις λειτουργιών που έτσι και αλλιώς κληρονοµεί. Να υπερκαλύπτει υπάρχουσες λειτουργίες που υποστηρίζονται από την υπέρ-κλάση, αλλά είναι ακατάλληλες για τη νέα κλάση προσθέτοντας µια λειτουργία που σηµατοδοτεί σφάλµα.

6 Αντικειµενοστρεφής σχεδίαση Σελίδα 6 Να περιέχει ένα περιορισµένο υποσύνολο από τις µεταβλητές στιγµιότυπου της κλάσης Να προσθέτει επιπλέον δεδοµένα. Παρατηρήστε ότι σκοπός της εξειδίκευσης και της κληρονοµικότητας που έχουµε περιγράψει είναι, σε αντίθεση µε την δική µας διαισθητική άποψη, ότι µια υποκλάση είναι επέκταση της υπέρ-κλάσης της Θεωρήσαµε ως δεδοµένο ότι µια κλάση µπορεί να κληρονοµήσει µόνο από µια υπέρ-κλάση, οπότε το διάγραµµα ιεραρχίας κλάσεων είναι πάντα ένα δέντρο. Αυτή λέγεται απλή κληρονοµικότητα. Κάποιες γλώσσες, όπως η C++, επιτρέπουν την πολλαπλή κληρονοµικότητα, στην οποία µια κλάση µπορεί να κληρονοµεί από δυο ή περισσότερες υπέρ-κλάσεις. Η πολλαπλή κληρονοµικότητα είναι προφανώς πιο µπερδεµένη, αλλά πιο ευέλικτη. Υπάρχει διαµάχη ανάµεσα στην αντικειµενοστρεφή κοινότητα για το αν η πολλαπλή κληρονοµικότητα είναι επιθυµητή, και µια πρόσφατη γλώσσα, η Java, δεν την υποστηρίζει. Εδώ θα περιορίσουµε την προσοχή µας στην απλή κληρονοµικότητα. 7 Βιβλιοθήκες κλάσεων Οι αντικειµενοστρεφείς βιβλιοθήκες κλάσεων είναι πιο ευέλικτες από τις παραδοσιακές βιβλιοθήκες αριθµητικών και στατιστικών υπορουτινών της FORTRAN ή της C. Οι παραδοσιακές βιβλιοθήκες είναι στατικές µε την έννοια ότι δεν είναι δυνατό να επαναγράφεται ή να επεκτείνεται µια ρουτίνα που δεν λειτουργεί ακριβώς µε τον τρόπο που επιθυµούµε. Αντίθετα, µια Ο-Ο βιβλιοθήκη επιτρέπει προσαρµογή και επέκταση µε τη βοήθεια υποκλάσεων. Για παράδειγµα, η βιβλιοθήκη κλάσεων της Smalltalk περιλαµβάνει περίπου 150 κλάσεις. Αυτό είναι και πλεονέκτηµα, αλλά και µειονέκτηµα. Πλεονέκτηµα είναι γιατί καινούριες εφαρµογές µπορούν να εκµεταλλευτούν αυτή τη βιβλιοθήκη και να αποφύγουµε να «ανακαλύψουµε τον τροχό». Αρχικά όµως, είναι και µειονέκτηµα γιατί ο προγραµµατιστής πρέπει να µάθει το περιεχόµενο της βιβλιοθήκης και να µπορεί να διακρίνει µεταξύ των σχετικών συνόλων κλάσεων που φαινοµενικά παρέχουν σχεδόν την ίδια λειτουργία. Για παράδειγµα, η βιβλιοθήκη κλάσεων της Smalltalk παρέχει πολλά είδη κλάσεων που υλοποιούν συλλογές. Η βιβλιοθήκη κλάσεων της Smalltalk έχει λειτουργήσει ως µοντέλο για πολλές βιβλιοθήκες Ο-Ο γλωσσών. Οι σηµαντικότερες κλάσεις µπορούν να ταξινοµηθούν ως εξής: Βασικές κλάσεις: Object, Boolean, Character, Integer, Float, Fraction, Date, Time, κλπ Κλάσεις συλλογών: Dictionary, Array, String, Symbol, Set, OrderedCollection, SortedCollection, κλπ Κλάσεις Γραφικών: Point, Rectangle, Bitmap, Pen, κλπ. Είναι κλάσεις που παρέχουν πρόσβαση σε υπορουτίνες γραφικών. Κλάσεις γραφικών διεπαφών: Κλάσεις που υποστηρίζουν παράθυρα, παράθυρα διαλόγου, µενού, πλήκτρα, σύνταξη κει- µένου, κλπ Εργαλεία: Κλάσεις που πλοηγούν µέσα στην βιβλιοθήκη κλάσεων, εκτελούν επιθεώρηση αντικειµένων, εκσφαλµάτωση πηγαίου κώδικα, διαχείριση αλλαγών, κλπ Περιληπτικά, οι αντικειµενοστρεφείς γλώσσες ενθαρρύνουν την παραγωγή των επαναχρησιµοποιήσιµων βιβλιοθηκών κλάσεων. Υ- πάρχουσες βιβλιοθήκες υποστηρίζουν βασικούς τύπους δεδοµένων, γραφικά, διεπαφές χρήστη και εργαλεία υποστήριξης προγραµ- µατισµού. Αλλά όλο και περισσότερο εµφανίζονται βιβλιοθήκες για συγκεκριµένους τοµείς εφαρµογών. 8 Περίληψη των εννοιών του αντικειµενοστρεφούς προγραµµατισµού Ο Ο-Ο προγραµµατισµός χαρακτηρίζεται από: Προγραµµατισµός µε αντικείµενα: Τα αντικείµενα έχουν κατάσταση και µπορούν να απαντούν σε ερωτήσεις για τον εαυτό τους. Τα αντικείµενα είναι τύποι δεδοµένων. Ενθυλακώνουν κατάσταση ή αναπαράσταση ενός αντικειµένου µαζί µε λειτουργίες πάνω σε αυτή την κατάσταση και υποστηρίζουν την αρχή της απόκρυψης πληροφορίας. Προγραµµατισµός µε προσοµοίωση: Οι εφαρµογές σχεδιάζονται και υλοποιούνται ως προσοµοίωση του προβλήµατος που επιλύουν. Τα αντικείµενα µοντελοποιούν οντότητες στον πραγµατικό κόσµο. Αυτό το είδος προγραµµατισµού αναφέρεται συχνά ως ανθρωποµορφικός προγραµµατισµός. Πέρασµα µηνυµάτων: Οι µέθοδοι καθορίζουν το πώς ένα αντικείµενο θα ανταποκριθεί σε ένα δοσµένο µήνυµα. Προγραµµατισµός χρησιµοποιώντας πολυµορφισµό: Τα µηνύµατα ερµηνεύονται µε διαφορετικούς τρόπους από διαφορετικούς παραλήπτες. Προγραµµατισµός χρησιµοποιώντας κληρονοµικότητα: Η διαµοίραση του κώδικα επιτυγχάνεται µέσω της κληρονοµικότητας αναπαράστασης και µεθόδων από τη µια κλάση ενός αντικειµένου σε άλλη. Οι νέες κλάσεις καθορίζονται ως εξειδικεύσεις των κλάσεων που υπάρχουν. 9 Εισαγωγή στην αντικειµενοστρεφή σχεδίαση Έχουµε δει ότι ο O-O προγραµµατισµός παρέχει στο σχεδιαστή ένα σύνολο ισχυρών εννοιών και εργαλείων. Ο σχεδιαστής ενός Ο-Ο προγράµµατος είναι να βρει ποιες κλάσεις, αντικείµενα και µέθοδοι απαιτούνται για το πρόγραµµα. Ο σχεδιαστής πρέπει επίσης να µελετήσει πώς καθεµιά από αυτές τις κλάσεις και αντικείµενα χρησιµοποιεί τα υπόλοιπα. Το τελικό προϊόν της σχεδίασης µπορεί να τεκµηριωθεί χρησιµοποιώντας δύο συµβολισµούς: 1. ιαγράµµατα ιεραρχίας κλάσεων, που εµφανίζουν τις κλάσεις στο πρόγραµµα και πώς συσχετίζονται ως υποκλάσεις και υπέρ-κλάσεις. 2. Λίστες CRC (Class-Responsibility-Collaborators), οι οποίες εµφανίζουν για κάθε κλάση τι παρέχει και ποιες άλλες κλάσεις χρησιµοποιεί.

7 Αντικειµενοστρεφής σχεδίαση Σελίδα 7 Η Ο-Ο σχεδίαση και προγραµµατισµός µπορεί να περιγραφτεί ως προγραµµατισµός µε προσοµοίωση. Η αλληγορία βασίζεται στην µεταφορά των φυσικών ή ιδεατών αντικειµένων του πραγµατικού κόσµου σε αντικείµενα του προγράµµατος. Για παράδειγµα, α- ντικείµενα είναι οι πελάτες σε µια επιχείρηση, τα τρόφιµα σε µια υπεραγορά, ή τα διάφορα ανταλλακτικά σε ένα εργοστάσιο. Προσπαθούµε να ενσαρκώσουµε τα αντικείµενα από το πρόβληµα σε υπολογιστικά µοντέλα, δίνοντας στα αντικείµενα στο πρόγραµµά µας τα ίδια χαρακτηριστικά και δυνατότητες που έχουν στον πραγµατικό κόσµο. Κατά συνέπεια χτίζουµε ένα µοντέλο ή µια προσο- µοίωση του προβλήµατος που θέλουµε να λύσουµε. Όταν τα αντικείµενα της υλοποίησης έχουν άµεση αντιστοίχιση µε τα αντικείµενα του προβλήµατος, είναι πιο εύκολο να κατανοήσουµε και να χρησιµοποιήσουµε το λογισµικό. Για να πάρετε µια αίσθηση για το σχεδιασµό µε αντικείµενα, θα δούµε ένα παράδειγµα µε το παιχνίδι στην Εικόνα 9. Εάν προσεγγίσουµε το πρόβληµα χρησιµοποιώντας O-O σχεδίαση, η πρώτη µας έγνοια είναι να προσπαθήσουµε να προσδιορίσουµε τα α- ντικείµενα που περιλαµβάνονται στο πρόβληµα και όχι τις λειτουργίες. Τα ευκολότερα αντικείµενα που µπορούµε να προσδιορίσουµε είναι εκείνα που υπάρχουν σε αντίστοιχη µορφή και στον πραγµατικό κόσµο. Στο παράδειγµα, τα αντικείµενα είναι τα τούβλα, ο τοίχος, οι πλευρές, Εικόνα 9 το κουπί, η µπάλα και το ίδιο το βιντεοπαιχνίδι, όπως φαίνονται στην Εικόνα 10. Τα αντικείµενα έχουν κατάσταση (πληροφορίες) και συµπεριφορά (διαδικασίες). Μια µπάλα µπορεί να αναπαρασταθεί από µια ακτίνα και µια θέση (Εικόνα 11). Ένα κουπί, µια πλευρά ή ένα τούβλο µπορούν να περιγραφούν από τη θέση τους, το πλάτος και το ύψος. Ανάλογα, η κατάσταση ενός παιχνιδιού αποτελείται από µια µπάλα, ένα κουπί, έναν τοίχο τούβλων και τέσσερις πλευρές. Τα αντικείµενα επίσης υποστηρίζουν µια συµπεριφορά λειτουργίες που µπορεί Εικόνα 10 να εφαρµοστούν για να τροποποιήσουν ή να «προβάλουν» τα δεδοµένα τους. Για παράδειγµα, µια µπάλα ανταποκρίνεται στα αιτήµατα να αναφέρει ή να τροποποιήσει τη θέση της. Οµοίως, µια µπάλα µπορεί να ερωτηθεί εάν βρίσκεται πίσω από το κουπί παιχνιδιών ή εάν συγκρούεται µε οποιαδήποτε από τα άλλα στοιχεία του παιχνιδιού. Μπορούµε να εκτελέσουµε παρόµοιες αναλύσεις πάνω στα άλλα αντικείµενα του παιχνιδιού. Σηµαντικό είναι να αναγνωρίσου- µε τις συσχετίσεις µεταξύ των α- ντικειµένων. Στο παράδειγµα µε το παιχνίδι, το κουπί και η µπάλα συσχετίζονται. Όταν το κουπί πετύχει τη µπάλα, η µπάλα θα αλλάξει κατεύθυνση. Παρόµοια είναι και η περίπτωση όταν η µπάλα πετύχει τον τοίχο. Επίσης µπορούµε να αναγνωρίσουµε και συσχετίσεις Videogame Μπάλα Κουπί Πλευρές τοίχος Μπάλα ακτίνα Τούβλο Πλάτος Ύψος Εικόνα 11 Πλευρές Πλάτος Ύψος Κουπί Πλάτος Ύψος του τύπου αποτελείται-από. Τέτοια σχέση υπάρχει µεταξύ των τούβλων και του τοίχου - ο τοίχος είναι κατασκευασµένος από τούβλα. Με αυτό τον τρόπο µπορούµε να σχηµατίσουµε µια εικόνα για το πώς αλληλεπιδρούν τα διάφορα µέρη του παιχνιδιού. Ουσιαστικά, η Ο-Ο σχεδίαση θεωρεί ότι µια εφαρµογή είναι µια συλλογή από συνεργαζόµενα αντικείµενα. Αντί να «ανακαλύπτουµε τα αντικείµενα» στο χώρο του προβλήµατος, συνηθίζεται να «αναζητούµε τις κλάσεις». Οι κλάσεις είναι ο θεµελιώδης µηχανισµός αφαίρεσης στην Ο-Ο σχεδίαση. Αναγνωρίζουν το γεγονός ότι συλλογές από σχετιζόµενα αντικείµενα µοιράζονται κοινά χαρακτηριστικά και συµπεριφορά. Για παράδειγµα, όλα τα τούβλα στον τοίχο του παραδείγµατός µας µε το παιχνίδι παρουσιάζουν την ίδια συµπεριφορά. Το κάθε τούβλο ξεχωριστά ανήκει στην κλάση Τούβλο. Όλα τα ξεχωριστά είδη της κάθε κλάσης ακολουθούν την κοινή δοµή και συµπεριφορά που περιγράφεται από την κλάση. Το κάθε είδος ξεχωριστά διατηρεί τη δική του κατάσταση. Κάθε τούβλο, για παράδειγµα, διατηρεί τη θέση του στον τοίχο.

8 Αντικειµενοστρεφής σχεδίαση Σελίδα 8 10 Σχεδίαση CRC Η µέθοδος Class-Responsibility-Collaborators (CRC Κλάσεις-Ευθύνες-Συνεργάτες) προτάθηκε το Είναι µία τεχνική σχεδίασης που χρησιµοποιείται ως αφετηρία για την O-O σχεδίαση µιας εφαρµογής. Υπάρχουν τρία βασικά βήµατα σε µία CRC σχεδίαση: 1) Βρίσκουµε τις κλάσεις, δηλαδή προσδιορίζουµε τα αντικείµενα που ενέχονται και τις κλάσεις τους. 2) Καθορίζουµε για ποια θέµατα είναι αρµόδιες, δηλαδή τι κάνουν (συµπεριφορά). 3) Καθορίζουµε τους συνεργάτες τους, δηλαδή άλλες κλάσεις που τις χρειάζονται για να φέρουν σε πέρας τις δουλειές τους. Για να τεκµηριωθεί η σχεδίαση και να περιοριστούν οι λεπτοµέρειες που µπορεί να παρουσιαστούν, υπάρχουν λίστες που καταγράφονται πάνω σε CRC φόρµες, οι οποίες συχνά χρησιµοποιούνται για να τεκµηριώσουν κάθε κλάση. Η εµφάνιση µιας CRC φόρµας φαίνεται στην Εικόνα 12. Είναι βέβαια φυσικό να χρησιµοποιείται ένα εργαλείο λογι- Όνοµα κλάσης σµικού για την τήρηση αυτών των λιστών. Για παράδειγµα θα σχεδιάσουµε µε την τεχνική CRC µια αριθµοµηχανή της οποίας η Ευθύνες Συνεργάτες διεπαφή µε το χρήστη φαίνεται στην Εικόνα 13. Θα θέλατε ί- σως να επιχειρήσετε µια δική σας σχεδίαση πριν διαβάσετε παρακάτω. Η περιγραφή για την αριθµο- µηχανή ακολουθεί: Εικόνα 12 Η αριθµοµηχανή αποτελείται από έναν αριθµό πλήκτρων και µία οθόνη. Υπάρχει ένα πλήκτρο για κάθε ψηφίο (από το 0 µέχρι το 9) το οποίο επιτρέπει την εισαγωγή αριθµών που προβάλλονται στην οθόνη. Υπάρχουν πλήκτρα µε τα οποία γίνονται υπολογισµοί πρόσθεση, διαίρεση κλπ. Το αποτέλεσµα της πράξης παρουσιάζεται στην οθόνη. Εικόνα 13 Η αριθµοµηχανή έχει ακόµη ένα µια προσοµοιωνόµενη χαρτοταινία που µπορεί να κινηθεί προς τα πάνω ή προς τα κάτω χρησιµοποιώντας µια ράβδο κύλισης. Ένα πλήκτρο επιτρέπει την εκτύπωση των περιεχοµένων της χαρτοταινίας Βρίσκοντας τις κλάσεις Ο προσδιορισµός των κλάσεων (και των αντικειµένων) είναι το κλειδί για την Ο-Ο σχεδίαση. Μία συνηθισµένη µέθοδος για να προσδιορίσουµε αρχικά τις κλάσεις είναι να εξετάσουµε την προδιαγραφή του προβλήµατος. Μία σχεδίαση φυσιολογικά ξεκινά από έναν σχετικά λεπτοµερή καθορισµό του προβλήµατος. Η προδιαγραφή είναι σηµαντική για κάθε σχεδίαση, αλλά ειδικά για την Ο-Ο σχεδίαση είναι κρίσιµη. ιαβάστε την προδιαγραφή και εντοπίστε τα ουσιαστικά. Τα ουσιαστικά είναι καλοί υποψήφιοι για τα αντικείµενα µέσα στο πρόγραµµα. Η διαδικασία της ονοµασίας των κλάσεων είναι πολύ σηµαντική. Γενικά τα ονόµατα των κλάσεων θα είναι ουσιαστικά και πρέπει να χρησιµοποιούνται όροι του προβλήµατος. εν υπάρχει συγκεκριµένη φόρµουλα για να βρούµε τη σωστή συλλογή των αντικειµένων που µοντελοποιούν το πρόβληµα. Επιπλέον, η πορεία είναι διερευνητική και αναδροµική. Είναι συνηθισµένο σε µια σχεδίαση να προτείνονται κάποιες κλάσεις, αλλά έπειτα να απορρίπτονται, καθώς η σχεδίαση εξελίσσεται. Επίσης, η ανάγκη για κάποιες κλάσεις δεν εµφανίζεται µέχρι τη φάση της υλοποίησης. Το να προσδιορίσει κανείς τις κλάσεις (και τα αντικείµενα) απαιτεί διορατικότητα, γνώση και κατανόηση του προβλήµατος. Στο παράδειγµα µε την αριθµοµηχανή προτείνονται οι κλάσεις Calculator, Display, Button, PrintTape. Είναι σηµαντικό στις αρχικές φάσεις της σχεδίασης να µην προχωρούµε σε πολλές λεπτοµέρειες στην σχεδίαση. Ακόµη δεν είναι η κατάλληλη στιγµή να αρχίσουµε να λαµβάνουµε υπόψη διαφορετικούς τύπους πλήκτρων, πχ πλήκτρα ψηφίων, πλήκτρα πράξεων ή πλήκτρα εκτύπωσης. Αυτό είναι ένα σηµαντικό θέµα, αλλά θα πρέπει να το αντιµετωπίσουµε αργότερα. Οι κλάσεις θα πρέπει να είναι κλάσεις για τους χρήστες. Κλάσεις για τους προγραµµατιστές, όπως στοίβες που τηρούν µερικά αποτελέσµατα των υπολογισµών, ή µία αριθµητική µονάδα για την εκτέλεση υπολογισµών, είναι σαφώς ακατάλληλες σε αυτή τη φάση Καθορίζοντας τις ευθύνες των κλάσεων Το δεύτερο βήµα είναι να καθορίσουµε τι υποτίθεται ότι πρέπει να κάνουν οι κλάσεις, δηλαδή ποια είναι η συµπεριφορά τους. Ο σκοπός είναι να καθορίσουµε το ρόλο και τα καθήκοντα κάθε κλάσης µέσα στο σύστηµα σε µία ή δύο σύντοµες αγγλικές προτάσεις. Ενώ οι κλάσεις είναι ουσιαστικά, οι ευθύνες είναι ρήµατα. Πάλι διαβάζουµε την προδιαγραφή για να τις βρούµε. Για κάθε µία από τις κλάσεις που προσδιορίσαµε νωρίτερα, φτιάχνουµε µια λίστα ενεργειών. Calculator Προβάλει τον εαυτό του µεταβιβάζοντας τα αιτήµατα σε πλήκτρα, οθόνη και χαρτοταινία. Υπολογίζει άθροισµα, γινόµενο, διαφορά κλπ µεταξύ δύο αριθµών. 1 Beck K, Cunnigham W, A laboratory for teaching object-oriented thinking, ACM Sigplan Notices, sel. 1-6, Οκτ

9 Αντικειµενοστρεφής σχεδίαση Σελίδα 9 Προβάλει τα αποτελέσµατα ενός υπολογισµού ζητώντας από την οθόνη να το κάνει. Προβάλει τον υπολογισµό στην χαρτοταινία ζητώντας από την ίδια να το κάνει. Εκτυπώνει τα περιεχόµενα της χαρτοταινίας ζητώντας της να το κάνει. Display Προβάλει οτιδήποτε του ζητηθεί αλλά δε µπορεί να υπολογίσει τίποτα. Button Ενηµερώνει την αριθµοµηχανή κάθε φορά που πιέζεται. ιατηρεί το ψηφίο ή τη λειτουργία που αντιπροσωπεύει. Προβάλει τον εαυτό του. PrintTape Προβάλει οτιδήποτε της ζητηθεί να εµφανίσει πάνω σε µια εξοµοίωση της χαρτοταινίας, η οποία µπορεί να µετακινηθεί προς τα πάνω και προς τα κάτω. Εάν ζητηθεί, εκτυπώνει τα περιεχόµενα της χαρτοταινίας Καθορίζοντας τους συνεργάτες Τέλος, για κάθε κλάση καθορίζουµε τους συνεργάτες, δηλαδή αυτές τις κλάσεις χωρίς των οποίων τη βοήθεια δε θα ήταν δυνατό για την κλάση να ανταποκριθεί στις ευθύνες της. Μια συνεργασία υποδηλώνει µια αµφίδροµη σχέση, αλλά συχνά η σχέση είναι µονόδροµη. Μια κλάση ζητά από µια κλάση-συνεργάτη να εκτελέσει κάποια εργασία. Ο όρος συνεργάτης µπορεί να αντικατασταθεί µε τον όρο βοηθός. Για το πρόγραµµα της αριθµοµηχανής, οι συνεργάτες για κάθε κλάση είναι: Calculator Display, Button, PrintTape Μια αριθµοµηχανή γνωρίζει για την οθόνη, τα πλήκτρα και την χαρτοταινία, καθώς χρειάζεται να είναι ικανή να τους λέει να προβάλλονται. Button Calculator Ένα πλήκτρο θα πρέπει να γνωρίζει την αριθµοµηχανή, καθώς θα πρέπει να λέει στην αριθµοµηχανή ότι έχει πατηθεί. Κάθε πλήκτρο πρέπει επίσης να έχει µια ένδειξη έτσι ώστε να µπορεί να διακρίνεται από τα άλλα πλήκτρα. Η ένδειξη του πλήκτρου θα είναι µια συµβολοσειρά. Display - Η οθόνη δεν έχει συνεργάτες. ουλεύει ανεξάρτητα όταν τροφοδοτείται µε ένα αποτέλεσµα για να το προβάλει. PrintTape Printer Η χαρτοταινία µπορεί να εµφανίσει οποιαδήποτε πληροφορία της ζητηθεί πάνω στην προσοµοίωση χαρτιού, αλλά θα πρέπει να ζητήσει από ένα πραγµατικό εκτυπωτή να εκτυπώσει τα περιεχόµενά της. Ο προσδιορισµός των συνεργατών δίνει µια ιδέα στο πώς επικοινωνούν µεταξύ τους τα αντικείµενα των κλάσεων για να εκτελέσουν κάποια καθήκοντα. Έτσι ξεκινάµε να έχουµε µια αίσθηση για τη ροή µηνυµάτων µεταξύ των αντικειµένων. Μπορούµε ήδη να καταλάβουµε ότι ένα πλήκτρο στέλνει µήνυµα πληροφορώντας την αριθµοµηχανή ότι έχει πιεσθεί και η αριθµοµηχανή πρέπει να στείλει µηνύµατα στην οθόνη και την χαρτοταινία για να προβάλουν κάτι. Η Εικόνα 14 δείχνει µια συµπληρωµένη Κλάση Button φόρµα CRC για την κλάση Button. Μέχρι τώρα έχουµε ολοκληρώσει µία Ο-Ο σχεδίαση για Ευθύνες Συνεργάτες το πρόγραµµα της αριθµοµηχανής. Έχουµε προσδιορίσει Μπορεί να πει στην Αριθµοµηχανή τις υποψήφιες κλάσεις για το πρόγραµµα και έχουµε ένα Αριθµοµηχανή ότι έχει πατηθεί σύνολο από φόρµες CRC που εµφανίζουν τις αλληλεπι- Γνωρίζει ποιο ψηφίο δράσεις µεταξύ των κλάσεων. Αργότερα θα δούµε πώς µπορούµε να βελτιώσουµε τη σχεδίαση. αντιπροσωπεύει Μπορεί να προβάλει τον εαυτό Συνοπτικά, η σχεδίαση CRC εξασφαλίζει χρήσιµες πληροφορίες σχετικά µε τις κλάσεις και τις µεθόδους και α- του ναγνωρίζει πιθανούς τρόπους διάσπασης ενός προβλήµατος. Η σχεδίαση CRC τείνει να είναι µια πολύ επαναληπτική διεργασία. Αναγνωρίζονται οι υποψήφιες κλάσεις. Εικόνα 14 Μετά κάποιες γίνονται δεκτές, ενώ άλλες απορρίπτονται ίσως επειδή δεν έχουν ευθύνες ή επειδή οι ευθύνες τους υπάγονται σε κάποια άλλη κλάση). Οι ευθύνες τείνουν να µεταναστεύουν από τη µια κλάση στην άλλη καθώς κατανοούµε καλύτερα τα αντικείµενα και τον ρόλο τους µέσα στο πρόβληµα.

10 Αντικειµενοστρεφής σχεδίαση Σελίδα Λεπτοµερειακή σχεδίαση Η σχεδίαση CRC είναι µια διερευνητική διαδικασία η οποία µπορεί να αποτελέσει τη βάση µιας Ο-Ο σχεδίασης. Εδώ παρουσιάζουµε τεχνικές που προχωρούν µετά το CRC και επιτρέπουν στο σχεδιαστή να αναλύσει, να διευκρινίσει και να προσδιορίσει περαιτέρω ένα σχεδιασµό. Αυτές οι τεχνικές είναι: Λεπτοµερειακός προσδιορισµός ευθυνών µε περιπτώσεις-χρήσης (use-cases) Προσδιορισµός σχέσεων µεταξύ κλάσεων Οργάνωση κλάσεων σε ιεραρχίες Οµαδοποίηση ευθυνών Αναζήτηση επαναχρησιµοποιήσιµων πλαισίων σχεδίασης Λεπτοµερειακός προσδιορισµός ευθυνών µε περιπτώσεις-χρήσης Η σχεδίαση CRC περιγράφει σε συντοµία τις ευθύνες της κλάσης σε φυσική γλώσσα. Τελικά, αυτές οι ευθύνες πρέπει να αναλυθούν, ώστε να µπορούµε µε ακρίβεια να περιγράψουµε τις υπηρεσίες που προσφέρει κάθε κλάση. Για κάθε κλάση πρέπει να αναγνωρίσου- µε την κατάσταση (δεδοµένα), που τηρείται από κάθε στιγµιότυπο και το πρωτόκολλο των µηνυµάτων στα οποία απαντά η κλάση. Οι περιπτώσεις-χρήσης (use-cases, µερικές φορές λέγονται και εκτελέσιµα σενάρια) είναι ένας απλός µηχανισµός για να µάθουµε περισσότερα για τον τρόπο αλληλεπίδρασης και επικοινωνίας των αντικειµένων. Η ιδέα είναι να διαλέξουµε κάποια αντιπροσωπευτικά παραδείγµατα του τρόπου που θα χρησιµοποιηθεί η εφαρµογή και να ακολουθήσουµε το µονοπάτι των µηνυµάτων πού στέλνονται. Για παράδειγµα, στην αριθµοµηχανή µια περίπτωση-χρήσης µπορεί να είναι ότι ο χρήστης πληκτρολογεί « =». Οι περιπτώσειςχρήσης συλλαµβάνουν την κατάσταση, τη συµπεριφορά και την κυκλοφορία µηνυµάτων στην εφαρµογή. Συγκεκριµένα, συλλαµβάνουν τα αντικείµενα που εµπλέκονται στην περίπτωση-χρήσης, τα σηµαντικότερα µηνύµατα που ανταλλάσσονται ανάµεσα σε αντικείµενα, και τη ροή ελέγχου. Γενικά, οι περιπτώσεις-χρήσης επικεντρώνονται στη συµπεριφορά σε κάποιο επίπεδο αφαίρεσης, δηλαδή δεν αποσκοπούν στην απογραφή όλων των µηνυµάτων. Θα παρακολουθήσουµε την περίπτωση-χρήσης « =» για την αριθµοµηχανή, αγνοώντας την αλληλεπίδραση µε την αριθµοµηχανή. 1. Πρώτα, πάτησε το 1. Το πλήκτρο µε τον αριθµό 1 λέει στην αριθµοµηχανή «το 1 έχει πατηθεί». Η αριθµοµηχανή αποθηκεύει το 1 και λέει στην οθόνη «πρόβαλε τον αριθµό 1». 2. Μετά, πάτησε το 0. Το πλήκτρο µε τον αριθµό 0 λέει στην αριθµοµηχανή «το 0 έχει πατηθεί». Η αριθµοµηχανή αποθηκεύει το 0 επισυνάπτοντάς το στο προηγούµενο ψηφίο, για να πάρουµε τον αριθµό 10 και λέει στην οθόνη «πρόβαλε τον αριθµό 1». 3. Μετά, πάτησε το +. Το πλήκτρο µε το σύµβολο + λέει στην αριθµοµηχανή «το + έχει πατηθεί». Η αριθµοµηχανή αποθηκεύει το + (δεν µπορεί να προσθέσει ακόµη γιατί ο δεύτερος όρος της πρόσθεσης δεν υπάρχει). 4. Μετά, πάτησε το 1. Το πλήκτρο µε τον αριθµό 1 λέει στην αριθµοµηχανή «το 1 έχει πατηθεί». Η αριθµοµηχανή αποθηκεύει το 1 σε µία περιοχή διαφορετική από εκεί που έχει αποθηκευτεί το 10 (προφανώς, χρειαζόµαστε ονόµατα - θα τους ονοµάσουµε όρος1, πράξη και όρος2. Μέχρι τώρα, ο όρος1 είναι το 10, η πράξη είναι το σύµβολο + και ο όρος2 είναι το 1). Μετά η αριθµοµηχανή λέει στην οθόνη «δείξε το 1». 5. Τέλος, πάτησε το =. Το πλήκτρο µε το σύµβολο = λέει στην αριθµοµηχανή «το = έχει πατηθεί». Η αριθµοµηχανή εκτελεί «όρος1 πράξη όρος2», και λέει στην οθόνη «δείξε το αποτέλεσµα». Τι έχουµε µάθει από µια τέτοια περίπτωση-χρήσης; Η κατάσταση που πρέπει να διατηρείται από την αριθµοµηχανή είναι πιο συγκεκριµένη - χρειάζεται να τηρούµε τα όρος1, πράξη, όρος2. Επίσης, αναγνωρίσαµε το πρωτόκολλο για διάφορα αντικείµενα. Για παράδειγµα, η οθόνη της αριθµοµηχανής πρέπει να υποστηρίζει µηνύµατα όπως: display: astring appendtodisplay: astring Επίσης, θα ήταν άκοµψο να αποκρίνεται η αριθµοµηχανή ξεχωριστά σε κάθε ψηφίο, πχ σκεφτείτε 0,1,2 Θα χρειαστεί να αναπτύξουµε ένα γενικό πρωτόκολλο όπου η ετικέτα του κουµπιού που πατήθηκε να περνάει ως κοµµάτι του µηνύµατος: digitbutton: abuttonlabel Η ανάλυση της περίπτωσης-χρήσης συνεχίζεται διαλέγοντας άλλα αντιπροσωπευτικά παραδείγµατα για να εκθέσουµε περισσότερες λεπτοµέρειες της κατάστασης και της συµπεριφοράς των κλάσεων που εµπλέκονται σε µια εφαρµογή. Συνοψίζοντας, οι περιπτώσεις-χρήσης βοηθούν στον προσδιορισµό της κατάστασης και της συµπεριφοράς των κλάσεων σε µία ε- φαρµογή και να δίνουν µια καλύτερη εικόνα για την αλληλεπίδραση των αντικειµένων σε µια εφαρµογή. Προσδιορισµός σχέσεων µεταξύ κλάσεων, οργάνωση κλάσεων σε ιεραρχίες και οµαδοποίηση ευθυνών Αξίζει να επαναλάβουµε ότι ένας από τους βασικούς στόχους του αντικειµενοστρεφούς προγραµµατισµού είναι να παράγει γενικά, επαναχρησιµοποιήσιµα τµήµατα λογισµικού, τα οποία µπορούν να επαναχρησιµοποιηθούν στην εφαρµογή για την οποία κατασκευάστηκαν, αλλά και σε άλλες µελλοντικές εφαρµογές. Οι έννοιες της κληρονοµικότητας και της εξειδίκευσης επιτρέπουν: Νέες κλάσεις να περιγραφούν ως επεκτάσεις ή εξειδικεύσεις κλάσεων που ήδη υπάρχουν. Υποκλάσεις να κληρονοµήσουν τη συµπεριφορά και την κατάσταση των υπέρ-κλάσεων.

11 Αντικειµενοστρεφής σχεδίαση Σελίδα 11 Τα πλεονεκτήµατα της κληρονοµικότητας και της εξειδίκευσης είναι: Στο επίπεδο του σχεδιασµού, σύντοµοι και ξεκάθαροι ορισµοί οι υποκλάσεις περιγράφονται µόνο στα σηµεία που διαφέρουν από τις υπέρ-κλάσεις τους. Στο επίπεδο της υλοποίησης, η επαναχρησιµοποίηση κώδικα, αντί για την αντιγραφή του οι υποκλάσεις επαναχρησιµοποιούν τον υπάρχοντα κώδικα των υπέρ-κλάσεων. Περιγράψαµε τους µηχανισµούς που υλοποιεί αυτές τις έννοιες νωρίτερα. Αυτές οι έννοιες εισάγουν νέες διαστάσεις στη διαδικασία σχεδίασης. Ένας βασικός σχεδιαστικός στόχος είναι η οµαδοποίηση των ευθυνών µέσω µιας ιεραρχίας κλάσεων. Μια ευθύνη της υ- πέρ-κλάσης µπορεί να µοιραστεί σε κάθε υποκλάση της. Για να εξερευνήσουµε αυτές τις ιδέες θα επιστρέψουµε στο παράδειγµα του βιντεοπαιχνιδιού. Μια αρχική σχεδίαση CRC δηµιούργησε την ιεραρχία κλάσεων που φαίνεται στην Εικόνα 15. Αντικείµενο Θα υποθέσουµε ότι έχουµε απλή κληρονοµικότητα (οι υποκλάσεις µπορούν να έχουν µία µόνο υπέρ-κλάση). Υπάρχει η κλάση Αντικείµενο την οποία κληρονοµούν όλες οι υπόλοιπες. Προς το παρόν, οι κλάσεις που συνιστούν το πρόγραµµα του βιντεοπαιχνιδιού είναι απολύτως ανεξάρτητες µεταξύ τους. Θα δούµε σε λίγο πώς µπορούµε να ανακαλύψουµε οµοιότητες µεταξύ κλάσεων και εποµένως κληρονοµικότητα. Βιντεοπαιχνίδι Μπάλα Κουπί Πλευρές Τ ίχ ς Μπάλα Ακτίνα Τούβλο Πλάτος Ύψος Εικόνα 15 Πλευρά Πλάτος Ύψος Κουπί Πλάτος Ύψος Χωρίς καν να σκεφτούµε τα πρωτόκολλα µηνυµάτων, είναι προφανές ότι όλα τα αντικείµενα που απαρτίζουν το παιχνίδι έχουν κάποια θέση και µέγεθος. Γι αυτό ας εισάγουµε µια νέα κλάση, ΣτοιχείοΠαιχνιδιου, η οποία θα χειριστεί αυτές τις ευθύνες για λογαριασµό των υποκλάσεών της. Όµως πρέπει πρώτα να γενικεύσουµε τον ορισµό του µεγέθους η µπάλα έχει ακτίνα αλλά άλλα στοιχεία έχουν πλάτος και ύψος. Γενικεύουµε λοιπόν το µέγεθος ως µια περιοχή έτσι ο ίδιος ορισµός θα χρησιµοποιηθεί για όλα τα στοιχεία. Σηµειώστε ότι η ΣτοιχείοΠαιχνιδιού καλείται αφηρηµένη κλάση. εν θα δηµιουργήσουµε στιγµιότυπα αυτής της κλάσης ο ρόλος της είναι να συλλαµβάνει την αφηρηµένη έννοια της θέσης / µεγέθους. Θα υπάρξουν άλλες ευθύνες οι οποίες θα είναι συγκεκριµένες για κάθε υποκλάση. Μπορούµε να βελτιώσουµε περαιτέρω το σχεδιασµό; Τι άλλες αφαιρέσεις θα ήταν χρήσιµες; Υπάρχουν τουλάχιστο δυο όψεις σε αυτό το ζήτηµα. Μερικά από τα εξαρτήµατα του παιχνιδιού είναι κινούµενα (η µπάλα και το κουπί), ενώ άλλα δεν είναι κινούµενα (τα τούβλα και οι πλευρές). Θα πρέπει να ορίσουµε κλάσεις ΚινούµενοΣτοιχείο και ΑκίνητοΣτοιχείο ; Πώς κρίνουµε εάν αυτές οι κλάσεις είναι χρήσιµες ή όχι; Είναι σαφές ότι εάν λίγες ευθύνες µπορούν να µετατοπιστούν στην καινούργια αφηρηµένη κλάση, τότε δεν έχουµε κερδίσει πολλά. Ίσως υπάρχει µια καλύτερη αφαίρεση. Η τρέχουσα σχεδίαση δεν έχει την έννοια του τοίχου, αλλά εάν κάποιος περιέγραφε το παιχνίδι τότε σίγουρα θα αναφερόταν σε αυτόν. Ας εισάγουµε λοιπόν µια κλάση Τοίχος που αποτελείται από τούβλα. Χωρίς να προχωρούµε σε περισσότερες ΣτοιχείοΠαιχνιδιού εξηγήσεις, προ- σέξτε µια σχεδίαση που αναπαρίσταται στην Εικόνα 16. ΒασικόΑντικείµενοΠαιχνιδιού ΣύνθετοΑντικείµενοΠαιχνιδιού Συνοψίζοντας, όταν επεξεργαζόµαστε µια Ο-Ο σχεδίαση οφείλουµε να προσδιορίζουµε τις σχέσεις µεταξύ των κλάσεων και να κατανέµουµε συ- Μπάλα Τούβλο Κουπί Πλευρά Τοίχος Πλευρέ Εικόνα 16 µπεριφορές στις κλάσεις µέσα σε ένα σχήµα ιεραρχικής οργάνωσης. Σηµαντικές σχέσεις µεταξύ κλάσεων τις οποίες έπρεπε να εντοπίσουµε είναι: Σχέσεις είναι-ένα. Τις χειριζόµαστε µε σχέσεις υπέρ-κλάση / υποκλάση. Για παράδειγµα µπάλες, τούβλα, κουπιά και πλευρές είναι όλα βασικά αντικείµενα του παιχνιδιού. Σχέσεις είναι-παρόµοιο. Αναγνωρίζουµε ότι αντικείµενα όπως µπάλες, τούβλα, κλπ έχουν όλα ιδιότητες, όπως θέση και µέγεθος. Σχέσεις είναι-τµήµα. Το κουπί, η µπάλα και τα τούβλα είναι στοιχεία του βιντεοπαιχνιδιού. Παροµοίως, ο τοίχος αποτελείται από τούβλα. Η κατανόηση των σχέσεων των κλάσεων είναι κρίσιµη ώστε να παραχθεί ποιοτική αντικειµενοστρεφής σχεδίαση.

12 Αντικειµενοστρεφής σχεδίαση Σελίδα 12 Αναζήτηση επαναχρησιµοποιήσιµων πλαισίων σχεδίασης Η επαναχρησιµοποίηση µπορεί να επιτευχθεί µε την χρήση κληρονοµικότητας και αφηρηµένων κλάσεων. Ένας απώτερος σκοπός και πολύ πιο δύσκολος είναι να προσδιορίσουµε επαναχρησιµοποιήσιµα πλαίσια σχεδίασης, δηλαδή υποσυστήµατα συνεργαζόµενων κλάσεων που µπορούν να επαναχρησιµοποιηθούν για συγκεκριµένα πεδία εφαρµογών. Ίσως το παλαιότερο παράδειγµα ενός πλαισίου σχεδίασης είναι η αρχιτεκτονική µοντέλου - όψης - ελεγκτή (Model-View-Controller, MVC) που εισήχθηκε από τη Smalltalk για την υλοποίηση γραφικών διεπαφών (Graphical User Interfaces, GUI). Τα συστατικά της γραφικής διεπαφής διαχωρίζονται στα τρία τµήµατα της αρχιτεκτονικής. Το µοντέλο περιλαµβάνει δεδοµένα, κλάσεις και αντικείµενα για την εφαρµογή, η όψη προβάλει τις πληροφορίες του µοντέλου και ο ελεγκτής χειρίζεται τα συµβάντα του ποντικιού και του πληκτρολογίου. Αυτή η αρχιτεκτονική έχει µερικά αξιοσηµείωτα χαρακτηριστικά. Επιτρέπει πολλαπλές όψεις του ίδιου µοντέλου, καθώς επίσης και την χρησιµοποίηση αυτών σαν µέρη κατασκευής µέσα σε µεγαλύτερα τµήµατα, δηλαδή καινούργια είδη όψεων µπορούν να κατασκευαστούν χρησιµοποιώντας ήδη υπάρχουσες όψεις ως υπό-όψεις. Η βιβλιοθήκη της Smalltalk περιλαµβάνει µια µεγάλη βιβλιοθήκη όψεων και ελεγκτών µε συµπεριφορά σε κείµενο, γραφικά και λίστες για παράδειγµα. Αυτά µπορούν να εξειδικευτούν ακόµα περισσότερο από τους προγραµµατιστές. Η σηµαντική συνεισφορά της αρχιτεκτονικής MVC δεν είναι τα τρία τµήµατά της, αλλά η αλληλεπιδράσεις µεταξύ τους, και η αναγνώριση ότι αυτό το πλαίσιο αλληλεπίδρασης είναι επαναχρησιµοποιήσιµο. Επαναχρησιµοποιήσιµα πλαίσια σχεδίασης προορίζονται για συγκεκριµένα πεδία εφαρµογών, όπως διεπαφές χρήστη, συστήµατα αρχείων και δροµολόγηση διεργασιών. Η αναγνώριση αυτών των οικογενειών συνεργαζοµένων κλάσεων προσθέτει µια άλλη διάσταση - πρόκληση στην διαδικασία σχεδίασης. 12 Η σχεδίαση είναι προγραµµατισµός και ο προγραµµατισµός είναι σχεδίαση Η αντικειµενοστρεφής σχεδίαση είναι επαναληπτική διαδικασία. Σε κάθε επανάληψη, η σχεδίαση εξελίσσεται. Ενώ στην παραδοσιακή ανάπτυξη λογισµικού, σχεδίαση και υλοποίηση θεωρούνται ξεχωριστές κατά βάση δραστηριότητες, στην Ο-Ο µέθοδο οι δύο δραστηριότητες είναι συχνά δυσδιάκριτες. Αυτό συµβαίνει για τρεις κυρίως λόγους: 6. Η πρωτοτυποποίηση είναι ένα αναπόσπαστο κοµµάτι της Ο-Ο σχεδίασης και υλοποίησης. Κατασκευάζουµε πρωτότυπα διότι αναγνωρίζουµε ότι στις περισσότερες περιπτώσεις οι απαιτήσεις για ένα σύστηµα είναι τουλάχιστον ασαφείς ή όχι πλήρως κατανοητές. Είναι µία διερευνητική διαδικασία, µε την οποία ελέγχουµε την εγκυρότητα της ανάλυσης, της σχεδίασης και των επιλογών διεπαφής χρήστη. Η πρωτοτυποποίηση υπαγορεύει ότι η σχεδίαση και η υλοποίηση προχωρούν σε µεγάλα αλυσιδωτά επαναλαµβανόµενα βήµατα. 7. Οι δραστηριότητες που συµβαίνουν κατά τη διάρκεια της βελτίωσης µιας Ο-Ο σχεδίασης είναι παρόµοιες και στη σχεδίαση ενός λειτουργικού πρωτοτύπου. Ακόµη, δραστηριότητες όπως η αναδιοργάνωση της ιεραρχίας κλάσεων συµβαίνουν τόσο κατά την υλοποίηση του πρωτοτύπου, όσο και κατά τη σχεδίαση. 8. Οι σχεδιαστές πρέπει να είναι πολύ πιο ενηµερωµένοι σε ό,τι αφορά το περιβάλλον ανάπτυξης, εξαιτίας των επιπτώσεων που έχουν οι επαναχρησιµοποιηµένες βιβλιοθήκες κλάσεων στη σχεδίαση. Ο Meyer 2 υποστηρίζει ότι σχεδίαση και υλοποίηση είναι στιγµιότυπα της ίδιας δραστηριότητας - του προγραµµατισµού. 13 Μεθοδολογίες αντικειµενοστρεφούς σχεδίασης Στη λογοτεχνία έχουν παρουσιαστεί αρκετές µεθοδολογίες Ο-Ο σχεδίασης, πράγµα που αντανακλά τη σχετική ανωριµότητα της επιστηµονικής αυτής περιοχής σε σύγκριση µε τη δοµηµένη σχεδίαση. Γενικά είναι αποδεκτό ότι ο Ο-Ο προγραµµατισµός είναι πιο κατανοητός από την Ο-Ο σχεδίαση, που µε τη σειρά της είναι καλύτερα κατανοητή από την Ο-Ο ανάλυση που µε τη σειρά της είναι καλύτερα κατανοητή από την Ο-Ο διαχείριση έργου. Προσεγγίσαµε τη σχεδίαση κυρίως µε βάση τη µεθοδολογία που ονοµάζεται οδηγούµενα-από-ευθύνες σχεδίαση (responsibilitydriven design 3 ). Άλλες γνωστές µεθοδολογίες περιλαµβάνουν object-oriented design, HOOP, OOSD. Καθεµιά από τις µεθοδολογίες χρησιµοποιεί (διαφορετική) διαγραµµατική απεικόνιση για να παρουσιάζει την τελική σχεδίαση. 14 Συζήτηση και αξιολόγηση Σε ότι αφορά την επιρροή στους προγραµµατιστές, ο Ο-Ο προγραµµατισµός προβλεπόταν να είναι τη δεκαετία του 1990, αυτό που ήταν ο δοµηµένος προγραµµατισµός στη δεκαετία του Αυτό πράγµατι συνέβη - η Ο-Ο σχεδίαση και προγραµµατισµός αποτελεί την κυρίαρχη προσέγγιση στην σύγχρονη ανάπτυξη λογισµικού. Σε αυτό βοήθησε η κυκλοφορία και ευρεία χρήση γλωσσών προγραµµατισµού που υποστηρίζουν το Ο-Ο στιλ, όπως οι C++, Ada, Smalltalk και Java. Τα ισχυρά σηµεία της Ο-Ο προσέγγισης είναι: η φυσικότητα της µοντελοποίηση της εφαρµογής µε αντικείµενα, κλάσεις και µεθόδους η αρθρωσιµότητα (σε συνδυασµό µε την απόκρυψη πληροφορίας) που προσφέρουν οι κλάσεις η ευκολία επαναχρησιµοποίησης στοιχείων λογισµικού λόγω κληρονοµικότητας Τις τελευταίες δεκαετίες η Ο-Ο µεθοδολογία έχει κυριαρχήσει στη σχεδίαση προγράµµατος και στην ανάπτυξη λογισµικού. 2 Meyer B, Object-Oriented Software construction, Prentice-Hall, Wirfs-Brock R J and Johnson Ralph E, Surveying current research in O-O design, Communications of the ACM, vol. 33, no. 9, pp , Sept

13 Αντικειµενοστρεφής σχεδίαση Σελίδα 13 Περίληψη αξιολόγησης Ιδιαίτερα χαρακτηριστικά και πλεονεκτήµατα Ξεφεύγει από τις προηγούµενες προσεγγίσεις της σχεδίασης παρέχοντας µια σφαιρική άποψη της σχέσης µεταξύ δεδοµένων και λειτουργιών. Εξασφαλίζει µέγιστη επαναχρησιµοποίηση µέσω του µηχανισµού της κληρονοµικότητας. Μειονεκτήµατα Η σχεδίαση δεν απορρέει από καλά καθορισµένα βήµατα. Απαιτείται πιο βαθιά και δηµιουργική προσέγγιση. Φιλοσοφία / Προοπτική Η θεωρία πίσω από τη µέθοδο είναι ότι η δοµή του προγράµµατος πρέπει να είναι ένα µοντέλο ή µία προσοµοίωση της περιοχής του προβλήµατος. Ένα τέτοιο µοντέλο εκφράζεται µέσω αντικειµένων που αντιπροσωπεύουν πιστά τα στοιχεία της εφαρµογής. Συστηµατική; Αρκετά. Η αναγνώριση αντικειµένων, κλάσεων και κληρονοµικότητας γίνεται κατά περίπτωση. Πληθώρα τύπων διαγραµµάτων βοηθούν στη διαδικασία σχεδίασης και την τεκµηρίωση των σχεδιαστικών επιλογών. Κατάλληλες εφαρµογές Όλες. Η Ο-Ο σχεδίαση ταιριάζει ιδιαίτερα σε προγράµµατα που οδηγούνται από συµβάντα. Τέτοια είναι τα προγράµµατα που αναφέρθηκαν ως παραδείγµατα. Το πρόγραµµα ανταποκρίνεται σε διάφορα συµβάντα που προκαλεί ο χρήστης µέσω του πληκτρολογίου και του ποντικιού. Κάθε συµβάν εξυπηρετείται µε κλήση µιας µεθόδου του κατάλληλου αντικειµένου. Ακατάλληλες εφαρµογές Καµία. Πάνω-προς-κάτω; Όχι. Όταν ένα πρόγραµµα έχει σχεδιαστεί χρησιµοποιώντας την Ο-Ο µέθοδο είναι ένα δίκτυο αντικειµένων χωρίς προφανή ιεραρχία. Κατά τη σχεδίαση αναγνωρίζονται οι ιεραρχίες κλάσεων, αλλά αυτή η διαδικασία δεν είναι απαραίτητο να εκτελείται από πάνω προς τα κάτω. Καλό για µεγάλης κλίµακας σχεδιασµό; Ναι. Η Ο-Ο σχεδίαση έχει εφαρµοστεί µε επιτυχία σε πολλά µεσαία και µεγάλα προγράµµατα και συστήµατα λογισµικού. Πιο συγκεκριµένα η έµφαση που δίνεται στην επαναχρησιµοποίηση βοηθάει ώστε νέα και µεγάλα προγράµµατα να µπορούν να σχεδιαστούν εύκολα. Καλό για µικρής κλίµακας σχεδιασµό; Όχι. Το τελικό προϊόν της Ο-Ο σχεδίασης είναι η δοµή ενός προγράµµατος σε µεγάλη κλίµακα, εκφρασµένη µε κλάσεις, αντικείµενα και µεθόδους. Ο λεπτοµερής σχεδιασµός των µεθόδων πρέπει να γίνει χρησιµοποιώντας άλλη προσέγγιση. Υποστήριξη εργαλείων ιατίθενται εργαλεία που υποστηρίξουν τη δηµιουργία, σύνταξη, επόπτευση και µετασχηµατισµό διαφόρων τύπων διαγραµµάτων που χρησιµοποιεί η µέθοδος. 15 Περίληψη Η Ο-Ο σχεδίαση χαρακτηρίζεται από: Αναζήτηση των κλάσεων: Αναγνωρίζονται οι κλάσεις (και τα αντικείµενα) που αρµόζουν για συγκεκριµένο πεδίο προβλη- µάτων. Λεπτοµερή ορισµό ευθυνών των κλάσεων: Καθορίζεται ο ρόλος και οι ευθύνες κάθε κλάσης µέσα στο σύστηµα. Προσδιορισµό συνεργατών κάθε κλάσης: Καθορίζεται εκείνες οι κλάσεις χωρίς τη συνδροµή των οποίων µια κλάση δεν µπορεί να φέρει εις πέρας τις ευθύνες της. Εκλέπτυνση ευθυνών µε περιπτώσεις-χρήσης: Μαθαίνουµε πώς συµπεριφέρονται και επικοινωνούν τα αντικείµενα χρησιµοποιώντας σενάρια εκτέλεσης. Αναγνώριση σχέσεων µεταξύ κλάσεων: Προχωρούµε σε ποιο λεπτοµερειακή σχεδίαση αναγνωρίζοντας σηµαντικές σχέσεις µεταξύ κλάσεων, όπως είναι-ένα, είναι-τµήµα. Οργάνωση των κλάσεων σε ιεραρχίες: Ανακαλύπτουµε σχέσεις είναι-ένα ανάµεσα σε κλάσεις χρησιµοποιώντας τις έννοιες της εξειδίκευσης και της γενίκευσης. Μεταφράζουµε τις ιεραρχίες κλάσεων σε επαναχρησιµοποιούµενο κώδικα µέσω κληρονοµικότητας και αφηρηµένων κλάσεων. Οµαδοποίηση ευθυνών: Μεταφέρουµε συµπεριφορά από µια κλάση σε άλλη υλοποιώντας συµπεριφορές έτσι ώστε κοινός κώδικας να µοιράζεται από όλες τις υποκλάσεις. Αναζήτηση επαναχρησιµοποιήσιµων πλαισίων σχεδίασης: Αναγνωρίζουµε υποσυστήµατα συνεργαζόµενων κλάσεων που αλληλεπιδρούν µε τρόπο που µπορεί να επαναχρησιµοποιηθεί σε κάποια ανάλογη περίπτωση. Κλείνοντας, είναι σηµαντικό να αντιληφθούµε ότι τα Ο-Ο συστήµατα είναι ακόµα σε, σχετικά, βρεφικό στάδιο. εν υπάρχει µια ευρέως αποδεκτή µεθοδολογία Ο-Ο σχεδίασης.

14 Αντικειµενοστρεφής σχεδίαση Σελίδα 14 Ασκήσεις 1. Μπορεί η αντικειµενοστρεφής σχεδίαση να χαρακτηρισθεί ως πάνω-προς-κάτω ή κάτω-προς-πάνω διαδικασία; 2. Αν ο προγραµµατισµός και η σχεδίαση είναι δύο όψεις του ίδιου νοµίσµατος, όπως διατείνεται η Ο-Ο σχεδίαση, αυτό ση- µαίνει ότι όλοι οι σχεδιαστές πρέπει να είναι επίσης προγραµµατιστές; 3. Σε ποιο βαθµό επηρεάζεται η Ο-Ο σχεδίαση από τις βιβλιοθήκες κλάσεων που διατίθενται; Σε ποιο βαθµό οι σχεδιαστές πρέπει να γνωρίζουν τις διαθέσιµες βιβλιοθήκες; 4. Συνεχίστε τη σχεδίαση της αριθµοµηχανής που περουσιάστηκε. Συγκεκριµένα: Σχεδιάστε περισσότερες περιπτώσεις-χρήσης. Οµαδοποιήστε τις κλάσεις σε µια ιεραρχία 5. Τι χαρακτηριστικά ή ενδείξεις πρέπει να χρησιµοποιήσουµε για να προσδιορίσουµε πιθανά ελαττώµατα σε µια Ο-Ο σχεδίαση; Για παράδειγµα, µια κλάση µε υπερβολικό πλήθος ευθυνών θα έπρεπε να επανεξεταστεί. 6. Εφαρµόστε τις τεχνικές που παρουσιάστηκαν για να σχεδιάσετε µια ταµειολογιστική µηχανή (ΑΤΜ) τραπέζης. Το ΑΤΜ α- νταποκρίνεται σε ακολουθίες εντολών. Υποθέστε ότι το ΑΤΜ είναι ικανό να εκτελεί τα παρακάτω: Αναγνωρίζει κάθε χρήστη µέσω µιας προσωπικής κάρτας και ενός συγκεκριµένου κωδικού που εισάγει ο χρήστης. Κάνει καταθέσεις και αναλήψεις σε λογαριασµούς. Μεταφέρει κεφάλαια µεταξύ δύο λογαριασµών. Προβάλει το υπόλοιπο ενός λογαριασµού.

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

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

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Η ιαχείριση Απαιτήσεων στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

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

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

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

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 7.1. Ανάπτυξη Προγράµµατος Τι είναι το Πρόγραµµα; Το Πρόγραµµα: Είναι ένα σύνολο εντολών για την εκτέλεση ορισµένων λειτουργιών από τον υπολογιστή.

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

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

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

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

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

Κεφάλαιο 7. Τρισδιάστατα Μοντέλα

Κεφάλαιο 7. Τρισδιάστατα Μοντέλα Κεφάλαιο 7. 7.1 ομές εδομένων για Γραφικά Υπολογιστών. Οι δομές δεδομένων αποτελούν αντικείμενο της επιστήμης υπολογιστών. Κατά συνέπεια πρέπει να γνωρίζουμε πώς οργανώνονται τα γεωμετρικά δεδομένα, προκειμένου

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

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

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

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

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

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

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

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

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

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

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

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

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου

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

Κανόνες για ανάπτυξη διαγραµµάτων κλάσεων

Κανόνες για ανάπτυξη διαγραµµάτων κλάσεων 1 Ελληνικό Ανοικτό Πανεπιστήµιο Κανόνες για ανάπτυξη διαγραµµάτων κλάσεων ρ. Πάνος Φιτσιλής 2 Περιεχόµενα Προσδιορισµός κλάσεων Πως να ονοµάσουµε τις κλάσεις; Που να τις βρούµε; Τι να κοιτάξουµε; Τι να

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

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

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

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Υλοποίηση στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Υλοποίηση στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Η Υλοποίηση στην Ενοποιηµένη ιαδικασία ρ. Πάνος Φιτσιλής Περιεχόµενα Πρωτοτυποποίηση Προγραµµατισµός υλοποίησης Ανάπτυξη συστήµατος Μοναδιαίος έλεγχος Ολοκλήρωση 2 3 Η υλοποίηση

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας ρ. Πάνος Φιτσιλής Περιεχόµενα Βασικές έννοιες αντικειµενοστεφούς τρόπου ανάπτυξης Τι είναι κλάση Τι είναι αντικείµενο 2 Βασικές

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

2.2.3 Η εντολή Εκτύπωσε

2.2.3 Η εντολή Εκτύπωσε 2.2.3 Η εντολή Εκτύπωσε Η εντολή Εκτύπωσε χρησιµοποιείται προκειµένου να εµφανίσουµε κάτι στην οθόνη του υπολογιστή. Για τον λόγο αυτό ονοµάζεται και εντολή εξόδου. Ισοδύναµα µπορεί να χρησιµοποιηθεί και

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη Επιλογή και επανάληψη Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως, ότι στο

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

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού Μάρα Νικολαϊδου Δραστηριότητες Διαδικασιών Παραγωγής Λογισµικού Καθορισµός απαιτήσεων και εξαγωγή προδιαγραφών

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

Atlantis - Νέο user interface

Atlantis - Νέο user interface New Desktop 1 Atlantis - Νέο user interface ATLANTIS - ΝΕΟ USER INTERFACE...2 ΓΕΝΙΚΗ ΠΑΡΟΥΣΙΑΣΗ...3 ΓΡΑΜΜΗ ΣΥΣΤΗΜΑΤΟΣ...4 ΜΠΑΡΑ ΧΡΗΣΤΗ (USER TOOLBAR)...5 ΚΕΝΤΡΙΚΟ ΜΕΝΟΥ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ...6 Κεντρικό μενού

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Θέµα 1 ο Α. Να απαντήσετε τις παρακάτω ερωτήσεις τύπου Σωστό Λάθος (Σ Λ) 1. Σκοπός της συγχώνευσης 2 ή περισσοτέρων ταξινοµηµένων πινάκων είναι η δηµιουργία

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

Εκπαιδευτική Μονάδα 10.2: Εργαλεία χρονοπρογραμματισμού των δραστηριοτήτων.

Εκπαιδευτική Μονάδα 10.2: Εργαλεία χρονοπρογραμματισμού των δραστηριοτήτων. Εκπαιδευτική Μονάδα 10.2: Εργαλεία χρονοπρογραμματισμού των δραστηριοτήτων. Στην προηγούμενη Εκπαιδευτική Μονάδα παρουσιάστηκαν ορισμένα χρήσιμα παραδείγματα διαδεδομένων εργαλείων για τον χρονοπρογραμματισμό

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

ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ & ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΙ ΠΑΤΡΑΣ ΤΕΙ ΠΑΤΡΑΣ ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΏΝ ΠΑΙΓΝΙΩΝ- ΠΡΟΓΡΑΜΜΑ GAMBIT

ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ & ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΙ ΠΑΤΡΑΣ ΤΕΙ ΠΑΤΡΑΣ ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΏΝ ΠΑΙΓΝΙΩΝ- ΠΡΟΓΡΑΜΜΑ GAMBIT ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ & ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Α Κ Α Η Μ Α Ι Κ Ο Ε Τ Ο Σ 2 0 1 1-2 0 1 2 ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΏΝ ΠΑΙΓΝΙΩΝ- ΠΡΟΓΡΑΜΜΑ GAMBIT Ο συγκεκριµένος οδηγός για το πρόγραµµα

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

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo;

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo; Κεφάλαιο 2 Εισαγωγή Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo; Η Logo είναι μία από τις πολλές γλώσσες προγραμματισμού. Κάθε γλώσσα προγραμματισμού έχει σκοπό τη δημιουργία προγραμμάτων

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

Εισαγωγή στις Βάσεις εδοµένων και την Access

Εισαγωγή στις Βάσεις εδοµένων και την Access Μάθηµα 1 Εισαγωγή στις Βάσεις εδοµένων και την Access Τι είναι οι βάσεις δεδοµένων Μία βάση δεδοµένων (Β..) είναι µία οργανωµένη συλλογή πληροφοριών, οι οποίες είναι αποθηκευµένες σε κάποιο αποθηκευτικό

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

Ανάπτυξη Plugins για το AgentSheets

Ανάπτυξη Plugins για το AgentSheets Ανάπτυξη Plugins για το AgentSheets Thought Amplifier AgentSheets Ανάπτυξη Plugins AgentSheets 2.5 Συγγραφείς Τεκµηρίωσης: Alexander Repenning και Ronald Sudomo Εξελληνισµός Τεκµηρίωσης: Λίνος Βίγκλας,

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

ραστηριότητες στο Επίπεδο 1.

ραστηριότητες στο Επίπεδο 1. ραστηριότητες στο Επίπεδο 1. Στο επίπεδο 0, στις πρώτες τάξεις του δηµοτικού σχολείου, όπου στόχος είναι η οµαδοποίηση των γεωµετρικών σχηµάτων σε οµάδες µε κοινά χαρακτηριστικά στη µορφή τους, είδαµε

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Η και ο στην Ενοποιηµένη ιαδικασία ρ. Πάνος Φιτσιλής Περιεχόµενα Γενικές αρχές ανάλυσης και σχεδιασµού Τα βήµατα της ανάλυσης και του σχεδιασµού Συµπεράσµατα 2 3 Η ανάλυση

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

4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας

4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας 4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας 4.1.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας από βάση δεδομένων Όταν εκκινήσουμε τον Discoverer εμφανίζεται στην οθόνη μας το παράθυρο διαλόγου του βοηθητικού προγράμματος

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

Σηµειώσεις στις σειρές

Σηµειώσεις στις σειρές . ΟΡΙΣΜΟΙ - ΓΕΝΙΚΕΣ ΕΝΝΟΙΕΣ Σηµειώσεις στις σειρές Στην Ενότητα αυτή παρουσιάζουµε τις βασικές-απαραίτητες έννοιες για την µελέτη των σειρών πραγµατικών αριθµών και των εφαρµογών τους. Έτσι, δίνονται συστηµατικά

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

3. Σηµειώσεις Access. # Εισαγωγή ψηφίου ή κενού διαστήµατος. Επιτρέπονται τα ση-

3. Σηµειώσεις Access. # Εισαγωγή ψηφίου ή κενού διαστήµατος. Επιτρέπονται τα ση- Μάθηµα 3 Προχωρηµένες ιδιότητες πεδίων Μάσκες εισαγωγής Οι ιδιότητες Μορφή και Μάσκα εισαγωγής περιγράφονται µαζί γιατί έχουν κοινά χαρακτηριστικά που αφορούν την εµφάνιση. Με την ιδιότητα Μορφή καθορίζουµε

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

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2012 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2012 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ: ΚΑΤΕΥΘΥΝΣΗ: ΜΑΘΗΜΑ: ΘΕΜΑ Α Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ (2ος Κύκλος) ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ηµεροµηνία: Κυριακή 22 Απριλίου 2012 ΕΚΦΩΝΗΣΕΙΣ Α1. Να γράψετε στο τετράδιό

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014 Επιμέλεια: Ομάδα Διαγωνισμάτων από το Στέκι των Πληροφορικών Θέμα Α A1. Να γράψετε στο τετράδιό σας τους

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

Περιεχόµενα. I Βασικές Γνώσεις 1

Περιεχόµενα. I Βασικές Γνώσεις 1 Περιεχόµενα I Βασικές Γνώσεις 1 1 Μοντελοποίηση Προγραµµάτων 3 1.1 Ψευδογλώσσα....................... 6 1.2 Διαγράµµατα Ροής..................... 6 1.3 Παραδείγµατα σε Ψευδογλώσσα και Διαγράµµατα Ροής.

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

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5 Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών

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

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.5 Πρωτόκολλο IP 38. Τι είναι το πρωτόκολλο ιαδικτύου (Internet Protocol, IP); Είναι το βασικό πρωτόκολλο του επιπέδου δικτύου της τεχνολογίας TCP/IP. Βασίζεται στα αυτοδύναµα

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

Σχεδιασµός βασισµένος σε συνιστώσες

Σχεδιασµός βασισµένος σε συνιστώσες Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι

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

Εισαγωγή ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΣΠ

Εισαγωγή ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΣΠ ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΣΠ Τα τελευταία 25 χρόνια, τα προβλήµατα που σχετίζονται µε την διαχείριση της Γεωγραφικής Πληροφορίας αντιµετωπίζονται σε παγκόσµιο αλλά και εθνικό επίπεδο µε την βοήθεια των Γεωγραφικών

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

Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στη Ενοποιηµένη Προσέγγιση Unified Process (UP) ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στη Ενοποιηµένη Προσέγγιση Unified Process (UP) ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στη Ενοποιηµένη Προσέγγιση Unified Process (UP) ρ. Πάνος Φιτσιλής 2 Περιεχόµενα Τι είναι η UP Βασικές αρχές µηχανικής λογισµικού Οι βασικές έννοιες της UP Οι τέσσερις

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

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

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

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

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

3. Στο Block Diagram αναπτύσουµε το υπολογιστικό µέρος του προγράµµατος. Σχήµα 1.1: Το Front Panel του LabVIEW.

3. Στο Block Diagram αναπτύσουµε το υπολογιστικό µέρος του προγράµµατος. Σχήµα 1.1: Το Front Panel του LabVIEW. Front Panel και Block Diagram 1. Το LAbVIEW αποτελείται από δύο καρτέλες. Το Front Panel και το Block Diagram. Εναλλασσόµαστε ανάµεσα στις δύο καρτέλες µε τη συντόµευση CTRL+E ή µε το µενού Windows / Show

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

Σκοπός του μαθήματος

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

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

1 Παραστατικών Πωλήσεων

1 Παραστατικών Πωλήσεων Version 2.4.0.0 Κινήσεις 1 Παραστατικών Πωλήσεων Κινήσεις Πωλήσεις Παραστατικά Πωλήσεων Στην αναζήτηση των παραστατικών πωλήσεων πραγµατοποιήθηκε προσθήκη ενός πλήκτρου το οποίο γίνεται ενεργό µόνο για

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

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

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

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0 ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0 20130510 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εγκατάσταση προγράμματος DCAD 2 2. Ενεργοποίηση Registration 2 3. DCAD 3 3.1 Εισαγωγή σημείων 3 3.2 Εξαγωγή σημείων 5 3.3 Στοιχεία ιδιοκτησίας

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

ΗΜΙΟΥΡΓΙΑ ΠΑΙΧΝΙ ΙΟΥ ΣΤΟ SCRATCH ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ

ΗΜΙΟΥΡΓΙΑ ΠΑΙΧΝΙ ΙΟΥ ΣΤΟ SCRATCH ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ ΗΜΙΟΥΡΓΙΑ ΠΑΙΧΝΙ ΙΟΥ ΣΤΟ SCRATCH ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ ΣΕΝΑΡΙΟ ΠΑΙΧΝΙ ΙΟΥ Το παιχνίδι θα αποτελείται από δυο παίκτες, οι οποίοι θα βρίσκονται αντικριστά στις άκρες ενός γηπέδου δεξιά και αριστερά, και µια µπάλα.

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

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD Σε ορισµένες περιπτώσεις είναι ιδιαίτερα χρήσιµη η δηµιουργία ιστοσελίδων ενηµερωτικού περιεχοµένου οι οποίες στη συνέχεια µπορούν να δηµοσιευθούν σε κάποιο τόπο

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

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Φθινοπωρινό Εξάµηνο 2015 Δοµές Δεδοµένων - Εργασία 2 Διδάσκων: E. Μαρκάκης Ταξινόµηση και Ουρές Προτεραιότητας Σκοπός της 2 ης εργασίας είναι η εξοικείωση

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

o AND o IF o SUMPRODUCT

o AND o IF o SUMPRODUCT Πληροφοριακά Εργαστήριο Management 1 Information Συστήματα Systems Διοίκησης ΤΕΙ Τμήμα Ελεγκτικής Ηπείρου Χρηματοοικονομικής (Παράρτημα Πρέβεζας) και Αντικείµενο: Μοντελοποίηση προβλήµατος Θέµατα που καλύπτονται:

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

6. Εισαγωγή στον προγραµµατισµό

6. Εισαγωγή στον προγραµµατισµό 6. Εισαγωγή στον προγραµµατισµό 6.1 Η έννοια του προγράµµατος. 6.2 Ιστορική αναδροµή. 6.2.1 Γλώσσες µηχανής. ΗΜ04-Θ1Α 1. Ένα πρόγραµµα σε γλώσσα µηχανής είναι µια ακολουθία δυαδικών ψηφίων. 5. Ένα πρόγραµµα

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

Κατασκευή Μαθησιακών Στόχων και Κριτηρίων Επιτυχίας: Αξιολόγηση για Μάθηση στην Πράξη

Κατασκευή Μαθησιακών Στόχων και Κριτηρίων Επιτυχίας: Αξιολόγηση για Μάθηση στην Πράξη Κατασκευή Μαθησιακών Στόχων και Κριτηρίων Επιτυχίας: Αξιολόγηση για Μάθηση στην Πράξη Μαργαρίτα Χριστοφορίδου 25 Απριλίου 2015 ΕΚΠΑΙΔΕΥΤΙΚΗ ΗΜΕΡΙΔΑ «ΑΞΙΟΛΟΓΗΣΗ ΤΟΥ ΜΑΘΗΤΗ- ΣΥΓΧΡΟΝΕΣ ΤΑΣΕΙΣ-ΠΡΑΚΤΙΚΕΣ ΕΦΑΡΜΟΓΕΣ»

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

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

5.1 Θεωρητική εισαγωγή

5.1 Θεωρητική εισαγωγή ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 5 ΚΩ ΙΚΟΠΟΙΗΣΗ BCD Σκοπός: Η κατανόηση της µετατροπής ενός τύπου δυαδικής πληροφορίας σε άλλον (κωδικοποίηση/αποκωδικοποίηση) µε τη µελέτη της κωδικοποίησης BCD

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

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

ΑΝΑΛΥΣΗ Ε ΟΜΕΝΩΝ 1. ΕΙ Η Ε ΟΜΕΝΩΝ, ΣΥΛΛΟΓΗ, ΚΩ ΙΚΟΠΟΙΗΣΗ ΚΑΙ ΕΙΣΑΓΩΓΗ

ΑΝΑΛΥΣΗ Ε ΟΜΕΝΩΝ 1. ΕΙ Η Ε ΟΜΕΝΩΝ, ΣΥΛΛΟΓΗ, ΚΩ ΙΚΟΠΟΙΗΣΗ ΚΑΙ ΕΙΣΑΓΩΓΗ ΑΝΑΛΥΣΗ Ε ΟΜΕΝΩΝ 1. ΕΙ Η Ε ΟΜΕΝΩΝ, ΣΥΛΛΟΓΗ, ΚΩ ΙΚΟΠΟΙΗΣΗ ΚΑΙ ΕΙΣΑΓΩΓΗ Βασικές µορφές Ερωτήσεων - απαντήσεων Ανοιχτές Κλειστές Κλίµακας ΕΛΕΥΘΕΡΙΟΣ ΑΓΓΕΛΗΣ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΠΘ 2 Ανοιχτές ερωτήσεις Ανοιχτές

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

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

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

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

Προγραµµατισµός Η/Υ. Μέρος2

Προγραµµατισµός Η/Υ. Μέρος2 Προγραµµατισµός Η/Υ Μέρος2 Περιεχόμενα Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής Αλγόριθμος Ψευδοκώδικας Παραδείγματα Αλγορίθμων Γλώσσες προγραμματισμού 2 Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής

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

Singular Report Generator. Σχ 1 ηµιουργία Καταστάσεων SRG

Singular Report Generator. Σχ 1 ηµιουργία Καταστάσεων SRG Μια από τις πιο σηµαντικές ανάγκες που αντιµετωπίζει µια επιχείρηση κατά την εγκατάσταση ενός λογισµικού «πακέτου» (Οικονοµικής & Εµπορικής ιαχείρισης), είναι ο τρόπος µε τον οποίο πρέπει να ανταποκριθεί

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

ΔΙΔΑΣΚΑΛΙΑ ΓΝΩΣΤΙΚΗΣ ΣΤΡΑΤΗΓΙΚΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ Δρ. Ζαφειριάδης Κυριάκος Οι ικανοί αναγνώστες χρησιμοποιούν πολλές στρατηγικές (συνδυάζουν την

ΔΙΔΑΣΚΑΛΙΑ ΓΝΩΣΤΙΚΗΣ ΣΤΡΑΤΗΓΙΚΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ Δρ. Ζαφειριάδης Κυριάκος Οι ικανοί αναγνώστες χρησιμοποιούν πολλές στρατηγικές (συνδυάζουν την 1 ΔΙΔΑΣΚΑΛΙΑ ΓΝΩΣΤΙΚΗΣ ΣΤΡΑΤΗΓΙΚΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ Δρ. Ζαφειριάδης Κυριάκος Οι ικανοί αναγνώστες χρησιμοποιούν πολλές στρατηγικές (συνδυάζουν την παλαιότερη γνώση τους, σημειώνουν λεπτομέρειες, παρακολουθούν

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

ζωγραφίζοντας µε τον υπολογιστή

ζωγραφίζοντας µε τον υπολογιστή ζωγραφίζοντας µε τον υπολογιστή Μια από τις εργασίες που µπορούµε να κάνουµε µε τον υπολογιστή είναι και η ζωγραφική. Για να γίνει όµως αυτό πρέπει ο υπολογιστής να είναι εφοδιασµένος µε το κατάλληλο πρόγραµµα.

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

Περιεχόµενο. ΕΠΛ 422: Συστήµατα Πολυµέσων. Σχεδίαση και Ανάπτυξη Πολυµεσικών Εφαρµογών. Βιβλιογραφία. Καγιάφας [2000]: Κεφάλαιο 9, [link]

Περιεχόµενο. ΕΠΛ 422: Συστήµατα Πολυµέσων. Σχεδίαση και Ανάπτυξη Πολυµεσικών Εφαρµογών. Βιβλιογραφία. Καγιάφας [2000]: Κεφάλαιο 9, [link] Περιεχόµενα ΕΠΛ 422: Συστήµατα Πολυµέσων Σχεδίαση και Ανάπτυξη Πολυµεσικών Εφαρµογών Βασικά ζητήµατα σχεδίασης Η διαδικασία ανάπτυξης πολυµεσικών εφαρµογών Η οµάδα ανάπτυξης πολυµεσικών εφαρµογών Σχεδίαση

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΙΛΟΓΗΣ 1) Ποιοι είναι οι τελεστές σύγκρισης και

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

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ Μ. Γρηγοριάδου Ρ. Γόγουλου Ενότητα: Η Διδασκαλία του Προγραμματισμού Περιεχόμενα Παρουσίασης

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

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

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

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

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13 Περιεχόμενα Πρόλογος... 13 ΜΕΡΟΣ ΠΡΩΤΟ Κεφ. 1 Περί προγραμματισμού και γλωσσών προγραμματισμού Προγράμματα και Λειτουργικά Συστήματα... 17 Γλώσσες προγραμματισμού και εργαλεία ανάπτυξης προγραμμάτων...

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Χειμερινό Εξάμηνο 2013 - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 Αρχιτεκτονική

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

Εισαγωγή. Εγχειρίδιο Χρήσης My Plan 2

Εισαγωγή. Εγχειρίδιο Χρήσης My Plan 2 Εγχειρίδιο Χρήσης Εισαγωγή Το δηµιουργήθηκε µε στόχο να αποτελέσει υποστηρικτικό εργαλείο για τον επαγγελµατία Ασφαλιστικό ιαµεσολαβητή, ο οποίος χρειάζεται να διευκρινίζει και να αναλύει τις ασφαλιστικές

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟ ΛΑΘΟΣ Σημειώστε αν είναι σωστή ή

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

Γρήγορη Εκκίνηση. Όταν ξεκινήσετε το GeoGebra, εμφανίζεται το παρακάτω παράθυρο:

Γρήγορη Εκκίνηση. Όταν ξεκινήσετε το GeoGebra, εμφανίζεται το παρακάτω παράθυρο: Τι είναι το GeoGebra; Γρήγορη Εκκίνηση Λογισμικό Δυναμικών Μαθηματικών σε ένα - απλό στη χρήση - πακέτο Για την εκμάθηση και τη διδασκαλία σε όλα τα επίπεδα της εκπαίδευσης Συνδυάζει διαδραστικά γεωμετρία,

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

Ο ΗΓΙΕΣ ΓΙΑ ΤΟ ΚΛΕΙΣΙΜΟ ΧΡΗΣΗΣ ΣΤΟ DYNAMICS NAV INNOVERA ERP

Ο ΗΓΙΕΣ ΓΙΑ ΤΟ ΚΛΕΙΣΙΜΟ ΧΡΗΣΗΣ ΣΤΟ DYNAMICS NAV INNOVERA ERP Ο ΗΓΙΕΣ ΓΙΑ ΤΟ ΚΛΕΙΣΙΜΟ ΧΡΗΣΗΣ ΣΤΟ DYNAMICS NAV INNOVERA ERP Για να κλείσουµε µία χρήση στο InnovEra ακολουθούµε τα παρακάτω βήµατα: Από το κεντρικό µενού επιλέγουµε διαδοχικά «Οικονοµική ιαχείριση», «Γενική

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

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Κεφάλαιο 6ο Εισαγωγή στον Προγραµµατισµό Μέρος Πρώτο (6.1, 6.2 και 6.3) Α. Ερωτήσεις Σωστού Λάθους 1. Η γλώσσα µηχανής είναι µία γλώσσα υψηλού επιπέδου.

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

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ 1 Λειτουργικές απαιτήσεις Το σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών στοχεύει στο να επιτρέπει την πλήρως ηλεκτρονική υποβολή αιτήσεων από υποψήφιους

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

Η προέλευση του Sketchpad 1

Η προέλευση του Sketchpad 1 Η προέλευση του Sketchpad 1 Το The Geometer s Sketchpad αναπτύχθηκε ως μέρος του Προγράμματος Οπτικής Γεωμετρίας, ενός προγράμματος χρηματοδοτούμενου από το Εθνικό Ίδρυμα Ερευνών (ΝSF) υπό τη διεύθυνση

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

Γραµµική Άλγεβρα. Εισαγωγικά. Μέθοδος Απαλοιφής του Gauss

Γραµµική Άλγεβρα. Εισαγωγικά. Μέθοδος Απαλοιφής του Gauss Γραµµική Άλγεβρα Εισαγωγικά Υπάρχουν δύο βασικά αριθµητικά προβλήµατα στη Γραµµική Άλγεβρα. Το πρώτο είναι η λύση γραµµικών συστηµάτων Aλγεβρικών εξισώσεων και το δεύτερο είναι η εύρεση των ιδιοτιµών και

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

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

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 5 ο Έλεγχος Προγράµµατος Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Η εντολή if (Ι) Η εντολή if είναι µία από τις βασικότερες δοµές ελέγχου ροής στη C, αλλά και στις περισσότερες

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

Outlook Express-User Instructions.doc 1

Outlook Express-User Instructions.doc 1 Οδηγίες προς τους υπαλλήλους του ήµου Θεσσαλονίκης για την διαχείριση της ηλεκτρονικής τους αλληλογραφίας µε το Outlook Express (Ver 1.0 22-3-2011) (Για οποιοδήποτε πρόβληµα ή απορία επικοινωνήστε µε τον

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

ΕΞΟΜΟΙΩΤΗΣ Ο ΗΓΗΣΗΣ. o ΑΥΤΟΚΙΝΗΤΟΥ o ΦΟΡΤΗΓΟΥ ΑΚΑΜΠΤΟΥ o ΦΟΡΤΗΓΟΥ ΑΡΘΡΩΤΟΥ o ΛΕΩΦΟΡΕΙΟΥ ΑΡΘΡΩΤΟΥ. Εκπαιδευτικοί Εξοµοιωτές Οδήγησης Σελίδα 1 από 10

ΕΞΟΜΟΙΩΤΗΣ Ο ΗΓΗΣΗΣ. o ΑΥΤΟΚΙΝΗΤΟΥ o ΦΟΡΤΗΓΟΥ ΑΚΑΜΠΤΟΥ o ΦΟΡΤΗΓΟΥ ΑΡΘΡΩΤΟΥ o ΛΕΩΦΟΡΕΙΟΥ ΑΡΘΡΩΤΟΥ. Εκπαιδευτικοί Εξοµοιωτές Οδήγησης Σελίδα 1 από 10 ΕΞΟΜΟΙΩΤΗΣ Ο ΗΓΗΣΗΣ ΑΥΤΟΚΙΝΗΤΟΥ ΦΟΡΤΗΓΟΥ ΑΚΑΜΠΤΟΥ ΦΟΡΤΗΓΟΥ ΑΡΘΡΩΤΟΥ ΛΕΩΦΟΡΕΙΟΥ ΑΚΑΜΠΤΟΥ ΛΕΩΦΟΡΕΙΟΥ ΑΡΘΡΩΤΟΥ Εκπαιδευτικοί Εξοµοιωτές Οδήγησης Σελίδα 1 από 10 Ι. ΓΕΝΙΚΑ Η συγκεκριµένη έκδοση του εξοµοιωτή

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

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών ΕΠΛ362: Τεχνολογία Λογισμικού ΙΙ (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Software Engineering, 9/E, Ian Sommerville, 2011) Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών Οι διαφάνειες αυτές

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

Η διάρκεια πραγματοποίησης της ανοιχτής εκπαιδευτικής πρακτικής ήταν 2 διδακτικές ώρες

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΞΑΜΗΝΟ Η ΟΝΟΜΑΤΕΠΩΝΥΜΟ ΦΟΙΤΗΤΗ : ΜΟΣΧΟΥΛΑ ΟΛΓΑ ΑΡΙΘΜΟΣ ΜΗΤΡΩΟΥ : 30/02 ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ : ΥΛΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΙΑΧΕΙΡΙΣΗΣ ΣΥΝΕ ΡΙΩΝ ΜΕ ΧΡΗΣΗ

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

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB)

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB) ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΜΕΘΟΔΟΙ ΕΠΙΛΥΣΗΣ ΜΕ Η/Υ 1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB) Ν.Δ. Λαγαρός Μ. Φραγκιαδάκης Α. Στάμος Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

1.1. Κινηµατική Οµάδα Γ.

1.1. Κινηµατική Οµάδα Γ. 1.1. Οµάδα Γ. 1.1.21. Πληροφορίες από το διάγραµµα θέσης-χρόνου..ένα σώµα κινείται ευθύγραµµα και στο διάγραµµα βλέπετε τη θέση του σε συνάρτηση µε το χρόνο. i) Βρείτε την κλίση στο διάγραµµα x-t στις

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

Φιλοσοφία menu. To πρόγραµµα ακολουθεί µια κοινή και φιλική προς τον χρήστη φιλοσοφία menu σε όλες τις ενότητες της εφαρµογής. Όπως βλέπετε και στις πιο κάτω εικόνες, παρ όλο που αναφέρονται σε διαφορετικές

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

(GNU-Linux, FreeBSD, MacOsX, QNX

(GNU-Linux, FreeBSD, MacOsX, QNX 1.7 διαταξεις (σελ. 17) Παράδειγµα 1 Θα πρέπει να κάνουµε σαφές ότι η επιλογή των λέξεων «προηγείται» και «έπεται» δεν έγινε απλώς για λόγους αφαίρεσης. Μπορούµε δηλαδή να ϐρούµε διάφορα παραδείγµατα στα

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

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

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ 1 Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 ο ΕΚΦΩΝΗΣΕΙΣ Α. Να γράψετε στην κόλλα σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1 5 και δίπλα τη λέξη

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

ΑΝΑΖΗΤΗΣΗ ΣΕ ΗΛΕΚΤΡΟΝΙΚΕΣ ΒΙΒΛΙΟΘΗΚΕΣ

ΑΝΑΖΗΤΗΣΗ ΣΕ ΗΛΕΚΤΡΟΝΙΚΕΣ ΒΙΒΛΙΟΘΗΚΕΣ ΑΝΑΖΗΤΗΣΗ ΣΕ ΗΛΕΚΤΡΟΝΙΚΕΣ ΒΙΒΛΙΟΘΗΚΕΣ Μία από τις πιο σηµαντικές υπηρεσίες που προσφέρει το διαδίκτυο στην επιστηµονική κοινότητα είναι η αποµακρυσµένη πρόσβαση των χρηστών σε ηλεκτρονικές βιβλιοθήκες

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

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού

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

ΠΕΡΙΕΧΟΜΕΝΑ. 8.11 Η σηµασία αυτού του κεφαλαίου για σας... 70. 9.15 Εργασία εξαµήνου... 172

ΠΕΡΙΕΧΟΜΕΝΑ. 8.11 Η σηµασία αυτού του κεφαλαίου για σας... 70. 9.15 Εργασία εξαµήνου... 172 ΠΕΡΙΕΧΟΜΕΝΑ 8. Έλεγχος προγραµµάτων... 1 8.1 Σφάλµατα και δυσλειτουργίες λογισµικού... 1 8.2 Θέµατα έλεγχου... 10 8.3 Έλεγχος µονάδων... 18 8.4 Έλεγχος ολοκλήρωσης... 38 8.5 Έλεγχος αντικειµενοστρεφών

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

Κεφάλαιο 7 Εισαγωγή στη Microsoft Access

Κεφάλαιο 7 Εισαγωγή στη Microsoft Access Κεφάλαιο 7 Εισαγωγή στη Microsoft Access Το κεφάλαιο αυτό περιλαµβάνει µια συνοπτική εισαγωγή στην Microsoft Access 2000, που είναι και το σχεσιακό σύστηµα διαχείρισης βάσεων δεδοµένων µε το οποίο θα ασχοληθούµε.

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

ΕΚΦΩΝΗΣΗ ΕΛΕΥΘΕΡΟΥ ΘΕΜΑΤΟΣ (µεγάλες τάξεις ηµοτικού) Σχεδιασµός σεναρίου µε θέµα «Αξονική συµµετρία» µε τη χρήση λογισµικών γενικής χρήσης, οπτικοποίησης, διαδικτύου και λογισµικών εννοιολογικής χαρτογράφησης.

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