EMBEDDED
52 • MAGGIO • 2014
60
SOFTWARE
C LANGUAGE
consentito ad alcune funzionalità particolari
del prodotto. Si potrebbe anche trattare di un
requisito del prodotto di carattere generale che
prevede la conformità alle direttive di uno stan-
dard specifico per la sicurezza funzionale come
ad esempio IEC61508 (che riguarda disposi-
tivi elettrici ed elettronici programmabili),
ISO26262 (valido in ambito automotive) oppure
EN 50126x (per applicazioni ferroviarie). Per
almeno un decennio una tendenza è andata
delineandosi molto chiaramente: l’implementa-
zione delle funzionalità di sicurezza si è trasferita dalla
componente puramente meccanica o dell’automazione
controllata tramite PLC al mondo dei microcontrollori,
ragion per cui i requisiti si sono estesi al dominio del
software.
Poiché gli obbiettivi dei requisiti software dei diversi
standard sono simili, come esempio verrà utilizzato lo
standard IEC61508. Questo standard rappresenta la
base per molti altri standard relativi a settori specifici: i
requisiti validi per lo standard IEC61508 lo sono in larga
misura anche, ad esempio, per lo standard ISO26262.
Questi standard influenzeranno in maniera sensibile le
modalità di lavoro e di stesura della documentazione
del lavoro svolto: dalla raccolta dei requisiti alla pianifi-
cazione dell’installazione e della disattivazione (decom-
missioning) del prodotto presso i siti degli utenti.
Parecchi di questi standard utilizzano variazioni del con-
cetto di livello di Sil (Safety Integrity Level - Integrità
della sicurezza). di conseguenza, in base della classi-
ficazione di uno specifico prodotto, esistono differenti
modalità di applicazione dello standard appropriato.
A questo punto appare lecito chiedersi che relazione
esiste tra quanto affermato in precedenza con la scelta
del linguaggio di programmazione. In realtà qualche
correlazione esiste. Nella tabella 1 sono riportati alcuni
suggerimenti sulle modalità di scelta di un linguaggio
di programmazione adatto in funzione del livello SIL
dell’applicazione considerata o della funzionalità di sicu-
rezza. HR è l’abbreviazione di Highly recommended: si
tratta di un’indicazione che è quasi obbligatorio seguire
a meno che non vi sia un’ottima ragione per fare altri-
menti, una ragione che deve essere suffragata al 100%.
Un’analisi approfondita
Esaminando la tabella 1 si può notare che è fortemente
raccomandato l’uso di un linguaggio di programmazio-
ne adatto, affermazione in realtà molto generica. Ma
l’appendice C alla quale si fa accenno nella tabella può
fornire qualche indicazione utile, in quanto dà una defi-
nizione di linguaggio di programmazione adatto:
Fig. 1 – Compilazione di una variabile volatile per un target
ARM/THUMB
Tabella 1 – Questa tabella è contenuta nello standard IEC61508 parte 3 appendce A