ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο 2006-2007 (Ε') - Κωδ. Μαθήματος:

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Τι είναι ο προγραμματισμός
Advertisements

Επιμέλεια: Τίκβα Χριστίνα
Προγραμματισμοσ υπολογιστη
7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
Λειτουργικό Σύστημα ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ENOTHTA B.1.3 (1)
7.5.2 Αντικειμενοστραφής προγραμματισμός
ΠΜΣ ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Κατεύθυνση ΤΕΔΑ Τεχνολογίες Διαχείρισης Ασφάλειας Security Management Engineering Τμήμα Πληροφορικής ΠΑΝΕΠΙΣΤΗΜΙΟ.
Κεφάλαιο 1ο: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
Τι είναι ο υπολογιστής; Τι είναι ο προγραμματισμός
Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση.
Χαρακτηριστικά συνθετικής κίνησης 1 Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο (Ε') - Κωδ. Μαθήματος:
H διαδικασία ανάπτυξης λογισμικού. Tι θα γνωρίσουμε •Τις φάσεις ανάπτυξης του λογισμικού. •Γιατί χρειάζεται να γίνει ανάλυση του προβλήματος. •Τι θα πρέπει.
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Γλώσσα Προγραμματισμού
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
ΕΚΠΑΙΔΕΥΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ ΤΗΣ ΕΥΡΥΤΕΡΗΣ ΕΝΝΟΙΑΣ ΤΟΥ ΑΛΓΟΡΙΘΜΟΥ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΔΙΑΦΟΡΕΤΙΚΟ ΛΟΓΙΣΜΙΚΟ ΓΙΑ ΚΑΘΕ ΠΤΥΧΗ ΤΟΥ Κάππας Κων/νος Επιμορφωτής ΤΠΕ -
ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ
Γεωργαλλίδης Δημήτρης Καθηγητής Πληροφορικής
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Κεφάλαιο 3 ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
Κεφ.1 Εισαγωγη στην εννοια του Αλγοριθμου και στον Προγραμματισμο
Τεχνολογία ΛογισμικούSlide 1 Σχεδιασμός Λογισμικού u Ανάπτυξη λύσης που ικανοποιεί τις απαιτήσεις λογισμικού.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο (Ε') - Κωδ. Μαθήματος:
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
Ανάπτυξη Πρωτοτύπου Λογισμικού
Κεφάλαιο 6 -Περιβάλλοντα Ανάπτυξης Εφαρμογών
Κεφάλαιο 6: Εισαγωγή στον προγραμματισμό Φυσικές και τεχνητές γλώσσες.
Λογισμικό (Software).
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Π. ΚΑΤΣΑΡΟΣ Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τμ. Πληροφορικής,
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο (Ε') - Κωδ. Μαθήματος:
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Π. ΚΑΤΣΑΡΟΣ Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τμ. Πληροφορικής,
Καθηγητής: Σπύρος Ξουργιάς1 Η Έννοια του Προγράμματος Ακριβής προσδιορισμός προβλήματος Ακριβής προσδιορισμός προβλήματος Ανάπτυξη αντίστοιχου αλγορίθμου.
Για τη διεκπεραίωση ενός προβλήματος πρέπει να ακολουθηθεί η εξής διαδικασία:  να γραφεί ο αλγόριθμος να συνταχθεί το πρόγραμμα σε γλώσσα υψηλού επιπέδου.
1.5 Γλώσσες Προγραμματισμού
Κατανόηση (δεδομένα – ζητούμενα) Ανάλυση σε απλούστερα προβλήματα Επίλυση με οργανωμένα, απολύτως καθορισμένα, πεπερασμένα βήματα ΑΛΓΟΡΙΘΜΟΣ.
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
ΛΑΔΑΚΑΚΟΣ ΘΑΛΗΣ Α.Μ ΔΙΑΧΕΙΡΗΣΗ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού Προπτυχιακό.
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ. ΥΠΟΛΟΓΙΣΤΗΣ Μηχανή που μπορεί να φέρει σε πέρας πνευματικές εργασίες ρουτίνας με μεγάλη ταχύτητα.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 9: Παραγωγή Ενδιάμεσου Κώδικα (Ενδιάμεσες Γλώσσες) Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Κ. ΛΑΖΟΣ - Π. ΚΑΤΣΑΡΟΣ Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τμ.
Προγραμματισμός Γιατι γραφουμε προγραμματα (προηγ. διαλεξη)
Χρήση του ελεύθερου λογισμικού "Γλωσσομάθεια" για την διδασκαλία εννοιών αλγοριθμικής - προγραμματισμού στη Γ' Γυμνασίου Φουστέρης Νικόλαος Μηχανικός.
Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση.
Τεχνολογία ΛογισμικούSlide 1 Τεχνολογία Απαιτήσεων u Καθορίζει τι θέλει ο πελάτης από ένα σύστημα λογισμικού.
Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 5: Γνωριμία με το Λογισμικό
Μπόλαρη Αγγελικη(1451) Επιβλέπων Βολογιαννίδης Σταύρος ΑΤΕΙ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ Σέρρες 2013.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Μέρος 1 Εισαγωγή στα Πληροφοριακά Συστήματα. 22/9/20162 Περιεχόμενα  Βασικές έννοιες Πληροφοριακών Συστημάτων  Απαιτήσεις των σύγχρονων επιχειρήσεων.
Πληροφορική 2 Γλώσσες Προγραμματισμού 1. Γλώσσες προγραμματσιμού  Επιτρέπουν την κωδικοποίηση των αλγορίθμων  Η εκτέλεση ενός προγράμματος θα πρέπει.
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Site: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ.
Τεχνολογία Λογισμικού
Η προγραμματιστική δραστηριότητα ως αντικείμενο εκπαίδευσης
Κατηγορίες και Προδιαγραφές Λογισμικού Η/Υ (Software)
ΣΥΣΤΗΜΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ (QUALITY SYSTEM)
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ Ανάπτυξη Εφαρμογών για Φορητές Συσκευές
Στοιχεία Δομημένου Προγραμματισμού
2ο ΓΥΜΝΑΣΙΟ ΣΗΤΕΙΑΣ - ΤΑΞΗ Γ'
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ Η/Υ
Κεφάλαιο 3 ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΥΠΟΔΕΙΓΜΑΤΑ  Προγραμματιστικό Υπόδειγμα: Είναι ένα πρότυπο ανάπτυξης προγραμμάτων, δηλ. μια καθορισμένη μεθοδολογία με βάση την οποία.
ΠΛΗΡΟΦΟΡΙΚΗ Γ΄ Γυμνασίου Α΄ Τρίμηνο
Ιεραρχική σχεδίαση Καθορίζονται οι βασικές λειτουργίες σε ανώτερο επίπεδο και στη συνέχεια γίνεται διάσπαση σε όλο και μικρότερες λειτουργίες μέχρι το.
Γ' ΤΑΞΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Μεταγράφημα παρουσίασης:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο 2006-2007 (Ε') - Κωδ. Μαθήματος: 321-4002  http://www.icsd.aegean.gr/kotis/softTech06/ Διδάσκων: Κων/νος Κώτης (BSc, PhD)

Παραγωγή Πηγαίου Κώδικα Coding Ακολουθεί την Σχεδίαση Προγραμματιστές + Αποτελέσματα Σχεδίασης Μετατροπή του ψευδοκώδικα σε Πηγαίο κώδικα Προσθήκη κώδικα που δεν έχει προβλεφθεί στην Σχεδίαση Χρήση προγραμματιστικών τεχνικών που δεν έχουν αναφερθεί κατά τον Σχεδιασμό

Παραγωγή Πηγαίου Κώδικα Ο Σχεδιασμός δεν λαμβάνει πάντα υπόψη τα χαρακτηριστικά της γλώσσας προγρ.  ανάγκη για ιδιαίτερη ερμηνεία του ψευδοκώδικα Η ικανοποίηση των απαιτήσεων από το Λογισμικό βρίσκεται στα χέρια των Προγραμματιστών

Παραγωγή Πηγαίου Κώδικα Σκοπός της ενότητας: Να μην αντικαταστήσει τις ενότητες «Τεχνικές Προγραμματισμού» ή «Γλώσσες Προγρ.» Να δείξει την μετάβαση από τη Σχεδίαση στην Κωδικοποίηση Κάποια βασικά επιθυμητά χαρακτηριστικά του πηγαίου Κώδικα Να αναφερθεί γενικά στις Γλώσσες Προγρ. …σε τεχνικές συγγραφής πηγαίου κώδικα …στην επαναχρησιμοποίηση μονάδων προγράμματος

Από τη Σχεδίαση στη Κωδικοποίηση Η μετάβαση πρέπει να γίνεται με τρόπο που να …μην παράγονται σφάλματα στο παραγόμενο λογισμικό. Τι σημαίνει …Λογισμικό χωρίς σφάλματα? Αυτό …που κάνει ακριβώς αυτό για το οποίο προορίζεται, και το κάνει σωστά πληροί προδιαγραφές + ακολουθεί το Σχεδιασμό του Ακόμα και αν ο Σχεδιασμός του είναι λάθος ?!$

Από τη Σχεδίαση στη Κωδικοποίηση Ακόμα και αν ο Σχεδιασμός του είναι λάθος ?!$ Μέχρι να φτάσουμε στη Κωδικοποίηση, πιθανόν να έχουν μεταβληθεί κάποιες προδιαγραφές, και να μην ισχύουν Τι κάνουμε? Εφαρμόζουμε τις αλλαγές στον Κώδικα?  ?

Εργαλεία Κωδικοποίησης

Εργαλεία Κωδικοποίησης Συντάκτες (Editors) Συγγραφή κώδικα σε πρωτογενές επίπεδο Ελέγχει τη σύνταξη του κώδικα (με βάση μία ή περισσότερες γλώσσες προγρ. Χρωματική σύνταξη (highlighting) Αυτόματη στοίχιση, αρίθμηση γραμμών κλπ.

Εργαλεία Κωδικοποίησης Μεταφραστικά περιβάλλοντα Μεταγλωττιστές (compilers): Μεταφράζουν όλο τον κώδικα υψηλού επιπέδου γλώσσας σε εκτελέσιμο κώδικα μηχανής Διερμηνείς (Interpreters): Εκτελούν γραμμή προς γραμμή κώδικα υψηλού επιπέδου γλώσσας Συμβολομεταφραστές (Assemblers): Μεταφράζουν τον κώδικα συμβολικής γλώσσας μηχανής (assembly lang.) σε εκτελέσιμο κώδικα μηχανής

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

Εργαλεία Κωδικοποίησης Γεννήτριες προγρ. (generators): Αυτόματη δημιουργία πηγαίου κώδικα υψηλού επιπέδου γλώσσας Είσοδο: προδιαγραφές γραμμένες σε εξειδικευμένη γλώσσα (υψηλού επιπέδου) Εξειδικεύονται σε συγκεκριμένες κατηγορίες προβλημάτων π.χ. για κατασκευή Interfaces, για προγράμματα προσομοίωσης, κ.α

Εργαλεία Κωδικοποίησης Συστήματα υποστήριξης λογισμικού (soft. Support systems) Ολοκληρ. Περιβαλ. Προγραμ. (integrated progr. Envir.) Ολοκληρωμένα εργαλεία για full support του προγραμματιστή Συνδυασμός εργαλείων Μία κοινή γλώσσα προγρ.

Χαρακτηριστικά του Κώδικα Επιθυμητά για την εξασφάλιση ποιότητας Επάρκεια (efficiency) Ο Κώδικας χαρακτηρίζεται επαρκής όταν: Το σύστημα λειτουργεί σωστά, χωρίς σφάλματα Ικανοποιεί όλες τις απαιτήσεις Διαχειρίζεται τους πόρους του συστήματος με ορθό τρόπο Είναι διαθέσιμο όποτε απαιτείται Η Επάρκεια εξασφαλίζεται κυρίως κατά την φάση Ελέγχου του λογισμικού

Χαρακτηριστικά του Κώδικα Επιθυμητά για την εξασφάλιση ποιότητας Επίδοση (performance) Ταχύτητα εκτέλεσης λειτουργιών του λογισμικού Οι απαιτήσεις του λογισμικού σε πόρους (μνήμη, δίσκος) Η Βελτίωση της Επίδοσης επιτυγχάνεται με: Επιλογή της κατάλληλης γλώσσας Επιλογή κατάλληλων προγραμματιστικών τεχνικών

Χαρακτηριστικά του Κώδικα Επιθυμητά για την εξασφάλιση ποιότητας Αναγνωσιμότητα (readability) Δυνατότητα ανάγνωσης και κατανόησης Κώδικα άλλου προγραμματιστή ή πολλές φορές και του ίδιου  Συμβουλές: Απλότητα: απλές προγραμ. Λύσεις που να ικανοποιούν μόνο τις απαιτήσεις…όχι τον προγραμματιστή Πλεονασμός: επιπλέον σημεία στίξης Επιλογή ονομάτων: κατάλληλα ονόματα μεταβλητών, σταθερών, κλπ. Χρήση Σχολίων Στοίχιση

Χαρακτηριστικά του Κώδικα Επιθυμητά για την εξασφάλιση ποιότητας Αναγνωσιμότητα (readability) Π.χ.

Χαρακτηριστικά του Κώδικα Επιθυμητά για την εξασφάλιση ποιότητας Τεκμηρίωση (documentation) Συνοδευτικά έγγραφα Συνήθως σε φυσική γλώσσα Επεξηγεί τα πολύπλοκα σημεία του Κώδικα Συμπληρωματικό των Σχολίων

Χαρακτηριστικά του Κώδικα Επιθυμητά για την εξασφάλιση ποιότητας Μεταφερσιμότητα (portability) Δυνατότητα εκτέλεσης του κώδικα σε διαφορετικά περιβάλλοντα (λειτουργικά συστ., υπολογιστές) χωρίς αλλαγές Δυνατότητα μεταφοράς του κώδικα μεταξύ διαφορετικών υλοποιήσεων της γλώσσας προγραμματισμού Οδηγίες: Να μην χρησιμοποιούνται συστατικά που υποστηρίζονται από συγκεκριμένες υλοποιήσεις (π.χ Java 1.3, …Java 2) Να μην γίνονται αυθαίρετες παραδοχές για την συμπεριφορά των υλοποιήσεων

Χαρακτηριστικά του Κώδικα Επιθυμητά για την εξασφάλιση ποιότητας Επαναχρησιμοποίηση (reusability) Κατάλληλη δόμηση του κώδικα σε επαναχρησιμοποιήσιμα τμήματα Οδηγίες: Παραμετροποίηση Μικρά τμήματα κώδικα, εστιασμένα σε υπο-προβλήματα Κοινά αποδεκτές τεχνικές προγραμ. Καλή τεκμηρίωση, Σχολιασμός Σωστή, απλή και σχετική ονοματολογία παραμέτρων, μεταβλητών, κλπ.

Γλώσσες Προγραμματισμού Χαρακτηρίζονται με βάση: Πολυπλοκότητα Θεματική Περιοχή που απευθύνονται Φιλοσοφία προγραμματισμού που υποστηρίζουν Βασική διάκριση: Χαμηλού – Υψηλού επιπέδου

Γλώσσες Προγραμματισμού Χαμηλού επιπέδου: «κοντά» στην μονάδα επεξεργασίας Μοιάζει με την γλώσσα μηχανής Διαφέρει από τον τρόπο σκέψης των ανθρώπων Δεν μπορεί να εξασφαλίσει την απαιτούμενη ποιότητα του λογισμικού Τα τεχνικά προβλήματα είναι τελείως ξένα με το πεδίο της εφαρμογής Χρησιμοποιείται μόνο για ορισμένα κομμάτια του λογισμικού με ειδικές απαιτήσεις (π.χ. επικοινωνία με συσκευές, λειτουργικά συστήματα, real-time systems)

Γλώσσες Προγραμματισμού Υψηλού επιπέδου: Αφαιρετικοί συμβολισμοί Κοντά στον άνθρωπο (αντίληψη και γλώσσα) Προσεγγίζουν τη φιλοσοφία ανάλυσης και σχεδιασμού, άρα εξασφαλίζουν την ποιότητα του παραγόμενου λογισμικού Pascal, C, C++, COBOL, Basic, Java

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

Δομημένος Προγραμματισμός Δομές Ελέγχου των γλωσσών Προγρ. Εγκατάλειψη της Goto Χρήση των If και While Είναι Τεχνοτροπία προγραμματισμού παρέχει δομή στο πρόγραμμα Βοηθά στην κατανόηση της ροής ελέγχου …στην καλύτερη κατανόηση του προγράμματος

Δομημένος Προγραμματισμός Κάθε αλγόριθμος είναι δυνατόν να κωδικοποιηθεί με τρία μόνο στοιχεία ελέγχου Ακολουθία (s1; s2) Επιλογή (if c then s1 else s2) Επανάληψη (while c do s) Χαρακτηρίζονται από την ύπαρξη ενός σημείου εξόδου και ενός εξόδου  επιτρέπει το συνδυασμό τους σε μεγαλύτερες δομικές μονάδες

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

Δομημένος Προγραμματισμός «Προγραμματιστική Πειθαρχία» Υποχρέωση του προγραμματιστή να σκέφτεται περισσότερο Συντείνει στην μείωση της πιθανότητας σφαλμάτων Συναρτήσεις και Διαδικασίες= δομικές μονάδες Top-down development Δομημένη ανάλυση και σχεδίαση

Χαρακτηριστικά Σύγχρονων Γλωσσών Συστήματα Τύπων Καθορίζει τους τύπους δεδομένων μιας γλώσσας Τις πράξεις που επιτρέπονται με τα δεδομένα αυτών των τύπων Πλούσια συστήματα, βοηθούν σημαντικά τον προγραμματιστή στη συγγραφή καλά δομημένου κώδικα Οι κανόνες ενός συστήματος τύπων χρησιμοποιούνται για τον έλεγχο της σωστής εφαρμογής των τελεστών – της σύνταξης των εκφράσεων της γλώσσας

Κελυφοποίηση & Απόκρυψη Πληροφοριών Απόκρυψη Πληροφορ. (info. Hiding): Εμφάνιση λεπτομερειών υλοποίησης μιας δομικής μονάδας στο εσωτερικό της Κελυφοποίηση (encapsulation): Δεδομένα στενά συνυφασμένα με τις λειτουργίες που ενεργούν πάνω σε αυτά Τοποθετούνται στο ίδιο κέλυφος, δηλ. σε μια κοινή και σχετικά αυτοτελή δομική μονάδα

Είδη Προγραμματισμού Προστακτικός (imperative) Cobol, C, Pascal, Basic, Fortran Υψηλού Επιπέδου Προγραμ. ύφος συμβαδίζει με της γλώσσας μηχ. Υποστηρίζουν: Μεταβλητές διαφόρων τύπων (δομημένων και μη) Αναθέσεις τιμών σε μεταβλητές Εντολές που αλλάζουν τη ροή ελέγχου

Είδη Προγραμματισμού Αντικειμενοστραφής (object-oriented) C++, Java Υψηλού Επιπέδου Έμφαση στις έννοιες «αντικείμενο», «κλάση», «κληρονομικότητα», «κελυφοποίηση» Βασίζονται στο προστακτικό ύφος προγραμ. Αντικείμενα αντί Μεταβλητές και Κλάσεις αντί Τύπους δεδομένων

Είδη Προγραμματισμού Συναρτησιακός (functional) Lisp, Scheme, Haskell Υψηλού Επιπέδου Πλησιέστερα στον άνθρωπο Έμφαση στις έννοιες «Συνάρτηση» και «Αναδρομή» Η έννοια της «μεταβλητής» χρησιμοποιείται σχεδόν καθόλου Απλούστερος αλλά όχι τόσο δημοφιλής

Τεχνικές συγγραφής Κώδικα Αποφυγή σφαλμάτων Σωστή, ολοκληρωμένη, και με σαφήνια Προδιαγραφή Απαιτήσεων Πειθαρχημένη εφαρμογή των φάσεων-ενεργειών ανάπτυξης λογισμικού Αξιοποίηση των χαρακτηριστικών της γλώσσας προγ. Π.χ. αποφυγή χρήσης μιας γλώσσας που δεν είναι ισχυρή στους μαθηματικούς υπολογισμούς για την ανάπτυξη μαθηματικής εφαρμογής Επιδίωξη του «καλού προγραμματιστή» Αυξημένη ευαισθησία για ποιότητα !!!

Τεχνικές συγγραφής Κώδικα Ανοχή σε σφάλματα (fault tolerance): Πρόβλεψη πιθανόν σφαλμάτων στη λειτουργία της εφαρμογής (ειδικά για εφαρμογές υψηλού ρίσκου – κινδύνου π.χ. αυτόματος πιλότος αεροσκάφους) Ανοχή στα πιθανά σφάλματα Συνέχιση λειτουργίας παρόλο που εντοπίστηκε σφάλμα, με τις μικρότερες δυνατές απώλειες Απαιτείται συγγραφή επιπλέον κώδικα που θα αναλάβει να: Εντοπίσει δυναμικά το σφάλμα κατά την λειτουργία Ανανήψει από το σφάλμα Αποφύγει την επανάληψή του μέχρι να διορθωθεί

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

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

Επαναχρησιμοποίηση μονάδων Επαναχρησιμοποίηση (Reuse): Διαδικασία υλοποίησης νέου λογισμικού με τη χρήση συστατικών ήδη κατασκευασμένου Επαναχρησιμοποιούνται: Κώδικας Ανάλυση και Σχεδιασμός Τεκμηρίωση, δεδομένα Σχέδια ελέγχου Στόχος : η μείωση του κόστους της παραγωγής λογισμικών Βελτίωση της ποιότητας και της αξιοπιστίας

Επαναχρησιμοποίηση μονάδων Επαναχρησιμοποίηση (Reuse): Βασικές προϋποθέσεις Ο κώδικας να έχει γραφτεί με την πρόβλεψη να επαναχρησιμοποιηθεί Γενικότητα κώδικα μέσω παραμετροποίησης Μεταφερσιμότητα κώδικα

Ερωτήσεις – Απορίες - Συζήτηση

Ασκήσεις – Πιθανά Θέματα Εξέτασης