Parasoft C/C++test 2022.2 unterstützt das neue MISRA C:2012 Amendment 3 und eine Entwurfsversion von MISRA C++ 202x. Erfahren Sie mehr >>

AUTOSAR-Architekturanforderungen für Laufzeitumgebungen

Von Ricardo Camacho

20. April 2021

4  min lesen

AUTOSAR stellt die Herstellungsrichtlinien für die Entwicklung eingebetteter Software für elektronische Steuergeräte für Kraftfahrzeuge bereit. Diese eingebettete Software erfordert Tests, um optimal zu funktionieren. So hilft Parasoft C/C++test Automotive Compliance Pack dabei.

Die Automotive Open System-Architektur (AUTOSAR) Die 2003 gegründete Organisation wurde gegründet, um Herstellern Anleitungen für die sichere Entwicklung eingebetteter Software für elektronische Steuergeräte für Kraftfahrzeuge (ECU) zu geben. AUTOSAR ist eine Partnerschaft von Titanen der Automobilindustrie aus der ganzen Welt wie Toyota, BMW, Ford und anderen. Der Schwerpunkt liegt auf der branchenweiten Standardisierung der Softwarearchitektur, um die immer komplexer werdenden Steuerungssysteme zu verwalten und gleichzeitig die Qualität und Zuverlässigkeit für diese Sicherheit zu verbessern. kritische Software.

AUTOSAR Architektur

Ein durchschnittliches Steuergerät kann Tausende von Funktionen enthalten. Vor der AUTOSAR-Architektur musste jedes Steuergerät vollständig neu geschrieben werden, wenn Hardwareänderungen auftraten. Nach der Zusammenstellung von AUTOSAR fand die Gruppe einen Weg, Software von der Hardware unabhängig zu machen, und schuf einen neuen Standard für die gesamte Branche, um modulare und nachhaltige Anwendungen zu erstellen. Besser noch, die neuen Normen entsprachen den internationalen Sicherheitsnormen für Kraftfahrzeuge, darunter unter anderem ISO 14229, ISO 27145.

Obwohl die Motor Industry Software Reliability Association (MISRA) hatte einen C ++ - Codierungsstandard entwickelt, MISRA C ++: 2008, dessen Regeln auf C ++ 03 (ISO / IEC 14882: 2003) basieren, der viele der erforderlichen kritischen und sicherheitsrelevanten Softwareaspekte nicht unterstützt. Aus diesem Grund hat die AUTOSAR-Gruppe C ++ 14 (ISO / IEC 14882: 2014) ausgewählt und einen eigenen Codierungsstandard namens AUTOSAR C ++ 14 erstellt. Dieser Standard wurde seit März 2017 zweimal jährlich aktualisiert und veröffentlicht.

AUTOSAR C ++ 14 erklärt

2017 veröffentlichte die AUTOSAR-Gruppe Richtlinien für die Verwendung der Sprache C ++ 14 in kritischen und sicherheitsrelevanten Systemen. Es wird allgemein als AUTOSAR C ++ 14 bezeichnet und ist jetzt Teil seiner übergreifenden AUTOSAR-Architekturplattform. Die Veröffentlichung von AUTOSAR C ++ 14 wurde mit der Absicht eingeführt, MISRA C ++: 2008 zu ersetzen und zum De-facto-Codierungsstandard in der gesamten Automobilindustrie zu werden. Tatsächlich sind diese Richtlinien so robust, dass sie auf jede Branche angewendet werden können, die eingebettete Programmierung benötigt.

Ein weiterer Grund, warum C ++ 14 weiterhin ausgewählt wurde, war, dass Sicherheitsingenieure objektorientierte Sprachen akzeptierten und Entwicklern die Möglichkeit gaben, überlegene Compiler zu verwenden und den Zugriff auf verbesserte Test-, Verifizierungs- und Analysetools zu verbessern. Es ermöglichte auch die Verwendung neuer Entwicklungsmethoden wie Continuous Integration / Continuous Delivery (CI / CD), mit denen Fehler früher im Softwareentwicklungszyklus erkannt werden können. MISRA C ++: 2008 konnte keine dieser neuen Innovationen berücksichtigen.

Verwenden von AUTOSAR C ++ 14 für neue Automobiltechnologien

AUTOSAR C ++ 14-Richtlinien werden für neue Fahrzeugtechnologien wie automatisiertes Fahren, Fahrzeug-zu-Fahrzeug- oder Fahrzeug-zu-Infrastruktur-Kommunikation (V2X), kontinuierliche drahtlose Aktualisierungen (OTA), hochauflösende Anzeigen und KI verwendet Computing. Während MISRA C ++: 2008 in einigen Projekten noch verwendet wird und Ingenieuren bei der Einführung eines Codierungsstandards geholfen hat, bleibt dieser Standard unvollständig. Dies liegt daran, dass seit der Veröffentlichung von C ++ 03 eine erstaunliche Anzahl von Verbesserungen an der Sprache vorgenommen wurden, während sich C ++ weiterentwickelte, was MISRA C ++: 2008 nicht tut.

Wenn sich eine Organisation auf MISRA C ++: 2008 verlässt, ist die Migration auf AUTOSAR C ++ 14 für sie ein erheblicher Aufwand. Dies ist jedoch auch von großem Wert, da das Delta zwischen MISRA C ++: 2008 und AUTOSAR C ++ 14 die seit 2003 in der C ++ - Sprache hinzugefügten Änderungen berücksichtigt. Daher sind alle Neuheiten in C ++ 11 und C ++ 14 vorhanden enthalten in AUTOSAR C ++ 14. Also ja, es gibt Auswirkungen, aber es ist auch sehr wertvoll, auf den neuen Standard zu aktualisieren.

AUTOSAR-Architektur- und Codierungsanforderungen

AUTOSAR C ++ 14 verfügt über 342 Regeln, die dem Benutzer ein klares Verständnis und eine Anleitung zu den Codierungsanforderungen vermitteln. Es klassifiziert jede Regel basierend darauf, ob sie erforderlich ist oder eine Empfehlung. "Erforderliche Regeln" sind für die Einhaltung von AUTOSAR C ++ 14 obligatorisch, während "Beratungsregeln" nicht eingehalten werden müssen, aber dringend empfohlen werden. Eine Abweichung von einer Regel oder Richtlinie kann jedoch zulässig sein. Dennoch muss ein Verfahren zur Erlangung einer Freigabe für jede Abweichung enthalten sein, da es verhindert, dass Entwickler das Abweichungskonzept nach Belieben missbrauchen.

Aufschlüsselung der AUTOSAR C ++ 14-Codierungsrichtlinien für adaptives AUTOSAR

Wenn Sie einen Codierungsstandard wie AUTOSAR C ++ 14 verwenden möchten, können Sie die Konformität nur mit einem statischen Analysetool durchsetzen, das über ein ausgeklügeltes interaktives Berichtssystem verfügt und einen effizienten täglichen Workflow ermöglicht. Stellen Sie sich eine Lösung vor, die den Scanvorgang in die auf Servern aufbauenden Continuous Integration (CI) integriert. Diese Art der Automatisierung spart viel Zeit und Geld.

Wenn Sie vorhandene Codebasen bereinigen, wird außerdem empfohlen, mit der Teilmenge der Regeln aus dem Standard zu beginnen und die Anzahl der aktiven Regeln mit fortschreitender Bereinigung des Codes schrittweise zu erhöhen. Dies verhindert, dass eine große Anzahl von Verstößen oder Lärm das Team überfordert, und ermöglicht es, den Fortschritt Ihrer Codebasis zu überwachen, den Abweichungsprozess zu steuern und fundierte Entscheidungen über die Erweiterung des Regelsatzes zu treffen.

Ein einheitlicher AUTOSAR-MISRA-Standard

