Monday, September 22, 2008

Stack

Introduction
The stack assignment had the class implementing various quality assurance tools for software engineering in preparation for future assignments and beyond. Personally, the exercise had me working with environment variables in UNIX and writing a batch file, two things I have never done before so I would say this was a challenging exercise.

The Code
stack-arakaki

Task 1
Downloading Ant, Checkstyle, Findbugs, JUnit, and PMD was the easy part of task one. Setting the environment variables for all of the tools was a time consuming process because it was my first time at setting the environment variables in bash. What took a lot of time was from searching the web on how to set the path and implement the batch file. Although the experience of writing the path on bash was valuable I think I messed up the path for X11 (yes, I have a Mac) because I cannot start Open Office on my machine. The next step of task one, the moment of truth to see if I set the environment variables correctly. Invoking all of the tools on a stack filled with several errors. It was quite fulfilling, after spending several hours tinkering with the batch file, to see the correct output from the various tools.

Task 2
The second part of the assignment was less difficult compared to task one which involved copying and renaming stack. Also, a repeating of the invocation from task one using Ant, Checkstyle, Findbugs, JUnit, and PMD.

Task 3
Part three of the assignment was the most enjoyable, witnessing the tools in action and making the necessary adjustments to the code. I found PMD and JUnit the most powerful of the four tools in this task. PMD, was especially useful at making suggestions to which methods or classes would work better in the application. No java programmer can write effective code without JUnit. Authoring a proper and complete unit test will save a programmer many hours of grief of having to hunt down buggy code. Checkstyle and findbugs are decent tools that helps with the coding process but were not as powerful PMD or JUnit.

Conclusion
I really enjoyed this assignment, I learned how to write a batch file and make changes to the enviroment variable in bash, something I found valuable. I gained knowledge with five new coding assurance tools Ant, Checkstyle, Findbugs, JUnit, and PMD. By applying the five applications I was able to fix a stack implementation that filled was with errors and coding standard violations. So the stack exercise was beneficial and a good learning experience.