So here is the score. I banged my way through
SCJD in a hurry, submited it about a month ago, and was finally able to see the results after a hectic week of moving. I am surprised at the score(in a good way), I guess the I lost marks for the general considerations because I did the
test a week after submitting the assignments. Oh well I am happy either way.
This report shows the total number of points awarded for each section. The maximum number of points is 400, to pass you need a score of 320. Section Summary: Section Maximum Actual Points Points
General Con: 100 78
Documentation: 70 70
OOD: 30 30
GUI: 40 40
Locking: 80 80
Data Store: 40 40
Network Server: 40 40
Total: 400 378
My approach was a simple clean design with clear detailed documentation. This allowed me to complete the assignment in about three weeks and get a descent score
My program is the equavelnt of a diet cola. The bare minimum with the only optional requirements of unbooking and an html help file display thingy. I used RMI. For persistance I used simple files, and only opted to persist the location of the database file(for the server) and the location of the database server(for the client).
GUI: My gui was very simple. Nothing special. Since the search called for an exact match I had a drop boxes for location and name with all possible options.
Locks: I used individual record locks, with cacheing. In my case this simplified everything quite a bit. I read in the whole database into record data structures that held both the record state(delete/lock) as well as the values and then stuck them into a vector(yeah I know its old I just used the first list type container I found
).
Design: The server side had three parts. Data, Business logic and the server. Each client talks to the server through a buisness logic interface instance(each client has one). When the server gets a connection it returns a buisness logic instance to the client. All the business logic instance then talk to a singleton Data class. The reason I have multiple business logic class instances is so that I can deal with orphan locks(yes buiness logic implements remote).
THe client side uses a simplified form of the MVC
pattern.
Other stuff: I had an extra class that defined the whole database(kind of like an abstract factory but not quite). I used this apprach instead of a property file because it was much simpler but at the same time allowed the same type of extensibility.
I documented every single little detailed assumption I made. I think this helped me getaway with some things.
I did implement the 48hour rule. I assumed that all the clients were located in the same timezone and I documented this as well.
Thanks: Thanks to everybody, I had fun doing this assignment and particpating in discussions. I did buy the popular SCJD book, but by the time I got it I found this forum to be far more usefull so it became paper weight. Special thanks to Mr Monkhouse whos detailed answers to past threads help me get a good idea of the design and the design problems.
anyways good luck to all you guys taking SCJD.... I will check this place out as time permits
for now I am a very happy camper...
[ January 06, 2005: Message edited by: Inuka Vincit ]