Sehen Sie, wie die Continuous Quality-Lösung von Parasoft dabei hilft, Testumgebungen zu kontrollieren und zu verwalten, um zuverlässig qualitativ hochwertige Software zu liefern. Für Demo registrieren >>

Einhaltung von AUTOSAR-C++-Regeln und Codierungsstandards

C++ ist eine komplizierte Sprache und erfordert einen hohen Investitionsaufwand, um Vorhersagbarkeit und Sicherheit zu gewährleisten. Die Organisation AUTomotive Open System ARchitecture (AUTOSAR) hat AUTOSAR C++14 entwickelt, einen Codierungsstandard, der die Verwendung von C++14 auf die Konstrukte beschränkt, die vorhersehbar sind und nicht zu unnötigen Sicherheitsrisiken führen.

Was ist AUTOSAR?

Die AUTomotive Open System ARchitecture (AUTOSAR) ist aus einer Entwicklungspartnerschaft zwischen Automobilunternehmen hervorgegangen. Die 2003 gegründete Gruppe strebte danach, eine standardisierte und offene Softwarearchitektur rund um elektronische Steuergeräte (ECUs) für Kraftfahrzeuge zu etablieren. Es deckt auch Halbleiter ab.

Ziel der AUTOSAR-Entwicklungspartnerschaft war es, die Effektivität und Verfügbarkeit von Sicherheitsanforderungen, Skalierbarkeit, Übertragbarkeit und Nachhaltigkeit über den gesamten Produktlebenszyklus hinweg zu verbessern. Obwohl es sich nicht um medizinische Geräte handelt, fallen bestimmte Aspekte der Automobiltechnik sicherlich unter Schutzartikel. Produktlinien-Airbags erfordern eine Technologie, die sie genau auslöst, während Systeme wie die Motorsteuerung Konsistenz erfordern.

Mehr eingebettete Elektronik in Autos bedeutet auch viel Datenerfassung sowie Datenverarbeitung in Echtzeit. Verschiedene Aspekte von AUTOSAR zielen darauf ab, die Anforderungen moderner Automobilelektronik und Softwarekomponenten zu erfüllen.

AUTOSAR Classic Platform vs. AUTOSAR Adaptive

Es gibt zwei Arten von AUTOSAR-Plattformen: Adaptive und Classic. Die klassische AUTOSAR-Plattform bietet nicht die Art von Flexibilität und Verarbeitungsleistung, die die adaptive Methodik bieten kann. Die wachsende Komplexität der Automobiltechnik erfordert einfachere Reaktionen und schnellere Reaktionen.

Allerdings sind die beiden Plattformen keine Rivalen, sondern Teamkollegen. Beide dienen unterschiedlichen Zwecken im Design- und Entwicklungsökosystem der Automobilindustrie.

Grafischer Vergleich von klassischen und adaptiven AUTOSAR-Plattformen nebeneinander

Hauptunterschiede

AUTOSAR-Classic-PlattformAdaptive AUTOSAR-Plattform
Ideal für eine Single- oder Multicore-Architektur und tief eingebettete ECUs.Ideal für neuere ECUs und soll auf HPC-Architekturen laufen, um diese besser zu nutzen.
Verwendet signalbasierte Kommunikation mit BUS-Netzwerken wie LIN oder CAN.Verwendet dienstbasierte Kommunikation mit Ethernet.
Definiert ein Betriebssystem (OS).Definiert den Ausführungskontext sowie eine Betriebssystemschnittstelle wie PSE51.
Statische Natur mit geringer Flexibilität.Bietet „geplante Dynamik“ während der Anwendungsbereitstellung mit flexibler Integration.
Fristen sind aufgrund der Echtzeitverarbeitung dringender.Weiche Echtzeitanforderung.
Beispiele sind Bremssysteme und Motorsteuerung.Beispiele hierfür sind die Verarbeitung von Sensorfusionsdaten und Over-the-Air-Updates (OTA-Updates).

Was ist AUTOSAR C++14?

Es ist ein Codierungsstandard für C++ Version 14 (ISO/IEC 14882:2014) und ein Artefakt oder eines der Ergebnisse bei der Definition der Adaptive AUTOSAR-Plattform, die Schnittstellenspezifikationen für APIs und Dienste bereitstellt. Dieser Abschnitt der AUTOSAR-Codierungsrichtlinien hat ursprünglich nur MISRA aktualisiert C++ 2008 – ein veralteter Programmierstandard. MISRA und AUTOSAR kündigten jedoch 2019 ihre Fusion an, um die Aktualisierung auf C++17 zu unterstützen. Dies ist die Standardsprache für viele moderne AUTOSAR-Elektroniklösungen geworden.

Tatsächlich sind diese Richtlinien so robust und optimiert, dass sie auf jede Branche angewendet werden können, die eine eingebettete Programmierung in C++ erfordert.

AUTOSAR C++14 Regeln und Abweichungen

AUTOSAR C++14 verfügt über 342 Regeln, um dem Benutzer ein klares Verständnis und eine Anleitung zu den Codierungsanforderungen zu vermitteln. AUTOSAR C++14-Codierungsregeln werden nach Verpflichtungsgrad klassifiziert.

  • Erforderliche Regeln. Obligatorisch, um die Einhaltung des Standards zu beanspruchen.
  • Beratungsregeln. Empfohlen, aber ohne Pflichtstatus.

Eine Abweichung von einem AUTOSAR-Standard, einer Regel oder einer Richtlinie kann jedoch zugelassen werden. Um das Abweichungskonzept nicht durch willkürlich abweichende Entwickler zu missbrauchen, müssen Freigaben für jede Abweichung beigefügt werden. Darüber hinaus werden die Regeln auch danach klassifiziert, ob sie von statischen Analysewerkzeugen automatisch durchgesetzt werden können.

  • Automatisiert kann vollständig durch statische Analysewerkzeuge unterstützt werden.
  • Teilweise automatisiert kann durch statische Analysewerkzeuge unterstützt werden, kann aber erforderlich sein. zusätzliche Praktiken wie Code-Review.
  • Nicht automatisiert kann nicht mit statischen Analysewerkzeugen unterstützt werden.

Die Verwendung von C++14 in Zusammenarbeit mit den AUTOSAR C++14-Richtlinien bietet Entwicklern die Möglichkeit, überlegene Compiler zu verwenden und verbesserten Zugriff auf verbesserte Test-, Verifizierungs- und Analysewerkzeuge. Es erlaubt, neue Entwicklungsmethoden wie zu verwenden kontinuierliche Integration / kontinuierliche Lieferung (CI/CD), wodurch Fehler im Lebenszyklus der Softwareentwicklung früher erkannt werden können.

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

Vorteile der richtigen Lösung in Ihrem AUTOSAR-Software-Toolkit

Finden Sie die richtigen Entwicklungswerkzeuge Die Sicherstellung der Softwarequalität ist eine Frage von Versuch und Irrtum. Aber das bedeutet nicht, dass Sie mit unbewährten Tools oder Strategien experimentieren müssen. Glücklicherweise sind die Vorteile der Automatisierung in Bezug auf Tests und Compliance eindeutig.

Probleme früher zu finden, kann die Dinge für alle, die an der Softwareentwicklung beteiligt sind, nur einfacher machen. Von Softwarearchitektur und Anwendungssoftware bis hin zu Diagnose und Validierung haben Parasoft-Lösungen alles im Blick.

Implementieren Sie die AUTOSAR C++14-Konformität, indem Sie sicheren und zuverlässigen Code für dauerhafte Vorteile bereitstellen, die sich auf Ihren Produkterfolg und Ihre Langlebigkeit auswirken und gleichzeitig die Arbeitskosten und die Markteinführungszeit reduzieren.

Erhöhen Sie die Codequalität und senken Sie die Fehlerkosten

Verhindern Sie Codefehler früher im Entwicklungsprozess, bevor sie später zu teureren Herausforderungen führen.

Erfüllen Sie die Prozessstandards der Industrie

Parasoft bietet die statische AUTOSAR C++14-Analyse als Lösung an, die von Prozessstandards wie ISO 26262, DO-178C, IEC 62304, IEC 61508, EN 50128 und mehr empfohlen wird.

Erfüllen Sie statische Analyse-Sicherheitstests (SAST)

Binden Sie AUTOSAR C++14-Sicherheitscodierungsrichtlinien als Teil Ihrer SAST-Strategie direkt in Ihren Softwareentwicklungslebenszyklus ein.

Intelligenter testen mit KI und ML

Parasoft integriert künstliche Intelligenz und maschinelles Lernen, um die Produktivität in den statischen AUTOSAR C++14-Analyse-Workflows Ihres Teams zu verbessern, indem die zuerst zu behebenden Verstöße gekennzeichnet und priorisiert werden.

Integrieren Sie AUTOSAR C++14 SA in Ihren CI/CD-Workflow

Die statische AUTOSAR C++14-Analyse von Parasoft lässt sich problemlos in Ihre optimierte CI/CD-Pipeline mit kontinuierlichen Tests integrieren, um schnell qualitativ hochwertige und sichere Software bereitzustellen.

