Software applicativo relativo alla sicurezza
Quando si sviluppa un software applicativo, è preferibile separare il SW che esegue funzioni di base della macchina non di sicurezza dalle funzioni relative alla sicurezza. Laddove il software esegua sia funzioni non di sicurezza che funzioni di sicurezza, tutto il software deve essere trattato come relativo alla sicurezza.
I processi di gestione della configurazione ei processi di gestione delle modifiche devono essere definiti e documentati.
La gestione della configurazione del software deve consentire di ottenere un’identificazione univoca e precisa della versione del software.
Le modifiche al SW devono essere soggette a un’analisi d’impatto che identifichi tutte le parti software interessate e le necessarie attività di riprogettazione, revisione e test per confermare che i requisiti di sicurezza del software pertinenti siano ancora soddisfatti.
Lo Standard descrive due diversi livelli di software applicativo: SW livello 1 e SW livello 2. Il SW livello 3 non è trattato in questo Standard.
SW Livello 1
Si tratta di un software applicativo che utilizza un linguaggio a variabilità limitata (LVL) dovuto all’utilizzo di moduli hardware e software pre-progettati. Esempio di sistemi che utilizzano LVL: PLC di sicurezza con LVL o relè programmabile di sicurezza.
I seguenti linguaggi sono LVL: diagramma ladder, diagramma a blocchi funzione e diagramma funzionale sequenziale.
La clausola 8.3 della norma fornisce requisiti dettagliati riguardanti il ciclo di vita della sicurezza del SW, la progettazione del SW, la progettazione del modulo, la codifica, il collaudo, la gestione delle modifiche e la documentazione.
La specifica dei requisiti di sicurezza del software deve essere sviluppata per ciascun sottosistema in base alla specifica e all’architettura SCS, documentata e gestita durante l’intero ciclo di vita dell’SCS.
È possibile utilizzare un modello del ciclo di vita della sicurezza SW come il modello V semplificato.
Fig. 15 – Modello V per SW Livello 1
Il lato sinistro rappresenta i requisiti, ovvero le cose da raggiungere. Il lato destro dettaglia la verifica del software.
L’uscita di ciascuna fase deve essere verificata rispetto ai requisiti dell’ingresso della stessa fase.
Si raccomanda di utilizzare, ove possibile, moduli software approvati pre-progettati ma, se i moduli della libreria forniti dal produttore non sono soddisfacenti, la progettazione di moduli software personalizzati può anche essere sviluppata secondo questo modello V semplificato.
Ciascun modulo che non è stato valutato in precedenza deve essere testato rispetto ai casi di prova. Il test del software deve includere la simulazione del guasto e la relativa reazione al guasto a seconda dell’integrità di sicurezza richiesta.
SW livello 2
Viene introdotto il livello software 2 per supportare Full Variability Language (FVL). Esempio di sistemi che utilizzano FVL: PLC di sicurezza con FVL conforme a questa norma.
I seguenti linguaggi sono FVL: Ada, C, Pascal, Instruction List, linguaggi assembler, C++, Java e SQL.
Il SIL massimo raggiungibile per il livello SW 2 è SIL 2.
Il livello SW 2 è di maggiore complessità rispetto al livello SW 1 a causa dell’uso di linguaggi di programmazione completamente variabili. Pertanto, deve essere utilizzato un modello V più dettagliato.
Fig. 16 – Modello V del ciclo di vita della sicurezza del software per il livello 2 del software
Il lato sinistro rappresenta i requisiti, cioè le cose da raggiungere. Il lato destro dettaglia le verifiche del software.
La clausola 8.4 della norma fornisce requisiti dettagliati riguardanti il ciclo di vita della sicurezza del SW, la progettazione del SW, la progettazione del modulo, la codifica, il collaudo, la gestione delle modifiche e la documentazione.
La progettazione deve includere l’auto-monitoraggio del flusso di controllo e del flusso di dati appropriato al SIL
del SCS.
Gli input della specifica di progettazione del software devono essere correlati in modo diretto agli output desiderati e viceversa.
La progettazione del sistema SW deve seguire un approccio modulare con una dimensione del modulo limitata, un’interfaccia completamente definita e un punto di ingresso/uscita in subroutine e funzioni. Ciascun modulo deve avere una singola funzione chiaramente compresa. La dimensione massima del modulo deve essere limitata a una funzione di sicurezza completa.
Laddove i moduli della libreria software sviluppati in precedenza debbano essere utilizzati come parte della progettazione, deve essere dimostrata la loro idoneità a soddisfare le specifiche dei requisiti di sicurezza del SW.
I casi di test di integrazione del SW devono essere eseguiti e documentati.
Il test del software includerà anche la simulazione del guasto e la relativa reazione al guasto. Si applicano le prove funzionali come misura di base. Dive possibile Il codice dovrebbe essere testato mediante simulazione.
Il test del software comprende due tipi di attività: devono essere eseguite sia l’analisi statica che l’analisi dinamica.
SW livello 3
Per applicazioni SW conforme a SIL 3 deve essere applicata la IEC 61508-3.
È richiesto un alto livello di competenza per progettare secondo il livello 3 del SW. I fattori che rendono l’uso della norma IEC 61508-3 per il livello 3 del SW più appropriato rispetto all’uso del SW 2 sono:
- Elevato grado di complessità della funzione di sicurezza
- Un gran numero di funzioni di sicurezza
- Grande dimensione del progetto.