Affidabilità e sicurezza del software

Giuseppe Iazeolla

Affidabilità e sicurezza del software

Una banca che commissiona un sistema-software impone, al produttore, un requisito di affidabilità e fissa una penale per il mancato rispetto di questo. Una casa automobilistica che commissiona un sistema-software, oltre che l’affidabilità, impone un requisito di safety, cioè di sicurezza. Ma come deve operare il produttore di un sistema-software perché, alla consegna, il sistema non infranga il requisito di affidabilità e, ancor più, quello di safety?

Edizione a stampa

32,00

Pagine: 240

ISBN: 9788820420734

Edizione: 1a edizione 2013

Codice editore: 720.85

Disponibilità: Limitata

Il software traduce il pensiero umano in azioni di macchinari. Senonché il pensiero può contenere errori, così come errori possono essere commessi nella traduzione del pensiero in mosse di macchinari.
Pensiamo, ad esempio, a un terminale bancomat. Cosa fa chi sviluppa il software per la sua guida? Mette innanzitutto giù il suo pensiero, nelle cosiddette specifiche o lista delle azioni da far compiere al terminale. Successivamente, consegna le specifiche a chi produce il programma di guida. Tuttavia, le specifiche possono contenere errori, così come errori possono essere commessi dal programmatore. Con la conseguenza di imprevedibili malfunzionamenti e perdite economiche. Pertanto, la Banca che commissioni il software imporrà, al produttore, un requisito di affidabilità (ad esempio, che esista una probabilità di malfunzionamento non superiore a uno su centomila nelle 24 ore).
Quel che vale per un bancomat vale anche per il servosterzo di un'automobile, l'autopilota di una metropolitana, quello di un aereo o di un vettore satellitare. In questi casi, un malfunzionamento produrrebbe perdite anche umane. Pertanto, chi commissioni il software imporrà ora sia un requisito di affidabilità sia uno di safety, cioè di sicurezza contro eventi catastrofici.
Come deve operare, chi produce software, perché esso non infranga i requisiti di affidabilità e safety? È la domanda a cui questo testo intende rispondere.

Giuseppe Iazeolla è professore ordinario di Ingegneria Informatica, Facoltà di Scienze e Tecnologie Applicate, Università Guglielmo Marconi di Roma, dove insegna Ingegneria dell'Embedded Software, Prestazioni e Qualità di Impianti e Sistemi e Metodi e Linguaggi di Simulazione. Dal 1985 al 2012 è stato ordinario di Ingegneria Informatica presso l'Università di Roma TorVergata e dal 1972 al 1984 professore di Informatica presso la Facoltà di Scienze dell'Università di Pisa. Precedentemente è stato ricercatore presso il Cnr (Roma e Pisa), il Massachusetts Institute of Technology, il Concurrent Engineering Research Center (Università della West Virginia), il Data Network Architecture Center (Università di CapeTown), ed ha lavorato nell'industria elettronica e delle telecomunicazioni. È autore di numerose pubblicazioni scientifiche di portata internazionale nel campo della simulazione dei sistemi, della simulazione distribuita, dell'ingegneria del software, dell'affidabilità e prestazioni dei sistemi, ed autore di testi sulle prestazioni e affidabilità di sistemi informatici e reti, e sui metodi e linguaggi di simulazione.



Prefazione e riconoscimenti
Introduzione all'affidabilità e sicurezza software
(Premessa; Definizioni e introduzione al problema)
Modelli statici di affidabilità software (Defect models)
(Metriche process oriented; Metriche object oriented; Modelli statici di affidabilità; Appendice al Cap. 2 - Metodi di stima dei parametri tramite analisi di regressione)
Modelli dinamici di affidabilità software (Reliability models)
(Introduzione; Modelli dinamici di affidabilità)
Modelli dinamici "time between failures" (Jelinsky-Moranda e Musa)
(Il modello Jelinsky-Moranda; Stima maximum likelihood di N e Φ per la determinazione di h(t) nel modello J&M; Il modello Musa; Stima maximum likelihood di N e Φ per la determinazione di h(t) nel modello Musa)
Modelli dinamici "failure count" (NHPP, Iperesponenziali, Weibull)
(Generalità; Modello a processo di Poisson non omogeneo (NHPP); Modello iperesponenziale; Modello Weibull)
Testing statistico e modelli dinamici per il requisito di affidabilità
(Fase di testing statico; Fase di testing dinamico; Premessa ai criteri di stopping del testing statistico; Espletamento del testing dinamico; Criteri di stopping del testing ST; Appendice al Cap. 6 - Simulazione del testing ST)
Il metodo Newton Raphson. Calcolo dei parametri per i modelli dinamici
(Il procedimento Newton-Raphson; Applicazione alla stima di N e Φ)
Affidabilità a componenti multipli (Failure models)
(Introduzione; Modelli Block-Diagram (BD); Modelli Fault-Tree (FT); Modelli CTMC; Modelli state-based; Modelli path-based; Modelli additivi)
Ingegneria dell'affidabilità dei sistemi software
(Qualità dei sistemi software e suoi attributi; Modelli di qualità e rendimento della prestazione; Performance Engineering dei sistemi software)
Ingegneria della sicurezza dei sistemi software
(Terminologia per la sicurezza software; Safety Engineering (SE); Relazioni tra SE (Safety Engineering) e RE (Reliability Engineering); Rapporto tra la SE e il comportamento o l'errore umano; Le tecniche di hazard analysis per software critico; Le tecniche software fail-safe per applicazioni critiche; Applicazione al sistema frenante DEB 3.0)
Bibliografia.

Collana: Informatica

Argomenti: Programmazione e sviluppo del software

Livello: Textbook, strumenti didattici

Potrebbero interessarti anche