Skip to content

Mitchel85/eam-qea-tool

Repository files navigation

EAM QEA Analyzer — Open WebUI Tool

Powered by AAroNgithub.com/schmitze87/AAroN by @schmitze87 (Markus Schmitz)

Das gesamte Tabellenwissen in diesem Tool stammt aus AAroNs Java-Processors. Ohne AAroN gäbe es dieses Projekt nicht. 🙏


Das Problem

Sparx Enterprise Architect speichert Modelle in proprietären .qea-Dateien (SQLite-Datenbanken mit bis zu 100 Tabellen). Die Tabellenstruktur ist komplex, schlecht dokumentiert und enthält:

  • PDATA-Felder, die je nach Object_Type unterschiedliche GUID-Verweise enthalten
  • Implizite Beziehungen, die NICHT in t_connector stehen, sondern aus Spalten wie ParentID, Package_ID und PDATA1-3 abgeleitet werden
  • t_xref-Einträge, die Stereotyp-Auflösungen und Conveyed Items enthalten

Ein LLM, das einfach SQLite-Queries brute-forced, findet diese Zusammenhänge nicht.

Die Lösung

Dieses Tool extrahiert das Wissen aus AAroN — einem Neo4j-Plugin, das für NAF-Architekturen entwickelt wurde und die proprietäre QEA-Struktur vollständig versteht. AAroNs 15+ Java-Processors wurden analysiert und in eine Python-Toolbox für Open WebUI übersetzt.

Was AAroN uns gelehrt hat

Lesson Learned Auswirkung
PDATA1-5 sind kontextabhängige GUID-Verweise INSTANCE_OF, BEHAVIOUR, REUSAGE Beziehungen werden erkannt
9 implizite Beziehungstypen existieren außerhalb von t_connector CONTAINS, EMBEDS, HAS_PORT, HAS_PART etc.
t_xref enthält FQ-Stereotypes & Conveyed Items Informationsflüsse werden vollständig aufgelöst
ea_guid ist der universelle Join-Schlüssel GUID-basierte Querverweise statt nur ID-basiert
Verarbeitungsreihenfolge ist kritisch Packages → Diagrams → Objects → Properties → Connectors

Features

15 High-Level-Analysefunktionen

Funktion Beschreibung
analyze_qea_statistics Modell-Statistiken (Elementtypen, Stereotypen)
find_elements_in_qea Elemente nach Name/Typ/Stereotyp/Paket suchen
get_element_detail_from_qea Komplettanalyse inkl. impliziter Beziehungen
get_relationships_from_qea Beziehungen mit Rollen & Kardinalitäten
search_qea_elements Volltextsuche in Namen & Notizen
get_package_tree_from_qea Paket-Hierarchie
find_elements_by_tagged_value Tagged-Value-Suche (NAF-Metadaten!)
get_qea_diagrams Alle Diagramme mit Element-Zählung
get_naf_view_elements_from_qea NAF Views
list_process_packages_and_activities Pakete & Activities für Prozessanalyse finden
list_extracted_activity_graphs Kompakte Prozessgraph-Übersicht (alle Activities)
get_activity_diagram_process_graph Detaillierter Prozessgraph einer Activity
execute_qea_sql Read-only SQL für fortgeschrittene Analysen
get_qea_table_schema Tabellenschema-Inspektion
export_qea_element_report Komplettbericht für ein Element

Prozessanalyse (L4 — Diagramm-basiert)

Neu ab v2.0: Extrahiert BPMN-artige Prozessgraphen direkt aus Activity-Diagrammen.

Schritt Funktion
1. Discovery list_process_packages_and_activities — findet alle Pakete & Activities
2. Übersicht list_extracted_activity_graphs — kompakte Liste aller Prozessgraphen
3. Detail get_activity_diagram_process_graph(activity_id=...) — voller Graph mit Nodes & Edges

Arbeitsweise: Liest t_diagram + t_diagramobjects + t_diagramlinks, filtert gezielt ControlFlow/StateFlow/Transition-Kanten, erkennt Lanes, löst Gateways auf.

Abhängigkeiten: pandas, networkx (werden beim Laden des Tools in Open WebUI automatisch installiert).

NAF-Architektur-Support

  • NAF-2: Operational Connectivity (OpNode, Needline, InformationExchange)
  • NAF-3: Capabilities (Capability, CapabilityConfiguration)
  • NAF-4: Organizational (OrganizationalResource, OrganizationRole)
  • NAF-5: Functional (Function, Activity, OperationalActivity)
  • NAF-6: System (SystemResource, ResourceInteraction)
  • NAF-7: Technical Standards (Protocol, Standard, TechnicalStandard)

Schnellstart

1. Tool in Open WebUI einbinden

# Tool kopieren
cp eam_qea_tool.py /pfad/zu/open-webui/data/tools/

2. In Open WebUI aktivieren

  1. Admin Panel → Tools öffnen
  2. eam_qea_tool erscheint automatisch
  3. Aktivieren und dem EAM Analyst Model zuweisen

3. System Prompt setzen

Den Inhalt von system_prompt.md in das System-Feld des EAM Analysten einfügen.

4. QEA-Dateien verfügbar machen

# In Open WebUI docker-compose.yml:
volumes:
  - /pfad/zu/qea-modellen:/data/qea-models:ro

5. Loslegen

"Analysiere /data/qea-models/mein_modell.qea"
"Zeige alle NAF-3 Capabilities"
"Detailanalyse für Element 12345"
"Zeige den Prozessgraph für Activity 12345"
"Liste alle Prozessgraphen im Modell"
"Welche L4-Activities gibt es?"

Sicherheit (Bw-tauglich)

  • Read-only: Keine Schreibzugriffe auf QEA-Dateien
  • Lokal: Alle Analysen laufen im Open WebUI Python-Prozess
  • Keine Exfiltration: Keine externen API-Calls
  • On-Premise: Funktioniert vollständig ohne Internetzugang

Struktur

eam-qea-tool/
├── eam_qea_tool.py          # Das Tool (~95 KB)
├── system_prompt.md          # System Prompt für Open WebUI
├── openwebui_integration.md  # Ausführliche Einrichtungsanleitung
├── requirements.txt          # pandas, networkx
├── LICENSE                   # Apache 2.0
└── README.md                 # Diese Datei

Credits

Dieses Projekt wäre ohne AAroN nicht möglich gewesen.

Wer Was
@schmitze87 (Markus Schmitz) AAroN — Die gesamte Wissensbasis. 15+ Java-Processors, die die proprietäre QEA-Tabellenstruktur von Sparx EA dokumentieren.
Michael Estel (mit KI-Agent) Analyse der AAroN-Processors, Extraktion des Tabellenwissens, Python-Portierung & Open WebUI Integration

Original-Repo: github.com/schmitze87/AAroN — ⭐ gebt Markus einen Star, er hat's verdient.

Lizenz

Apache License 2.0


Für die ausführliche Einrichtungsanleitung siehe openwebui_integration.md

About

AAroN-informed Sparx EA QEA Analyzer for Open WebUI — versteht proprietäre QEA-Tabellenstruktur. Based on AAroN by @schmitze87. Apache 2.0.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages