Come evitare problemi con il software
Varie / / November 29, 2021
In questa era digitale, devi aver sentito parlare di giganti dei social media come Facebook e Twitter e piattaforme di e-commerce come Alibaba e Amazon. Questi siti Web online si basano su vari pacchetti software per il loro funzionamento. Questi programmi hanno francamente cambiato il modo in cui lavoriamo, pensiamo e viviamo.
Inoltre, molti dispositivi che prima erano di natura esclusivamente meccanica, ora sono controllati da software. Ad esempio, i termostati una volta erano dispositivi elettromeccanici. Tuttavia, ora fanno molto affidamento sul software per il funzionamento.
Però, bug del software può essere piuttosto problematico, specialmente con la nostra maggiore dipendenza da loro per le attività quotidiane. In effetti, ci sono state alcune occasioni in cui il software non ha raggiunto lo scopo previsto, portando a risultati spiacevoli.
In questo articolo, parliamo di 4 occasioni in cui le prestazioni del software hanno ampiamente mancato il bersaglio e di come evitare tali problemi software.
1. Interruzione del servizio di emergenza multistato degli Stati Uniti
Il 911 è un servizio fondamentale, che consente alle persone di contattare il personale di emergenza ogni volta che è necessario. A volte, entrare in contatto con i soccorritori tramite il 911 può letteralmente fare la differenza tra la vita e la morte.
Pertanto, è stato un vero disastro quando il 9 aprile 2014, Instradamento delle chiamate al servizio di emergenza non riuscito in sette stati degli Stati Uniti, tra cui California, Florida, Minnesota, North Carolina, Pennsylvania, South Carolina e Washington.
Questa interruzione è stata causata da un errore di codifica evitabile, verificatosi in un centro di gestione delle chiamate di emergenza in Colorado di proprietà di Intrado.
2. Messa a terra della flotta di United Airlines
Nel luglio 2015, United Airlines è stata costretta a mettere a terra tutta la sua flotta di aeromobili a causa di un problema tecnico del software. Ciò ha interessato più di 4.900 voli in tutto il mondo e ha lasciato molti passeggeri bloccati negli aeroporti e ovviamente frustrati.
Probabilmente c'è stato anche un impatto economico poiché la compagnia aerea avrebbe dovuto risarcire molti passeggeri per il disagio. Probabilmente c'erano anche diversi importanti incontri d'affari che sono stati pasticciati a causa della messa a terra.
3. Malfunzionamento del pedale dell'acceleratore Toyota Camry
Nel settembre 2007, Jean Bookout stava viaggiando sulla Interstate Highway 69 in Oklahoma con il passeggero Barbara Schwarz, quando ha incontrato difficoltà controllando la sua Toyota Camry.
Ha tentato di sollevare i piedi dall'acceleratore, ma l'auto ha continuato ad accelerare. Il pedale del freno non è riuscito a fermare l'auto e lei è stata costretta a usare il freno di emergenza.
Sfortunatamente, questo ha mandato l'auto a sbandare in un terrapieno. Schwarz è morto di conseguenza e Bookout è stato ricoverato in ospedale per cinque mesi a causa di lesioni gravi.
È stato ipotizzato che l'incidente sia avvenuto a causa di diverse inadeguatezze di codifica che hanno portato al crash di un'attività nella CPU di Camry. Questa CPU controllerà un numero spropositato di funzioni, tra cui l'accensione, il controllo dell'acceleratore e il cruise control.
Il codice di Toyota è diventato un pasticcio intricato dopo diversi anni di nuovi codici accumulati su quelli vecchi. Questo è di solito indicato come 'codice spaghetti'.
Tuttavia, l'incidente di Bookout ha portato alla luce questo problema e ha evidenziato i difetti di Toyota nel processo software. È stato anche scoperto che c'erano più di 10 milioni di modi per accelerazione indesiderata che potrebbe verificarsi, in base al modo in cui era strutturato il codice Toyota.
Guasto al termostato Nest
Nest è un'azienda, di proprietà di Alphabet, che rende i termostati intelligenti. Questi termostati sono piuttosto eleganti e consentono agli utenti di controllare la temperatura nelle loro case dai loro smartphone.
Lo scorso inverno, i termostati Nest ha avuto un problema tecnico sotto forma di un aggiornamento software difettoso, che ha causato l'esaurimento delle batterie. Sfortunatamente, questo errore si è verificato in pieno inverno, lasciando temporaneamente diversi utenti senza riscaldamento. Questo è sicuramente qualcosa che non vuoi che accada in questo periodo dell'anno.
Una breve analisi dei problemi del software
Approcci come la progettazione basata su modelli e TLA+ consentono agli sviluppatori di ottenere una panoramica più ampia di come funziona il loro software.
Brett Victor, un eminente ricercatore di computer, ritiene che ci sia una disconnessione tra i programmatori e i problemi che cercano di risolvere con i codici.
A causa di questa disconnessione, diventa difficile per i programmatori immaginare cosa stanno cercando di inserire nei codici. Victor pensa che questo sia uno dei fattori che contribuiscono a rendere il software pieno di bug.
Tuttavia, c'è speranza. Approcci come progettazione basata su modello e TLA+ consentire agli sviluppatori di ottenere una panoramica più ampia di come funziona il loro software.
Il design basato su modelli, come suggerisce il nome, consente lo sviluppo di software tramite modelli visivi. TLA+, acronimo di Temporal Logic of Actions, è un linguaggio progettato per scrivere le specifiche di un programma per computer. La cosa fantastica di TLA+ è che consente test e verifiche approfonditi del software prima che venga pubblicizzato.
Sia il design basato sul modello che TLA+ hanno già dimostrato il loro sale. Tecnologie Esterel, una società di sviluppo software, utilizza la progettazione basata su modelli per creare software critico per la sicurezza, mentre TLA+ è stato utilizzato da artisti del calibro di Microsoft per correggere un possibile errore catastrofico di Xbox e dall'Agenzia spaziale europea per riscrivere i codici per una sonda che è atterrata su un cometa.
Il processo di scrittura del codice è tenuto in grande considerazione dai programmatori. Molti di loro sono semplicemente incuriositi dal processo di scrittura dei codici. È quindi una sfida convincere alcuni programmatori ad accettare approcci come la progettazione basata su modelli e TLA+. Questi approcci sono spesso percepiti come strettamente accademici senza alcuna fattibilità nel mondo reale. Tuttavia, un cambiamento di prospettiva deve avvenire il prima possibile.
Pensieri finali
Il software viene sempre più utilizzato in applicazioni che richiedono precauzioni di sicurezza integrate. È necessario introdurre metodi migliori di progettazione del software su tutta la linea poiché tali applicazioni sono vitali nelle nostre vite.
Al giorno d'oggi, processi come l'automazione fanno molto affidamento sul software, ma un errore in una riga di codice può portarci a gravi battute d'arresto, come mostrano i casi precedenti.
Ora, immagina che qualcosa come l'intelligenza artificiale (AI) venga incorporata in queste applicazioni. l'intelligenza artificiale è abbastanza spaventoso da solo senza problemi software. Aggiungi bug nel mix e non si può dire cosa potrebbe accadere.
Tuttavia, qui c'è un lato positivo. Con un po' di lavoro e alcuni nuovi strumenti, possiamo migliorare il software e l'intelligenza artificiale progettandolo in modo più solido e testandolo a fondo.
Speriamo che questo problema critico venga preso sul serio dalle autorità interessate in modo da poter utilizzare il software al massimo delle sue potenzialità, ma solo per costruire un futuro più sicuro e intelligente.