AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Unit-Abhängigkeiten visualisieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unit-Abhängigkeiten visualisieren

Ein Thema von grizzly · begonnen am 17. Jul 2006 · letzter Beitrag vom 11. Jun 2009
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
grizzly
Registriert seit: 10. Dez 2004
Nachtrag vom 21.03.2008
Habe vorige Woche festgestellt, daß UnitUsage 0.5 mit den allerneusten DOT Versionen nicht mehr richtig zusammenarbeitet. DOT.exe hat scheinbar das Format seiner temporären Ausgabe-Dateien leicht verändert.
Ich habe deswegen mal einen kleinen Hot-Fix gebastelt.

Leider bin ich noch nicht dazugekommen, alle von Gruber_Hans_12345 vorgeschlagenen Änderungen aufzunehmen. Somit bringt die 0.6 nur folgende neue Features:
- Läuft mit der momentan aktuellen DOT.exe
- WMF-Export und Drucken leicht verbessert (Die alte Version verschluckte manchmal Linien am Rand)
- Hervorhebung von Units deren Source-Code neuer ist als ein vorgegebenes Datum
- Einige Kleinigkeiten auf der Oberfläche (vermutlich mit neuen Bugs)

Source und binaries wie üblich hier: UnitUsage. (Hier gibt es auch noch die alte 0.5)

und im Anhang.


---- Ursprünglicher ursprünglicher Text --------------------------------------
Nachtrag vom 12.03.2007
UnitUsage ist nun bei Version 0.5 angelangt. Ein paar kleine Verbesserungen hat es gegeben (aber leider nichts weltbewegendes).
Binaries, Screenshot und Kurzbeschreibung gibt es nach wie vor hier im Anhang. Sourcecode (in seiner ursprünglichen Häßlichkeit) gibt's auf der zugehörigen Webseite von UnitUsage.

---- Ursprünglicher Text (Links erneuert) --------------------------------------
Erst kürzlich gab es einen Thread mit einem Programm zur Visualisierung von Unit-Abhängigkeiten unter Zuhilfenahme von GraphViz.
Genau soetwas hatte ich vor längerer Zeit auch schon begonnen und dann in meiner Firma ein wenig weitergepflegt.
UnitUsage ist nicht perfekt. Es kann auch nicht analysieren, welche Units gar nicht verwendet werden (da gibt es eh schon genug Tools dafür).
Die Stärke von UnitUsage ist das bequeme Browsen mittels Maus-Klick innerhalb der Unit-Verknüpfungen:

Screenshot siehe Anhang

Ich stelle UnitUsage mal hier in der Freeware-Abteilung vor, werde es aber Open-Source machen, sobald ich den Source-Code soweit aufgeräumt habe, daß ich mich nicht mehr allzusehr genieren muß

