Question: Problem Statement: An independent Taxi/Cab drivers association wants to develop a ride hailing application. They have a distrust of any centralized authority, so they don't

Problem Statement:

An independent Taxi/Cab drivers association wants to develop a ride hailing application. They have a distrust of any centralized authority, so they don't want any kind of central server or control. The association is very concerned about storing any personal information on the drivers smartphone. Once the billing transaction is complete, all information about the user is deleted.

The idea is that users will download the application onto their smart phone (Android only). The software will contain a list of names of every driver in the association, along with the geographical area in that the driver works in. The names will be associated with an domain name, like chuck.taxihail.org . The name will provide the address for the taxi drivers smart phone. If the phone is on, it can be contacted via the domain name.

The driver will start the application. When ride requests come in, he can either offer the default rate of $1.50 per mile, per passenger, or he can add a 'premium' to the proposed cost. Along with the 'offer' going to the user, the actual location of the driver is transmitted.

The user will start the application. The application will figure out which drivers are possible (by checking the geographical limits in the driver list), and display the drivers that are online and thus in a reasonable distance and available to take a fare. The drivers will be listed by distance between the user and the driver, using the realtime positional information that is provided with the 'offer'. If there are more than 5 drivers possible, then only the 5 closest will be listed. The user will enter in the destination, and the drivers that are possible will be queried for the price they are willing to accept. This is known as the 'offer'.

The user than selects the desired driver / cost. The driver can revise the price as many times as desired until the driver informs all possible drivers that one has been selected. The driver selected will not be visible to the other drivers. This process needs to be very interactive and with low latency. A ride should be 'negotiated' in less than 15 seconds. Or it could take an hour if all the prices are greater than the user wants to pay.

The drivers application does the billing for the application. The billing is done via a 3rd party payment processor. The credit card information is not stored anywhere but the users phone. The credit card information is transferred from the user application to the drivers application when the user hits a button on the app. This can happen anytime after the ride has started.

There will be no ratings of customers or drivers.

The first time the user uses the application, they must enter in valid credit card information. This information is stored on the users phone.

It is expected that the application will be updated every 90 days. This is when the list of drivers and the default price can be changed.

The association has 10,000 drivers. Each has one taxi. Each can have two smartphones, a primary and a backup.

The number of possible users is almost unlimited. Everyone who needs a ride and has an Android Phone.

Battery life for the user is very important. There will be no communication between the application and the drivers until the user makes a request. And the communication will cease when the driver completes the payment transaction with the payment processor.

A driver or a user can refuse a given journey prior to getting in the taxi. This will be a button that is available on every screen whenever it is possible. Once a journey has started, the rider can exit the cab at anytime, but will be charged the full fare.

A driver will have a different DNS name for each phone. The 'authorization' to be a driver is controlled by the taxi association, by controlling the IP addresses associated with the DNS names.

  1. Draw the context diagram for this software system. (0.5 points)
  2. Draw a static model (class diagram) and a sequence model of this system. The sequence diagram should cover the interactions of a ride in the system, from start to finish. (1.0 points)
  3. Extract 5 functional requirements from the problem statement, and express them accurately and precisely using 'shall' statements. (1.0 points)
  4. Identify 1 non functional requirement from the problem statement and write it as a requirement. (0.50 points)
  5. Formulate three questions for the stakeholders that would help to clarify the requirements. (0.50 points)
  6. Identify, and describe in detail some edge conditions or problems with this system as it is described. (0.50 points)

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!