Saturday, December 17, 2011

Software Tools

Some software that I have used
  • Microsoft Excel - Maintain use cases, list of requirements
  • Microsoft Word - Design Documents and user guides
  • Microsoft Powerpoint - Best tool for creating step by step screenshot based installation guide or test log screen captures - My onsite coordinator Keerthi @ Metlife did this once and I just loved it.
  • Microsoft Visio - Good to create flow diagrams and share with clients, if you feel there are complex designs better to represents as flow diagrams in Visio or draw them in Visio and export them as PDF - Mukundh you are the best :)
  • Textpad - I just love this. An amazing editor. I cannot live without it. I have been using it for 10 years and never repented. Find in files, Regex Search, Macros, Fill blocks and what not....Whoever has developed this and still working on updates - Great work guys.
  • ProcessExplorer - Funky tool that shows all information about the processes running in your box. Believe me it has lot more than task manager. Its good to find PID of java processes :D thats what I used initially for. Thanks to Bobby for navigating me to this tool.
  • Putty - This is another best utility to just login to any remote unix/linux/solaris box which you have access to and play around. Its just not one but a collection of small utilities like secure copy and a lot more.
  • UnxUtils - Are you a unix shell user and always wondered if you can do an "ls" or a "grep" on windows ??? Here is the solution. Courtesy - Bobby.
  • Autopatch - We always talked about Database updates being done through a single channel and updated properly to all environments - say you have a lot of developers making db changes and you want to make sure that the changes are recorded and executed along with the code changes when you move your code from INTEGRATION to QA to STAGING to PROD. This is an amazing little tool for that job. Worked fine for my projects.
  • Schema Spy - Recently found this amazing tool to maintain data dictionaries - Surely everybody should give it a shot. It does a very good reverse engineering so what I would suggest is dont use Microsoft excel to create data dictionary even if you Architect or team lead suggests it. Create all your tables in MS Access or something and reverse engineer using this tool. It rocks. You should try it once at least.
1. Install a JDK/JRE 1.5 in your machine and add the JDK/JRE bin folder to your PATH environment variable
2. Download SchemaSpy from - http://schemaspy.sourceforge.net/. Its just a Zip file. You can download it to a folder, say D:\Work
3. Download GraphViz from http://www.graphviz.org/Download..php and install the same. Add the <<GraphViz Install Dir>>/bin to your PATH environment variable.
4. You should have the JDBC driver jar/zip file for the database downloaded to your machine.
5. Open a new command prompt and run the following command in this directory - D:\Work [Directory that has the SchemaSpy zip file]
    java -jar <<schemaspy zip file name>> -db <<Database name>> -s <<Schema name>> -u <<user name>> -p <<password>> -o <<Output directory>> -dp <<full path to the jdbc driver including the jar/zip name>>

For Example
    java -jar schemaSpy_4.1.1.zip -db XE -s TEST -u TEST -p test -o "D:\Naga\DD_TEST" -dp "D:\OracleXE\app\oracle\product\10.2.0\server\jdbc\lib\ojdbc14.jar"

After this command is run, the <<Output Directory>> will contain all the data dictionary information
  • Graphviz - This is a tool that works with Schema Spy to display the relationships between the tables, without this Schema spy displays the data dictionary but this would also be good to have integrated. Why not try this when its free :)
  • UMLGraph - I used UMLGraph recently to generate java docs. Its like you have to add umlgraph as a doclet when you generate javadocs and it will add a class diagram hierarchy automatically to your java docs...Sweeeeeeeet
1. Assuming you have already downloaded the umlgraph jar and you have jdk/jre installed and have javadoc on path. You also need to have GraphViz\bin in path. Its the same utility that we used above

2. Open a new command prompt and run the following command
    javadoc -encoding UTF-8 -docletpath <<Path to UmlGraph jar>> -doclet gr.spinellis.umlgraph.doclet.UmlGraphDoc -sourcepath <<Path to source files separate using ;>> -classpath <<Path to all dependant classes, remember to include UmlGraph jar as well>>  -d <<Output Directory>> -subpackages <<if you need only specific subpages to have java docs generated for, i was not interested in generated API for java packages ;)>>
   
For Example   
    javadoc -encoding UTF-8 -docletpath "D:\Naga\UmlGraph-4.8.jar" -doclet gr.spinellis.umlgraph.doclet.UmlGraphDoc -sourcepath "D:\ATG\ATG2006.3\ATGDemo\src" -classpath "D:\ATG\ATG2006.3\DAS\lib\classes.jar;D:\ATG\ATG2006.3\DPS\lib\classes.jar;D:\ATG\ATG2006.3\DSS\lib\classes.jar;D:\ATG\ATG2006.3\DCS\lib\classes.jar;D:\ATG\ATG2006.3\DAS\lib\servlet.jar;D:\ATG\ATG2006.3\ATGDemo\lib\classes.jar"  -d "D:\ATG\ATG2006.3\ATGDemo\javadocs" -subpackages com

  • Eclipse - Best IDE for Java.
  • VisualGC - For java garbage collection information. It connects to a JVM and shows GC info realtime - See this article for info.
  • GCViewer - Here is another tool which can analyse the logs after its generated like offline GC analyser which is good too. I liked the whole throughput thing :) - See this article for more information and good graphics to give you an idea.
  • Windows PowerShell - An object oriented shell for Microsoft OS. Easy to write scripts which can help you do anything with your OS. 1000 times better and easier when compared to the old Batch scripts. Courtesy - Bobby.
  • Eclipse Commons 4E Plugin - Got introduced to this plugin in one of my earlier projects. Nice and easy eclipse plugin to generate hashCode, toString, compareTo and equals methods using Apache Commons Lang library.
  • Eclipse Java Decompiler Plugin - I always had problem figuring out how things work in a framework when i am debugging my application from within Eclipse, because most of the time I dont have the source files for the framework. With JD-Decompiler and the realignment plugin that comes with the plugin, I was able to decompile the framework classes and also debug the classes from within Eclipse.

No comments:

Post a Comment