Eγκυροποίηση Λογισµικού

Σχετικά έγγραφα
Θεωρία Πληροφορίας και Kωδικοποίησης

ιαχείριση και Ποιότητα Λογισµικού

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ ' MÈ Ï ÓÔ ËÌ. XÚÈÛÙÔ Ô Ï ÎË B ÛÂÈ Â ÔÌ ÓˆÓ

E π A π π ª π TÂ ÓËÙ NÔËÌÔÛ ÓË - EÊ ÚÌÔÁ. TfiÌÔ ' ÂÓÂÙÈÎÔ AÏÁfiÚÈıÌÔÈ Î È EÊ ÚÌÔÁ. ÎÔı Ó ÛË

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛΗΡΟΦΟΡΙΚΗ. Θεµατική Eνότητα BΑΣΙΚΑ ΖΗΤΗΜΑΤΑ ΙΚΤΥΩΝ Η/Υ

E π A π π ª π TÂ ÓËÙ NÔËÌÔÛ ÓË EÊ ÚÌÔÁ. TfiÌÔ B' NÂ ÚˆÓÈÎ ÎÙ Î È ÓÔ AÚÁ Ú ÎË EÊ ÚÌÔÁ

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ

E π A π π ª π. È ÎÚÈÙ M ıëì ÙÈÎ. Î È M ıëì ÙÈÎ ÔÁÈÎ. TfiÌÔ A' È ÎÚÈÙ M ıëì ÙÈÎ ÂÒÚÁÈÔ BÔ ÚÔ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH

Aισθητήρες και Mικροαισθητήρες

EÈ ÈÎ Ì Ù ÁÈ ÙËÓ ÔÈfiÙËÙ

ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË

Σχεδιασμός και Eκτίμηση Έργων

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ

ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË

TËÏÂÌ ÙÈÎ, È ÎÙ Î È KÔÈÓˆÓ

Ψηφιακή επεξεργασία εικόνων και σηµάτων

E π A π π ª π. Ú ÌÌÈÎfi ÚÔÁÚ ÌÌ ÙÈÛÌfi. MÔÓÙÂÏÔappleÔ ËÛË. TfiÌÔ A' M ÓÔ PÔ ÌÂÏÈÒÙË Î È ÚÔÛÔÌÔ ˆÛË

OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ

K Ì ÚÈÓfi (232ÛÂÏ.) 23/3/ :03 ÂÏ 1. Mικροηλεκτρονική

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ

Eιδικά Θέµατα υναµικής των Kατασκευών και Σεισµικής Mηχανικής

E π A π π ª π. Â È ÛÌfi ÔÁÈÛÌÈÎÔ. TfiÌÔ ' ÏÒÛÛÂ ÚÔÁÚ ÌÌ ÙÈÛÌÔ II. KÏÂ ÓıË Ú ÌappleÔ Ï Ë. (AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊ ÚÔÁÚ ÌÌ ÙÈÛÌfi )

E π A π π ª π º ÛÈÎÔ ËÌÂ. TfiÌÔ ' Ù ÙÈÛÙÈÎ ÂÚÌÔ Ó ÌÈÎ BÏ ÛË M Ú ÓÙ

OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ

KO MA E I O OIH H 30/5/ :32 ÂÏ 1. Eπιστήµη Πολυµερών

È Â ÚÈÛË ÙÂÚÂÒÓ AappleÔ Ï ÙˆÓ

B ÛÈÎ EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ

Mηχανολογική Σχεδίαση

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ

È Â ÚÈÛË YÁÚÒÓ AappleÔ Ï ÙˆÓ

Tεχνολογία Λογισµικού II

ÚÔËÁÌ Ó EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ

Aρχές Διοίκησης Επιχειρήσεων

E π A π π ª π. ÚÔÁÚ ÌÌ ÙÈÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. TfiÌÔ A' Â È ÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. AÁÁÂÏfiappleÔ ÏÔ

K ÓÔ.ÛÂÏÈ.(168ÛÂÏ.) :13 ÂÏ 1 (M ÚÔ ÙÛ ÁÎÔ) Eπιστήµη Eπιφανειών

Eισαγωγή στην Πυρηνική Φυσική

Eπικοινωνία Aνθρώπου Yπολογιστή

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH. Θεµατική Ενότητα ΣYΓXPONA IKTYA KAI YΠHPEΣIEΣ

Θεµέλια Γραµµικού Προγραµµατισµού

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ B' ÂÈÙÔ ÚÁÈÎ ÛÙ Ì Ù I

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛΗΡΟΦΟΡΙΚΗ. Θεµατική Eνότητα

È Â ÚÈÛË ÙÂÚÂÒÓ AappleÔ Ï ÙˆÓ

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ

TÂ ÓËÙ NÔËÌÔÛ ÓË - EÊ ÚÌÔÁ

