Dependability e affidabilità di un sistema informatico

Dependability e affidabilità di un sistema informatico

Negli ultimi decenni l’affidabilità dei sistemi informatici è diventata un aspetto sempre più importante, dibattuto in diversi ambiti e discipline. Questo in seguito al profondo inserimento dei sistemi informatici all’interno della nostra società e alla grande espansione a livello di utilizzo che hanno avuto. I sistemi informatici forniscono servizi sempre più sofisticati e per questo richiedono standard qualitativi sempre più elevati. Per questo motivo nel corso della produzione di un sistema software è importante focalizzarsi su quelli che sono gli aspetti che determinano il successo di un prodotto come ad esempio: le prestazioni, intese come tempo necessario ad eseguire le operazioni, o la robustezza, intesa come capacità del sistema di comportarsi ragionevolmente a fronte del verificarsi di situazioni impreviste.

La Dependability

Nell’ambito dell’ingegneria del software, il concetto di Dependability consta sostanzialmente di 3 parti (si veda la figura seguente):

  1. gli attributi (attributes).
  2. le minacce (threats).
  3. i mezzi con cui l’affidabilità del sistema è ottenuta (means).
Dependability e affidabilità di un sistema informatico
Schema ad albero del concetto di Dependability in ingegneria del software

Dunque, la Dependability di un sistema software viene definita dall’autore Laprie come:

La capacità del sistema di fornire un servizio che può essere considerato attendibile dall’utilizzatore.

La funzione che il sistema è chiamato a svolgere è definita dalle sue stesse specifiche e si dice quindi che il servizio fornito è corretto se il sistema rispetta tali specifiche. Qualora il servizio offerto dal sistema si discosti dalle specifiche dello stesso vorrebbe dire che si è verificato un fallimento del sistema, con conseguente interruzione dell’attività. Vedremo nel dettaglio il significato e la natura del fenomeno del fallimento nel proseguo del capitolo. È stato necessario introdurlo per poter dare una ulteriore definizione del concetto di Dependability:

La Dependability è la capacità del sistema di evitare frequenti e gravi fallimenti che comporterebbero lunghe interruzioni del servizio rendendo il sistema stesso inutilizzabile dall’utente.

Gli attributi della Dependability

La Dependability è un concetto che comprende all’interno del suo significato i seguenti attributi:

  • Disponibilità (Availability): disponibilità del servizio corretto.
  • Affidabilità (Reliability): continuità del servizio nel tempo.
  • Confidenzialità (Confidentiality): riservatezza delle informazioni.
  • Integrità (Integrity): assenza di alterazioni indesiderate dello stato del sistema.
  • Sicurezza (Safety): assenza di gravi conseguenze sull’utente e l’ambiente.
  • Manutenibilità (Mantainability): predisposizione a subire riparazioni e modifiche.

A seconda di quale sia l’intento che sta dietro la produzione del software è necessario dare maggiore enfasi ad un attributo piuttosto che ad un altro. Nell’assegnare i diversi pesi agli attributi si deve tener presente di alcune importanti proprietà: la disponibilità del servizio è sempre necessaria, mentre l’adabilità, la sicurezza e la riservatezza sono necessarie in relazione alla funzione che il sistema è chiamato a svolgere.

Si può quindi notare come esista una stretta dipendenza tra i diversi attributi: l’integrità è un requisito indispensabile per la disponibilità, per l’adabilità e per la sicurezza, mentre il requisito di disponibilità è correlato a quelli di adabilità e manutenibilità. Vale la pena precisare la differenza tra i due attributi disponibilità ed adabilità: il primo fa riferimento al fatto che il sistema è chiamato a svolgere le proprie funzioni per cui è stato realizzato fornendo il servizio in modo corretto, mentre il secondo riguarda la probabilità che un dispositivo assolva alla funzione richiesta per un tempo prefissato e in determinate condizioni. Da tenere in considerazione è il fatto che, al fine di rappresentare diversi aspetti del sistema in esame, possono essere definiti ulteriori attributi non presenti nella classificazione sopra riportata ottenibili dalla commistione degli attributi sopra citati.

Parametri di Misurazione degli Attributi della Dependability

Vediamo ora alcuni parametri importanti nella misurazione degli attributi della Dependability:

  • t è la variabile tempo.
  • La disponibilità A(t) è la misura della continuità con cui un sistema svolge correttamente le specifiche Considerando la variabile tempo t possiamo quindi dire che la disponibilità rappresenta la probabilità che al tempo t il sistema sia funzionante.
  • L’affidabilità R(t) è la probabilità che un dispositivo funzioni correttamente per un lasso di tempo t.
  • La durata di vita del sistema Tg (TTF, Time to Fault).
  • La probabilità di guasto F(t) al tempo t, detta anche curva dell’inaffidabilità, rappresenta la funzione di ripartizione della variabile Tg (tempo al guasto). Ricordiamo che la funzione di ripartizione, detta anche funzione di distribuzione cumulativa (CDF), di una variabile casuale X è la funzione che associa a ciascun valore di x la probabilità che la variabile X assuma valori minori o uguali ad x.
  • Il tempo di riparazione Tr (TTR, Time to Repair) è la quantità di tempo che serve per ripristinare il sistema nel caso si verifichi un errore.
  • M(t) rappresenta la funzione di ripartizione della variabile Tr.
  • MTTR (Mean Time To Repair) è la media della variabile Tr, cioè il tempo medio di riparazione.
  • MTTF (Mean Time To Fail) è il valore atteso della variabile aleatoriaTg.
  • MTBF (Mean Time Between Failures) è il tempo medio tra due guasti consecutivi. Questo indice vale solo nel caso in cui si stiano studiando “unità riparabili” con la distribuzione dei tempi al guasto che quindi non varia dopo un intervento di ripristino.

A tal proposito si continui la lettura con l’articolo circa Le minacce alla Dependability di un sistema informatico.

Precedente L'affidabilità nei sistemi software Successivo Le minacce alla Dependability di un sistema informatico

Lascia un commento

*