ΤΕΣΤ (ΑΣΚΗΣΕΙΣ) ONLINE
98 Tests / Διαγωνίσματα

Κεφάλαιο 14.3 – Σελίδα 260-265 – ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ΄ ΛΥΚΕΙΟΥ – Απαντήσεις – Λύσεις

Ερωτήσεις - Θέματα για συζήτηση

Ερώτηση 1 (σελ. 264)

Ποιες είναι οι φάσεις του κύκλου ζωής προγράμματος;

Σκέψη / Μεθοδολογία: Ερώτηση απαρίθμησης — οι φάσεις δίνονται ρητά και με τη σειρά τους στο §14.3.

Λύση:

Απαριθμούμε τις φάσεις με τη σειρά που παρουσιάζονται στο §14.3.

Απάντηση: Οι φάσεις του κύκλου ζωής ενός προγράμματος είναι: (1) Ανάλυση και Σχεδίαση, (2) Υλοποίηση (κωδικοποίηση σε γλώσσα προγραμματισμού), (3) Έλεγχοι, και (4) Συντήρηση. Το τέλος μιας φάσης οδηγεί συνήθως στην επόμενη, αλλά μπορεί να οδηγήσει και πίσω σε προηγούμενη, όταν χρειάζεται να επανακαθοριστούν κάποια στοιχεία.

Πρόσεξε:

  • Να αναφερθούν και οι τέσσερις φάσεις με τη σωστή σειρά, όχι μόνο η ανάλυση/σχεδίαση και η υλοποίηση.

Ερώτηση 2 (σελ. 264)

Σε ποια φάση της ανάπτυξης ενός προγράμματος αρχίζει η τεκμηρίωση και πότε τελειώνει;

Σκέψη / Μεθοδολογία: Συνδυαστική ερώτηση — απαιτεί να θυμηθεί κανείς ότι η τεκμηρίωση πραγματοποιείται «σε όλα τα στάδια ανάπτυξης» (§14.2.2) και ότι ο φάκελος προγράμματος ολοκληρώνεται μετά την ολοκλήρωση του προγράμματος (§14.2.3), αλλά ξανανοίγει κατά τη συντήρηση.

Λύση:

Εντοπίζουμε στο §14.2.2 πότε αρχίζει η τεκμηρίωση. Εντοπίζουμε στο §14.2.3 πότε ολοκληρώνεται ο φάκελος τεκμηρίωσης, και πότε ξαναχρησιμοποιείται.

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

Πρόσεξε:

  • Η τεκμηρίωση δεν είναι εργασία μιας μόνο φάσης — συνεχίζεται σε όλη τη ζωή του προγράμματος, μέχρι και τη συντήρηση.

Ερώτηση 3 (σελ. 264)

Ποιος είναι ο κανόνας 3 Ε;

Σκέψη / Μεθοδολογία: Ερώτηση ορισμού — δίνεται ρητά στο §14.2.2, στο πλαίσιο των κανόνων σχεδίασης ενοτήτων ενός VTOC.

Λύση:

Δίνουμε τον ορισμό του κανόνα 3Ε όπως αναφέρεται στο §14.2.2.

Απάντηση: Ο κανόνας 3Ε λέει ότι κάθε ενότητα ενός προγράμματος πρέπει να έχει μία Είσοδο, να εκτελεί μία καθορισμένη Επεξεργασία, και να παράγει μία Έξοδο.

Ερώτηση 4 (σελ. 264)

Ποια η σημασία του αριθμού που συνήθως ακολουθεί το όνομα ενός πακέτου λογισμικού;

Σκέψη / Μεθοδολογία: Ερώτηση θεωρίας — ο αριθμός έκδοσης εξηγείται στην αρχή του §14.3.

Λύση:

Εξηγούμε τι δείχνει ο αριθμός έκδοσης και πότε αυξάνει κατά ακέραιο ή κατά δέκατα.

Απάντηση: Ο αριθμός αυτός είναι ο αριθμός έκδοσης (version) και δείχνει τις αλλαγές που έχουν γίνει στο λογισμικό από την αρχική του εμφάνιση. Όταν οι αλλαγές είναι σημαντικές (νέες λειτουργίες, εντολές, προγράμματα), ο αριθμός αυξάνει κατά ακέραιο (π.χ. DOS ver.5 → ver.6)· όταν είναι μικρότερες, αυξάνει κατά δέκατα (π.χ. Windows v.3.1 → v.3.11).

