posted 19 years ago
Hi,
I have some questions about the assignment...
Especially the "Prepare Itinerary Use Case" ..
it doesnt seem very logical to me.
Assumption A: I start from the assumption that one itinerary can be composed of n flights : this conforms to the business domain model provided with the use case. As I clearly understand it, an itinerary can be: 3 segments/flights from Vienna to New York, 7 segments/flights to come back. Do you agree ? The multiplicity relationship in the domain model is 1..*, not 1..2 or 1..3 � it is clearly 1..*, which means n segments are possible � so there is no limit. Well � where is the problem ?
There are many problems - the problems are here.
Problem No. 1:
�System responds with a list of departure flights and return flights. Customer selects the departure flight and return flight.� (quote from the �Prepare Itinerary Use Case�) - this makes no sense. When a customer has entered search criteria, he should not be presented with flights that he must select from � he should select from itineraries proposed to him. So in this case, I changed this step to a selection of itineraries, rather than selection of departure flight and return flight.
Problem No. 2:
after selecting an itinerary from the itineraries proposed to him, the customer is again proposed itineraries, which �cost less and are within one hour of departure and return times�. Well, again, starting from assumption A, let�s discuss how to implement this. Let�s say we have a round-trip itinerary, not a one-way itinerary. In this case, we could divide the itinerary in �outward� segments for the path towards the destination, and �return� segments, for the return from the destination. If we implement the requirements, then this would mean: present the user with alternative itineraries, which cost less, and are within one hour of departure and return times. Let�s say the customer has chosen this itinerary previously:
Outward:
Departure: Vienna, 10.2.2005, 8.00AM Arrival: Berlin 10.2.2005 10.00AM
Departure: Berlin, 10.2.2005, 11.00AM Arrival: London 10.2.2005 12.00AM
Departure: London, 10.2.2005, 12.30AM Arrival: NewYork 10.2.2005 4.00PM
Return:
Departure: NewYork, 10.3.2005, 8.00AM Arrival: London 10.3.2005 12.00AM
Departure: London, 10.3.2005, 1.00 PM Arrival: Berlin 10.3.2005 2.00 PM
Departure: Berlin, 10.3.2005, 2.30 PM Arrival: Vienna 10.3.2005 4.30 PM
This itinerary starts 10.2.2005 8.00AM, arrives at NY on 10.2.2005 at 4.00PM.
For the return, it starts 10.3.2005 8.00AM, arrives at Vienna at 4.30.PM.
Let�s apply the quote from the use case here : �cost less and are within one hour of departure and return times�
Let�s say we find an itinerary that costs less, which starts 10.2.2005 at 7.00AM but arrives at NewYork at 8.00 AM the next day (16 hours later than the first one), then for the return starting at 10.3.2005 7AM in the morning (5 hours earlier), but arriving at 5.30 PM in the evening, it is ok and meets the criteria specified in the use case ?! Well I wonder if I understand this right.
Problem No. 3:
the customer first enters search criteria to get proposed itineraries. Then, the customer selects an itinerary and again gets proposed itineraries. Then, the customer selects again, and gets to seat selection � why are not all possible itineraries possibly matching his needs displayed at the first time, including a price for business and economy class ?! Then, after having selected the seats, he gets a sort of acknowledgement window, and confirms. I think there is really one step too much in here. But maybe I got the requirements totally wrong !!! This use case doesnt seem logical to me.
Problem No. 4:
if the previous �problems� are solved, there is still another one remaining. Again, starting from Assumption A, consider the �Change Itinerary� use case.
They tell us that an itinerary can be changed, but only one segment at a time. The user selects the segment of the itinerary to be changed, and that segment is then deleted and the itinerary sent to the "Prepare Itinerary" use case. This is confusing. If the itinerary which only lacks one segment is sent to "Prepare Itinerary" use case, what shall happen there ? Must the user re-search the whole itinerary ? Must he only search for that segment of the itinerary ? If it is only one segment that needs to be changed, there must be a whole lot of state information transferred to the "Prepare Itinerary" use case, which almost means to program the whole use case another time for this special case !!!
I would design it this way: when changing an itinerary by one segment, there is a set of itineraries proposed to the client meeting his needs, but only differing in this special segment !! He then choses one. He gets proposed alternative itineraries again,, only differing in the chosen segment, and choses again.
This would mean to implement new methods for this special use case. This would also mean to pass a lot of state information from the �change itinerary use case� to the �prepare itinerary use case�. But if I am already wrong with my assumption, I should maybe not implement it right now, and wait for your answers and thoughts.
Please help me out on this, I�m stuck since 2 weeks because of this problems and nobody seems to be able to discuss it with me...
Regards,
J