Σύµµικτες Kατασκευές

Στοχαστική υναµική των Kατασκευών

E π A π Δ π Δ ª π. NÔÌÔıÂÛ Î È AÛÊ ÏÂÈ T ÓÈÎÒÓ ŒÚÁˆÓ. TfiÌÔ B' K ÏÏÈfiappleË ÓË Iˆ ÓÓË Ô ÊÏ AÛÊ ÏÂÈ EÎÙ ÏÂÛË ŒÚÁˆÓ

Aποτίµηση Σεισµικών Bλαβών, Eπισκευές και Eνισχύσεις Kτιρίων Oπλισµένου Σκυροδέµατος

NÔÌÔıÂÛ Î È AÛÊ ÏÂÈ T ÓÈÎÒÓ ŒÚÁˆÓ

E π A π π ª π OÚÁ ÓÈÎ XËÌÂ. TfiÌÔ ' º ÛÌ ÙÔÛÎÔapple OÚÁ ÓÈÎÒÓ EÓÒÛˆÓ. I.. ÂÚÔı Ó ÛË

È Â ÚÈÛË ÙÂÚÂÒÓ AappleÔ Ï ÙˆÓ

È Â ÚÈÛË YÁÚÒÓ AappleÔ Ï ÙˆÓ

E π A π π ª π º ÛÈÎÔ ËÌÂ. TfiÌÔ E' º ÛÌ ÙÔÛÎÔapple ºÒÙË NÙ

ÔÌ Î È ÂÈÙÔ ÚÁ ÙÔ K ÙÙ ÚÔ

Eπιστήµη Yλικών: Mαγνητικά Yλικά

E π A π π ª π KÏ ÛÈÎ º ÛÈÎ I. TfiÌÔ ' HÏÂÎÙÚÔÌ ÁÓËÙÈÛÌfi. NÈÎfiÏ Ô. K Ï ÊË

Aξιοπιστία και Συντήρηση

Σχεδιασμός και Διαχείριση Λογισμικού

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH. Θεµατική Ενότητα ΣYΓXPONA IKTYA KAI YΠHPEΣIEΣ

Oικολογία Aπό τη Bιόσφαιρα στους Πληθυσµούς

μ ÛÈÎ Ú ÈÎ Ô Î È ÈÔ ÎËÛË

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

Eπιστήµη Yλικών: Kεραµικά Yλικά

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

Aλγόριθµοι Γραµµικού Προγραµµατισµού και Θεωρία Παιγνίων

E π A π π ª π ÂÓÂÙÈÎ. TfiÌÔ B' º ÛÈÔÏÔÁ. AÓÙÈÁfiÓË Ô

E π A π Δ π Δ ª π. NÔÌÔıÂÛ Î È AÛÊ ÏÂÈ T ÓÈÎÒÓ ŒÚÁˆÓ. TfiÌÔ A' KˆÓÛÙ ÓÙ ÓÔ ÂÔ ˆÚ ÎfiappleÔ ÏÔ ÈÔÓ ÛÈÔ K ÙÚÈÌappleÔ. NÔÌÔıÂÛ EÎÙ ÏÂÛË T ÓÈÎÒÓ ŒÚÁˆÓ

μ ÛÈÎ Ú ÈÎ Ô Î È ÈÔ ÎËÛË

E π A π π ª π OÚÁ ÓÈÎ XËÌÂ. TfiÌÔ ' BÈÔÌfiÚÈ : ÔÌ & ÂÈÙÔ ÚÁÈÎfiÙËÙ N ÎÔ K. K Ú Ì ÓÔ

E π A π π ª π ÂÓÂÙÈÎ. TfiÌÔ A' ÂÒÚÁÈÔ È ÓÓfiappleÔ ÏÔ ÂÓÂÙÈÎ

Αρχιτεκτονικές Συστημάτων Διάχυτου και Σφαιρικού Υπολογισμού

H EÍ ÏÈÍË ÙˆÓ I ÂÒÓ ÛÙÈ º ÛÈÎ EappleÈÛÙ ÌÂ

Ζητήματα Σχεδιασμού και Προγραμματισμού Συστημάτων ΔιάχυτουΥπολογισμού

Προχωρημένα Ζητήματα Σχεδιασμού Κατανεμημένων Συστημάτων Εγχειρίδιο Μελέτης

Αλγόριθμοι και Πολυπλοκότητα

E π A π π ª π ÂÓÂÙÈÎ. TfiÌÔ ' EÍ ÏÈÍË ÂÒÚÁÈÔ PÔ ÎË

Σχεδίαση Λογισμικού. Σημείωση

Από την Κλασική στην Κβαντική Φυσική

Προηγμένα Θέματα Δικτύων Υπολογιστών

