Software für PC-Anwendungen oder Applikationssoftware für Maschinen und Anlagen

Viele Fundstellen der statischen Code-Analyse lassen sich per Quickfix beheben.

Bild 02: Viele Fundstellen der statischen Code-Analyse lassen sich per Quickfix beheben (Quelle: Codesys; Grafik: oa)

Auswahl von Regeln für die statische Code-Analyse.

Bild 03: Auswahl von Regeln für die statische Code-Analyse. (Quelle: Codesys; Grafik: oa)

Ob Software für PC-Anwendungen oder Applikationssoftware für Maschinen und Anlagen – „stinkende“ Problemstellen kann es in allen Bereichen geben. Problematisch können unter anderem Code-Stellen sein,

  • in denen mehrfach auf Ausgänge geschrieben wird,

  • Code im Projekt zwar angelegt ist, aber nicht aufgerufen wird bzw. nicht erreichbar ist,

  • Programmbausteine angelegt wurden, die aber keinen Code beinhalten,

  • zu wenig Kommentare hinterlegt wurden, was eine spätere Überarbeitung erschwert,

  • identisch deklarierte Variablen in unterschiedlichen Objekten auftreten und somit verwechselt werden können,

  • implizite Konvertierungen vorgenommen werden, die das System gegebenenfalls anders ausführt als vom Applikationsprogrammierer vorgesehen,

  • Anweisungen auskommentiert und nicht gelöscht wurden, sodass die Kommentare vermuten lassen, dass solche Stellen einfach vergessen wurden,

  • eine bestimmte Variable geschrieben, aber nie wieder gelesen wird oder

  • Divisionen mit Variablen durchgeführt werden, die unter Umständen zu einer Division durch „0“ führen können.

Für Automatisierer ist das Risiko sogar noch größer: Während Softwareentwickler für Desktop- oder mobile Apps im schlimmsten Fall einen Systemabsturz und die Verärgerung der Anwender riskieren, kann es für Automatisierer um viel Geld gehen. Zum Beispiel dann, wenn sich die Inbetriebnahme von Maschinen und Anlagen deutlich verzögert, einfach deshalb, weil die „Stinkestellen“ Ärger machen. Akute Fragen wie „Warum wird dieser Code nicht ausgeführt?“ oder „Warum ändert sich der Wert dieser Variable plötzlich?“ müssen dann durch aufwendiges Debugging beantwortet werden. Noch teurer kann es werden, wenn Problemstellen erst nach längerer Laufzeit einen Ausfall von Maschinen oder Anlagen verursachen.

Manuell ist eine systematische Suche nach Problemstellen gerade in komplexeren Projekten nahezu unmöglich. Um diese zu finden, verwenden Informatiker für Desktop- oder App-Soft- ware meist Zusatztools zur statischen Code-Analyse. Durch formale Prüfung des Quelltextes können Fehler so frühzeitig entdeckt werden. Leider lassen sich die vielen verfügbaren Tools, wie Lint, „FxCop" oder „CodeIt.Right", nur für Programmcode in Hochsprachen anwenden – und damit nicht für Automatisierer [2].

Für die Anwender des herstellerunabhängigen Entwicklungssystems Codesys ist ein Zusatztool verfügbar, das genau dieses Auffinden von problematischen Codestellen automatisiert durchführt: Codesys Static Analysis.

2 / 5