CodeVisor's Blog

Visual Code Metrics & Analysis

The Tools

leave a comment »

We have picked a set of tools that we’re going to use in our project, so I thought we would share those with you. For most of these tols, we tried the alternatives and tried experimenting with tools in the same category a little bit until we were comfortable with a single choice. All tools listed here are free and open source.

NetBeans Platform

We’re going to build our application on top of the NetBeans Plaform. NetBeans Platform prevents us from reinventing the wheel with providing common features used in many applications. We’re going to use most of those features extensively. Most notable features are modular design and window management. Learn More. We’re not planning to use NetBeans Platform anymore, due to steep learning curve, and other issues.

JavaCC

Java Compiler Compiler is a parser generator. It generates Java code that’s able to parse a language defined in a grammar file. We’re going to use JavaCC to build parsers to parse text files. JavaCC doesn’t have a runtime dependency, and it doesn’t need to be distributed with the executable application. Learn More

Prefuse

For 2D visualizations and graphs we’re going to use the Prefuse Java library. Prefuse is well-documented and easy to grasp quickly. While there are other easier solutions for dealing with graphs, we decided it’s worth it to eliminate an additional dependency and to use Prefuse for both 2D visualizations and graphs. Learn More

Processing

This one was introduced a little bit late, when we decided that we’re going to include 3D visualizations in CodeVisor. Processing is a great visualization tool. In my opinion, it’s not as simple as Prefuse, but it’s able to produce impressive visualizations indeed. Learn More, or take a look at some work produced by Processing.

Other Tools

Some tools exist for calculating different metrics, we’re going to explore some of those. If we find that integrating a tool would be easier than writing it from scratch, then we shouldn’t bother reinventing the wheel here too. In that case, patches and modifications to the original tool will be published (but not necessarily upstream).

This set may be expanded of course. At least one more tool will be added when we pick a subversion or git Java client to provide us with history and users information.

Written by Hassan Ibraheem

2 December, 2009 at 11:46 pm

Posted in General, Software

Leave a comment