Ein Angebot von

Einstieg in die statische Modellanalyse

| Autor / Redakteur: Dr. Simon Rösel* / Sebastian Gerstl

Bild 1: Simulink-Modell vor Anwendung von Richtlinien
Bild 1: Simulink-Modell vor Anwendung von Richtlinien (Bild: Model Engineering Solutions GmbH)

Mit Hilfe Statischer Modellanalysen lässt sich funktional sichere Software, z.B. für Steuergeräte, schnell und sicher entwickeln. Allerdings ist es dringend angeraten, sich dabei an bestimmte Richtlinien zu halten.

Die modellbasierte Entwicklung ist eine moderne Methode, um eingebettete Regel- und Steuersysteme zu entwickeln. Das gewünschte Systemverhalten wird durch ein Modell als zentrales Entwicklungsartefakt beschrieben. Entsprechende Teile des Modells bilden den Ausgangspunkt für die automatisierte Codegenerierung für Steuergerätesoftware, die der Laufzeitumgebung angepasst wird und anschließend auf den Controller geladen werden kann. Dabei ist der Einsatz von Modellierungsrichtlinien im Hinblick auf Funktionale Sicherheit und Qualitätssicherung unverzichtbar.

Die Anwendung von Richtlinien und Standards

Im Automotive-Bereich sind die meisten Steuergeräte-Funktionen, die mit Hilfe der modellbasierten Softwareentwicklung entstehen, sicherheitsrelevant. Standardisierte verlässliche Methoden sind somit unerlässlich. Für die Entwicklung elektrisch/elektronischer Kraftfahrzeugsysteme spielt die ISO 26262 („Road Vehicles – Funtional Safety“) als zentrale ISO-Norm eine herausragende Rolle [1]. Die ISO 26262 widmet das komplette Kapitel 6 der Produktentwicklung auf Softwareebene und empfiehlt dabei explizit den Einsatz von semi-formalen Modellierungssprachen, wie z.B. Simulink.

Neben Fragen der Funktionalen Sicherheit steht in Softwareentwicklungsprozessen die Qualitätssicherung im Vordergrund. Beide Aspekte hängen wesentlich vom effizienten Einsatz von Modellierungs- und Konformitätsrichtlinien ab. Dabei gilt der Grundsatz, dass die Modellqualität für den gesamten Entwicklungsprozess entscheidend ist und damit auch die Qualität der generierten Software bestimmt. Weiter finden auch bekannte Elemente der statischen Quellcodeanalyse (z.B. Range Checking, Komplexitätsanalysen, Prüfung starker Typisierung) ihre Entsprechung in der statischen Modellanalyse.

Quellen für Modellierungsrichtlinien

Modellierungsrichtlinien lassen sich grob hinsichtlich des relevanten Modellierungsgegenstandes, der Werkzeugspezifik und der jeweiligen Ziele unterscheiden. Design-Aspekte von Simulations- und Controller-Modellen stehen bei den MathWorks Automotive Advisory Board (MAAB)-Regeln im Vordergrund und fördern durch die Einhaltung von Best Practices die Les- und Wartbarkeit [2]. Die MISRA Simulink/Stateflow- und MISRA TargetLink-Regeln stellen auf Sicherheitsaspekte der Modelle und des daraus zu generierenden Codes ab [3] [4].

Die dSPACE TargetLink Modeling Guidelines beziehen sich ebenfalls auf die effiziente Code-Generierung mit TargetLink [5]. Insbesondere schließen diese Richtlinien die Verwendung von Modellierungsmustern aus, die inkompatibel mit der automatischen Codegenerierung sind, oder zu ineffizientem Code führen. Mit der gleichen Intention werden auch einheitliche Festlegungen für Modellkonfigurationen und Code-Generator-Einstellungen getroffen.

Steht der Entwurf sicherheitsrelevanter Software im Vordergrund, finden die MES Functional Safety Guidelines, die aus den Anforderungen der ISO 26262 und anderen Sicherheitsstandards abgeleitet sind, Anwendung [6]. Zur optimalen Vorbereitung auf dynamische Modelltests dient das MES Fit for Testing Richtliniendokument [7]. Hier kommen insbesondere Regeln zum Tragen, die eine eindeutige Beziehung zwischen Modell- und Testobjekten sowie die automatische Testbed-Generierung unterstützen. Die vollständige Abdeckung aller relevanten Aspekte erfordert eine sinnvolle Kombination der verschiedenen Regelwerke.

Ziele für den Einsatz von Modellierungsrichtlinien

1. Vermeidung nicht-robuster Modellierungstechniken: Um nicht-robuste Modellierungstechniken zu umgehen, ist vor allem die Definition eines „Safe Subset“, d.h. die Festlegung einer Untermenge sicherer syntaktischer Elemente der jeweiligen Modellierungssprache notwendig.

