GraphViz

  • installed from package
  • See http://www.graphviz.org/

    1
    2
    3
    4
    5
    6
    
    Radegast:diagrams miro$ dot -V
    dot - graphviz version 2.28.0 (20110509.1545)
     
     
    Radegast:diagrams miro$ which dot
    dot is /usr/local/bin/dot

SchemaSpy

  • installed in /opt/diagrams
  • see http://schemaspy.sourceforge.net/

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    
    Radegast:schemaSpy miro$ java -jar ./schemaSpy_5.0.0.jar -cp .:/Users/miro/lib/java/jdbc/mysql-connector-java-5.1.7-bin.jar -t mysql -o library -host localhost -u twt_dX_core -db twt_dX_core -p twt_dX_core
    Using database properties:
    [./schemaSpy_5.0.0.jar]/net/sourceforge/schemaspy/dbTypes/mysql.properties
    Gathering schema details....................................................................................................................................................................................................................................................................................................................................................(36sec)
    Writing/graphing summary.....
    .......(353sec)
    Writing/diagramming details.................................................................................................................................................................................................................................................................................................................................................(104sec)
    Wrote relationship details of 337 tables/views to directory 'library' in 494 seconds.
    View the results by opening library/index.html
    Radegast:schemaSpy miro$
    Radegast:schemaSpy miro$ ll
    total 904

PlantUML

  • installed in /opt/diagrams
  • manual is attached: PlantUML Language Reference Guide.pdf
  • See http://plantuml.sourceforge.net/classes.html
  • in /opt/plantUML-DEMO/ there are sample files

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    @startuml img/sequence_img009.png   
      
    Alice -> Bob: Authentication Request
    alt successful case
    Bob -> Alice: Authentication Accepted
         
    else some kind of failure
    Bob -> Alice: Authentication Failure
     
    group My own label
    Alice -> Log : Log attack start
        loop 1000       times
            Alice -> Bob: DNS Attack
        end
    Alice -> Log : Log attack end
    end
         
    else Another type of failure
    Bob -> Alice: Please repeat
        
    end
    @enduml

PlantUML Dependency Reverse Engineering

Processes source code and generates the PlantUML Class description file

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
You can run PlantUML Dependency using the following simplest command :
java -jar plantuml-dependency-1.0.1.jar -o plantuml.txt
 
This will look for all java source files into the current directory recursively, creating a plantuml.txt file describing the PlantUML class diagram description. 
 
For processing an other directory, you can use :
java -jar plantuml-dependency-1.0.1.jar -b "~/directory1"
  
To filter source files to parse, you can use ANT patterns to include or exclude files :
java -jar plantuml-dependency-1.0.1.jar -i **/*Test*.java -e **/*Generated*.java
  
To change the output file path, you can use :
java -jar plantuml-dependency-1.0.1.jar -o "/directory1/test-plantuml.txt"

Running it from Ant source tree

1
2
3
4
5
Radegast:platUml-DEMO miro$ java -jar ../plantuml-dependency-1.1.0-jar-with-dependencies.jar -b /Users/miro/src/apache-ant-1.8.1/src/main -o ant-sources.txt

## ... edit ant-sources.txt to include img/target.png and make it smaller
  
java -Xmx3096m -jar ../plantuml.jar ant-sources.txt