Κατευθυντήριες γραµµές

Σχετικά έγγραφα
Έλεγχος Προγραμμάτων και Συστήματος

Συγγραφή Προγραμμάτων

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Υλοποίηση στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Πληροφορική 2. Τεχνολογία Λογισμικού

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

SIMATIC MANAGER SIMATIC MANAGER

Τεχνολογία Λογισµικού Ι Κεφάλαιο 6

Τεχνολογία λογισμικού στην πράξη

Α. Ερωτήσεις Ανάπτυξης

οκιμασία και πλάνο δοκιμασίας

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Αρχιτεκτονική Λογισμικού

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

Λογισµικό (Software SW) Γλώσσες

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Μέθοδοι. Υποσυστήµατα και πακέτα. Μοντέλα αντικειµενοστραφούς σχεδίασης. Αντικειµενοστραφής Σχεδίαση. Στα πρώτα στάδια της ανάλυσης

Computing. Νοέμβριος Έκδοση 1.0

Το λειτουργικό σύστημα. Προγραμματισμός II 1

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

Κωδικοποίηση και Έλεγχος Ορθότητας

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

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

Διαχείριση Πληροφοριακών Συστημάτων

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Εισαγωγή στον έλεγχο ορθής λειτουργίας ψηφιακών συστημάτων. Δημήτρης Νικολός, Τμήμα Μηχ. Ηλεκτρονικών Υπολογιστών και Πληροφορικής, Παν.

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

7 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού

10α Έλεγχος και επαλήθευση λογισμικού

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

Βασικές Έννοιες της Πληροφορικής

8 ΙΑΧΕΙΡΙΣΗ Ε ΟΜΕΝΩΝ ΠΡΟΙΟΝΤΟΣ PRODUCT DATA MANAGEMENT (PDM)

Μεθοδολογίες Παραγωγής Λογισµικού

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ. Ενότητα 1 η : Ανάπτυξη Λογισμικού & Προγραμματισμός

Συγγραφή κώδικα, δοκιμασία, επαλήθευση. Γιάννης Σμαραγδάκης

Επιχειρηµατικές ιαδικασίες: Εισαγωγικές Έννοιες & Αρχικά στάδια µοντελοποίησης

12 Έλεχος και επαλήθευση λογισμικού

Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων ιαχείριση ικτύων ρ.αρίστη Γαλάνη Ακαδημαϊκό Έτος

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Διαφορές single-processor αρχιτεκτονικών και SoCs

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Από Ανάλυση στη Σχεδίαση

Α ΤΑΞΗ. 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή. Θα παρουσιαστεί µε τρόπο απλό και κατανοητό,

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

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

Architecture οf Integrated Ιnformation Systems (ARIS)

Εισαγωγή στην Τεχνολογία Λογισμικού. Ματίνα Μπίμπη Τμήμα Μηχανικών Η/Υ Τηλεπικοινωνιών & Δικτύων, Πανεπιστήμιο Θεσσαλίας

VHDL Εισαγωγικές έννοιες

Έλεγχος Λογισμικού. Software Testing

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

Καλαντζόπουλος Αθανάσιος

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

ΓΕΩΠΛΗΡΟΦΟΡΙΚΗ. και ΣΥΣΤΗΜΑΤΑ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ

ΛΟΓΙΣΜΙΚΟ (software)

"The Project ARXIMIDIS ΙΙ is co-funded by the European Social Fund and National Resources EPEAEK ΙΙ "

Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στη Ενοποιηµένη Προσέγγιση Unified Process (UP) ρ. Πάνος Φιτσιλής

ΜΕΘΟΔΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Τεχνολογίες Υλοποίησης Αλγορίθµων

Δείκτες σε συναρτήσεις. Προγραμματισμός II 1

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

ΑΦAΙΡΕΤΙΚΟΣ (ή ΑΦΗΡΗΜΕΝΟΣ) ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT) - σύνολο δεδομένων (data, objects) - σύνολο πράξεων στα δεδομένα

Γλώσσες προγραµµατισµού. Ανάπτυξη Συστηµάτων Λογισµικού

Λύσεις διαχείρισης υπολογιστών-πελατών και φορητής εκτύπωσης

Ελληνικό Ανοικτό Πανεπιστήµιο. Η ιαχείριση Απαιτήσεων στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Εισαγωγή στην Πληροφορική

