Finally, we're done!!! During this week, team ekolu has been working really hard to meet the released deadline of version 2.0.
Activity Overview
First of, while BJ and Wahib were updating the current implementation based on the code review's comment, I'd updated the current command specification to meet the specification of the new version. It toke me quite a few hours just to remove one word from the command string and update the index of the string. As I had to update the main class and all the test class, after I had finished two commands, I realized that the current implementation was poorly designed. At least if we had used patten recognition, it probablly not a pain.
Next, there's two tasks that BJ (as a team leader) did. He created a new job of wattdepot-ekolu-daily-build in Hudson and define the wattdepot-cli-ekolu project in Hackystat. Actually, we worked on the last one together in class. As we followed the instruction from Dr. Johnson's screencast of Software ICU, we didn't have any major problem setting up our project.
Later, we moved on to implementing the three new commands below and its test cases.
2.11 fueltypes {source} by Wahib Hanani
2.12 totalpower {source} {timestamp} fuelType {fuelType} by Lyneth Peou
2.13 carboncontent {source} {timestamp} sampling-interval {interval} by BJ Peter Delacruz
After that we reviewed the whole system to improve the coverage overall as we had a very poor coverage for class (92%), method (73%), block (58%) and line (65%) in the first version. In the reviewing process, we had also done a lot of significant improvement to the system.
Also, we'd worked together to solve the questions in part B, posted here.
Lastly, we had another round of testing and verifying the distribute package before posting the package.
System Satisfaction
The version 2.0 of wattdepot client by team ekolu includes the following updates:
created a new class for quit command and its test case
splited the method of ChartPower command (2.10) into its own functionality
reviewed the exception block
added more test cases for each command to satisfy the coverage overall; in which most part that wasn't cover is the exception block
also cleaned up the unused code
At this point, I really satisfy with the released of the version 2.0. We had taken care most of the issues raised by reviewers especially George Lee gave us a bunch of constructive comments. The code coverage of this version is pretty good.
class: 97%
block: 97%
method: 75%
line: 79%
However, I think the quality design of the system is still average in term of the current implementation of processing the string input and the exception. Also, we have not implement a good mechanism to process the exception at this version.
Group Interaction
During this week, we met 3 times and communicated through skype for most the time. I think the communication via skype was very productive. The partition of the work in this round was not overload to the team leader as the first version. Each of us work on one new command and two questions. Of course, I had been working on this project everyday and for this version I've spent about triple time I worked on the first version.
Experiencing Software ICU
Below is the screenshot for the first and last day of software ICU for wattdepot-cli-ekolu.
During this week, we've been using software ICU as a tool to monitor the project health. I think from the two screenshot above, we've been doing a lot better than we first started; the coverage is high, the complexity is low, also the devtime is high. Everyone participating very actively in this round.
Answer to Question in Part B
During November, for SIM_OAHU_GRID
The highest energy usage is 995MW; usually at 8PM every weekday: 2-6, 9-13, 16-20, 23-27, and 30.
The lowest energy usage is 493MW; usually at 4AM every weekday: 2-6, 9-13, 16-20, 23-27, and 30.
The most energy consume: no data
The least energy consume: no data
The most carbon emitted is 29959.193 lbs on the following day: 5, 13, 16, 17, 20, 26, and 30.
the least carbon emitted is 22908.58 lbs on the following day: 7 and 8.
To derive the answer of these questions, I implemented a temporary class that has two methods; one for the energy statistic and another one for carbon statistic question. These methods use the two existing method to create a data set of each hours (for energy) or day (for carbon) and sort out the one that has the lowest or highest values.
Personal Experience
This is a really good setting for experiencing group coding and software development. I think some of the tools that we've been using is very useful such as Subversion that give us a quick warning whenever the system fail.