ΚΕΦΑΛΑΙΟ 18 ΑΞΙΟΠΙΣΤΙΑ ΛΟΓΙΣΜΙΚΟΥ
ΣΤΟΧΟΙ Να περιγράψουµε τους τρόπους προδιαγραφών αξιοπιστίας και µέτρησης Να εισάγουµε µονάδες µέτρησης της αξιοπιστίας και την χρησιµότητα τους στις προδιαγραφές αξιοπιστίας Να περιγράψουµε την διαδικασία στατιστικού ελέγχου Να δείξουµε το πως µπορούµε να χρησιµοποιήσουµε τα αποτελέσµατα του στατιστικού ελέγχου για να κάνουµε προβλέψεις σχετικά µε την αξιοπιστία 2
Θέµατα ου καλύ τονται Ορισµός Αξιοπιστίας Αξιοπιστία και αποδοτικότητα Μέτρηση αξιοπιστίας Προδιαγραφές αξιοπιστίας Στατιστικός έλεγχος και λειτουργικά προφίλ Μοντέλο αύξησης της αξιοπιστίας Πρόβλεψη της αξιοπιστίας 3
Αξιο ιστία Λογισµικού Αξιοπιστία ενός συστήµατος ορίζετε ως η πιθανότητα να λειτουργεί το σύστηµα χωρίς να παρουσιάσει σφάλµα για συγκεκριµένη χρονική περίοδο Α οτυχία Λογισµικού : Το λογισµικό δεν παράγει τα αποτελέσµατα που περιµένει ο χρήστης Σφάλµα Λογισµικού : Το λογισµικό δεν λειτουργεί σύµφωνα µε τις προδιαγραφές που έχουν οριστεί 4
ΣΥΝΟΛΟ ΕΙΣΟ ΟΥ I e ΠΡΟΓΡΑΜΜΑ ΣΥΝΟΛΟ ΑΠΟΤΕΛΕΣΜΑΤΩΝ O e 5
Βελτίωση της Αξιο ιστίας Η αξιοπιστία βελτιώνετε όταν αφαιρεθούν τα σφάλµατα που παρουσιάζονται σε διάφορα µέρη του συστήµατος Σε µια έρευνα που έγινε, η αφαίρεση του 60% των σφαλµάτων λογισµικού οδήγησε σε αύξηση 3% της αξιοπιστίας Ο σκοπός είναι να γίνει αφαίρεση των σφαλµάτων µε σοβαρές επιπτώσεις 6
Αν εντο ιστούν σφάλµατα στο σύστηµα και διορθωθούν, η αξιο ιστία µ ορεί να µην ανέβει σηµαντικά ό ως θα εριµέναµε. Αυτό συµβαίνει για διάφορους λόγους : Ο κώδικας ου θα ροστεθεί µ ορεί να εριέχει και αυτός λάθη Τα κοµµάτια ου διορθώθηκαν δεν χρησιµο οιούνται α ό ολλούς χρήστες Το σφάλµα συµβαίνει µόνο σε εξαιρετικές Περι τώσεις εισαγωγής δεδοµένων 7
ΧΡΗΣΤΗΣ ΠΙΘΑΝΑ Ε ΟΜΕΝΑ ΕΙΣΟ ΟΥ 1 ΧΡΗΣΤΗΣ 3 ΧΡΗΣΤΗΣ 2 Ε ΟΜΕΝΑ ΠΟΥ ΗΜΙΟΥΡΓΟΥΝ ΣΦΑΛΜΑΤΑ 8
Για την αποφυγή σφαλµάτων µπορούµε να χρησιµοποιήσουµε κατά το σχεδιασµό της εφαρµογής µεθόδους τυπικών προδιαγραφών. Επίσης µπορούµε να αποδείξουµε ότι η υλοποίηση της εφαρµογής είναι συνεπής µε τις προδιαγραφές. Αυτά όµως δεν µας εγγυούνται ότι η εφαρµογή θα είναι αξιόπιστη για πρακτική χρήση για διάφορους λόγους : 9
Αξιο ιστία και τυ ικές µέθοδοι Οι προδιαγραφές µπορεί να µην αντικατοπτρίζουν τις πραγµατικές απαιτήσεις του χρήστη. Οι µέθοδοι απόδειξης µπορεί να περιέχουν λάθη Οι µέθοδοι απόδειξης µπορεί να θεωρούν ένα δείγµα χρήσης της εφαρµογής που είναι λανθασµένο 10
Η αύξηση στην αξιοπιστία αντιστοιχεί σε µείωση της αποδοτικότητας της εφαρµογής. Όµως η αύξηση της αξιοπιστίας προτιµάτε για τους πιο κάτω λόγους : Οι υ ολογιστές είναι φτηνοί και γρήγοροι Αναξιό ιστο λογισµικό α ορρί τεται α ό τους χρήστες τις λείστες φορές Το κόστος της α οτυχίας του συστήµατος µ ορεί να είναι µεγάλο Αναξιό ιστα συστήµατα δύσκολα βελτιώνονται Η µειωµένη α οδοτικότητα είναι ροβλέψιµη Αναξιό ιστα συστήµατα µ ορεί να οδηγήσουν σε α ώλεια δεδοµένων 11
Μονάδες Μέτρησης Αξιο ιστίας Λογισµικού POFOD ROCOF MTTF Πιθανότητα αποτυχίας όταν ζητηθεί εξυπηρέτηση Ρυθµός εµφάνισης αποτυχίας Μέτρηση χρόνου µεταξύ 2 αποτυχιών Κρίσιµα συστήµατα & συστήµατα ασφαλείας Λειτουργικά συστήµατα, συστήµατα εξυπηρέτησης συναλλαγών Συστήµατα CAD AVAIL Μέτρηση του χρόνου που το σύστηµα είναι διαθέσιµο για χρήση Συστήµατα συνεχούς λειτουργίας 12
Υπάρχουν 3 ειδών µετρήσεις που µπορεί να γίνουν για την αξιολόγηση της αξιοπιστίας ενός συστήµατος : 1. Ο αριθµός των αποτυχιών του συστήµατος σε συγκεκριµένο αριθµό δεδοµένων εισόδου 2. Ο χρόνος µεταξύ των αποτυχιών του συστήµατος 3. Ο χρόνος που χρειάζεται για διόρθωση ή επανεκκίνηση του συστήµατος µετά από την αποτυχία 13
Μονάδες Μέτρησης Χρόνου Για όλες τις µονάδες µέτρησης, ο χρόνος είναι καθοριστικός παράγοντας. Οι µονάδες µέτρησης χρόνου που χρησιµοποιούµε πρέπει να αντιστοιχούν στο είδος του συστήµατος Ηµερολογιακός χρόνος Αριθµός συναλλαγών µε το σύστηµα Χρόνος ε εξεργασίας 14
Συνέ ειες Α οτυχίας Οι µονάδες µέτρησης της αξιοπιστίας δεν λαµβάνουν υπόψη τις συνέπειες της αποτυχίας Παροδικά λάθη µπορεί να µην έχουν πραγµατικές συνέπειες,ενώ κάποια άλλα µπορεί να προκαλέσουν απώλεια δεδοµένων Μπορεί να χρειαστεί να κατηγοριοποιήσουµε τα είδη αποτυχιών και για κάθε κλάση να χρησιµοποιήσουµε διαφορετική µονάδα µέτρησης 15
Προδιαγραφές Αξιο ιστίας Λογισµικού Οι τύποι των αποτυχιών που µπορεί να συµβούν εξαρτώνται από το ίδιο το σύστηµα Κλάση Αποτυχίας Προσωρινή Μόνιµη Ανακτήσιµη Μη ανακτήσιµη Μη καταστροφική Καταστροφική Περιγραφή Συµβαίνει µόνο µε συγκεκριµένα δεδοµένα Συµβαίνει µε όλα τα δεδοµένα Το σύστηµα ανακτά τον έλεγχο χωρίς διακοπή λειτουργίας Το σύστηµα ανακτά τον έλεγχο µε διακοπή λειτουργίας εν καταστρέφει δεδοµένα ή την κατάσταση του συστήµατος Καταστρέφει δεδοµένα ή την κατάσταση του συστήµατος 16
Μηχάνηµα αυτόµατης Ανάληψης Κάθε µηχάνηµα στο δίκτυο χρησιµοποιείτε 300 φορές/µέρα Η τράπεζα έχει 1000 µηχανήµατα Ο χρόνος ζωής της εφαρµογής είναι 2 χρόνια Κάθε µηχάνηµα χειρίζεται 200,000 συναλλαγές 300,000 συναλλαγές µε την βάση / µέρα 17
Παράδειγµα ροδιαγραφών Αξιο ιστίας Failure class Example Reliability metric Permanent, The system fails to operate with ROCOF non-corrupting. any card which is input. Software 1 occurrence/1000 days must be restarted to correct failure. Transient, noncorrupting The magnetic stripe data cannot be read on an undamaged card which POFOD 1 in 1000 transactions Transient, corrupting is input. A pattern of transactions across the network causes database corruption. Unquantifiable! Should never happen in the lifetime of the system 18
Οικονοµικά της αξιο ιστίας Για να επιτύχουµε την απαιτούµενη αξιοπιστία χρειάζεται να δαπανήσουµε σηµαντικά χρήµατα. Πολλές φορές είναι πιο οικονοµικό να αποδεκτούµε ένα αναξιόπιστο σύστηµα και να πληρώσουµε το κόστος της αποτυχίας Αυτό εξαρτάτε και από κοινωνικό-πολιτικούς παράγοντες. Η φήµη για αναξιόπιστα προϊόντα µπορεί να οδηγήσει σε απώλεια πελατών Ανάλογα και µε την κρισιµότητα του συστήµατος, η µέτρια αξιοπιστία είναι ικανοποιητική 19
Η αύξηση της αξιοπιστίας ενός συστήµατος προϋποθέτει και αύξηση στο κόστος της εφαρµογής : Κόστος Χαµηλή Μέτρια Υψηλή Πολύ Υψηλή Αξιο ιστία 20
Αξιο ιστία για σύνθετα συστήµατα Για µεγάλα συστήµατα που αποτελούνται από πολλά υποσυστήµατα χρειάζεται να ελέγξουµε την αξιοπιστία κάθε ενός από αυτά για να υπολογιστεί η συνολική αξιοπιστία. Βήµατα Υπολογισµού : 1. Για κάθε υποσύστηµα εντοπίζουµε τα πιθανά σφάλµατα και τις συνέπειες τους 2. Κατηγοριοποίηση σφαλµάτων 3. Για κάθε κλάση σφάλµατος καθορίζουµε τις απαιτήσεις αξιοπιστίας ανάλογα µε την µονάδα µέτρησης που χρησιµοποιήσαµε 21
Στατιστικός Έλεγχος Ο στατιστικός έλεγχος είναι µια διαδικασία ελέγχου του λογισµικού για µέτρηση της αξιοπιστίας του παρά για τον εντοπισµό σφαλµάτων. Όταν συµπληρωθεί, µπορούν να γίνουν εκτιµήσεις για την τελική αξιοπιστία του συστήµατος και πότε αυτή θα επιτευχθεί. 22
Βήµατα για στατιστικό έλεγχο : Καθορισµός λειτουργικού ροφίλ για το λογισµικό Ε ιλογή ή δηµιουργία συνόλου δεδοµένων ανάλογα µε το λειτουργικό ροφίλ Εφαρµογή των δεδοµένων στο ρόγραµµα και µέτρηση του χρόνου ανάµεσα σε κάθε σφάλµα ου αρουσιάζεται Αφού συγκεντρωθεί ένα στατιστικά α οδεκτό δείγµα τότε µ ορεί να υ ολογιστεί η αξιο ιστία του λογισµικού 23
Ο στατιστικός έλεγχος δεν είναι πάντα εύκολο να εφαρµοστεί για διάφορους λόγους Αβεβαιότητα του λειτουργικού ροφίλ Υψηλό κόστος για την δηµιουργία λειτουργικού ροφίλ Στατιστική αβεβαιότητα όταν καθοριστεί µεγάλη αξιο ιστία 24
Το λειτουργικό προφίλ µιας εφαρµογής αντικατοπτρίζει τον τρόπο που θα χρησιµοποιηθεί η εφαρµογή. Συµπεριλαµβάνει κλάσεις τιµών εισόδου και πιθανότητα εµφάνισης τους. ΑΡΙΘΜΟΣ Ε ΟΜΕΝΩΝ ΕΙΣΟ ΟΥ ΚΛΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΕΙΣΟ ΟΥ 25
Όταν ένα νέο σύστηµα αντικαθιστά ένα παλιό είναι εύκολο να αξιολογήσεις τον τρόπο που θα χρησιµοποιηθεί από τους χρήστες Όταν πρόκειται για πρωτότυπο σύστηµα είναι δύσκολο να προβλεφθεί η χρήση του. Το προφίλ αλλάζει όσο πιο έµπειροι γίνονται οι χρήστες της εφαρµογής. 26
ΣΤΑΤΙΣΤΙΚΟΣ ΕΛΕΓΧΟΣ ΣΥΝΟΛΟ Ε ΟΜΕΝΩΝ ΓΙΑ ΟΚΙΜΗ ΑΡΚΕΤΑ ΜΕΓΑΛΟ ΑΥΤΟΜΑΤΟ ΤΡΟΠΟ (ΓΕΝΝΗΤΡΙΑ Ε ΟΜΕΝΩΝ) ΧΕΙΡΟΚΙΝΗΤΑ (ΜΕΓΑΛΥΤΕΡΟ ΚΟΣΤΟΣ) 27
Μοντέλα ανά τυξης Αξιο ιστίας Η ανάπτυξη του λογισµικού πρέπει να συνεχίζετε µέχρι την απόκτηση της επιθυµητής αξιοπιστίας. Το µοντέλο ανάπτυξης της αξιοπιστίας είναι ένα µαθηµατικό µοντέλο αξιοπιστίας του λογισµικού που προβλέπει την αύξηση της αξιοπιστίας ως προς τον χρόνο, και αφού πολλά σφάλµατα της εφαρµογής έχουν εντοπιστεί και διορθωθεί 28
Equal-step reliability growth Αξιοπιστία ROCOF t1 t2 t3 t4 t5 29
Αξιοπιστία ROCOF ιαφορετικές βελτιώσεις Αξιο ιστίας Η διόρθωση σφαλµάτων ροσθέτει νέα σφάλµατα και µειώνει την αξιο ιστία t1 t2 t3 t4 t5 30
Ε ιλογή µοντέλου αξιο ιστίας Έχουν προταθεί πολλά διαφορετικά µοντέλα ανάπτυξης της αξιοπιστίας εν υπάρχει κάποιο που να είναι γενικά αποδεκτό Η αξιοπιστία πρέπει να µετρηθεί και τα δεδοµένα που παρατηρήσαµε να ελεγχθούν σε διάφορα µοντέλα Το µοντέλο του best-fit πρέπει να χρησιµοποιηθεί για πρόβλεψη της αξιοπιστίας 31
Best-fit Model Αξιο ιστία Εκτίµηση χρόνου Για εκ λήρωση ροδιαγραφών αξιο ιστίας Χρόνος 32