ΟΛΟΚΛΗΡΩΜΕΝΟΣΥΣΤΗΜΑ ΤΟ ΠΑΡΑ ΕΙΓΜΑ ΤΗΣ SAP ΙΑΧΕΙΡΙΣΗΣΠΟΡΩΝ (ERP). ΗΕΠ Εργαστήριο Ηλεκτρονικής Τµήµα Φυσικής Πανεπιστήµιο Πατρών

ηµιουργία αντιγράφων ασφαλείας και επαναφορά Οδηγός χρήσης

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Αρχές Προγραμματισμού Υπολογιστών

Τ.Ε.Ι. ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ. Ασκήσεις 1-2 Εισαγωγή


Διάλεξη 1. Εισαγωγή στην Τεχνολογία Λογισμικού. Χ. Αντωνόπουλος Μ. Μπίμπη

ύο βασικές ιδέες Ενότητες Απόκρυψη Πληροφορίας, Αφηρηµένοι Τύποι εδοµένων 1) ιαχώρισε το πρόβληµα σεµικρότερα καλώς καθορισµένα υπο-προβλήµατα

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

Week. 6: Java Collections

ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT)

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

ΑΞΙΟΠΙΣΤΙΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ

Λειτουργικά Συστήματα Η/Υ

8 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού: Μοντέλα Συνδυαστικών Κυκλωµάτων

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.

VERILOG. Γενικά περί γλώσσας

Transcript:

Πρότυπα και ιαδικασίες προγραµµατισµού Υλοποίηση και Έλεγχος Λογισµικού Αντώνης Καραγεώργος Τµήµα Μηχανικών Η/Υ και ικτύων Πανεπιστήµιο Θεσσαλίας karageorgos@inf.uth.gr Το περισσότερο λογισµικό αναπτύσσεται από οµάδες Τα πρότυπα εξασφαλίζουν οργάνωση της ανάπτυξης του λογισµικού Συµπλήρωση άλλων οµάδων Έλεγχος Κατανόηση του από τρίτους Τι έχει γραφεί Γιατίέχειγραφεί Πώς συνδυάζεται µε τον υπόλοιπο Πρότυπα (συνέχεια) Παράδειγµα προτύπωνγιασχόλια: /* Statement of function: * Component name: * Programmer: * Version: * Procedure Invocation: * Input Parameters: * Output Parameters: */ Απευθείας αντιστοιχία µεταξύ του σχεδίου και του του προγράµµατος ιαχείριση σχηµατισµών για προσδιορισµό (ιχνηλάτηση) αυτής της αντιστοιχίας Κατευθυντήριες γραµµές προγραµµατισµού οµές ελέγχου Αλγόριθµοι οµές δεδοµένων οµές ελέγχου ιατηρούν τη δοµή ελέγχου που προτείνεται από τη σχεδίαση εν πρέπει να µεταπηδούν σε διάφορα σηµεία του Τµηµατικότητα Γενικότητα σαν προτέρηµα (ώς ένα σηµείο) Οι εξαρτήσεις µεταξύ των συστατικών πρέπει να είναι ορατές Αλγόριθµοι Επιλέξτε µε προσοχή! Οι αλγόριθµοι επηρεάζουν το χρόνο εκτέλεσης Η ταχύτητα ενός αλγόριθµου µπορεί να συνοδεύεται από µειονεκτήµατα όπως Μεγάλο κόστος και χρόνος συγγραφής υσκολία στην κατανόηση