Aνάλυση Eικόνας και Aναγνώριση Προτύπων

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΣΠOY EΣ ΣTIΣ ΦYΣIKEΣ EΠIΣTHMEΣ.

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΡΟΧΩΡΗΜΕΝΕΣ ΣΠΟΥ ΕΣ ΣΤΗ ΦΥΣΙΚΗ.

H EÍ ÏÈÍË ÙˆÓ I ÂÒÓ ÛÙÈ º ÛÈÎ EappleÈÛÙ ÌÂ

Εφαρμογές Φωτισμού και Πολυμεσικές Εφαρμογές

E HNIKO A NOIKTO ANE I THMIO Ï Ó ÙË Ë. fiìô. ÂÒÚÁÈÔ ºÂÚÂÓÙ ÓÔ ı Ó ÛÈÔ ÂÔ ÒÚÔ ÂÒÚÁÈÔ apple ıâô ÒÚÔ. À ÚfiÛÊ ÈÚ

ÈÔÈÎËÙÈÎ appleè ÂÈÚ ÛÂˆÓ Î È ÚÁ ÓÈÛÌÒÓ

Διαχείριση Δεδομένων

Marketing πi ŒÚÂ Ó ÁÔÚ Δ ª. ı Ó ÛÈÔ Ô ÚÂÌ ÓÔ ıëáëù ÓÂappleÈÛÙËÌ Ô ÂÈÚ ÈÒ

Ειδικά Θέματα Ακουστικού Σχεδιασμού και Πολυμέσων

Σχεδίαση Middleware Εγχειρίδιο Μελέτης

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH

Συστήματα Διάχυτου και Σφαιρικού Υπολογισμού

Τεχνολογία Φωτισμού και Σύνδεση με την Παραγωγή

Οργάνωση και Αλληλεπιδράσεις σε Μοριακό Επίπεδο

ÚıÔ ÔÍ ÛÙÔÓ 20fi ÈÒÓ. È ÏÔÁÔ ÙË ÚıÔ ÔÍ ÌÂ ÛË Î È Ó ÙÔÏ Δ ª. Ú Ú Ù μ Û ÏÂÈÔ Ú μ ÏÏÈ Ó ÙÔ ÕÁÁÂÏÔ. apple Î. ıëáëù

Transcript:

Eγκυροποίηση Λογισµικού Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστηµονική αρτιότητα και πληρότητα των συγγραµ- µάτων την αποκλειστική ευθύνη φέρουν οι συγγραφείς, κριτικοί αναγνώστες και ακαδηµαϊκοί υπεύθυνοι που ανέλαβαν το έργο αυτό.

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα EI IKA ΘEMATA TEXNOΛOΓIAΣ ΛOΓIΣMIKOY Τόµος B' Eγκυροποίηση Λογισµικού ΑΧΙΛΛΕΑΣ ΚΑΜΕΑΣ ρ Mηχανικός H/Y & Πληροφορικής ΠATPA 2003

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα EI IKA ΘEMATA TEXNOΛOΓIAΣ ΛOΓIΣMIKOY Τόµος B' Eγκυροποίηση Λογισµικού Συγγραφή AXIΛΛEAΣ KAMEAΣ ρ Mηχανικός H/Y & Πληροφορικής Κριτική Ανάγνωση ΠΑΝΑΓΙΩΤΗΣ ΠΙΝΤΕΛΑΣ Kαθηγητής Tµήµατος Mαθηµατικών Πανεπιστηµίου Πατρών Ακαδηµαϊκός Υπεύθυνος για την επιστηµονική επιµέλεια του τόµου ΠΑΝΑΓΙΩΤΗΣ ΠΙΝΤΕΛΑΣ Kαθηγητής Tµήµατος Mαθηµατικών Πανεπιστηµίου Πατρών Επιµέλεια στη µέθοδο της εκπαίδευσης από απόσταση IΩANNHΣ KOYTΣONIKOΣ Γλωσσική Επιµέλεια KΩNΣTANTINOΣ KΛAMΠANIΣTHΣ Τεχνική Επιµέλεια EΣΠI EK OTIKH E.Π.E. Συντονισµός ανάπτυξης εκπαιδευτικού υλικού και γενική επιµέλεια των εκδόσεων ΟΜΑ Α ΕΚΤΕΛΕΣΗΣ ΕΡΓΟΥ ΕΑΠ / 1997 2003 ISBN: 960 538 221 0 Kωδικός Έκδοσης: ΠΛH 42/2 Copyright 2003 για την Ελλάδα και όλο τον κόσµο ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Οδός Παπαφλέσσα & Υψηλάντη, 26222 Πάτρα Τηλ: 2610 314094, 314206 Φαξ: 2610 317244 Σύµφωνα µε το Ν. 2121/1993, απαγορεύεται η συνολική ή αποσπασµατική αναδηµοσίευση του βιβλίου αυτού ή η αναπαραγωγή του µε οποιοδήποτε µέσο χωρίς την άδεια του εκδότη.

ÂÚÈ fiìâó Πρόλογος... 11 K º π 1 EÈÛ ÁˆÁ Eισαγωγικές παρατηρήσεις... 15 1.1 Φύση και θέση των δραστηριοτήτων E & E... 17 1.2 Kατηγοριοποίηση τεχνικών E & E... 20 Σύνοψη... 23 Bιβλιογραφία... 24 K º π 2 Ù ÙÈÎ T ÓÈÎ E & E Eισαγωγικές παρατηρήσεις... 25 2.1 Στατική ανάλυση... 27 2.2 Aναθεωρήσεις... 30 2.2.1 Oδηγίες διεξαγωγής αναθεωρήσεων... 31 2.3 Περιηγήσεις... 32 2.4 Eπισκοπήσεις... 33 Σύνοψη... 37 Bιβλιογραφία... 38 K º π 3 Ó ÌÈÎ T ÓÈÎ E & E Eισαγωγικές παρατηρήσεις... 39 3.1 Συµβολική εκτέλεση... 40 3.2 Προσοµοίωση... 45 3.3 Aνάλυση ευαισθησίας... 47

6 E Àƒ π π ªπ À Σύνοψη... 52 Bιβλιογραφία... 52 K º π 4 T ÓÈÎ Û Â ÛË ÙˆÓ appleâúèappleùòûâˆó ÂÏ Á Ô ÏÔÁÈÛÌÈÎÔ Eισαγωγικές παρατηρήσεις... 53 4.1 Oργάνωση των δραστηριοτήτων ελέγχου λογισµικού... 56 4.2 Στρατηγικές ελέγχου του λογισµικού... 58 4.2.1 Προδιαγραφές µε εξισώσεις και σχέσεις... 61 4.2.2 Πότε τελειώνει ο έλεγχος;... 61 4.3 Σχεδίαση περιπτώσεων ελέγχου... 62 4.4 Tεχνικές ελέγχου αδιαφανούς κουτιού Eισαγωγικές παρατηρήσεις... 64 4.4.1 ιαµέριση σε κλάσεις ισοδυναµίας... 65 4.4.2 Aνάλυση οριακών τιµών... 68 4.4.3 Γραφήµατα αιτίου αποτελέσµατος... 71 4.4.4 Συγκριτικές δοκιµές... 74 4.5 Tεχνικές ελέγχου διαφανούς κουτιού Eισαγωγικές παρατηρήσεις... 77 4.5.1 οκιµή βασικών µονοπατιών... 78 4.5.2 οκιµή δοµών επανάληψης... 87 4.6 Tεχνικές ελέγχου διεπαφών Eισαγωγικές παρατηρήσεις... 93 4.6.1 Σφάλµατα διεπαφών... 94 4.6.2 Σχεδίαση περιπτώσεων ελέγχου διεπαφών... 94 Σύνοψη... 98 Bιβλιογραφία... 98

EPIEXOMENA 7 K º π 5 Ú ÎÙÈÎ ÂÊ ÚÌÔÁ ÙˆÓ Ú ÛÙËÚÈÔÙ ÙˆÓ ÂÏ Á Ô : ÔÎÈÌ ÏÔÁÈÛÌÈÎÔ Eισαγωγικές παρατηρήσεις... 99 5.1 οκιµές µονάδων... 102 5.5.1 οκιµή επαφών... 103 5.5.2 οκιµή τοπικών δοµών δεδοµένων... 103 5.1.3 οκιµή µονοπατιών εκτέλεσης... 104 5.1.4 οκιµή του κώδικα διαχείρισης σφαλµάτων... 104 5.1.5 οκιµή οριακών συνθηκών... 105 5.1.6 Oδηγοί και στελέχη... 105 5.2 οκιµές συγκρότησης... 107 5.2.1 οκιµή συγκρότησης από πάνω προς τα κάτω... 108 5.2.2 οκιµή συγκρότησης από κάτω προς τα πάνω... 110 5.2.3 Συνδυασµός... 112 5.3 οκιµές επικύρωσης... 116 5.3.1 οκιµή Άλφα και Bήτα... 117 5.4 οκιµές συστήµατος... 118 5.4.1 οκιµή εκφάνσεων εκτέλεσης... 118 5.4.2 οκιµή αντοχής... 119 5.4.3 οκιµή ανάκαµψης... 120 5.4.4 οκιµή ασφάλειας... 120 5.4.5 οκιµή απόδοσης... 120 Σύνοψη... 123 Bιβλιογραφία... 124

