Kuidas vältida tarkvaraprobleeme
Miscellanea / / November 29, 2021
Sellel digitaalajastul olete kindlasti kuulnud sotsiaalmeedia hiiglastest, nagu Facebook ja Twitter, ning e-kaubanduse platvormidest, nagu Alibaba ja Amazon. Need veebipõhised veebisaidid kasutavad oma töös erinevaid tarkvarapakette. Need programmid on ausalt öeldes muutnud seda, kuidas me töötame, mõtleme ja elame.
Lisaks juhitakse paljusid seadmeid, mis varem olid ainult mehaanilised, nüüd tarkvara abil. Näiteks olid termostaadid kunagi elektromehaanilised seadmed. Kuid nüüd sõltuvad nad tööks suuresti tarkvarast.
Kuid, tarkvara vead võib osutuda üsna problemaatiliseks, eriti kui me sõltume nendest igapäevases tegevuses. Tegelikult on olnud üsna palju juhtumeid, kus tarkvara ei ole oma eesmärki täitnud, mis on toonud kaasa ebameeldivaid tulemusi.
Selles artiklis räägime neljast olukorrast, kus tarkvara jõudlus on oma märgist oluliselt puudu jäänud, ja kuidas selliseid tarkvaraprobleeme vältida.
1. USA mitme osariigi 911 katkestus
911 on ülioluline teenus, mis võimaldab inimestel vajadusel hädaabipersonaliga ühendust võtta. Mõnikord võib hädaabidispetšeritega 911 kaudu ühenduse võtmine sõna otseses mõttes muuta elu ja surma vahel.
Seetõttu oli see üsna katastroof, kui 9. aprillil 2014 911 kõne suunamine ebaõnnestus seitsmes USA osariigis, sealhulgas Californias, Floridas, Minnesotas, Põhja-Carolinas, Pennsylvanias, Lõuna-Carolinas ja Washingtonis.
Selle katkestuse põhjustas välditav kodeerimisviga, mis ilmnes Colorado hädaabikõnede halduskeskuses, mis kuulus Intradole.
2. United Airlinesi lennukipargi maandamine
2015. aasta juulis oli United Airlines sunnitud maatas kogu oma laevastiku tarkvara tõrke tõttu. See mõjutas rohkem kui 4900 lendu kogu maailmas ja jättis paljud reisijad lennujaamadesse kinni ja olid ilmselgelt pettunud.
Ilmselt oli sellel ka majanduslik mõju, kuna lennufirma oleks pidanud paljudele reisijatele tekkinud ebamugavused hüvitama. Tõenäoliselt oli ka mitmeid olulisi ärikohtumisi, mis jäid maandamise tõttu sassi.
3. Toyota Camry gaasipedaali rike
2007. aasta septembris sõitis Jean Bookout koos reisija Barbara Schwarziga Oklahomas Interstate Highway 69-l, kui tal tekkisid raskused. kontrollib tema Toyota Camryt.
Ta üritas oma jalgu gaasipedaalilt tõsta, kuid auto jätkas kiirendamist. Piduripedaal ei peatanud autot ja naine oli sunnitud kasutama hädapidurit.
Kahjuks viis see auto muldkehasse. Schwarz suri selle tagajärjel ja Bookout viidi kriitiliste vigastuste tõttu viieks kuuks haiglasse.
Spekuleeriti, et õnnetus juhtus mitme kodeerimise puudulikkuse tõttu, mis viisid Camry protsessori ülesande krahhini. See protsessor juhiks ebatavaliselt suurt hulka funktsioone, sealhulgas süüde, gaasihoob ja püsikiiruse regulaator.
Toyota koodist sai sassis segadus pärast mitu aastat kestnud uute koodide kuhjamist vanadele koodidele. Seda nimetatakse tavaliselt "spagetikoodiks".
Bookouti õnnetus tõi aga selle probleemi päevavalgele ja tõi esile Toyota vead nende tarkvaraprotsessis. Leiti isegi, et selleks on rohkem kui 10 miljonit võimalust võib tekkida soovimatu kiirendus, mis põhineb Toyota koodi ülesehitusel.
Nesti termostaadi rike
Nest on ettevõte, mille omanik on Alphabet, mis teeb nutikaid termostaate. Need termostaadid on üsna nutikad ja võimaldavad kasutajatel oma nutitelefonidest oma kodu temperatuuri juhtida.
Eelmisel talvel Nesti termostaadid kogenud tõrget vigase tarkvarauuenduse näol, mis põhjustas nende akude tühjenemise. Kahjuks juhtus see viga keset talve, mistõttu jäi mitu kasutajat ajutiselt kütteta. See on kindlasti midagi, mida te ei taha praegusel aastaajal juhtuda.
Tarkvaraprobleemide lühianalüüs
Sellised lähenemisviisid nagu mudelipõhine disain ja TLA+ võimaldavad arendajatel saada suurema ülevaate nende tarkvara toimimisest.
Väljapaistev arvutiteadlane Brett Victor arvab, et see on olemas lahtiühendamine programmeerijate ja probleemide vahel, mida nad püüavad koodide abil lahendada.
Selle katkestuse tõttu on programmeerijatel raske ette kujutada, mida nad üritavad koodidesse sisestada. Victor arvab, et see on üks tegureid, mis aitavad kaasa sellele, et tarkvara on vigu täis.
Siiski on lootust. Lähenemisviisid nagu mudelipõhine disain ja TLA+ võimaldavad arendajatel saada suurema ülevaate nende tarkvara toimimisest.
Mudelipõhine disain, nagu nimigi ütleb, võimaldab tarkvara arendada visuaalsete mudelite kaudu. TLA+, mis on lühend sõnadest Temporal Logic of Actions, on keel, mis on loodud arvutiprogrammi spetsifikatsioonide kirjutamiseks. TLA+ puhul on suurepärane see, et see võimaldab tarkvara põhjalikku testimist ja kontrollimist enne selle avalikustamist.
Nii mudelipõhine disain kui ka TLA+ on oma soola juba tõestanud. Estereli tehnoloogiad, tarkvaraarenduse ettevõte, kasutab mudelipõhist disaini ohutuse seisukohalt kriitilise tarkvara loomiseks, samas kui TLA+ on kasutanud näiteks Microsoft parandab võimaliku katastroofilise Xboxi vea ja Euroopa Kosmoseagentuur kirjutab uuesti koodid sondile, mis maandus komeet.
Programmeerijad hindavad koodi kirjutamise protsessi kõrgelt. Paljud neist on koodide kirjutamise protsessist lihtsalt huvitatud. Seetõttu on väljakutse panna mõned programmeerijad aktsepteerima selliseid lähenemisviise nagu mudelipõhine disain ja TLA+. Neid lähenemisviise peetakse sageli rangelt akadeemilisteks, millel puudub tegelik elujõulisus. Vaatemuutus peab aga tulema võimalikult vara.
Viimased Mõtted
Tarkvara kasutatakse üha enam rakendustes, mis nõuavad sisseehitatud ettevaatusabinõusid. Paremaid tarkvara kujundamise meetodeid tuleb juurutada kõikjal, kuna sellised rakendused on meie elus üliolulised.
Sellised protsessid nagu automatiseerimine sõltuvad tänapäeval suuresti tarkvarast, kuid üks viga koodireas võib viia meid suurte tagasilöökideni, nagu ülaltoodud juhtumid näitavad.
Kujutage nüüd ette, et nendesse rakendustesse on lisatud midagi sellist, nagu tehisintellekt (AI). AI on iseenesest piisavalt hirmutav ilma tarkvara tõrgeteta. Lisage segusse vead ja pole teada, mis võib juhtuda.
Siiski on siin hõbedane vooder. Väikese töö ja mõne uue tööriistaga saame luua paremat tarkvara ja tehisintellekti, kujundades selle mõistlikumalt ja katsetades seda naastudega.
Loodame, et asjassepuutuvad ametiasutused võtavad seda kriitilist probleemi tõsiselt, et saaksime kasutada tarkvara täiel määral, kuid ainult turvalisema ja nutikama tuleviku ehitamiseks.