After 5 weeks of wait, I've finally received my results:
General Con: 100 100
Documentation: 70 70
OOD: 30 30
GUI: 40 24
Locking: 80 80
Data Store: 40 40
Network Server: 40 7
Total: 400 351
I'm happy I've finally passed, despite my tragic RMI grade... I would love to know what exactly went wrong with the network server, but I'm on my own to speculate why. My GUI was quite simple and intuitive, but perhaps the assessor thought my minimal table design was a bit too intuitive.
I'm sure the most useful kind of thread on this forum must be the SCJD results. This is where everyone can contribute to everyone's success by describing what counted and what deducted on their final results, it's not a mere podium. Here's my contribution:
Network server I was negligent on the RMI server: I didn't care for broken clients, although I've justified that case on my choices document. I thought it was too complex to take care of that on the project, perhaps I was wrong. I've also added the stub file, which is unnecessary in JDK 6. I did not discuss my server design at all on my choices.txt, maybe that was another factor.
Data store & Locking I'm happy I didn't fall victim of the 40/80 curse!
I had a separate locking manager. My database class could accept different locking managers that could be used to apply different locking strategies (locking / no locking / time managed locking / etc). I had one class for low level record operations (the record manager), another for locking (the lock manager), and another for search operations (the search manager) which resulted in a 272 lines Data class that was easy to understand.
Search mechanism My search mechanism was extremely flexible: I used the strategy pattern to encapsulate search criterias in such a way that I could easily create criterias of arbitrary complexity. The strategy pattern normaly yields many classes, but I wasn't deducted any points for my choice.
General considerations & Documentation For the purpose of this project, I didn't trust code formatters, and apparently it paid off! I've followed the Sun code convention rigorously (I have yet to see one code formatter that does so). I've documented every single member of every single class. Very dreadful, but it paid off...
I think the most important contribution I can make has to do with the infamous 48h rule: I did not implement it and I gave strong reasons for doing so on my choices.txt. I suppose my general considerations score shows it was a valid choice. I also did not implement insertion and removal of records and justified my choice.
OOD I am very satisfied with my OOD score! I used the common 3 tier approach, and I went as far as naming the packages according to their role on the MVC pattern!
My other relevant OOD decisions were already described on my other considerations.
Some stats Number of classes: 36
Size of choices.txt: 14.3KB
I wish everyone success and I hope I have contributed somehow!
[ September 15, 2007: Message edited by: Dalton Filho ]