Monday, November 24, 2008

Stack Wicket Application

I've always love to create or design a website. I have a bit knowledge about "html codes" and such but doing a web application using Wicket is kind of strange to me. Not very strange though...because the more I got exposed in using it in this application I've learned so much more each day.

Stack Wicket Application is a web application that implement Stack that implements functionality such as "Push"(adding item on the stack); "Pop" (deleting item on the stack) and "Clear"(removing all the item on the stack).


















Problems: PMD, Checkstyle, RuntimeException, etc.

Perhaps, the only thing that took me while to do on this project was fixing all those endless annoying errors. PMD complains a lot about using string literals so much or when you compare objects using booleans. Secondly, Checkstyle complains about this particular thing about "package-info: Doesn't exist" and little did I know that the problem is in my build.xml file. Oh and finally, RuntimeException - the greatest problem of all. Especially, on Wicket it gives you this particular stacktrace but it doesn't really say much, so you are actually staring at that particular line number (where it indicates where the problem was) forever and don't see anything wrong...but I am so glad I got that fix.


Overview

Learning Wicket could be fun but at the same time it's "wicked". Despite, of all the problems I had I began to like it and hoping to learn more about it. These past few days that I was doing this web application on Wicket I gained a lot of ideas although it is not so easy to grasp every aspect of it right away. I am looking forward to learn more and maybe in the future I will be able to design a bigger website using Wicket. Here is my stack wicket distribution file.

Friday, November 14, 2008

Enhancement for DueDates 1.2

This particular version of DueDates we are asked to enhance the capability to do an email alert if there is anything due at a particular given time. In doing so the Purple Team continue to gain more knowledge in using Continuous Integration and Software ICU. This week we were able to obtain a very good coverage by improving the quality and robustness on our code.





Assigned Task

I was assigned to implement the timer-based reporting for DueDates. In doing so we have to implement some of the functions of the Java Timer and TimerTask. Implementing the timer wasn't that bad, I looked at the API and there was also a tutorial link that was provided by Dr. Johnson, which helped a lot. The other member of our teams -Daniel, implemented the JavaMail and John was responsible for working on the complexity, improving the coverage, etc. The good part about in our team is the good communication and good cooperation. We were able to meet and discuss the tasks and issues about the project 1-2 hours a day on weekdays. As for the weekends, since we weren't able to get together due to some other personal commitments communicating through google chat is the only solution.

Minor Problems

The problem I had stumble upon this week was running the JAR file. Everytime I tried to run the jar file on the command line it gives me this particular exception stacktrace about "javax mail". And little did I realize that we weren't the only team who was having a problem so are the other teams. So after seeing emails from other groups who had experienced the similar problem and who also posted a possible solution (Ronn and Art) helped me to solve my own. By putting the "mail.jar" into the JDK library is not enough because that didn't solve the problem, so I had to also put the "mail.jar" into the JRE library extension to make it work. In addition, these past few days I also had a couple of weird connection failures. I could be in the middle of working on something on the net and out of the blue my internet connection would just fail. Despite of everything that happened I was still able to do my part in the project and so is the rest of the purple team.


Overview


As the day go by on the incremental of our project I am continuing to improve my knowledge about creating a good software and what software engineering is all about. Good and clear communication in our team is one of the keys in determining the accomplishment of our project. Finally, being able to keep track about the status of our project using Software ICU and Hackystat were very helpful.

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.

Monday, November 3, 2008

"Behind the dark clouds there is a sun that still shinning."









Darker Days


Me and the rest of the purple team pretty much meet at least an hour or so everyday except for the weekends because some of us has to go to work and do some other personal matters. So on weekends we just communicated through Google chat. This second version of doing the project seemed a lot harder than the first one. Because we have to build more classes and test cases for each class. On top of that, we also stumble upon problems on the .classpath file, every time I tried to compile and run the program on eclipse it would just crash.

Therefore, we ended up editing the .classpath file and fixing the build class path on eclipse. While I had that particular problem on eclipse I just pretty much did my compiling and running on DOS prompt. In addition, there are also a lot of pressure in our group especially in getting things done in certain ways. If someone forget to verify and when you tried to run the build on your program it fails and because of that someone can just assume that you broke the build.

Shinny Days

Despite everything we've been through we got everything done. We also updated our wikis (Homepage, DeveloperGuide and UserGuide) and checked all the Javadoc documentations. Last time we got deducted some points because of not having enough sample input and output on our UserGuide so I added some screen shots and better sample output for the program.

Saturday, November 1, 2008

Code Review: Second Time Around

We've been given a second opportunity to improve our DueDates project and of course, that accompanied by double effort and double work to be done. We did a review on the duedates-blue team.

















Their homepage and wikis (DeveloperGuide and UserGuide) were very detailed and informative. The output formatting of their program is really nice though they only used a basic formatting as oppose to using the String format with field and width precisions. In addition, they didn't really implement a lot testing cases and if they did, that will probably help to raise the emma coverage on their program. My additional review for the blue team is located here.

_______________________________________________________________

Our DueDates program was reviewed by duedates-violet They stated on their review that they weren't able to pass "ant -f verify.build.xml" on the first attempt. Also, due to time constraint they weren't able to really look at and test all the functions of the additional classes that we implemented. However, they did their best to give us constructive criticism such as needing to do a little clean up on our comment tags so that we won't be having errors in running PMD and checkstyle. Finally, they liked the improvement on our wikis (DeveloperGuide and UserGuide) that included with screenshots and more enlightening guide.

_______________________________________________________________


Overview:

Everyone works hard on this phase of the project. My team and I meet each other everyday except on weekends because of work and personal matter. We did our best to review and comment on the blue team's project and it's up to them whether to disregard it or at least consider it. And the violet's review on our project are quite helpful and something to consider and look forward to.