Τεχνολογία Λογισμικού

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

Download "Τεχνολογία Λογισμικού"

Transcript

1 Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 18/12/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια

2 Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Παραγωγή Πηγαίου Κώδικα

3 Στόχος Μετάβαση από τη φάση της σχεδίασης στη φάση της κωδικοποίησης Παρουσίαση εργασιών και προβληµάτων που προκύπτουν κατά τη φάση συγγραφής του πηγαίου κώδικα λογισµικού Αφαιρετικό γενικό επίπεδο ΟΧΙ αναφορά σε συγκεκριµένη γλώσσα προγραµµατισµού

4 Εισαγωγή Κωδικοποίηση: εργασία ανάπτυξης λογισμικού σχεδίασης Χρησιμοποίηση προϊόντων σχεδίασης Μετατροπή ψευδοκώδικα σε πηγαίο κώδικα ΟΜΩΣ συχνά προκύπτουν αλλαγές στον κώδικα επειδή δεν έχουν προβλεφθεί κατά τη σχεδίαση Στη σχεδίαση δεν λαµβάνουμε πάντα υπόψη τα χαρακτηριστικά της γλώσσας προγραµµατισµού που θα χρησιμοποιήσουμε Το τελικό αποτέλεσμα εξαρτάται από την κωδικοποίηση! Πολύ σημαντικός κρίκος στην αλυσίδα ανάπτυξης

5 Από τη σχεδίαση στην κωδικοποίηση Κωδικοποίηση: τελευταίο τμήμα ανάπτυξης λογισμικού Θέλουμε λογισμικό χωρίς σφάλματα! Τι σημαίνει όμως??? Το λογισµικό που πληροί τις προδιαγραφές βάσει των οποίων κατασκευάστηκε, χωρίς να παράγει σφάλµατα κατά την εκτέλεσή του (runtime), δηλαδή το λογισµικό που κάνει ακριβώς αυτό για το οποίο προορίζεται και το κάνει σωστά.

6 Λογισμικό χωρίς σφάλματα Όχι πάντα εύκολο! Εξαρτάται από τις προδιαγραφές! Αν δείχνουν πραγματικές ανάγκες χρήστη τότε ίσως οκ... Πιθανή η μεταβολή προδιαγραφών... Εγγενείς και πραγματικές δυσκολίες στην περιγραφή απαιτήσεων από το λογισµικό Ανακριβείς, εσφαλµένες, ανεπίκαιρες κάποιες προδιαγραφές

7 Θυμηθείτε... Το λογισμικό είναι ιδεατή οντότητα - πολύπλοκο τεχνικό κατασκεύασμα Μη απτή φύση λογισμικού μόνο τα αποτελέσματα χρήσης του μπορούν να είναι αντιληπτά-ορατά Δεν περιγράφεται εύκολα και μοναδικά «Σκόπευση κινούμενου στόχου από κινούμενο έδαφος και με όπλο που συνεχώς αλλάζει τη συμπεριφορά του» Μεταβαλλόμενες απαιτήσεις χρηστών (ακόμη και μέσα στην ίδια την εφαρμόγή) Εξελισσόμενο περιβάλλον ανάπτυξης λογισμικού και υλικού Μεταβαλλόμενες μεθοδολογίες, εργαλεία, περιβάλλοντα ανάπτυξης και λειτουργίας λογισμικού

