Wednesday, November 5, 2008

Software Intensive Care Unit

I am continuing to work on the DueDates system with a fellow classmate C. Okada. For some of you who are not familiar with the project, it is a program that will display a list of books checked out from a list of libraries that is listed in the system. As of now the Hawaii State and University of Hawaii Libraries are on the list.

Our software engineering professor, Dr. P. Johnson, showed us automated quality-assurance tools (PMD, checkstyle, JUnit, findbugs, and etc…) to help our system along the way. Next he showed us an automated quality-assurance system (Hudson, https://hudson.dev.java.net/) that uses all those tools and sends an e-mail if there are warnings in the results. All those tools are great for program development. Now we are introduced with a NEW system that maintains the “health” of the DueDates system.

Hudson's List of projects

It is called a Software I.C.U (Intensive Care Unit) a.k.a. Hackystat (http://code.google.com/p/hackystat/). The system maintains the “health” of the DueDates project by checking on vital information – does all members contribute code at least one a day, does the system work and compiles with the help of Hudson, if there are any warnings from PMD, findbugs, checkstyle, etc, how is the line coverage from Emma tool, and other things that will keep the system in a “green” state. The software ICU displays little histograms next to each tool like Emma’s line coverage, lines of code, and etc… and it is color coded like red means need to look at A.S.A.P., yellow means cautious, and green means fine. Personally, I think this is a great tool for us, it shows us the areas we need make improvements and also the history we made on each area. This is great; I like this “health” status system that checks the state of the DueDates system.

Hackystat's Main

In order to get this software ICU software working, I had to install and configure my local computer. I am using a laptop with Windows XP Pro operating system. The software ICU works by gathering data from my laptop and sends it over to a server where Hudson will process all the data. So I was able to install all the required sensors (Eclipse sensor, ANT sensor, and so on). One problem I encountered was looking for the darn .hackystat folder; I did not know where the heck that folder was. In order to solve that problem, I invoke ANT in my command prompt and it will display an error saying unable to find sensor properties file in C:\Documents and Settings… So I found the folder and all is working properly. My team member, C. Okada, set up the systems Hackystat and Hudson to generate a result page from all the data that is gather. I went in to double check everything is good, and to see if my local machine was sending information to Hackystat server.

Hackystat's telemetry chart of a system

As of now, the DueDates system’s line coverage is really low; we have to make some more test cases for the system. We are submitting code to the system daily. Our code issue is in a green state (awesome, like our professor said at least we got something that is green, ha ha ha). I can say we are at an unstable condition; we have to make some major improvements to have the system back in a stable state. A lot of work ahead of us, cannot slack off on this system. I am looking forward to have the system out to the public.

No comments: