|
Who should I send questions to ? |
Please send any questions you may have regarding assignment 5 to Roy Levin and cc Dmitry Pidan.
|
From the given xml file How can we know who are the children of a specific guardian ? |
There are no predefined children of any specific guardian. The association between the guardians and their children is decided in the registration phase.
|
In example 1 there is no step when guardian enters his name, but in step 7 the system shows guardian name. How is this information obtained ? |
The xml file people.xml contains all the information about the people. You should take the information from this file.
|
How should any interaction proceed after a system directive has been entered ? |
A system directive can be entered at any phase (even if the system expects a password). After the system directive is executed, its output should be displayed (if there is any defined output) and then the system should resume its previous step.
|
Can you show another example of how a system directive is issued ? |
For example, if a system directive is issued in example 3 step 5, the interaction will appear as follows:
>enter brace id of entering child <$display ride Hell’s Rider<br>
>Hell’s Rider is in-order and in standby mode >enter brace id of entering child <
|
In example 2 step 9 it says 'If quit is entered goto step 10' is that a mistake ? |
Yes, it should go to step 11 of course.
|
Clarification on the the 'Testing Instructions' section. |
Instead of providing multiple test procedure documents with respective input_output text files as detailed in the assignment, you may alternatively provide a single test procedure document with an additional column called: 'name of input-output file' and list the respective input-output text files for each detailed test there.
|
There are still some uncertainties regrading what you define as "step" when you say that "the system should resume its previous step." - if a system directive is entered instead of a password (example 2 step 8) - the previous step would be:
"(6) system: guardian, please confirm entrance for {child name} using your id and password" or
"(7) user: {guardian’s id}"
or asking for password again without any prompting? |
To avoid any such ambiguities in these cases I updated the homework instructions (homework5.pdf) and the input_output example file (input_output_example.txt). Now the system separately asks for an id and then a password. So after this update, if a system directive is issued while waiting for a password the system will only ask for the password again (not the id and password).
|
When does the program end ? |
The program ends when there is no more input. This will happen either when the input file reaches its end (if you are using an input file) or when the user presses 'ctrl z', this simulates EOF (end of file).
|
What is the purpose of the people.xml file ? |
This file is used as the system's source of information about people. You can consider it as a data obtained from the Ministry of the Interior, which contains all the information necessary by the park about the registering people. This xml file, for the purposes of this assignments, represents all the people in the world. Anyone not there, does not exist.
|
Regarding the class and seq. diagrams, to what level of detail are they to be done ?
Are we required to model the interaction between the UI and the user (like in the examples) ?
Are we required to model XMLParser, command-line input parser, and so on ? |
The class & sequence diagrams must be consistent with your code and that every non-trivial class or method calling sequence must exits in the documentation. Also note that every class that appears in sequence diagrams has to appear in class diagram also.
|
When a guardian cancels a ticket does he get his money back ? |
Yes
|
Could you please describe how the time limit affects the system (especially the child) ?
And what is the reference point from which the time is counted (the time when child enters the park or the time when guardian set the time limit) ? |
When the child enters the park his time limit is initially set to 'no limit'. If the guardian decides to limit his time, he limits it in milliseconds that are counted since the guardian issued his time limiting command. So if a guardian sets a certain child's time limit to 60000 that means the child has only one more minute to be allowed entrance to rides, after that minute passes, the child can not longer enter rides (unless the guardian removes the time limit by setting it back to 'no limit' or sets a new time limit for that child).
|
Can a child enter unregistered guardian's id (assuming guardian's id is in the xml)? |
This is invalid, and you should call displayError and redisplay the latest prompt that requests for the guardian's id.
|
Is guardian\child id that is not included in the xml is a valid input? |
No, it is not a valid input and you should respond accordingly.
|
Is that demand for child height and age constraints for rides removed in assignment 5 ? |
Yes it is removed. You should only check the age in registration.
|
What should be the default values of x,y, timeLeft for children and rides, before they are set? |
As the child enters the park (registers) his (x, y) should be set to (0, 0) and his time limit should be set to no limit.
|
What is the purpose of rides' id, it is never used, is it ? |
You may use it for your own purposes if you wish. If you find no purpose for it, then that is also fine. There is no specific use we intended for it.
|
We think that you might have a mistake in the input output example,
please look at the following two lines:
<child 7777<br>
>please enter Bayta Darrel’s guardian id
Accoring to the people.xml there is no such person (with all respect) as Bayta,
but there is Ebling Mis that his/her ID is 7777. |
Yes, you are correct. The people.xml file I uploaded was an older one. Please see the new file people_update1.xml. The only difference between the two is this name.
|
As described in the assignment in "example 4" in step 15:
If guardian choose "q" then we should go back to step 8
(step 8 is: "system: welcome {guardian name}, here are your children:")
But, in the input output example the "welcome..." part is missing
What is the right scenario? |
Correct. This is an error in the input_output example. This is now fixed in input_output_example_update2.txt
|
The guardian's credit card is to be validated and charged after he confirms the purchase after the step 15.a.ii.2.a. If so, if there appears a problem with the credit card when should it be announced ? |
The credit card validation occurs only when the guardian registers. Other than that he never enters his credit card number. However, it could be that when he attempts to purchase a ride entrance a CreditCardException will be thrown, such an exception can be thrown if he doesn't have enough money for example. In any case such an exception is thrown you should proceed as stated in step 15.a.ii.1
|
In 15.b.i, the list should also include those rides for which the adult had purchased tickets, but there count is now 0? |
No, only those that still have a count greater than 0 (hence they may be canceled).
|
Regarding Javadoc documentation, are we to document every single method, even trivial getters/setters? |
You are suppose to document all the public methods and the non-trivial private and protected methods as well. The documentation should be meaningful hence when documenting getters and setters you should explain the getted/setted variable and not merely the fact that the method is used to get/set it.
|
It is unclear what the system should do if the user enters an unrecognized command. |
In such a case you should call displayError and redisplay the latest prompt (as in all the examples in the assignment instructions)
|
system: empty newline - it mean system write "empty line" or simply ("\n\n") ? |
You just need to call displayMessage with an empty string.
|
in Example 4, line (13) ii - what main prompt? |
The main prompt is the prompt in which the system "says": >enter command
|
I have a question about the Extreme rides:
Where the guardian sets the extreme rides approved for a specific child? (in the people.xml it doesn't appear and there is no example of it in the hw document) |
When the guardian wishes to purchase a ride entrance the system will ask him if he is sure only when the ride is extreme. If the guardian answers yes, that indicates that he approved the extreme ride.
|
in your input_output file:
you purchased a ride "Haunted Roller" for Bayta Darrel and you set Arkady Darrel brace location to 1,1 that is the coordination of "Haunted Roller" and in the but you print:
welcome Hari Seldon, here are your children:
>Arkady Darrel (0,0); Bayta Darrel (Haunted Roller); Salvor Hardon (0,0)
but Arkady Darrel who enter the ride and not Bayta Darrel
is this wrong?? |
Yes this was an error. The child entering the ride was suppose to be Bayta Darrel and not Arkady Darrel. This is fixed now in input_output_example_update3.txt. Please re-download it from the home assignments section.
|
There is something I don't understand in the input output example:
when john conner tries to ride after bayta but he's suppose to fail because of all kinds of reasons but what I dont understand is, what ride is john trying to enter exactly? how do I know he's trying to enter Haunted Roller? he's not in the correct coordinate and therefor the system cant tell what ride he wanted to go on. Even if we assume that he wishes to ride the ride that bayta took, what if Bayta fails? I think it makes more sense that a "error!" would be printed in john's case |
Sorry, there was a line missing in the input_output example file setting John Connor's brace id to the same location as Bayta Darrel's. Please download: input_output_example_update4.txt
|
While preparing the txt files for the test cases submission we found ourselves in a bit of a trouble.
In your text files you provide input and output exactly as should be performed by the program, including the passwords and brace-ids.
However, these parameters seem to be randomly generated and are not constant!
This far we have lines such as:
>confirmed by Kyle Reese, your brace id is: {brace8888 id}
But we can't truly replace the {brace8888 id} with any constant string as in your examples since it isn't a constant!
What should we put there?! |
You may either place the brace id (or password in case of password) that was generated, or some other convention (that you should document in the readme.txt file). We will then use 'find and replace' to insert the passwords/ids we will use for our tests.
|
In cancel entrances, what should the system do when there's no tickets, because the way it's written now there's no way to exit this step |
In such a case you should call displayError and return to step 14.
|
|