Seit 2017 hat die AUTOSAR-Gruppe zweimal pro Jahr AUTOSAR C ++ 14-Richtlinien veröffentlicht, die mit über 200 Automobilunternehmen zusammenarbeiten, um den Support zusammen mit den Änderungen, die mit neuen C ++ - Sprachupdates einhergehen, aufrechtzuerhalten. AUTOSAR hat 2019 angekündigt, mit MISRA zusammenzuarbeiten, um die beiden C ++ - Regelsätze zusammenzuführen und eine einzige universelle C ++ - Softwareentwicklungsrichtlinie bereitzustellen. Es wird erwartet, dass diese neuen MISRA-geführten Richtlinien mit vollständiger Unterstützung für moderne C ++ - Sprachversionen wie C ++ 17 und C ++ 20 erstellt werden.

Mit diesem neuen Fusion/Zusammenarbeit von MISRA & AUTOSAR Um die neuesten und besten Codierungsregeln und -richtlinien für C++ zu erstellen, gehe ich davon aus, dass sie neben der Automobilindustrie auch von anderen Branchen stark übernommen werden. Branchen wie Luft- und Raumfahrt, Medizin, Industrie, Bahn, Telekommunikation, Energie und viele andere. Software-Entwickler freuen sich sehr darauf, sichere Projekte liefern zu können, die in den Programmiersprachen C++17 und C++20 entwickelt wurden oder werden sollen.

Verwenden Sie die AUTOSAR C++-Codierungsrichtlinien, um die ISO 26262-Konformität zu optimieren

Statische Analyse hilft beim Erstellen von sicherem C ++ - Code

Ein wichtiger Aspekt von ISO 26262 ist die Empfehlung, einen Codierungskonformitätsstandard wie AUTOSAR C ++ 14 zu verwenden. Der beste Weg, um Compliance zu erreichen, ist die Automatisierung und Verwendung eines TÜV-zertifizierten Tools wie Parasoft C / C ++ - Test, das auch mehrere Testtechnologien unterstützen kann und Funktionen wie Unit-Tests, strukturelle Codeabdeckung, Rückverfolgbarkeit von Anforderungen und mehr. Als vollständig integrierte Softwaretestlösung für sicherheitskritische Branchen kann Parasoft C/C++test auch problemlos in Ihre C++ IDE oder CI/CD-Pipeline integriert werden, um so konfiguriert zu werden, dass Fehler frühzeitig erkannt und die Einhaltung von Vorschriften automatisch durchgesetzt werden.

Das speziell auf die Automobilindustrie zugeschnittene Parasoft C / C ++ - Test Automotive Compliance Pack ist integriert Regeln für AUTOSAR C ++ 14, MISRA C ++ 2008und High Integrity (HI) C ++, um jedem Automobilentwickler zu helfen, die Testfunktionen zu erweitern und die Tests für das Entwicklungsteam zu optimieren. Entwickler können den Parasoft C / C ++ - Test auch verwenden, um die Codekonformität innerhalb der IDE zu analysieren und automatisch Berichte zu erstellen, um Teams über Statusaktualisierungen zu informieren.

Als eine der umfassendsten Lösungen zum Testen sicherheitskritischer Anwendungen bietet der Parasoft C / C ++ - Test eine vereinfachte Lösung für statische Analyseund bietet gleichzeitig mehr Unterstützung für die von der Automobilindustrie geforderten Codierungsstandards. Mit einer Plattform, die automatisch die Einhaltung sicherheitskritischer Systeme sicherstellt, können Sie Fehler frühzeitig erkennen und Zeit im Entwicklungsprozess sparen, Aktualisierungen priorisieren, um wichtige Probleme zuerst zu beheben, und die Einhaltung automatisieren.

Erfahren Sie, wie Parasoft C/C++test Ihnen dabei helfen kann, Code bereitzustellen, der sicher, geschützt und den Industriestandards entspricht.

„MISRA“, „MISRA C“ und das Dreieckslogo sind eingetragene Marken von The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. Alle Rechte vorbehalten.

Von Ricardo Camacho

Ricardo ist Senior Technical Product Marketing Manager für die eingebetteten Testlösungen von Parasoft und verfügt über Erfahrung in der SDLC- und Testautomatisierung eingebetteter Echtzeit-, sicherheits- und sicherheitskritischer Anwendungen sowie in der Softwarekonformität mit Industriestandards.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.