eknows – Plattform für Software-Analyse

Extracting Knowledge from Software

Die Software ist zentraler Unternehmensbestandteil und enthält wichtiges Fachwissen, das aus Berechnungen, Formeln, Zustandsdiagrammen oder Entscheidungstabellen bestehen kann und meist lange gültig ist. Oft ist die Lebensdauer der Software länger als die Verweilzeit der Mitarbeiter*innen im Unternehmen.

Der Experte geht – die Software bleibt

Wie wichtig dieses Wissen ist wird in vielen Fällen erst klar, wenn es nicht mehr zur Verfügung steht. Entweder weil das Wissen für Änderungen oder neue Funktionen der Software notwendig ist, aber die Mitarbeiter*in nicht mehr da sind/ist oder weil man nicht mehr genau weiß, was die Software macht.

Neue Analyse-Plattform entwickelt

Deshalb hat das SCCH eknows entwickelt. Diese Analyse-Plattform hilft, dieses Wissen wieder aus dem Source-Code zu extrahieren und es in verständlicher Weise darzustellen. Je nach Domäne können das mathematische Formeln, Entscheidungstabellen, Datenflüsse oder berechnete Kurven sein.

Die Darstellung kann auch interaktiv erfolgen (z. B. analysieren von Programmpfaden mit bestimmten Parameterwerten). Das Analyseergebnis kann eine druckfertige Dokumentation, eine interaktive Darstellung der Software oder auch wieder generierter Code in einer anderen Sprache sein.

Unser Angebot
Wir bietet Ihnen folgende Leistungen an:

  • Analyse des Fachwissens von Software aus dem Quellcode
  • Erstellung einer maßgeschneiderten Fachdokumentation
  • Interaktive Dokumentation und Verhaltensanalyse der Software

Dabei erfolgt das Vorgehen in enger Abstimmung mit den Fachabteilungen des Kunden.

Unsere Beispiele

Die Art der Fragestellungen und Motive hinter einem Analyse- und Re-Engineering Projekt können sehr unterschiedlich sein. Im Wesentlichen geht es dabei aber immer um die Wartung oder Neugestaltung des fachlichen Aspekts der betrachteten Software, das Reengineering der eigentlichen Softwarearchitektur spielt im betrachteten Kontext meist keine oder nur eine untergeordnete Rolle.

Beispiel 1: erstellen einer druckfertigen Dokumentation

Ein wesentliches, unternehmenskritisches Asset eines Unternehmens ist eine umfangreiche Code-Basis für das Electrical Engineering, die mit Programmiersprachen wie C++ und Fortran erstellt wurde. Hier handelt es sich nicht nur um über die Jahre entstandenen Code, vielmehr wird fachlicher Code auch neu geschrieben. Mit Hilfe statischer und symbolischer Analysen wird die Erstellung der fachlichen Dokumentation weitestgehend automatisiert. Das stellt die Synchronisation zwischen Programmcode und fachlicher Dokumentation und damit deren Konsistenz sicher. Dabei kann die gesamte Programm-Dokumentation automatisch generiert werden, wobei bis zu 70 Prozent der Dokumente ohne zusätzliche Änderungen im Code erzeugt werden können. Die restlichen Teile können durch Ergänzungen im Programmcode abgedeckt werden.

Beispiel 2: Wissen aus Legacy Code generieren

Für die Erstellung von Statistiken und Berichten wird eine hohe Anzahl von PL/SQL Skripte verwendet. Die Herausforderung ist, dass diese Skripte über die Jahre bereits mehrmals an eine veränderte IT-Infrastruktur angepasst wurden. Beim Wechsel der Datenbanksysteme wurden die Skripte teils automatisch migriert. Mittlerweile ist dadurch nicht mehr 100%ig feststellbar aus welchen Datenquellen die Ergebnisse stammen und auf welchen Grundlagen sie berechnet wurden. Die Komplexität der Gesamtheit der PL/SQL Skripte und ihrer Abhängigkeiten, sowie die nicht mehr aktuelle Dokumentation verhindern die durchgängige Nachvollziehbarkeit der Berechnungen. Somit ist auch eine Wartung der Software kaum mehr möglich. Mit Hilfe verschiedener Analysemethoden auf Basis des PL/SQL Quellcode werden die Abhängigkeiten aufgelöst und die Zusammenhänge vereinfacht und dokumentiert.