ΕΝΟΤΗΤΑ 2 ΑΠΟΤΥΧΙΕΣ ΚΑΙ ΚΑΤΑΣΤΡΟΦΕΣ Πτήση STS 51-L Πτήση 501 Ariane-5 Τεχνολογία Λογισμικού ΙΙ 1
Αποτυχίες και Καταστροφές Τα μέρη ενός συστήματος συχνά αποτυχαίνουν Φθείρονται Καλώδια και ενώσεις χαλαρώνουν Οι κοσμικές ακτίνες διαταράσσουν τα κυκλώματα Χρήση σε εφαρμογές για τις οποίες δεν είναι σχεδιασμένα Οι αποτυχίες σημείου δεν οδηγούν σε καταστροφές Εφεδρικά συστήματα Σχεδιασμοί ανεκτικότητας στα λάθη Τα ατυχήματα αποφεύγονται όταν εφαρμόζονται σωστές μεθοδολογίες π.χ. Ανάλυση αποτυχιών - Εκτίμηση αξιοπιστίας - Έλεγχοι Τεχνολογία Λογισμικού ΙΙ 2
Παραδείγματα καταστροφών Οι αποτυχίες του λογισμικού και του υλικού μοιάζουν ; 1986 Αποτυχία υλικού : Πτήση STS 51-L (Challenger) 1996 Αποτυχία λογισμικού : Πτήση 501 Ariane-5 Τεχνολογία Λογισμικού ΙΙ 3
Challenger Πτήση 51-L Κατασκευάστριες εταιρίες (1972) Rockwell διαστημικό σκάφος Martin Marietta εξωτερική δεξαμενή Morton Thiokol επιταχυντικός πύραυλος Solid Rocket Boosters (SRB) Rocketdyne κύριες μηχανές σκάφους Κέντρα της ΝΑΣΑ JSC διαχείριση διαστημικού σκάφους Marshall διαχείριση μηχανών, δεξαμενής,srb KSC συναρμολόγηση, έλεγχος, εκτόξευση 4 διαστημικά σκάφη κατασκευάστηκαν 24 πτήσεις από 1981 ως 1995 Τεχνολογία Λογισμικού ΙΙ 4
Καταστροφή του challenger Τεχνικοί λόγοι : Αποτυχία μιας τάπας πίεσης (Ο-ring) στο σύνδεσμο της ουράς του δεξιού κινητήρα του πυραύλου Ο κινητήρας του πυραύλου που αποτελούνταν από 4 κυλινδρικά τμήματα, περιείχε 100 τ. καύσιμα Η πίεση κατά την ανάφλεξη προκάλεσε κενά σε 2 τάπες O-rings στους συνδέσμους Παράγοντες : Θερμοκρασία :το ψύχος ελαττώνει την ελαστικότητα του O-ring Η περίπτωση αποτυχίας της O-ring ενισχύεται από τις διαδικασίες Τεστ που προκαλούν οπές αέρος στο επίχρισμα των συνδέσμων ΑΛΛΑ ΗΤΑΝ ΜΟΝΟ ΜΙΑ ΑΠΟΤΥΧΙΑ ΣΗΜΕΙΟΥ Τεχνολογία Λογισμικού ΙΙ 5
Τι έγινε στην πραγματικότητα; Ι 1977 :Οι έλεγχοι έδειξαν ότι η περιστροφή των συνδέσμων προκαλεί την απώλεια των δευτερευόντων O-rings σαν εφεδρικών 1980 : Οι σύνδεσμοι του SRB κατατάχθηκαν σε κρισιμότητα 1R 1981-82 :Στις αρχικές πτήσεις εντοπίστηκαν ανωμαλίες των O-rings Αλλά δεν καταγράφηκαν στο σύστημα αξιολόγησης προβλημάτων της Marshall Δεκ. 82 : Οι έλεγχοι έδειξαν ότι οι δευτερεύουσες O-rings παύουν να είναι λειτουργικές κάτω από το 40% της μέγιστης πίεσης Η κρισιμότητα έγινε 1, ΑΛΛΑ στα χαρτιά παρέμεινε 1R 25 Ιαν. 1985 : Εκτόξευση του STS 51-C στη χαμηλότερη ως τότε θερμοκρασία των 11 ο C και η διάβρωση των O-rings ήταν η χειρότερη ως τότε. Τεχνολογία Λογισμικού ΙΙ 6
Τι έγινε στην πραγματικότητα; ΙΙ 8 Φεβ. 1985 : Η ανάλυση της Thiokol έδειξε κίνδυνο αποτυχίας των O-rings, αλλά τον παράβλεψε λόγω της ύπαρξης των δευτερευόντων O- rings. Απρ. 85 : Στο STS 51-B οι βασικές τάπες O-rings ποτέ δεν σφράγισαν, και οι δευτερεύουσες διαβρώθηκαν κάτω από τα προβλεπόμενα όρια, και η Marshall έθεσε περιορισμούς για την εκτόξευση του 51-F και όλων των επόμενων πτήσεων. Η Thiokol δεν ενημερώθηκε για τους περιορισμούς! Ιούλ.-Οκτ. 85 : Ειδική ομάδα μηχανικών της Thiokol που ανέλαβε τη λύση του προβλήματος, παραπονέθηκε για έλλειψη συνεργασίας με τη διοίκηση Δεκ. 85 : Η διοίκηση της Thiokol πρότεινε κλείσιμο θέματος O-rings Οκτ./Νοεμ. 1985 : Πτήσεις 61-Α & 61-Β με πρόβλημα των O-rings Τεχνολογία Λογισμικού ΙΙ 7
Η απόφαση εκτόξευσης 27 Ιαν.1986 2:30 μμ : Οι μηχανικοί της Thiokol εξέφρασαν στη Marshall τις ανησυχίες τους για την προβλεπόμενη χαμηλή θερμοκρασία 5:45 μμ : Η Thiokol πρότεινε να αναβληθεί η εκτόξευση 8:45 μμ : Η Marshall τους επέκρινε για αλλαγή στα κριτήρια εκτόξευσης 10:30 μμ : Οι μηχανικοί της Thiokol εξέφρασαν σοβαρές ενστάσεις κατά της εκτόξευσης 11:00 μμ : Η διοίκηση της Thiokol απέρριψε τις ενστάσεις 28 Ιαν. 1986 11:39 πμ : Εκτόξευση πτήσης 51-L 73 δευτερόλεπτα αργότερα το Challenger εξερράγη Τεχνολογία Λογισμικού ΙΙ 8
Ariane-5 Πτήση 501 Ευρωπαϊκός πύραυλος, απόγονος του επιτυχούς Ariane-4 Αποστολή :εκτόξευση δορυφόρων αξίας $500 εκατομμύρια σε γήινη τροχιά Εκτόξευση : 4 Ιουνίου 1996 Αυτοκαταστράφηκε 37 δευτερόλεπτα αργότερα Αιτία : Μη-διαχείριση μιας εξαίρεσης ενός αριθμού κινητής υποδιαστολής Τεχνολογία Λογισμικού ΙΙ 9
Τι προκάλεσε την καταστροφή; Ο προσανατολισμός και η τροχιά του πυραύλου υπολογίζονταν από ένα σύστημα «προσδιορισμού συντεταγμένων» του οχήματος το οποίο έδινε εντολές στις μηχανές. Η προσπάθεια μετατροπής ενός 64-bit αριθμού κινητής υποδιαστολής σε έναν προσημασμένο 16-bit, προκάλεσε υπερχείλιση. Το λογισμικό απέτυχε γιατί δεν περιελάμβανε διαχειριστή εξαιρέσεων. Το εφεδρικό λογισμικό ήταν απλά ένα αντίγραφο και απέτυχε επίσης Η αποτυχία του λογισμικού προκάλεσε κλείσιμο του συστήματος καθώς και του εφεδρικού του γιατί οι απαιτήσεις όριζαν να κλείσει αν εντόπιζε μη-διαχειρίσιμη εξαίρεση. Το διαγνωστικό σήμα που στάλθηκε στις μηχανές μεταφράστηκε σαν δεδομένο πτήσης. Οι μηχανές περιστράφηκαν σε σημείο μη ανεκτής έντασης Ο πύραυλος άρχισε να αυτοκαταστρέφεται. Τεχνολογία Λογισμικού ΙΙ 10
Ariane-5 Πτήση 501 Γιατί απέτυχε; Το λογισμικό επαναχρησιμοποιήθηκε από το Ariane-4 χωρίς να επανασχεδιαστεί Δεν υπήρχε διαχειριστής εξαιρέσεων, γιατί η ανάλυση στο Ariane-4 έδειξε ότι δεν υπήρχε περίπτωση υπερχείλισης όμως το Ariane-5 είχε διαφορετική τροχιά. το Ariane 5 μετέφερε βαρύτερο φορτίο από την Ariane 4 Το λάθος δεν εντοπίστηκε στον έλεγχο μονάδων γιατί οι απαιτήσεις δεν περιέλαβαν δεδομένα της τροχιάς του Ariane-5. Το λάθος δεν εντοπίστηκε στον έλεγχο συνένωσης γιατί δεν πραγματοποιήθηκε ολοκληρωμένος, λόγω κόστους Το λάθος δεν εντοπίστηκε στην επιθεώρηση γιατί δεν τεκμηριώνονταν οι υποθέσεις υλοποίησης Τεχνολογία Λογισμικού ΙΙ 11
Συμπέρασμα Οι αποτυχίες μπορεί να απορρέουν από μια και μόνη πηγή Συστήματα έλεγχου και επικύρωσης στοχεύουν στον εντοπισμό τέτοιων προβλημάτων Συνήθως, για την αποτυχία ευθύνονται και οι μηχανικοί και οι διαχειριστές του έργου Το αξιόπιστο λογισμικό δεν εξαρτάται από τη σύνταξη αλάνθαστων προγραμμάτων, αλλά από την ικανότητα: Επικοινωνίας (ανταλλαγής πληροφοριών μεταξύ ομάδων) Διαχείρισης επικινδυνότητας Επαλήθευσης και επικύρωσης Τεχνολογία Λογισμικού ΙΙ 12