C'è un BACO nel nostro futuro quotidiano

C'è un BACO nel nostro futuro quotidiano C'è un BACO nel nostro futuro quotidiano DIRE baco significa evocare immagini sfocate di un vermicello che mangia le foglie degli alberi, però è utile a produrre la seta. Dire baco (o bug) a un softwarista significa invece fargli brutalmente ricordare ore di ansia e notti insonni passate a cercare un baco (o debug). La leggenda vuole che, quando i calcolatori erano grandi come stanze, alcuni guasti fossero dovuti a veri insetti che vi si introducevano, causando danni. Allora i tecnici cercavano il guasto, o, colloquialmente, cercavano il baco. Oggi i calcolatori sono diventati così piccoli che nemmeno un baco ci si trova a suo agio, ma cercare un baco è rimasta espressione corrente per cercare guasti, non più nei calcolatori ma nel software. Un guasto in un software è un errore fatto nello scrivere o modificare un programma, che fa sì che questo abbia un malfunzionamento, vowero~ non faccia quello che l'utente* «i aspetta che faccia. Molti programmi funzioneranno male il 1° gennaio 2000, in quanto crederanno di trovarsi al 1° gennaio 1900. In questo caso l'errore è aver usato solo due cifre decimali, invece di quattro, per rappresentare l'anno. Ma al cittadino interessano i bachi? Non è solo un problema dei programmatori e delle loro notti in bianco? No, il cittadino yive costantemente in mezzo a software di vario tipo. Ma il software non si vede, e quindi raramente il cittadino se ne accorge. Il cittadino si alza la mattina, probabilmente grazie a una sveglia. Buona parte di orologi e sveglie sono ormai digitali, e contengono software che ne controlla le funzioni. Il piacevole tepore che accoglie il suo risveglio in una fredda mattina invernale è anche dovuto al termostato che controlla l'impianto di riscaldamento digitale an- %cbe lui. Chiusa la porta di casa, il cit- t tedino * attiva l'impianto antifurto. Se ha meno di due o tre anni, al 90 per cento il cuore dell'antifurto è digitale. Il cittadino sale in macchina. Diavolerie come impianto di accensione, Abs e sistemi diagnostici sono costruiti intorno a dei software. Al semaforo rosso, chiama un amico col telefonino Gsm. Questo appare come uno scatolino di plastica, e invece nasconde una quantità di software impressionanti, parte sul telefonino, parte su tutto l'apparato retrostante che permette di smistare e gestire le telefonate di milioni di utenti. Al prossimo semaforo rosso, dà un'occhiata al giornale. La raccolta e diffusione delle notizie dipende dai sistemi di comunicazione, la scrittura e la messa in pagina da sistemi di videoscrittura, entrambi basati su software. I semafori sono sempre rossi (il perché è chiaro, o il sistema di gestione dei semafori è gestito da un cattivo software, o non contiene software ed è quindi inadeguato...) e quindi il cittadino dà un'occhiata alle fatture di telefono e gas, e all'estratto con¬ to della banca. I sistemi di fatturazione sono stati i primi ad essere informatizzati decine di anni fa, mentre il software controlla transazioni per 1000 miliardi di dollari al giorno (in lire, si tratta di un «uno» seguito da 15 zeri, cifra che riesce ad essere maggiore perfino del deficit totale del nostro Stato). Arrivato in ufficio, il cittadino si mette davanti allo schermo di un calcolatore, e ha finalmente la certezza di avere a che fare con dei software, contro cui imprecherà regolarmente ricavandone più o meno grande soddisfazione. E' ora della pausa. Il meritato caffè che il cittadino prende al bar non contiene software. Ma la macchina espresso è stata prodotta con sistemi Cad/Cam, in una linea di produzione controllata da calcolatore. L'approwigionamento di caffè, zucchero, acqua e energia elettrica dipende da una logistica sofisticata, gestita da calcolatori. E lo scontrino fiscale è emesso (a volte) da un registratore di cassa dove un software somma e moltiplica lirette virtuali. Quando il cittadino deve prendere un aereo o un treno, la sua dipendenza dal software aumenta ancora. Il treno o l'aereo usano software a bordo e a terra: sistemi di prenotazione, fatturazione ed emissione biglietti; sistemi di controllo del traffico, sistemi di segnalazione e comunicazione. Questa era la giornata. tUK un cittadino, circondato di sol ware senza bachi, e perciò invisibile. Cosa succederebbe se, evolutosi un baco carismatico e rivoluzionario, al grido di «Bachi di tutto il modo, unitevi», i bachi decidessero di agire tutti insieme, tutti nello stesso giorno? E' possibile che il cittadino sia così sfortunato? Per impostare il problema della «sfortuna» in modo più formale ci serve il concetto di densità dei bachi. Intuitivamente, un programma con maggior densità di bachi produrrà più malfunzionamenti di un programma a bassa densità di bachi. Un modo di definire la densità di bachi è d=N/S dove N è il numero di bachi presenti, in un programma, S la dimensione del programma. S si può esprimere in Loc, o linee di codice. L'ordine di grandezza dei programmi' che" circondano il cittadino è tra 100 Kloc e 1 Mloc (Mloc=l.000.000 Loc). Su un'automobile vi sono almeno 100.000 Loc di codice. Su un telefonino Gsm 2 Mloc, altrettanti su un televisore. Studi effettuati su migliaia di programmi in uso corrente indicano una densità media di circa 0,005 bachi/Loc. Ovvero 5000 bachi trovano, in media, una casa confortevole in un programma di lMloc. L'uso di questi programmi da parte di svariati utenti in condizioni disparate causa malfunzionamenti, la ricerca e la correzione del baco corrispondente porta a programmi via via più affidabili, ciò non significa che i bachi siano azzerati, ma semplicemente che quelli rimasti non causano più malfunzionamenti. W.H. Humphrey li chiama land mines. Prima o poi, qualcuno ci passa sopra. Alcune di queste mine sono tutto sommato innocue, ad esempio se un baco maligno causa un refuso in questo articolo. Alcune possono diventare davvero mine antiuomo. Basti pensare al Boeing 747-200 della Kal abbattuto nel 1983 sull'isola di Sakhalin nell'allora Unione Sovietica. L'inizio era stato un errore nella programmazione delle coordinate geografiche del volo, che aveva causato lo sconfinamento dell'aereo. Altre mine non sono antiuomo, ma certo costosette. Il razzo Ariane 5 e il suo carico valevano 370 milioni di dollari, andati in fumo nel 1996 per un solo baco. Tutto cominciò dal riusare il sistema di controllo della navigazione di Ariane 4. Ma Ariane 5 seguiva una rotta diversa, che dava valori di velocità orizzontali più alti, che il software di controllo non poteva gestire. Un altro software si rese conto del fatto, e risolse correttamente il problema come era stato programmato a fare: comandando l'autodistruzione del razzo. Dunque, al cittadino e al baco capita di incontrarsi, qualche volta. A volte l'incontro si risolve in una scocciatura, a volte in una perdita di tempo o denaro, a volte può fare perdere la vita. E' il caso di preoccuparsi? No, ma è certamente il caso di sapere che il problema c'è e va affrontato. I ricercatori sperimentano nuove tecniche per produrre software in modo più affidabile. W. H. Humphery del Sei di Pittsburgh ha definito la metodologia Psp (Personal Software Processi che ha dimostrato riduzioni fino a 10 volto della densità di bachi iniziale. Il Politecnico di Torino coordina per l'Italia il progetto europeo Ipssi, volto a diffondere l'uso del Psp per aumentare la competitività delle imprese aumentando la qualità del software da esse prodotto. In altre parole, per allontanare il baco dai cittadino e riservarlo tutto al softwarista. Maurizio Morisio Politecnico di Torino enze@lastampaj DIRE b iifi C'è un BACO nel nostro futuro quotidiano linee di codice. L'ordine di grandezza dei programmi' che" circondano il cittadino è tra 100 Kloc e 1 Mloc (Mloc=l.000.000 Loc). Su problema come era stato programmato a fare: comandando l'autodistruzione del razzo. Dunque, al cittadino e al ba Tutte le nostre comodità elettroniche usano software potenzialmente vulnerabili

Persone citate: Maurizio Morisio Politecnico

Luoghi citati: Italia, Pittsburgh, Torino, Unione Sovietica