I denne digitale æra skal du have hørt om sociale mediegiganter som Facebook og Twitter og e-handelsplatforme som Alibaba og Amazon. Disse online-websteder er afhængige af forskellige softwarepakker til deres drift. Disse programmer har helt ærligt ændret den måde, vi arbejder, tænker og lever på.
Desuden styres mange enheder, der tidligere udelukkende var af mekanisk natur, nu af software. For eksempel var termostater engang elektromekaniske enheder. Men de er nu stærkt afhængige af software til drift.
Softwarefejl kan dog være ret problematiske, især med vores øgede afhængighed af dem til daglige aktiviteter. Faktisk har der faktisk været en del lejligheder, hvor software ikke har nået det tilsigtede formål, hvilket har ført til ubehagelige resultater.
I denne artikel taler vi om 4 lejligheder, hvor softwareydeevnen har savnet sit præg, og hvordan man undgår sådanne softwareproblemer.
Læs også: 10 grunde til, at du ikke skal have travlt med at købe en iPhone X
1. US Multi-State 911 udfald

911 er en kritisk tjeneste, som gør det muligt for enkeltpersoner at kontakte beredskabspersonale, når det er nødvendigt. Til tider kan det at komme i kontakt med alarmcentralerne via 911 bogstaveligt talt gøre forskellen mellem liv og død.
Derfor var det noget af en katastrofe, da 911-opkaldsdirigeringen den 9. april 2014 mislykkedes i syv stater i USA, inklusive Californien, Florida, Minnesota, North Carolina, Pennsylvania, South Carolina og Washington.
Denne fejl var forårsaget af en kodefejl, der kunne forhindres, og som opstod på et alarmcentral i Colorado, som var ejet af Intrado.
2. Grundstødning af United Airlines’ flåde

I juli 2015 blev United Airlines tvunget til at sætte hele sin flåde af fly på jorden på grund af en softwarefejl. Dette påvirkede mere end 4.900 flyvninger globalt og efterlod mange passagerer strandet i lufthavne og helt åbenlyst frustrerede.
Der var sandsynligvis også en økonomisk indvirkning, da flyselskabet ville have skullet kompensere mange passagerer for ulejligheden. Der var formentlig også flere vigtige forretningsmøder, der blev forvirret på grund af grundstødningen.
3. Fejl i Toyota Camry-gaspedal

I september 2007 rejste Jean Bookout på Interstate Highway 69 i Oklahoma med passageren Barbara Schwarz, da hun løb ind i vanskeligheder med at kontrollere sin Toyota Camry.
Hun forsøgte at løfte sine fødder fra gashåndtaget, men bilen fortsatte med at accelerere. Bremsepedalen kunne ikke stoppe bilen, og hun blev tvunget til at bruge sin nødbremse.
Desværre fik det bilen til at løbe ind i en dæmning. Schwarz døde som følge heraf, og Bookout blev indlagt i fem måneder på grund af kritiske kvæstelser.

Repræsentativt billede
Det blev spekuleret i, at ulykken skete på grund af adskillige kodningsmangler, der førte til nedbrud af en opgave i Camrys CPU. Denne CPU ville styre et uforholdsmæssigt stort antal funktioner, herunder tænding, gasregulering og fartpilot.
Toyotas kode blev et sammenfiltret rod efter flere år med nye koder, der blev stablet på gamle. Dette omtales normalt som ‘spaghettikode’.
Spaghettikode er unødigt kompleks og gør det næsten umuligt at finde fejl. Desuden havde Toyota også overtrådt flere sikkerhedsregler i deres kodning. Det skal bemærkes, at dette ikke var et isoleret tilfælde af utilsigtet acceleration i en Toyota.
Bookouts ulykke bragte dog dette problem frem i lyset og fremhævede Toyotas fejl i deres softwareproces. Det blev endda fundet, at der var mere end 10 millioner måder, hvorpå uønsket acceleration potentielt kunne forekomme, baseret på den måde, Toyotas kode var struktureret på.
Nest-termostatfejl

Nest er et firma, ejet af Alphabet, der laver smarte termostater. Disse termostater er ret smarte og giver brugerne mulighed for at styre temperaturen i deres hjem fra deres smartphones.
Sidste vinter oplevede Nest-termostater en fejl i form af en defekt softwareopdatering, som fik deres batterier til at dræne. Desværre skete denne fejl midt om vinteren, hvilket efterlod flere brugere uden varme midlertidigt. Dette er bestemt noget, du ikke ønsker skal ske på denne tid af året.
Se Næste: Selfies er ikke så trivielle, som sociale medier har gjort dem for sent
En kort analyse af softwareproblemer
Tilgange som modelbaseret design og TLA+ giver udviklere mulighed for at få et større overblik over, hvordan deres software fungerer.
Brett Victor, en fremtrædende computerforsker, regner med, at der er en afbrydelse mellem programmører og de problemer, de forsøger at løse med koder.
På grund af denne afbrydelse bliver det svært for programmører at forestille sig, hvad de forsøger at sætte i koder. Victor mener, at dette er en af de medvirkende årsager til, at software er fyldt med fejl.
Der er dog håb. Tilgange som modelbaseret design og TLA+ giver udviklere mulighed for at få et større overblik over, hvordan deres software fungerer.

Modelbaseret design tillader, som navnet antyder, udvikling af software via visuelle modeller. TLA+, som står for Temporal Logic of Actions, er et sprog designet til at skrive specifikationerne for et computerprogram. Det fantastiske ved TLA+ er, at det tillader udtømmende test og verifikation af software, før det bliver offentliggjort.
Både modelbaseret design og TLA+ har allerede bevist deres salt. Esterel technologies, et softwareudviklingsfirma, bruger modelbaseret design til at bygge sikkerhedskritisk software, mens TLA+ er blevet brugt af Microsoft til at rette en mulig katastrofal Xbox-fejl og af European Space Agency til at omskrive koder til en sonde, der landede på en komet.
Processen med at skrive kode er højt værdsat af programmører. Mange af dem er ganske enkelt fascineret af processen med at skrive koder. Det er derfor en udfordring at få nogle programmører til at acceptere tilgange som modelbaseret design og TLA+. Disse tilgange opfattes ofte som strengt akademiske uden levedygtighed i den virkelige verden. Et synspunkt skal dog komme så tidligt som muligt.
Læs også: Vi skubber vores børn mod blindhed
Afsluttende tanker
Software bliver i stigende grad brugt i applikationer, der kræver indbyggede sikkerhedsforanstaltninger. Bedre metoder til at designe software skal introduceres over hele linjen, da sådanne applikationer er afgørende i vores liv.
Processer som automatisering er stærkt afhængige af software i disse dage, men en fejl i en kodelinje kan føre os til store tilbageslag, som ovenstående tilfælde viser.

Forestil dig nu noget som Artificial Intelligence (AI) indarbejdet i disse applikationer. AI er skræmmende nok alene uden softwarefejl. Tilføj fejl i blandingen, og der er ingen at sige, hvad der kunne ske.
Der er dog en sølvbelægning her. Med lidt arbejde og nogle nye værktøjer kan vi lave bedre software og AI ved at designe det mere solidt og teste det til sine studs.
Lad os håbe, at dette kritiske problem bliver taget alvorligt af de berørte myndigheder, så vi kan bruge software til sit fulde potentiale, men kun til at opbygge en sikrere og smartere fremtid.
Se Næste: Kunstig intelligens: Typer og den fremtid, det har for mennesker
Støt vores arbejde ❤️
Hvis du kunne lide denne artikel, kan du overveje at give drikkepenge for at hjælpe os med fortsat at udgive kvalitetsindhold.




















