Monday, September 17, 2007

Stack Program with QA Tools

I have completed the five assigned tasks successfully. The program zip file is hosting in here, and I also uploaded the reports for the different QA tools: Checkstyle, FindBugs, PMD, JUnit, SCLC, Javadoc, JavaNCSS, Emma.

There are several problems that I ran into during this assignment. First is the installation of the QA tools. Without the easy setup.exe or install.exe files, it took me a while to figure out how to correctly setup the environmental variables to install these tools. Luckily these tools all have good documentations, so this problem was not a big issue. Second problem is the confusion caused by the shared output directory of eclipse and Ant. It bothered me for quite a while, but Professor Johnson helped me solve it very quickly. It was not that bad either. Last problem is the XML build file for the JavaNCSS, which I still not fully satisfied with my current compromising solution.

The XML format used by the Ant is quite confusing to me, since this is the first time I encountered the XML scripting. Although there are some tutorials available online and I got some helps from my classmates, I have not found enough information to solve my problem elegantly. More specifically, there is one checking that I wanted to make sure the presence of JavaNCSS in the system, but it involved of checking multiple files. The checking that I know how to use can only check one file at a time, so I ended up with doing three checking, which I believed is not the best solution. However, due to the knowledge I have for XML and Ant, as well as the time limitation for the assignment, I could not come up with a better solution.

In terms of my impression to Ant, I think it is a really powerful build tool for Java and it is not terribly hard to learn. Although it would be much nicer that Ant can provide a better GUI for novice user like me. The motivation of using all these QA tools seems to be very reasonable and convincing, and I even think there should be a more universal standard for these QA tools to help programmers to focus on coding rather than focusing on problems like integrating different modules from different platforms, which sometimes consume a lot of time. As for the counting tools SCLC and JavaNCSS, I personally like JavaNCSS more simply because it provides a very friendly GUI mode, which is easy to use. Also I know more about JavaNCSS now since I spent quite a bit of time writing its build file.

In a word, this assignment provided me a broad overview of some popular Java QA tools, and it is very beneficial to build up my knowledge of software engineering.

No comments: