• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

NX: URLyBird validation of requirements

 
Lanuk Jajab
Greenhorn
Posts: 19
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello,
I've been reading and re-reading the instructions that I were provided and I'm questioning some of my understanding of the requirements.
<quote>
They take bookings only within 48 hours of the start of room occupancy. Curently, URLyBird sells the rooms over the phone using a team of customer service representatives (CSRs).
The company's IT director has decided to migrate the existing application to a Java technology based system. Initially, the system will support only the CSRs, although the hope is that this interim step will give them a starting point for migrating the system to the web. The IT director does not anticipate much reuse of the first Java technology system, but intends to use that system as a learning exercise before going on to a web based system.
The new application, using the existing data file format, must allow the CSRs to generate a list of accomodations that match a customer's criteria. This is the project that you have been commissioned to implement.
</quote>
The way the background is set up, it seems there isn't a need for keeping extensibility as one of the goals of the application. However, I find it extremely hard to not build extensibility into software components. Am I going to be losing points for doing that?
Now, the second piece that has me a little puzzled :
<quote>
Network Approaches
Your choice of RMI or serialized objects will not affect your grade, but no other approach is acceptable. 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. No authentication is required for database access.
</quote>
This tells me that my application needs to support multiple databases, one Data instance for each new DB file location that is sent in by the Client. This "choice" would then be saved locally on each client in suncertify.properties (for both network as well as standalone) to load as a default when one starts the application afresh.
While I think I understand this if one is operating in "local/standalone mode", I find it a little impractical to expect the users to specify the "physical path" of the database file located on a server. Could somebody please comment on this?
Any light that can be shed, would be great.
Thanks,
- Lanuk.
[ July 06, 2003: Message edited by: Lanuk Jajab ]
[ July 06, 2003: Message edited by: Lanuk Jajab ]
[ July 06, 2003: Message edited by: Lanuk Jajab ]
 
Jim Yingst
Wanderer
Sheriff
Posts: 18671
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I had the same confusion for NX-Contractors (which seems virtually identical in these respects). Note that "location" is vague - if you interpret it as meaning just host name and port, that might make more sense. Note also that there's more than one type of "user" for this program - a person starting a server should probably be able to specify a file path, while a person using a client probably should not - they just choose which server they connect to, and the server does the rest. In this interpretation, a JVM running in server mode need only work with one DB file. (Though you could write it to handle multiple files as well; your call, I think.)
 
Lanuk Jajab
Greenhorn
Posts: 19
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Jim,
Thanks for your input. I think interpreting "location" of the database more as the URL of the server than of the physical database probably makes a lot of sense.
Keeping that perspective, there probably wouldn't be a need to support multiple databases from the perspective of a single server instance especially, if the end users would never be able to specify which database they want to use, or the fact that the server administrator would only be able to specify which database to use for the server session during server start time. Even then, I have a Factory that returns DB instances keyed by physical database file location (1 instance for 1 physical database file) which could be used purely from an extensibility perspective for the future.
thanks,
- Lanuk.
 
Andrew Monkhouse
author and jackaroo
Marshal Commander
Pie
Posts: 12007
215
C++ Firefox Browser IntelliJ IDE Java Mac Oracle
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Lanuk
There are places where the specification contradicts itself, or leaves things wide open to interpretation. This could be because Sun want you to make decisions that are your decisions (and defend them). It could also be because Sun are trying to imitate specifications from the real world (yes, usually the client is unsure of what they want). It could also be just bad specification writing.
There are two requirements in UrlyBird regarding future uses:
  • The IT director does not anticipate much reuse of the first Java technology system.
  • Your user interface should be designed with the expectation of future functionality enhancements.
    When this happens in real life I usually get very dispirited as it is usually a sign of internal politics causing problems in the client side, which will make my life harder.
    But basically I think that even if there is a chance that your code will be disposed of, you should still code as though it is going to be reused.
    So make it obvious that you are thinking about how the project can be extended, but dont go putting in thousands of extra features that may never be used. And definately dont write the code so that it cannot be extended.
    I agree with Jim's comment about location probably meaning "host and port" in networked mode.
    Regards, Andrew
    (By the way, UBB Code uses square brackets '[', not angled brackets '<')
  •  
    • Post Reply
    • Bookmark Topic Watch Topic
    • New Topic