Monday, October 8, 2007

15. MyIsern-1.0

This task was completed successfully and the link to the project page can be found here

JAXB
This is the first time I work with JAXB and I was confused by it at the beginning. The idea of converting XML data into java codes and vice versa is brilliant. A large portion of time I spent on this project was on reading about JAXB and XML so that I understand the idea of unmarshalling and marshalling. After knowing how JAXB linked XML and java, it was not difficult to come up with the methods to extract the data from XML and turn them into java tables.

XML
Compared to JAXB, I found XML schema easier to understand. It is basically the language for XML which allows user to define the structure and data types for XML files. However, for this assignment, I focused on learning about JAXB and haven't explored it in detail yet. Hopefully, as we move on with this MyISERN project, I will have more chances to work with it.

Table implementation
At the start of the project, I expected the extraction of data from XML files would be the hardest part of this assignment but it turned out not as difficult as implementing a table in Java. Our group started out with no idea on implementing the table and decided to use JTable after doing some research online. The good thing about using this class is that GUI interface is possible which produced nicer result than simply printing out in text form. However, as we started implementing methods to print out JTables, we were presented with several problems such as table overriding each other. By doing some research online again, we were able to solve these problems and we are much more familiar with using JTable and its related classes now.

Jar file compiling
I didn't know how to enable a file to compile using command prompt before and thought it would be a difficult task. However, after reading through the build.xml from previous assignment I found that it is quite easy. I am comfortable with implementing it in my future assignments.

Emma
For this assignment, the data are given and we can not do anything to change them. As a result, a couple of try-catch and if statements can not be covered at all. We spent a while on figuring out how to get around this problem but concluded that there is nothing we can do without modifying the given data. Besides, I found myself more unwilling to spend time on Emma when it comes to testing void methods. This is because I don't see how useful it can be with assignments like this one where there are a lot of such methods. We can cover a large portion of the code by simply running the main method which is virtually doing no constructive testing at all.

SVN
I enjoyed using SVN in this project a lot. It is very convenient and efficient. However, I do encountered problems with it at the beginning when I updated the code. My group member was implementing the print table method in a very different way as mine. As a result, when I updated the code, I got a warning saying "one or more files are in a conflicted state." I have to go through quite a lot of troubles with merging the changes. Some parts of the codes cannot be merged without going through a lot of revision. In the end, I decided to follow my group member’s way to construct the method so that the conflict can be resolved. Other than that, my experience with SVN was pleasant.

Google project hosting
This is a powerful free service provided by google. I never imagined sharing a project to be so easy. I will absolutely stick to this project hosting service in the future.

Group software development
Working in a group is easier than working alone. Our group couldn't meet in person everyday but meeting online served the purpose well already. We were able to work on the code on our own, ask questions once we get into trouble instead of wasting a lot of time to figure it alone. Besides, working in group makes sure that there's someone to review your work and I learned most from it, especially by comparing my codes with theirs. For example, the way I generated the table was a bit complicated and my group member was able to come up with a simpler one. All in all, this is a nice group working experience. I guess the most important thing is making sure everyone is on the same pace so that we can work on the project together steadily.

No comments: