Ohjelmisto-ongelmien välttäminen 1

Ohjelmisto-ongelmien välttäminen

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 sanottuna muuttaneet tapaamme työskennellä, ajatella ja elää.

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.

Ohjelmistovirheet voivat kuitenkin olla melko ongelmallisia, varsinkin kun turvaudumme niihin entistä enemmän 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.

Lue myös: 10 syytä, miksi sinun ei pitäisi olla kiirettä ostaa iPhone X

1. Yhdysvaltain usean osavaltion 911-katkos

Hätäpalvelut

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 hätä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 jäädytys

United Airlines

Heinäkuussa 2015 United Airlines joutui pysäyttämään koko lentokalustonsa 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
Kun ohjelmistoon lisätään vuosien varrella yhä enemmän ominaisuuksia, se voi alkaa näyttää tältä.

Syyskuussa 2007 Jean Bookout matkusti Interstate Highway 69:llä Oklahomassa matkustajan Barbara Schwarzin kanssa, kun hänellä oli vaikeuksia hallita 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

Edustava kuva

Arveltiin, 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”.

Spagettikoodi on tarpeettoman monimutkainen ja tekee virheiden löytämisen lähes mahdottomaksi. Lisäksi Toyota oli myös rikkonut useita turvallisuussääntöjä koodauksessaan. On huomattava, että tämä ei ollut yksittäinen tapaus tahattomasta kiihtyvyydestä Toyotassa.

Bookoutin onnettomuus toi kuitenkin tämän ongelman valoon ja korosti Toyotan ohjelmistoprosessin puutteet. Toyotan koodin rakenteesta riippuen havaittiin jopa, että ei-toivottua kiihtyvyyttä voi esiintyä yli 10 miljoonalla tavalla.

Nest-termostaattivirhe

Nest_Thermostat_1
Lähde: Flickr

Nest on Alphabetin omistama yritys, joka valmistaa ä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 kokivat virheellisen ohjelmistopäivityksen muodossa olevan häiriön, joka aiheutti niiden akkujen tyhjenemisen. 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.

Katso Seuraava: Selfit eivät ole niin triviaaleja kuin sosiaalinen media on tehnyt niistä myöhään

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, arvioi, että ohjelmoijien ja niiden ongelmien välillä, joita he yrittävät ratkaista koodeilla, on katkos.

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ä ohjelmistot ovat täynnä virheitä.

Toivoa kuitenkin on. Mallipohjaisen suunnittelun ja TLA+:n kaltaisten lähestymistapojen avulla kehittäjät voivat saada laajemman yleiskuvan ohjelmistojen toiminnasta.

Virheiden testaus

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. Ohjelmistokehitysyritys Esterel technology käyttää mallipohjaista suunnittelua turvallisuuden kannalta kriittisten ohjelmistojen rakentamiseen, kun taas Microsoftin kaltaiset Microsoftin kaltaiset ovat käyttäneet TLA+:aa mahdollisen katastrofaalisen Xbox-virheen korjaamiseen ja Euroopan avaruusjärjestön koodien uudelleenkirjoittamiseen luotain, joka laskeutui komeetan päälle.

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.

Lue myös: Työnnämme lapsiamme kohti sokeutta

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

Kuvittele nyt jotain tekoälyn (AI) kaltaista, joka sisällytetään näihin sovelluksiin. AI on riittävän pelottava yksinään ilman ohjelmistohäiriöitä. 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.

Katso Seuraava: Tekoäly: tyypit ja sen tulevaisuus ihmisille

Tue työtämme ❤️

Jos pidit tästä artikkelista, harkitse tipin antamista, jotta voimme jatkaa laadukkaan sisällön julkaisemista.

Turvallinen maksu PayPalilla
Moyens I/O Staff on motivoinut sinua antamalla neuvoja tekniikasta, henkilökohtaisesta kehityksestä, elämäntavoista ja strategioista, jotka auttavat sinua.