← Ultimi articoli
💻 computer science

Software is infrastructure: failures, successes, costs, and the case for formal verification

Questo capitolo sostiene che poiché il software funge da infrastruttura critica e i costi sbalorditivi dei fallimenti storici dimostrano le gravi conseguenze di una scarsa qualità, l'adozione della verifica formale e dell'analisi dei programmi è essenziale, una posizione supportata da efficaci applicazioni industriali.

Autori originali: Giovanni Bernardi, Adrian Francalanza, Marco Peressotti, Mohammad Reza Mousavi

Pubblicato 2026-01-30
📖 4 min di lettura☕ Lettura da pausa caffè

Autori originali: Giovanni Bernardi, Adrian Francalanza, Marco Peressotti, Mohammad Reza Mousavi

Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo

L'Idea Centrale: Il Software è il Nuovo Cemento

Immaginate un mondo in cui le nostre strade, i ponti e le centrali elettriche non siano fatti di acciaio e cemento, ma di codice invisibile. Gli autori sostengono che il software sia diventato l'infrastruttura della società moderna. Proprio come un ponte deve sostenere un camion senza crollare, il nostro software (che gestisce ospedali, banche, aerei e persino il vostro tostapane) deve funzionare perfettamente.

Il saggio pone una domanda semplice ma inquietante: se un ponte viene costruito con una matematica errata, cade. Se il software viene costruito con una matematica errata, cosa succede? La risposta è: miliardi di dollari svaniscono, le persone si fanno male e, a volte, le persone muoiono.

Il Problema: Stiamo Costruendo Castelli sulla Sabbia

Gli autori sottolineano come trattiamo il software in modo diverso rispetto all'ingegneria fisica.

  • Costruire un muro: Se costruite un muro, la fisica esegue il test. Se il muro è troppo debole, la gravità lo abbatte prima ancora che possiate dipingerlo. Non potete "eseguire" un muro per vedere se funziona; lo costruite e sperate che la matematica regga.
  • Scrivere software: Il software è solo testo. Non si può "sentire" un bug. Bisogna eseguire il codice per vedere se funziona. Ma eseguire il codice è come guidare un'auto giù da un dirupo per vedere se il paracadute si apre. Quando trovate il bug, il disastro è già avvenuto.

Il saggio usa un esempio divertente: se digitate rm -rf ~ in un terminale computer, cancellate l'intera cartella home. Non serve eseguirlo per sapere che è pericoloso; basta leggere il manuale (la "matematica") per capire cosa fa. Ma per il codice complesso, leggere il manuale non è sufficiente.

Il Costo della "Matematica Errata": Una Perdita da Un Triliardo di Dollari

Il saggio elenca una "Galleria dell'Infamia" di fallimenti software degli ultimi 40 anni per mostrare quanto siano costosi gli errori. Considerateli come i "crolli dei ponti" nel mondo digitale:

  • Il Therac-25 (Sanità): Una macchina per la radioterapia ha somministrato dosi massicce ai pazienti perché il codice ha permesso di premere due pulsanti troppo velocemente. Risultato: 6 morti.
  • L'Ambulanza di Londra (Servizi di Emergenza): Un nuovo sistema di gestione delle chiamate aveva una perdita di memoria (come un secchio con un buco). Si è riempito di vecchi dati e si è bloccato. Risultato: Le ambulanze non riuscivano a trovare i pazienti; 20-30 persone sono morte.
  • Il Boeing 737 MAX (Aviazione): Un sistema software chiamato MCAS ha spinto il muso dell'aereo verso il basso basandosi su un singolo sensore difettoso. Risultato: Due schianti, 346 morti e costi per 20 miliardi di dollari.
  • Lo Scandalo Horizon (Banche): Un sistema contabile difettoso ha accusato migliaia di commercianti di rubare denaro. Risultato: Oltre 900 persone sono state ingiustamente incarcerate e il sistema è costato agli contribuenti oltre 1 miliardo di sterline per essere sistemato.
  • CrowdStrike (IT Globale): Un minuscolo errore di aggiornamento ha causato il blocco di milioni di computer in tutto il mondo, che sono diventati blu e si sono spenti. Risultato: Caos globale, con costi di miliardi di dollari in attività perse.

Gli autori calcolano che la scarsa qualità del software costi all'economia statunitense 1,56 trilioni di dollari all'anno. È più del PIL di molti paesi. Sono soldi puramente sprecati per riparare errori che avrebbero potuto essere prevenuti.

La Soluzione: Il "Progetto Matematico"

Il saggio sostiene che dobbiamo smettere di tirare a indovinare e iniziare a dimostrare che il nostro software funzioni prima di eseguirlo. Questo si chiama Verifica Formale (Formal Verification).

L'Analogia:
Immaginate di costruire un grattacielo.

  • Metodo Attuale (Testing): Costruite il 100° piano, poi il 101°, poi il 102°. Controllate se l'ascensore funziona. Se il 102° piano crolla, lo demolite e riprovate. Questo è costoso e pericoloso.
  • Verifica Formale: Prima di versare una singola goccia di cemento, utilizzate la matematica avanzata per dimostrare che il progetto non può crollare sotto qualsiasi peso. Controllate il progetto contro le leggi della fisica per garantire che sia perfetto.

Nel software, questo significa usare la matematica per dimostrare che il codice farà esattamente ciò che deve fare, e nient'altro.

Ne Vale la Pena? Sì, È un Affare

Potreste pensare: "La matematica è difficile e costosa. Ne vale la pena?". Il saggio dice sì, assolutamente.

  • **Aria...

Sommerso dagli articoli nel tuo campo?

Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.

Prova Digest →