8 E Àƒ π π ªπ À K º π 6 EÎÛÊ ÏÌ ÙˆÛË Eισαγωγικές παρατηρήσεις... 125 6.1 H διαδικασία της εκσφαλµάτωσης... 127 6.2 Mεθοδολογίες εκσφαλµάτωσης... 129 6.2.1 Kατά µέτωπο επίθεση... 129 6.2.2 Oπισθοδρόµηση... 133 6.2.3 Eξάλειψη του αιτίου... 133 6.2.4 Bοήθεια!... 136 6.3 Eκκαθάριση σφαλµάτων... 144 Σύνοψη... 146 Bιβλιογραφία... 147 K º π 7 EÍ ÛÊ ÏÈÛË appleôèfiùëù Î È ÍÈÔappleÈÛÙ Eισαγωγικές παρατηρήσεις... 149 7.1 Παράγοντες ποιότητας και µετρικές... 152 7.2 ιαδικασία εξασφάλισης ποιότητας... 159 7.2.1 Oµάδα εξασφάλισης της ποιότητας... 160 7.2.2 Tο σύστηµα διαχείρισης της ποιότητας... 162 7.2.3 Πλάνο EΠΛ... 163 7.3 Tυπικές Tεχνικές EΠΛ... 165 7.3.1 Aπόδειξη ορθότητας... 165 7.3.2 Στατιστική EΠΛ... 165 7.3.3 H διαδικασία του «καθαρού δωµατίου»... 166 7.4 Aξιοπιστία λογισµικού... 166 7.4.1 ιακοπή λειτουργίας και επιδιόρθωση... 167 7.4.2 Mοντέλα αξιοπιστίας λογισµικού... 168 Σύνοψη... 171

EPIEXOMENA 9 Bιβλιογραφία... 172 K º π 8 EÊ ÚÌÔÁ ÙˆÓ È ÈÎ ÛÈÒÓ ÂÏ Á Ô Eισαγωγικές παρατηρήσεις... 173 8.1 Tυπική επαλήθευση... 176 8.2 Aυτοµατοποιηµένα εργαλεία ελέγχου... 181 8.2.1 Eργαλεία στατικής ανάλυσης... 181 8.2.2 Eργαλεία δυναµικής ανάλυσης... 182 8.2.3 Eργαλεία διαχείρισης της διαδικασίας ελέγχου... 182 8.2.4 Άλλα εργαλεία... 183 8.3 Eλεγξιµότητα λογισµικού... 183 8.3.1 Aπώλεια πληροφορίας... 185 8.3.2 Bελτίωση της σχεδίασης... 186 8.4 Λογισµικό χωρίς ελαττώµατα... 186 8.4.1 Προδιαγραφές... 188 8.4.2 Σχεδίαση αυξητικής ανάπτυξης... 188 8.4.3 Σχεδίαση και επαλήθευση... 188 8.4.4 Πιστοποίηση ποιότητας... 189 8.4.5 Aνάδραση... 190 Σύνοψη... 192 Bιβλιογραφία... 192 Eπίλογος... 193 Aπαντήσεις Aσκήσεων Aυτοαξιολόγησης... 195 Γενική Bιβλιογραφία... 209 Bιβλιογραφία για περαιτέρω µελέτη... 210 Γλωσσάρι... 214

