aspose file tools*
The moose likes Developer Certification (SCJD/OCMJD) and the fly likes B&S: Passed 373/400 Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Developer Certification (SCJD/OCMJD)
Bookmark "B&S: Passed 373/400" Watch "B&S: Passed 373/400" New topic
Author

B&S: Passed 373/400

Zeng Wei Chu
Greenhorn

Joined: Dec 05, 2007
Posts: 27
Hi all, just did a random check and surprised to see that my assignment had been graded within less than a week. Here's my break down of score:

General Considerations (maximum = 100): 90
Documentation (maximum = 70): 70
O-O Design (maximum = 30): 30
GUI (maximum = 40): 40
Locking (maximum = 80): 80
Data store (maximum = 40): 40
Network server (maximum = 40): 23

Lost marks for network server:
I used a socket solution using ServerSocket and defined a custom protocol, wonder what wrong, guess using RMI is a safer bet.

Locking:
For record locking, i used a lock for each record, thanks to the hand-over-hand locking technique in Andrew's book.

This assignment took me a total of 6+ months to complete, working on this after work really drains me, but the process of completing this assignment is a rewarding one!

Thanks to all the help and advices offered in this forum.
[ June 17, 2008: Message edited by: Zeng Wei Chu ]

SCJP | SCJD | SCWCD | SCBCD | SCEA
Roberto Perillo
Bartender

Joined: Dec 28, 2007
Posts: 2267
    
    3

There you go man, congrats!


Cheers, Bob "John Lennon" Perillo
SCJP, SCWCD, SCJD, SCBCD - Daileon: A Tool for Enabling Domain Annotations
Soroj Margun
Ranch Hand

Joined: Jun 15, 2008
Posts: 44
Great score. Congrats


SCJP 1.2; SCWCD 1.2,1.4; SCBCD 1.3; SCJD 5.0
Robert James Liguori
Author
Ranch Hand

Joined: Nov 27, 2007
Posts: 532
    
    5



My Blog (I frequently post on Java, JSF and NetBeans)
Vasya Pupkin
Ranch Hand

Joined: Dec 06, 2006
Posts: 39
nicely done!

Can you briefly describe your gui too? It would be nice to know what route to choose. 40 out of 40 is very rare.


SCJP, SCJD
Joe Harry
Ranch Hand

Joined: Sep 26, 2006
Posts: 9518
    
    2

Congrats!


SCJP 1.4, SCWCD 1.4 - Hints for you, Certified Scrum Master
Did a rm -R / to find out that I lost my entire Linux installation!
Zeng Wei Chu
Greenhorn

Joined: Dec 05, 2007
Posts: 27
Thanks all, here are some information regarding my GUI design:

Use MVC Design Pattern:
There are 2 GUIs to be prepared (Client and Server) and for both I have adopted the MVC design pattern. Although it seems to be a bit of overkill for the server GUI, which is actually quite simple, I have chosen to use MVC also for the sake of consistency.

Search Function
I had a search panel on the top of my GUI just below the menu bar. I used comboboxes for both names & locations. In between the comboboxes I have two radio buttons which allows the user to chose the AND or OR condition. I guess this is pretty much the same as what most would implement. In addition, I have a menu item to allow the user to manually sync the combo boxes with the database.

GUI Testing
GUI testing can be time consuming as there are many things to look out for:
1) Do you allow user to operate on your GUI without the need to use the mouse? Do add key mnenomics to your GUI and try to perform actions on your GUI totally without your mouse.

2) Add tooltip to buttons. Try to keep button names short and use tooltip to reveal more information to the user.

3) Use layouts carefully and test maximizing on your frames and dialogs. Make sure that after maximizing your GUI components are still organized to the way you want. In addition, allocate sufficient width and height to your frames and dialogs. Test running your GUI in different platforms if possible.

4) Think of yourself as the end-user, and how would you like to operate the GUI so that it best fulfill your job purposes. For my booking of contractor, i adopted a step by step approach to guide the user through the booking process.

5) Remember to thread processes which can take potentially long time to finish execution. The booking process is one example, since user had to wait for record to be unlocked if it happened to be locked by another user. This is to ensure that the GUI does not "freeze".

User Guide
I provided offline user guide in the form of html files.


Hope these information helps! I ended spending more time on the GUI module than anything else.
Zhongbo Li
Greenhorn

Joined: Dec 06, 2003
Posts: 23
Congratulations!


