“Best practice” per l’implementazione degli standard di modellazione in tutta l’azienda
Di Michael Burke, MathWorks
Le grandi aziende di progettazione automotive, del settore aerospaziale e di altri settori possono ampliare i vantaggi della progettazione model-based implementando standard di modellazione condivisi fra i loro team. Le linee guida in tema di sicurezza, fra cui IEC 61508-3 e MISRA-C AC, consigliano fortemente di adottare e applicare standard di modellazione, per via dei loro numerosi vantaggi. I modelli costruiti con standard ben definiti hanno una presentazione visiva uniforme che li rende più semplici da leggere, da capire e da manutenere. Tali modelli hanno interfacce fra loro coerenti, fatto che riduce i problemi di integrazione e semplifica la condivisione dei progetti. Gli standard di modellazione aiutano inoltre a garantire uniformità nella generazione del codice, nel comportamento dei modelli e nella tracciabilità.
Questo articolo descrive la “best practice” da adottare per poter usare standard di modellazione e distribuirli in un’intera organizzazione.
Creazione di un team per gli standard di modellazione
Come accade per qualsiasi altro processo, il buon esito dell’adozione di linee guida di modellazione richiede la presenza di un team-fulcro che abbia la responsabilità di gestire ogni fase del processo e di supervisionare il lavoro fino al suo completamento. Un team più esteso deve esaminare i suggerimenti del team-fulcro, raccogliere le metriche in fatto di distribuzione e i report sulle esperienze legate al processo, sia positive che negative, in modo che sia possibile identificare e risolvere gli eventuali problemi.
Il team-fulcro ideale è composto da almeno tre membri, con persone provenienti da ognuno dei gruppi di progettisti che usa la progettazione model-based all’interno dell’azienda. È consigliabile scegliere persone che abbiano almeno cinque anni di esperienza nel campo della progettazione model-based.
Selezione delle linee guida
Il processo di adozione deve iniziare dall’analisi delle linee guida esistenti in tema di progettazione model-based. Le primarie fonti di settore sono le linee guida NASA Orion e le linee guida di modellazione Simulink per sistemi ad alta integrità. Per la generazione efficiente di codice e la progettazione di sistemi ad alta sicurezza, possiamo anche usare linee guida quali le DO-178B, la IEC 61508 e la ISO 26262), disponibili su mathworks.com. Anche se le linee guida MAAB sono state sviluppate da un comitato indipendente di costruttori e fornitori automotive, le aziende che non appartengono a tale settore possono usarle per migliorare la collaborazione fra i loro team interni e con i loro partner.
Gli standard Orion per la guida, la navigazione e il controllo furono elaborati da un team di ingegneri e fornitori della NASA, che aggiornarono e ampliarono le linee guida MAAB per adattarle alle esigenze del programma NASA Orion. Le Linee guida MAAB versione 3.0 incorporano un sottoinsieme delle regole Orion originarie. Le Linee guida di modellazione Simulink per sistemi ad alta sicurezza (high integrity rules) sono state sviluppate per aiutare gli ingegneri a creare modelli Simulink® completi, non ambigui, affidabili e verificabili.
Personalizzazione delle linee guida
Una volta selezionato un gruppo base di linee guida, la fase successiva consiste nel modificarle ed estenderle per adattarle alle specifiche esigenze della propria organizzazione. Le linee guida MAAB possono essere personalizzate selezionando implementazioni specifiche quando la linea guida MAAB offre delle opzioni (come nel caso della regola NA_0005), oppure aggiungendo dettagli specifici quando la regola fornisce linee guida generali (ad esempio, specificando un compilatore per la regola NA_0026). La personalizzazione comporta inoltre la definizione degli standard di base, come ad esempio i punti dei segnali in cui visualizzare le etichette (come previsto dalla regola MAAB na_0005). Inoltre, il team-fulcro può creare nuove regole per affrontare i problemi dei flussi di lavoro non trattati dallo standard di settore.
Distribuzione delle linee guida
La scelta migliore è quella di distribuire in più fasi le linee guida di modellazione personalizzate, integrando il feedback di un piccolo gruppo di utenti prima di distribuire gli standard a gruppi più ampi, procedendo come segue.
Fase 1: adozione della versione di prova. Un gruppo di circa sei-dieci persone inizia ad applicare le linee guida ai propri modelli. Questo piccolo gruppo monitora la frequenza con cui si verificano le eventuali violazioni delle linee guida e segnala le eventuali difficoltà incontrate nel rispettare le linee guida stesse. Questa fase dura in genere da uno a tre mesi.
Fase 2: rettifica. In base al feedback derivante dalla Fase 1, il team-fulcro aggiorna le linee guida. Tali aggiornamenti possono comportare la riscrittura delle linee guida per migliorarne la chiarezza, la modifica della priorità e la posticipazione della distribuzione di specifiche linee guida. Questa fase può iniziare non appena è disponibile il feedback dalla Fase 1.
Fase 3: prima distribuzione mirata. Dopo la rettifica, le linee guida vengono distribuite a un gruppo più ampio e utilizzate da quel gruppo per tutto il progetto.
Fase 4: valutazione del progetto. Una volta completato il primo progetto (oppure un anno dopo la distribuzione), il team-fulcro esamina il processo di distribuzione analizzando il numero di violazioni rilevate e i problemi che si sono manifestati comunemente.
Oltre a seguire questo approccio di distribuzione in più fasi, il team-fulcro deve ottenere un attivo supporto da parte degli utenti finali. L’ accettazione delle linee guida è più probabile quando gli utenti finali ne capiscono il valore insito nell’utilizzo e quando le linee guida comportano un disturbo minimo nei flussi di lavoro.
Per essere maggiormente in grado di ottenere questa approvazione e di ridurre al minimo le interruzioni dei flussi di lavoro, il team dovrà:
- fornire informazioni su ciascuna linea guida, che spieghino il problema risolto dalla linea guida stessa;
- fornire strumenti automatici, ogni volta che è possibile, per ridurre o eliminare il peso della verifica della linea guida – si può usare Model Advisor di Simulink per automatizzare la verifica delle linee guida integrate, mentre per le linee guida personalizzate si può utilizzare Simulink Check™;
- applicare le linee guida solo nella fase pertinente dello sviluppo – l’applicazione deve essere più permissiva durante lo sviluppo iniziale e diventare più rigida man mano che il codice si avvicina alla distribuzione sui target;
- fornire un meccanismo di eccezioni da usare quando la deviazione da una linea guida è inevitabile o necessaria – per esempio, consentire agli ingegneri di usare Model Advisor Exclusion Editor per escludere blocchi individuali da specifici controlli della linea guida (Figura 1).
Come far rispettare la conformità alle linee guida
La conformità alle linee guida può essere fatta rispettare usando uno strumento di verifica automatizzato come Model Advisor. Tale compito è in genere più efficace se l’organizzazione impone dei controlli delle linee guida come gateway per determinate attività del flusso di lavoro di sviluppo: ad esempio, se gli ingegneri devono accertare la conformità dei loro modelli prima di verificarli in un sistema di gestione delle configurazioni o prima di generare il codice. Si può decidere di non far rispettare rigidamente alcune linee guida durante lo sviluppo iniziale, chiedendo agli ingegneri di rispettarle soltanto nelle fasi successive dello sviluppo. L’applicazione di alcune linee guida può essere più rigida nel caso di progetti a virgola fissa o progetti ad alto livello di sicurezza (safety critical), mentre può essere più permissiva nel caso di progetti che coinvolgono moduli preesistenti.
I report sono il meccanismo principale per far rispettare le linee guida. La reportistica ha la finalità immediata di fornire feedback all’ingegnere (Figura 2), nonché il beneficio, a lungo termine, di consentire al team-fulcro di stabilire quali linee guida causano il maggior numero di problemi. Nei progetti safety critical, i report possono essere registrati nel sistema di gestione delle configurazioni insieme al modello ed essere conservati come artefatto di sviluppo.
Acquisizione del feedback
Richiedere il feedback e rispondere a esso è essenziale per avere successo nell’adozione degli standard di modellazione. Occorre fare in modo che il team di progettazione abbia un modo semplice per fornire il proprio feedback, dalla fase di valutazione del progetto in poi. Non è necessario un processo di valutazione formale: spesso basta una semplice e-mail o un modulo web. Idealmente, il team-fulcro risponde a tutti i feedback, rettificando le linee guida o spiegando con chiarezza il motivo per cui le linee guida vengono lasciate immutate. Il processo di acquisizione e reazione al feedback deve ripetersi periodicamente per garantire il miglioramento continuo e la conformità costante.
Pubblicato nel 2014 - 92228v00