• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Bear Bibeault
  • Ron McLeod
  • Jeanne Boyarsky
  • Paul Clapham
  • Tim Cooke
  • Liutauras Vilda
  • Junilu Lacar
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • fred rosenberger
  • salvin francis
  • Piet Souris
  • Frits Walraven
  • Carey Brown

B&S Passed 367/400

Posts: 22
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Just checked today and passed with 367/400. It's not as high as I'd expect (actually losing pts where I don't expect), but a pass is a pass:

General Con: 100 90
Documentation: 70 70
OOD: 30 30
GUI: 40 27
Locking: 80 80
Data Store: 40 40
Network Server: 40 30
Total: 400 367

I am disappointed in the points lost in the GUI since that's where I felt was the easiest part for me. May be I just had it "too simple". I know there are many more things I could do to make the GUI much better. Perhaps I took the advice of "keeping it simple" here too far in some area.

Basically, my GUI had a search area at the top with editable combobox for name and location, with a clear and search button. The JTable is shown below. I also provided a menu and a popup menu for the "book/unbook" command. May be I shouldn't have the "unbook" implementation. I didn't implement any sorting, since the fellow with 400/400 didn't do that. That may or may not be a point loser though.

Anyhow, some other experience I'd like to share and others may find useful:

I start the project just before Christmas last year, beginning of Dec 2006 and completed/submitted around early March. I think it's just under 4 weeks since my submission and getting my results today.

The actual time is probably in the order of 2-3 40-hr work weeks. I'd say the first week of effort is mostly in setting up the project which I think make life simpler in the actual project development. I set up 4 directories:
assignment (where the original downloaded assignment sits), development (where I put the actual development source and everything else used for development), solutions (where the final submission files as outlined in the assignment would go. These are the files that generated the final submission JAR file), and submission (where I extracted the submission JAR file back out to ensure what I submit is what should be there. It was also used for some final testing).

I used Eclipse for my IDE and set up an ANT script to do the complete build, documentation and JAR process. I has some JUnit tests, but didn't put that in the ANT script, nor thought it was really warranted. All my documentations were developed in the "development" directory. Everything in the "solutions" were created by the ANT script. This helps to ensure that the right files goes in the right place exactly as outline by the instructions, no extraneous files or problems with different versions.

The ANT script does the build and jar the runme.jar, copies the original database files and instructions from the "assignment", generates the javadoc, and JAR everything up from the solutions directory.

For "versioning", I simply need to zip up my development directory at the end of the day and email it back to myself on my gmail acct. This is a simple and pretty effective way to ensure I have back up and version if I need to go back to any previous version without investing a lot of time do anything fancy.

I also find it useful when I completed the project initially to sit on it for a couple of weeks and do more testing. Lucky I did as I quickly found problems with deadlock that I fixed. There is actually still a problem that if the same client call lock twice, it does not recognize that it is the same client and that would cause it to hang. This is a "known" problem, but I didn't put it in my choices.txt. However, from the score breakdown, I suppose since this is not in the requirement, it was not an issue, but may be others could keep in mind. My version uses cookies, and since the lock() method generates the cookie, there'd need to be a lot more work to fix that problem.

I also spend some time in learning about RMI, which was my choice of networking. Didn't bother with sockets at all. As I said, I thought the GUI was the easiest part, since in my work, I have done a lot of GUI work far more complex than this project. Perhaps it was over confidence. Or just trying to pick the right set of features to implement in the GUI.

I think one question that has come up here many times is the DuplicateKeyException in the create() methods in the interface. It is safe to say that I only implemented the class and my method never throws it, and no "key" was determined. I did mention it in my choices.txt and explain how it could be implemented, assuming we know of the key. I took out the hashcode() and equals() method in my "Contractor" class which I originally implmented for the "key", and later, after reading about others who didn't implement it without losing marks, I just drop it.

I organized my choices.txt in terms of the layers: Overall, GUI, Networking, Server, with a "heading" and numbered points for each item.

Anyhow, if anyone have more questions, feel free to ask.

Many thanks to everyone here for their insights.

SCJP(1.4), SCWCD(1.4), SCJD(5.0)
Ranch Hand
Posts: 1855
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Ranch Hand
Posts: 232
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Vincent,

Well done!

I think you can enjoy your result!

Best wishes
Ranch Hand
Posts: 361
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Very good score indeed.

Don't get me started about those stupid light bulbs.
    Bookmark Topic Watch Topic
  • New Topic