16 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΣΧΕ ΙΑΣΗ

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

Download "16 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΣΧΕ ΙΑΣΗ"

Transcript

1 ΕΙΣΑΓΩΓΗ Ο αντικειµενοστρεφής προγραµµατισµός (object-oriented programming) έχει αναχθεί την τελευταία δεκαετία σε εξαιρετικά δηµοφιλή τεχνολογία ανάπτυξης λογισµικού. Το γεγονός αυτό αποδεικνύεται από πολλαπλά στοιχεία: Οι κατασκευαστές λογισµικού σπεύδουν να αναπτύξουν αντικειµενοστρεφείς εκδόσεις των προϊόντων τους τα ακαδηµαϊκά ιδρύµατα έχουν εντάξει πλήρως µαθήµατα αντικειµενοστρεφούς ανάλυσης και σχεδίασης στα προγράµµατά σπουδών τους αµέτρητα βιβλία και επιστηµονικά άρθρα γράφονται για το θέµα αυτό ετησίως οι επαγγελµατίες της πληροφορικής προσπαθούν να εισάγουν αντίστοιχες γνώσεις στα βιογραφικά τους και γενικά όλοι επιχειρούν να προσδώσουν ένα "άρωµα" αντικειµενοστρέφειας στις εφαρµογές τους. Οι λόγοι για τους οποίους ο αντικειµενοστρεφής προγραµµατισµός γνωρίζει τέτοιες ηµέρες δόξας είναι επίσης πολλαπλοί: Η έρευνα αλλά και η πράξη απέδειξαν ότι οι αντικειµενοστρεφείς τεχνικές εφαρµόζονται επιτυχώς τόσο σε προβλήµατα µεγάλης κλίµακας όσο και σε απλά προγράµµατα. Παρέχουν µια µεθοδολογία αφαίρεσης που προσοµοιάζει µε τις τεχνικές που οι άνθρωποι χρησιµοποιούν για να λύνουν καθηµερινά προβλήµατα. Επιπλέον, οι πολύ ισχυρές και εύχρηστες γλώσσες προγραµµατισµού που διατίθενται και οι οποίες υποστηρίζουν το αντικειµενοστρεφές µοντέλο, συνοδεύονται από ένα ολοένα και αυξανόµενο αριθµό εργαλείων και βιβλιοθηκών προσελκύοντας το ενδιαφέρον έµπειρων αλλά και νέων προγραµµατιστών. Βεβαίως και ένας επιπλέον λόγος, είναι πιθανόν η (λανθασµένη) αντίληψη ότι κάποιος που γνωρίζει για παράδειγµα C (ή κάποια άλλη γλώσσα διαδικασιακού προγραµµατισµού), µπορεί µε µικρή προσπάθεια να προγραµµατίζει σε C++ (ή κάποια άλλη γλώσσα αντικειµενοστρεφούς προγραµµατισµού). Ωστόσο, ο αντικειµενοστρεφής προγραµµατισµός είναι ένας ριζοσπαστικά διαφορετικός τρόπος σκέψης για τον τρόπο µε τον ο- ποίο δοµείται και µεταφέρεται η πληροφορία σε ένα σύστηµα. Αξίζει να σηµειωθεί ότι η χρήση µιας αντικειµενοστρεφούς γλώσσας (όπως η Java ή η C++) δεν αποτελεί από µόνη της ούτε ικανή ούτε αναγκαία συνθήκη για την ανάπτυξη αντικειµενοστρεφών συστηµάτων λογισµικού. Αναφέρθηκε ότι ο αντικειµενοστρεφής προγραµµατισµός είναι κατάλληλος τόσο για έργα λογισµικού µικρής όσο και µεγάλης κλίµακας. Με τον όρο µεγάλη κλίµακα, 15

2 16 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΣΧΕ ΙΑΣΗ εννοούνται έργα στην ανάπτυξη των οποίων θα συµµετάσχουν πολλά άτοµα και τα προϊόντα που θα παραχθούν θα εξελιχθούν σε πολλαπλές εκδόσεις (multi-person, multi-version projects). Είναι ακριβώς αυτή η κατηγορία προβληµάτων όπου το αντικειµενοστρεφές µοντέλο σκέψης εµφανίζει τα µεγαλύτερα πλεονεκτήµατά του. Σε τέτοια έργα, το µείζον πρόβληµα δεν είναι η κατάστρωση των αλγορίθµων ή η µετατροπή των αλγορίθµων σε κώδικα αλλά η επικοινωνία µεταξύ των υποµονάδων του έργου και η συντήρηση του λογισµικού. Το πρόβληµα επικοινωνίας των υποµονάδων δεν αφορά µόνο στην (αναµενόµενη) αναγκαιότητα συνεργασίας µεταξύ των διαφόρων τµηµάτων κώδικα που θα αναπτυχθούν. Αφορά επίσης στη συννενόηση µεταξύ των ατόµων µε πολλαπλούς ρόλους (αναλυτές, σχεδιαστές, προγραµµατιστές, ελεγκτές, διοίκηση) που συµµετέχουν στην οµάδα ανάπτυξης. Ο αντικειµενοστρεφής τρόπος ανάλυσης και σχεδίασης αποτελεί την ιδανική µεθοδολογία για το διαχωρισµό και την οργάνωση ενός µεγάλου έργου το οποίο θα αναπτυχθεί σε τµήµατα. Η συντήρηση ενός έργου λογισµικού προφανώς δεν σχετίζεται µε την κλασσική έννοια της συντήρησης, καθώς το λογισµικό δεν "φθείρεται" από τη χρήση και τα συστατικά του δεν χρήζουν αντικατάστασης λόγω βλάβης που επήλθε από την πάροδο του χρόνου. Η συντήρηση συνίσταται στις ενέργειες εκείνες που είναι απαραίτητες λόγω της εξέλιξης του λογισµικού και περιλαµβάνει δύο υποκατηγορίες: α) τη διορθωτική συντήρηση (corrective maintenance) που έχει ως στόχο τη διόρθωση σφαλµάτων που αποκαλύπτονται λόγω της εγκατάστασης και χρήσης του λογισµικού που παρήχθη και β) την προσαρµοστική συντήρηση (adaptive maintenance) που πραγµατοποιείται για την προσθήκη στο λογισµικό νέων λειτουργιών βάσει των νέων απαιτήσεων που προέρχονται από τους χρήστες. Αν υποθέσουµε ότι κάποιο έργο λογισµικού δεν πρόκειται να εξελιχθεί ποτέ (δηλαδή µετά την ανάπτυξη της πρώτης γενιάς δεν αναµένεται νέα γενιά), είναι ίσως δύσκολο να επιχειρηµατολογήσει κανείς υπέρ των πλεονεκτηµάτων του αντικειµενοστρεφούς προγραµµατισµού έναντι άλλων µοντέλων. Για την ακρίβεια, ίσως επισηµάνει κανείς µειονεκτήµατα καθώς θα περιλαµβάνονται στοιχεία στον κώδικα που θα µοιάζουν ίσως περιττά. Ωστόσο, η πραγµατική "δύναµη" του αντικειµενοστρεφούς προγραµµατισµού αποκαλύπτεται όταν το λογισµικό που έχει παραχθεί πρόκειται να εξελιχθεί και µάλιστα πολλαπλές φορές. Γλώσσες όπως η Java, C++ και Smalltalk, σε συνδυασµό µε καλή αντικειµενοστρεφή σχεδίαση, δηµιουργούν το πλαίσιο για την ανάπτυξη λογισµικού, το οποίο συντηρείται εύκολα και αποδοτικά, δηλαδή µε µικρή προσπάθεια και κόστος χωρίς να υποβαθµίζεται η ποιότητα του λογισµικού. Κατά συνέπεια, ένας καλός προγραµµατιστής λογισµικού χαρακτηρίζεται από την ικανότητά του να σχεδιάζει το λογισµικό λαµβάνοντας υπόψη τις πιθανές αλλαγές που πρόκειται να προέλθουν από τους χρήστες. Όπως χαρακτηριστικά λέγεται, η µόνη α- λήθεια στο λογισµικό είναι ότι "οι απαιτήσεις πρόκειται πάντοτε να αλλάζουν". Καλή σχεδίαση σηµαίνει ότι αν και όταν έρθουν αλλαγές που αφορούν τις απαιτήσεις του συστήµατος, το λογισµικό θα πρέπει να είναι "ευέλικτο" και να µπορεί να τροποποιηθεί ανάλογα, µε την ελάχιστη δυνατή προσπάθεια και µε τις µικρότερες δυνατές συνέπειες για τις υπόλοιπες λειτουργίες του. Αν για παράδειγµα, σε ένα αντικειµενοστρε-

3 1 Εισαγωγή 17 φές σύστηµα χιλίων κλάσεων ζητηθεί η προσθήκη µιας νέας λειτουργίας και αυτή µπορεί να υλοποιηθεί τροποποιώντας µία ή δύο κλάσεις, τότε το σύστηµα είναι ευέλικτο. Αν από την άλλη απαιτείται η ριζική αναπροσαρµογή των περισσοτέρων κλάσεων, η ικανοποίηση των απαιτήσεων ισοδυναµεί µε την ανάπτυξη νέου λογισµικού. Παρόλο που οι αντικειµενοστρεφείς γλώσσες παρέχουν την υποδοµή για την ανάπτυξη ευέλικτων προγραµµάτων, η σχεδίαση ενός συστήµατος είναι αυτή που εξασφαλίζει την ποιότητα αναφορικά µε την εύκολη συντήρηση. Οι αρχές, τα πρότυπα και οι ευρετικοί κανόνες σχεδίασης που παρουσιάζονται σε αυτό το βιβλίο, έχουν ως στόχο την αξιοποίηση των πλεονεκτηµάτων που προσφέρει το αντικειµενοστρεφές µοντέλο, κυρίως σε σχέση µε τη δυνατότητα εύκολης συντήρησης. Βεβαίως, η καλή σχεδίαση έχει και άλλες θετικές και εξίσου σηµαντικές συνέπειες. Ένα ορθά σχεδιασµένο σύστηµα είναι εύκολα κατανοητό, στοιχείο ιδιαιτέρως σηµαντικό όταν το λογισµικό δεν πρόκειται να αναπτύσσεται πάντοτε από τα ίδια άτο- µα. Σχεδόν όλοι οι προγραµµατιστές γνωρίζουν ότι η κατανόηση κώδικα που έχει γραφεί από άλλους (ή ακόµα και από τον ίδιο προγραµµατιστή πριν από κάποιο χρονικό διάστηµα) είναι από τις δυσκολότερες εργασίες. Επιπλέον, η καλή σχεδίαση διευκολύνει τον έλεγχο του λογισµικού κατά τη διάρκεια και µετά το πέρας της υλοποίησης. υσκολία στην πραγµατοποίηση του ελέγχου και του εντοπισµού των αιτιών των σφαλµάτων έχει ως συνέπεια τη δραµατική αύξηση του κόστους ανάπτυξης και την καθυστέρηση στην παράδοση του προϊόντος. Τέλος, η παραγωγή τεκµηρίωσης (συνοδευτικών εγγράφων και διαγραµµάτων) σε όλες τις φάσεις ανάπτυξης στον κύκλο ζωής του λογισµικού είναι πολύ πιο αξιόπιστη και συνεπής, στην περίπτωση αντικειµενοστρεφών συστηµάτων που πληρούν τις προδιαγραφές καλής ποιότητας σχεδίασης. Για την παρουσίαση των προβληµάτων που µπορούν να παρουσιαστούν κατά την ανάπτυξη ενός έργου λογισµικού το οποίο υφίσταται αλλαγές και εξελίσσεται λόγω νέων απαιτήσεων από πλευράς χρηστών, θα χρησιµοποιηθεί ένα απλοποιηµένο, υποθετικό παράδειγµα. Το παράδειγµα υπερβάλλει σε ορισµένα σηµεία καθώς στόχος είναι να καταδειχθεί η αναγκαιότητα θεώρησης των πιθανών επερχόµενων αλλαγών στις απαιτήσεις. Αρχικά θα παρουσιαστεί η αντιµετώπιση µε µία διαδικασιακή γλώσσα και στη συνέχεια η ορθή σχεδίαση µε χρήση αντικειµενοστρεφούς προγραµµατισµού. 1.1 Πρόγραµµα Σχεδίασης Σχηµάτων Αρχική Σχεδίαση Θεωρούµε ότι η αρχική απαίτηση από τους πελάτες για ένα έργο λογισµικού, αφορά ένα πρόγραµµα το οποίο διαβάζοντας την επιλογή χρώµατος του χρήστη από το πληκτρολόγιο, σχεδιάζει έναν κύκλο µε το συγκεκριµένο χρώµα. Θεωρώντας ότι υπάρχει ήδη µία µονάδα (συνάρτηση) η οποία επιστρέφει το χρώµα που επέλεξε ο χρήστης στο πληκτρολόγιο ως ακέραιο και µία µονάδα η οποία σχεδιάζει έναν κύκλο µε συγκεκρι- µένο χρώµα στην οθόνη, η σχεδίαση της δοµής του συστήµατος (δοµηµένη σχεδίαση) θα ήταν αυτή του Σχήµατος 1.1.

4 18 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΣΧΕ ΙΑΣΗ DrawColoredShape int int KeyboardRead DrawCircle Σχήµα 1.1: Αρχική δοµή προγράµµατος σχεδίασης σχηµάτων Η ανωτέρω σχεδίαση είναι η πλέον λογική, για τις δεδοµένες απαιτήσεις. Η συνάρτηση DrawColoredShape που καλεί τις άλλες δύο, µπορεί να υλοποιηθεί ως εξής: void DrawColoredShape() { int color; color = KeyboardRead(); DrawCircle(color); } //ανάγνωση χρώµατος από πληκτρολόγιο //σχεδίαση κύκλου Έστω, ότι µετά από κάποιο διάστηµα οι απαιτήσεις τροποποιούνται και οι πελάτες ζητούν πλέον και τη δυνατότητα σχεδίασης τετραγώνων µε το χρώµα που επέλεξε ο χρήστης. Η λογικότερη επιλογή θα ήταν η προσθήκη µιας παραµέτρου στη συνάρτηση DrawColoredShape() ώστε µε βάση την τιµή της παραµέτρου να σχεδιάζεται ένας κύκλος ή ένα τετράγωνο αντίστοιχα. Ωστόσο, σε πραγµατικό περιβάλλον, ένα πρόγραµµα σαν το DrawColoredShape που έχει ήδη δηµιουργηθεί, έχει εγκατασταθεί και πολύ πιθανόν να χρησιµοποιείται από πλήθος άλλων προγραµµάτων. Κατά συνέπεια, δεν υπάρχει η δυνατότητα προσθήκης παραµέτρου στη συνάρτηση, διότι τότε θα άλλαζε η υπογραφή της (υπογραφή = όνοµα συνάρτησης, τύπος και αριθµός παραµέτρων, επιστρεφόµενος τύπος) και κατά συνέπεια θα έπρεπε να τροποποιηθούν όλες οι συναρτήσεις που καλούν την DrawColoredShape()! Κάτι τέτοιο, εκτός από τα προβλήµατα κόστους και χρόνου που εισάγει, µπορεί να είναι και αδύνατο στην περίπτωση προϊόντων που έχουν παραδοθεί σε πελάτες. Αφού η αλλαγή της εξωτερικής διασύνδεσης του προγράµµατος δεν είναι δυνατή, η µοναδική λύση είναι η χρήση µιας καθολικής µεταβλητής. Οι καθολικές µεταβλητές είναι γνωστό ότι πρέπει να αποφεύγονται καθώς οδηγούν σε µεγάλο βαθµό σύζευξης µεταξύ των µονάδων, ωστόσο, εδώ είναι η µοναδική εναλλακτική λύση. Μία λογική καθολική µεταβλητή καθορίζει το είδος του σχήµατος που πρόκειται να σχεδιαστεί. Η εξ' ορισµού τιµή της είναι τέτοια ώστε τα ήδη υπάρχοντα προγράµµατα (και τα οποία σχεδιάζουν κύκλους) να µην επηρεαστούν από την αλλαγή. Το πρόγραµµα της DrawColoredShape() θα είναι πλέον:

5 1 Εισαγωγή 19 //καθολική µεταβλητή bool shapeiscircle = true; void DrawColoredShape() { int color; color = KeyboardRead(); if(shapeiscircle) DrawCircle(color); else DrawSquare(color); } όπου DrawSquare θεωρούµε ότι είναι µία µονάδα σχεδίασης τετραγώνων. Αν κάποιο πρόγραµµα-πελάτης της DrawColoredShape() επιθυµεί να σχεδιάσει τετράγωνα, θα πρέπει να θέσει πρώτα την τιµή false στην καθολική µεταβλητή. Επιπλέον, µετά την κλήση της συνάρτησης, το πρόγραµµα-πελάτης θα πρέπει να επαναφέρει την καθολική µεταβλητή στην αρχική της τιµή, ειδάλλως όλες οι επόµενες κλήσεις θα σχεδιάζουν κύκλους! Η έλλειψη ευελιξίας του συστήµατος ως προς τις νέες απαιτήσεις έχει αρχίσει ήδη να γίνεται εµφανής. Μετά από κάποιο χρονικό διάστηµα θεωρούµε ότι οι χρήστες επανέρχονται µε µία νέα απαίτηση. Επιθυµούν η επιλογή του χρώµατος να µη γίνεται µόνο από το πληκτρολόγιο, αλλά να µπορεί να γίνει και µέσω κατάλληλης οθόνης αφής (touchscreen). Αν υποθέσουµε ότι υπάρχει µια µονάδα ανάγνωσης από την οθόνη αφής, το προηγού- µενο πρόγραµµα τροποποιείται µε τη χρήση µιας νέας καθολικής µεταβλητής, ως εξής: //καθολικές µεταβλητές bool shapeiscircle = true; bool inputiskeyboard = true; void DrawColoredShape() { int color; if(inputiskeyboard) color = KeyboardRead(); else color = TouchScreenRead(); if(shapeiscircle) DrawCircle(color); else DrawSquare(color); }