Aus AUTOSAR C++14 erweitern und benutzerdefinierte Codierungsrichtlinien erstellen

Erstellen Sie mit dem Parasoft RuleWizard Ihre eigene benutzerdefinierte Codierungsstandardkonfiguration für Ihr Unternehmen.

Kombinieren Sie Codierungsstandards mit AUTOSAR C++14 für optimale Codequalität

Parasoft bietet die Aggregation MISRA mit all unseren anderen unterstützten Codierungsstandards wie CERT, CWE, OWASP, UL 2900 und mehr an.

Arten von Tools zur statischen Codeanalyse

Stellen Sie die Lösungen von Parasoft bereit, um statische Codeanalysen durchzuführen, unabhängig davon, in welcher Entwicklungsumgebung Sie arbeiten.

Best Practices für AUTOSAR

Wenn es um die Einhaltung von AUTOSAR C++14 geht, gibt es mehrere sehr vorteilhafte Vorgehensweisen. Hier ist eine Liste mit einigen der zu berücksichtigenden Methoden.

Code-/Peer-Reviews durchführen

Treffen Sie sich zusätzlich zur Einhaltung von AUTOSAR C++14 mit Ihren Kollegen aus der Softwareentwicklung und überprüfen Sie den Code des anderen systematisch auf Fehler und Verstöße gegen den Programmierstil. Es hat sich gezeigt, dass diese Aktivität die Codequalität beschleunigt und wesentlich verbessert.

Protokollieren Sie Ihre Abweichungen richtig

Jede Abweichung von der AUTOSAR C++14-Richtlinie erfordert eine gründliche Dokumentation zu Folgendem: welche Richtlinie, Geltungsbereich, Begründung, Sicherheitsgarantie, Konsequenzen und Minderung.

Code-Klarheit

Die Einhaltung von AUTOSAR C++14 hilft Ihnen, Code zu schreiben, der einfach zu lesen und leicht zu verstehen ist. Seien Sie nicht zu schlau und schreiben Sie kryptischen Code, der schwer zu verstehen oder leicht misszuverstehen ist. Sie möchten nicht, dass andere Ingenieure oder Sie selbst viel Zeit damit verbringen, einen Fehler in Ihrem Code zu entschlüsseln.

Code-Portabilität

Die Einhaltung von AUTOSAR C++14 hilft beim Schreiben von Code unter Berücksichtigung der Portabilität, da portabler Code (POSIX, ANSI C usw.) einfach und schnell auf andere Plattformen verschoben werden kann. Die Anpassung anderer Compiler oder anderer Betriebssysteme kann mit minimalen Codeänderungen erfolgen. Oft gibt es finanzielle oder geschäftliche Möglichkeiten, warum eine Migration auf ein anderes Betriebssystem oder Ziel erfolgen muss.

Reduzieren Sie AUTOSAR C++14-Rauschen

Einige Codekonstrukte können so geschrieben sein, dass sie einen AUTOSAR-C++14-Regelverstoß auslösen. Parasoft bietet eine Möglichkeit, dieses Rauschen wissentlich herauszufiltern.

Codekomplexität

Die Einhaltung von AUTOSAR C++14 hilft beim Schreiben von Code, der nicht viele Verzweigungen hat. Je mehr Verzweigungen, desto höher die Codekomplexität und desto höher die Anzahl der im Code gefundenen Fehler.

Code-Robustheit

Die Einhaltung von AUTOSAR C++14 hilft Ihnen, zuverlässigen Code zu schreiben, der nicht nur Szenarien für sonnige, sondern auch für regnerische Tage bewältigt. Inklusive Negativszenarien, die Ihre Bewerbung vorbereiten, wenn sie auf ungültige Daten stößt.

Wiederverwendbarkeit des Codes

Die Einhaltung von AUTOSAR C++14 hilft Ihnen, portablen Code zu schreiben, der in zukünftigen Produkten oder Projekten wiederverwendet werden kann. Dies verbessert die Produktivität und reduziert Arbeits- und Testkosten.

Beispielanwendungsfälle

Die Funktionen der offenen und standardmäßigen Softwarearchitektur in vielen modernen elektronischen Softwaresystemen für Kraftfahrzeuge werden heute für autonomes Fahren und Konnektivität verwendet.

Nehmen Sie beispielsweise fortschrittliche Fahrerassistenzsysteme (ADAS) wie LIDAR, mit denen Autos erkennen können, wenn sie Gefahr laufen, mit einem Objekt zusammenzustoßen. Auch der Parkassistent beim automatisierten Fahren setzt stark auf die AUTOSAR-Softwarearchitektur.

