Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 10: Έλεγχος ορθότητας και αποσφαλμάτωση.

Slides:



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

Επιμέλεια: Τίκβα Χριστίνα
7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Τύποι δεδομένων και τελεστές,
Κεφάλαιο 8 Πειρατεία Λογισμικού Πληροφορική Α’ Γυμνασίου Κεφάλαιο 8.
Βασικές Συναρτήσεις Πινάκων
Διαχείριση Έργου Οργάνωση, σχεδιασμός και προγραμματισμός έργων ανάπτυξης λογισμικού.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
Πιθανοκρατικοί Αλγόριθμοι
Τι είναι ο υπολογιστής; Τι είναι ο προγραμματισμός
Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση.
Τα στοιχειώδη περί γεωδαιτικών υπολογισμών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο (Ε') - Κωδ. Μαθήματος:
Εξελικτική πορεία της Διοίκησης Ολικής Ποιότητας (ΔΟΠ)
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ. Ε
Εκτέλεση Αλγορίθμων σε ψευδογλώσσα
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 3: Υλοποίηση μεθόδων.
ΜΑΘ-3122/106 Προγραμματισμός
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
24/11/2003Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
22/11/2004Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2004 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 5: Introduction to design Εβδομάδα 5: Εισαγωγή στο σχεδιασμό.
HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 11: Intro to Applets Εβδομάδα 11: Εισαγωγή στα Applets.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΝΝΟΙΑ ΤΟΥ ΑΛΓΟΡΙΘΜΟΥ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΑΡΤΙΟΣ 2012 Π. Σοφράς.
Αντικειμενοστρεφής Προγραμματισμός, Αντώνιος Συμβώνης, Πανεπιστήμιο Ιωαννίνων, Slide 1 Week 13: Review Εβδομάδα 13: Ανασκόπηση.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
Page  1 Ο.Παλιάτσου Γαλλική Επανάσταση 1 ο Γυμνάσιο Φιλιππιάδας.
ΝΕΟ ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ Α’, Β’, & Γ’ ΓΥΜΝΑΣΙΟΥ ΟΜΑΔΑ ΕΡΓΑΣΙΑΣ Ανδρέας Σ. Ανδρέου (Αναπλ. Καθηγητής ΤΕΠΑΚ - Συντονιστής) Μάριος Μιλτιάδου, Μιχάλης Τορτούρης.
-17 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Σεπτέμβριος 2013 Δείκτης > +20 Δείκτης 0 a +20 Δείκτης 0 a -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Αντικείμενα, Κλάσεις και Μέθοδοι
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 7: Συμβολοσειρές.
Σχέση Απόδοσης- Κινδύνου στα Πλαίσια της Θεωρίας Χαρτοφυλακίου
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
Αποκεντρωμένη Διοίκηση Μακεδονίας Θράκης ∆ιαχείριση έργων επίβλεψης µε σύγχρονα µέσα και επικοινωνία C2G, B2G, G2G Γενική Δ/νση Εσωτερικής Λειτουργίας.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Ολυμπιάδα Πληροφορικής
Οργάνωση και Αρχιτεκτονική Υπολογιστών Βασικές αρχές Αρχιτεκτονικής
Τεχνολογία ΛογισμικούSlide 1 Αλγεβρική Εξειδίκευση u Καθορισμός τύπων αφαίρεσης σε όρους σχέσεων μεταξύ τύπων λειτουργιών.
Μοντέλα Συστημάτων Παρουσιάσεις των συστημάτων των οποίων οι απαιτήσεις αναλύονται.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 11: Εκτέλεση Java χωρίς το BlueJ.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Κληρονομικότητα.
Ανάπτυξη Πρωτοτύπου Λογισμικού
Hackers/Crackers Διαφορές και ομοιότητες. Επιμέλεια εργασίας: Αγγελίδης Χάρης Κάκο Νάσος Μπατμανίδης Βασίλης Σεραλίδης Γιώργος.
Στατιστική Ι Παράδοση 9 Ο Δείκτης Συσχέτισης.
Ενότητα Α.4. Δομημένος Προγραμματισμός
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
ΜΑΘΗΜΑ ΝΟΣΗΛΕΥΤΙΚΗ ΜΕΤΑΓΓΙΣΗ ΑΙΜΑΤΟΣ - ΑΙΜΟΔΟΣΙΑ
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού Προπτυχιακό.
Computers: Information Technology in Perspective By Long and Long Copyright 2002 Prentice Hall, Inc. Προγραμματισμός Η / Υ 6 η Διάλεξη.
Ανάλυση Συστημάτων ( site) Υπευθ. Καθηγ.: Τσαλγατίδου Αφροδίτη.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
+19 Δεκέμβριος 2014 Δείκτης > +20 Δείκτης 0 έως +20 Δείκτης 0 έως -20 Δείκτης < -20 Συνολικά της ΕΕ: +5 Δείκτης > +20 Δείκτης 0 έως +20 Δείκτης 0 έως -20.
Αγγελική Γεωργιάδου- Αναστασία Πεκτέσογλου Δράμα 2006
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
Έλεγχος λογισμικού Ποιότητα Λογισμικού Black Box testing
Ανάλυση και σχεδιασμόσ πληροφοριακών συστημάτων
Εβδομάδα 12: Ανασκόπηση.
ΠΛΗΡΟΦΟΡΙΚΗ Γ΄ Γυμνασίου Α΄ Τρίμηνο
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java)
Μεταγράφημα παρουσίασης:

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 10: Έλεγχος ορθότητας και αποσφαλμάτωση

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 2 Έλεγχος ορθότητας (testing) Διαδοχικές δοκιμαστικές εκτελέσεις του προγράμματος, με ένα συστηματικό τρόπο, που αποσκοπούν στην ανακάλυψη σφαλμάτων. Τι είναι ο έλεγχος ορθότητας;

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 3 Αποσφαλμάτωση (debugging) Εύρεση και διόρθωση λαθών σε ένα πρόγραμμα. Τι είναι η αποσφαλμάτωση;

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 4 Γιατί χρειάζεται ο έλεγχος ορθότητας; Σπάνια γράφουμε σωστό κώδικα με την πρώτη προσπάθεια!!! Η ορθότητα του κώδικα ενός προγράμματος είναι πολύ δύσκολο να αποδειχθεί. Η απόδειξη της ορθότητας ενός προγράμματος είναι τόσο δύσκολη ώστε θεωρείται ανέφικτη για πολύ μεγάλα συστήματα.

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 5 Ο νόμος του Murphy, το Venera-14 συμβάν Ο έλεγχος ορθότητας αποτελεί μια πιστοποίηση του νόμου του Murphy. (Ονομασία προς τιμή του Captain Edward A. Murphy Jnr. ): «Εάν ένα άτομο μπορεί να εκτελέσει μια εργασία με δυο ή περισσότερους τρόπους ενας εκ των οποίων οδηγεί σε καταστροφή, τότε θα διαλέξει να την εκτελέσει με τον τρόπο αυτό» Παράδειγμα: Το συμβάν του Venera 14. Το Venera 14 ήταν ένα Σοβιετικό διαστημικό εξερευνητικό όχημα το οποίο προσγειώθηκε στην Αφροδίτη το Δείτε:

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 6 Το συμβάν των μαχητικών F-16 Το λογισμικό των μαχητικών αεροσκαφών F-16 περιείχε ένα λάθος το οποίο τα ανάγκαζε να αναποδογυρίζουν κάθε φορά που περνούσαν πάνω από τον ισημερινό. (Το λάθος ανακαλύφθηκε μέσω προσομοιωτή και όχι στη διάρκεια κανονικής πτήσης.)

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 7 Το συμβάν του διαστημικού λεωφορείου Σε ένα πείραμα που απαιτούσε την ανάκλαση μίας ακτίνας laser από τον ερευνητικό σταθμό του Mona Kea μέσω κάτοπτρου που βρίσκονταν σε δορυφόρο, το διαστημικό λεωφορείο "Discovery" τοποθετήθηκε αναποδογυρισμένο; Το κάτοπτρο σκόπευε προς το πάνω και όχι προς τα κάτω όπως έπρεπε. Ο προγραμματιστής είχε εισάγει τις συντεταγμένες σε «πόδια» αντί για «μίλια». (10,023 μίλια από το επίπεδο της θάλασσας) (Software Engineering Notes, Vol 10 No 3)

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 8 Το συμβάν Therac-25 Από το 1985 έως το 1987, το Therac-25, ένα ελεγχόμενο από υπολογιστή μηχάνημα ακτινοβολίας που χρησιμοποιούνταν σε νοσοκομεία, παρείχε σε ασθενείς μεγαλύτερες από τις κανονικές δόσεις ακτινοβολίας λόγω λάθους στο λογισμικό του. Πολλοί ασθενείς πέθαναν και αρκετοί έπαθαν σοβαρά εγκαύματα. Αναφορές: Nancy G. Leveson and Clark S. Turner: "An Investigation of the Therac-25 Accidents", IEEE Computer, July 1993, pp Troy Gallagher: "THERAC-25: Computerized Radiation Therapy",

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 9 Το συμβάν του Ariane 5 Στις 4 Ιουνίου 1996, ο Ευρωπαϊκός διαστημικός πύραυλος Ariane 5 εξερράγη 40’’ μετά την εκτόξευση στην παρθενική του πτήση. Η έκρηξη προεκλίθη από λάθος λογισμικού (Κόστος: περίπου 0.6 δισ. ευρώ) Αναφορές: "ARIANE 5 - Flight 501 Failure", Report by the Inquiry Board, Peter B. Ladkin: "The Ariane 5 Accident: A Programming Problem?",

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 10 Ariane 5: Ένα αποσπασμα… "The failure of the Ariane 501 was caused by the complete loss of guidance and attitude information 37 seconds after start of the main engine ignition sequence (30 seconds after lift- off). This loss of information was due to specification and design errors in the software of the inertial reference system. The extensive reviews and tests carried out during the Ariane 5 development programme did not include adequate analysis and testing of the inertial reference system or of the complete flight control system, which could have detected the potential failure." from: "ARIANE 5 - Flight 501 Failure", Report by the Inquiry Board,

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 11 Προβλήματα με τον έλεγχο ορθότητας Τεχνικά: –Ο έλεγχος ορθότητας είναι δύσκολος –Ο έλεγχος ορθότητας απαιτεί χρόνο –Ο έλεγχος ορθότητας απαιτεί μεγάλη προεργασία Ψυχολογικά: –Ο προγραμματιστής ελέγχει μόνο τις περιπτώσεις που έχει καλύψει στο σχεδιασμό του –Γίνεται μόνο «positive testing» –Στον έλεγχος ορθότητας επιδρά η εμπειρία από την υλοποίηση.

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 12 Θέματα ελέγχου ορθότητας Θετικός και αρνητικός έλεγχος ορθότητας [positive and negative testing] Οριακές περιπτώσεις [boundary case] white box vs black box testing Πότε γίνεται ο έλεγχος ορθότητας (κατά τη διάρκεια της υλοποίησης ή μετά); Ποιος εκτελεί τον έλεγχο ορθότητας;

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 13 Θετικός και αρνητικός έλεγχος ορθότητας Ο έλεγχος ορθότητας πρέπει να καλύπτει όλο το φάσμα των λειτουργιών ενός προγράμματος Ο έλεγχος ορθότητας πρέπει να καλύπτει όλο το φάσμα των τιμών εισόδου Θετικός: Ο έλεγχος ορθότητας καλύπτει όλο το φάσμα των «νόμιμων» τιμών εισόδου και καταδεικνύει την σωστή λειτουργία του προγράμματος για αυτές τις αναμενόμενες περιπτώσεις Αρνητικός: Ο έλεγχος ορθότητας καλύπτει «μη-νόμιμες» τιμές εισόδου με σκοπό να καταδείξει ότι το προγραμμα συμπεριφέρεται λογικά σε περιπτώσεις λάθους από το χρήστη του Οριακές περιπτώσεις

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 14 Black box / white box Έλεγχος ορθότητας τύπου «Black box»: χρησιμοποιείται μόνο το πρόγραμμα και το εγχειρίδιο χρήσης [manual]. Δεν λαμβάνεται υπ’ όψιν ο πηγαίος κώδικας. Έλεγχος ορθότητας τύπου «White box»: Η στρατηγική του ελέγχου ορθότητας βασίζεται στον πηγαίο κώδικα.

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 15 Έλεγχος ορθότητας τύπου «Black box» Όλες οι σημαντικά διαφοροποιήσιμες περιπτώσεις ελέγχου πρέπει να καλυφθούν. Ποιες περιπτώσεις έλεγχου κατατάσσονται ως «σημαντικά διαφοροποιήσιμες»; Το σύνολο των τεστ ορθότητας πρέπει να γράφει πριν από την υλοποίηση του προγράμματος. Ο ελεγκτής ορθότητας πρέπει να μην είναι ο ίδιος ο προγραμματιστής

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 16 Έλεγχος ορθότητας τύπου «White box» Κάθε τμήμα του πηγαίου κώδικα πρέπει να εκτελεστεί (κάθε μέθοδος πρέπει να κληθεί, σε κάθε εντολή-if, το if τμήμα και το else τμήμα πρέπει να ελεγχθεί, …)

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 17 Τεκμηρίωση ελέγχων ορθότητας Η στρατηγική του ελέγχου ορθότητας πρέπει να γραφεί πριν από την υλοποίηση του προγράμματος. Η στρατηγική αποτελείται από ένα σύνολο τεστ και από τα αναμενόμενα αποτελέσματα τους. Κατά τη διάρκεια του έλεγχου ορθότητας τα τεστ (και τα αποτελέσματα τους) πρέπει να καταγράφονται. Τα πραγματικά αποτελέσματα των τεστ πρέπει να συγκρίνονται με τα αναμενόμενα αποτελέσματα. Τα λάθη και οι αποκλίσεις από τα αναμενόμενα αποτελέσματα πρέπει να αναφέρονται στον προγραμματιστή.

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 18 Έλεγχος ορθότητας «μονάδας» Κάθε μονάδα προγράμματος πρέπει να ελέγχεται ξεχωριστά πριν την ενσωμάτωση της με τις άλλες μονάδες του προγράμματος. Κάθε μέθοδος πρέπει να ελέγχεται, κάθε κλάση πρέπει να ελέγχεται, … Μετά από κάθε βήμα ενσωμάτωσης μονάδων, η νέα ολοκληρωμένη μονάδα πρέπει να ελεγχθεί.

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 19 Έλεγχος ορθότητας εφαρμογής Μετά την ενσωμάτωση όλων των συστατικών μονάδων μίας εφαρμογής, η πλήρης εφαρμογή πρέπει να ελεγχθεί. Μετά κάθε αλλαγή, ο έλεγχος ορθότητας πρέπει να επαναληφθεί. [regression testing] Regress = επιστροφή σε προγενέστερη (ανεπιθύμητη) κατάσταση, οπισθοδρόμηση

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 20 Τι αποδεικνύει ο έλεγχος ορθότητας; Ο έλεγχος ορθότητας μπορεί να αποδείξει μόνο την παρουσία σφαλμάτων, ποτέ την απουσία τους!

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 21 Κριτική/ανασκόπηση πηγαίου κώδικα Εναλλακτική /επιπρόσθετη μέθοδος: «ανασκόπηση κώδικα» [code review] Μια ομάδα-σχεδιασμού εξετάζει τον πηγαίο κώδικα μαζί με τον προγραμματιστή που τον ανέπτυξε. Η ομάδα κάνει παρατηρήσεις και προτάσεις στον προγραμματιστή. Απαιτεί ωριμότητα και «μη-ατομικιστικό προγραμματισμό». Πολύ καλά αποτελέσματα στην πράξη.

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 22 Αποσφαλμάτωση (Debugging) Η αποσφαλμάτωση εκτελείται μετά τον έλεγχο ορθότητας: Όταν ένα λάθος εντοπιστεί, τα αίτια του λάθους πρέπει να βρεθούν και η σωστή λειτουργία του κώδικα να αποκατασταθεί.

Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 23 Τεχνικές αποσφαλμάτωσης παρατήρηση ανάγνωση πηγαίου κώδικα εκτέλεση προγράμματος σε «χαρτί» εντολές εξόδου για αποσφαλμάτωση ισχυρισμοί [assertions] χρήση αποσφαλματωτή