Statische Codeanalyse verschafft schnellen Überblick bei komplexer Software

Softwarestrukturen sind bisweilen hochkomplexe Gebilde, vor allem, wenn sie über Jahre entstanden sind. Es dauert daher häufig sehr lange, Altsysteme wirklich zu durchdringen. Mit dem CodeExplorer der PPI AG wird dieser Zeitaufwand reduziert, denn das Visualisierungstool macht die zugrunde liegenden Strukturen im Handumdrehen sichtbar. Auf Basis einer statischen Codeanalyse erstellt die Anwendung eine grafische Darstellung. Aus diesem Code-graphen lassen sich alle Abhängigkeiten ablesen. Ablösungen von Legacy-Software oder Cloudmigrationen werden damit deutlich vereinfacht.

Prozess-Mapping: Code wie ein U-Bahn-Netz lesen

Ein zusammenhängender Text ist schnell gelesen, aber auf Programmcode dürfte dies in den seltensten Fällen zutreffen. Handelt es sich dann auch noch um Software, die über Jahre oder gar Jahrzehnte immer wieder erweitert wurde, kann es sehr lange dauern, die Strukturen zu verstehen. In solchen Fällen ist ein Visualisierungstool enorm hilfreich. CodeExplorer ist ein Codegraph, das heißt: Er stellt den Code grafisch mit Knoten und Kanten dar und macht so komplexe Strukturen übersichtlich. Schnittstellen lassen sich leichter erkennen und Projekte besser aufteilen. Je nach Granularität repräsentieren die Knoten Packages, Klassen oder Methoden, und die Kanten zeigen die jeweiligen Abhängigkeiten. Nutzer können beim CodeExplorer zudem an den Knoten und Kanten Expertenwissen hinzufügen und die Grafik nach Belieben umstrukturieren oder Layouts vorgeben. Der CodeExplorer eignet sich bestens für Entwicklergruppen. Sie können Softwareänderungen, -migrationen und -umsetzungen kollaborativ planen und nachverfolgen. Das vereinfacht die Kommunikation im Team maßgeblich und beschleunigt die Umsetzung.

Ganz vereinfacht lässt sich ein Codegraph mit dem Kartenausschnitt eines U-Bahn-Netzes vergleichen: Die Stationen sind Knoten, die Strecken zwischen ihnen Kanten. Die meisten Knoten haben zwei Nachbarn, es können aber auch mehr oder weniger sein. Es ist offensichtlich, dass Änderungen an Knoten mit vielen Abhängigkeiten riskanter sind. Das Wissen um die Eigenschaften hilft, Fehler zu vermeiden und schneller zu produktiven Ergebnissen zu gelangen.

Klare Vorteile

Der CodeExplorer verbessert durch seine einfache Visualisierungsfunktion das Wissensmanagement bei Softwareprojekten erheblich. Dieser Mehrwert und weitere Alleinstellungsmerkmale machen ihn zu einem extrem nützlichen Projekttool.

Der CodeExplorer

  • bietet als kollaboratives Werkzeug eine Arbeits- und Diskussionsgrundlage für das gesamte Projektteam und die Kommunikation mit weiteren Stakeholdern
  • ist als Webanwendung plattformunabhängig und kann mit dem entsprechenden Parser-Code sprachunabhängig visualisieren
  • ist durch Cloud-native-Architektur schnell integrierbar
  • kann Schnittstellen und isolierbare Subkomponenten zügig identifizieren
  • erlaubt es, Expertenwissen direkt im Graphen zu hinterlegen und wieder abzurufen
  • kann technische Schulden identifizieren und mit Analysewerkzeugen aufdecken
  • erleichtert und beschleunigt das Onboarding neuer Projektmitglieder
  • ist als Open-Source-Projekt verfügbar

Weitere Features

Die Struktur wird innerhalb einer Webanwendung dargestellt. Die Anzeige beginnt standardmäßig auf Package-Ebene, was die Komplexität reduziert. Der Benutzer kann die Darstellung nach seinen Vorgaben erweitern. Knoten lassen sich per Drag-and-drop bewegen, um den Graphen anzupassen. Im Übrigen folgen die Knoten ihrer physikalischen Simulation. Zudem ziehen sie einander mit ihren Kanten an und liegen dadurch auch visuell näher an den Nachbarn. Geplant ist, die Bearbeitung ganzer Knotengruppen zu ermöglichen und das Tagging für Knoten und Kanten weiter auszubauen. Das unterstützt das Wissensmanagement. Ferner soll eine Ontologie hinterlegt werden, um diese Tags untereinander zu strukturieren.

Die Leistungen von PPI

  • Implementierung des CodeExplorers
  • Beratung bei der Inbetriebnahme
  • Support während des Betriebs
  • ständige Weiterentwicklung der Anwendung