Monday, September 17, 2007

Stack and QA tools

Code: click to download

All five tasks were completed successfully.

Problems:
I went into several problems in completing this assignment and the following two are the major ones.

1. Eclipse
Somehow, Eclipse fails to recognize my class files and keeps giving me errors saying that the classes Stack and ClearStack are undefined. It gives me the errors now and then even when I haven't made any changes to the code. After some frustrating moments of trying out different possible solutions, nothing worked until I tried renaming the package, thanks to the advice of Mike and Chaofien. It worked, no changes were made to the code and Eclipse can recognize the Stack classes again. However, minutes later, the same thing happens and again, the problem is solved by renaming the package. In the end, I end up renaming the packages whenever the problem came up. It was an unsophisticated solution but that was the only way I could solve the problem. Does anyone have a similar problem with Eclipse? I wonder if Eclipse is having a problem with compiling the project?

2. JavaNCSS.Xml
I have never worked with XML before and so completing the task was like learning a new language to me. I was lost in the beginning but by reviewing the other build.xml files, I was able to pick up on the format and syntax. Also, thanks to the discussions on Google group, some of the problems I went into were also solved.

Ant and other QA tools:
This is the first time I use Ant and I found it very handy. At first, it was very confusing as I was not familiar with the QA tools yet. So I just blindly followed the instructions on the assignment page and typed in the command lines without knowing exactly what each one is doing. It was only until I worked on task 2 and 3 that I learned more about PMD and Findbugs. PMD and Findbugs are both very useful debugging tools. They give a concise report on what and where the error is and provides suggestions to correct the problems. They are absolutely useful for debugging programs, especially for large projects where it would be time consuming and tedious to find out those minor errors.

On the whole, I like Ant. It was a surprisingly useful and powerful build tool. It was also flexible in the way that it can incorporate so many different QA tools. Moreover, this would be especially useful in large projects where there would be so many classes and methods that we would be easy to lost track of.

SCLC vs JavaNCSS:
SCLC gives a count of comment, non-comment, blank and total lines on a variety of languages whereas JavaNCSS also give information about the size of a project but is only limited to Java. Since this class would be mainly dealing with Java, I would prefer JavaNCSS over SCLC as it could give more specific information such as a count on JavaDoc.

This is by far the most demanding assignment I had so far. For we have to install and learn to use several QA tools and to write up a xml file for the first time. There were a lot to learn. However, this is also the most useful assignment as it familiarizes me with these essential debugging tools. I agree it would be better to learn them all in one time rather than one by one. This way, we can get start using them on our future assignments right on and polish our skills.

No comments: