Friday, November 7, 2008

Hackystat Sensor: Project Health Monitor

















Hackystat sensor is a program that shows analysis, chart, graph, interpretation and vital signs development of a project. On this project we use Software ICU to monitor the vital signs of our project health. The concept of SoftwareICU is pretty similar to monitoring the vital signs of patients in the hospital's ICU. The Software ICU vital signs include coverage (emma coverage), churn (measure the lines of code), complexity (measures how complex the loops and branches on your code), coupling (measures number of dependencies between classes), code issue (number of warnings), commits (measure number of commits by developers to the repository), builds (number of builds in the system), devtime (measures time spent by developers editing code), UnitTest (measures number of unit test invoked) and size (amount of code in the system).







To be able to use all of these features of hackystat sensor we have to install Eclipse, JUnit, Emma sensor, DependencyFinder, JavaNCSS, SCLC, SVN sensors, etc. I did that by updating all the {tool} .build.xml files and modify the {tool} target so that {tool}.build.xml file to depend upon {tool}.sensor.


DueDates Purple Project on SoftwareICU

As you can see on the above Software ICU that the coverage health of our project (duedates-purple) is not really healthy and not really unhealthy either. So it's sort of average health and to be consider as a healthy project the coverage should be above 90%. I monitored the health of our project and tried to raise the coverage but it seemed like it didn't make a lot of difference, as you can see below. I'm just glad that our project is not red because that would be a bad implication. The only few changes are the progress on the churn from nothing to 149.0; coupling from 5.0 to 3.2 (healthy project suppose to have LOW coupling); and commit from nothing to 7.0. We'll try these next few days to raise the coverage so we can have a healthy project.













Overview

Hackystat sensor and Software ICU is a very good visual tool to monitor a project's health therefore, developers or programmers will be able to analyze the development of their own project. Setting up the sensor tools and environment variables for SCLC, DependencyFinder, and JavaNCSS, etc., were very straightforward. The only problem I had was when I tried to invoke "ant -f svn.build.xml" it failed because of User mapping error. So I had to actually create a UserMap.xml file to fix it and duedates-purple-dailybuild on Hudson is back to sunny day. I've learned a lot by gaining my familiarity on using and interpreting Software ICU and Hackystat.

No comments: