Sistemi critici. Se qualcosa va male, sono veri guai.
In qualsiasi campo ormai al software sono affidate molte operazioni, dalle più semplici alle più complesse, per automatizzare processi ripetitivi o per avere maggiore precisione nell’eseguirle in modo più preciso dell’uomo.
Nella maggior parte dei casi se un’operazione non è eseguita in modo corretto, si corre un elevato rischio e si può incorrere in perdite elevate.
Quando un sistema non fornisce servizi come dovrebbe, possono verificarsi perdite economiche, danni fisici o minacce per la vita, tali sistemi sono detti sistemi critici.
Esistono tre tipi di sistemi critici:
- Sistemi safety-crtical (a sicurezza critica): fallimenti possono provocare incidenti, perdite di vite umane e danni ambientali.
- Sistemi mission-critical (a missione critica): alcuni malfunzionamenti possono causare fallimenti ad attività a obiettivi diretti.
- Sistemi business-critical (a criticità aziendale): i fallimenti possono portare a perdite economiche.
Per tali sistemi la proprietà complessiva più importante è la fidatezza, che comprende le caratteristiche di disponibilità, affidabilità, sicurezza e protezione. I sistemi non affidabili, non sicuri e non protetti sono rifiutati dagli utenti perché i costi di un fallimento del sistema potrebbero essere enormi e sistemi inaffidabili possono causare anche perdite di informazione.
Per tali sistemi si utilizzano tecnologie e metodi fidati e già consolidati e non quelle di nuova generazione anche se portano maggiori vantaggi.
I fallimenti possono essere causati dall’hardware del sistema (errori di progettazione, guasti o fine del ciclo di vita), dal software (errori delle specifiche, di progettazione e d’implementazione) o da errori umani.
Fidatezza di un sistema
La fidatezza è la proprietà del sistema che si equipara alla fiducia che l’utente ripone nel sistema pensando che questo operi secondo le aspettative e che non fallisca nel normale utilizzo. Le principali dimensioni della fidatezza sono:
- Disponibilità: è la proprietà che un sistema sia attivo e funzionante e in grado di fornire servizi utili in ogni momento.
- Affidabilità: è la probabilità che il sistema fornisca correttamente i servizi come atteso dall’utente in un determinato periodo di tempo. Comprende la correttezza (la garanzia che i servizi di sistema siano quelli dichiarati), la precisione (la garanzia che l’informazione sia fornita nel giusto livello di dettaglio) e la tempestività (la garanzia che le informazioni siano fornite quando richieste).
- Sicurezza: è la valutazione di quante possibilità ci sono che il sistema causi danni a persone o al loro ambiente.
- Protezione: è una valutazione di quante possibilità ci sono che il sistema resisti alle intrusioni accidentali e non. Comprende l’integrità (la garanzia che le informazioni siano accessibili solo alle persone autorizzate) e la riservatezza (la garanzia che le informazioni siano accessibili solo alle persone autorizzate).
Ci sono anche altre dimensioni di minore rilievo:
- Riparabilità: i disturbi causati dai fallimenti possono essere minimizzati se il sistema è riparabile facilmente.
- Mantenibilità: il sistema deve essere modificabile per adattarlo a nuovi requisiti.
- Sopravvivenza: la capacità di un sistema di continuare a fornire servizi anche mentre si trova sotto attacco o mentre parti del sistema sono disabilitate. È legato alla disponibilità e alla protezione.
- Tolleranza agli errori: riflette fino a che punto il sistema è stato progettato in modo da evitare e tollerare errori di immissione. È legato all’usabilità.
Per avere un’elevata fidatezza nei sistemi critici, i costi di sviluppo e convalida sono elevati perché oltre a dover soddisfare i requisiti stringenti bisogna dimostrare anche alle autorità esterne di controllo un elevato livello di fidatezza.
Rispondi