οµές δεδοµένων Το πρόγραµµα πρέπει να διατηρείται απλό. Π.χ. χρησιµοποιούµε πίνακακαιloop για να οµαδοποιήσουµε κάποιες πράξεις: if (a[i] < 5) a[i]++ Οι δοµές δεδοµένων µπορεί να καθορίσουν και τη δοµή του προγράµµατος, ακόµη και τη γλώσσα προγραµµατισµού Π.χ. µια αναδροµική δοµή δεδοµένων όπως είναι ένα δυναµικό δέντρο οδηγεί σε αναδροµικές διαδικασίες Γενικές κατευθύνσεις Αποµόνωση εισόδου και εξόδου Είσοδος και έξοδος σε ξεχωριστές µονάδες για καλύτερο έλεγχο Συµπερίληψη ψευδο Χρήσιµο ηµετατροπή του σχεδίου σε να γίνεται κατά στάδια Μπορει να χρησιµοποιηθεί για µεταφορά του σχεδίου στην επιλεγµένη γλώσσα προγραµµατισµού Ναι στην αναθεώρηση και το ξαναγράψιµο, όχι στις προχειρότητες Επαναχρησιµοποίηση Παραγωγού Καταναλωτή Τεκµηρίωση Η τεκµηρίωση περιγράφει τον τρόπο λειτουργίας του λογισµικού Εσωτερική τεκµηρίωση: Περιγραφικό κείµενο που γράφεται κατευθείαν µέσα στον (σχόλια) Εξωτερική τεκµηρίωση: Κείµενο εκτός Έλεγχος Λογισµικού Ανεξάρτητος έλέγχος των δοµικών µονάδων και ολοκλήρωση αυτών για έλεγχο των διασυνδέσεων Ελαττώµατα και αστοχίες λογισµικού Θέµατα ελέγχου Έλεγχος µονάδων Έλεγχος ολοκλήρωσης Έλεγχος αντικειµενοστραφών συστηµάτων Σχεδιασµός ελέγχων Εργαλεία αυτόµατου ελέγχου Τέλος ελέγχου Ελαττώµατα και αστοχίες λογισµικού Αστοχία (ή δυσλειτουργία) λογισµικού Το λογισµικόδενκάνειαυτόπουορίζουνοι απαιτήσεις Λόγοι για αστοχία του λογισµικού Οι προδιαγραφές δεν προσδιορίζουν επακριβώς τις ανάγκες του πελάτη: λανθασµένες ή ελλιπής εν είναι δυνατόν να υλοποιηθούν οι προδιαγραφές Ελαττώµατα στη σχεδίαση του συστήµατος και του προγράµµατος καθώς και στην υλοποίηση του Έλεγχος λογισµικού Γίνεται για να επιβεβαιωθεί η ύπαρξη κάποιας αστοχίας ή να ανακαλυφθούν νέες αστοχίες Ο έλεγχος είναι επιτυχής όταν ανακαλύπτεται ένα ελάττωµα ή όταν συµβαίνει µια αστοχία σαν αποτέλεσµα των διαδικασιών ελέγχου

Προσδιορισµός και διόρθωση Ελαττωµάτων Προσδιορισµός Ελαττωµάτων είναι η διαδικασία όπου προσδιορίζονται τα ελαττώµατα που προκάλεσαν την αστοχία ιόρθωση ή αφαίρεση ελαττωµάτων είναι η διαδικασία στην οποία γίνονται αλλαγές στο σύστηµα ώστεναδιορθωθούνταελαττώµατα Είδη Ελαττωµάτων Είναι σηµαντικό να γνωρίζουµε τί είδους σφάλµατα ψάχνουµε Οτιδήποτε µπορεί να έχει πρόβληµα: Αλγόριθµοι, σύνταξη, ακρίβεια, τεκµηρίωση, υπερφόρτωση δοµών δεδοµένων, δυνατότητα και όρια του συστήµατος Χρονισµός και συντονισµός διεργασιών, απόδοση συστήµατος Υλικό και λογισµικό συστήµατος, πρότυπα και διαδικασίες ανάπτυξης Είδη Ελαττωµάτων (συνέχεια) Είδη Ελαττωµάτων (συνέχεια) Αλγοριθµικό ελάττωµα: συµβαίνει όταν ο αλγόριθµος ενός συστατικού δεν παράγει το σωστό αποτέλεσµα γιακάποιαδεδοµένα εισόδου Εντοπίζεται είτε µε απλή ανάγνωση του (deck checking) είτε δοκιµάζοντας διάφορα δεδοµένα εισόδου που αναµένονται να χρησιµοποιηθούν. Τυπικά αλγοριθµικά σφάλµατα είναι: ιακλάδωση του προγράµµατος σε λάθος χρόνο Έλεγχος λανθασµένης συνθήκης Μη αρχικοποίηση µεταβλητών Παράλειψη ελέγχου συνθηκών Σύγκριση µεταβλητών διαφορετικού τύπου Ελαττώµατα υπολογισµού και ακριβείας: όταν ο τύπος κάποιου υπολογισµού είναι λανθασµένος ή δεν υπολογίζει το αποτέλεσµα µε την απαιτούµενη ακρίβεια Ελαττώµατα τεκµηρίωσης: όταν η τεκµηρίωση δεν περιγράφει τις πραγµατικές λειτουργίες του λογισµικού Ελαττώµατα υπερφόρτωσης: όταν αποθηκεύονται στις δοµές δεδοµένων π.χ. δυναµικές λίστες, περισσότερα δεδοµένα απ όσα αυτές µπορούν να αποθηκεύσουν Ελαττώµατα χωρητικότητας ή ορίων: όταν η απόδοση του συστήµατος γίνεται µή αποδεκτή σε για συγκεκριµένα επίπεδα χρήσης Είδη Ελαττωµάτων (συνέχεια) Ελαττώµατα χρονισµού και συντονισµού: όταν οι διάφορες διεργασίες του λογισµικού δεν συγχρονίζονται σωστά Ελαττώµατα απόδοσης: όταν το σύστηµα δεν έχει την απόδοση που προβλέπεται από τις προδιαγραφές Ελαττώµατα ανάκτησης: το σύστηµα δεν ανακτά την κανονική του λειτουργία µετά όταν συµβαίνουν αστοχίες Ελαττώµατα υλικού και λογισµικού: όταν το υλικό και το λογισµικό συστήµατος δε λειτουργούν σύµφωνα µε τις προδιαγραφές Ορθογώνια κατηγοριοποίηση σφαλµάτων Προσέγγιση σύµφωνα µε την οποία πληροφορίες για παλαιότερα σφάλµατα χρησιµοποιούνται για έλεγχο µελλοντικών σφαλµάτων. Τα σφάλµατα κατατάσσονται σε κατηγορίες Η κατηγοριοποίηση των σφαλµάτων είναι ορθογώνια όταν κάθε σφάλµα ανήκεισεµια µόνο κατηγορία Οι κατηγορίες πρέπει να είναι καλά ορισµένες ώστε κάθε σφάλµα ναταξινοµείται στην ίδια κατηγορία ανεξάρτητα από το ποιός κάνει την ταξινόµηση

Παράδειγµα ορθογώνιας κατηγοριοποίηση σφαλµάτων Ορθογώνια κατηγοριοποίηση σφαλµάτων της Ibm: Λειτουργίας ιασυνδέσεων Ελέγχου Απόδοσης τιµής Χρονισµού/serialization, ηµιουργία πακέτων και εκτελέσιµου Τεκµηρίωση Αλγόριθµοι Fault type Function Interface Checking Assignment Timing/serialization Build/package/merge Documentation Algorithm Table 8.1. IBM orthogonal defect classification. Meaning Fault that affects capability, end-user interfaces, product interfaces, interface with hardware architecture, or global data structure Fault in interacting with other components or drivers via calls, macros, control blocks or parameter lists Fault in program logic that fails to validate data and values properly before they are used Fault in data structure or code block initialization. Fault that involves timing of shared and real-time resources Fault that occurs because of problems in repositories, management changes, or version control Fault that affects publications and maintenance notes Fault involving efficiency or correctness of algorithm or data structure but not design Κατηγοριοποίηση σφαλµάτων της Hewlett-Packard ORIGIN: WHERE? Σφάλµατα της HP TYPE: WHAT? Specification/ MODE: WHY? Requirements or specifications Functionality Design Code HW interface SW interface User interface Functional description Environment/ support (Inter-)Process communications Data definition Module design Logic description Error checking Standards Documentation Logic Computation Data handling Module interface/ implementation Standards Missing Unclear Wrong Changed Better way Other Test HW Test SW Integration SW Development tools Computation 18% Other code 11% Logic 32% Data handling 6% Documentatio n 19% Requirements 5% Hardw are 4% Process/interp rocess 5% Θέµατα ελέγχου Οργάνωση ελέγχου Οργάνωση ελέγχου Τάσεις σχετικές µε τον έλεγχο Ποιός κάνει τον έλεγχο? Απόψεις σχετικά µε τα αντικείµενα ελέγχου Component code Component code Component code Unit Unit... Unit Tested component Design System specifications functional Integration Tested component Integrated modules Function Functioning system Other software Performance Πολλά στάδια ελέγχου Verified, validated software Customer specification Acceptance User environment Accepted system Installation SYSTEM IN USE!

Τύποι ελέγχου Έλεγχος µονάδων: εξασφαλίζει ότι τα διάφορα συστατικά λειτουργούν κανονικά. Έλεγχος ολοκλήρωσης: Εξασφαλίζει οτι τα διάφορα µέρη του συστήµατος συνεργάζονται όπως προβλέπεται από τις προδιαγραφές Έλεγχος λειτουργίας: αξιολογεί το σύστηµα για να διαπιστωθεί αν οι εκτελούνται οι συνολικές λειτουργίες που προβλέπονται από τις προδιαγραφές Έλεγχος απόδοσης: συγκρίνει την απόδοση του συστήµατος µε βάση τις υπόλοιπες προδιαγραφές Έλεγχος αποδοχής: έλεγχος του συστήµατος µε βάση την περιγραφή των απαιτήσεων από τον πελάτη Έλεγχος εγκατάστασης: έλεγχος του συστήµατος µετά την εγκατάσταση Τάσεις σχετικές µε τον έλεγχο λογισµικού Οι νέοι προγραµµατιστές δεν είναι συνηθισµένοι στον έλεγχο σα διαδικασία ανακάλυψης λαθών Είναι δύσκολο να γίνουν αποδεκτές ευθύνες για τα σφάλµατα Συχνά υπάρχουν διενέξεις µεταξύ των ελεγκτών και των µηχανικών ανάπτυξης Οι ελεγκτές προσπαθούν να βρούν λάθη και οι ελεγκτές να δείξουν οτι δεν κάνουν Ποιός κάνει τον έλεγχο? Ο έλεγχος µονάδων και ολοκλήρωσης συνήθως διεξάγονται από οµάδες ανάπτυξης Οι υπόλοιποι έλεγχοι καλούνται έλεγχοι συστήµατος και συνήθως γίνονται από ειδικές οµάδες ελέγχου Απόψεις σχετικά µε τα αντικείµενα ελέγχου Έλεγχος µαύρου κουτιού: παρέχουµε είσοδοσεένα κουτί τα περιεχόµενα του οποίου δεν είναι γνωστά και παρατήρηση της εξόδου που παράγεται Είναι δύσκολο να επιλέξουµε αντιπροσωπευτικές περιπτώσεις ελέγχου γιατί δε γνωρίζουµε αρκετά για την επεξεργασία που γίνεται Έλεγχος άσπρου κουτιού: γνωρίζουµε τιγίνεται µέσα στο κουτί και µπορούµε να επιλέξουµε περιπτώσεις ελέγχου για όλες τις διαδροµές Είναι δύσκολο να ελέγξουµε όλες τις περιπτώσεις Μπορούµε ναέχουµε συνδυασµούς των παραπάνω Εξέταση του Εξέταση : Εξέταση του πηγαίου και της τεκµηρίωσης για ασάφειες, παραλείψεις και λάθη ύο είδη ανασκόπησης: Ανασκόπηση (Code Walkthrough) Επιθεώρηση (code inspection) Εξέταση (συνέχεια) Ανασκόπηση : ο πηγαίος ς και η σχετική τεκµηρίωση παρουσιάζονται στην οµάδα εξέτασης, ακολουθεί συζήτηση και γίνονται σχόλια πάνω στην ορθότητα του Επιθεώρηση : µια οµάδα εξέτασης ελέγχει τον και την τεκµηρίωση σε σχέση µε ένα κατάλογο σηµείων προς εξέταση

Βαθµός επιτυχίας της εξέτασης Οι προγραµµατιστές µπορεί να µην αισθάνονται άνετα µε την εξέταση του κώδικά τους από άλλους Όµως, η εξέταση έχει αποδειχθεί ιδιαίτερα επιτυχηµένη στον προσδιορισµό σφαλµάτων Η εξέταση θεωρείται απαραίτητη και µέσα στις καλύτερες πρακτικές ελέγχου από τους περισσότερους οργανισµούς που αναπτύσσουν λογισµικό Απόδειξη της ορθότητας του Ορθότητα: Ένα πρόγραµµα είναι ορθό αν υλοποιεί τις λειτουργίες και διαχειρίζεται τα δεδοµένα όπως περιγράφεται στα προϊόντα σχεδίασης Απόδειξη της ορθότητας του προγράµµατος: οι γραµµές του πηγαίου θεωρούνται σαν δηλώσεις σε µια λογική γλώσσα Έλεγχος και απόδειξη προγράµµατος Έλεγχος είναι µια σειρά πειραµάτων που παρέχουν πληροφορίες σχετικά µε τη λειτουργία του προγράµµατος και το περιβάλλον στο οποίο αυτό εκτελείται Η απόδειξη δείχνει πως θα συµπεριφερθεί ένα πρόγραµµα σε ένα υποθετικό περιβάλλον που περιγράφεται από τη σχεδίαση και τις απαιτήσεις