Software-Analyse hebt in Programmen verstecktes Wissen

Presseaussendung vom 04.03.2020

Seit 20 Jahren betreibt das Software Competence Center Hagenberg (SCCH) anwendungsorientierte Forschung und setzt dieses Wissen in Projekten in verschiedensten Bereichen ein. Daraus ist eKNOWS entstanden: eine umfassende Plattform, die Fach-wissen, das in den Programmen steckt, wieder nutzbar macht. 
Software ist ein zentrales Asset in Unternehmen zur Steuerung von Produktion, Prozessen und Logistik. Sie wurde oft über Jahrzehnte entwickelt und enthält unternehmenskritisches Know-how von unschätzbarem Wert. Da die Programme oft jahrelang reibungslos funktionierten, musste sich niemand damit auseinandersetzen. So ging wertvolles Domänenwissen verloren. Das wird deutlich, wenn es für Änderungen oder eine neue Funktionalität nicht mehr zur Verfügung steht. Erst recht, wenn die Mitarbeiter, die das Programm entwickelt oder betreut haben, das Unternehmen verlassen. Zudem erfordert die Transformation bestehender Systeme in die vernetzte Welt der Industrie 4.0 oftmals einen elementaren Umbau der Software. In diesen Fällen bilden die Quelltexte der Programme die einzige Basis für eine Wiederherstellung des Wissens. „Unsere Forschung hat zu einem Framework namens eKNOWS (Extracting Knowledge from Software) geführt, mit dem wir Software analysieren und verstecktes Wissen extrahieren können“, erklärt Dr. Thomas Ziebermayr, Leiter des Bereichs Software Science am SCCH. 

Qualitätsanalysen für die Automatisierungsindustrie

Um Wissen aus einem Programm zu gewinnen, muss man den Quellcode analysieren. Analysewerkzeuge gibt es zwar für ein breites Anwendungsfeld, jedoch kaum im Bereich Automatisierung. Denn Automatisierungsstraßen bestehen aus zahlreichen Einzelkomponenten, die alle leicht unterschiedliche Programmierstandards nutzen. eKNOWS wurde für SPS (Speicherprogrammierbare Steuerungen) adaptiert und ist eines der wenigen Werkzeuge für Qualitätsanalysen in der Automatisierungsindustrie. Damit kann das Fachwissen der Ingenieure, das im Source Code steckt, wiederhergestellt werden. Je nach Domäne sind das Berechnungen, Formeln, Datenflüsse, Zustandsdiagramme oder Entscheidungstabellen. Produktionstechniker benötigen etwa mathematische Formeln als Entscheidungsgrundlage oder für den Nachweis der korrekten Berechnung. Aber sie wissen nicht, wie diese Formeln im Programm ausgeführt werden. 

eKNOWS: Vom Einzelfall zur sprachunabhängigen Plattform

Über die Jahre folgten zahlreiche Softwareanalysen in unterschiedlichen Umgebungen von Industrieanwendungen bis zu Banken und Versicherungen. So haben die Experten des SCCH schließlich eine universelle Plattform mit breiter Sprachunterstützung entwickelt. „Unsere Plattform arbeitet mehr oder weniger sprachunabhängig. Dank der breiten Palette an fertigen Analysen und Anwendungsfällen kann eKNOWS für jedes neue Projekt adaptiert werden, wodurch wir sehr schnell zu einer Lösung kommen. Dabei konzentrieren wir uns auf jene Sonderfälle, in denen keine Standardsprachen eingesetzt werden, wie eben im Automatisierungsbereich“,  bekräftigt Ziebermayr. 

Sicherstellung von Wissen und vielseitige Nutzung

Ziel ist die möglichst automatisierte Extraktion bzw. Regenerierung von Fachwissen aus vorhandenem Quellcode, um daraus neue, nutzbringende Artefakte zu erstellen. Aufbauend auf den Analyseergebnissen kann das Wissen maßgeschneidert dargestellt werden: „Das  reicht von der interaktiven Dokumentation und Verhaltensanalyse bis zu neuem Programmcode in einer anderen Sprache. eKNOWS findet heraus, ob Regeln eingehalten wer-den, erkennt ob die Software-Architektur passt und ob sie gut oder schlecht strukturiert ist. Qualitätsanalysen sind wichtig, denn Software wird zunehmend agil entwickelt. Das heißt, der Programmierer muss immer sofort wissen, ob alles passt, um es laufend zu berücksichtigen. Daher müssen Fehlermuster schnell erkannt werden, um sie zu eliminieren. Zusätzlich können Testfälle generiert oder Korrektheitsprüfungen erstellt werden“, führt Ziebermayr aus. Das in der Software abgebildete Wissen kann automatisiert in für Menschen lesbarer Dokumentation und in maschinell verarbeitbaren Spezifikationen abgebildet werden. Das sichert eine signifikante Zeit- und Kostenersparnis. Das wiedergewonnene Wissen erleichtert Optimierung und Wartbarkeit der Programme und hilft Altlasten zu identifizieren und zu beseitigen – etwa im Fall der Migration auf eine neue Technologie.