Sunday, September 16, 2007

10. Stack

Source Code: Please click here to download

This assignment was not as easy as it seems when reading the assignment instructions. Various tasks had to be mastered in order to complete this assignment including learning the Ant build system as well as several Java automated quality assurance tools. Personally, I was glad when at the end all the specified tasks were successfully working.

I have encountered a few major problems while I was working myself down the instruction list.

problem - 1
I was able to download and install SCLC Code Size Counter correctly, however when I tried to invoke it via command line it gave me an error. It turned out that I did not have Perl 5 installed on my machine.

solution - 1
I downloaded ActivePerl and the problem was resolved. At this point I was able to execute all the targets in Task 1 but verify, without errors.

problem - 2
Another problem that I ran into was associated with javaNCSS. The download and installation were rather easy but I found the actual instruction on kclee.de a little difficult to follow. However, the actual problem was that I had to learn how to write the build.xml file for javancss.build.xml, which was a little more challenging than all the previous tasks since I did not write any XML before. Fortunately, I know HTML which did help a little.

solution - 2
In order to complete the required tasks for the javancss.build.xml file, I looked at and studied all the other build.xml files that are included in stack-5.0.909.zip. In addition, I used Google to search for related topics.

ANT vs. MAKE


I remember writing several MAKE files and having the "tab" problem because it is necessary for MAKE to have proper indentation. When working with ANT I did not have this kind of problem. However, in order to write the necessary files for ANT tasks I was forced to learn XML. After all, I believe that ANT is a more powerful tool and when allowed I would chose it over MAKE. On the other hand, knowing a scripting language such as XML is very important for the future.

SCLC vs. JavaNCSS


Both, SCLC and JavaNCSS can be used out of an ANT build.xml file. Currently, SCLC supports 27 different file types while JavaNCSS is designed specifically for the Java programming language. (I believe) Therefore, JavaNCSS looks more at packages, objects, and functions while SCLC looks at files with various extensions and concentrates on lines, comments, etc. JavaNCSS provides the number of javadocs generated whereas SCLC gives an overview of the number of files with different file extensions, and much more. Therefore, I believe that both are good tools but most powerful when they are used together on a project.

Conclusion


This assignment, as many other ICS-projects, was time consuming. Therefore, it is important to allocate enough time to be able to learn all the useful tools. At first, this assignment may seem a little difficult, however after mastering all the basic readings on all the tools involved, it is rather understanding than confusing. Finally, it would safe me a lot of trouble in my previous programming courses, when I would be aware of these open source Java automated quality assurance tools.