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,.phpund.py. Test-Dateien werden anhand benannter Patterns übersprungen. - YAML als Zwischenformat — Pro Quelldatei wird eine YAML-Datei unter
analysis/files/<package>/<ClassName>.yamlabgelegt; ergänzt umproject_structure.yamlundsummary.yamlmit Projektkennzahlen, Schichten-Verteilung, Modulen und Issue-Statistiken. - Markdown-Export — Der vollständige Analysebericht wird unter
analysis_exports/analyse_report_<timestamp>.mdgespeichert. - 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.yamlund 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.