Hallo, gibt es bei der Sicherheitseinstufung für ASIL eine Unterscheidung zwischen C und C++ Programmiersprache? Wenn C++ so beschränkt wird, dass es verwendet werden darf, welchen Vorteil hat es dann noch?
hi asil zielt auf funktionale sicherheit ab. ob c oder c++ ist dabei im ersten schritt egal. c++ biete die Möglichkeit automatische code generierung zu nutzen und so Funktionen von z.b. matlab in auf der ziel hw ausführbaren code zu überführen. mit c geht dies, eher eingeschränkt. gruß marcel
Hallo, die ISO 26262 macht keine direkten Einschränkungen bezüglich der verwendeten Programmiersprache (es werden sowieso Elemente nur "empfohlen" oder "stark empfohlen"). Damit kann man sowohl C als auch C++ verwenden. Allerdings empfiehlt die ISO 26262, sich Gedanken zur verwendeten Programmiersprache zu machen und entsprechende Einschränkungen zu definieren. Um die anderen Anforderungen (Testbarkeit etc.) zu erfüllen, können je nach dem höchsten ASIL-Level verschiedene Einschränkungen notwendig werden. Dies kann z.B. durch das Verwenden der MISRA-C oder C++-Regeln erfüllt werden. Explizit auf C++ bezogen ist allerdings die starke Empfehlung ab ASIL B keine dynamischen Objekte oder Variablen zu verwenden, oder diese während ihrer Erzeugung zu testen. Andere Einschränkungen laufen auch der "natürlichen" Verwendung von C++ entgegen (Variablennamen nur einmal verwenden, keine implizite Typkonvertierung, kein versteckter Daten- oder Programmfluss), dies gilt mehr oder weniger jedoch auch für C. Ähnliches gilt für die starke Architekturempfehlung, das Verknüpfen von Softwareelementen stark einzuschränken (also z.B. nicht durch Funktions-Overloading den Linker die Funktion automatisch aus einer Auswahl selektieren zu lassen). Ich kenne allerdings durchaus Implementationen von sicherheitsrelevanter Software in C++, wobei die Vorteile allerdings auch erheblich reduziert wurden. Da aber speziell für die Implementation der sicherheitsrelevanten Softwareteile gilt, dass sie so einfach wie möglich sein sollten (alleine um der Anforderung genüge zu tun, dass nichts in der Software enthalten ist, was nicht auch in der Anforderungsbeschreibung definiert ist, und jede Anforderung getestet umgesetzt worden ist), ist die Wahl der Implementationssprache ehrlich gesagt relativ nebensächlich. Da das Umsetzen der ISO 26262 ein erhebliches praktisches Wissen voraussetzt (der TÜV geht davon aus, dass ein Ingenieur mindestens 2 Arbeitsjahre Erfahrung bei der Anwendung der ISO 26262 haben muss, wenn er die Rolle eines ISO 26262 Functional Safety Managers übernehmen soll), sollte Dir ein entsprechend kompetenter Ansprechpartner zur Verfügung stehen, wenn Du ISO 26262 relevante Software entwickeln sollst. Sollte das nicht der Fall sein, solltest Du sehr genau auf den Umfang Deiner persönlichen Haftbarkeit (Straf- und Zivilrechtlich) achten. Schöne Grüße, Martin P.S.: die oben genannte automatische Code-Generierung durch modellbasierte Softwareentwicklung geht übrigens mit C und C++ gleich gut, das ist also kein Unterscheidungskriterium. Allerdings ist hier die Wahl der "Zwischen-"Sprache noch irrelevanter als bei der händischen Kodierung.
Du kannst da jede Programmiersprache verwenden die du willst. ASIL geht nur darauf ein Wie du etwas entwickelst, also der Prozess dahinter. Die Beschreibung dazu nennt sich in der Automobilindustrie ISO 26262. Für andere Industriegbiete wird es Vergleichbares geben, das weiß ich allerdings die ISO Nummer nicht. Das einige Programmiersprachen hier Vorteile gegenüber anderen haben ist erst mal nebensächlich für die Auswahl. Hat jedoch gewaltigen Einfluss auf den Aufwand den man treiben muss um ASIL konform entwickeln zu können. zb. Verlangt eine ASIL konforme Implementierung das Codeanalysen durchgeführt werden. Nimmt man C gibt es Tools die zb MISRA Regeln automatisch abprüfen. Nimmt man eine Programmiersprache für die es solche Tools nicht gibt, muss man eine solche Analyse bei Hand machen. Das ist übrigens einer der Hauptgründe warum Assembler fast keine Rolle mehr spielt. Und nur noch da verwendet wird wo es keinen anderen Weg gibt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.