Kaip išvengti programinės įrangos problemų
Įvairios / / November 29, 2021
Šioje skaitmeninėje eroje jūs turėjote girdėti apie socialinės žiniasklaidos milžinus, tokius kaip „Facebook“ ir „Twitter“ bei elektroninės prekybos platformas, tokias kaip „Alibaba“ ir „Amazon“. Šių internetinių svetainių veikimui naudojami įvairūs programinės įrangos paketai. Šios programos gana atvirai pakeitė mūsų darbo, mąstymo ir gyvenimo būdą.
![Gt Kaip programinė įranga mus pribloškė](/f/0f7a9bf696d466f9ec123df1e1c0a618.png)
Be to, daugelis įrenginių, kurie anksčiau buvo tik mechaninio pobūdžio, dabar yra valdomi programine įranga. Pavyzdžiui, termostatai kažkada buvo elektromechaniniai prietaisai. Tačiau dabar jie labai priklauso nuo programinės įrangos.
Tačiau programinės įrangos klaidos gali būti gana problematiška, ypač dėl to, kad mes jais labiau pasikliaujame kasdienėje veikloje. Tiesą sakant, iš tikrųjų buvo nemažai atvejų, kai programinė įranga nepasiekė numatytos paskirties ir davė nemalonių rezultatų.
Šiame straipsnyje mes kalbame apie 4 atvejus, kai programinės įrangos našumas labai sumažėjo, ir kaip išvengti tokių programinės įrangos problemų.
1. JAV kelių valstijų 911 nutraukimas
![Skubios pagalbos tarnybos](/f/d54bb4c13d8759fef7bc0a17d98247be.jpg)
911 yra labai svarbi paslauga, leidžianti asmenims prireikus susisiekti su pagalbos personalu. Kartais susisiekimas su skubios pagalbos dispečeriais numeriu 911 tiesiogine prasme gali skirtis tarp gyvybės ir mirties.
Todėl buvo gana nelaimė, kai 2014 m. balandžio 9 d. 911 skambučio nukreipimas nepavyko septyniose JAV valstijose, įskaitant Kaliforniją, Floridą, Minesotą, Šiaurės Karoliną, Pensilvaniją, Pietų Karoliną ir Vašingtoną.
Šį gedimą sukėlė kodavimo klaida, kurios galima išvengti, įvykusi pagalbos skambučių valdymo centre Kolorado valstijoje, priklausančiame Intrado.
2. „United Airlines“ laivyno įjungimas
![Tarptautinės oro linijos](/f/0808b947aa635e7e6b42e1797e3e7177.jpg)
2015 metų liepą „United Airlines“ buvo priversta įžemino visą savo laivyną orlaivių dėl programinės įrangos gedimo. Tai paveikė daugiau nei 4900 skrydžių visame pasaulyje, o daugelis keleivių įstrigo oro uostuose ir buvo akivaizdžiai nusivylę.
Tikriausiai tai turėjo ir ekonominį poveikį, nes aviakompanija būtų turėjusi atlyginti daugeliui keleivių už patirtus nepatogumus. Taip pat tikriausiai buvo keli svarbūs verslo susitikimai, kurie buvo supainioti dėl įžeminimo.
3. Toyota Camry akceleratoriaus pedalo gedimas
![Susivėlusi netvarka](/f/7d13843f69c8690504ba0c370b225cea.jpg)
2007 m. rugsėjį Jean Bookout važiavo tarpvalstybiniu greitkeliu 69 Oklahomoje kartu su keleive Barbara Schwarz, kai ji susidūrė su sunkumais. valdydamas savo Toyota Camry.
Ji bandė pakelti kojas nuo droselio, bet automobilis toliau įsibėgėjo. Stabdžių pedalas nesustabdė automobilio ir ji buvo priversta naudoti avarinį stabdį.
Deja, dėl to automobilis nukrito į pylimą. Schwarzas mirė, o Bookoutas buvo paguldytas į ligoninę penkiems mėnesiams dėl sunkių sužalojimų.
![Automobilio avarija](/f/8175775ac7aafbafd8abd8e944c70441.jpg)
Buvo spėjama, kad nelaimė įvyko dėl kelių kodavimo trūkumų, dėl kurių „Camry“ procesoriaus užduotis sugenda. Šis centrinis procesorius valdytų nepaprastai daug funkcijų, įskaitant uždegimą, droselio valdymą ir greičio palaikymo sistemą.
„Toyota“ kodas tapo painia netvarka po kelerių metų, kai ant senųjų buvo kaupiami nauji kodai. Paprastai tai vadinama „spagečių kodu“.
Tačiau „Bookout“ avarija išryškino šią problemą ir išryškino „Toyota“ programinės įrangos proceso trūkumus. Netgi buvo nustatyta, kad yra daugiau nei 10 mln gali atsirasti nepageidaujamas pagreitis, remiantis „Toyota“ kodo struktūra.
„Nest“ termostato gedimas
![Nest_Thermostat_1](/f/11f4f07b8fa6e459de52cb78c8f7571e.jpg)
Nest yra įmonė, priklauso Alphabet, iš kurių gaminami išmanieji termostatai. Šie termostatai yra gana madingi ir leidžia vartotojams valdyti temperatūrą savo namuose iš savo išmaniųjų telefonų.
Praėjusią žiemą „Nest“ termostatai patyrė gedimą sugedęs programinės įrangos atnaujinimas, dėl kurio išsikrovė jų baterijos. Deja, ši klaida įvyko žiemos viduryje, todėl keli vartotojai laikinai liko be šilumos. Tai tikrai kažkas, ko nenorėtumėte įvykti šiuo metų laiku.
Trumpa programinės įrangos problemų analizė
Tokie metodai, kaip modeliu pagrįstas dizainas ir TLA+, leidžia kūrėjams susidaryti didesnį vaizdą apie tai, kaip veikia jų programinė įranga.
Brettas Viktoras, žymus kompiuterių tyrinėtojas, mano, kad yra atsijungimas tarp programuotojų ir problemų, kurias jie bando išspręsti naudodami kodus.
Dėl šio atjungimo programuotojams tampa sunku įsivaizduoti, ką jie bando įdėti į kodus. Viktoras mano, kad tai yra vienas iš veiksnių, skatinančių programinę įrangą, kurioje gausu klaidų.
Tačiau yra vilties. Tokie požiūriai kaip modeliu pagrįstas dizainas ir TLA+ leidžia kūrėjams susidaryti didesnį vaizdą apie tai, kaip veikia jų programinė įranga.
![Klaidų testavimas](/f/611d0faaae40d1b08f82dd02d70b5361.jpg)
Modeliu pagrįstas dizainas, kaip rodo pavadinimas, leidžia kurti programinę įrangą naudojant vaizdinius modelius. TLA+, trumpinys „Temporal Logic of Actions“, yra kalba, skirta kompiuterio programos specifikacijoms rašyti. Puiku TLA+ yra tai, kad ji leidžia atlikti išsamų programinės įrangos testavimą ir patikrinimą prieš ją paskelbiant.
Tiek modeliu pagrįstas dizainas, tiek TLA+ jau pasiteisino. Esterelių technologijos, programinės įrangos kūrimo įmonė, naudoja modeliu pagrįstą dizainą, kad sukurtų saugai svarbią programinę įrangą, o TLA+ naudojo, pavyzdžiui, „Microsoft“ ištaisys galimą katastrofišką „Xbox“ klaidą, o Europos kosmoso agentūra perrašys kodus zondui, kuris nusileido ant kometa.
Programuotojai labai vertina kodo rašymo procesą. Daugelį jų tiesiog suintrigavo kodų rašymo procesas. Todėl yra iššūkis priversti kai kuriuos programuotojus priimti tokius metodus kaip modeliu pagrįstas dizainas ir TLA+. Šie metodai dažnai suvokiami kaip griežtai akademiniai, neturintys realaus gyvybingumo. Tačiau požiūris turi būti pakeistas kuo anksčiau.
Paskutinės mintys
Programinė įranga vis dažniau naudojama programose, kurioms reikia integruotų saugos priemonių. Geresni programinės įrangos kūrimo metodai turi būti įdiegti visur, nes tokios programos yra gyvybiškai svarbios mūsų gyvenime.
Tokie procesai kaip automatizavimas šiais laikais labai priklauso nuo programinės įrangos, tačiau viena klaida kodo eilutėje gali sukelti didelių nesėkmių, kaip rodo aukščiau pateikti atvejai.
![Kodavimas](/f/0e40b94bd4b6479685cfa47758b960ac.jpg)
Dabar įsivaizduokite kažką panašaus į dirbtinį intelektą (AI), kuris įtrauktas į šias programas. AI yra pakankamai baisu savaime be programinės įrangos gedimų. Įtraukite į mišinį klaidų ir nežinote, kas gali atsitikti.
Tačiau čia yra sidabrinis pamušalas. Šiek tiek padirbėję ir su naujais įrankiais galime sukurti geresnę programinę įrangą ir dirbtinį intelektą, sukūrę ją patikimiau ir išbandę ją iki galo.
Tikėkimės, kad susirūpinusios institucijos rimtai įvertins šią svarbią problemą, kad galėtume išnaudoti visas programinės įrangos galimybes, bet tik kurdami saugesnę ir išmanesnę ateitį.