Eine notdürftige Bedienungsanleitung findet sich hier: PDF 400KB (Die hat's bitter nötig, weil das User-Interface ist ein wenig sonderbar)

Unit-Usage 0.5 gibt es gezippt hier: ZIP 430KB
(Verwenden auf eigene Gefahr. Braucht's hier einen Disclaimer?)

Bei der Code-Analyse berücksichtigt UnitUsage zwar Compiler-Direktiven und Switches (auch so Zeug wie $ifopt etc...), liest auch Include-Dateien, kommt aber mit einigen neuen Konstrukten (Wie z.B. {$IF...} ) nicht zurecht. Units mit solchen Compiler-Direktiven werden dann ohne "Child"-Units angezeigt.

Nicht vergessen: Um UnitUsage zu verwenden benötigt ihr dot.exe von www.graphviz.org. Das ist das Teil, was den Löwenanteil der Arbeit übernimmt.

Gruß
Michael

[edit=sakura] Der ScreenShot reicht als Anhang und muss nicht gleichzeitig im Text gepostet werden. Mfg, sakura[/edit]
Miniaturansicht angehängter Grafiken
unitusage_06_screenshot_106.gif  
Angehängte Dateien
Dateityp: pdf unitusage_einleitung_108.pdf (388,4 KB, 97x aufgerufen)
Dateityp: zip unitusage_0_6_source_125.zip (143,7 KB, 100x aufgerufen)
Dateityp: zip unitusage_0_6_executable_605.zip (426,1 KB, 124x aufgerufen)
 
Benutzerbild von fkerber
fkerber

 
Delphi XE Professional
 
#2
  Alt 17. Jul 2006, 23:52
Hi!

Eine Bitte an dich:
Auch wenn du im Titel auf den Screenshot hinweist, wäre es schön, wenn er stattdessen als Anhang erscheinen würde.
Dies würde v.a. auch sicherstellen, dass das Bild erhalten bleibt, wenn der externe Server mal nicht mehr erreichbar ist!

Danke!


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

 
Delphi 2010 Professional
 
#3
  Alt 18. Jul 2006, 07:13
frage nebenbei:
Zitat:
Es kann auch nicht analysieren, welche Units gar nicht verwendet werden (da gibt es eh schon genug Tools dafür).
welche sind das?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

 
Delphi 10.4 Sydney
 
#4
  Alt 18. Jul 2006, 08:06
Icarus
  Mit Zitat antworten Zitat
grizzly

 
Delphi XE4 Professional
 
#5
  Alt 18. Jul 2006, 09:11
@computer-glossar.de
Ich nehme zur Analyse der unbenutzen Units ganz gerne OPXPerts.

@Frederick
Ich hatte mich schon immer gefragt, wie die Leute immer diese Tabellen mit den Links einbauen. Danke für den Hinweis mit den Anhängen. Das mit den Attachments ist mir jetzt erst aufgefallen (Peinlich). Nächstes mal mach ich's besser!

Gruß
Michael
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber

 
Delphi XE Professional
 
#6
  Alt 18. Jul 2006, 09:19
Hi!

Zitat von grizzly:
@Frederick
Ich hatte mich schon immer gefragt, wie die Leute immer diese Tabellen mit den Links einbauen. Danke für den Hinweis mit den Anhängen. Das mit den Attachments ist mir jetzt erst aufgefallen (Peinlich). Nächstes mal mach ich's besser!

Kein Problem! Aber du kannst es auch bei diesem Beitrag noch verbessern:
Einfach oben rechts am ersten Eintrag auf Edit klicken und dann das Bild anhängen!


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

 
Delphi 10 Seattle Enterprise
 
#7
  Alt 18. Jul 2006, 10:00
Zitat von grizzly:
Erst kürzlich gab es einen Thread mit einem Programm zur Visualisierung von Unit-Abhängigkeiten unter Zuhilfenahme von GraphViz.
Stimmt der ist von mir.
Hättest Du Dein Programm ein paar Wochen früher gepostet, hätte ich mir zwei, drei Stunden Programmierung sparen können

Sieht schön aus, Dein Programm. Kannst du das Programm auch als Attachment anhängen.
(Den 1. Beitrag einfach mit dem [Edit] Button bearbeiten)

Ich kann zwar auf delphipraxis zugreifen, aber nicht auf Deine Seite. (Firewall)

Danke.

Von meinem Programm habe ich gestern auch eine neue Version gepostet.
Beitrag: "Freware: Programm zur Ermittlung von Unit-Abhängigkeiten"
  Mit Zitat antworten Zitat
grizzly

 
Delphi XE4 Professional
 
#8
  Alt 18. Jul 2006, 11:42
Wunsch erfüllt. Ich habe die Dateien der drei Links im ersten Eintrag zusätzlich gepostet.

Boah, eine Firewall, die den Zugriff auf meine Seiten verbietet. Ein echter Verlust

Gruß
Michael
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

 
Delphi 10 Seattle Enterprise
 
#9
  Alt 19. Jul 2006, 10:19
Zitat von grizzly:
Boah, eine Firewall, die den Zugriff auf meine Seiten verbietet. Ein echter Verlust
Deine Seite kann ich anschauen, nur nix downladen.

Das Programm gefällt mir sehr gut.

Die Idee den einzelnen Pfeilen eine eigene Farbe zu geben, um diese dann mit Hilfe der Farbenpalette schwarz bzw. rot / grün zu färben ist eine gute Idee

Welche Komponente zum anzeigen der Grafik verwendest Du denn ?
Bestimmt nicht TImage von Delphi, oder?

Der Export nach wmf funktioniert gut, aber bei dem obersten Kasten wird die obere Linie abgeschnitten.
Der Export nach emf funktioniert bei mir nicht. Es wird keine Datei angelegt.

Der Export nach jpg funktioniert. Es wird dann die aktuelle vergrößerung exportiert.
(also vorher F12 drücken um 100% zu erhalten )

Mit Rechtsklick auf Unit in Grafik kann man einen Parent der Unit als Ausgangspunkt festlegen um die Sichtweise einzuschränken. Es ist dann auch die Bottom Up Sichtweise möglich.
Leider ist es mir nicht möglich eine Unit die keine "Kinder" hat, als Ausgangspunkt festzulegen, so das man z.B. sehen könnte welche Units in dem Projekt alles diese Biliothek verwenden. (z.B. Variants.pas)
(Nachtrag: Es ist doch möglich, aber Umständlich. Auswahl des Parrent -> neuer Graph -> auf Bottom Up umschalten ->Parent rechtsklicken und gewünschte Unit auswählen. (evtl. noch auf mit Kindern umschalten) Das ist sehr Umständlich. Besser wäre es die gewünscht Unit diekt auszuwählen und nicht den parrent)

Ich würde auch gerne die Möglichkeit haben den Text des dot Skriptes zu sehen / ändern.
(Dann könnte man sich den Umweg über die temp.dot sparen.)
Ich finde es z.B. nützlich verschiedene Units in logischen Gruppen zusammenzufassen (Cluster)

Die Unterscheidung zw. Unit ohne dfm (beige) und unit mit dfm (mintgrün) finde ich auch gut.
Genauso wie die Unterscheidung zw. mit Kindern (Rechteck) und ohne Kinder (Oval).

Also alles in allem super Programm !!!

btw: Wie viel Zeit hast Du in das Programm investiert?
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

 
Delphi 10 Seattle Enterprise
 
#10
  Alt 19. Jul 2006, 10:53
Ich habe noch was gefunden:

Dein Parsing der Units funktioniert nicht 100% richtig.

Folgendes Beispiel kannst du zu hause selbst testen

Erstelle eine neue Anwendung.
(Project1.dpr, Unit1.pas und Unit1.dfm)

Diese jungfräuliche Anwendung speicherst Du in einem leerem Order.
Dann kopierst Du die Quellcodedateien der VCL in das selbe Verzeichnis.
( wenn $(DELPHI) = C:\Programme\Borland\Delphi7, dann kopiere $(DELPHI)\Source\Rtl\Common, $(DELPHI)\Source\Rtl\Sys und $(DELPHI)\Source\Rtl\Win, $(DELPHI)\Source\Vcl )

Damit kannst Du dann alle Abhängigkeiten einer einfachen Anwendung inkl VCL zeigen.


(Bild anklicken um die 1027x768 Version zu sehen)
(siehe auch: http://www.delphipraxis.net/internal...=557810#557810 )

In Deinem UnitUsage werden aber auch folgende Artefakte als Units angezeigt:
"{$ENDIF}", "{$ifdef", "and", "case", "directories)", "directory", "etc.)", "file", "it", "Libc", "Ipici->IpVerb", "NMMOUSE", "server", "StdActns{$IFDEF", "SwitchChars", "that", "the", "then", "this", "Types{$IFDEF", "which", "which member function to invoke a command programmaticly. The explorer displays the help text in his status bar", "WinHelpViewer{$ENDIF}", "work-goup"

Siehe auch Screenshot im Anhang.

Bei Libc, server, SwitchChars könnte ich mir ja noch Units vorstellen, aber nicht bei den Namen, die z.B. Zeichen beinhalten, die bei Units verboten sind. <> ['a'..'z', 'A'..'Z', '_', '0', '1'..9']

Du solltest Dir das fehlerhafte Verhalten mal anschauen.
Miniaturansicht angehängter Grafiken
unitusage_bug_522.jpg  
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz