Win a copy of The Little Book of Impediments (e-book only) this week in the Agile and Other Processes forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Help needed with confusing requirements...

 
Peter Hat
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi all.

I'm having trouble understanding some of the requirements in my assignment.

Assignment quotes
1a) "Your programs must not require use of command line arguments other than the single mode flag, which must be supported..."
1b) "...The mode flag must be either "server", indicating the server program must run, "alone", indicating standalone mode, or left out entirely, in which case the network client and gui must run."
2) "...In either case, the program must allow the user to specify the location of the database, and it must also accept an indication that a local database is to be used, in which case, the networking must be bypassed entirely."
3) Your programs must not require use of command line property specifications. All configuration must be done via a GUI, and must be persistent between runs of the program. Such configuration information must be stored in a file called suncertify.properties which must be located in the current working directory.

My questions
1) From the plural tense of "programs" in quote 1, it seems that I'm expected to write (at least) 2 applications. However the command line arguments seems to indicate only 1 application which can run in 3 modes. If I make 2 applications, the 3 command line arguments doesn't make sense as far as I can see.
Am I worrying too much about the plural of 'programs'? Or did I miss something?

2) Quote 2 and 3 say that it must be possible to specify the location of the DB, and if local is chosen no network traffic must occur. Should this be specified in the client GUI, or should I make a server GUI for specifying this?
It would seem more natural to keep GUI out of the server, but on the other
hand, it is the server which handles the DB access, so it would be a bit strange for the clients to be able to specify the DB location.
Unless clients could have separate DB files, so for instance 3 clients could work on 3 different DB files, through 1 server instance? Hmm.. Confusing. :/
No idea how I am supposed to understand these requirements.

3) Quote 1 tells me that the command line arguments controls whether to run standalone or network version. Quote 2 and 3 tells me the same thing should be controlled from the GUI.
If both is implemented, the requirements are actually broken, if a server is running as 'local', and then later changed to non-local, since that would cause it start using the network.
Very confused about this too...


Help needed
I can't imagine a solution which I am sure will not auto-fail.
So I hope some of you will be able to help out, come with ideas or just post how you understand the quoted requirements.
 
Musab Al-Rawi
Ranch Hand
Posts: 231
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hi,


1a) "Your programs must not require use of command line arguments other than the single mode flag, which must be supported..."
1b) "...The mode flag must be either "server", indicating the server program must run, "alone", indicating standalone mode, or left out entirely, in which case the network client and gui must run."
2) "...In either case, the program must allow the user to specify the location of the database, and it must also accept an indication that a local database is to be used, in which case, the networking must be bypassed entirely."

there is one main entry to run the application (one class with one main()). when you run this class it should take one of the three values (server, alone and empty string) and based on this argument main() will instantiate whatever it needs to get the job done (network / standalone layer and database layer).

Regarding the rest here is what it means:
the user should be able to specify the host name where the database is located (there is only one database shared between all clients) and you can specify any other needed parameters (such as port number).

NOW
where do you specify them?
you specify them in the suncertify.properties. So your application needs to read the contents of that file and work upon them.

how can the user change the properties?
user should be able to change settings from the GUI and not by opening/editing the properties file (using notepad for example).

hope that clarified things.
 
Herman Schelti
Ranch Hand
Posts: 387
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hi Peter,

(I'm working on UrlyBird)

1)
I wouldn't worry about the plural programs.
Just one class with a main will do. This class should call the right frame, basesd on the 1 allowed input parameter.

2)here's what I do
-"server": a configframe starts, user can pick a database and portnumber
-"": different configframe starts, user can choose host and portnumber.
(not database, users normally don't know that.)
User will user the remote database, picked by "server"
-"alone": 3rd configframe starts, user can pick a database.
This database is local, no networking allowed, not needed either.

Hope this helps!

Herman
 
Peter Hat
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for your replies.

About my questions...
1) Yes, I did make only 1 runnable as this seems to make most sense, but I'm still a bit worried that the requirements says 'programS'.

2) Yes, it does make a lot more sense to specify the location of the server to connect to... But assignment say specify 'Database' and not 'server'. I guess it could mean the same thing, I just assumed that database meant database file.
Hmm... You're probably right.

3) Still not sure about this... Allowing change from local to network seems to be breaking the requirements if they are interpreted strictly.


Thanks for your input... They make a lot of sense.
Though I'm still not 100% sure it fulfills the requirements, I'm getting closer.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic