Software čtyřikrát nás převrhl: Jak se tomu vyhneme?

V této digitální éře jste museli slyšet o obřích sociálních médií, jako jsou Facebook a Twitter a platformy elektronického obchodování, jako jsou Alibaba a Amazon. Tyto internetové stránky se při své činnosti spoléhají na různé softwarové balíčky. Tyto programy upřímně změnily způsob, jakým pracujeme, přemýšlíme a žijeme.




Kromě toho, mnoho zařízení, která dříve měla čistě mechanický charakter, je nyní ovládáno softwarem. Například termostaty byly kdysi elektromechanická zařízení. Nyní se však na provoz spoléhají na software.

Nicméně, softwarové chyby může být docela problematické, zejména když se na ně stále více spoléháme při každodenních činnostech. Ve skutečnosti bylo skutečně několik případů, kdy software nedosáhl zamýšleného účelu, což vedlo k nepříjemným výsledkům.



V tomto článku hovoříme o 4 příležitostech, kdy výkonnost softwaru výrazně chyběla jeho známka a jak se těmto problémům softwaru vyhnout.

Přečtěte si také: 10 důvodů, proč byste neměli spěchat, abyste si koupili iPhone X



1. Výpadek USA pro více států 911

911 je kritická služba, která umožňuje jednotlivcům v případě potřeby kontaktovat pohotovostní personál. Občas může být kontakt s nouzovými dispečery pomocí 911 doslova rozdílem mezi životem a smrtí.

Byla to tedy katastrofa, když 9. dubna 2014 Směrování volání 911 se nezdařilo v sedmi státech USA, včetně Kalifornie, Floridy, Minnesoty, Severní Karolíny, Pensylvánie, Jižní Karolíny a Washingtonu.

Tento výpadek byl způsoben chybou kódování, které bylo možné zabránit, ke kterému došlo v centru správy nouzového volání v Coloradu, které bylo vlastněno společností Intrado.





2. Uzemnění flotily United Airlines

V červenci 2015 byla společnost United Airlines nucena uzemnit celou flotilu letadel kvůli softwarové závadě. To ovlivnilo více než 4 900 letů po celém světě a mnoho cestujících uvízlo na letištích a zcela zjevně frustrovalo.

Pravděpodobně to mělo také ekonomický dopad, protože letecká společnost by musela kompenzovat nepříjemnosti mnoha cestujícím. Pravděpodobně také došlo k několika důležitým obchodním jednáním, která byla kvůli uzemnění zmatená.





3. Porucha pedálu Toyota Camry Accelerator

Jak se v průběhu let přidává do softwaru stále více funkcí, může to vypadat takto.

V září 2007 cestovala Jean Bookout na Interstate Highway 69 v Oklahomě se spolujezdkou Barbarou Schwarz, když narazila na potíže ovládání její Toyota Camry.

Pokusila se zvednout nohy z plynového pedálu, ale auto pokračovalo v akceleraci. Brzdový pedál nezastavil auto a ona byla nucena používat její nouzovou brzdu.

To bohužel poslalo auto do nábřeží. Schwarz v důsledku toho zemřel a Bookout byl hospitalizován po dobu pěti měsíců kvůli vážným zraněním.

Reprezentativní obrázek

Bylo spekulováno, že k nehodě došlo v důsledku několika nedostatků v kódování, které vedly ke zhroucení úlohy v Camryově CPU. Tento procesor by ovládal nepřiměřeně velké množství funkcí, včetně zapalování, ovládání škrticí klapky a tempomatu.

Toyota kód se stal spletitou nepořádkem po několika letech, kdy byly nové kódy nashromážděny na starých. Toto se obvykle označuje jako „špagetový kód“.

Špagetový kód je zbytečně složitý a je téměř nemožné najít chyby. Kromě toho Toyota při jejich kódování také porušila několik bezpečnostních pravidel. Je třeba poznamenat, že to nebylo samostatný případ neúmyslného zrychlení v Toyota.

Nehoda Bookoutu však přinesla tento problém na světlo a upozornila na nedostatky společnosti Toyota v jejich softwarovém procesu. Bylo dokonce zjištěno, že existuje více než 10 milionů způsobů může dojít k nežádoucímu zrychlení, na základě struktury struktury Toyota.

Porucha termostatu Nest

Zdroj: Flickr

Nest je společnost, vlastněné abecedou, to dělá inteligentní termostaty. Tyto termostaty jsou celkem šikovné a umožňují uživatelům ovládat teplotu ve svých domovech ze svých chytrých telefonů.

Poslední zimu, termostaty Nest zažil závadu ve formě vadné aktualizace softwaru, která způsobila vybití baterií. Bohužel k této chybě došlo uprostřed zimy a několik uživatelů zůstalo dočasně bez tepla. To je určitě něco, co v této roční době nechcete.

Viz další: Selfies nejsou tak triviální, jak je sociální média udělala pozdě



Stručná analýza softwarových problémů

Přístupy, jako je návrh založený na modelu a TLA +, umožňují vývojářům získat větší přehled o tom, jak jejich software funguje.

Brett Victor, přední počítačový výzkumník, počítá, že existuje odpojení mezi programátory a problémy, které se snaží vyřešit pomocí kódů.

Kvůli tomuto odpojení je pro programátory obtížné představit si, co se snaží vložit do kódů. Victor si myslí, že je to jeden z faktorů, které přispívají k tomu, že se software šíří s chybami.

Existuje však naděje. Přístupy jako design založený na modelu a TLA + umožňují vývojářům získat větší přehled o tom, jak jejich software funguje.

Návrh na základě modelu, jak název napovídá, umožňuje vývoj softwaru prostřednictvím vizuálních modelů. TLA +, což je zkratka pro Temporal Logic of Action, je jazyk určený pro psaní specifikací počítačového programu. Co je skvělé na TLA + je to, že umožňuje vyčerpávající testování a ověření softwaru před tím, než je zveřejněno.

Obě modelové konstrukce a TLA + již prokázaly svou sůl. Esterelské technologie, společnost zabývající se vývojem softwaru, používá design založený na konstrukci softwaru kritického z hlediska bezpečnosti, zatímco společnost TLA + používá společnost Microsoft k opravě možné katastrofické chyby Xboxu a Evropská kosmická agentura přepisuje kódy pro sondu, která přistála na kometa.

Proces psaní kódu si programátoři váží. Mnoho z nich je docela jednoduše zaujato procesem psaní kódů. Je proto výzvou přimět některé programátory, aby akceptovali přístupy, jako je návrh založený na modelu a TLA +. Tyto přístupy jsou často vnímány jako přísně akademické bez reálné životaschopnosti. Ke změně pohledu však musí dojít co nejdříve.

Přečtěte si také: Prosazujeme naše děti k oslepnutí



Závěrečné myšlenky

Software se stále více používá v aplikacích, které vyžadují zabudovaná bezpečnostní opatření. Musí být zavedeny lepší metody navrhování softwaru, protože takové aplikace jsou v našem životě životně důležité.

Procesy, jako je automatizace, se dnes silně spoléhají na software, ale jedna chyba v řadě kódu nás může vést k velkým neúspěchům, jak ukazují výše uvedené příklady.

Nyní si představte něco jako Artificial Intelligence (AI) začleněné do těchto aplikací. AI je strašidelný sám o sobě bez softwarových závad. Přidejte do mixu chyby a nelze říci, co by se mohlo stát.

Zde je však stříbrná podšívka. S trochou práce a některými novými nástroji můžeme vylepšit software a umělou inteligenci tím, že jej navrhneme spolehlivěji a otestujeme jej na svorníky.

Doufejme, že dotčené úřady berou tuto kritickou otázku vážně, abychom mohli software využívat v plném rozsahu, ale pouze k vybudování bezpečnější a chytřejší budoucnosti.

Viz další: Umělá inteligence: Typy a budoucnost, kterou pro lidi platí