git clone http://danamlund/git/adjmatrix/.git
Log | Files | Refs | LICENSE

README.org (2070B)


      1 #+TITLE:	Adjacency matrix code visualizer
      2 #+AUTHOR:	Dan Amlund Thomsen
      3 #+EMAIL:	dan@danamlund.dk
      4 #+DATE:		2016-04-13
      5 
      6 * What
      7 This tool takes some .jar files as input and generates an adjacency
      8 matrix over the dependencies between the classes in the .jar files.
      9 
     10 The adjacency matrix is visualized through a generated stand-alone
     11 .html file. This html file have the graph information and some
     12 javascript that visualize the adjacency matrix and lets you filter,
     13 zoom, order, color, and group the matrix how you want.
     14 
     15 The dependencies between classes is generated using [[http://classycle.sourceforge.net/][classycle]].
     16 
     17 You can also supply the tool with a .tgf file. [[https://en.wikipedia.org/wiki/Trivial_Graph_Format][TGF]] files lets you
     18 generate an adjacency matrix from any graph.
     19 
     20 There are example outputs available at the [[http://danamlund.dk/adjmatrix][Adjacency matrix code
     21 visualizer page]].
     22 
     23 * How
     24 The default behavior is to generate a file called
     25 =output.html=. Drag-dropping your library-to-visualize.jar file onto
     26 adjmatrix.jar should have the same effect.
     27 #+BEGIN_SRC shell
     28 $ java -jar adjmatrix.jar library-to-visualize.jar
     29 $ firefox output.html
     30 #+END_SRC
     31 
     32 You can define a custom output file/location using =-out=.
     33 #+BEGIN_SRC shell
     34 $ java -jar adjmatrix.jar -out ../myoutput.html library1-to-visualize.jar library2-to-visualize.jar
     35 $ firefox ../myoutput.html
     36 #+END_SRC
     37 
     38 The tool supports classycle arguments, so you can define which classes
     39 to include/exclude. See more at the [[http://classycle.sourceforge.net/usageAnalyser.html][Classycle Usage Guide]].
     40 
     41 #+BEGIN_SRC shell
     42 $ java -jar adjmatrix.jar -includingClasses=java.util,java.function rt.jar
     43 $ firefox output.html
     44 #+END_SRC
     45 
     46 * Bugs
     47  - The javascript is bad, and I only tested it on Chromium 48.0 and Firefox 45.0.
     48  - The UI is bad. It should be separated completely independent
     49    groups: node selection, node sorting, and node coloring. Fixing
     50    this would mean porting the "sort by similarity" algorithm to
     51    javascript, but that algorithm is the slowest part of the html
     52    generation.