Nel campo dell'ingegneria dell'affidabilità l'affidabilità dei sistemi (in inglese tecnico dependability[1]) 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 [2], di Brian Randell [3] e di Jean Claude Laprie [4] 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
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]- ↑ A. Avizienis, J.-C. Laprie, B. Randell e C. Landwehr, Basic Concepts and Taxonomy of Dependable and Secure Computing, in IEEE Transactions on Dependable and Secure Computing, vol. 1, n. 1, 2004, pp. 11–33.
- ↑ A. Avizienis, The N-Version Approach to Fault-Tolerant Software, in IEEE Transactions on Software Engineering, SE-1, 1979, pp. 149–159.
- ↑ B. Randell, System Structure for Software Fault Tolerance, in IEEE Transactions on Software Engineering, SE-1, 1975, pp. 220–232.
- ↑ J.-C. Laprie, Dependability: Basic Concepts and Terminology, Springer, 1995.
Bibliografia
[modifica | modifica wikitesto]- 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
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- 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) Archiviato il 23 agosto 2016 in Internet Archive. — 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: Tutorial sul Software Fault Tolerance[collegamento interrotto] — una guida molto buona, da leggere dopo aver letto il documento precedente.








