Domanda

Ho un obbligo di effettuare una grande quantità di codice MISRA compatibile.
Prima domanda:Qualcuno può dare un' stima per il passaggio di codice ben scritto per sistemi embedded basati sull'esperienza.Capisco che "ben scritto" è scarsamente definito e vago così chiedo raw stima.
Seconda domanda:Ogni raccomandazione per strumento, che può essere personalizzabile (io.e permettendo sopprimere le avvertenze specifiche) e utilizzati per la costruzione automatica ambiente.e interfaccia a riga di comando)
Eventuali altri suggerimenti utili che può aiutare con questa attività.
Grazie Ilya.

È stato utile?

Soluzione

Anche io consiglio vivamente PC-Lint.Se vi capita di compilare il codice con Visual Studio mi consiglia un plug-in di Visual Lint' da Riverblade.Se non riesci a compilare il codice in Visual Studio, è ancora possibile eseguire PC-Lint dalla riga di comando di buon effetto.

Alcuni sistemi embedded compilatori fornire MISRA test di conformità come gli avvisi del compilatore.Io uso il compilatore IAR per Arm7/Arm9 sviluppo.Esso fornisce un facile da configurare MISRA di controllo per il rispetto destra nell'impostazione del compilatore.

È difficile a venire con una regola empirica per la stima del tempo che ci sarebbe voluto un po ' di codice ben scritto MISRA compatibile.Molto dipende dalle esistenti codifica abitudini dei programmatori e come essi strettamente seguire le regole MISRA, in primo luogo.

Stime approssimative:
2 - 3 giorni per diventare esperto in PC-Lint di utilizzo.
Passo iniziale a rendere il codice esistente MISRA conforme:10 al 25 per cento del tempo trascorso a scrivere il codice, in primo luogo.
Talmente semplice mantenere aggiornati i codice MISRA conforme:Dal 5 al 10% aggiunto per lo sviluppo di codice.La metà di questo costo è cambiare le abitudini dei vostri programmatori a seguire il 'MISRA modo' di fare le cose.L'altra metà è il costo aggiuntivo di codice di test e di ispezione per garantire la MISRA conformità.

Altri suggerimenti

La creazione di codice Misra conforme non troppo di un lavoro di routine - se si segue abbastanza buone pratiche di programmazione.Si potrebbe trovare un po ' di puntatore regole leggermente difficile, se il codice che si sta cercando di far rispettare ha qualche strano e meraviglioso di aritmetica dei puntatori.

Mi piacerebbe seconda di Greg raccomandazione per PC Lint, ma l'open source Stecca è anche la pena di guardare, anche se tra loro (il compilatore del sistema di allarme), ho stima sarà ancora solo essere in grado di coprire l ' 80% delle regole Misra - il resto sarà probabilmente bisogno di essere rianalizzati a mano.

Io uso il PC Lanugine per l'analisi statica di codice C e C++.Esso può essere configurato per mostrare ciò che MISRA regole sono state violate, e dispone di una interfaccia a riga di comando.

Ho usato uno strumento commerciale chiamato QAC.Lo strumento è in grado di far valere MISRA

Ha una interfaccia a riga di comando, in modo che è possibile impostare per eseguire da una generazione automatica di ambiente.Le regole da applicare sono configurabili, ma si aspettano di avere qualcuno con il trascorrere del tempo l'impostazione u.La MISRA di applicazione è piuttosto semplice e ha funzionato abbastanza bene.Mi è stato detto (e questa è solo la 3 ° mano) che questo è uno degli strumenti che alcune agenzie (come la FDA) per valutare il codice.Come la maggior parte dei strumenti di analisi statica non c'è rumore (falsi positivi) da affrontare.L'ultima volta che l'ho usato, non sono un buon mezzo per marcare/interrompere un falso positivo che si verifichino di nuovo (senza cambiare il codice è stato lamentarsi).

Ho il sospetto che un ingegnere junior richiedere fino a una settimana (4-5 giorni) per ottenere l'installazione (supponendo che essi sono determinati a farlo funzionare come si desidera).

Su un lato nota, commerciale strumenti di analisi statica probabilmente MISRA esecuzione pure.Secondo quanto riferito (per loro rappresentante di vendita), Klocwork fa.

Abbiamo avuto un problema simile di retrofitting Misra regole.Abbiamo avuto un po ' di codice di problemi di qualità a un grande progetto, ha deciso di MISRA per migliorare la qualità del codice.

Usiamo le Verdi Colline del compilatore che ha il supporto per MISRA C regole.C'è anche stand alone pedine a disposizione.A seconda di cosa si vuole fare si può essere un po ' più di uccidere la commutazione di tutte le regole.Abbiamo passato una regola, a un tempo per dare alla gente il tempo di sistemare un numero limitato di problemi simili, altrimenti si ottiene totalmente sopraffatti dalla quantità di errori.

Dal momento che i nostri avvertimenti è stato generato dal compilatore e non da un autonomo strumento di vedere gli errori, come si sviluppano e non solo quando si esegue il controllo.Come abbiamo continuato in via di sviluppo che abbiamo ottenuto il nostro codice è compatibile e non in un big bang.Questo anche per evitare che le vecchie abitudini di rovinare il nuovo codice causando la necessità di rielaborare il codice di nuovo più tardi.

Alcune volte è difficile ottenere vecchio e conforme alle norme, dal momento che nessuno sa esattamente come funziona il codice.Spero che tu abbia unit test.

Mi rendo conto che questa è una vecchia questione, ma per il beneficio di altri Archeologi (o ricercatori), è importante ricordare che MISRA fornisce linee guida che non dovrebbe essere sempre seguito ciecamente.

Raccomando la scrittura di nuovo codice con MISRA in mente;quindi, sarà molto più facile per rimanere compatibile.

Tuttavia, questo non è sempre possibile - e, in particolare, quando si cerca di decodificare il codice per soddisfare le linee guida.In questo caso vi suggerisco di concentrarsi sulle regole previste, e trattare gli Avvisi come bonus...costo v beneficio si applica anche qui!

Inoltre, tenete a mente che c'è una deviazione del processo - è meglio tenere pulito e mantenibile con una deviazione, rispetto ad architettare qualche conforme, ma illeggibili spaghetti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top