Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
l’Automazione Industriale
Realizzazione del SW
per Sistemi
Si t i di Si
Sicurezza
Sicurezza Funzionale 1
Elenco contenuti
Sicurezza Funzionale 2
Tipologie di Software
¾ Software
S ft specifico
ifi del
d l prodotto
d tt
¾ Sistema operativo
¾ Software embedded (Firmware)
¾ Software applicativo
¾ Strumenti
¾ Compilatori
¾ T l di programmazione
Tools i
¾ Tools di testing
¾ Gestione della configurazione
Sicurezza Funzionale 3
SOFTWARE EMBEDDED
SW parte del sistema fornito dal costruttore e non accessibile
all’utente finale. Solitamente definito come Firmware o System SW.
SOFTWARE APPLICATIVO
SW specifico per l’applicazione utente. In generale, contiene
sequenze logiche, limiti ed espressioni per controllare ingressi ed
uscite, calcoli e decisioni necessarie per soddisfare i requisiti di
sicurezza funzionale. Si veda FVL e LVL.
SOFTWARE DI UTILITY
Strumenti SW per la creazione, modifica e documentazione di
programmi applicativi ed embedded. Non sono richiesti per il
funzionamento di un Sistema di Sicurezza.
Sicurezza Funzionale 4
Terminologia (SW)
FIXED PROGRAM LANGUAGE (FPL)
Linguaggio in cui ll’utente
utente si limita a configurare solo alcuni parametri (ad
es., range del trasmettitore di pressione, livelli di allarme, indirizzi di rete)
Sicurezza Funzionale 5
Tipologie di Software
¾ EN 61508-3
¾ SW embedded o FVL utilizzato da costruttori
costruttori, progettisti
progettisti,
integratori e utilizzatori di Sistemi di Sicurezza
¾ EN 62061 / EN 13849-1:
¾ Requisiti per SW embedded (con richiamo alla EN 61508);
conformità completa alla EN 61508 per la EN 62061 e per la EN
13849-1 PL e, richiesto SIL 3
¾ SW applicativo sviluppato per sistemi a variabilità limitata o
programmi fissi: requisiti maggiormente qualitativi: non è
richiesta la rispondenza a tecniche e misure in maniera così
precisa come per SW embedded
Sicurezza Funzionale 6
Generalità
Sicurezza Funzionale 7
EN 61508
61508--3: configurazione
Management System
Sicurezza Funzionale 9
Sicurezza Funzionale 10
IEC 61508: Relazioni HW-SW
Campo di
Specifica requisiti Architettura applicazione
di sicurezza E/E/PES E/E/PES II parte
Requisiti di sicurezza HW
Campo di
applicazione Requisiti del Hardware di Hardware
III parte SW elettronica non
programmabile programmabile
Progettazione
e sviluppo P
Progetto
tt P
Progetto
tt
del SW e sviluppo di e sviluppo di
elettronica elettronica
programmabile non programmabile
Sicurezza Funzionale 11
IEC 61508-
61508-3:
Modello di sviluppo SW (Modello a V)
Specifica
p Specifica
p Validazione
requisiti requisiti Esecuzione SW
sicurezza sicurezza validazione validato
E/E/PES SW
9.6
9.1 9.1
Progetto Verifica
sistema SW integrazione moduli
93
9.3 93
9.3
Progetto Verifica
Risultato modulo modulo
Verifica 9.3 9.3
Sicurezza Funzionale 12
Applicazione tecniche e misure
HR Highly Recommended:
La tecnica o misura è molto consigliata. Se questa tecnica o misura
non è utilizzata, allora deve essere dettagliato il motivo razionale per il
suo non utilizzo.
R Recommended:
La tecnica o misura è consigliata. È richiesta almeno una delle
tecniche o misure del gruppo ombreggiato in grigio.
- Neutral:
La
a tecnica
ec ca o misura
su a non
o ha
a raccomandazioni
acco a da o p pro
o o co
contro
o l’essere
esse e
utilizzata.
NR Not Recommended:
La tecnica o misura è decisamente non consigliata. Se questa tecnica
o misura è utilizzata, allora deve essere dettagliato il motivo razionale
per il suo utilizzo.
Sicurezza Funzionale 13
High La tecnica o misura deve essere usata fino al punto necessario per
fornire elevata efficacia contro guasti sistematici.
Medium La tecnica o misura deve essere usata fino al punto necessario per
fornire almeno media efficacia contro guasti sistematici.
Sicurezza Funzionale 14
Modelli di specifica di requisiti
Sicurezza Funzionale 15
Altre funzioni:
¾ Vi
Visualizzazione
li i
¾ Risultati di prova
¾ Ingressi e uscite non correlati alla sicurezza
¾ …
Sicurezza Funzionale 16
IEC 61508-
61508-3:
9.1 - Specifica dei requisiti
Riferimento: IEC 61508-3 Cap. 7.2.2.11
1. Specifica dei requisiti di sicurezza SW
1.1 Funzioni che permettono all’EUC
all EUC di raggiungere e mantenere uno stato di
sicurezza
1.2 Funzioni connesse con il riconoscimento, la visualizzazione e l’elaborazione di
guasti HW (PE)
1.3 Funzioni connesse con il riconoscimento, la visualizzazione e l’elaborazione di
guasti di sensori ed attuatori
1.4 Funzioni connesse con il riconoscimento, la visualizzazione e l’elaborazione di
guasti SW (Auto-monitoraggio)
1.5 Funzioni per le verifiche periodiche on-line delle funzioni di sicurezza
1.6 Funzioni per le verifiche periodiche off-line delle funzioni di sicurezza
1.7 Funzioni che garantiscono che il SIS possa essere modificato in modo sicuro
1.8 Interfacce alle funzioni non rilevanti per la sicurezza
1.9 Requisiti che si riferiscono alla capacità ed al comportamento nel tempo
1.10 Interfacce tra SW e SIS
IEC 61508-
61508-3: Tecniche e misure
A.1 - Specifica requisiti di sicurezza SW
Tecniche / Misure Rif. SIL 1 SIL 2 SIL 3 SIL 4
Strumenti
St ti computer-
t
aided per la
1 B.2.4 R R HR HR
definizione delle
specifiche
Decision / Truth
6 C.6.1 R R HR HR
tables
Note:
1 e 2 sono descritti nella IEC 61131-3: 1993: Controllori programmabili – parte 3: linguaggi di
programmazione
Sicurezza Funzionale 19
Controllo guasti
nella progettazione HW e SW
Sicurezza Funzionale 20
Tipi di guasti RAM
Sicurezza Funzionale 22
IEC 61508-3: Misure & Tecniche –
A.7 Validazione sicurezza SW
A.7 – Validazione Sicurezza Software
Tecniche / misure* Rif. SIL1 SIL2 SIL3 SIL4
1. Verifiche probabilistiche C.5.1 --- R R HR
2. Simulazione / modellizzazione Tab. B.5 R R HR HR
B.5.1
3. Prove funzionali e black-box B.5.2 HR HR HR HR
Tab. b.3
* È necessario selezionare metodi, misure e tecniche appropriate secondo il livello di integrità di sicurezza
Sicurezza Funzionale 23
Sicurezza Funzionale 24
IEC 61508-3: Misure & Tecniche –
B.8 Analisi statica
B.8 – Analisi statica
Tecniche / misure* Rif. SIL1 SIL2 SIL3 SIL4
1. Analisi dei valori limite C.5.4 R R HR HR
2. Check lists B.2.5 R R R R
3. Analisi flusso di controllo C.5.9 R HR HR HR
4. Analisi flusso di dati C.5.10 R HR HR HR
5. Verifica manutenzione guasti C.5.5 R R R R
6. Ispezione Fagan C.5.15 --- R R HR
7. Analisi percorsi aggiuntivi C.5.11 --- --- R R
8. Esecuzione simbolica C.5.12 R R HR HR
9. Verifica walkthrough e di progetto C.5.18 HR HR HR HR
* È necessario selezionare metodi, misure e tecniche appropriate secondo il livello di integrità di sicurezza
Sicurezza Funzionale 25
Sicurezza Funzionale 26
IEC 61508-3:
9.2 Pianificazione della validazione
Input: specifica requisiti SW
Compiti & Scopi: progetto di una pianificazione
pianificazione, che preveda la possibilità di
provare (verificare) l’adeguatezza del SW e dei suoi requisiti in condizioni
reali
Risultati: piano di validazione SW
Requisiti:
¾ Documentazione, quando e chi esegue la validazione
¾ Identificazione dei possibili stati del sistema, inclusi struttura,
collocazione, Teach-in, stati operativi, di modifica, di anormalità
prevedibili… di fine funzionamento
¾ Metodi di validazione: manuale/automatico, statico/dinamico,
analitico/statistico
¾ Metriche per la valutazione di appropriati metodi di validazione, incl. criteri
superamento/non superamento per tutte le parti SW
¾ Regole per la valutazione dei risultati
Sicurezza Funzionale 27
1. Architettura
2. Strumenti e linguaggi di programmazione
3. Dettaglio della progettazione e sviluppo del sistema
4. Dettaglio della progettazione e sviluppo di singoli
moduli
5. Codifica di singoli moduli
6. Verifica del modulo
7. Verifica dell’integrazione
Sicurezza Funzionale 28
IEC 61508
61508--3: 9.3 Progettazione &
sviluppo – Generale
Tecniche adeguate
g alla SIL:
¾ Astrazione, modularità: riduzione della complessità
¾ Metodi di presentazione per funzioni e strutture di dati,
scorrere di dati tra moduli, dipendenze temporali
(sequenza e coincidenza)
¾ Considerare la verifica e la modificabilità durante la
progettazione
¾ I componenti e gli strumenti SW, che non verranno
verificati e convalidati dovranno essere “proven in use”
Sicurezza Funzionale 29
IEC 61508
61508--3: Misure & Tecniche –
A.2 Architettura SW (1)
Sicurezza Funzionale 30
IEC 61508
61508--3: Misure & Tecniche –
A.2 Architettura SW (2)
Sicurezza Funzionale 31
IEC 61508
61508--3: Misure & Tecniche –
A.3 Strumenti e linguaggi
Sicurezza Funzionale 32
IEC 61508-
61508-3: Linguaggi appropriati
di programmazione (riassunto)
Sicurezza Funzionale 33
IEC 61508
61508--3: Misure & Tecniche –
A.4 Concetto & codifica
Sicurezza Funzionale 34
IEC 61508
61508--3: Misure & Tecniche –
A.4 Concetto & codifica
Codifica:
¾ Programmazione di protezione con rispetto alle linee guida di
programmazione
¾ Ridondanza di dati (CRC…) e funzioni (diversità,…)
¾ Controllo
C ll SW edd HW (l
(logicamente,
i temporalmente)
l )
¾ Preferibilmente oggetti non dinamici
¾ Codice deducibile dalla specifica dei requisiti usando la documentazione
(rintracciabilità)
Sicurezza Funzionale 35
IEC 61508
61508--3: Misure & Tecniche –
B.9 Modularizzazione
Sicurezza Funzionale 36
IEC 61508
61508--3: Misure & Tecniche –
B.1 Linee guida
Sicurezza Funzionale 37
Norme di Programmazione e
Codifica
¾ In generale:
• Non esiste una norma di programmazione valida in linea generale
• Le linee guida di programmazione non devono complicare il processo
• Troppe restrizioni sono controproducenti
• Deve essere adattato all’azienda e al processo di sviluppo
Sicurezza Funzionale 38
IEC 61508-
61508-3: Metodi & Tecniche –
A.4 Programmazione di dettaglio
Sicurezza Funzionale 39
Programmazione difensiva
Sicurezza Funzionale 40
Verifica SW
¾ Si fanno esperimenti
p con il comportamento
p del p
programma
g allo
scopo di scoprire eventuali errori
• Si campionano i comportamenti
• Come ogni risultato sperimentale, fornisce indicazioni parziali relative al
particolare esperimento
⇒Il programma è effettivamente provato solo per quei dati
¾ Il test è una tecnica dinamica rispetto alle verifiche statiche fatte dal
compilatore
Sicurezza Funzionale 41
Verifica SW
¾ E quando?
• Idealmente, nel momento in cui si scrive la specifica del modulo
• In base a quali criteri?
Sicurezza Funzionale 43
Test Funzionale
¾ Combinare i vari casi alternativi espressi da una specifica
//@ post result == x && x>=y && x>=z ||
//@ result == y && y>=x && y>=z ||
//@ result == z && z>=x && z>=y;
static int maxOfThree (int x, int y, int z) {
¾ Ci sono tre alternative: il massimo è x, è y, o è z
¾ Casi di test ricavabili da postcondizione:
• Un caso in cui il massimo è x, p. es. (5,3,0)
• Un caso in cui il massimo è yy, pp. es
es. (7
(7,11,2)
11 2)
• Un caso in cui il massimo è z, p. es. (7,10,12)
//@ post result <==> x è primo
static boolean isPrime (int x)
¾ Scegliere dati di test primi e non primi. Es. 5 e 8
¾ Verificare non solo il comportamento normale, anche le eccezioni
Sicurezza Funzionale 44
Test con valori limite
¾ Se l’input può stare in un intervallo, collaudare gli estremi
dell’intervallo e combinare i valori limite
¾ Esempi:
• valori estremi per i numeri (max. int ammissibile)
• sqrt con radicando = 0
• stringa: vuota o di 1 carattere
• array: array vuoto o di un elemento
• elaborazioni con array: considerare valori estremi degli indici
• Triangoli
g identificati da vertici:
tre punti allineati
due punti coincidenti
tre punti coincidenti
triangolo rettangolo
un vertice nell’origine o sugli assi
• ….
Sicurezza Funzionale 45
IEC 61508-
61508-3: 9.3 Progettazione &
Sviluppo / Verifica del modulo
Inputs: specifiche di verifica modulo, codice sorgente, rapporto di
verifica codice
Requisiti:
¾ Documentazione di tutti i risultati delle verifiche dei moduli
¾ Conservazione delle regole per la valutazione dei risultati (cfr.
programmazione della validazione)
Sicurezza Funzionale 46
IEC 61508-
61508-3: Metodi & Tecniche –
A.5 Verifica & integrazione moduli
Sicurezza Funzionale 47
IEC 61508-
61508-3: Metodi & Tecniche –
A.5 Verifica & integrazione moduli
¾ Metodi adeguati
g di verifica
¾ Verifica dati e risultati con registrazioni relative
¾ Verifica statistica che quantifichi la probabilità di guasto:
• Possibile solo con strumenti, per via dell’elevato numero di diverse
configurazioni di prova necessarie
• Normalmente non ci sono garanzie per alte probabilità di guasto
¾ Analisi dinamica:
• Verifica dell’integrazione HW-SW su un prototipo (B.6.5)
• Verifica del programma in running mode (tab
(tab. B
B.2)
2)
¾ Strumenti di verifica normalmente necessari a causa
della quantità di dati, analisi di codice
Sicurezza Funzionale 48
Verifica moduli SW
Sicurezza Funzionale 49
¾ Verifica integrazione
g moduli SW
• Principi di integrazione
• Tipi di prove da eseguire
• Casi di prova e dati di prova
• Criteri di prova
• Procedure per azioni correttive in caso di fallimento di una prova
Sicurezza Funzionale 50
IEC 61508
61508--3: Metodi & Tecniche –
B.2 Verifiche dinamiche
Sicurezza Funzionale 51
IEC 61508
61508--3: Metodi & Tecniche –
B.3 Verifica delle funzioni
B.3 - Verifiche funzionali e “black box” (menzionata nelle Tab. A.5, A.6 e A.7)
Tecniche / misure* Rif. SIL1 SIL2 SIL3 SIL4
1 Esecuzione di differenti "test cases” in relazione ai B.6.6.2 --- --- R R
diagrammi di causa/effetto
2 Prototipazione C.5.17 --- --- R R
Sicurezza Funzionale 52
IEC 61508
61508--3: Metodi & Misure – B.6
Verifica delle prestazioni
Sicurezza Funzionale 53
Verifica Integrazione HW + SW
¾ Verifica integrazione HW + SW
• Principi
p di integrazione
g
• Tipi di prove da eseguire
• Ambiente di prova, strumenti, configurazione e programmi
• Casi di prova e dati di prova
• Criteri di prova
• Procedure per azioni correttive in caso di fallimento di una prova
• Analisi dell’impatto in caso di modifiche
Sicurezza Funzionale 54
IEC 61508
61508--3: Misure & tecniche – A6
Integrazione PE
Sicurezza Funzionale 55
IEC 61508-
61508-3: Misure & tecniche – A8
Modifica
A.8 – Modifiche
Sicurezza Funzionale 56
IEC 61508-
61508-3: Misure & tecniche – A7
Validazione
Sicurezza Funzionale 57
IEC 61508
61508--3: Misure & tecniche – B5
modellizzazione
B.5 – Modellizzazione
Sicurezza Funzionale 58
IEC 61508-
61508-3: Misure & tecniche –
A.10 Valutazione della sicurezza
Sicurezza Funzionale 59
IEC 61508
61508--3: Misure & tecniche –
B.4 Analisi dei rischi
Sicurezza Funzionale 60
IEC 61508-
61508-3: Riassunto in 12 punti
Sicurezza Funzionale 61
IEC 61508-
61508-3: Riassunto in 12 punti
Sicurezza Funzionale 62
IEC 61508-
61508-3: Riassunto in 12 punti
8. Verifica
B
Basata
t su specifica
ifi requisito
i it e progetto
tt
Da piccola (funzione) a grande (sottosistema)
Almeno “black box”
Test di sollecitazione e verifiche temporali
Usare strumenti di verifica
9. Validazioni in condizioni reali
Così come in condizioni estreme (temperatura, volume dati)
Anche con input non corretto (prove simulate)
10 Documentazione per ciascuno scopo: manuale di produzione ed
10.
installazione, ivi inclusi i dati di configurazione, manuale utente, modifica
e smaltimento
11. Ispezione formale di documenti importanti
12. Valutazione indipendente di sicurezza funzionale
Sicurezza Funzionale 63
IEC 61508
61508--3: Applicazione per
piccoli progetti
Sicurezza Funzionale 64
EN 13849-
13849-1:
Requisiti di sicurezza del software
Modello a V semplificato del ciclo di vita di sicurezza del software
Specifica delle
funzioni di sicurezza Specifica del software Software validato
Validazione Validazione
correlato alla sicurezza
Progettazione
Prove di integrazione
del sistema
Progettazione
Prove del modulo
del modulo
Risultato
Verifica Codifica
Sicurezza Funzionale 65
EN 13849-
13849-1:
Requisiti di sicurezza del software
Sicurezza Funzionale 66
EN 13849-
13849-1:
Requisiti di sicurezza del software
EN 13849-
13849-1:
Requisiti di sicurezza del software
Sicurezza Funzionale 68
EN 13849-
13849-1:
Requisiti di sicurezza del software
Sicurezza Funzionale 69
EN 13849-
13849-1:
Requisiti di sicurezza del software
b) La selezione di strumenti, librerie, linguaggi:
1) strumenti idonei affidabili: Si devono utilizzare caratteristiche tecniche in grado di
rilevare condizioni che potrebbero causare errori sistematici (come errato
abbinamento di tipo di dati, ambigua allocazione di memoria dinamica,
interfacce dichiarate incomplete, ricorsione, aritmetica dei puntatori). I controlli
dovrebbero essere effettuati soprattutto durante la compilazione e non solo
durante l’esecuzione. Gli strumenti dovrebbero utilizzare subset del linguaggio o
linee guida per la codifica o almeno supervisionare o guidare lo sviluppatore che
li utilizza;
2) quando ragionevole o praticabile, si dovrebbero utilizzare librerie di blocchi di
funzioni (FB) validate – librerie legate alla sicurezza fornite dal produttore dello
strumento ((altamente raccomandate p per PL = e)) o librerie specifiche
p
dell’applicazione validate e in conformità alla presente parte della ISO 13849;
3) si dovrebbe utilizzare un idoneo subset LVL adatto per un approccio modulare,
per esempio un subset accettato di linguaggi IEC 61131-3. I linguaggi grafici
(schema di blocchi di funzioni, diagramma a scala) sono altamente
raccomandati.
Sicurezza Funzionale 70
EN 13849-
13849-1:
Requisiti di sicurezza del software
Sicurezza Funzionale 71
EN 13849-
13849-1:
Requisiti di sicurezza del software
Sicurezza Funzionale 73
EN 13849-
13849-1:
Requisiti di sicurezza del software
g) La documentazione:
1) tutte le attività di modifica e relative al ciclo di vita devono essere documentate;
2) la documentazione deve essere completa, disponibile, leggibile e comprensibile;
3) la documentazione dei codici all’interno del testo sorgente deve contenere
intestazioni dei moduli con entità legale, descrizione funzionale e degli I/O,
versione e versione delle librerie di blocchi di funzioni utilizzate e sufficienti
commenti delle reti/righe di dichiarazione e affermazione.