Zum Inhalt

Funktionen

Code Analyzer deckt den Weg von der Quellcode-Erfassung über die strukturierte Analyse bis zur Berichterstellung in einem zusammenhängenden Werkzeug ab. Der Funktionsumfang gliedert sich in zwei Anwendungen mit klar getrennten Aufgaben: die LLM-gestützte Datei-Analyse (Scanner) und das aggregierende Auswertungs-Dashboard mit Bericht-Generator (Analyzer). Beide werden über eine Web-Oberfläche bedient.

Anwendungsszenarien

  • Bestandsdokumentation eines Softwareprojekts — Ein bestehendes Java-, PHP- oder Python-Projekt soll vollständig dokumentiert werden. Die Anwendung erfasst alle Quelldateien, beschreibt Geschäftszweck und Capabilities je Klasse und liefert eine konsolidierte Übersicht nach Domain.
  • Architektur-Review — Für ein bislang nicht systematisch dokumentiertes Projekt wird der Architekturstil bestimmt, die Schichten-Verteilung dargestellt und die Modul- bzw. Package-Struktur bewertet. Auffälligkeiten wie redundante Pakete oder fehlende Schichten werden ausgewiesen.
  • Sicherheits- und Qualitäts-Triage — Sicherheitslücken, veraltete Praktiken, Code Smells und Performance-Themen werden je Datei erkannt, mit Schweregrad versehen und nach Kategorie aggregiert. Befunde lassen sich mit konkreten Empfehlungen je Issue priorisieren.
  • API- und Interface-Inventur — REST-Endpunkte und SOAP-Services werden automatisch erkannt, mit Pfad, Methode und Handler katalogisiert und als Baumstruktur visualisiert. Inkonsistenzen im API-Design werden dadurch sichtbar.
  • Modernisierungsbewertung — Aus erkannten Frameworks, Patterns und Issues wird eine priorisierte Modernisierungs-Roadmap abgeleitet, die Updates, Cloud-Migration und API-Modernisierung adressiert.
  • Bericht für die Leitungsebene — Aus den aggregierten Daten wird per LLM ein vollständiger Markdown-Bericht erzeugt, der Management Summary, Projektkennzahlen, Architekturbewertung, Geschäftsfunktionen, API-Landschaft, Qualitätsrisiken, Technologie-Stack, priorisierte Empfehlungen und ein Fazit enthält.

Auf einen Blick

  • Quelltext-Erfassung und LLM-Analyse für Java, PHP und Python in einer Oberfläche.
  • Vier spezialisierte LLM-Prompts pro Datei (Business, Technik, Interfaces, Issues).
  • Sieben-Schritt-Tiefenanalyse plus eigenständiger Bericht-Generator auf Systemebene.
  • Auswertungs-Dashboard mit thematischen Tabs für Übersicht, Business, Interfaces, Issues, Architektur und LLM-Analyse.
  • Anbindung an OpenAI-kompatible LLM-Endpoints (Ollama, OpenAI-API, vLLM, LM Studio).
  • Validierungs- und Re-Analyse-Werkzeuge zur Sicherung der Vollständigkeit.
  • CSV-Export von Capabilities und Issues; Markdown-Export des Berichts.

Code-Erfassung und Datei-Analyse

Der Scanner traversiert das Projektverzeichnis rekursiv und filtert die Quelldateien nach sprachspezifischen Mustern. Test-Dateien werden anhand benannter Patterns ausgenommen. Pro Datei laufen vier voneinander unabhängige LLM-Aufrufe mit jeweils eigener Rolle und einem strukturierten JSON-Antwortformat. Die Analyse pro Datei umfasst:

  • Geschäftszweck und Business Capabilities mit Zuordnung zu konkreten Methoden.
  • Erkannte Frameworks, Design Patterns sowie interne und externe Abhängigkeiten.
  • REST-Endpunkte und SOAP-Services anhand sprachspezifischer Annotations und Decorators.
  • Issues mit Kategorie (Security, Outdated, Code Smell, Performance, Best Practices), Schweregrad und konkreter Empfehlung.

Vor der LLM-Analyse erfolgt eine statische Strukturanalyse: Package- und Namespace-Bäume werden aufgebaut, Build-Module erkannt (Maven, Gradle, Composer, pip, Poetry, setup.py) und Schichten anhand benannter Schlüsselwörter zugeordnet (Presentation, Business, Persistence, Util, Model, Config). Aus dieser Zuordnung wird der Architekturstil abgeleitet, etwa „Layered/MVC", „Hexagonal/Ports-and-Adapters" oder „Simple MVC".

Auswertung und Aggregation

Das Auswertungs-Dashboard liest die YAML-Bestände und stellt die Ergebnisse in folgenden Bereichen dar:

  • Übersicht mit funktionaler Zusammenfassung nach Domain.
  • Business mit Capability-Tabelle und Domain-Visualisierung inklusive Critical Functions.
  • Interfaces mit API-Katalog und hierarchischer Baumdarstellung der Endpunkte.
  • Issues mit durchsuchbarem Browser und einer Aggregation nach Kategorie.
  • Architektur mit Package-Übersicht, Modul-Sicht, Erkennung ähnlicher Package-Namen (Konsolidierungskandidaten) und regelbasierten Beobachtungen.
  • LLM-Analyse mit Endpoint-Konfiguration, sieben-stufiger Tiefenanalyse, UI-Pattern-Bewertung und Funktionslücken-Analyse.
  • Bericht mit vollständigem Analysebericht in neun Abschnitten (Management Summary bis Fazit), als Markdown speicherbar.

Konnektoren und Datenquellen

Code Analyzer nutzt zwei externe Anbindungen.

  • Quellcode auf dem Dateisystem — Java-, PHP- und Python-Projekte werden direkt aus einem lokalen Verzeichnis eingelesen. Sprachspezifische Include- und Exclude-Muster steuern, welche Dateien einbezogen werden. Test-Dateien werden anhand benannter Muster übersprungen.
  • OpenAI-kompatibler LLM-Endpoint — Sowohl die Datei-Analyse als auch die systemweite Auswertung greifen auf einen LLM-Endpoint zurück, der per HTTP angesprochen wird. Unterstützt werden die OpenAI-API selbst sowie kompatible Server wie Ollama, vLLM oder LM Studio. Endpoint, Modellname und API-Key werden über Umgebungsvariablen oder die Oberfläche konfiguriert.

Import- und Exportformate

  • Quellcode-Import — Direkter Datei-Zugriff auf .java, .php und .py. Test-Dateien werden anhand benannter Patterns übersprungen.
  • YAML als Zwischenformat — Pro Quelldatei wird eine YAML-Datei unter analysis/files/<package>/<ClassName>.yaml abgelegt; ergänzt um project_structure.yaml und summary.yaml mit Projektkennzahlen, Schichten-Verteilung, Modulen und Issue-Statistiken.
  • Markdown-Export — Der vollständige Analysebericht wird unter analysis_exports/analyse_report_<timestamp>.md gespeichert.
  • CSV-Export — Capabilities- und Issue-Listen können über das Dashboard als CSV ausgeleitet werden.

Qualitätssichernde Funktionen

  • Trennung von Strukturanalyse und LLM-Analyse — Schichten- und Modulerkennung erfolgt regelbasiert, bevor LLM-Bewertungen aufsetzen. Damit existiert eine objektive Bezugsgröße neben den interpretativen LLM-Ergebnissen.
  • Erzwungenes JSON-Antwortformat — Jeder LLM-Aufruf nutzt eine niedrige Temperatur und ein strikt strukturiertes JSON-Schema, was die Reproduzierbarkeit und Maschinenlesbarkeit sichert.
  • Mehrstufigkeit — Datei-Analyse (vier Prompts), systemweite Tiefenanalyse (sieben Prompts) und Bericht-Generierung sind getrennt. Zwischenergebnisse sind jeweils inspizierbar.
  • Validierungs-Tab — Prüft den YAML-Bestand auf fehlende oder unvollständige Dateien und meldet Diskrepanzen zwischen Summary und Datei-Bestand.
  • Re-Analyse fehlender Dateien — Ein CLI-Werkzeug findet fehlende YAMLs anhand der summary.yaml und führt die Analyse gezielt erneut aus.
  • Diagnose-Tool — Ein zweites CLI-Werkzeug analysiert die Ursachen für fehlende oder fehlerhafte YAMLs.
  • Persistente Zwischenspeicherung — Sämtliche LLM-Antworten werden als YAML persistiert und sind damit über Versionskontrolle nachvollziehbar und reviewbar.

Weitere Funktionen

  • Verbindungstest — Im Tab „LLM-Analyse > Verbindung" wird die Erreichbarkeit des LLM-Endpoints geprüft und die verfügbaren Modelle aufgelistet.
  • Konsolidierungs-Hinweise — Der Architektur-Tab erkennt ähnliche Package-Namen, die als Kandidaten für eine Konsolidierung gelten.
  • Visualisierung der API-Hierarchie — REST- und SOAP-Endpunkte werden als Baumstruktur dargestellt.
  • UI-Pattern-Analyse und Funktionslücken-Analyse — Zwei zusätzliche LLM-gestützte Auswertungen identifizieren dominante API-Patterns sowie funktionale Lücken und Redundanzen.