Λογισμικό που μπορεί να ελεγχθεί
Για να μπορέσει το λογισμικό να ελεγχθεί αποτελεσματικά πρέπει να
πληροί τις παρακάτω προϋποθέσεις:
- Λειτουργικότητα
- Παρατηρησιμότητα
- Ελεγξιμότητα
- Αποσυνθεσιμότητα
- Απλότητα
- Ευστάθεια
- Τεκμηρίωση
Αναλυτικά:
- Λειτουργικότητα
- Λίγα λάθη
- Τα λάθη να μην εμποδίζουν τον έλεγχο
- Η ανάπτυξη υλοποιεί ολοκληρωμένες λειτουργίες (που μπορούν να ελεγχθούν)
- Παρατηρησιμότητα
- Κάθε είσοδος δημιουργεί διακριτά αποτελέσματα
- Η κατάσταση του συστήματος και των μεταβλητών του είναι ορατή
- Η προηγούμενη κατάσταση του συστήματος και των μεταβλητών του μπορεί να είναι ορατή (π.χ. από καταγραφές)
- Εύκολη ανίχνευση λανθασμένων αποτελεσμάτων
- Αυτόματη ανίχνευση εσωτερικών σφαλμάτων
- Αυτόματη αναφορά εσωτερικών σφαλμάτων
- Πρόσβαση στον πηγαίο κώδικα
- Ελεγξιμότητα
- Κάθε πιθανή έξοδος μπορεί να δημιουργηθεί με κατάλληλες εισόδους
- Όλος ο κώδικας μπορεί να εκτελεστεί με κατάλληλες εισόδους
- Ο ελεγκτής μπορεί να μεταβάλει άμεσα την κατάσταση του λογισμικού και του υλικού
- Η μορφή της εισόδου και της εξόδου είναι τακτική και ευνόητη
- Οι έλεγχοι είναι εύκολο να προδιαγραφούν, να αυτοματοποιηθούν
και να αναπαραχθούν.
- Αποσυνθεσιμότητα
- Το λογισμικό αποτελείται από ανεξάρτητα αρθρώματα
- Κάθε άρθρωμα μπορεί να ελεγχθεί αυτόνομα
- Απλότητα
- Λειτουργική απλότητα: δεν υπάρχουν περιττές λειτουργίες
- Δομική απλότητα: τα σφάλματα μπορούν να απομονωθούν σε
συγκεκριμένα αρθρώματα
- Απλότητα κώδικα: ο κώδικας μπορεί εύκολα να ελεγχθεί.
- Ευστάθεια
- Το λογισμικό δεν αλλάζει συχνά
- Οι αλλαγές στο λογισμικό ελέγχονται
- Οι αλλαγές δεν αναιρούν προηγούμενους ελέγχους
- Προβλήματα στο λογισμικό δεν το αχρηστεύουν
- Τεκμηρίωση
- Κατανοητό σχέδιο λογισμικού
- Κατανόηση της δομής του λογισμικού και των σχέσεων των τμημάτων του
- Τεκμηρίωση των αλλαγών
- Εύκολη πρόσβαση στην τεκμηρίωση
- Καλή οργάνωση της τεκμηρίωσης