SCJP,SCJD,软件设计师<br />Skype:mediumwave<br />QQ:85646604<br /><a href="http://www.yjping.com" target="_blank" rel="nofollow">http://www.yjping.com</a>
Matthew Flint
Greenhorn

Joined: Oct 25, 2007
Posts: 14
There are 2 GUIs to be prepared (Client and Server)...

A GUI for the server? That had never crossed my mind!

I'd always assumed that the a non-interactive console application for the server would be adequate...

Matthew
Jimmy Chen
Ranch Hand

Joined: Apr 11, 2005
Posts: 54
Congratulations! zengwei.

I have a question about the search function. How did you define your search?

Like "Fred", did you return all matches start with "Fred", such as "Fred" and "Freddy"?

Did you return records with "Fred" in middle, e.g. "Afred"?

How about case sensitive?

Thanks!

In my assignment, it says:

public void delete(int recNo) throws RecordNotFoundException;
// Returns an array of record numbers that match the specified
// criteria. Field n in the database file is described by
// criteria[n]. A null value in criteria[n] matches any field
// value. A non-null value in criteria[n] matches any field
// value that begins with criteria[n]. (For example, "Fred"
// matches "Fred" or "Freddy".)
[ June 26, 2008: Message edited by: Nova Chen ]
Anirban Das Gupta
Greenhorn

Joined: May 13, 2008
Posts: 28
Hello Zeng

Congrats...


There are 2 GUIs to be prepared (Client and Server)...


Please explain this in greater detail.
Regards

Anirban
SCJP(1.4)
[ June 27, 2008: Message edited by: Anirban Das Gupta ]
Zeng Wei Chu
Greenhorn

Joined: Dec 05, 2007
Posts: 27
Hi all, I indicated that two GUIs need to be prepared because its one of my requirements to provide a GUI for the user entering of configuration. Since there is server configuration to be saved, I provided a GUI solely for the entering of server configuration.

Sorry if i confused you all.
I have a question about the search function. How did you define your search?

Like "Fred", did you return all matches start with "Fred", such as "Fred" and "Freddy"?

Did you return records with "Fred" in middle, e.g. "Afred"?

How about case sensitive?


Nova, my database find method returns all matches which starts with the specified criteria, for e.g., "Fred" return all matches start with "Fred", such as "Fred" and "Freddy. I do not return matches in between. It is better to follow the description of the interface methods closely, the keyword is starts with.

My find method is not case sensitive.

Regards,
Zegwei
Raghavan Muthu
Ranch Hand

Joined: Apr 20, 2006
Posts: 3355

Congratulations Zeng Wei Chu


Everything has got its own deadline including one's EGO!
[CodeBarn] [Java Concepts-easily] [Corey's articles] [SCJP-SUN] [Servlet Examples] [Java Beginners FAQ] [Sun-Java Tutorials] [Java Coding Guidelines]
Jimmy Chen
Ranch Hand

Joined: Apr 11, 2005
Posts: 54
Thanks very much!

Another question . How do you deal with RandomAccessFile? Do you just use one RAF for all access or created one RAF in each method?

like discussed in this post
[ June 27, 2008: Message edited by: Nova Chen ]
Zeng Wei Chu
Greenhorn

Joined: Dec 05, 2007
Posts: 27
Hi Yuchen,

I used a single static RAF as it seems logical to have one RAF to represent the single database as a shared resource. Hence multiple users will be accessing a single database (RAF) whereby concurrent access to the database had to be controlled.

Regards,
Zengwei
Jo�o Batista
Ranch Hand

Joined: May 25, 2008
Posts: 40
Originally posted by Nova Chen:
How about case sensitive?


The documentation don't imply anything about this issue. I guess it's a matter of documenting your choice here.
Jimmy Chen
Ranch Hand

Joined: Apr 11, 2005
Posts: 54
Originally posted by Zeng Wei Chu:
Hi Yuchen,

I used a single static RAF as it seems logical to have one RAF to represent the single database as a shared resource. Hence multiple users will be accessing a single database (RAF) whereby concurrent access to the database had to be controlled.

Regards,
Zengwei


Thanks a lot!
Jimmy Chen
Ranch Hand

Joined: Apr 11, 2005
Posts: 54
Originally posted by Jo�o Batista:


The documentation don't imply anything about this issue. I guess it's a matter of documenting your choice here.


got it! thanks!
 
 
subject: B&S: Passed 373/400