Ohjelmisto-ongelmien välttäminen
Sekalaista / / November 29, 2021
Tällä digitaalisella aikakaudella sinun on täytynyt kuulla sosiaalisen median jättiläisistä, kuten Facebookista ja Twitteristä, sekä sähköisen kaupankäynnin alustoista, kuten Alibaba ja Amazon. Näiden online-sivustojen toiminta perustuu erilaisiin ohjelmistopaketteihin. Nämä ohjelmat ovat suoraan sanoen muuttaneet tapaamme työskennellä, ajatella ja elää.
![Gt Kuinka ohjelmisto tyrmäsi meidät](/f/0f7a9bf696d466f9ec123df1e1c0a618.png)
Lisäksi monet laitteet, jotka aiemmin olivat luonteeltaan pelkästään mekaanisia, ovat nyt ohjelmiston ohjaamia. Esimerkiksi termostaatit olivat aikoinaan sähkömekaanisia laitteita. Nyt ne kuitenkin riippuvat suuresti ohjelmistosta.
Kuitenkin, ohjelmistovirheitä voi olla melko ongelmallista, varsinkin kun olemme entistä riippuvaisempia niistä päivittäisessä toiminnassa. Itse asiassa on ollut useita tilanteita, joissa ohjelmisto ei ole täyttänyt tarkoitustaan, mikä on johtanut epämiellyttäviin tuloksiin.
Tässä artikkelissa puhumme neljästä tapauksesta, joissa ohjelmiston suorituskyky on jäänyt huomattavasti huomaamatta, ja kuinka välttää tällaiset ohjelmisto-ongelmat.
1. Yhdysvaltain usean osavaltion 911-katkos
![Hätäpalvelut](/f/d54bb4c13d8759fef7bc0a17d98247be.jpg)
911 on kriittinen palvelu, jonka avulla ihmiset voivat tarvittaessa ottaa yhteyttä hätähenkilökuntaan. Joskus yhteydenotto hätäkeskukseen 911:n kautta voi kirjaimellisesti tehdä eron elämän ja kuoleman välillä.
Siksi oli melkoinen katastrofi, kun 9. huhtikuuta 2014 911-puhelun reititys epäonnistui seitsemässä Yhdysvaltain osavaltiossa, mukaan lukien Kalifornia, Florida, Minnesota, Pohjois-Carolina, Pennsylvania, Etelä-Carolina ja Washington.
Katkos johtui estettävissä olevasta koodausvirheestä, joka tapahtui Intradon omistamassa hätäpuhelunhallintakeskuksessa Coloradossa.
2. United Airlinesin laivaston maadoitus
![United Airlines](/f/0808b947aa635e7e6b42e1797e3e7177.jpg)
Heinäkuussa 2015 United Airlines joutui siihen maadoitti koko laivastonsa lentokoneesta ohjelmistohäiriön vuoksi. Tämä vaikutti yli 4 900 lentoon maailmanlaajuisesti ja jätti monet matkustajat jumissa lentoasemille ja ilmeisen turhautuneiksi.
Sillä oli luultavasti myös taloudellinen vaikutus, koska lentoyhtiö olisi joutunut korvaamaan monille matkustajille aiheutuneet haitat. Siellä oli myös luultavasti useita tärkeitä liiketapaamisia, jotka jäivät sekaisin maadoittumisen vuoksi.
3. Toyota Camry -kaasupolkimen toimintahäiriö
![Sekava sotku](/f/7d13843f69c8690504ba0c370b225cea.jpg)
Syyskuussa 2007 Jean Bookout matkusti Interstate Highwaylla 69 Oklahomassa matkustajan Barbara Schwarzin kanssa, kun hän joutui vaikeuksiin. hallita hänen Toyota Camryaan.
Hän yritti nostaa jalkansa kaasusta, mutta auto jatkoi kiihtymistä. Jarrupoljin ei pysäyttänyt autoa ja hän joutui käyttämään hätäjarruaan.
Valitettavasti tämä ajoi auton pengerrykseen. Schwarz kuoli seurauksena ja Bookout joutui sairaalaan viideksi kuukaudeksi vakavien vammojen vuoksi.
![Auto-onnettomuus](/f/8175775ac7aafbafd8abd8e944c70441.jpg)
Spekuloitiin, että onnettomuus johtui useista koodauspuutteista, jotka johtivat tehtävän kaatumiseen Camryn CPU: ssa. Tämä CPU ohjaisi kohtuuttoman suurta määrää toimintoja, mukaan lukien sytytys, kaasuvipu ja vakionopeussäädin.
Toyotan koodista tuli sotkuinen sotku sen jälkeen, kun useita vuosia oli kasattu uusia koodeja vanhojen päälle. Tätä kutsutaan yleensä "spagettikoodiksi".
Bookoutin onnettomuus toi kuitenkin tämän ongelman valoon ja korosti Toyotan ohjelmistoprosessin puutteet. Todettiin jopa, että on olemassa yli 10 miljoonaa tapaa ei-toivottua kiihtyvyyttä, joka perustuu tapaan, jolla Toyotan koodi rakennettiin.
Nest-termostaattivirhe
![Nest_Thermostat_1](/f/11f4f07b8fa6e459de52cb78c8f7571e.jpg)
Nest on yritys, jonka omistaa Alphabet, joka tekee älykkäitä termostaatteja. Nämä termostaatit ovat varsin näppärät ja antavat käyttäjien hallita kotinsa lämpötilaa älypuhelimillaan.
Viime talvena Nest-termostaatit kokenut vian viallisen ohjelmistopäivityksen muodossa, joka aiheutti akkujen tyhjentymisen. Valitettavasti tämä virhe tapahtui keskellä talvea, jolloin useat käyttäjät jäivät tilapäisesti ilman lämpöä. Tämä on ehdottomasti jotain, jota et halua tapahtuvan tähän aikaan vuodesta.
Lyhyt analyysi ohjelmisto-ongelmista
Mallipohjaisen suunnittelun ja TLA+:n kaltaisten lähestymistapojen avulla kehittäjät voivat saada laajemman yleiskuvan ohjelmistojen toiminnasta.
Brett Victor, tunnettu tietokonetutkija, uskoo, että on olemassa katkaisu ohjelmoijien ja ongelmien välillä, joita he yrittävät ratkaista koodeilla.
Tämän yhteyden katkeamisen vuoksi ohjelmoijien on vaikea kuvitella, mitä he yrittävät laittaa koodeihin. Victor uskoo, että tämä on yksi syy siihen, että ohjelmisto on täynnä virheitä.
Toivoa kuitenkin on. Lähestymistapoja kuten mallipohjainen suunnittelu ja TLA+ antaa kehittäjille mahdollisuuden saada laajempi yleiskuva ohjelmistojen toiminnasta.
![Virheiden testaus](/f/611d0faaae40d1b08f82dd02d70b5361.jpg)
Mallipohjainen suunnittelu, kuten nimestä voi päätellä, mahdollistaa ohjelmistojen kehittämisen visuaalisten mallien avulla. TLA+, joka on lyhenne sanoista Temporal Logic of Actions, on kieli, joka on suunniteltu tietokoneohjelman spesifikaatioiden kirjoittamiseen. TLA+:ssa on hienoa, että se mahdollistaa ohjelmistojen kattavan testauksen ja todentamisen ennen kuin se julkaistaan.
Sekä mallipohjainen suunnittelu että TLA+ ovat jo todistaneet suolansa. Esterelitekniikat, ohjelmistokehitysyritys, käyttää mallipohjaista suunnittelua turvallisuuskriittisten ohjelmistojen rakentamiseen, kun taas TLA+:aa ovat käyttäneet mm. Microsoft korjaa mahdollisen katastrofaalisen Xbox-virheen ja Euroopan avaruusjärjestö kirjoittaa koodit uudelleen luotain, joka laskeutui komeetta.
Ohjelmoijat arvostavat koodin kirjoitusprosessia. Monet heistä ovat yksinkertaisesti kiinnostuneita koodien kirjoitusprosessista. Siksi on haaste saada jotkut ohjelmoijat hyväksymään lähestymistavat, kuten mallipohjainen suunnittelu ja TLA+. Näitä lähestymistapoja pidetään usein tiukasti akateemisina, joilla ei ole todellista elinkelpoisuutta. Näkökulman muutoksen on kuitenkin tapahduttava mahdollisimman aikaisin.
Lopulliset ajatukset
Ohjelmistoja käytetään yhä enemmän sovelluksissa, jotka vaativat sisäänrakennettuja turvatoimia. Parempia menetelmiä ohjelmistojen suunnitteluun on otettava käyttöön kautta linjan, koska tällaiset sovellukset ovat elintärkeitä elämässämme.
Prosessit, kuten automaatio, riippuvat nykyään suuresti ohjelmistoista, mutta yksi koodirivin virhe voi johtaa meidät suuriin takaiskuihin, kuten yllä olevat tapaukset osoittavat.
![Koodaus](/f/0e40b94bd4b6479685cfa47758b960ac.jpg)
Kuvittele nyt jotain tekoälyn (AI) kaltaista, joka sisällytetään näihin sovelluksiin. AI on Pelottavaa jo itsessään ilman ohjelmistovikoja. Lisää bugeja sekoitukseen, niin ei tiedä mitä voi tapahtua.
Tässä on kuitenkin hopeinen vuori. Pienellä työllä ja uusilla työkaluilla voimme tehdä parempia ohjelmistoja ja tekoälyä suunnittelemalla ne järkevämmin ja testaamalla sen nastoihinsa.
Toivotaan, että asianomaiset viranomaiset ottavat tämän kriittisen asian vakavasti, jotta voimme käyttää ohjelmistoja täysimääräisesti, mutta vain rakentaaksemme turvallisempaa ja älykkäämpää tulevaisuutta.