Nel campo dell'ingegneria dell'affidabilità l'affidabilità dei sistemi (in inglese tecnico dependability) consiste nella capacità di un sistema di mostrarsi affidabile nei confronti degli utilizzatori. Questa caratteristica porta gli utenti a potersi "fidare" del corretto funzionamento del sistema stesso e a utilizzarlo senza particolari preoccupazioni o precauzioni.
Il concetto moderno di dependability deriva dai lavori pionieristici di Algirdas Avizienis , di Brian Randell e di Jean Claude Laprie negli anni ’70 e ’80, in particolare sul software fault-tolerance e sui modelli preliminari di affidabilità.
La dependability è una caratteristica molto importante da valutare durante la fase di progettazione dei sistemi , in particolare nell'ambito informatico. Alcuni casi in cui la dependability diventa una caratteristica fondamentale sono: i database contenenti dati sensibili, le applicazioni nelle quali una bassa dependability comporterebbe bassi introiti (ad esempio i portali web che offrono servizi a pagamento), le applicazioni critiche nelle quali una bassa dependability comporterebbe danni a cose o persone (sistemi di controllo delle centrali nucleari), ecc.
La dependability è un attributo generico derivato dalla sintesi dei seguenti attributi di sistema:
affidabilità (reliability): capacità del sistema di funzionare ininterrottamente senza guasti; manutenibilità (maintainability): possibilità di intervenire con riparazioni o altre azioni di manutenzioni in maniera efficace e non bloccante; disponibilità (availability): capacità del sistema di continuare a funzionare correttamente anche in presenza di interruzioni (è correlata con affidabilità e manutenibilità); continuità di prestazioni (performability): capacità del sistema di offrire i servizi attesi nei tempi e modi prefissati; incolumità (safety): capacità di non arrecare danni a cose, persone e ambiente; sicurezza (security): capacità del sistema di assicurare confidenzialità (impedire la fuga di informazioni riservate permettendo l'accesso solo a utenti autorizzati) e integrità (accesso e modifica ai dati da parte degli utenti autorizzati ed esclusivamente nelle modalità previste).
Minacce Le minacce che possono violare la dependability di un sistema sono classificate in: guasti: minacce di natura non prevedibile e probabilistica; errori: minacce spesso di natura umana che possono danneggiare il sistema a seguito di procedure errate; disastri: minacce non intenzionali a danno del sistema (come alluvioni, terremoti, ecc.); attacchi: minacce intenzionali a danno del sistema (come intrusioni informatiche, vandalismo, ecc.).
Tecniche La dependability di un sistema viene tipicamente raggiunta da una combinazione di tecniche che vengono classificate come appartenenti ad una selle seguenti 4 categorie: fault prevention (prevenzione dei guasti): basata sulla prevenzione: il sistema implementa di default misure di sicurezza che non portano il sistema in errore; fault tolerance (tolleranza ai guasti): basata sulla tolleranza: il sistema anche se cade in errore può gestirlo; fault removal (rimozione dei guasti): basata sulla rimozione: il sistema se in errore può portarsi ad uno stato di reset; fault forecasting (previsione dei guasti): basata sulla previsione: il sistema prevede i casi in cui può portare sé stesso in errore.
Note
Bibliografia J.-C. Laprie, Dependability: Basic Concepts and Terminology, Springer, 1995. A. Avizienis, J.-C. Laprie, B. Randell, C. Landwehr, Basic Concepts and Taxonomy of Dependable and Secure Computing, IEEE Transactions on Dependable and Secure Computing, vol. 1, n. 1, 2004, pp. 11–33. B. Randell, System Structure for Software Fault Tolerance, IEEE Transactions on Software Engineering, vol. SE-1, 1975, pp. 220–232. A. Avizienis, Fault-Tolerant Systems, IEEE Transactions on Computers, vol. C-21, n. 12, 1972, pp. 1309–1319. A. Avizienis, The N-Version Approach to Fault-Tolerant Software, IEEE Transactions on Software Engineering, 1979, pp. 149–159. A. Avizienis, The Evolution of Fault-Tolerant Computing, Proceedings of the IEEE, vol. 72, n. 10, 1985, pp. 1136–1150.
Voci correlate Fault-tolerance Metodi formali Affidabilità Ingegneria dell'affidabilità
Collegamenti esterni IFIP WG10.4 on Dependable Computing e Fault Tolerance (in inglese) - A. Avizienis, J.-C. Laprie e Brian Randell: Concetti fondamentali sulla Dependability (in inglese)Aprile 2001. Algirdas Avizienis, Jean-Claude Laprie, Brian Randell: La Dependability e le sue minacce: una tassonomia (in inglese) — questo documento estende e perfeziona la versione del documento precedente ed è un eccellente punto di partenza per lo studio della dependability. Consigliata la lettura di questo documento e successivamente del seguente tutorial: Wilfredo Torres-Pomales: — una guida molto buona, da leggere dopo aver letto il documento precedente.
Categoria:Tecniche di difesa informatica Categoria:Metodi formali Categoria:Teoria dell'affidabilità