2. Erhöhung von Effizienz und Sicherheit: Wesentliche Maßnahmen, um dieses Ziel zu erreichen, sind die einheitliche Modell- und Werkzeugkonfiguration sowie einheitliche, gesicherte Einstellungen für Codegenerierung und -optimierung. Des Weiteren können bekannte ineffiziente oder funktional riskante Modellierungsmuster, beispielsweise die Verwendung von Gleitkommavariablen für Boolesche Signale, durch Modellierungsrichtlinien verboten werden.

3. Bessere Lesbarkeit, Wiederverwendung, Erweiterbarkeit, Wartbarkeit: Diese Ziele können durch Vorgaben, die das graphische Layout, Namenskonventionen sowie spezifische Restriktionen für die Verwendung von Modellierungselementen betreffen, erreicht werden. Insbesondere wird dadurch die verteilte Entwicklung, beispielsweise zwischen OEM und Zulieferer, gefördert.

4. Einhaltung von Sicherheitsstandards: Die Einhaltung von Sicherheitsstandards (z.B. IEC 61508, ISO 26262, ISO 25119, DO-178C) stellt ein übergeordnetes Ziel dar (s.u.).

Bild 2: Simulink-Modell nach Anwendung von Richtlinien
Bild 2: Simulink-Modell nach Anwendung von Richtlinien (Bild: Model Engineering Solutions GmbH)

Modellstruktur-Analyse und Komplexitätsreduzierung

Die Wart- und Testbarkeit von Modellkomponenten hängt wesentlich von einer sinnvoll gewählten Modellarchitektur ab. Die Herausforderung liegt hierbei darin, Funktionalitäten so zu kapseln, dass Module beherrschbarer Komplexität entstehen, die durch effektive Interfaces gekoppelt sind. Ein weiterer Aspekt, der bei der Modellstrukturanalyse eine Rolle spielt, ist die Vermeidung von Model Clones [8]. Solche semantisch äquivalenten Teilstrukturen reduzieren die Wartbarkeit des Modells deutlich und sollten deshalb vermieden werden. Um Modelle automatisiert hinsichtlich dieser Fragestellungen zu analysieren, kommen in der Praxis verschiedene Metriken zum Einsatz. Neben der Anzahl relevanter Sprachkonstrukte gehören die Metriken local complexity und global complexity sowie die für Modelle adaptierte Halstead-Metrik zu den wichtigsten Vertretern [9].

Vorgaben von Standards wie ISO 26262 und IEC 61508 zu Richtlinien und Designprinzipien

Als generische Norm für sicherheitsrelevante E/E/PE-Systeme definiert die IEC 61508 eine Reihe von Maßnahmen, die sowohl den Entwicklungsprozess als auch das Produkt betreffen, um die Sicherheit des Systems zu gewährleisten. Als kraftfahrzeugspezifische Auslegung fordert die ISO 26262 in Kapitel 6 („Product Development at the Software Level“) die Berücksichtigung einer Reihe von Aspekten (Topics), die je nach Automotive Safety Integrity Level (ASIL) der zu entwickelnden Funktion unterschiedliche Relevanz haben [1].

Bild 3: ISO 26262-6, § 5.4.7, Tabelle 1 (o keine Empfehlung / + empfohlen / ++ sehr empfohlen)
Bild 3: ISO 26262-6, § 5.4.7, Tabelle 1 (o keine Empfehlung / + empfohlen / ++ sehr empfohlen) (Bild: Model Engineering Solutions GmbH)

Daher muss beim Einsatz von Richtlinien für sicherheitsrelevante Softwarekomponenten beachtet werden, dass die von der ISO genannten Topics adressiert werden, in dem die abgeleiteten Regeln am Modell (und im Code) umfassend geprüft werden, um, falls nötig, entsprechende Anpassungen vorzunehmen. Die speziell für Modellierungs- und Coderichtlinien relevanten Aspekte aus der ISO 26262 sind in Abbildung 3 zusammengefasst. Teil 6 der ISO 26262 enthält darüber hinaus auch konkrete Implementierungsvorgaben zum Design von Softwaremodulen. Diese dienen hauptsächlich dazu, die korrekte Ausführung von Programmteilen innerhalb von Modulen sicherzustellen sowie die Schnittstellenkonsistenz zwischen Modulen zu erreichen. Die für die modellbasierte Entwicklung relevanten Topics sind in Abbildung 4 zusammengefasst.

Bild 4: ISO 26262-6, § 8.4.4, Ausschnitt Tabelle 8 mit Aspekten, die für die modellbasierte Softwareentwicklung relevant sind (+ empfohlen / ++ sehr empfohlen)
Bild 4: ISO 26262-6, § 8.4.4, Ausschnitt Tabelle 8 mit Aspekten, die für die modellbasierte Softwareentwicklung relevant sind (+ empfohlen / ++ sehr empfohlen) (Bild: Model Engineering Solutions GmbH)

Des Weiteren enthält ISO 26262-6 abstrakte Prinzipien zum Entwurf der Softwarearchitektur, die darauf abzielen, Fehler, die durch hohe Komplexität entstehen, zu reduzieren. In vielen Fällen können auch hier konkrete Richtlinien für den modellbasierten Ansatz abgeleitet werden, die für eine Konformitätsprüfung bezüglich der Prinzipien der ISO herangezogen werden können [9].