8 Λογισμικό χωρίς σφάλματα Άρα ιδιαίτερα δύσκολο:-( Και η Τεχνολογία Λογισµικού??? Είναι χρήσιµο επιστηµονικό εργαλείο για την αντιµετώπιση του προβλήµατος Οι σύγχρονες γλώσσες και τα σύγχρονα περιβάλλοντα προγραµµατισµού διευκολύνουν την ανάπτυξη σύνθετου και καλά δοµηµένου κώδικα Έχουμε βελτίωση των χρησιµοποιούµενων προγραµµατιστικών τεχνικών ΕΠΟΜΕΝΩΣ βελτίωση ποιότητας λογισµικού

9 Εργαλεία κωδικοποίησης Συντάκτες προγραμμάτων Υλοποιήσεις γλωσσών προγραμματισμού Μεταγλωτιστές Διερμηνείς Συμβολομεταφραστές Εντοπιστές σφαλμάτων Γεννήτριες προγραμμάτων Συστήµατα υποστήριξης λογισµικού και ολοκληρωµένα περιβάλλοντα προγραµµατισµού

10 Συντάκτες προγραμμάτων Συντάκτες προγραμμάτων (program editors): εξειδικευµένα προγράµµατα επεξεργασίας κειµένου που διευκολύνουν την εργασία συγγραφής κώδικα Παραδείγματα Έλεγχος σύνταξης σε µία ή περισσότερες γλώσσες προγραµµατισµού Χρωµατική σύνταξη (syntax highlighting) - χρωµατισµός δεσµευµένων λέξεων, σχολίων, μεταβλητών κτλ. µε διαφορετικά χρώµατα Αυτόµατη στοίχιση Αρίθµηση γραµµών κ.ά.

11 Υλοποιήσεις γλωσσών προγραμματισμού Υλοποιήσεις γλωσσών προγραμματισμού (programming language implementations): περιέχουν κάποιο είδος προγράμματος μετάφρασης/εκτέλεσης και άλλα βοηθητικά προγράµµατα Παλιά ήταν ανεξάρτητα προγράµµατα Τώρα έχουμε ένα ενιαίο κέλυφος κάτω από το οποίο λειτουργούν/εκτελούνται διάφορα εργαλεία

12 Υλοποιήσεις γλωσσών προγραμματισμού Μεταγλωτιστές(compilers): μεταφράζουν πηγαίο κώδικα που είναι γραµµένος σε µια γλώσσα προγραµµατισµού υψηλού επιπέδου σε εκτελέσιµο κώδικα µηχανής Διερµηνείς (interpreters): εκτελούν γραµµή προς γραµµή τον πηγαίο κώδικα που είναι γραµµένος σε µια γλώσσα προγραµµατισµού υψηλού επιπέδου Συµβολοµεταφραστές (assemblers): μεταφράζουν πηγαίο κώδικα που είναι γραµµένος σε µια συµβολική γλώσσα µηχανής (assembly language) σε εκτελέσιµο κώδικα µηχανής.

13 Εντοπιστές σφαλμάτων Εντοπιστές σφαλμάτων (debuggers): βοηθούν στον εντοπισµό σφαλµάτων κατά την εκτέλεση των προγραµµάτων Υποστηρίζουν λειτουργίες όπως: εκτέλεση βήµα προς βήµα εµφάνιση τιµών µεταβλητών Εµφάνιση στοίβας εκτέλεσης καθορισµός σηµείων και συνθηκών διακοπής στην εκτέλεση του κώδικα

14 Γεννήτριες προγραμμάτων Γεννήτριες προγραμμάτων (program generators): προγράµµατα που: δέχονται ως είσοδο τις προδιαγραφές του κώδικα γραµµένες σε γλώσσα υψηλού επιπέδου παράγουν πηγαίο κώδικα γραµµένο σε κάποια γλώσσα προγραµµατισµού που πληροί τις προδιαγραφές. Οι γεννήτριες προγραµµάτων εξειδικεύονται σε στενές θεµατικές κατηγορίες προβληµάτων Παραδείγματα: κατασκευή προγραµµάτων που υλοποιούν interface ανθρώπουυπολογιστή κατασκευή λεκτικών και συντακτικών αναλυτών κατασκευή προγραµµάτων προσοµοίωσης

15 Ολοκληρωµένα περιβάλλοντα προγραµµατισµού Συστήµατα υποστήριξης λογισµικού (software support systems) και ολοκληρωµένα περιβάλλοντα προγραµµατισµού (integrated programming environments): είναι προσπάθειες συγκέντρωσης και ενοποίησης διαφόρων εργαλείων προγραµµατισµού που συνεργάζονται µεταξύ τους Κοινή βάση είναι συνήθως µια γλώσσα προγραµµατισµού

16 Επιθυμητά χαρακτηριστικά πηγαίου κώδικα Επάρκεια (efficiency) Επίδοση (performance) Αναγνωσιμότητα (readability) Τεκμηρίωση (documentation) Μεταφερσιμότητα (portability) Δυνατότητα επαναχρησιμοποίησης (reusability)

17 Επάρκεια (efficiency) Επαρκής κώδικας: Όταν το σύστηµα λογισµικού λειτουργεί σωστά και χωρίς σφάλµατα, βάσει των απαιτήσεων που έχουν καθοριστεί Κάνει σωστή χρήση των διατιθέµενων πόρων και Είναι διαθέσιµο όποτε απαιτείται Είναι το βασικότερο επιθυµητό χαρακτηριστικό του πηγαίου κώδικα Η επάρκεια του πηγαίου κώδικα εξασφαλίζεται κυρίως κατά τη φάση ελέγχου του λογισµικού

18 Επίδοση (performance) Επίδοση, δηλαδή μεγάλη ταχύτητα εκτέλεσης πηγαίου κώδικα: παίζει καθοριστικό ρόλο Η επίδοση λαμβάνει υπόψη τα εξής χαρακτηριστικά: ταχύτητα εκτέλεσης συγκεκριµένων λειτουργιών συστήµατος λογισµικού απαιτήσεις του συστήµατος σε πόρους, όπως µνήµη και χωρητικότητα δίσκου Διαφορετικά κοµµάτια πηγαίου κώδικα που ικανοποιούν τις ίδιες λειτουργικές προδιαγραφές μπορεί να διαφέρουν πολύ στην επίδοση Η επιλογή της κατάλληλης γλώσσας προγραµµατισµού και η χρήση κατάλληλων προγραµµατιστικών τεχνικών μπορούν να οδηγήσουν σε βελτίωση της επίδοσης του συστήµατος

19 Αναγνωσιμότητα (readability) Πολλές φορές χρειάζεται το διάβασμα και η κατανόηση πηγαίου κώδικα που έχει γράψει άλλος προγραµµατιστής Πολύ δύσκολο!!!! Ακόμη και το να καταλάβουμε δικό μας κώδικα αν δεν είναι αναγνώσιμος!!!! Αναγνωσιµότητα (readability) είναι η ευκολία κατανόησης του πηγαίου κώδικα αποκλειστικά µέσω της ανάγνωσής του ως κειµένου Η αναγνωσιμότητα απαραίτητη όχι μόνο για την κατανόηση αλλά και για τη δυνατότητα ταξινόμησης, χαρακτηρισμού και διαχείρισης του πηγαίου κώδικα από ειδικά εργαλεία (reverse engineering)

20 Συμβουλές για συγγραφή αναγνώσιμου κώδικα Απλότητα καλό είναι να αποφεύγεται η περιττή πολυπλοκότητα στη συγγραφή του πηγαίου κώδικα, όταν δεν είναι αναγκαίο για την εξασφάλιση των απαιτήσεων επίδοσης. Θέλουμε απλές και κοµψές λύσεις... Καθόλου εύκολο! Ο απλός κώδικας μπορεί να είναι και λιγότερο επιρρεπής σε σφάλµατα Πλεονασµός χάριν σαφήνειας η χρήση κατάλληλων «σηµείων στίξης» οδηγεί σε περισσότερο ευανάγνωστο κώδικα Π.χ. παρενθέσεις, λέξεις-κλειδιά για την οµαδοποίηση εντολών (begin και end, { και } κ.ά.) ακόμη και αν είναι περιττές

21 Συμβουλές για συγγραφή αναγνώσιμου κώδικα Επιλογή κατάλληλων ονοµάτων πολύ σηµαντικό για τη συγγραφή αναγνώσιµου κώδικα Παράδειγμα if (x > 50000) y = (x 50000)* 0.2; else y = 0; const double not_taxable = 50000; const double tax_rate = 0.2; if (income > not_taxable) tax = (income not_taxable) * tax_rate; else tax = 0;

22 Συμβουλές για συγγραφή αναγνώσιμου κώδικα Χρήση σχολίων τα σχόλια αποτελούν αναπόσπαστο µέρος του πηγαίου κώδικα, πρέπει να γράφονται συγχρόνως µε τον κώδικα και να ενηµερώνονται ανελλιπώς σε κάθε αλλαγή του Η έλλειψη σχολίων δυσχεραίνει την κατανόηση ενός προγράµµατος Πολύ σημαντικό τα περιγραφικά σχόλια και στην αρχή των µονάδων του πηγαίου κώδικα, αλλά και στο εσωτερικό αυτών όπου χρειάζεται Στοίχιση οι κανόνες στοίχισης του κώδικα βοηθούν και περιορίζεται ο αριθµός εντολών ανά γραµµή προγράµµατος

23 Τεκμηρίωση (documentation) Απαραίτητη η τεκμηρίωση του πηγαίου κώδικα µε τη βοήθεια συνοδευτικών εγγράφων γραµµένων σε κατάλληλη γλώσσα τα οποία συμβάλλουν στην κατανόησή του Η έκταση και η μορφή της τεκμηρίωσης ποικίλλει Συνήθως χρήση φυσικής γλώσσας για την επεξήγηση των πιο πολύπλοκων σηµείων του πηγαίου κώδικα, όταν αυτό δεν είναι εύκολο να γίνει µε σχόλια µέσα στον κώδικα

24 Μεταφερσιμότητα (portability) Είναι η ιδιότητα του πηγαίου κώδικα να µπορεί να εκτελεστεί χωρίς αλλαγές σε διαφορετικά περιβάλλοντα (ΛΣ, τύπος υπολογιστή) στα οποία διατίθενται εκδόσεις της γλώσσας προγραµµατισµού που χρησιµοποιείται Πολύ σηµαντικό να µπορεί να µεταφερθεί ο πηγαίος κώδικας ως έχει από µια υλοποίηση της γλώσσας προγραµµατισµού στην οποία είναι γραµµένος σε µια άλλη. Για να γίνει αυτό, πρέπει: να µη χρησιµοποιούνται συστατικά της γλώσσας που υποστηρίζονται µόνο από συγκεκριµένες υλοποιήσεις να µη γίνονται αυθαίρετες παραδοχές για τη συµπεριφορά των υλοποιήσεων, δηλαδή παραδοχές που δεν περιγράφονται ρητά στο πρότυπο (standard) της γλώσσας

25 Δυνατότητα επαναχρησιμοποίησης (reusability) Ιδιαίτερα σηµαντικό χαρακτηριστικό του πηγαίου κώδικα! Δεδομένου ότι ένα αρκετά µεγάλο τµήµα πηγαίου κώδικα ενός συστήµατος λογισµικού µπορεί να χρησιµοποιηθεί στην κωδικοποίηση άλλων συστηµάτων λογισµικού Σημαντική προϋπόθεση: η κατάλληλη δόµησή του!

26 Επιθυμητά χαρακτηριστικά πηγαίου κώδικα Ολα τα χαρακτηριστικά είναι σημαντικά!!! ΔΕΝ είναι περιττά! Μην τα υποτιμάτε!!!

27 Γλώσσες προγραμματισμού Το βασικό εργαλείο του προγραµµατιστή! Είναι ένα σύστηµα συµβολισµών µε το οποίο µπορεί να περιγράφει εργασίες που πρόκειται να εκτελεστούν από έναν υπολογιστή Η ποικιλία των εργασιών που είναι επιθυµητό να εκτελούνται από τους υπολογιστές δικαιολογεί την ύπαρξη πληθώρας γλωσσών προγραµµατισµού που διαφέρουν: στην πολυπλοκότητα στη µορφή στη θεµατική περιοχή όπου απευθύνονται στη φιλοσοφία προγραµµατισµού που υποστηρίζουν

28 Γλώσσες προγραμματισμού χαμηλού και υψηλού επιπέδου Γλώσσες προγραµµατισµού χαμηλού επιπέδου βρίσκονται κοντά στη µονάδα επεξεργασίας του υπολογιστή και µοιάζουν µε τη γλώσσα µηχανής Επιβάλλουν µικροσκοπικό ύφος προγραµµατισµού Διαφέρει πολύ από τον τρόπο σκέψης των ανθρώπων και από τον τρόπο µε τον οποίο αυτοί περιγράφουν τη λύση προβληµάτων Γλώσσες προγραµµατισµού υψηλού επιπέδου χρησιµοποιούν συµβολισµούς περισσότερο αφαιρετικούς και πλησιέστερους στην ανθρώπινη αντίληψη και γλώσσα

29 Γλώσσες προγραμματισμού χαμηλού επιπέδου Με τη χρήση γλωσσών χαµηλού επιπέδου είναι πρακτικά αδύνατο να εξασφαλιστεί η απαιτούµενη ποιότητα του λογισµικού Οι γλώσσες προγραμματισμού χαµηλού επιπέδου χρησιµοποιούνται µόνο για την υλοποίηση τµηµάτων ενός συστήµατος λογισµικού που είναι εξαιρετικά απαιτητικό από πλευράς επιδόσεων ή που αφορά συγκεκριµένες συσκευές Παράδειγμα µέρη λειτουργικών συστηµάτων λογισµικό ειδικών απαιτήσεων, όπως αυτό που σχετίζεται µε συστήµατα πραγµατικού χρόνου (real time systems).

30 Γλώσσες προγραμματισμού υψηλού επιπέδου Προτιμούνται στη φάση της κωδικοποίησης π.χ. Pascal, C, C++, παλιότερα η COBOL και η BASIC και πιο πρόσφατα η Java, οι οποίες προσεγγίζουν τη χρησιµοποιούµενη φιλοσοφία ανάλυσης και σχεδίασης και διαθέτουν χαρακτηριστικά αναγκαία για την εξασφάλιση της ποιότητας του παραγόµενου λογισµικού

31 Εξέλιξη γλωσσών προγραμματισμού

32 Δομημένος προγραμματισμός Δοµηµένος προγραµµατισµός (structured programming) είναι η τεχνοτροπία προγραµµατισµού κατά την οποία η συντακτική δοµή του προγράµµατος βοηθά στην κατανόηση της ροής ελέγχου και, κατ επέκταση, στην κατανόηση του τι κάνει το πρόγραµµα αυτό. Οι αρχές του δοµηµένου προγραµµατισµού γεννήθηκαν µέσα από µια επιστηµονική διαµάχη στο τέλος της δεκαετίας του 1960, µε θέµα τις δοµές ελέγχου των γλωσσών προγραµµατισµού Αποτέλεσµα: ο σταδιακός παραγκωνισµός της χρήσης της εντολής goto και η αντικατάστασή της από δοµηµένες εντολές if και while.

33 Δομημένος προγραμματισμός Κάθε αλγόριθµος είναι δυνατό να κωδικοποιηθεί χρησιµοποιώντας τρία µόνο στοιχεία ελέγχου: ακολουθία (s1; s2) σειριακή εκτέλεση εντολών επιλογή (if c then s1 else s2) επιλεκτική εκτέλεση μιας εντολής, αν ισχύει μια λογική συνθήκη, ή μιας άλλης εντολής αν η λογική συνθήκη δεν ισχύει επανάληψη (while c do s) επαναληπτική εκτέλεση μιας εντολής για όσο διάστημα παραμένει αληθής μία λογική συνθήκη Βάση δοµηµένου προγραµµατισµού Κάθε μονάδα δομημένου προγράμματος έχει ένα και µόνο ένα σηµείο εισόδου και ένα σηµείο εξόδου, που επιτρέπει το συνδυασµό τους χωρίς περιορισµούς σε µεγαλύτερες δοµικές µονάδες Παλιότερα ανεξέλγκτη χρήση GOTO!!!!

34 Βασικά γλωσσικά στοιχεία δομημένου προγραμματισμού

35 Δομημένος προγραμματισμός Η εφαρµογή αυστηρής πειθαρχίας στη χρήση των βασικών στοιχείων και η αποφυγή της χρήσης γλωσσικών στοιχείων που διαχωρίζουν τη ροή ελέγχου από τη σύνταξη του προγράµµατος ενισχύουν την αναγνωσιµότητα του πηγαίου κώδικα! Πολλές µοντέρνες γλώσσες προγραµµατισµού υποστηρίζουν και άλλα γλωσσικά στοιχεία, που συνήθως µπορούν να υλοποιηθούν εύκολα από τα βασικά στοιχεία.

36 Δομημένος προγραμματισμός Στην πράξη κάποιες φορές παραβίαση αποκλειστικής χρήσης των τριών βασικών στοιχείων Παραδείγµατα: ανάγκη άµεσης εξόδου από ένα βρόχο ή από µια συνάρτηση, άµεση µεταφορά της ροής ελέγχου ως συνέπεια της ανάγκης χειρισµού σφαλµάτων µέσα στον πηγαίο κώδικα Οι σύγχρονες γλώσσες προγραµµατισµού διαθέτουν συνήθως τέτοια γλωσσικά στοιχεία

37 Δομημένος προγραμματισμός Έχουμε προγραµµατιστική πειθαρχία που υποχρεώνει τον προγραµµατιστή να σκέφτεται περισσότερο πριν αρχίσει να γράφει ένα κοµµάτι κώδικα ΑΡΑ µείωση της πιθανότητας σφαλµάτων! Με τη χρήση κατάλληλων γλωσσών που υποστηρίζουν διαδικασίες και συναρτήσεις ως δοµικές µονάδες προγράµµατος, ο δοµηµένος προγραµµατισµός διευκολύνει την ανάπτυξη από πάνω προς τα κάτω (topdown) και υποστηρίζει τη φιλοσοφία της δοµηµένης ανάλυσης και σχεδίασης συστηµάτων λογισµικού

38 Αντικειμενοστρεφής προγραμματισμός Στον αντικειµενοστρεφή προγραµµατισµό (objectoriented) ιδιαίτερη έµφαση δίνεται στις έννοιες: «αντικείμενο» «κλάση» «κληρονοµικότητα» «κελυφοποίηση» Οι περισσότερες αντικειµενοστρεφείς γλώσσες βασίζονται στο προστακτικό ύφος προγραµµατισµού. Τα «αντικείµενα» και οι «κλάσεις» αντικαθιστούν τις «µεταβλητές» και τους «τύπους δεδοµένων» Η «κληρονοµικότητα» επιτρέπει τον ορισµό κλάσεων που κληρονοµούν ιδιότητες και συµπεριφορά από άλλες κλάσεις.

39 Αντικειμενοστρεφής προγραμματισμός Σύγχρονες δηµοφιλείς αντικειµενοστρεφείς γλώσσες προγραµµατισµού: C++ και Java Παρατηρείται επίσης μία τάση εισαγωγής αντικειµενοστρεφών χαρακτηριστικών σε άλλες γλώσσες, όπως Pascal και Basic.

40 Πιθανές πηγές προβλημάτων Ορισµένα χαρακτηριστικά των γλωσσών καθιστούν τον προγραµµατισµό περισσότερο επιρρεπή σε σφάλµατα. ΑΡΑ οι προγραµµατιστές πρέπει να είναι ιδιαίτερα προσεκτικοί στη χρήση τους να γίνεται µε µέτρο και πειθαρχία! Βασικές αιτίες σφαλμάτων Εντολή goto, εξαιρέσεις, διακοπές Αριθμοί κινητής υποδιαστολής Μετατροπές τύπων Δείκτες και δυναμική παραχώρηση μνήμης Αναδρομικές κλήσεις Παράλληλη επεξεργασία

41 Βασικές αιτίες σφαλμάτων Εντολή goto, εξαιρέσεις, διακοπές οι εντολές µεταφοράς της ροής ελέγχου που δεν ακολουθούν τη συντακτική δοµή βλάπτουν συνήθως την αναγνωσιµότητα του πηγαίου κώδικα. Η εντολή goto μπορεί να αποφευχθεί, συνήθως µε τη χρήση ειδικών εντολών άµεσης εξόδου από βρόχους και εξαιρέσεων Αριθµοί κινητής υποδιαστολής προβλήµατα παρουσιάζονται λόγω της εγγενούς ανακρίβειας των αριθµών κινητής υποδιαστολής (αντικείµενο µελέτης του κλάδου της αριθµητικής ανάλυσης) Χρειάζεται προσοχή στη σύγκριση ισότητας ή ανισότητας τέτοιων αριθµών, και για την αποφυγή συσσώρευσης αριθµητικών σφαλµάτων

42 Βασικές αιτίες σφαλμάτων Μετατροπές τύπων οι περισσότερες γλώσσες επιτρέπουν τη µετατροπή δεδοµένων από έναν τύπο σε κάποιον άλλο, είτε ρητά µε µέριµνα του προγραµµατιστή, είτε και µε αυτόµατο τρόπο µε µέριµνα της υλοποίησης της γλώσσας. Οι µετατροπές τύπων συχνά οδηγούν σε απώλεια πληροφορίας ή και σε παραποίησή της, όταν ο τελικός τύπος δεδοµένων δεν είναι σε θέση να αναπαραστήσει την αρχική τιµή.

43 Βασικές αιτίες σφαλμάτων Δείκτες και δυναµική παραχώρηση µνήµης οι δείκτες είναι χαρακτηριστικό προγραµµατισµού χαµηλού επιπέδου, διατηρείται όµως σε πολλές σύγχρονες γλώσσες προγραµµατισµού Ο κίνδυνος που εµπεριέχει η χρήση τους προέρχεται από το γεγονός ότι αντικείµενα της µνήµης είναι δυνατό να προσπελάζονται από περισσότερα ονόµατα (aliasing) Η απουσία αρχικοποίησης των δεικτών, καθώς και η µη απελευθέρωση µνήµης που έχει παραχωρηθεί δυναµικά, είναι υπεύθυνες για ένα µεγάλο αριθµό σφαλµάτων, που συνήθως είναι εξαιρετικά δύσκολο να εντοπιστούν

44 Βασικές αιτίες σφαλμάτων Αναδροµικές κλήσεις αναδροµή είναι η κλήση µιας συνάρτησης από τον εαυτό της, είτε απευθείας είτε µέσω κλήσεων σε άλλες συναρτήσεις Η χρήση της οδηγεί συνήθως σε ιδιαίτερα κοµψά και µικρά προγράµµατα, σε σύγκριση µε τη χρήση βρόχων ΑΛΛΑ σε κάποιες περιπτώσεις καθιστά δυσκολότερη την κατανόηση του προγράµµατος και είναι περισσότερο επιρρεπής στον κίνδυνο µη τερµατισµού ή εξάντλησης της µνήµης.

45 Βασικές αιτίες σφαλμάτων Παράλληλη επεξεργασία ο παραλληλισµός είναι επικίνδυνος ως προγραµµατιστική τεχνική! Είναι δύσκολο να προβλεφθεί η αλληλεπίδραση µεταξύ των διαφορετικών διεργασιών που τρέχουν παράλληλα Οι γλώσσες προγραµµατισµού που τον υποστηρίζουν θα πρέπει να παρέχουν τη δυνατότητα συγχρονισµού και αλληλοαποκλεισµού των διεργασιών, ώστε η αλληλεπίδραση να µην είναι επιβλαβής και να µην καταλήγει σε αδιέξοδα

46 Τεχνικές συγγραφής πηγαίου κώδικα ΔΕΝ υπάρχει η «χρυσή βίβλος» που περιέχει συµβουλές για τη συγγραφή αλάνθαστου πηγαίου κώδικα!!! Κι αυτό επειδή ΔΕΝ ΥΠΑΡΧΕΙ αλάνθαστος πηγαίος κώδικας! Μπορούμε όμως να πάρουμε κάποια µέτρα προκειµένου να γράψουμε όσο το δυνατόν καλύτερο κώδικα ΕΠΟΜΕΝΩΣ χρήσιµη η παράθεση µιας σειράς συµβουλών για τη συγγραφή πηγαίου κώδικα!

47 Τεχνικές αποφυγής σφαλμάτων Η αποφυγή σφαλµάτων (fault avoidance) αποσκοπεί στη συγγραφή πηγαίου κώδικα µε όσο το δυνατό λιγότερα σφάλµατα. Η πιστή χρήση τεχνικών αποφυγής σφαλµάτων είναι ο ακρογωνιαίος λίθος στην ανάπτυξη αξιόπιστου λογισµικού. Δεδοµένου του πολύ υψηλού κόστους εντοπισµού και διόρθωσης σφαλµάτων στον πηγαίο κώδικα, η διαδικασία ανάπτυξης λογισµικού πρέπει να είναι προσανατολισµένη κυρίως προς την αποφυγή των λαθών κατά τη συγγραφή του κώδικα.

48 Τεχνικές αποφυγής σφαλμάτων Κατάλληλα εργαλεία και τεχνικές είναι διαθέσιµα για το σκοπό αυτό Η συγγραφή κώδικα χωρίς σφάλµατα διευκολύνεται από: τη σωστή προδιαγραφή των απαιτήσεων την αξιοποίηση των χαρακτηριστικών της γλώσσας προγραµµατισµού και τον ανθρώπινο παράγοντα

49 Προδιαγραφή απαιτήσεων Η ύπαρξη αυστηρού τρόπου περιγραφής προδιαγραφής απαιτήσεων από το λογισµικό διευκολύνει εξαιρετικά την αποφυγή σφαλµάτων! Αποφεύγονται παρερµηνείες στην επιθυµητή λειτουργία του πηγαίου κώδικα Η πειθαρχηµένη εφαρµογή των προβλεπόµενων µέχρι την κωδικοποίηση ενεργειών ανάπτυξης λογισµικού αποτελεί ισχυρό εργαλείο αποφυγής σφαλµάτων Η σαφήνεια στην περιγραφή όλων των ενδιάµεσων προϊόντων (προδιαγραφές, σχεδίαση) και η αποφυγή «ευκόλως εννοουµένων» συνήθως αποδίδουν το χρόνο και τον κόπο που απαιτούν

50 Προδιαγραφή απαιτήσεων Έχουν αναπτυχθεί και τυπικές µέθοδοι (formal methods) για να γίνεται έλεγχος, χειρωνακτικά ή και ενίοτε αυτόµατα, αν ο πηγαίος κώδικας που έχει γραφεί πληροί τις απαιτήσεις. Είναι ΟΜΩΣ το κόστος συγγραφής απαιτήσεων είναι συνήθως υψηλότερο, όταν η γλώσσα που χρησιµοποιείται είναι αυστηρότερη ή τυπική.

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

52 Επιδίωξη ποιότητας Η ομάδα κωδικοποίησης πρέπει να διαθέτει αυξημένη ευαισθησία για την εξασφάλιση της απαιτούµενης ποιότητας και την ανάπτυξη πηγαίου κώδικα που να διαθέτει τα επιθυµητά χαρακτηριστικά που αναφέραμε Οι προγραµµατιστές πρέπει να εφαρµόζουν αυστηρά τη συνολική πολιτική συγγραφής κώδικα και να επιδιώκουν εξαρχής την ανάπτυξη κώδικα χωρίς σφάλµατα

53 Ανοχή σε σφάλματα (fault tolerance) Τα σύγχρονα συστήματα λογισμικού είναι πολύπλοκα! Οπότε τις περισσότερες φορές δεν είναι εφικτή η αποφυγή ή ο εντοπισµός των σφαλµάτων Και αν μπορούν να αποφευχθούν, απαγορευτικό κόστος! ΑΡΑ συστήµατα λογισµικού µε αυξηµένες απαιτήσεις αξιοπιστίας πρέπει να προβλέπουν την πιθανή εµφάνιση σφαλµάτων και να δείχνουν σχετική ανοχή Ειδικές τεχνικές χρησιµοποιούνται για την ανοχή σε σφάλματα Συνήθως απαιτείται η συνέχιση λειτουργίας μετά την εµφάνιση κάποιων σφαλµάτων ή άλλων απροσδόκητων καταστάσεων, µε τις µικρότερες δυνατές απώλειες

54 Ανοχή σε σφάλματα (fault tolerance) Π.χ. στο λογισµικό που χρησιµοποιείται στον υπολογιστή ενός αεροσκάφους εν πτήσει ή για τον έλεγχο εναέριας κυκλοφορίας, η συνολική αποτυχία ενός συστήµατος λογισµικού θα είχε καταστροφικά αποτελέσµατα και πρέπει να αποφευχθεί πάση θυσία. Για το λόγο αυτό και δεδοµένης της αδυναµίας εξασφάλισης του αλάθητου των συστηµάτων λογισµικού µε τις τεχνικές αποφυγής και εντοπισµού σφαλµάτων, στην ανάπτυξη συστηµάτων λογισµικού υψηλού κινδύνου γίνεται πρόβλεψη για την προφύλαξη από σφάλµατα που ενδέχεται να παρουσιαστούν µετά την έναρξη λειτουργίας τους

55 Ανοχή σε σφάλματα (fault tolerance) Για την ανάπτυξη συστηµάτων λογισµικού ανεκτικών σε σφάλµατα απαιτείται η προσθήκη επιπλέον κώδικα που αναλαµβάνει τις ακόλουθες λειτουργίες: Δυναµικός εντοπισµός σφαλµάτων Ανάνηψη από σφάλµατα Πρόληψη µελλοντικών σφαλµάτων

56 Δυναμικός εντοπισμός σφαλμάτων Το σύστηµα λογισµικού πρέπει να είναι σε θέση να διαγνώσει ότι παρουσιάστηκε σφάλµα κατά τη λειτουργία του Η διάγνωση τέτοιου είδους σφαλµάτων είναι απαραίτητο να γίνεται όσο το δυνατό νωρίτερα, ώστε να µη διευρύνονται και να µην επηρεάζουν ανεξάρτητα τµήµατα του συστήµατος που λειτουργούν σωστά

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

58 Ανάνηψη από σφάλματα Στην περίπτωση συστηµάτων λογισµικού που διαχειρίζονται βάσεις δεδοµένων χρησιµοποιείται συνήθως η τακτική οπισθοχώρησης και συγκεκριµένα η τεχνική των συναλλαγών (transactions) Αν κάποια συναλλαγή δεν είναι δυνατό να ολοκληρωθεί λόγω της εµφάνισης σφάλµατος, τότε ολόκληρη η συναλλαγή ακυρώνεται, προκειµένου να επανέλθει το σύστηµα σε µια ασφαλή και συνεπή κατάσταση. Η τακτική µετάβασης σε νέα σωστή κατάσταση είναι συνήθως δυσκολότερη στην υλοποίηση.

59 Πρόληψη μελλοντικών σφαλμάτων Η ανάνηψη από ένα σφάλµα που παρουσιάστηκε κατά τη διάρκεια της λειτουργίας ενός συστήµατος λογισµικού δεν είναι αρκετή! Πρέπει να ληφθεί πρόνοια ώστε το σφάλµα να µην επαναληφθεί στο µέλλον Όταν αυτό δεν είναι δυνατό να επιτευχθεί από το ίδιο το σύστηµα λογισµικού, µε την αυτόµατη επιδιόρθωση του τµήµατος που προκάλεσε το σφάλµα, απαιτείται η επέµβαση του κατασκευαστή! Στην περίπτωση αυτή το σύστηµα οφείλει να γνωστοποιήσει την ύπαρξη του σφάλµατος και να επιτρέπει τη συντήρησή του µε το ελάχιστο δυνατό κόστος

60 Τεχνικές υλοποίησης συστημάτων ανεκτικών σε σφάλματα Προγραµµατισµός πολλών εκδόσεων Αμυντικός προγραμματισμός

61 Προγραµµατισµός πολλών εκδόσεων Υλοποίηση του συστήματος λογισµικού σε έναν αριθµό πλήρως λειτουργικών διαφορετικών εκδόσεων, που αναπτύσσονται από διαφορετικές οµάδες Οι εκδόσεις αυτές εκτελούνται παράλληλα µε τα ίδια δεδοµένα εισόδου και τα αποτελέσµατά τους συγκρίνονται µεταξύ τους Στην περίπτωση ασυµφωνίας των αποτελεσµάτων, εφαρµόζεται ο κανόνας της πλειοψηφίας και οι εκδόσεις που οδήγησαν σε διαφορετικά αποτελέσµατα αποµονώνονται ως ελαττωµατικές Η τεχνική αυτή έχει σηµαντικό ΚΟΣΤΟΣ! Δικαιολογείται όμως σε λογισµικό που χρησιµοποιείται σε κρίσιµες εφαρµογές

62 Προγραµµατισµός πολλών εκδόσεων Τουλάχιστον τρεις εκδόσεις του συστήµατος πρέπει να είναι διαθέσιµες! ΤΕΧΝΙΚΗ ΤΡΙΩΝ ΕΚΔΟΣΕΩΝ Μια παραλλαγή είναι η τεχνική να περιοριστεί µόνο στα επισφαλή τµήµατα του λογισµικού, οπότε µειώνεται και το κόστος

63 Αμυντικός προγραμματισμός (defensive programming) Οι προγραµµατιστές ενσωµατώνουν στον πηγαίο κώδικα ελέγχους για τη συνέπεια των δεδοµένων και την καλή λειτουργία, υιοθετώντας µια αµυντική στάση και προβλέποντας την περίπτωση ασυνεπειών Αν κάποιος έλεγχος αποτύχει, τότε θεωρείται ότι εντοπίστηκε σφάλµα και εφαρµόζονται κατάλληλες τεχνικές ανάνηψης και µελλοντικής πρόληψης

64 Εντοπισμός και διόρθωση σφαλμάτων Ο εντοπισµός και η διόρθωση των σφαλµάτων που υπάρχουν στο λογισµικό αποσκοπεί στην εύρεση σφαλµάτων που υπάρχουν στον πηγαίο κώδικα πριν από την παράδοση αυτού σε τελική χρήση Οι εργασίες αυτές γίνονται κατά τη φάση του ελέγχου του λογισµικού

65 Επαναχρησιμοποίηση μονάδων προγράμματος Επαναχρησιµοποίηση (reuse) είναι η διαδικασία της υλοποίησης νέου λογισµικού χρησιµοποιώντας συστατικά από ήδη κατασκευασµένο λογισµικό Επαναχρησιµοποιήσιµα συστατικά: Πηγαίος κώδικας Εκτελέσιµα προγράµµατα Αποτελέσµατα ανάλυσης και σχεδίασης Τεκµηρίωση Δεδοµένα και σχέδια ελέγχου κτλ. Η επαναχρησιµοποίηση είναι βασική αρχή σε κάθε επιστήµη που σχετίζεται µε την ανάπτυξη και την παραγωγή.

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

67 Επαναχρησιμοποίηση μονάδων προγράμματος Ο πηγαίος κώδικας πρέπει να: είναι µεταφέρσιµος έχει τη µικρότερη δυνατή αλληλεπίδραση µε τον υπόλοιπο κώδικα και όπου αυτή η αλληλεπίδραση είναι αναπόφευκτη, να είναι καλά τεκµηριωµένη Η επαναχρησιµοποίηση έχει για πολύ καιρό αποτελέσει αντικείµενο συζητήσεων στην κοινότητα των κατασκευαστών και των ερευνητών Δύσκολη μέχρι σήμερα η επαναχρησιµοποίηση σε µεγάλη κλίµακα!

68 Επαναχρησιμοποίηση μονάδων προγράμματος Η επαναχρησιµοποίηση είναι πραγµατικότητα ίσως περισσότερο για γλώσσες προγραµµατισµού όπως η FORTRAN, µε τη µορφή βιβλιοθηκών συναρτήσεων, και λιγότερο για γενικής χρήσης λογισµικό κατασκευασµένο µε σύγχρονες µεθόδους και γλώσσες προγραµµατισµού Η τάση είναι, ασφαλώς, προς την επικράτηση της επαναχρησιµοποίησης ως τεχνικής και µέσα στον ίδιο κατασκευαστή η επαναχρησιµοποίηση είναι ανάγκη, όχι απλώς επίτευγµα. Μεταξύ διαφορετικών κατασκευαστών, όµως, υπάρχει ακόµα αρκετή δουλειά να γίνει ώστε να µιλάµε για γενικευµένη πραγµατικότητα

69 Συνοψίζοντας... Η παραγωγή του πηγαίου κώδικα είναι η φάση κατά την οποία το σχέδιο του λογισµικού µετατρέπεται σε πρόγραµµα. Ιδιαίτερα κρίσιµη εργασία το σχέδιο σπάνια περιέχει όλες τις λεπτοµέρειες και δεν λαµβάνει συνήθως υπόψη του τα ιδιαίτερα χαρακτηριστικά της γλώσσας προγραµµατισµού που χρησιµοποιείται Η ΤΛ παρέχει ορισµένες: κατευθυντήριες αρχές ώστε ο πηγαίος κώδικας να έχει τα επιθυµητά χαρακτηριστικά της επάρκειας, των επιδόσεων, της αναγνωσιµότητας, της τεκµηρίωσης και της µεταφερσιµότητας, και κατευθύνσεις που βοηθούν στην αποφυγή σφαλµάτων Η επαναχρησιµοποίηση µονάδων προγράµµατος είναι µια κατεύθυνση στην οποία θα στραφεί η κοινότητα των κατασκευαστών λογισµικού στο µέλλον

70 Πηγές, Acknowledgement Β. Βεσκούκης «Τεχνολογία Λογισμικού Ι», ΕΑΠ, ΠΑΤΡΑ, 2000

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

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

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

ΚΕΦΑΛΑΙΟ 6 ΠΑΡΑΓΩΓΗ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ. Έννοιες-κλειδιά

ΚΕΦΑΛΑΙΟ 6 ΠΑΡΑΓΩΓΗ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ. Έννοιες-κλειδιά ΚΕΦΑΛΑΙΟ 6 ΠΑΡΑΓΩΓΗ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ Σκοπός του κεφαλαίου είναι η παρουσίαση των εργασιών και των προβλημάτων κατά τη φάση συγγραφής του πηγαίου κώδικα του λογισμικού. Η παρουσίαση αυτή διατηρείται σε ένα

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

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

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

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

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

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

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

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

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

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Εισαγωγή Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Μεταγλωττιστής Αρχικό πρόγραμμα (source program) Μεταγλωττιστής Τελικό πρόγραμμα (object program) Διαγνωστικά μηνύματα Μεταγλωττιστής Παίρνει σαν

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

Μεταγλωττιστής. Μεταφραστές. Γλώσσες. Είδη Μεταγλωττιστών. Μεταγλωττιστής Τελικό πρόγραµµα (object program) Εισαγωγή Αρχικό πρόγραµµα (source program)

Μεταγλωττιστής. Μεταφραστές. Γλώσσες. Είδη Μεταγλωττιστών. Μεταγλωττιστής Τελικό πρόγραµµα (object program) Εισαγωγή Αρχικό πρόγραµµα (source program) Μεταφραστές Εισαγωγή (source program) Τελικό πρόγραµµα (object program) Γιώργος Μανής Γλώσσες Είδη Μεταγλωττιστών Αρχική γλώσσα Γλώσσα υλοποίησης Τελική γλώσσα Απλοί µεταγλωττιστές Αντίστροφοι µεταγλωττιστές

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

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

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

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1 ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 03/01/09 Χαράλαμπος Τζόκας 1 Πρόγραμμα - Προγραμματισμός Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης

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

Κεφάλαιο 2: Μεταφραστές

Κεφάλαιο 2: Μεταφραστές Κεφάλαιο 2: Μεταφραστές Αρχές Γλωσσών και Προγραμματισμού Λειτουργία Μετάφρασης ΑΡΧΙΚΗ ΓΛΩΣΣΑ (Source) L A ΓΛΩΣΣΑ ΥΛΟΠΟΙΗΣΗΣ ΜΕΤΑΦΡΑΣΤΗ (Implementation) L Y ΤΕΛΙΚΗ ΓΛΩΣΣΑ (Target) L T Αρχικό Πρόγραμμα

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

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

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

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 2: Mεταφραστές Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Λειτουργία Μετάφρασης ΑΡΧΙΚΗ ΓΛΩΣΣΑ (Source) L A ΓΛΩΣΣΑ

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

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις Προγραµµατισµός Η/Υ Ανασκόπηση - Ορισµοί Περιεχόµενα Ο κύκλος ανάπτυξης προγράµµατος Περιγραφή προβλήµατος Ανάλυση προβλήµατος Λογικό ιάγραµµα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραµµατισµού

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

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

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

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

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

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

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

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

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

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

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

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Μάριος Αραποστάθης Καθηγητής πληροφορικής Βαρβάκειου Λύκειου http://users.sch.gr/mariosarapostathis 6.1 Η έννοια του

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

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Μεταφραστές Εισαγωγή Διδάσκων: Επικ. Καθ. Γεώργιος Μανής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

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

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

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

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

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

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

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

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

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

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1 ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που

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

Διδακτική της Πληροφορικής ΙΙ

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

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

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

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

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

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

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

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Προγραµµατισµός Η/Υ Ο προγραµµατισµός είναι η διατύπωση του αλγορίθµου σε µορφή κατανοητή από τον Η/Υ ώστε να τον εκτελέσει («τρέξει» όπως λέµε στην ορολογία της

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

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

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

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

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός Ενότητα 13 Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 Προγραµµατισµός Κεφάλαιο 13Α: ηµιουργία Προγραµµάτων Υπολογιστή Κεφάλαιο 13Β: Γλώσσες Προγραµµατισµού και η ιαδικασία Προγραµµατισµού ρ. Παναγιώτης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Γλώσσες Προγραμματισμού Μεταγλωττιστές

Γλώσσες Προγραμματισμού Μεταγλωττιστές Γλώσσες Προγραμματισμού Μεταγλωττιστές Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Γλώσσες Προγραμματισμού Εισαγωγικά Γλώσσα Μηχανής Γλώσσες υψηλού επιπέδου Μεταγλωττιστές

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 1ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Ορισμός Wikipedia.org 2 Δομημένος προγραμματισμός (structured programming) ή διαδικαστικός προγραμματισμός (procedural

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

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

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

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

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

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

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

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

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

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

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

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

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Δομή Επανάληψης Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Δομή Επανάληψης Επανάληψη με αρίθμηση DO = ,

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

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

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

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

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1 Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1 6.3 Φυσικές και τεχνητές γλώσσες Μια γλώσσα γενικά προσδιορίζεται από: 1. Το αλφάβητο: το σύνολο των στοιχείων που χρησιμοποιεί

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

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

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

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

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

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή. ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα

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

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

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

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

Διδακτική Πληροφορικής

Διδακτική Πληροφορικής Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διδακτική Πληροφορικής Ενότητα 12: Επίλυση προβλημάτων σε προγραμματιστικό περιβάλλον Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons

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

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία σημαντικά στάδια: 1. Τον ακριβή προσδιορισμό του προβλήματος. 2. Την ανάπτυξη

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

Συγγραφή Προγραμμάτων

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

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

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 18/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων

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

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

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

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα Τµήµα Διοίκησης Επιχειρήσεων Τει Δυτικής Ελλάδας Μεσολόγγι Δρ. Α. Στεφανή Διάλεξη 5 2 Εγκυροποίηση Λογισµικού Εγκυροποίηση Λογισµικού

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

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

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

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

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού. Κεφάλαιο 6 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία σημαντικά στάδια : Σον ακριβή προσδιορισμό του προβλήματος Σην ανάπτυξη του αντίστοιχου αλγορίθμου

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

Συγγραφή κώδικα, δοκιμασία, επαλήθευση. Γιάννης Σμαραγδάκης

Συγγραφή κώδικα, δοκιμασία, επαλήθευση. Γιάννης Σμαραγδάκης Συγγραφή κώδικα, δοκιμασία, επαλήθευση Γιάννης Σμαραγδάκης Προδιαγραφή απαιτήσεων Σχεδιασμός συνεπείς σχέσεις Υψηλό επίπεδο συνεπείς σχέσεις Χαμηλό επίπεδο συνεπείς σχέσεις Πλάνο δοκιμών Κώδικας Συγγραφή

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

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

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. 4o Εργαστήριο Σ.Α.Ε

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

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

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 1.3.1 Δομή

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

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης ΠΕΡΙΕΧΟΜΕΝΑ Εντολές επιλογής Εντολές επανάληψης Εισαγωγή Στο προηγούμενο κεφάλαιο αναπτύξαμε προγράμματα, τα οποία ήταν πολύ απλά και οι εντολές των οποίων εκτελούνται η μία μετά την άλλη. Αυτή η σειριακή

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

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών Πρόγραμμα σε γλώσσα μηχανής του ΕΚΥ Θέση μνήμης Περιεχόμενα μνήμης Εντολή (assembly) 0 0001 000000000011 lda 3 1 0011 000000000100 ada

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Εργαστήριο 6 Εντολές Επανάληψης Η δομή Επιλογής στη PASCAL H δομή Επανάληψης στη PASCAL. Ρεύμα Εισόδου / Εξόδου.. Ρεύμα Εισόδου / Εξόδου. To πρόγραμμα γραφικών gnuplot. Γραφικά στη PASCAL. Σκοπός 6.1 ΕΠΙΔΙΩΞΗ

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr Κανόνες Ομαλής Λειτουργίας Ερχόμαστε στην ώρα μας Δεν καπνίζουμε και τρώμε εντός της αίθουσας

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

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY Mία γλώσσα προγραμματισμού συνίσταται από ένα περιορισμένο υποσύνολο της αγγλικής γλώσσας και το οποίο αποτελείται από εκφράσεις σαφώς ορισμένες, χωρίς παρερμηνεία.

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

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

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

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0 ΤΙ ΕΙΝΑΙ ΤΟ ADVANCED Οι Advanced θεματικές ενότητες είναι κατάλληλες για άτομα που επιθυμούν να συνεχίσουν σπουδές στο χώρο

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

Τεχνολογία Λογισμικού

Τεχνολογία Λογισμικού Τεχνολογία Λογισμικού Προαπαιτήσεις Γνώση Αρχών Προγραμματισμού Γνώση Γλώσσας Προγραμματισμού (C++, Java, Pascal) Χρήση Η/Υ (Σχεδίαση, Επεξ. Κειμένου) Κριτική και Συνθετική Ικανότητα Σκοπός μαθήματος Γνωριμία

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

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

Βασίλειος Κοντογιάννης ΠΕ19 Ενότητα2 Προγραμματιστικά Περιβάλλοντα Δημιουργία Εφαρμογών 6.1 Γλώσσες και εργαλεία προγραμματισμού Τι είναι οι γλώσσες προγραμματισμού; Είναι οι τεχνητές γλώσσες στις οποίες γράφονται οι εντολές των

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β Καβακλή Χειμερινό Εξάμηνο 2001 Στόχοι του Μαθήματος! Ανάπτυξη αναλυτικής

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

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

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

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

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

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

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

Εισαγωγή στον προγραμματισμό

Εισαγωγή στον προγραμματισμό Ενότητες: Εισαγωγή στον προγραμματισμό Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Ιεραρχική Σχεδίαση Τμηματικός Προγραμματισμός Δομημένος προγραμματισμός

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

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ 1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Τάξη: Γ Μάθημα: Πληροφορική Εξεταστέα ύλη: Παρ11.1 & 11.2 Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών που περιγράφει τη διαδικασία

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

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Κώδικας μηχανής (E) Ο επεξεργαστής μπορεί να εκτελέσει το αρχιτεκτονικό σύνολο εντολών (instruction set architecture) Οι

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

Μαθησιακές δυσκολίες ΙΙ. Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας

Μαθησιακές δυσκολίες ΙΙ. Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας Μαθησιακές δυσκολίες ΙΙ Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας Μάρτιος 2010 Προηγούμενη διάλεξη Μαθησιακές δυσκολίες Σε όλες

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

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

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

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

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

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

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

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

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

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

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 ΙΣΤΟΡΙΚΑ Παρουσιάστηκε το 1970 από το Niklaus Wirth Προγενέστερη γλώσσα ήταν η Algol 60 Είναι δομημένη γλώσσα προγραμματισμού υψηλού

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

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ Εισαγωγή στις Αρχές της επιστήμης των ΗΥ Ερωτήσεις και ασκήσεις για επανάληψη 1. Τι είναι πρόβλημα (σελ 14) 2. Ποιες είναι οι κατηγορίες προβλημάτων με βάση την επίλυση; Δώστε τον ορισμό για κάθε μια κατηγορία.

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

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

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

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

Τεχνολογία Λογισμικού

Τεχνολογία Λογισμικού Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 14/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Μοντέλα Παράστασης

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β. Καβακλή Χειμερινό Εξάμηνο 2001 1 Δοκιμή Έλεγχος Αλγορίθμου Για να

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

6. Διαχείριση Έργου. Έκδοση των φοιτητών

6. Διαχείριση Έργου. Έκδοση των φοιτητών 6. Διαχείριση Έργου Έκδοση των φοιτητών Εισαγωγή 1. Η διαδικασία της Διαχείρισης Έργου 2. Διαχείριση κινδύνων Επανεξέταση Ερωτήσεις Αυτοαξιολόγησης Διαχείριση του έργου είναι να βάζεις σαφείς στόχους,

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

Εισαγωγή στην Τεχνολογία Λογισµικού

Εισαγωγή στην Τεχνολογία Λογισµικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Μάθηµα "Τεχνολογία Λογισµικού", 9ο εξάµηνο Τι είναι Λογισµικό; Προγράµµατα ηλεκτρονικού υπολογιστή οµές δεδοµένων µε µόνιµη

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

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

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

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

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ Η ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΟ ΛΥΚΕΙΟ Εισαγωγή Η μεγάλη ανάπτυξη και ο ρόλος που

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

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΕΡΛΙΑΟΥΝΤΑΣ ΣΤΕΦΑΝΟΣ, ΠΕ19 ΚΕΦΑΛΑΙΟ 3 Αλγόριθμοι 3. Αλγόριθμοι 2 3. Αλγόριθμοι 3.1 Η έννοια του αλγορίθμου 3.2 Χαρακτηριστικά αλγορίθμου 3.3 Ανάλυση αλγορίθμων

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

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

Εισαγωγή στην Πληροφορική Εισαγωγή στην Πληροφορική Ανάπτυξη Λογισμικού ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Βασικές Έννοιες Η διαδικασία ανάπτυξης λογισμικού μπορεί να

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

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 1ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΓΙΑΤΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ; Στα μαθηματικά και στη φυσική συχνά έχουμε

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

Π ρ ο γ ρ α μ μ α τ ι σ μ ό ς Β α σ ι κ έ ς έ ν ν ο ι ε ς Ι σ τ ο ρ ι κ ή α ν α δ ρ ο μ ή Η έννοια του προγράμματος Ιστορική αναδρομή

Π ρ ο γ ρ α μ μ α τ ι σ μ ό ς Β α σ ι κ έ ς έ ν ν ο ι ε ς Ι σ τ ο ρ ι κ ή α ν α δ ρ ο μ ή Η έννοια του προγράμματος Ιστορική αναδρομή Προγραμματισμός Βασικές έννοιες Ιστορική αναδρομή Η έννοια του προγράμματος Η περιγραφή της λύσης ενός προβλήματος, ως γνωστόν, γίνεται με τη βοήθεια ενός αλγορίθμου. Έτσι οι εντολές ενός προγράμματος

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

ΑΕΠΠ ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 6.3 Φυσικές και Τεχνιτές Γλώσσες 6.4 Τεχνικές Σχεδίασης Προγραμμάτων

ΑΕΠΠ ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 6.3 Φυσικές και Τεχνιτές Γλώσσες 6.4 Τεχνικές Σχεδίασης Προγραμμάτων ΑΕΠΠ ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.3 Φυσικές και Τεχνιτές Γλώσσες 6.4 Τεχνικές Σχεδίασης Προγραμμάτων ΦΥΣΙΚΕΣ ΚΑΙ ΤΕΧΝΗΤΕΣ ΓΛΩΣΣΕΣ Οι γλώσσες προγραμματισμού αναπτύχθηκαν, για να μπορεί ο προγραμματιστής

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

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

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

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

Διδακτικά προβλήματα σχετικά με την έννοια της επανάληψης

Διδακτικά προβλήματα σχετικά με την έννοια της επανάληψης Διδακτικά προβλήματα σχετικά με την έννοια της επανάληψης Έρευνες-Δομές Επανάληψης Από τις έρευνες προκύπτει ότι οι αρχάριοι προγραμματιστές δεν χρησιμοποιούν αυθόρμητα την επαναληπτική διαδικασία για

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

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

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

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