Frage

Ich habe eine Verpflichtung eine große Menge an Code MISRA-konform zu machen.
Erste Frage: Kann jemand eine Schätzung für das Bestehen gut geschriebenen Code für Embedded-System basiert auf Erfahrung geben. Ich verstehe, dass „gut geschrieben“ ist schlecht definiert und vage, so dass ich für rohe Schätzung fragen.
Zweite Frage: Jede Empfehlung für Werkzeug, das anpassbar sein (das heißt spezifische Warnungen ermöglicht unterdrücken) und in automatischer Build-Umgebung (das heißt Command Line Interface) verwendet
Jede andere nützliche Vorschläge, die mit dieser Aufgabe helfen kann.
Dank Ilya.

War es hilfreich?

Lösung

ich sehr auch PC-Lint empfehlen. Wenn Sie Ihren Code mit Visual Studio passieren zu kompilieren empfehle ich ein Plug-in ‚von Visual Lint‘ von Riverblade. Wenn Sie den Code in Visual Studio kompilieren können, können Sie immer noch PC-Lint von der Kommandozeile um eine gute Wirkung führen.

Einige Embedded-System-Compiler bieten MISRA Compliance-Tests als Compiler-Warnungen. Ich benutze den IAR Compiler für Arm7 / Arm9 Entwicklung. Es bietet eine einfache MISRA Compliance-Checkliste direkt im Compiler-Setup.

konfigurieren

Es ist schwierig, mit Faustregel zu kommen, um die Zeit schätzen es dauern würde einige gut geschriebene Code MISRA-konform zu machen. Viel hängt von den vorhandenen Codierung Gewohnheiten des Programmierers und wie eng sie folgen Sie den MISRA-Regeln in dem ersten Platz.

Grobe Schätzungen:
2 - 3 Tage bei PC-Lint Nutzung geschickt werden
. Anstich zu machen vorhandenen Code MISRA-konform. 10 bis 25 Prozent der Zeit verbrachte den Code in erster Linie das Schreiben
Keeping Code MISRA-konform: 5 bis 10 Prozent hinzugefügt, um die Code-Entwicklung. Die Hälfte dieser Kosten verändert die Gewohnheiten Ihrer Programmierer die ‚MISRA Weg‘, Dinge zu tun zu folgen. Die andere Hälfte ist die zusätzlichen Kosten von Code Prüfung und Inspektion MISRA Compliance zu gewährleisten.

Andere Tipps

macht Code Misra gefällig es muss nicht zu viel von einer lästigen Pflicht - wenn Sie ziemlich gute Programmierpraktiken folgen. Sie könnten einige der Zeiger Regeln etwas heikel finden, wenn der Code Sie versuchen, einige seltsame und wunderbare Zeigerarithmetik hat zu machen entsprechen.

Ich würde zweite Gregs Empfehlung für PC Lint, aber die Open-Source-Splint ist auch einen Blick wert, obwohl zwischen ihnen (und dem Warnsystem des Compilers), schätze ich, werden Sie immer noch nur in der Lage sein, 80% der zur Deckung die Misra Regeln -. der Rest wird wahrscheinlich benötigen Code von Hand überprüft werden

Ich benutze PC Lint für die statische Analyse von C und C ++ Code. Es kann so konfiguriert werden, um zu zeigen, was MISRA-Regeln verletzt wurden, und es hat eine Kommandozeilen-Schnittstelle.

Ich habe eine kommerzielle Tool namens QAC verwendet. Das Tool ist in der Lage MISRA

erzwingen

Es verfügt über eine Befehlszeilenschnittstelle, so können Sie es einrichten von einem automatisierten Build-Umgebung ausgeführt werden. Die Regeln angewendet werden können konfiguriert werden, aber erwarten, dass jemand verbringen einige Zeit, um es u Einstellung. Die MISRA Durchsetzung ist ziemlich einfach und funktionierte gut genug. Ich wurde gesagt (und das ist nur die 3. Hand), dass dies eines der Werkzeuge einiger Agenturen (wie die FDA) Code bewerten verwenden. Wie die meisten statischen Analyse-Tools gibt es Rauschen (False Positives) zu behandeln. Das letzte Mal habe ich es, es hat kein gutes Mittel, um ein falsch positives zu markieren / Stopp wieder auftritt (ohne Änderung des Codes es etwa beschwerte).

Ich vermute, ein Junior-Ingenieur zu einer Woche dauern (4-5 Tage) es Setup zu bekommen (vorausgesetzt, sie bestimmt sind, sie zum Laufen zu bringen, wie Sie wollen).

Auf einer Seite zur Kenntnis, andere kommerzielle statischen Analyse-Tools haben wahrscheinlich auch MISRA Durchsetzung. Berichten zufolge (pro ihre Vertriebsmitarbeiter), Klocwork der Fall ist.

Wir hatten ein ähnliches Problem Misra Regeln der Nachrüstung. Wir hatten einige Codes Qualitätsprobleme an einem großen Projekt und beschlossen, MISRA zu verwenden, um die Code-Qualität zu verbessern.

Wir verwenden den Green Hills Compiler, die Unterstützung für MISRA C Regeln. Es wird auch allein Kontrolleure zur Verfügung steht. Je nachdem, was Sie tun möchten, kann es ein wenig über töten Einschalten aller Regeln. Wir schalteten man die Regel zu einer Zeit auf den Menschen Zeit zu geben, eine begrenzte Anzahl von ähnlichen Problemen zu beheben, was Sie durch die Menge der Fehler völlig überwältigt.

Da unsere Warnungen wurden durch den Compiler erzeugt und nicht durch ein eigenständiges Tool, um die Fehler zu sehen, wie Sie entwickeln und nicht nur, wenn Sie die Prüfung ausführen. Als wir mit der Entwicklung fortgesetzt haben wir unsere Code-kompatibel und nicht in einem großen Knall. Dies verhindert auch alte Gewohnheiten den neuen Code zu verderben was Sie mit dem Code es später noch einmal zu überarbeiten.

Manchmal ist es schwierig, alter Code konform zu bekommen, da niemand weiß genau, wie der Code funktioniert. Ich hoffe, Sie Unit-Tests haben.

Ich schätze, dass dies eine alte Frage, aber zum Wohle aller anderen Archäologen (oder Sucher), ist es wichtig, sich daran zu erinnern, dass MISRA stellt Richtlinien , die nicht immer blind gefolgt werden sollte.

Ich lobe das Schreiben neuen Code mit MISRA im Auge; daher wird es viel einfacher sein, konform zu bleiben.

Dies ist jedoch nicht immer möglich - und insbesondere, wenn sie versucht, Ingenieur-Code umzukehren, die Richtlinien zu erfüllen. In diesem Fall schlage ich vor, dass Sie zu den erforderlichen Regeln konzentrieren und behandeln die Advisories als Bonus ... Kosten v Vorteil gilt auch hier!

Auch bedenken Sie, dass es eine Abweichung Prozess - es ist besser, sauber und wartbaren Code mit einer Abweichung zu halten, als einige konform, jedoch unleserlich Spaghetti ersinnen

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top