Continuous Integration von statischer Modellanalyse

Für den praktischen Einsatz von Modellierungsrichtlinien sind statische Modellanalysen fortlaufend während des Entwicklungsprozesses automatisiert zu integrieren. Dies gilt insbesondere für Prüfroutinen zur Richtlinienkonformität. Als Grundlage der Automatisierungs-Infrastruktur werden in der Regel Jenkins-Server eingesetzt. Diese sind für die Ausführung verschiedener Aufträge von Modell-Ingenieuren, Modul-Testern und Software-Testern konfiguriert. Insbesondere können statische Modellanalysen, häufig im nahtlosen Zusammenspiel mit Versionsverwaltungssystemen, automatisiert ausgewertet werden und somit Qualitätsschranken ressourcenschonend und effizient überprüft werden.

Drei Wege zur Requirements Traceability Matrix

Drei Wege zur Requirements Traceability Matrix

31.10.19 - Um Safety-Normen wie ISO 26262 oder IEC 61508 zu erfüllen, ist eine nachweisliche Rückverfolgbarkeit der Anforderungen nötig. Dabei wird häufig auf eine Tracebility Matrix in Form eines Excel-Sheets zurückgegriffen. Doch auch wenn man damit die Normen nominell erfüllt, reicht dies für ein funktionell wirklich sicheres System meist nicht aus. lesen

Paradigmenwechsel: Wann lohnt der Technologieumstieg – und wie hilft MBSE dabei?

Paradigmenwechsel: Wann lohnt der Technologieumstieg – und wie hilft MBSE dabei?

10.04.19 - Mit dem Flugzeug zum Nachbarn, mit dem Fahrrad nach New York: Das hört sich idiotisch an, aber nur weil wir beide Vorgehen sehr gut kennen und Aufwand und Nutzen genau abschätzen können. Anders sähe es aus, wenn wir uns für den Einsatz einer Fortbewegungsmethode entscheiden sollten, die einem Paradigmenwechsel entspricht, mit dem wir keinerlei Erfahrung haben. Und damit sind wir beim eigentlichen Dilemma angelangt. lesen

Model Based Systems Engineering: So führen Sie MBSE erfolgreich ein

Model Based Systems Engineering: So führen Sie MBSE erfolgreich ein

09.04.19 - Wenn es um die Einführung modellbasierten Systemdesigns geht, scheinen Unternehmen manchmal etwas blauäugig vorzugehen: Tool kaufen, Mitarbeiter schulen, fertig. So einfach ist die Sache nicht. Wer nicht bedacht an MBSE herangeht, beraubt die Systemmodellierung um einige ihrer stärksten Eigenschaften lesen

Literaturverzeichnis

[1] International Organization for Standardization, ISO 26262: Road vehicles - Functional safety, 2011.

[2] MathWorks Automotive Advisory Board (MAAB), „Control Algorithm Modeling Guidelines Using MATLAB, Simulink, and Stateflow (Version 3.0)“, 2012.

[3] MIRA Limited, „MISRA AC SLSF: Modelling design and style guidelines for the application of Simulink and Stateflow“, 2009.

[4] MIRA Limited, „MISRA AC TL: Modelling style guidelines for the application of TargetLink in the context of automatic code generation“, 2007.

[5] dSpace GmbH, „Modeling Guidelines for dSpace TargetLink (Version 4.0.3)“, 2016.

[6] Model Engineering Solutions GmbH, „Functional Safety Modeling Guidelines“, 2015.

[7] Model Engineering Solutions GmBH, „MES Fit for Testing,“ 2018.

E. Salecker und I. Stuermer, „JUST SIMPLIFY: Clone Detection for Simulink [8] Controller Models“, SAE Int. J. Passeng. Cars – Electron. Electr. Syst., 2016.

[9] F. Bachmann und H. Dörr, „Analysis and Improvement of Model Architectures for Safety Related Systems“, SAE Technical Paper, 2018.

(Der Beitrag wurde mit freundlicher Genehmigung des Autors dem Embedded Software Engingeering Kongress Tagungsband 2018 entnommen.)

Dr. Simon Rösel ist seit 2017 Software Engineer für den MES Model Examiner (MXAM).
Dr. Simon Rösel ist seit 2017 Software Engineer für den MES Model Examiner (MXAM). (Bild: Model Engineering Solutions GmbH)

Autor

* Dr. Simon Rösel hat an der Humboldt-Universität zu Berlin im Bereich Mathematische Optimierung promoviert. Im Zentrum seiner Tätigkeit bei MES stehen die Entwicklung von Checks zur automatisierten Richtlinienüberprüfung, z.B. im ISO 26262-Kontext, und die Unterstützung von Kunden- und Forschungsprojekten. Dabei gilt sein besonderes Interesse der Frage, wie Modelle effizient in Entwicklungsprozessen eingesetzt werden können.

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 46229689 / Entwurf)