Eugene Sun

+ Follow
since Aug 09, 2003
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
(keep public parts private until JForum day)
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt
Moderation Tools

Recent posts by Eugene Sun

Hi guys,

I have a question about Mark Cade/Simon Roberts' Golf Equipment Store (GES) case study, specifically about the Browse Catalog use case.

First interaction between the Customer and the System

1. Customer selects browse catalog
2. System presents the main page the catalog that has a list of categories and a list manufacturers

The way this interaction gets modeled in the class diagram isn't very clear. It only shows SearchProcessor(StatelessSessionBean) has a dependency(searches) on class ProductCategories.

Given the decision for the class diagram to compress manufacturer as Product's attribute, how does a list of categories and a list manufacturers get designed into class diagram just with class ProductCategories (not ProductCategory) ??

Actually, again, in the Business Domain Model, it has ProductCategory class, not ProductCategories class.

I am actually thinking we could model a list categories and a list of manufacturers with following approach

we will have a ProductCategory class, so from Inventory subsystem, you will get a list of ProductCategory classes, each ProductCategory class you will have a list of Product class objects. A list of Manufacturers can be derived from list of Products from a list ProductCategory classes. A list of categories will come from the list of ProductCategory objects. That will be derived from "Category" attribute of Product objects.

Even though Mark Cade/Simon Roberts class diagram doesn't include members and methods in it, it wouldn't hurt to show some details in it, right ? I know if I was the developer for the project, I would find it helpful to have some level of details in the designed architecture.

Anyone who read the book want to comment on my questions ?


One of the INESystems mock exams says

A 2-tier architecture has the following weaknesses

1) scalability
2) extensibility
3) manageability

I am thinking is manageability really a bigger problem than maintainablity ? I know 2-tier architecture is definitely less manageable than 1-tier one, but I would think maintaining coupled layers in 2-tier architecture should outweigh its manageability issue. Comments ?

In one of the INESystems mock exams, DAO with an Entity Bean using BMP is said to be

1) reduced dependency on data base
2) easier path to change the bean to CMP

I understand 1), but how is 2) true ?

I am still stunned by your accomplishment on SCEA even though I first read your post 4 days ago. The amount of time you spent in peparing for it to pass the exams is unbelievably short.
How were you able to cover all the topics for part I within 3 days ?
Enlighten me!
I have just passed SCJD - FBN project with score 136/155. Many thanks to everyone in this community, really, there are tons of good reads in here. I feel grateful to be part of it. Thank you again,
score breakdown
The maximum possible score is 155; the minimum to pass is 124.
General Considerations (maximum = 58): 51
Documentation (maximum = 20): 16
GUI (maximum = 24): 20
Server (maximum = 53): 49

I am now shooting for the Architect Exam!
13 years ago
Hi guys,
I am working on the final documentations for the assignment. I am thinking to just use ascii text file format for the user documentation with plain text to instruct user how to use the GUI and the server.
Has anyone done that and passed the exam without being penalized ?
another question,
in the "Deliverables" part of the instruction of my assignment, btw, I am on FBN assignment. It requires me to document how to execute the programs in README.txt. Isn't that redundant with what's required in the user documentation where I am supposed to document how to run the programs ?? How are you handling this ?

2. Make 1 interface that has all the public methods of the new Data class or the modified one, depending on which you chose in statement #1.
Interface extends Remote, throws only Exceptions

Why would you want to make the interface extend Remote interface ? It doesn't make sense to me for the LocalDataAccess case.. Could you clarify ?
[ November 23, 2003: Message edited by: Eugene Sun ]
Hi all,
I am working on FBN project.
In the GUI requirement of the project, it says the following

Your user interface should be designed with the expectation of future functionality enchancements, and it should establish a control scheme that will support this with minimal descruption to the users when this occurs.

What exactly is Sun looking for for this requirement ? What needs to be done here to support future enhancements ?
Hi all,
I am working on FBN project.
My lock manager is a plain HashSet. It's not really a manager at all actually, it's simply a collection of record number of the records that are currently locked. Let's call it lockedRecords for this email's discussion.
I am not synchronizing the lock() and unlock() at method level. My thread-safe mechanism is done inside both methods where I synchronize the lockedRecords which is a static member field of Data class. I think it's a better idea than synchonizing the entire methods because I still want to give other users to be able to do reads like
while I am locking the the records, whereas if synchronizing the methods, the entrie Data object will be blocked.
Any comments on my design decision ?


[Andrew]: You will have noticed that most of the methods of Data class call invariant() to verify that nothing untoward has happened to the database between accesses. I think that this is all Sun require in the way of verifying that only one application is modifying the database at any given time.

Your comment is saying this invariant() method isn't much of a rigid check against muliple applications accessing the data file ?
Can you elaborate on the holes in this mechasim as to when it could fail to guard against multiple applications accessing the data file?

[Andrew]: Personally I think it would be very difficult to guarantee that only one application could access the database at any given time. There are some things you could do, but most of them would require changing the provided classes. Sun have told us that those classes "are complete". I take that as meaning that we should not go changing existing functionality if we can avoid it.

I am very curious about what you could do as you mentioned above. Can you elaborate on that ?
Hi all,
A couple of questions here about FBN,
1. Has anyone used StringTokenizer to parse the criteria String instead of the java.util.regx package and passed the exam without losing points on criteriaFind method implementation ?
2. I have both the "Origin City" and "Destination City" as input TextFields, has anyone implemented them this way and passed without being penalized, or do I have to implement a ComboBox with a selection of cities for these two input fields ?

Hi guys,
I disagree with you on this requirement. I am working on FBN project also.
I think requirement

The remote client code that you write must provide all the public methods of the suncertify.db.Data class.

makes total sense. Hear me out.
First of all, Let me ask you guys a question. When you implement the local mode, do you call lock and unlock method on the Data class in your GUI?
I do in the local mode.
For the networked mode, RMI is supposed to serve as the proxy for the server to allow GUI to call (Data Client is the proxy here) , so the calls made on the Data Client should be exactly like the ones made in the local mode on the Data Class directly, only they are really remote.
Correct me if I am wrong.
That's why I don't see anything
I am working on the Flight by Night service project. In its requirement, it states that you can have the java command line argument like
1. java.rmi.server.codebase
2. java.rmi.server.hostname
3. Data file name
4. server port number
and etc.
My question here is about this "Data file name", I am thinking of putting that in the java command line arguments when starting Client in the local mode, so the client can find the database file wherever the client files are installed. Something like "c:\scjd\server\db.db" (windows) or "\scjd\server\db.db". Always the location where the server files are installed.
Has anyone done this before ? Can the file directory names like my examples be qualified for "Data file name" in the requirements ?
I am trying to make sure there is only one db.db being used while running in a local mode or networked mode.
Thanks Andrew, feels like I've got a closure to it. Now I am moving on to test the web server approach.
I am really eager to wrap up this SCJD so I can start studying for the architect exam, that's the one I am dying to start on....
Here is the error I am getting while trying to start my GUI client

Line 69 is the Naming.lookup line in the source code below

My server starts succesfully, again, I have the database and server classes in the classpath of the server JVM, but just the GUI client classes in the classpath of the client's JVM.

So although you can get away with dynamically downloading your code (and even using a web server) because it is not specifically disallowed, you might want to think about whether you really want to do something that Sun are explicitly stopping people from doing in later assignments.

thanks for your input, I will think about this...