Static Analysis Network Days

Verifysoft lädt ein zum „Static Analysis Network on the road”

Statische Code-Analyse auch für Performance- und Energieverbrauchsoptimierung

Statische Code-Analyse und dynamische Test zur Laufzeit sind zwei komplementäre Verfahren, um die Qualität und Sicherheit von Software zu optimieren.
Die Statische Code-Analyse überprüft und bewertet den Code: unter anderem werden Fehler aufgedeckt und die Einhaltung von Programmierrichtlinien geprüft. Während der Tests zur Laufzeit (dynamische Analyse) wird dann überprüft, ob die Software das tut, was sie tun soll. Das tatsächliche Verhalten wird mit den Requirements abgeglichen.
Um gute und sichere Software zu erstellen, müssen also zwingend beide Verfahren – die statische Analyse und die dynamischen Tests – eingesetzt werden.

Bei der Statischen Analyse wird die Applikation nicht ausgeführt. Diese Analyse kann auch im Rahmen von Walkthroughs oder etwas formaler durch eine Inspektion manuell erfolgen. Die Qualität dieser manuellen Analysen hängt jedoch stark von der Tagesform der Mitarbeiter ab und ist bei sehr großen Codebasen sehr herausfordernd. Daher ist der Einsatz von statischen Codeanalysetools dringend empfohlen. Diese Werkzeuge sind in den letzten Jahren äußerst leistungsfähig geworden. Analysen erfolgen modulübergreifend und über Millionen von Codezeilen mit sehr hoher Qualität. Da die Software nicht ablauffähig sein muss, können die statischen Analysen schon früh in der Projektphase eingesetzt werden – auf einer Zeitachse des Entwicklungsprozesses wird die Testprozess nach links verschoben. Man redet daher von „Shift-Left“. Fehler werden hierdurch früher aufgedeckt, wenn die Korrektur noch mit geringem Zeit- und Kostenaufwand möglich ist. Wenn ein statisches Analysetool einmal aufgesetzt ist, läuft die Analyse ohne Zutun von allein. Im Idealfall sollte ein statisches Analysetool an allen Entwicklerplätzen verfügbar sein, sodass der Code erst dann eingecheckt wird, wenn er vom Tool als „sauber“ bewertet worden ist.

Neben der Überprüfung von Syntax und mit Einschränkungen auch der Semantik, decken statischen Analysetools vor allem Kontrollfluss- und Datenflussanomalien sowie Nebenläufigkeitsprobleme wie Race Conditions auf. Dies sind Probleme, die bei den dynamischen Tests nicht oder nur sehr schwer zu erkennen sind. Die Tools überprüfen des Weiteren auf Coding-Standards und Wartbarkeit. Meist werden auch Architekturanalysen erstellt und Sicherheitslücken aufgedeckt.
Die Automotivenorm ISO 26262 fordert die Statische Analyse bereits ab ASIL B. Kontroll- und Datenflussanalysen sind ab ASIL C vorgeschrieben, aber bereits für niedrigere Level empfohlen.

Seit Kurzem werden statische Analysetools auch zur Verbesserung der Software-Performance angeboten. Dies ist wichtig für Anwendungen, die zeitkritische Aufgaben zu erfüllen. So muss z.B. ein Bremsmanöver innerhalb eines engen Zeitfensters ausgeführt werden oder es muss möglich sein, auf Regelabweichungen ohne lange Totzeiten zu reagieren.

Ein neues Einsatzgebiet der statischen Code-Analyse ist die Energieverbrauchsoptimierung, die dabei hilft, „grüne“ Software zu erstellen. Auch müssen mobile, batteriebetriebene Geräte wie Handys, Tablets oder Infusionspumpen lange Laufzeiten bei begrenzten Akkukapazitäten gewährleisten.
Die Anwendungsfelder der Statischen Codeanalyse sind in den letzten Jahren stetig gewachsen.
Die Verifysoft Technology GmbH bietet vom 25. bis 27. September 2024 in Mannheim, Friedrichshafen und München Informationstage „Static Analysis Network on the Road“ an, bei denen sich Softwareentwickler, Tester, Projekt- und Qualitätsverantwortliche über die neuesten Entwicklungen informieren können.
Anmeldung und weitere Informationen: https://www.verifysoft.com/de_static_analysis_network-2024.html


Über Polina Handzhiyska