ÚfiÏÔÁÔ Στους Γονείς µου Τα βιβλία έχουν µια σηµαντική διαφορά από τους υπολογιστές: δεν αρνούνται να διαβαστούν. Ποτέ ένα βιβλίο δε θα σας εµποδίσει να γυρίσετε το εξώφυλλό του (ή οποιαδήποτε σελίδα του), ούτε πρόκειται να κλείσει απότοµα την ώρα που το διαβάζετε. Αντίθετα, ένα λογισµικό µπορεί πολύ καλά να «κλείσει» απότοµα την ώρα που το χρησιµοποιείτε, αφού σας ανακοινώσει ότι «This program has performed an illegal operation and will be shut down», παίρνοντας µαζί του στη λήθη τη δουλειά της τελευταίας ώρας. Όσο απεγνωσµένα κι αν προσπαθείτε να σώσετε τη δουλειά σας (µάλλον επειδή πιστέψατε εκείνο το µήνυµα που έλεγε «Press this button to save your work»), το λογισµικό µοιάζει να έπαθε αµνησία. εν αναγνωρίζει τον ιδιοκτήτη του. Το βιβλίο αυτό απευθύνεται σε όσους έχουν πολλάκις φτάσει στα όρια της αντοχής (και της υγείας) τους, καθώς χρησιµοποιούν διαδεδοµένα (ή λιγότερο διαδεδοµένα) λογισµικά. ιαβάστε το όλοι εσείς που αναρωτιέστε γιατί ένα τόσο προηγµένο τεχνολογικά προϊόν, όπως είναι το λογισµικό των υπολογιστών, είναι τόσο λιγότερο αξιόπιστο από ένα απλό βιβλίο. Αν ανήκετε σε αυτούς που θεωρούν αυτή τη συµπεριφορά ως αποτέλεσµα του δυναµικού χαρακτήρα και της πολυπλοκότητας του λογισµικού, θα χάσετε την ώρα σας µαζί του. υο λόγια µόνο, πριν το κλείσετε: γνωρίζετε αυτό που λένε για τα αυτοκίνητα: εάν οι εταιρείες λογισµικού αρχίσουν να κατασκευάζουν αυτοκίνητα, τότε (α) για κάποιο περίεργο λόγο, η µηχανή θα σβήνει χωρίς προειδοποίηση, καθώς το αυτοκίνητο κινείται κανονικά και (β) κάθε φορά που σβήνει η µηχανή, ο οδηγός θα πρέπει να κατεβαίνει, να επανεγκαθιστά τη µηχανή και να ξεκινά πάλι το αυτοκίνητο! Ωραία, είστε ακόµη µαζί µας. Θα σας πω λοιπόν τη µαγική λέξη: ποιότητα. Τι είναι η ποιότητα; Αυτό που λείπει από το σηµερινό λογισµικό. Γιατί; Επειδή η εξασφάλιση της ποιότητας του λογισµικού κοστίζει τόσο που σίγουρα θα βγάλει εκτός προϋπολογισµού το χρονοδιάγραµµα ανάπτυξης (το οποίο έτσι κι αλλιώς βγαίνει εκτός προϋπολογισµού). Τι θα έπρεπε να είχε γίνει; Να ενσωµατωθούν δραστηριότητες εγκυροποίησης καθ όλη τη διάρκεια του κύκλου ζωής (δηλαδή, ακόµη µεγαλύτερη επιβάρυνση του προϋπολογισµού θα αστειεύεστε). Λοιπόν, το βιβλίο αυτό θα σας πείσει για το αντίθετο: η σωστή σχεδίαση και η έγκαιρη ενσωµάτωση δραστηριοτήτων εγκυροποίησης ουσιαστικά µειώνουν τον προϋπολογισµό ενός έργου ανάπτυξης λογισµικού. Και το κυριότερο, ο συνεχής (στατικός και δυναµικός) έλεγχος βελτιώνει την ποιότητά του. Να πώς: Στο Kεφάλαιο 1περιγράφονται οι δραστηριότητες Eπαλήθευσης και Eπικύρωσης, οι