6 20 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΣΧΕ ΙΑΣΗ Η καθολική µεταβλητή για ακόµα µία φορά προστέθηκε ώστε να µην τροποποιηθεί η υπογραφή της συνάρτησης DrawColoredShape(). Ωστόσο, είναι φανερό, ότι ακό- µα και η έλευση δύο µόνο νέων απαιτήσεων αλλοίωσαν την αρχική σχεδίαση και υποβάθµισαν την ποιότητά της. Πλέον είναι αρκετά δύσκολο να πραγµατοποιηθούν νέες αλλαγές ακόµα και του ιδίου τύπου. Αν για παράδειγµα, ζητηθεί η δυνατότητα σχεδίασης και ενός νέου σχήµατος, η φιλοσοφία του ελέγχου που εξετάζει µία απλή λογική µεταβλητή πρέπει να επανεξεταστεί. Το λογισµικό έχει αρχίσει να εµφανίζει συµπτώ- µατα "φτωχής" σχεδίασης τα οποία θα αναλυθούν στα επόµενα κεφάλαια. 1.2 Πρόγραµµα Σχεδίασης Σχηµάτων Βελτιωµένη Σχεδίαση Αν υποθέσουµε ότι η οµάδα ανάπτυξης είχε γνώση των αντικειµενοστρεφών τεχνικών, η αρχική σχεδίαση του συστήµατος θα ήταν ουσιαστικά η ίδια. Η διαφορετική αντιµετώπιση λαµβάνει χώρα µόνο µετά την εµφάνιση των νέων απαιτήσεων. Το γεγονός ότι το σχήµα που σχεδιάζεται άλλαξε, υποδηλώνει έναν "άξονα αλλαγών" (axis of change), κατά µήκος του οποίου µπορούν να γίνουν και άλλες παρόµοιες αλλαγές στο µέλλον. Με άλλα λόγια, µπορεί στο µέλλον να ζητηθεί και η σχεδίαση άλλων σχηµάτων εκτός από κύκλους και τετράγωνα. Για το λόγο αυτό, η οµάδα ανάπτυξης επιλέγει να καταστήσει το σχέδιο ανθεκτικό σε τέτοιου τύπου αλλαγές, χρησιµοποιώντας την αφηρηµένη έννοια ενός Σχήµατος, εφοδιασµένη µε µία λειτουργία σχεδίασης. Η συνάρτηση DrawColoredShape() µπορεί πλέον να αποστέλλει µηνύµατα σε αυτή την αφαίρεση τύπου Σχήµα (Shape) και η οποία υλοποιείται στις αντικειµενοστρεφείς γλώσσες ως αφηρηµένη κλάση (C++) ή ως διασύνδεση (Java). Κάθε πραγµατικό σχήµα (π.χ. κύκλος, τετράγωνο) υλοποιείται ως µία συγκεκριµένη κλάση που κληρονοµεί (υλοποιεί) την αφαίρεση τύπου Σχήµα. Η στατική δοµή του βελτιωµένου πλέον συστήµατος θα µπορούσε να αναπαρασταθεί µε ένα διάγραµµα κλάσεων όπως αυτό του Σχήµατος 1.2 (Τα διαγράµµατα κλάσεων θα εξεταστούν στο 2 ο κεφάλαιο. Για DrawColoredShape Shape KeyboardRead Circle Square Σχήµα 1.2: Βελτιωµένη δοµή προγράµµατος σχεδίασης σχηµάτων µετά την πρώτη αλλαγή στις απαιτήσεις

7 1 Εισαγωγή 21 την κατανόηση του διαγράµµατος, κάθε ορθογώνιο συµβολίζει µία κλάση, οι γραµµές συµβολίζουν διαύλους επικοινωνίας µεταξύ των κλάσεων, ενώ σηµειώνονται επίσης και τα ονόµατα των µεθόδων). Το σύστηµα πλέον δεν καλύπτει απλώς την νέα απαίτηση αλλά έχει καλύτερη σχεδίαση καθώς συµµορφώνεται µε την αρχή της Ανοικτής-Κλειστής Σχεδίασης που θα εξεταστεί σε επόµενο κεφάλαιο. Πλέον, η λειτουργικότητα της µονάδας DrawColored- Shape µπορεί να επεκταθεί (προσθέτοντας τη δυνατότητα σχεδίασης οποιουδήποτε νέου σχήµατος πέραν των κύκλων και τετραγώνων) χωρίς να απαιτείται η τροποποίηση του κώδικά της. Με άλλα λόγια, η συµπεριφορά του συστήµατος που παράγει η υποτιθέµενη οµάδα ανάπτυξης µπορεί να εµπλουτίζεται (ανοικτή σε επέκταση) χωρίς καµία αλλαγή του λογισµικού (κλειστή σε αλλαγές)! Ο κώδικας θα έχει την ακόλουθη µορφή: class Shape { virtual void draw() = 0; //αµιγώς υπερβατή µέθοδος: ίνει τη //δυνατότητα πολυµορφικής συµπεριφοράς class Circle : public Shape { virtual void draw() { DrawCircle(); } class Square : public Shape { virtual void draw() { DrawSquare(); } void DrawColoredShape(Shape* myshape) { int color; color = KeyboardRead(); myshape->draw(); } Όπως γίνεται φανερό, ο κώδικας (και η υπογραφή) της DrawColoredShape τροποποιήθηκε. Αυτό ήταν αναγκαίο για τη βελτίωση της σχεδίασης, ωστόσο απαιτείται µόνο για τη συγκεκριµένη αλλαγή σχήµατος. Πλέον, η συνάρτηση DrawColored- Shape() λαµβάνει ως παράµετρο έναν δείκτη (pointer) προς την αφηρηµένη κλάση Σχήµα. H συνάρτηση DrawColoredShape() θα λειτουργήσει εξίσου, για οποιοδήποτε πραγµατικό σχήµα (κύκλο, τετράγωνο ή οτιδήποτε άλλο) περάσει ως παράµετρος. Η δυνατότητα αυτή παρέχεται µέσω του πολυµορφισµού που θα εξεταστεί αναλυτικά στο 4 ο κεφάλαιο. Σηµειώνεται ότι, η οµάδα σχεδίασης δεν επιχείρησε να προβλέψει το είδος των ε- περχόµενων αλλαγών (κάτι τέτοιο θα ήταν εξαιρετικά δύσκολο αν όχι αδύνατο). Η

8 22 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΣΧΕ ΙΑΣΗ αρχική σχεδίαση ήταν η πλέον προφανής. Μόνο µετά την αλλαγή των απαιτήσεων η σχεδίαση του συστήµατος τροποποιήθηκε και µάλιστα προς την κατεύθυνση της ανθεκτικότητας του συστήµατος σε περαιτέρω αλλαγές του ιδίου τύπου. Το να επιχειρήσει κανείς να σχεδιάσει ένα σύστηµα ανθεκτικό ως προς όλες τις πιθανές µελλοντικές α- παιτήσεις, σηµαίνει ότι το λογισµικό θα πρέπει να ενσωµατώσει πληθώρα περιττών στοιχείων. Με άλλα λόγια, η βελτίωση της σχεδίασης επιδιώκεται µόνο αφού πρώτα διαγνωστεί κάποια αδυναµία που αφορά στη συντήρηση του συστήµατος. Στην περίπτωση έλευσης νέων αλλαγών στις απαιτήσεις, όπως για παράδειγµα η δυνατότητα χρήσης ως συσκευής εισόδου µιας οθόνης αφής, η σχεδίαση πρέπει να αναδοµηθεί ως προς τον συγκεκριµένο άξονα αλλαγών. Με στόχο το "κλείσιµο" της σχεδίασης έναντι άλλων πιθανών συσκευών εισόδου, εισάγεται στο σύστηµα η αφαίρεση τύπου Είσοδος και υλοποιείται ως αφηρηµένη κλάση ή διασύνδεση. Κάθε συγκεκριµένη είσοδος κληρονοµεί την αφαίρεση παρέχοντας υλοποίηση στις λειτουργίες που απαιτούνται, όπως φαίνεται στο διάγραµµα κλάσεων της UML του Σχήµατος read() Input DrawColoredShape Shape Keyboard TouchScreen Circle Square +read() +read() Σχήµα 1.3: Βελτιωµένη δοµή προγράµµατος σχεδίασης σχηµάτων µετά τη δεύτερη αλλαγή στις απαιτήσεις ενώ ο αντίστοιχος κώδικας είναι: class Input { virtual int read() = 0; class Keyboard : public Input { virtual int read() { return KeyboardRead(); } class TouchScreen : public Input { virtual int read() { return TouchScreenRead(); }

9 1 Εισαγωγή 23 class Shape { virtual void draw() = 0; class Circle : public Shape { virtual void draw() { DrawCircle(); } class Square : public Shape { virtual void draw() { DrawSquare(); } void DrawColoredShape(Shape* myshape, Input* myinput) { int color; color = myinput -> read(); myshape -> draw(); } Πλέον, η συνάρτηση DrawColoredShape() λαµβάνει ως παράµετρο και έναν δείκτη προς την αφαίρεση τύπου Είσοδος. Μπορεί δε, να λειτουργήσει σωστά, για οποιοδήποτε αντικείµενο µιας κλάσης η οποία υλοποιεί την αφαίρεση Input, ακόµα και αν µια τέτοια κλάση (π.χ. µια νέα συσκευή εισόδου) δεν έχει ακόµα εφευρεθεί! 1.3 ιάγνωση Προβληµάτων Εύρεση της βελτιωµένης σχεδίασης Το ερώτηµα που τίθεται, είναι πώς µπορεί να γνωρίζει η οµάδα ανάπτυξης τι ακριβώς πρέπει να τροποποιηθεί ώστε η σχεδίαση να παραµείνει ανθεκτική έναντι µελλοντικών αλλαγών στα σχήµατα ή τις εισόδους. Το θέµα αυτό είναι το αντικείµενο των κεφαλαίων που διαπραγµατεύονται τις αρχές, τα πρότυπα και τους ευρετικούς κανόνες της αντικειµενοστρεφούς σχεδίασης. Στο συγκεκριµένο παράδειγµα, η αρχική σχεδίαση περιελάµβανε τη µονάδα Draw- ColoredShape η οποία εξαρτιόταν από τις µονάδες KeyboardRead και DrawCircle. Η εξάρτηση υφίσταται, καθώς για την κλήση των αντίστοιχων συναρτήσεων η DrawColoredShape πρέπει τουλάχιστον να γνωρίζει τις υπογραφές τους. Ωστόσο, η συνάρτηση DrawColoredShape() είναι µια µονάδα υψηλού επιπέδου η οποία θέτει τη στρατηγική στο συγκεκριµένο σύστηµα. Οι άλλες δύο συναρτήσεις είναι µονάδες χαµηλού επιπέδου που παρέχουν απλώς την υλοποίηση. Η συγκεκριµένη σχεδίαση πάσχει από το ότι η στρατηγική υψηλού επιπέδου εξαρτάται από τις λεπτοµέρειες υλοποίησης.

10 24 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΣΧΕ ΙΑΣΗ Η κατανόηση αυτής της αδυναµίας είναι το πρώτο βήµα για τη βελτίωση της σχεδίασης. Στόχος πλέον είναι η αντιστροφή των εξαρτήσεων έτσι ώστε οι µονάδες χαµηλού επιπέδου να εξαρτώνται από τη στρατηγική (ότι ακριβώς είναι επιθυµητό και στην πραγµατικότητα). Η επίλυση αυτού του σχεδιαστικού προβλήµατος επιτεύχθηκε µε την εφαρµογή ενός κατάλληλου προτύπου σχεδίασης (την ίδια φιλοσοφία έχουν τα πρότυπα σχεδίασης "Στρατηγική", "Κατάσταση" και "Μέθοδος Υπόδειγµα"). Στη βελτιωµένη σχεδίαση η συνάρτηση DrawColoredShape() σχετίζεται µόνο µε τις αφαιρέσεις τύπου Σχήµα και Είσοδος και δεν εξαρτάται από αυτές, καθώς δεν αποτελούν κάτι συγκεκριµένο. Οι διάφορες κλάσεις που υλοποιούν αυτές τις αφηρηµένες κλάσεις είναι πλέον υποχρεωµένες να συµµορφώνονται µε ότι επιβάλλουν οι αφαιρέσεις. Με το ανωτέρω απλουστευτικό παράδειγµα επιχειρήθηκε να δοθεί µια εικόνα των προβληµάτων που µπορούν να εµφανιστούν ως συνέπεια µιας κακής σχεδίασης. Το αντικείµενο των επόµενων κεφαλαίων είναι η απεικόνιση ενός συστήµατος µε τη χρήση της Ενοποιηµένης Γλώσσας Μοντελοποίησης (UML) καθώς και η παράθεση αντιπροσωπευτικών τεχνικών βελτίωσης της σχεδίασης αντικειµενοστρεφούς λογισµικού.

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

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

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης ΠΟΛΥΜΟΡΦΙΣΜΟΣ Λόγω της θεμελιώδους σημασίας της έννοιας του πολυμορφισμού (polymorphism) στην αντικειμενοστρεφή σχεδίαση, κρίνεται σκόπιμο στο σημείο αυτό του βιβλίου να αναλυθεί εκτενέστερα. Ο πολυμορφισμός

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

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

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

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

Εισαγωγή στη Σχεδίαση Λογισμικού

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μεθοδολογίες Παραγωγής Λογισµικού

Μεθοδολογίες Παραγωγής Λογισµικού Μεθοδολογίες Παραγωγής Λογισµικού Βασικά Γενικά Μοντέλα Μοντέλο καταρράκτη (waterfall model) Ξεχωριστές φάσεις καθορισµού απαιτήσεων και ανάπτυξης, επικύρωσης, εξέλιξης Εξελικτική ανάπτυξη (evolutionary

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

Πληροφορική 2. Γλώσσες Προγραμματισμού

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

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

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

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

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

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

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.

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

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

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

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

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

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

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

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραµµα σπουδών "ΠΛΗΡΟΦΟΡΙΚΗ" - Θ.Ε. ΠΛΗ11 Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@cs.ntua.gr

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

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

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

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

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

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

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

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

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

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

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

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

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

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

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης

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

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

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

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

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Πρώτοι αριθμοί ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Ένας ακέραιος μεγαλύτερος του 1 είναι πρώτος αν έχει ακριβώς δύο διαιρέτες (τη μονάδα και τον εαυτό του). Πρόβλημα: έλεγχος

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

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής Περιεχόµενα Κατηγορίες Π.Σ. ιαχείρισης Πράξεων ιοίκησης Υποστήριξης Αποφάσεων Έµπειρα Συστήµατα Ατόµων και Οµάδων Ο κύκλος ζωής Π.Σ. Ορισµός Φάσεις Χρήστες

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

Βασίλειος Κοντογιάννης ΠΕ19

Βασίλειος Κοντογιάννης ΠΕ19 Ενότητα2 Προγραμματιστικά Περιβάλλοντα Δημιουργία Εφαρμογών 5.1 Πρόβλημα και Υπολογιστής Τι ονομάζουμε πρόβλημα; Πρόβλημα θεωρείται κάθε ζήτημα που τίθεται προς επίλυση, κάθε κατάσταση που μας απασχολεί

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Συναρτήσεις 60 Ροή ελέγχου Είναι η σειρά µε την οποία εκτελούνται οι εντολές. Μέχρι τώρα, «σειριακή»,

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

ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ

ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ ΤΑΞΗ: ΚΑΤΕΥΘΥΝΣΗ: ΜΑΘΗΜΑ: ΘΕΜΑ Α Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ (2ος Κύκλος) ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ηµεροµηνία: Παρασκευή 25 Απριλίου 2014 ιάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ

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

2.1 Αντικειµενοστρεφής προγραµµατισµός

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

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

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

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

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

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

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

Γενικό πλαίσιο. Software Evolution Monitor Requirements. Απόστολος Ζάρρας http://www.cs.uoi.gr/~zarras/se.htm

Γενικό πλαίσιο. Software Evolution Monitor Requirements. Απόστολος Ζάρρας http://www.cs.uoi.gr/~zarras/se.htm Software Evolution Monitor Requirements Απόστολος Ζάρρας http://www.cs.uoi.gr/~zarras/se.htm Γενικό πλαίσιο Γενικά, οι αποφάσεις που λαμβάνουμε και ο προγραμματισμός της όλης διαδικασίας συντήρησης ενός

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

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Συναρτήσεις & Υποπρογράμματα ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Τμηματικός Προγραμματισμός Η επίλυση ενός προβλήματος διευκολύνεται

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

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Φτάσαμε σιγά σιγά στο τέλος του βιβλίου. Αντί για κάποιον επίλογο σκέφτηκα να συλλέξω κάποια πράγματα που θα ήθελα να πω σε κάποιον ο οποίος αρχίζει

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

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

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2014 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ: ΚΑΤΕΥΘΥΝΣΗ: ΜΑΘΗΜΑ: ΘΕΜΑ Α Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ (2ος Κύκλος) ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ηµεροµηνία: Παρασκευή 25 Απριλίου 2014 ιάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ

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

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

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

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

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

ΑΞΙΟΠΙΣΤΙΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ

ΑΞΙΟΠΙΣΤΙΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ ΑΞΙΟΠΙΣΤΙΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ Εισαγωγή Ηεµφάνιση ηλεκτρονικών υπολογιστών και λογισµικού σε εφαρµογές µε υψηλές απαιτήσεις αξιοπιστίας, όπως είναι διαστηµικά προγράµµατα, στρατιωτικές τηλεπικοινωνίες,

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

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

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

4.3. Γραµµικοί ταξινοµητές

4.3. Γραµµικοί ταξινοµητές Γραµµικοί ταξινοµητές Γραµµικός ταξινοµητής είναι ένα σύστηµα ταξινόµησης που χρησιµοποιεί γραµµικές διακριτικές συναρτήσεις Οι ταξινοµητές αυτοί αναπαρίστανται συχνά µε οµάδες κόµβων εντός των οποίων

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

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Ακαδηµαϊκό Έτος 2003-2004, Εαρινό Εξάµηνο ιδάσκων

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

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

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

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

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

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

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

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης Δοµές Δεδοµένων 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Χρήση αναδροµικών εξισώσεων στην ανάλυση αλγορίθµων Αφηρηµένοι τύποι δεδοµένων Συλλογές στοιχείων Στοίβα

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

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

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

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

Ανάλυση Απαιτήσεων Mεθοδολογίες Ανάπτυξης

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

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

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

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

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

Γεώργιος Φίλιππας 23/8/2015

Γεώργιος Φίλιππας 23/8/2015 MACROWEB Προβλήματα Γεώργιος Φίλιππας 23/8/2015 Παραδείγματα Προβλημάτων. Πως ορίζεται η έννοια πρόβλημα; Από ποιους παράγοντες εξαρτάται η κατανόηση ενός προβλήματος; Τι εννοούμε λέγοντας χώρο ενός προβλήματος;

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

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος 4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος Μεταβλητές Συστήματος Η Processing χρησιμοποιεί κάποιες μεταβλητές συστήματος, όπως τις ονομάζουμε, για να μπορούμε να παίρνουμε πληροφορίες από το

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

Πληροφορική 2. Τεχνολογία Λογισμικού

Πληροφορική 2. Τεχνολογία Λογισμικού Πληροφορική 2 Τεχνολογία Λογισμικού 1 2 Κρίση Λογισμικού (1968) Στην δεκαετία του 1970 παρατηρήθηκαν μαζικά: Μεγάλες καθυστερήσεις στην ολοκλήρωση κατασκευής λογισμικών Μεγαλύτερα κόστη ανάπτυξης λογισμικού

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Καθηγητής Πληροφορικής ΠΕ19 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6 ο : ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ Η έννοια του προγράμματος

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

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Αλγόριθµοι, στοιχεία

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

Σχεδίαση Κλάσεων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Σχεδίαση Κλάσεων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση: Σχεδίαση Κλάσεων Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.11.19 Εισαγωγή 2 ιαρκής συντήρηση και επέκταση λογισµικού Οι εταιρίες συνήθως συντηρούν, επεκτείνουν

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

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

ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 2016-2017 ΕΡΓΑΣΙΑ 1 (JAVA) Παράδοση 26/4/2017 Στα πλαίσια της εργασίας θα υλοποιηθεί ένα απλοϊκό πρόγραμμα κρατήσεων Ξενοδοχείων. Για απλοποίηση θα περιοριστούμε

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

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Ποιες γλώσσες αναφέρονται ως φυσικές και ποιες ως τεχνητές; Ως φυσικές γλώσσες αναφέρονται εκείνες οι οποίες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων,

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

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό 5 ο Εργαστήριο Λογικοί Τελεστές, Δομές Ελέγχου Λογικοί Τελεστές > μεγαλύτερο = μεγαλύτερο ή ίσο!= διαφορετικό Οι λογικοί τελεστές χρησιμοποιούνται για να ελέγξουμε

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

Διδακτική Προγραμματισμού. Χαρίκλεια Τσαλαπάτα 20/2/2012

Διδακτική Προγραμματισμού. Χαρίκλεια Τσαλαπάτα 20/2/2012 Διδακτική Προγραμματισμού Χαρίκλεια Τσαλαπάτα 20/2/2012 Διδακτική προγραμματισμού Παλαιότερα, η διδασκαλία του προγραμματισμού ταυτιζόταν με τη διδακτική της πληροφορικής Πλέον Η διδακτική της πληροφορικής

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

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

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

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

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει.

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει. οµηµένες τεχνικές Ο στόχος των δοµηµένων τεχνικών είναι: Υψηλής ποιότητας προγράµµατα Εύκολη τροποποίηση προγραµµάτων Απλοποιηµένα προγράµµατα Μείωση κόστους και χρόνου ανάπτυξης. Οι βασικές αρχές τους

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 9 ΕΛΕΓΧΟΣ ΙΑ ΙΚΑΣΙΑ ΠΑΡΑΚΟΛΟΥΘΗΣΗΣ ΤΩΝ ΣΧΕ ΙΩΝ ΡΑΣΗΣ 241 9 ΚΕΦΑΛΑΙΟ 9 ΕΛΕΓΧΟΣ ΙΑ ΙΚΑΣΙΑ ΠΑΡΑΚΟΛΟΥΘΗΣΗΣ ΤΩΝ ΣΧΕ ΙΩΝ ΡΑΣΗΣ Η επιτυχής υλοποίηση του επιχειρησιακού σχεδιασµού στη βάση των σχεδίων δράσης που έχουν αναπτυχθεί, προϋποθέτει την ύπαρξη αποτελεσµατικής

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος

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

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

Επικοινωνία:

Επικοινωνία: Σπύρος Ζυγούρης Καθηγητής Πληροφορικής Επικοινωνία: spzygouris@gmail.com Πως ορίζεται ο τμηματικός προγραμματισμός; Πρόγραμμα Εντολή 1 Εντολή 2 Εντολή 3 Εντολή 4 Εντολή 5 Εντολή 2 Εντολή 3 Εντολή 4 Εντολή

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

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

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

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

Δομημένος Προγραμματισμός

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

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

Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή

Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή Γ Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή Η χρήση των ηλεκτρονικών υπολογιστών στο τεχνικό σχέδιο, και ιδιαίτερα στο αρχιτεκτονικό, αποτελεί πλέον μία πραγματικότητα σε διαρκή εξέλιξη, που επηρεάζει

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

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα Περιεχόμενα Πρόλογος... 9 Κεφάλαιο 1: Δομή και λειτουργία του υπολογιστή... 11 Κεφάλαιο 2: Χρήση Λ.Σ. DOS και Windows... 19 Κεφάλαιο 3: Δίκτυα Υπολογιστών και Επικοινωνίας... 27 Κεφάλαιο 4: Unix... 37

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

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

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

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

4.2 Δραστηριότητα: Ολικά και τοπικά ακρότατα

4.2 Δραστηριότητα: Ολικά και τοπικά ακρότατα 4.2 Δραστηριότητα: Ολικά και τοπικά ακρότατα Θέμα της δραστηριότητας Η δραστηριότητα αυτή αφορά στην εισαγωγή των εννοιών του ολικού και του τοπικού ακροτάτου. Στόχοι της δραστηριότητας Μέσω αυτής της

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

Λογισµικό (Software SW) Γλώσσες

Λογισµικό (Software SW) Γλώσσες Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής

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

Κεφάλαιο 10ο. ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ιαδικασίες - Συναρτήσεις

Κεφάλαιο 10ο. ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ιαδικασίες - Συναρτήσεις Κεφάλαιο 10ο ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ιαδικασίες - Συναρτήσεις Μάριος Αραποστάθης καθηγητής πληροφορικής Βαρβακείου Λυκείου http://users.sch.gr/mariosarapostathi s Τμηματικός Προγραματισμός Ο καλύτερος τρόπος για

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

Wrapper Classes, Abstract Classes and Interfaces

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ ΘΕΜΑ ο 2.5 µονάδες ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ Τελικές εξετάσεις 2 Σεπτεµβρίου 2005 5:00-8:00 Σχεδιάστε έναν αισθητήρα ercetro

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

ΑΕΠΠ Ερωτήσεις θεωρίας

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

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

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

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

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

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ Ο κύκλος ζωής λογισµικού (συνοπτικά) Η παραδοσιακή φάση ανάπτυξης του κύκλου ζωής λογισµικού Φάση καθορισµού απαιτήσεων (1/2) ΤΙ πρέπει να κάνει το

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

Θέµατα εξετάσεων µε απαντήσεις

Θέµατα εξετάσεων µε απαντήσεις Θέµατα εξετάσεων µε απαντήσεις 1. Τι αλλαγές θα κάνατε στον παρακάτω κώδικα αν θέλατε να εφαρµόσετε την αρχή του αµυντικού προγραµµατισµού (1 µονάδα); #define LENGTH 10 char *strings[length]; char *getstring(int

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

ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ. Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων

ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ. Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων 1 Γενικά Εξαιρετικά σηµαντικά: η απόφαση για το που ανήκουν οι µέθοδοι, και πως αλληλεπιδρούν τα αντικείµενα

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

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Γρηγόρης Πράσινος Υποψήφιος ιδάκτωρ Τµήµα Μηχ/κων Η/Υ &

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

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

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

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

Γουλή Ευαγγελία. 1. Εισαγωγή. 2. Παρουσίαση και Σχολιασµός των Εργασιών της Συνεδρίας

Γουλή Ευαγγελία. 1. Εισαγωγή. 2. Παρουσίαση και Σχολιασµός των Εργασιών της Συνεδρίας 1. Εισαγωγή Σχολιασµός των εργασιών της 16 ης παράλληλης συνεδρίας µε θέµα «Σχεδίαση Περιβαλλόντων για ιδασκαλία Προγραµµατισµού» που πραγµατοποιήθηκε στο πλαίσιο του 4 ου Πανελλήνιου Συνεδρίου «ιδακτική

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΘΕΜΑ 1 ο (2.5 µονάδες) ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Τελικές εξετάσεις 17 Φεβρουαρίου 2004 ιάρκεια: 2 ώρες (15:00-17:00)

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 435: ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΥΠΟΛΟΓΙΣΤΗ Ακαδηµαϊκό Έτος 2004 2005, Χειµερινό Εξάµηνο 2 Η ΟΜΑ ΙΚΗ ΕΡΓΑΣΙΑ: ΑΝΑΠΤΥΞΗ ΑΡΧΙΚΗΣ Ι ΕΑΣ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΚΑΙ ΑΝΑΛΥΣΗ ΑΝΑΓΚΩΝ

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

ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΙΑΤΑΞΗΣ ΤΩΝ ΑΡΙΘΜΩΝ ΚΑΙ ΧΡΗΣΗ ΤΗΣ ΑΠΟΛΥΤΗΣ ΤΙΜΗΣ ΣΤΟΝ ΑΞΟΝΑ ΤΩΝ ΠΡΑΓΜΑΤΙΚΩΝ ΑΡΙΘΜΩΝ ΠΕΡΙΛΗΨΗ. Εισαγωγή

ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΙΑΤΑΞΗΣ ΤΩΝ ΑΡΙΘΜΩΝ ΚΑΙ ΧΡΗΣΗ ΤΗΣ ΑΠΟΛΥΤΗΣ ΤΙΜΗΣ ΣΤΟΝ ΑΞΟΝΑ ΤΩΝ ΠΡΑΓΜΑΤΙΚΩΝ ΑΡΙΘΜΩΝ ΠΕΡΙΛΗΨΗ. Εισαγωγή ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΙΑΤΑΞΗΣ ΤΩΝ ΑΡΙΘΜΩΝ ΚΑΙ ΧΡΗΣΗ ΤΗΣ ΑΠΟΛΥΤΗΣ ΤΙΜΗΣ ΣΤΟΝ ΑΞΟΝΑ ΤΩΝ ΠΡΑΓΜΑΤΙΚΩΝ ΑΡΙΘΜΩΝ Αθανάσιος Γαγάτσης Τµήµα Επιστηµών της Αγωγής Πανεπιστήµιο Κύπρου Χρήστος Παντσίδης Παναγιώτης Σπύρου Πανεπιστήµιο

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

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση: Χειρισµός Σφαλµάτων Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.12.06 Σφάλµατα, Σφάλµατα, Σφάλµατα 2 εν υπάρχουν προγράµµατα χωρίς λογικά λάθη Υλοποίηση που

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

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

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

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

ΕΛΕΓΧΟΣ ΠΑΡΑΓΩΓΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ

ΕΛΕΓΧΟΣ ΠΑΡΑΓΩΓΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΕΛΕΓΧΟΣ ΠΑΡΑΓΩΓΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ Ενότητα: Αναγνώριση Διεργασίας - Προσαρμοστικός Έλεγχος (Process Identification) Αλαφοδήμος Κωνσταντίνος

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗ ΔΙΑΧΕΙΡΙΣΗ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΓΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗ ΔΙΑΧΕΙΡΙΣΗ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΓΩΝ 1. Διαχείριση έργων Τις τελευταίες δεκαετίες παρατηρείται σημαντική αξιοποίηση της διαχείρισης έργων σαν ένα εργαλείο με το οποίο οι διάφορες επιχειρήσεις

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

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

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΠΕΡΣΕΦΟΝΗ ΠΟΛΥΧΡΟΝΙΔΟΥ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΤΕ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΠΕΡΣΕΦΟΝΗ ΠΟΛΥΧΡΟΝΙΔΟΥ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

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

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

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

Ακέραιος Γραμμικός Προγραμματισμός

Ακέραιος Γραμμικός Προγραμματισμός Τμήμα Μηχανικών Πληροφορικής ΤΕ 2017-2018 Ακέραιος Γραμμικός Προγραμματισμός Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 12/01/2017 1 Ακέραιος Γραμμικός Προγραμματισμός Όταν για

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

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

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

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

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

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

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

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 3 1 / 25 Ενότητα 3 οκιµή Προγραµµάτων (Program Testing)

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