Simulink Code Inspector

Automatizzare le revisioni del codice sorgente in base agli standard di sicurezza

 

Simulink Code Inspector™ mette a confronto automaticamente il codice generato con il relativo modello sorgente per soddisfare gli obiettivi di revisione del codice indicati in DO-178 e in altri standard ad alta integrità. Il code inspector esamina in modo sistematico i blocchi, i diagrammi di stato, i parametri e le impostazioni in un modello per determinarne l’equivalenza a livello strutturale a operazioni, operatori e dati nel codice generato. Simulink Code Inspector fornisce un’analisi dettagliata della tracciabilità da modello a codice e viceversa. È in grado di generare report di tracciabilità e di equivalenza strutturale da poter sottoporre alle autorità che si occupano delle certificazioni, al fine di soddisfare gli obiettivi di verifica di codifica software previsti dallo standard DO-178.

Il supporto relativo agli standard del settore è disponibile nel DO Qualification Kit (per DO-178).

Per iniziare:

Preparazione dei modelli

Simulink Code Inspector™ supporta una serie vincolata di semantiche di modellazione e di ottimizzazioni di codice spesso utilizzate per modelli di sistemi ad alta integrità. Uno strumento di verifica della compatibilità fornito da Simulink Code Inspector determina se il proprio modello è conforme alla serie vincolata.

È possibile richiamare la verifica della compatibilità in modo interattivo dall’interfaccia utente di Simulink Code Inspector oppure in modo programmatico usando i comandi MATLAB®. È possibile posizionare blocchi e altre porzioni di un modello identificato come non compatibile all’interno di un modello di riferimento, per poi configurare Simulink Code Inspector affinché ometta il modello di riferimento non compatibile durante l’ispezione del codice. Successivamente, è possibile eseguire un’ispezione del codice manuale per i modelli che non vengono automaticamente revisionati.

Interfaccia utente di Simulink Code Inspector (a sinistra) e risultati del controllo di compatibilità del modello (a destra).

Generazione e ispezione del codice

L’ispezione del codice è indipendente dalla generazione di codice. Per impostazione predefinita, Simulink Code Inspector presume che il codice sia già stato generato. Tuttavia, è possibile configurare il code inspector affinché generi codice come parte del suo processo di ispezione. È inoltre possibile specificare le posizioni dei file dei codici sorgente generati, come quelli utilizzati nei processi di costruzione della produzione. L’ispezione può essere richiamata tramite l’interfaccia utente o la riga di comando.

Simulink Code Inspector esamina le seguenti categorie generali durante l’ispezione del codice:

  • Interfacce dei modelli
  • Comportamento dei blocchi
  • Connettività dei blocchi e ordine di esecuzione
  • Pacchettizzazione di file e dati
  • Variabili locali ed elementi di modelli funzionali

L’analisi specifica che viene eseguita spazia dalla valutazione dell’interfaccia di alto livello, ad esempio al fine di verificare se le funzioni di inizializzazione e a gradini sono state generate, fino ad un’analisi dettagliata dell’ordine di esecuzione dei blocchi, al fine di determinare se la dipendenza dei dati tra due componenti dei blocchi viene preservata nel codice generato.

È possibile revisionare il messaggio sullo stato dell’ispezione direttamente in MATLAB o esaminare report dettagliati, come descritto nella sezione successiva, inclusivi di un’analisi della tracciabilità dettagliata con collegamenti interattivi agli oggetti della progettazione.

Ispezione di un codice (verificato) andata a buon fine utilizzando i comandi MATLAB.

Generazione di report

Con Simulink Code Inspector, è possibile generare report con i risultati dell’ispezione del codice. Si può scegliere la posizione in cui salvare i report. In questo modo archiviare e includere i report nel pacchetto completo di certificazione sarà più semplice. Il report di ispezione inizia dall’identificazione del modello esatto e del codice sorgente esaminato, tramite il checksum del modello, i nomi dei percorsi e le indicazioni di data e ora. In seguito, si fornisce un riepilogo delle verifiche eseguite e lo stato di ciascun elemento (ad esempio, verificato, parzialmente verificato o non andato a buon fine). Una sezione dettagliata descrive i risultati della verifica per ciascun file, funzione e riga del codice generato.

I dettagli dell’ispezione del codice includono:

  • Verifica dell’interfaccia delle funzioni
  • Verifica da modello a codice
  • Verifica da codice a modello
  • Utilizzo di variabili temporanee

I dettagli sulla tracciabilità includono:

  • Tracciabilità da modello a codice
  • Tracciabilità da codice a modello

Report dettagliato di Simulink Code Inspector che illustra la verifica da codice a modello.

Obiettivi previsti dallo standard DO-178

Lo standard RTCA/DO-178 Considerazioni sul software nella certificazione di sistemi ed apparecchiature di bordo specifica gli obiettivi per la verifica del codice sorgente. L’ispezione del codice automatizzata, offerta da Simulink Code Inspector, riduce il tempo richiesto per soddisfare gli obiettivi di verifica del codice sorgente di DO-178, come illustrato nella tabella sottostante. L’obiettivo (3) Il codice sorgente è verificabile può essere completamente soddisfatto utilizzando Simulink Code Inspector, in congiunzione all’analizzatore MISRA C® fornito da Polyspace Bug Finder™. Inoltre, l’obiettivo (4) Il codice sorgente è conforme agli standard può essere soddisfatto utilizzando strumenti come l’analizzatore MISRA C fornito da Polyspace Bug Finder. Il supporto per la qualificazione degli strumenti per Simulink Code Inspector e i prodotti Polyspace® viene fornito tramite il DO Qualification Kit (per DO-178).

Obiettivi dello standard DO-178C compatibili con Simulink Code Inspector

Tabella Allegato A Obiettivo Riferimento DO-331* Livelli software
Tabella MB A-5 (1) Il codice sorgente soddisfa i requisiti di basso livello Sezione MB 6.3.4a A, B, C
Tabella MB A-5 (2) Il codice sorgente è conforme all’architettura del software Sezione MB 6.3.4b A, B, C
Tabella MB A-5 (3) Il codice sorgente è verificabile Sezione MB 6.3.4c A, B
Tabella MB A-5 (5) Il codice sorgente è tracciabile in base a requisiti di basso livello Sezione MB 6.3.4e A, B, C
Tabella MB A-5 (6) Il codice sorgente è preciso e coerente** Sezione MB 6.3.4f A, B, C

*DO-331, Supplemento sullo sviluppo e la verifica Model-Based a DO-178C e DO-278A
**Non include gli obiettivi che richiedono analisi del codice oggetto e compiler.

DO Qualification Kit.

Funzionalità recenti

Impostazioni di generazione di codice

Eliminazione delle restrizioni per la rimozione della funzione Disabilita e la rimozione della funzione Reset

Blocchi Simulink

Ulteriori blocchi supportati per tipi di dati enumerati e conversioni di ulteriori unità nel blocco Unit Conversion

Blocco MATLAB Function

Supporto per gli output delle chiamate di funzione e per gli elementi integrati sign, deg2rad e rad2deg

Ottimizzazioni nella generazione di codice

Supporto per l’ispezione di codice per ulteriori ottimizzazioni

Consulta le note di rilascio per ulteriori informazioni su queste caratteristiche e sulle funzioni corrispondenti.