Dies sind nur zwei Anwendungsfälle, aber da die Konnektivität der adaptiven AUTOSAR-Plattform und Geräte für das Internet der Dinge (IoT) in Fahrzeugen immer häufiger und robuster werden, ist die Fähigkeit, Daten zur Anpassung zu messen, von entscheidender Bedeutung.

Automatisiertes AUTOSAR-Compliance-Reporting

Das Analyse-Dashboard von Parasoft mit automatisiertem AUTOSAR-Compliance-Reporting macht es einfach, den für die Zertifizierung erforderlichen Nachweis zu erbringen.

Grafischer Parasoft-AUTOSAR-C++-Konformitätsbericht, der die Anzahl und den Prozentsatz der konformen Regeln sowie Verstöße und Abweichungen anzeigt.

Für sicherheitskritische Anwendungen sollten Sie unsere TÜV SÜD-zertifizierte Lösung verwenden, um die Einhaltung von Standards und eine einfache Übernahme in Ihre Hochleistungsentwicklungsprozesse zu gewährleisten.

Erste Schritte

Das Tolle an der vorgeschlagenen AUTOSAR C++14-Konformität ist, dass sie in jeder Softwareentwicklungsphase eines Projekts eingeführt und verwendet werden kann. Noch besser ist, dass es auch dann effektiv ist, wenn ein Projekt oder Ihre Steuergeräte-Software unvollständig und teilweise codiert ist.

AUTOSAR-Herausforderungen

Die größte Herausforderung bei der Einführung der AUTOSAR C++14-Konformität besteht darin, dass eine große Menge Code eine große Anzahl von Warnungen erzeugen kann. Daher sollte der Fokus bei der Integration von AUTOSAR C++14-Compliance in ein Projekt darauf liegen, das Team so schnell wie möglich produktiv zu machen. Dadurch wird die Wahrscheinlichkeit minimiert, dass das Team von statischen Analysewarnungen überwältigt wird.

Da das Erreichen der AUTOSAR C++14-Konformität Teil der täglichen Routine jedes Entwicklers wird, können sie Ergebnisse schneller analysieren und Fehler effizienter beheben.

Auch die Reife des in der Entwicklung befindlichen Produkts spielt eine Rolle, da sie sich auf die Art und Weise auswirkt, wie die AUTOSAR C++14-Konformität integriert werden kann. Das Adoption Lifecycle Management funktioniert wie unten beschrieben.

  1. Bestätigen und verschieben. Dieser Ansatz ist für bestehende Projekte, die bereits auf dem Markt sind. Es wird nur wenig neuer Code entwickelt, sodass alle entdeckten Sicherheitsfehler und Sicherheitslücken zu den bestehenden technischen Schulden hinzugefügt werden.
  2. Eine Linie im Sand. Bestehende Projekte mit aktueller Entwicklung lassen Teams neuen Code verbessern, während er entwickelt wird, um weniger kritische Warnungen als technische Schuld aufzuschieben.
  3. Grüne Wiese. Neue Projekte folgen diesem Ansatz. Entwickler können die AUTOSAR C++14-Konformität von Anfang an in ihre Entwicklungsumgebungen integrieren, um einen hohen Qualitätsstandard als Code sicherzustellen.

Warum Parasoft?

Der Parasoft-Codeanalyse-AUTOSAR-Lösung, Parasoft C/C++test, erkennt komplexe AUTOSAR-C++14-Compliance-Laufzeitprobleme in einer AUTOSAR-Laufzeitumgebung früh in der Entwicklungsphase – ohne dass kostspielige Laufzeittests durchgeführt werden müssen. Dadurch werden Entwicklungsprozesse so verschlankt, dass alle davon profitieren.

C/C++test analysiert die Ausführungspfade durch den Code und findet AUTOSAR C++14-Compliance-Probleme wie Nullzeiger-Dereferenzierung, Division durch Null und Speicherlecks. Es sucht auch nach Sicherheitslücken wie Arithmetik bei einem Zeigeroperanden, Pufferüberläufen, nicht erreichbarem Code und cstdlib-Systemfunktionen

Ergebnisse von AUTOSAR C++14-Konformität von C/C++test Die Ergebnisse können im dynamischen Berichts-Dashboard von Parasoft angezeigt werden, wodurch eine automatisierte Nachbearbeitung und erweiterte Berichtsstrategien unter Verwendung historischer Daten ermöglicht werden.

