Ohjelmistovirheet avaruustutkimuslaitteistoissa
Kallio-Kujala, Linda (2024-05-07)
Ohjelmistovirheet avaruustutkimuslaitteistoissa
Kallio-Kujala, Linda
(07.05.2024)
Julkaisu on tekijänoikeussäännösten alainen. Teosta voi lukea ja tulostaa henkilökohtaista käyttöä varten. Käyttö kaupallisiin tarkoituksiin on kielletty.
avoin
Julkaisun pysyvä osoite on:
https://urn.fi/URN:NBN:fi-fe2024051430455
https://urn.fi/URN:NBN:fi-fe2024051430455
Tiivistelmä
Tämä kandidaatintutkielma on kirjallisuuskatsaus siihen, millaisia ohjelmistovirheitä avaruuslaitteistojen tietokoneiden ohjelmissa on esiintynyt, miten niistä aiheutuvat ongelmat ratkaistaan ja mikä vaikeuttaa ohjelmistokehitystä luotaimiin ja raketteihin. Tärkeimpinä lähteinä toimivat Grottke ym. tutkimus "Epirical Investigation of Fault Types in Space Mission System Software” ja Trivedi ym. tutkimus "Epirical Investigation of Fault Repairs and Mitigations in Space Mission System Software”. Nämä tutkimukset perustuvat NASAn/JPLn 18 lennolta saatuihin virheraportteihin ja niistä eriteltyihin uniikkeihin ohjelmistoperäisiin poikkeamiin.
Tutkimuksissa ohjelmistovirheet jaetaan kahteen eri luokkaan: Bohrbugeihin ja Mandelbugeihin. Bohrbugin aktivoi yksinkertaiset olosuhteet ja se on helposti havaittavissa, Mandelbugi taas aktvoituu monimutkaisten tapahtumasarjojen seurauksena tai epäsuorasti. Bohrbugeille suositeltu käsittelytapa on korjaaminen. Mandelbugeille suositellaan korjaamisen lisäksi uudelleen yrittämistä, uudelleenkäynnistystä tai muuta suoritusympäristöä muuttavaa tapaa.
Tutkituilla lennoilla yleisimpiä olivat katastrofaalisia seurauksia aiheuttavat Bohrbugit ja toiseksi yleisimpiä Mandelbugit, joiden seuraukset olivat mitättömiä. Virhetyypillä ei ollut yhteyttä siihen, oliko virheen tapahtumisen todennäköisyys hyväksyttävällä vai ei hyväksyttävällä tasolla.
Virheiden vähentämiseksi JPL on kehittänyt niin ohjelmointistandardeja kuin myös ohjelmoijien sertifiointikurssin. JPL vaatii kaikki avaruuslaitteistojen koodin parissa työskentelevät ohjelmistokehittäjänsä läpäisemään sertifiointiprosessin, johon kuuluu kolme eri moduulia tärkeimmistä aiheista sekä koe joka moduulin jälkeen. Lisäksi JPL on luonut standardin käytettävälle koodille, joka perustuun aiemmilla lennoilla tapahtuneisiin vaaratilanteisiin. Koontiversiot tarkastetaan staattisella analyysillä ja eriävyydet korjataan.
Tutkimuksissa ohjelmistovirheet jaetaan kahteen eri luokkaan: Bohrbugeihin ja Mandelbugeihin. Bohrbugin aktivoi yksinkertaiset olosuhteet ja se on helposti havaittavissa, Mandelbugi taas aktvoituu monimutkaisten tapahtumasarjojen seurauksena tai epäsuorasti. Bohrbugeille suositeltu käsittelytapa on korjaaminen. Mandelbugeille suositellaan korjaamisen lisäksi uudelleen yrittämistä, uudelleenkäynnistystä tai muuta suoritusympäristöä muuttavaa tapaa.
Tutkituilla lennoilla yleisimpiä olivat katastrofaalisia seurauksia aiheuttavat Bohrbugit ja toiseksi yleisimpiä Mandelbugit, joiden seuraukset olivat mitättömiä. Virhetyypillä ei ollut yhteyttä siihen, oliko virheen tapahtumisen todennäköisyys hyväksyttävällä vai ei hyväksyttävällä tasolla.
Virheiden vähentämiseksi JPL on kehittänyt niin ohjelmointistandardeja kuin myös ohjelmoijien sertifiointikurssin. JPL vaatii kaikki avaruuslaitteistojen koodin parissa työskentelevät ohjelmistokehittäjänsä läpäisemään sertifiointiprosessin, johon kuuluu kolme eri moduulia tärkeimmistä aiheista sekä koe joka moduulin jälkeen. Lisäksi JPL on luonut standardin käytettävälle koodille, joka perustuun aiemmilla lennoilla tapahtuneisiin vaaratilanteisiin. Koontiversiot tarkastetaan staattisella analyysillä ja eriävyydet korjataan.