Create a state diagram for the following software application. The application is an Android app that locates ones car after parking to prevent lost cars in parking structures or on the street etc. Scenario details are given below:
1. Parking a Car Manually
As a user who does not have a Bluetooth enabled vehicle, I want to have the ability to save the location of my vehicle via GPS coordinates so I can easily find my vehicle in unfamiliar locations.
As an application tester, I want to press the manual park button and the application accurately records the location of the intended vehicle. The ratio of successes to failures will be recorded to report to the development team.
2. Parking Car Automatically with Bluetooth
As a user who does have a Bluetooth enabled vehicle, I want the application to automatically store my car's location via GPS coordinates when my car shuts off so that I will not have to open the application and spend time pressing the button for manual parking.
As an application tester, I want to successfully confirm my test case of an established Bluetooth connection between the car and application so that the application allows efficient parking for users.
3. Park Car and Set Meter Timer
As a user, I want to park my car via GPS coordinates and set a timer for the situations when I park in metered locations and the timer will run to keep track of how much time my car is parked in this location.
As an application tester, I want to test that the application timer feature is running correctly while the user's phone is idle so that correct functionality of a timer is implemented.
4. Meter timer goes off
As a user, I want the application timer to alert me via vibration or sounds when the timer hits 0 seconds to remind me that my car has reached the time limit of metered parking.
As an application tester, I want to confirm that the application timer gives the user a notification informing him or her of the time expiration on his or her parked vehicle.
5. Locating Parked Car
As user, I want to have the application give detailed directions on how to get to my parked car so that I can get to my car as soon as possible.
As an application tester, I want the GPS services within the application to correctly give the user detailed instructions on how to efficiently arrive to his or her car.
6. Un-parking a Car
As a user, I want to be able to tell the application that I have arrived to my vehicle and it is not parked anymore.
As an application tester, I want to make sure unpacking the car allows the application to remember the parked locations of the user to have a history