12 E Àƒ π π ªπ À οποίες συνθέτουν τη Φάση Ε&Ε. Οι δραστηριότητες αυτές τοποθετούνται µέσα στον κύκλο ανάπτυξης λογισµικού (µοντέλο V) και τεκµηριώνεται η σηµασία τους. Έπειτα, παρουσιάζονται οι κατηγορίες των τεχνικών Ε&Ε, µε τις οποίες θα ασχοληθού- µε ουσιαστικά στο υπόλοιπο βιβλίο. Στο Kεφάλαιο 2 παρουσιάζονται οι στατικές τεχνικές Ε&Ε, οι οποίες εφαρµόζονται κατά τη διάρκεια της σχεδίασης και της κωδικοποίησης του λογισµικού. Το βασικό τους χαρακτηριστικό είναι ότι για την ανακάλυψη σφαλµάτων δεν απαιτείται η εκτέλεση του κώδικα του λογισµικού. Σε ξεχωριστές ενότητες παρουσιάζονται η στατική ανάλυση και τα δύο είδη αναθεωρήσεων, η περιήγηση και η επισκόπηση. Αυτές οι δύο τελευταίες τεχνικές είναι πολύ σηµαντικές και αρκετά διαδεδοµένες, καθώς είναι φθηνές στην εφαρµογή και αποτελεσµατικές. Από το Kεφάλαιο 3 αρχίζει η παρουσίαση των δυναµικών τεχνικών Ε&Ε, οι οποίες εντοπίζουν τα σφάλµατα που παρουσιάζονται κατά την εκτέλεση του κώδικα του λογισµικού. Το σύντοµο αυτό κεφάλαιο παρουσιάζει τη συµβολική εκτέλεση και την προσοµοίωση του λογισµικού, δύο τεχνικές στις οποίες είτε χρησιµοποιούνται συµβολικά (όχι πραγµατικά) δεδοµένα, είτε προσοµοιώνεται µέρος της λειτουργικότητας του λογισµικού, η οποία ίσως δεν έχει ακόµη υλοποιηθεί. Στην τελευταία ενότητα παρουσιάζεται µια πρόσφατη σχετικά τεχνική, η ανάλυση ευαισθησίας, η οποία αποτελεί τµήµα µιας γενικότερης προσέγγισης που πρεσβεύει τη σχεδίαση του λογισµικού ώστε να διευκολύνεται ο έλεγχός του. Τα επόµενα τρία κεφάλαια αποτελούν το πιο σηµαντικό τµήµα του τόµου. Στο Kεφάλαιο 4 παρουσιάζεται ο έλεγχος λογισµικού, η περισσότερο διαδεδοµένη δυναµική τεχνική Ε&Ε. Το κεφάλαιο επικεντρώνεται στις τρεις διαδεδοµένες µεθοδολογίες σχεδίασης περιπτώσεων ελέγχου, τη µεθοδολογία δοµικού ελέγχου, τη µεθοδολογία λειτουργικού ελέγχου και τη µεθοδολογία ελέγχου διεπαφών. Οι περισσότερο διαδεδοµένες τεχνικές της κάθε µεθοδολογίας παρουσιάζονται αναλυτικά µέσα από ένα πλήθος παραδειγµάτων, δραστηριοτήτων και ασκήσεων. Στο Kεφάλαιο 5 συζητούµε για την πρακτική εφαρµογή των µεθοδολογιών αυτών στην υλοποίηση µιας στρατηγικής ελέγχου του λογισµικού. Στα πλαίσια της αυξητικής συγκρότησης του λογισµικού παρουσιάζονται οι δραστηριότητες δοκιµής µονάδων, δοκιµής συγκρότησης, δοκιµής επικύρωσης και δοκιµής συστήµατος, οι οποίες συγκροτούν µια ολοκληρωµένη στρατηγική ελέγχου. Το Kεφάλαιο 6 ασχολείται µε την εκσφαλµάτωση, τη δραστηριότητα που ακολουθεί έναν επιτυχηµένο έλεγχο (επιτυχηµένος είναι ο έλεγχος που αποκάλυψε σφάλ- µατα!). Οι τρεις γενικές κατηγορίες τεχνικών εκσφαλµάτωσης (κατά µέτωπο επίθε-

PO O O 13 ση, οπισθοδρόµηση, εξάλειψη του αιτίου) παρουσιάζονται αναλυτικά, ενώ στο τέλος αναφέρεται και ο έλεγχος παλινδρόµησης, ο οποίος ακολουθεί τις δραστηριότητες εκσφαλµάτωσης και διόρθωσης του λογισµικού. Στο Kεφάλαιο 7 επιχειρείται η τοποθέτηση των δραστηριοτήτων Ε&Ε µέσα στο γενικότερο πλαίσιο της εξασφάλισης της ποιότητας του λογισµικού και παρουσιάζεται η σηµασία της ανάπτυξης ποιοτικού λογισµικού. Η ποιότητα του λογισµικού ορίζεται σαν η συνισταµένη ενός συνόλου παραγόντων, οι οποίοι είναι δυνατό να αποτιµηθούν µε ένα σύνολο µετρικών. Ο πιο σηµαντικός από τους παράγοντες ποιότητας, η αξιοπιστία του λογισµικού, αναλύεται σε ξεχωριστή ενότητα. Στο τελευταίο κεφάλαιο του τόµου παρουσιάζονται τέσσερα ζητήµατα που άπτονται πτυχών της πρακτικής εφαρµογής των διαδικασιών ελέγχου: η τυπική επαλήθευση του λογισµικού, η αυτοµατοποιηµένη ανάπτυξη και επαλήθευση του λογισµικού, η έννοια της ελεγξιµότητας και η διαδικασία του «καθαρού δωµατίου». Αν και καθε- µία από τις τέσσερις ενότητες έχει τη δική της βαρύτητα, περισσότερο σηµαντικές θεωρώ την πρώτη και την τελευταία. Το Kεφάλαιο 1 είναι εισαγωγικό στις έννοιες της εγκυροποίησης λογισµικού. Το Kεφάλαιο 2 αναφέρεται στις στατικές τεχνικές Ε&Ε και είναι αυτόνοµο. Τα Kεφάλαια 3 έως 6 αναφέρονται στις δυναµικές τεχνικές Ε&Ε, µε το τρίτο κεφάλαιο να είναι το λιγότερο σηµαντικό. Εάν τα κεφάλαια αυτά στοχεύουν στη µετάδοση γνώσεων και (κυρίως τα Kεφάλαια 2, 4, 5) δεξιοτήτων, το Kεφάλαιο 7 στοχεύει να σας πείσει να συνδέσετε άρρηκτα την έννοια «ποιότητα» µε το λογισµικό που σχεδιάζετε ή αναπτύσσετε. Από την άποψη αυτή, πρόκειται για ένα σηµαντικό κεφάλαιο, στο οποίο «κορυφώνεται» η ανάλυση των δραστηριοτήτων Ε&Ε, που άρχισε στο πρώτο κεφάλαιο. Το Kεφάλαιο 8 λειτουργεί ενηµερωτικά γύρω από τις πλέον σύγχρονες προσεγγίσεις στην εφαρµογή διαδικασιών Ε&Ε. Καθεµία από τις ενότητες που περιλαµβάνει θα µπορούσε να αποτελεί ξεχωριστό τόµο. Η προσέγγιση που ακολούθησα στον τόµο αυτό είναι µάλλον αφαιρετική. Προσπάθησα να τοποθετήσω τις δραστηριότητες Ε&Ε στο συνολικό πλαίσιο που ορίζει ο κύκλος ανάπτυξης λογισµικού και να τις παρουσιάσω ως αναπόσπαστες δραστηριότητες της Τεχνολογίας Λογισµικού (όπως και είναι). Το πλεονέκτηµα είναι ότι θα έχετε µια ξεκάθαρη αντίληψη του «πότε», «πού» και «γιατί» θα χρειαστεί να εφαρ- µόσετε δραστηριότητες Ε&Ε, ενώ θα µπορείτε µε λίγη προσπάθεια να βρείτε «ποια δραστηριότητα είναι κατάλληλη για ποιο σκοπό». Αυτή η προσέγγιση διευκολύνει και το συνολικό στόχο του τόµου, που είναι να σας βοηθήσει να αντιληφθείτε την αξία της εξασφάλισης της ποιότητας του λογισµικού, ώστε να πεισθείτε να ανα-

14 E Àƒ π π ªπ À πτύσσετε ποιοτικό και µόνο λογισµικό. Το µειονέκτηµα είναι ότι στην περιορισµένη έκταση του τόµου δεν είναι δυνατό να καλυφθούν σε λεπτοµέρεια πρακτικά και ειδικά ζητήµατα που ανακύπτουν κατά την εφαρµογή των δραστηριοτήτων Ε&Ε. Απάντηση σε αυτά µπορείτε να βρείτε σε κάποιο από τα βιβλία που σας προτείνω στο τέλος του τόµου. Όπως θα διαπιστώσετε, η υπάρχουσα βιβλιογραφία είναι ογκώδης και η προτεινόµενη εκτενής, κάτι που αποτελεί ένδειξη της βαρύτητας του αντικειµένου. Στην προτεινόµενη βιβλιογραφία προσπάθησα να καλύψω τόσο γενικότερα ζητήµατα και αφαιρετικές (εισαγωγικές) προσεγγίσεις στο θέµα (όπως αυτή που ακολούθησα στον παρόντα τόµο), όσο και επιµέρους θέµατα, σύγχρονες προσεγγίσεις και ανακύπτοντα ζητήµατα σε ένα τόσο δυναµικό χώρο όπως είναι η εγκυροποίηση του λογισµικού. Οφείλω να σας προειδοποιήσω ότι, µελετώντας τον τόµο, θα συναντήσετε αρκετές νέες και δύσκολες έννοιες. Θα χρειαστεί επιµονή και προσπάθεια από την πλευρά σας για να τις «κατακτήσετε». Ο τρόπος µε τον οποίο είναι δοµηµένο το υλικό του τόµου θα σας βοηθήσει στην προσπάθειά σας, αλλά µην ξεχνάτε: ο βαθµός στον οποίο θα ωφεληθείτε από την ανάγνωση του βιβλίου εξαρτάται κυρίως από εσάς τους ίδιους. Στον τόµο (και ειδικότερα στα Kεφάλαια 2 και 4 6) περιέχεται πλήθος παραδειγ- µάτων, ασκήσεων αυτοαξιολόγησης και δραστηριοτήτων. Οι απαντήσεις στις δραστηριότητες δίνονται µέσα στο ίδιο το κείµενο, ενώ οι ασκήσεις αυτοαξιολόγησης απαντώνται συγκεντρωτικά στο τέλος του τόµου. Σας συνιστώ να δοκιµάσετε (και µακάρι να καταφέρετε) όλες τις ασκήσεις και τις δραστηριότητες. Οι δεξιότητες εγκυροποίησης αποκτώνται µόνο µέσα από την πρακτική εφαρµογή και η επίλυση ασκήσεων αποτελεί ένα καλό σηµείο εκκίνησης. Από την άλλη πλευρά, επιλύοντας τις ασκήσεις θα µπορέσετε να αυτοαξιολογείτε την πρόοδό σας και να εντοπίζετε έγκαιρα τα σηµεία που σας δυσκολεύουν, ώστε να µπορέσετε να τα αντιµετωπίσετε (µε τη βοήθεια του διδάσκοντα, αν χρειαστεί). Σηµαντικό βοήθηµα στη µελέτη σας πιστεύω ότι θα αποδειχθεί και το γλωσσάριο όρων που παρατίθεται στο τέλος του τόµου. Μη διστάσετε να ανατρέξετε σε αυτό όταν συναντήσετε µια δύσκολη έννοια. Εντάξει. Βιάζεστε να δείτε πώς θα µπορέσετε να παράγετε ποιοτικό λογισµικό. Να µη σας καθυστερώ άλλο, λοιπόν A.Kαµέας