Jak se vyhnout problémům se softwarem
Různé / / November 29, 2021
V této digitální éře jste určitě slyšeli o gigantech sociálních médií, jako jsou Facebook a Twitter, a o platformách elektronického obchodu, jako jsou Alibaba a Amazon. Tyto online webové stránky se pro svůj provoz spoléhají na různé softwarové balíčky. Tyto programy zcela upřímně změnily způsob, jakým pracujeme, myslíme a žijeme.
Kromě toho mnoho zařízení, která byla dříve výhradně mechanické povahy, je nyní řízeno softwarem. Například termostaty byly kdysi elektromechanická zařízení. Nyní se však při provozu silně spoléhají na software.
Nicméně, softwarové chyby může být docela problematické, zvláště když na ně při každodenních činnostech více spoléháme. Ve skutečnosti se skutečně vyskytlo několik případů, kdy software nesplnil svůj zamýšlený účel, což vedlo k nepříjemným výsledkům.
V tomto článku mluvíme o 4 příležitostech, kdy výkon softwaru výrazně minul svůj cíl, a jak se takovým problémům se softwarem vyhnout.
1. Výpadek 911 více států v USA
911 je kritická služba, která umožňuje jednotlivcům kontaktovat pohotovostní personál, kdykoli je to potřeba. Někdy může kontakt s dispečery na tísňové linky přes 911 doslova znamenat rozdíl mezi životem a smrtí.
Proto byla docela 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é se dalo předejít, ke které došlo v centru pro řízení tísňového volání v Coloradu, které vlastnila společnost Intrado.
2. Uzemnění flotily United Airlines
V červenci 2015 byla United Airlines nucena uzemnit celou svou flotilu letadel kvůli závadě softwaru. To ovlivnilo více než 4 900 letů po celém světě a mnoho cestujících zůstalo na letištích uvězněno a zcela zjevně frustrováni.
Pravděpodobně to mělo i ekonomický dopad, protože letecká společnost by musela mnoho cestujících kompenzovat za nepříjemnosti. Pravděpodobně se také konalo několik důležitých obchodních schůzek, které byly zmařeny kvůli uzemnění.
3. Porucha pedálu akcelerátoru Toyota Camry
V září 2007 cestovala Jean Bookout po Interstate Highway 69 v Oklahomě s cestující Barbarou Schwarz, když se dostala do potíží. ovládat její Toyotu Camry.
Pokusila se zvednout nohy z plynu, ale auto dál zrychlovalo. Brzdový pedál nedokázal vůz zastavit a byla nucena použít nouzovou brzdu.
To bohužel poslalo auto do nábřeží. Schwarz v důsledku toho zemřel a Bookout byl kvůli vážným zraněním hospitalizován na pět měsíců.
Spekulovalo se, že k nehodě došlo kvůli několika chybám v kódování, které vedly ke zhroucení úlohy v CPU Camry. Tento CPU by řídil nepřiměřeně velké množství funkcí, včetně zapalování, ovládání plynu a tempomatu.
Kód Toyoty se stal zamotaným nepořádkem po několika letech, kdy se nové kódy hromadily na staré. Obvykle se to nazývá „kód špaget“.
Bookoutova nehoda však tento problém vynesla na světlo a upozornila na chyby Toyoty 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í, založený na způsobu, jakým byl strukturován kód Toyoty.
Selhání termostatu Nest
Nest je společnost, vlastněná společností Alphabet, to dělá chytré termostaty. Tyto termostaty jsou docela šikovné a umožňují uživatelům ovládat teplotu ve svých domovech ze svých chytrých telefonů.
Minulou zimu termostaty Nest zažil závadu ve formě chybné aktualizace softwaru, která způsobila vybití jejich baterií. Bohužel se tato chyba stala uprostřed zimy a několik uživatelů zůstalo dočasně bez tepla. To je rozhodně něco, co nechcete, aby se stalo v tomto ročním období.
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, prominentní počítačový výzkumník, se domnívá, ž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 software je plný chyb.
Existuje však naděje. Přístupy jako např design založený na modelu a TLA+ umožňují vývojářům získat větší přehled o tom, jak jejich software funguje.
Model-based design, 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 Actions, je jazyk určený pro psaní specifikací počítačového programu. Na TLA+ je skvělé, že umožňuje důkladné testování a ověřování softwaru před jeho zveřejněním.
Jak design založený na modelu, tak TLA+ se již osvědčily. Esterel technologie, společnost zabývající se vývojem softwaru, používá modelový návrh k vytvoření softwaru kritického pro bezpečnost, zatímco TLA+ používají Microsoft opraví možnou katastrofickou chybu Xboxu a Evropská vesmírná agentura přepíše kódy pro sondu, která přistála na kometa.
Proces psaní kódu si programátoři velmi váží. Mnoho z nich je jednoduše fascinováno 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. Změna pohledu však musí přijít co nejdříve.
Závěrečné myšlenky
Software se stále více používá v aplikacích, které vyžadují vestavěná bezpečnostní opatření. Lepší metody navrhování softwaru musí být zavedeny plošně, protože takové aplikace jsou v našich životech životně důležité.
Procesy jako automatizace v dnešní době silně spoléhají na software, ale jedna chyba v řádku kódu nás může vést k velkým neúspěchům, jak ukazují výše uvedené případy.
Nyní si představte něco jako umělou inteligenci (AI) začleněnou do těchto aplikací. AI je sám o sobě dost děsivý bez softwarových závad. Přidejte do mixu chyby a nedá se říct, co by se mohlo stát.
Zde je však stříbro. S trochou práce a několika novými nástroji můžeme vytvořit lepší software a umělou inteligenci tím, že je navrhneme zdravěji a otestujeme je.
Doufejme, že tento kritický problém budou dotčené úřady brát vážně, abychom mohli využívat software naplno, ale pouze k vybudování bezpečnější a chytřejší budoucnosti.