Πρόσεξε:

  • Τα τελευταία χρόνια η αρίθμηση συχνά συνδέεται περισσότερο με την πολιτική πωλήσεων παρά με την πραγματική έκταση των αλλαγών (π.χ. Windows 95, Windows 98).

Ερώτηση 5 (σελ. 264)

Ποια η σημασία των αριθμών που συνοδεύουν το όνομα μιας ενότητας σε έναν οπτικό πίνακα περιεχομένων (VTOC);

Σκέψη / Μεθοδολογία: Ερώτηση θεωρίας — η αρίθμηση των ενοτήτων ενός VTOC εξηγείται αναλυτικά στο §14.2.2.

Λύση:

Εξηγούμε πώς αριθμούνται τα επίπεδα και οι κλάδοι ενός VTOC, και γιατί η αρίθμηση δεν είναι συνεχόμενη.

Απάντηση: Οι αριθμοί δείχνουν αμέσως, μέσα στον κώδικα, τη θέση κάθε ενότητας στο πρόγραμμα: από ποιες ενότητες καλείται, ποιες καλεί η ίδια, και από ποιες είναι ανεξάρτητη. Το μηδενικό επίπεδο παίρνει πάντα το 0000, οι ενότητες του πρώτου επιπέδου παίρνουν αριθμούς όπως 1000, 3000 κ.ο.κ., οι επόμενες ενότητες παίρνουν τον αριθμό της ενότητας που τις καλεί (π.χ. 1100, 1300 από την 1000), ενώ το 9000 κρατείται για τις ενότητες κοινής χρήσης. Η αρίθμηση δεν είναι συνεχόμενη ώστε, σε μελλοντική συντήρηση, να μπορεί να προστεθεί νέα ενότητα στη σωστή θέση χωρίς να χρειαστεί επαναρίθμηση όλων των υπολοίπων.

Πρόσεξε:

  • Ο αριθμός δεν είναι απλώς ετικέτα — δείχνει ιεραρχία και εξάρτηση μεταξύ ενοτήτων.

Ερώτηση 6 (σελ. 264)

Ποιο κριτήριο αξιολόγησης προγράμματος θεωρείτε ότι είναι σπουδαιότερο;

Σκέψη / Μεθοδολογία: Ερώτηση γνώμης χωρίς μοναδική σωστή απάντηση — δίνεται ενδεικτική απάντηση με επιχειρήματα, βασισμένη στο περιεχόμενο του §14.1. (Ενδεικτική απάντηση.)

Λύση:

Παρουσιάζουμε επιχειρήματα υπέρ ενός κριτηρίου, χωρίς να αγνοούμε τα άλλα.

Απάντηση: Δεν υπάρχει μία «σωστή» απάντηση — εξαρτάται από το είδος του προγράμματος. Μια λογική επιχειρηματολογία: η αξιοπιστία θεωρείται συχνά το σπουδαιότερο κριτήριο, γιατί ένα πρόγραμμα που δεν συμπεριφέρεται σωστά σε ακραίες ή απρόβλεπτες περιπτώσεις είναι άχρηστο, όσο απλό, ευέλικτο ή γρήγορο κι αν είναι. Άλλος μαθητής θα μπορούσε εξίσου λογικά να υποστηρίξει την ευελιξία, αφού το μεγαλύτερο μέρος της ζωής ενός προγράμματος (περίπου 50%) καταναλώνεται στη συντήρηση και τις επεκτάσεις του.

Πρόσεξε:

  • Η απάντηση πρέπει να τεκμηριώνεται με επιχειρήματα από το §14.1, όχι απλώς να δηλώνει προτίμηση.

Ερώτηση 7 (σελ. 264)

Ποιοι λόγοι επιβάλλουν την τεκμηρίωση του προγράμματος;

Σκέψη / Μεθοδολογία: Ερώτηση απαρίθμησης — οι λόγοι δίνονται ρητά στο §14.2.1.

Λύση:

Απαριθμούμε τους τρεις λόγους τεκμηρίωσης όπως δίνονται στο §14.2.1.

Απάντηση: Η τεκμηρίωση επιβάλλεται γιατί: (1) διευκολύνει τη χρήση παρόμοιας εργασίας από άλλο πρόγραμμα, (2) κάνει κάθε τροποποίηση ευκολότερη, αφού βοηθά στη γρήγορη επέμβαση στο σωστό σημείο του προγράμματος, και (3) χωρίς αυτήν δεν μπορεί να γίνει ουσιαστικός έλεγχος της λειτουργίας του αλγορίθμου — η ύπαρξη αρχείου δοκιμής περιορίζει έναν νέο έλεγχο μόνο στα σημεία που χρειάζεται.

Ερώτηση 8 (σελ. 264)

Τι εξυπηρετεί η τεκμηρίωση ενός προγράμματος;

Σκέψη / Μεθοδολογία: Διακριτή από την προηγούμενη ερώτηση: εδώ ζητούνται οι λειτουργίες που εξυπηρετεί η τεκμηρίωση (§14.2.2), όχι οι λόγοι ύπαρξής της (§14.2.1).

Λύση:

Απαριθμούμε τις λειτουργίες που εξυπηρετεί η τεκμηρίωση όπως δίνονται στο §14.2.2.

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

Πρόσεξε:

  • Να μη συγχέεται με τους «λόγους τεκμηρίωσης» (§14.2.1) — εδώ ζητούνται οι λειτουργίες/χρησιμότητες που εξυπηρετεί.

Ερώτηση 9 (σελ. 264)

Ποια στοιχεία περιέχει ο φάκελος προγράμματος;

Σκέψη / Μεθοδολογία: Ερώτηση θεωρίας — τα στοιχεία του φακέλου δίνονται ρητά στο §14.2.3.

Λύση:

Απαριθμούμε τα στοιχεία που αρχειοθετούνται στον φάκελο προγράμματος.

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

Ερώτηση 10 (σελ. 264)

Πιστεύετε ότι η συντήρηση του προγράμματος είναι σημαντική εργασία;

Σκέψη / Μεθοδολογία: Ερώτηση γνώμης, αλλά με σαφές ποσοτικό επιχείρημα διαθέσιμο στο §14.3 (κατανομή προσπάθειας στον κύκλο ζωής, σχήμα 14.4). (Ενδεικτική απάντηση.)

Λύση:

Στηρίζουμε την άποψη στο ποσοστό προσπάθειας που καταλαμβάνει η συντήρηση στον κύκλο ζωής ενός προγράμματος.

Απάντηση: Ναι, η συντήρηση είναι εξαιρετικά σημαντική εργασία: σύμφωνα με την κατανομή προσπάθειας του σχήματος 14.4, η φάση της συντήρησης (μαζί με τις επεκτάσεις) καταλαμβάνει περίπου το 50% του συνολικού έργου στον κύκλο ζωής ενός προγράμματος — πολύ περισσότερο από την αρχική ανάλυση-σχεδίαση (περίπου 16%). Ένα πρόγραμμα «ζει» όσο συντηρείται, προσαρμόζεται σε νέες ανάγκες δεδομένων και βελτιώνεται με την εμπειρία που αποκτάται με τον καιρό.

Πρόσεξε:

  • Η απάντηση πρέπει να τεκμηριώνεται με το ποσοστό του σχήματος 14.4, όχι μόνο με προσωπική γνώμη.

Ερώτηση 11 (σελ. 264)

Είναι δυνατόν ένα πρόγραμμα να περιέχει λογικό λάθος και να λειτουργεί;

Σκέψη / Μεθοδολογία: Ερώτηση κρίσης, απευθείας συνδεδεμένη με τη σημείωση «Προσοχή» του §14.3: ο έλεγχος διαπιστώνει λάθη, δεν πιστοποιεί την απουσία τους.

Λύση:

Χρησιμοποιούμε το σημείο του §14.3 ότι ο έλεγχος ενός προγράμματος διαπιστώνει την ύπαρξη λάθους, αλλά ποτέ δεν πιστοποιεί την ανυπαρξία λάθους.

Απάντηση: Ναι, είναι απόλυτα δυνατόν. Όπως τονίζεται στο §14.3, ο έλεγχος ενός προγράμματος διαπιστώνει την ύπαρξη ενός λάθους, ποτέ όμως δεν πιστοποιεί την ανυπαρξία λάθους. Ένα πρόγραμμα μπορεί να «λειτουργεί» κανονικά για όλα τα δεδομένα ελέγχου που δοκιμάστηκαν, ενώ περιέχει ένα λογικό λάθος που εμφανίζεται μόνο σε συγκεκριμένες, μη ελεγμένες περιπτώσεις εισόδου· γι' αυτό ένα πρόγραμμα βρίσκεται κατ' ουσία υπό διαρκή έλεγχο της ορθής λειτουργίας του.

Πρόσεξε:

  • Να μην απαντηθεί απλά «όχι» — το σωστό είναι να εξηγηθεί ότι ο έλεγχος είναι πάντα μερικός/ελλιπής ως προς την κάλυψη όλων των πιθανών περιπτώσεων.