Cum să evitați problemele software
Miscellanea / / November 29, 2021
În această eră digitală, trebuie să fi auzit despre giganții rețelelor sociale precum Facebook și Twitter și despre platforme de comerț electronic precum Alibaba și Amazon. Aceste site-uri online se bazează pe diverse pachete software pentru funcționarea lor. Aceste programe au schimbat, sincer, modul în care lucrăm, gândim și trăim.
În plus, multe dispozitive care mai devreme erau exclusiv de natură mecanică, sunt acum controlate de software. De exemplu, termostatele au fost cândva dispozitive electromecanice. Cu toate acestea, acum se bazează foarte mult pe software pentru funcționare.
In orice caz, erori de software poate fi destul de problematică, mai ales cu dependența noastră crescută de ele pentru activitățile zilnice. De fapt, au existat destule ocazii în care software-ul nu a îndeplinit scopul propus, ducând la rezultate neplăcute.
În acest articol, vorbim despre 4 ocazii în care performanța software-ului și-a ratat în mare măsură atenția și despre cum să evitați astfel de probleme de software.
1. Întreruperea 911 în mai multe state din SUA
911 este un serviciu critic, care permite persoanelor să contacteze personalul de urgență ori de câte ori este nevoie. Uneori, contactul cu dispecerii de urgență prin 911 poate face literalmente diferența dintre viață și moarte.
Prin urmare, a fost destul de dezastru când pe 9 aprilie 2014, Dirijarea apelurilor 911 a eșuat în șapte state ale SUA, inclusiv California, Florida, Minnesota, Carolina de Nord, Pennsylvania, Carolina de Sud și Washington.
Această întrerupere a fost cauzată de o eroare de codare prevenibilă, care a avut loc la un centru de gestionare a apelurilor de urgență din Colorado, deținut de Intrado.
2. Legare la sol a flotei United Airlines
În iulie 2015, United Airlines a fost obligată la pământ întreaga sa flotă a aeronavei din cauza unei erori software. Acest lucru a afectat peste 4.900 de zboruri la nivel global și a lăsat mulți pasageri blocați pe aeroporturi și destul de evident frustrați.
Probabil că a existat și un impact economic, deoarece compania aeriană ar fi trebuit să despăgubească mulți pasageri pentru inconvenient. Au existat, de asemenea, probabil câteva întâlniri de afaceri importante care au fost încurcate din cauza legăturii.
3. Defecțiune a pedalei de accelerație Toyota Camry
În septembrie 2007, Jean Bookout călătorea pe autostrada interstatală 69 din Oklahoma cu pasagera Barbara Schwarz, când a întâmpinat dificultăți. controlându-și Toyota Camry.
Ea a încercat să-și ridice picioarele de pe accelerație, dar mașina a continuat să accelereze. Pedala de frână nu a reușit să oprească mașina și a fost forțată să folosească frâna de urgență.
Din păcate, acest lucru a făcut ca mașina să treacă într-un terasament. Ca urmare, Schwarz a murit, iar Bookout a fost spitalizat timp de cinci luni din cauza rănilor grave.
S-a speculat că accidentul s-a produs din cauza mai multor deficiențe de codare care au dus la prăbușirea unei sarcini în procesorul Camry. Acest CPU ar controla un număr neobișnuit de mare de funcții, inclusiv aprinderea, controlul accelerației și controlul vitezei de croazieră.
Codul Toyota a devenit o mizerie încurcată după câțiva ani de coduri noi îngrămădite pe cele vechi. Acesta este de obicei denumit „cod de spaghete”.
Cu toate acestea, accidentul lui Bookout a scos în lumină această problemă și a evidențiat defectele Toyota în procesul lor software. Sa constatat chiar că existau mai mult de 10 milioane de moduri pentru pot avea loc o accelerare nedorită, pe baza modului în care a fost structurat codul Toyota.
Eroare a termostatului Nest
Nest este o companie, deținut de Alphabet, care face termostate inteligente. Aceste termostate sunt destul de ingenioase și permit utilizatorilor să controleze temperatura din casele lor de pe smartphone-urile lor.
Iarna trecută, termostate Nest a experimentat o eroare sub forma unei actualizări software defectuoase, care le-a cauzat descărcarea bateriilor. Din păcate, această eroare s-a produs în mijlocul iernii, lăsând temporar mai mulți utilizatori fără căldură. Acest lucru este cu siguranță ceva ce nu vrei să se întâmple în această perioadă a anului.
O scurtă analiză a problemelor software
Abordări precum designul bazat pe modele și TLA+ permit dezvoltatorilor să obțină o imagine de ansamblu mai mare a modului în care funcționează software-ul lor.
Brett Victor, un proeminent cercetător în domeniul computerelor, consideră că există o deconectare între programatori și problemele pe care încearcă să le rezolve cu coduri.
Din cauza acestei deconectări, devine dificil pentru programatori să-și imagineze ceea ce încearcă să introducă în coduri. Victor crede că acesta este unul dintre factorii care contribuie la faptul că software-ul este plin de erori.
Totuși, există speranță. Abordări precum design bazat pe model și TLA+ permite dezvoltatorilor să obțină o imagine de ansamblu mai mare a modului în care funcționează software-ul lor.
Designul bazat pe model, după cum sugerează și numele, permite dezvoltarea de software prin intermediul modelelor vizuale. TLA+, care este prescurtarea de la Temporal Logic of Actions, este un limbaj conceput pentru scrierea specificațiilor unui program de calculator. Ceea ce este grozav la TLA+ este că permite testarea și verificarea exhaustivă a software-ului înainte ca acesta să fie mediatizat.
Atât designul bazat pe model, cât și TLA+ și-au dovedit deja sarea. Tehnologii Esterel, o firmă de dezvoltare de software, folosește design bazat pe model pentru a construi software critic pentru siguranță, în timp ce TLA+ a fost folosit de oameni precum Microsoft să repare o posibilă eroare catastrofală Xbox și de către Agenția Spațială Europeană să rescrie codurile pentru o sondă care a aterizat pe un cometă.
Procesul de scriere a codului este apreciat de programatori. Mulți dintre ei sunt pur și simplu intrigați de procesul de scriere a codurilor. Prin urmare, este o provocare ca unii programatori să accepte abordări precum proiectarea bazată pe model și TLA+. Aceste abordări sunt adesea percepute ca fiind strict academice, fără viabilitate în lumea reală. Totuși, o schimbare de viziune trebuie să vină cât mai curând posibil.
Gânduri finale
Software-ul este din ce în ce mai utilizat în aplicații care necesită măsuri de siguranță încorporate. Metode mai bune de proiectare a software-ului trebuie introduse peste tot, deoarece astfel de aplicații sunt vitale în viața noastră.
Procesele precum automatizarea se bazează în mare măsură pe software în zilele noastre, dar o eroare într-o linie de cod ne poate duce la eșecuri majore, așa cum arată cazurile de mai sus.
Acum, imaginați-vă că ceva de genul Inteligenței Artificiale (AI) este încorporat în aceste aplicații. AI este destul de înfricoșător de la sine fără erori software. Adăugați erori în amestec și nu se știe ce s-ar putea întâmpla.
Cu toate acestea, există o căptușeală de argint aici. Cu puțină muncă și câteva instrumente noi, putem face software și IA mai bune, proiectându-l mai bine și testându-l pe suporturile sale.
Să sperăm că această problemă critică este luată în serios de autoritățile în cauză, astfel încât să putem folosi software-ul la întregul său potențial, dar numai pentru a construi un viitor mai sigur și mai inteligent.