Es ist einfach, die AUTOSAR C++14-Compliance-Ergebnisse für alle Builds im Laufe der Zeit zu sehen. Dies gilt selbst bei der Arbeit mit großen Codebasen und Legacy-Code, bei dem die Einsicht in den Code normalerweise schwierig ist. Sie können sich schnell auf die Qualität des neu hinzugefügten Codes konzentrieren.

Mit Widgets, die die AUTOSAR C++14-Compliance automatisch nachverfolgen, erhalten Benutzer einen dynamischen Einblick in den Compliance-Prozess und können auf einfache Weise automatische Berichte für Code-Audits und Zertifizierungsziele erstellen.

Häufig gestellte Fragen

Basissoftwaremodule (BSW) sind eine Sammlung von Softwaredateien, die bestimmte codierte Funktionen bereitstellen, die auf einem Steuergerät ausgeführt werden. Diese standardisierten Softwaremodule können Kommunikation, E/A, Speicher und mehr unterstützen.

Beispielsweise führen einige AUTOSAR-Basissoftwaremodule Aufgaben wie Busspiegelung, Diagnose und sogar Kryptografie aus, um Daten zu sichern.

Die drei Schichten sind:

  1. Anwendungsschicht
  2. Grundlegende Softwarearchitektur
  3. AUTOSAR-Laufzeitumgebung

ECU-spezifische (Electronic Controller Unit) und generische Module sind in drei Unterschichten enthalten, einschließlich der Dienstschicht, der ECU-Abstraktionsschicht und der Mikrocontroller-Abstraktionsschicht (MCAL).

RTE steht für „Runtime Environment“ und fungiert als eine Art Mittelweg zwischen der Anwendungsschicht und anderen Schichten. Es betreibt die Intra-ECU- und Interlayer-Kommunikation.

Als Teil der drei Schichten verfügt die ECU-Abstraktionsschicht über der MCAL-Schicht über Hardwarekomponententreiber und Komponenten für Schnittstellen. Das bedeutet, dass seine Aufgabe darin besteht, sicherzustellen, dass die oben genannte Schicht unabhängig von der Hardware auf dem Steuergerät arbeitet.

Die 2003 gegründete Gruppe von OEMs und anderen beteiligten Parteien umfasst unzählige große Namen wie Volkswagen und die Robert Bosch GmbH.

AUTOSAR C++14 bietet keine ähnliche Anleitung zum Erreichen der Konformität, zumindest nicht direkt. Da die AUTOSAR C++-Richtlinien jedoch auf MISRA C++ 2008 basieren, ist es sinnvoll, sich auf den MISRA-Standard zu beziehen, um nach Anleitungen zum Erreichen der Konformität zu suchen.

  • Erstellen Sie eine Compliance-Matrix, die angibt, wie jede Regel durchgesetzt wird.
  • Erstellen Sie ein Abweichungsverfahren.
  • Formalisieren Sie die Arbeitspraktiken innerhalb des Qualitätsmanagementsystems.

Die Erfüllung dieser Anforderungen bedeutet zusätzlichen Papierkram. Als erstes sollte eine Definition der Compliance-Matrix erfolgen.

Darüber hinaus muss ein Verfahren zur Behandlung von Abweichungen eingerichtet werden. Das Abweichungsverfahren formalisiert die Schritte, die unternommen werden müssen, wenn die Entwicklung von Spezifikationen oder Richtlinien abweichen muss.

Eine adaptive AUTOSAR-Plattform definiert eine Plattform für die Entwicklung von Fahrzeugsteuergeräten, die anspruchsvolle Funktionen wie fortschrittliche Fahrassistenzsysteme, Medienstreaming oder Software-Updates über das Internet bereitstellen.

C++ bietet die Sprachfunktionen, die zur Unterstützung der Anforderungen der AUTOSAR-Plattform bei der Anwendung eines objektorientierten Ansatzes, der Verwendung einer serviceorientierten Architektur, der Verwendung von POSIX und ähnlichen Betriebssystemen sowie der vollständigen Unterstützung auf 32- und 64-Bit-Mikrocontrollern erforderlich sind.

Statische Analyse ist der Prozess der Untersuchung des Quellcodes ohne Ausführung, in der Regel zum Auffinden von Fehlern oder zum Bewerten der Codesicherheit, -sicherheit und -zuverlässigkeit.

Das bedeutet, dass die statische Analyse auf teilweise vollständigen Code, Bibliotheken und Quellcode von Drittanbietern angewendet werden kann. Statische Analysetools helfen Softwareteams bei der Einhaltung von Programmierstandards wie MISRA C/C++, AUTOSAR C++14, SEI CERT oder Ihrer eigenen benutzerdefinierten Konfiguration.