Forum: PC-Programmierung Tool zum Darstellen der Abhängigkeit / Hierarchie von Variablen im Code


von noips (Gast)


Lesenswert?

Hallo zusammen,

ich muss mir einen Überblick verschaffen in einem C++-Code für 
strömungstechnische und thermodynamische Berechnungen mit einigen 
Hunderten von Konstanten, Messwerten und Rechengrößen. Die Rechengrößen 
sind teilweise voneinander abhängig und werden iterativ bestimmt.

Gibt es ein Tool zur Darstellung der Abhängigkeit der Variablen 
voneinander? Welche Variable von welcher anderen abgeleitet ist... Hab 
schon eine Weile gesucht aber noch nicht fündig geworden. Ich weiß, dass 
Doxygen so eine grafische Darstellung der Aufrufhierarche von Funktionen 
im Code darstellen kann. Ähnlich dazu noch einige anderen Tools. Ob 
Doxygen das mit Variablen auch darstellen kann?

Dies da habe ich schon auch gefunden, aber scheint nicht das zu sein was 
ich suche
Beitrag "tool zur code-struktur-visualisierung gesucht"

von Vincent H. (vinci)


Lesenswert?

Doxygen kann "caller" und "callee" Graphen erzeugen, das wars dann aber 
auch schon was den Programmablauf angeht. Trotzdem glaub ich dass dir 
das weiterhelfen könnte. Ich hatte vor kurzem einen Fall wo jemand vor 
mir komplett undokumentierten Code über ein proprietäres Protokoll 
hinterlassen hat. Da Doxygen drüberlaufen zu lassen um dem Ablauf hinter 
den API-Calls zu folgen war schon recht nützlich.

Was genau du mit "Hierachie von Variablen" meinst versteh ich nicht 
ganz. 2x doubles können eigentlich keine Abhängigkeiten zueinander haben 
die nicht durch Code gegeben sind?

von noips (Gast)


Lesenswert?

Vincent H. schrieb:
> Was genau du mit "Hierachie von Variablen" meinst versteh ich nicht
> ganz. 2x doubles können eigentlich keine Abhängigkeiten zueinander haben
> die nicht durch Code gegeben sind?

Ich meine damit die Abhängigkeit der Rechengrößen voneinander. Eine 
Größe wird aus z.B. drei anderen berechnet, jede von welchen wiederum 
von wieder anderen Größen abgeleitet ist. Eine Art grafische 
"Baumansicht" würde helfen, schnell zu sehen, wo überall eine bestimmte 
Größe gebraucht wird. Da die Größen im Code als Variablen auftreten, 
habe ich das mit "Variablenhierarchie" ausgedrückt. Die Ableitung von 
Datentypen voneinander war nicht gemeint.

von georg (Gast)


Lesenswert?

noips schrieb:
> Eine Art grafische
> "Baumansicht" würde helfen, schnell zu sehen

Schön und gut, aber willst du das selber erstellen oder soll das das 
Tool aus dem Source Code extrahieren? So ein Tool könnte eine 
Lebensaufgabe werden.

Im ersteren Fall kannst du natürlich auf grafische Werkzeuge wie 
Coreldraw usw. zurückgreifen.

Georg

von noips (Gast)


Lesenswert?

georg schrieb:
> Schön und gut, aber willst du das selber erstellen oder soll das das
> Tool aus dem Source Code extrahieren?

das zweite. Ich dachte, wenn es Tools gibt, die Aufrufhierarchie von 
Funktionen darstellen, dann gibt es möglicherweise auch das von mir 
beschriebene.

> So ein Tool könnte eine Lebensaufgabe werden.

Klingt so, als würdest du meinen: Das Ding ist so kompliziert, es wird 
das sicher nicht geben.

von georg (Gast)


Lesenswert?

noips schrieb:
> Klingt so, als würdest du meinen: Das Ding ist so kompliziert

Eher noch würde ich behaupten unlösbar. Festzustellen, welche Funktion 
an welcher Stelle aufgerufen wird ist vergleichsweise ganz einfach. Es 
müssten ja auch alle aus Libraries verwendeten Funktionen im Sourcecode 
vorliegen, was eine sehr enrnsthafte Einschränkung wäre. Und dass so ein 
Tool z.B. die Berechnung einer Leitungsimpedanz durch ein 
Näherungsverfahren wie einen Field Solver durchschauen kann halte ich 
auch für unmöglich. Du wirst ja auch kaum einen IBM-Supercomputer mit KI 
dafür einsetzen können/wollen.

Übrigens, wenn es sich nicht um schon lange bewährte Software handelt 
müsstest du sowieso alles nachprüfen. Nimm ein gutes Grafikprogramm, 
definiere dir passende Symbole und zeichne die Abhängigkeiten selbst. Da 
werden trotz deiner eingebauten Intelligenz noch genügend Fehler drin 
sein.

Georg

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Ich hatte mal in (sehr großen) Data Warehouse-Umgebungen eine ähnliche 
Aufgabenstellung. Hunderte (eher tausende) von Prozeduren, welche 
tausende von Daten aus tausende von Quellen umeinander gerührt haben, 
und Tausende Ziel-Felder befüllt haben. Anfangs hab ich das größenteils 
manuell durchflöht, um die wesentlichen Datenflüsse zu erkennen.


Später habe ich dann nach Tools recherhiert, wobei das schon mal meinen 
Anforderungen relativ nahe kam.

-->  google nach Datenflussvisualisierung, data flow visualization.

http://www.genesisonesolutions.com/

Leider gibt es das Genesis Zeugs nur für sql.

Naja, vielleicht hilft das Schlagwort ja weiter.

: Bearbeitet durch User
von noips (Gast)


Lesenswert?

Ich danke dafür. Werde ich mal googeln.

Weiter Hinweise willkommen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.