Upload
palesz
View
321
Download
2
Embed Size (px)
Citation preview
Tanszéki D3 projekt .NET decompiler Programok dependenciáinak vizsgálata
metódus szinten
Dependenciák vizualizációjaDependenciák vizualizációja WPF segítségével
Dependenciák = Gráf
Gráf rajzoló algoritmusok megismerése Mitől jó egy kirajzolás? Milyen megoldások/algoritmusok
léteznek? Melye(ke)t érdemes alkalmazni az adott
probléma megoldására?
Naív algoritmusokUniverzálisan alkalmazható
algoritmusok FDP Szimulált lehűtés
Speciális esetek DAG Class diagram
Nagy gráfok vizualizációjaÁtfedést megszüntető algoritmusok
Pontok = Golyók Élek = A golyókat
összekötő rugók
A rendszer energiájának minimalizálása a cél
Kismilló változat
Naív algoritmusokUniverzálisan alkalmazható
algoritmusok FDP Szimulált lehűtés
Speciális esetek DAG Class diagram
Átfedést megszüntető algoritmusokNagy gráfok vizualizációja
Több száz oldalnyi irodalom átolvasása után az első körben kiválasztott megoldások LinLog layout - „Kvázi” klaszterezés
▪ Edge-repulsion változat Átfedéseket megszüntető algoritmusok
(Overlap removal)▪ Force-Scan algoritmus (FSA)
.NET 3.0-ban mutatkozott be Grafikus osztálykönyvtár Főbb erényei:
Vektor-alapú megjelenítés Összetett felületek Hardveres gyorsítás Deklaratív leírás (XAML) Animációk 3D, Média integráció Template-ek, stílusok
QuickGraphQuickGraph Codeplex-en
elérhető Általános
osztálykönyvtár▪ Gráfokat tároló
generikus osztályok▪ Algoritmusok▪ Jól definiált interface-
ek▪ Export GraphViz/GLEE
felé
Palesz.QuickGraphPalesz.QuickGraph Saját készítés QuickGraph
bővítése:▪ Gráf rajzoló
algoritmusokkal:▪ LinLog▪ FR▪ ISOM
▪ Átfedést megszüntető algoritmussal (overlap removal)▪ FSA
További gráf rajzoló algoritmusok implementálása, vizsgálata
OptimalizálásokSzámítások végzése külön szálon
User experience növelése