Softwareproblemen vermijden

In dit digitale tijdperk heb je vast wel eens gehoord van socialemediagiganten zoals Facebook en Twitter en e-commerceplatforms zoals Alibaba en Amazon. Deze online websites zijn voor hun werking afhankelijk van verschillende softwarepakketten. Deze programma’s hebben eerlijk gezegd de manier waarop we werken, denken en leven veranderd.

Bovendien worden veel apparaten die voorheen alleen mechanisch van aard waren, nu door software bestuurd. Zo waren thermostaten ooit elektromechanische apparaten. Ze zijn nu echter sterk afhankelijk van software voor gebruik.

Softwarefouten kunnen echter behoorlijk problematisch zijn, vooral omdat we er steeds meer op vertrouwen voor dagelijkse activiteiten. Er zijn zelfs nogal wat gevallen geweest waarin software niet aan het beoogde doel beantwoordde, wat tot onaangename resultaten leidde.

In dit artikel hebben we het over 4 gelegenheden waarbij de softwareprestaties hun doel hebben gemist en hoe dergelijke softwareproblemen kunnen worden voorkomen.

Lees ook: 10 redenen waarom je geen haast zou moeten hebben om een ​​iPhone X te kopen

1. US Multi-State 911 uitval

Hulpdiensten

911 is een kritieke dienst, waarmee individuen contact kunnen opnemen met hulpdiensten wanneer dat nodig is. Contact opnemen met de alarmcentrale via 911 kan soms letterlijk het verschil maken tussen leven en dood.

Daarom was het een behoorlijke ramp toen op 9 april 2014 de doorschakeling van 911 mislukte in zeven staten van de VS, waaronder Californië, Florida, Minnesota, North Carolina, Pennsylvania, South Carolina en Washington.

Deze storing werd veroorzaakt door een vermijdbare codeerfout, die optrad in een beheercentrum voor noodoproepen in Colorado dat eigendom was van Intrado.

2. Aan de grond houden van de vloot van United Airlines

United Airlines

In juli 2015 moest United Airlines zijn hele vloot vliegtuigen aan de grond houden vanwege een softwareprobleem. Dit had gevolgen voor meer dan 4.900 vluchten wereldwijd en zorgde ervoor dat veel passagiers op luchthavens strandden en overduidelijk gefrustreerd waren.

Waarschijnlijk was er ook een economische impact, aangezien de luchtvaartmaatschappij veel passagiers had moeten compenseren voor het ongemak. Er waren waarschijnlijk ook een aantal belangrijke zakelijke bijeenkomsten die werden verprutst vanwege de aarding.

3. Toyota Camry-gaspedaal defect

verwarde puinhoop
Naarmate er in de loop der jaren steeds meer functies aan software worden toegevoegd, kan het er zo uit gaan zien.

In september 2007 reisde Jean Bookout op de Interstate Highway 69 in Oklahoma met passagier Barbara Schwarz, toen ze problemen kreeg met het besturen van haar Toyota Camry.

Ze probeerde haar voeten van het gaspedaal te halen, maar de auto bleef gas geven. Het rempedaal kon de auto niet stoppen en ze moest haar noodrem gebruiken.

In relatie :  Hoe tol en snelwegen te vermijden met Apple Maps op iPhone

Helaas kwam de auto hierdoor in een talud terecht. Schwarz stierf als gevolg hiervan en Bookout werd vijf maanden in het ziekenhuis opgenomen vanwege kritieke verwondingen.

Auto ongeluk

Representatief beeld

Er werd gespeculeerd dat het ongeval plaatsvond als gevolg van verschillende coderingsfouten die leidden tot het crashen van een taak in de Camry’s CPU. Deze CPU zou een buitensporig groot aantal functies aansturen, waaronder ontsteking, gashendel en cruisecontrol.

Toyota’s code werd een warboel na een aantal jaren van nieuwe codes die op oude werden gestapeld. Dit wordt meestal ‘spaghetticode’ genoemd.

Spaghetticode is onnodig complex en maakt het bijna onmogelijk om fouten te vinden. Bovendien had Toyota in hun codering ook verschillende veiligheidsregels overtreden. Opgemerkt moet worden dat dit geen alleenstaand geval was van onbedoelde acceleratie in een Toyota.

Het ongeval van Bookout bracht dit probleem echter aan het licht en bracht Toyota’s gebreken in hun softwareproces aan het licht. Er werd zelfs ontdekt dat er meer dan 10 miljoen manieren waren waarop ongewenste versnelling mogelijk zou kunnen plaatsvinden, gebaseerd op de manier waarop Toyota’s code was gestructureerd.

Nest Thermostat-fout

Nest_Thermostat_1
Bron: Flickr

Nest is een bedrijf, eigendom van Alphabet, dat slimme thermostaten maakt. Deze thermostaten zijn heel handig en stellen gebruikers in staat om de temperatuur in hun huis vanaf hun smartphone te regelen.

Afgelopen winter ondervonden Nest-thermostaten een storing in de vorm van een defecte software-update, waardoor hun batterijen leeg raakten. Helaas gebeurde deze fout midden in de winter, waardoor verschillende gebruikers tijdelijk zonder verwarming zaten. Dit wil je absoluut niet in deze tijd van het jaar.

Zie volgende: Selfies zijn niet zo triviaal als sociale media ze de laatste tijd hebben gemaakt

Een korte analyse van softwareproblemen

Benaderingen zoals modelgebaseerd ontwerp en TLA+ stellen ontwikkelaars in staat een groter overzicht te krijgen van hoe hun software werkt.

Brett Victor, een vooraanstaand computeronderzoeker, denkt dat er een discrepantie is tussen programmeurs en de problemen die ze met codes proberen op te lossen.

Door deze verbroken verbinding wordt het voor programmeurs moeilijk om zich voor te stellen wat ze in codes proberen te zetten. Victor denkt dat dit een van de factoren is die ertoe bijdraagt ​​dat software vol bugs zit.

Er is echter hoop. Benaderingen zoals modelgebaseerd ontwerp en TLA+ stellen ontwikkelaars in staat een groter overzicht te krijgen van hoe hun software werkt.

Bug testen

Modelgebaseerd ontwerp maakt, zoals de naam al doet vermoeden, de ontwikkeling van software via visuele modellen mogelijk. TLA+, wat staat voor Temporal Logic of Actions, is een taal die is ontworpen voor het schrijven van de specificaties van een computerprogramma. Het mooie van TLA+ is dat het uitgebreide tests en verificatie van software mogelijk maakt voordat het wordt gepubliceerd.

In relatie :  Webtop gebruiken op de Droid Bionic [Videos]

Zowel modelgebaseerd ontwerp als TLA+ hebben hun zout al bewezen. Esterel Technologies, een softwareontwikkelingsbedrijf, gebruikt modelgebaseerd ontwerp om veiligheidskritieke software te bouwen, terwijl TLA+ door onder meer Microsoft is gebruikt om een ​​mogelijke catastrofale Xbox-fout te herstellen, en door de European Space Agency om codes te herschrijven voor een sonde die landde op een komeet.

Het proces van het schrijven van code staat hoog in het vaandel bij programmeurs. Velen van hen zijn simpelweg geïntrigeerd door het proces van het schrijven van codes. Het is daarom een ​​uitdaging om sommige programmeurs zover te krijgen dat ze benaderingen als modelgebaseerd ontwerpen en TLA+ accepteren. Deze benaderingen worden vaak gezien als strikt academisch zonder levensvatbaarheid in de echte wereld. Een verandering van mening moet echter zo vroeg mogelijk komen.

Lees ook: We duwen onze kinderen richting blindheid

Laatste gedachten

Software wordt steeds vaker gebruikt in toepassingen die ingebouwde veiligheidsmaatregelen vereisen. Er moeten over de hele linie betere methoden worden geïntroduceerd om software te ontwerpen, aangezien dergelijke toepassingen van vitaal belang zijn in ons leven.

Processen zoals automatisering zijn tegenwoordig sterk afhankelijk van software, maar één fout in een coderegel kan ons tot grote tegenslagen leiden, zoals de bovenstaande voorbeelden laten zien.

codering

Stel je nu voor dat zoiets als kunstmatige intelligentie (AI) in deze toepassingen wordt opgenomen. AI is op zichzelf al eng genoeg zonder softwareproblemen. Voeg bugs toe aan de mix en het is niet te voorspellen wat er kan gebeuren.

Er is hier echter een zilveren randje. Met een beetje werk en wat nieuwe tools kunnen we betere software en AI maken door het degelijker te ontwerpen en tot in de puntjes te testen.

Laten we hopen dat dit kritieke probleem serieus wordt genomen door de betrokken autoriteiten, zodat we software ten volle kunnen benutten, maar alleen om een ​​veiligere en slimmere toekomst op te bouwen.

Zie volgende: Kunstmatige intelligentie: typen en de toekomst die het voor mensen in petto heeft

Moyens I/O Staff heeft je gemotiveerd door je advies te geven over technologie, persoonlijke ontwikkeling, levensstijl en strategieën die je zullen helpen.