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

Slides:



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

Ερωτηματολόγιο Συλλογής Απαιτήσεων Εφαρμογών Υψηλών Επιδόσεων
Επιμέλεια: Τίκβα Χριστίνα
Προγραμματισμοσ υπολογιστη
1 “Ανάπτυξη και Εφαρμογή Ολοκληρωμένου Συστήματος για τον Έλεγχο και την Παρακολούθηση των Μονάδων Επεξεργασίας Αστικών Λυμάτων στην Κύπρο, COMWATER” (Δεκέμβριος.
7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
ΜοντελοποίησηΈργα ΜαθήματαΑξιολόγηση Αναστοχασμος Μαθήματα.
7.5.2 Αντικειμενοστραφής προγραμματισμός
Διαχείριση Έργου Οργάνωση, σχεδιασμός και προγραμματισμός έργων ανάπτυξης λογισμικού.
Πιθανοκρατικοί Αλγόριθμοι
Τι είναι ο υπολογιστής; Τι είναι ο προγραμματισμός
Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση.
Χαρακτηριστικά συνθετικής κίνησης 1 Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο (Ε') - Κωδ. Μαθήματος:
Εξελικτική πορεία της Διοίκησης Ολικής Ποιότητας (ΔΟΠ)
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Ενότητα 1: Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Εκτέλεση Αλγορίθμων σε ψευδογλώσσα
Γλώσσα Προγραμματισμού
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Κεφάλαιο 2ο Πεπερασμένα αυτόματα.
ΕΚΠΑΙΔΕΥΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ ΤΗΣ ΕΥΡΥΤΕΡΗΣ ΕΝΝΟΙΑΣ ΤΟΥ ΑΛΓΟΡΙΘΜΟΥ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΔΙΑΦΟΡΕΤΙΚΟ ΛΟΓΙΣΜΙΚΟ ΓΙΑ ΚΑΘΕ ΠΤΥΧΗ ΤΟΥ Κάππας Κων/νος Επιμορφωτής ΤΠΕ -
ΑΠΕΙΚΟΝΙΣΗ ΕΝΝΟΙΩΝ 1. 2 Χρήστης Στόχος Ταμίας διενέργεια πώλησης διενέργεια ενοικίασης εισαγωγή ταμείου εξαγωγή ταμείου * 1 Μοντέλο Πεδίου Προβλήματος.
Αποκεντρωμένη Διοίκηση Μακεδονίας Θράκης ∆ιαχείριση έργων επίβλεψης µε σύγχρονα µέσα και επικοινωνία C2G, B2G, G2G Γενική Δ/νση Εσωτερικής Λειτουργίας.
Στοιχεία Διοίκησης Επιχειρήσεων
ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών Εαρινό Εξάμηνο 2002 Κ. Μουρλάς, Λέκτορας Σημείωση: Οι διαφάνειες αυτές βασίζονται κατά το μεγαλύτερο μέρος τους.
Γεωργαλλίδης Δημήτρης Καθηγητής Πληροφορικής
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Κεφ.1 Εισαγωγη στην εννοια του Αλγοριθμου και στον Προγραμματισμο
Ο ΗΛΕΚΤΡΟΝΙΚΟΣ ΥΠΟΛΟΓΙΣΤΗΣ
Συστήματα Στήριξης Αποφάσεων
Τεχνολογία ΛογισμικούSlide 1 Σχεδιασμός Λογισμικού u Ανάπτυξη λύσης που ικανοποιεί τις απαιτήσεις λογισμικού.
Τεχνολογία ΛογισμικούSlide 1 Αλγεβρική Εξειδίκευση u Καθορισμός τύπων αφαίρεσης σε όρους σχέσεων μεταξύ τύπων λειτουργιών.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο (Ε') - Κωδ. Μαθήματος:
Συνδυαστικά Κυκλώματα
Μοντέλα Συστημάτων Παρουσιάσεις των συστημάτων των οποίων οι απαιτήσεις αναλύονται.
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
Ανάπτυξη Πρωτοτύπου Λογισμικού
Κεφάλαιο 6 -Περιβάλλοντα Ανάπτυξης Εφαρμογών
Κεφάλαιο 6: Εισαγωγή στον προγραμματισμό Φυσικές και τεχνητές γλώσσες.
Ενότητα Α.4. Δομημένος Προγραμματισμός
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Π. ΚΑΤΣΑΡΟΣ Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τμ. Πληροφορικής,
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Π. ΚΑΤΣΑΡΟΣ Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τμ. Πληροφορικής,
Για τη διεκπεραίωση ενός προβλήματος πρέπει να ακολουθηθεί η εξής διαδικασία:  να γραφεί ο αλγόριθμος να συνταχθεί το πρόγραμμα σε γλώσσα υψηλού επιπέδου.
1.5 Γλώσσες Προγραμματισμού
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
ΛΑΔΑΚΑΚΟΣ ΘΑΛΗΣ Α.Μ ΔΙΑΧΕΙΡΗΣΗ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού Προπτυχιακό.
Computers: Information Technology in Perspective By Long and Long Copyright 2002 Prentice Hall, Inc. Προγραμματισμός Η / Υ 6 η Διάλεξη.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 9: Παραγωγή Ενδιάμεσου Κώδικα (Ενδιάμεσες Γλώσσες) Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά.
Προγραμματισμός Γιατι γραφουμε προγραμματα (προηγ. διαλεξη)
Τεχνολογία ΛογισμικούSlide 1 Τεχνολογία Απαιτήσεων u Καθορίζει τι θέλει ο πελάτης από ένα σύστημα λογισμικού.
Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό
Μέρος 1 Εισαγωγή στα Πληροφοριακά Συστήματα. 22/9/20162 Περιεχόμενα  Βασικές έννοιες Πληροφοριακών Συστημάτων  Απαιτήσεις των σύγχρονων επιχειρήσεων.
Πληροφορική 2 Γλώσσες Προγραμματισμού 1. Γλώσσες προγραμματσιμού  Επιτρέπουν την κωδικοποίηση των αλγορίθμων  Η εκτέλεση ενός προγράμματος θα πρέπει.
ΣΥΣΤΗΜΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ (QUALITY SYSTEM)
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο (Ε') - Κωδ. Μαθήματος:
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ Ανάπτυξη Εφαρμογών για Φορητές Συσκευές
2ο ΓΥΜΝΑΣΙΟ ΣΗΤΕΙΑΣ - ΤΑΞΗ Γ'
Κεφάλαιο 3 ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΥΠΟΔΕΙΓΜΑΤΑ  Προγραμματιστικό Υπόδειγμα: Είναι ένα πρότυπο ανάπτυξης προγραμμάτων, δηλ. μια καθορισμένη μεθοδολογία με βάση την οποία.
ΠΛΗΡΟΦΟΡΙΚΗ Γ΄ Γυμνασίου Α΄ Τρίμηνο
Ιεραρχική σχεδίαση Καθορίζονται οι βασικές λειτουργίες σε ανώτερο επίπεδο και στη συνέχεια γίνεται διάσπαση σε όλο και μικρότερες λειτουργίες μέχρι το.
Μεταγράφημα παρουσίασης:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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