Use Cases - CMPUT301F12T01/classproject GitHub Wiki

1

Use Case Name: DefineTask

Participating Actors: TaskMaker

Goal: Create a new task

Trigger: TaskMaker selects a create task option on the main view

Precondition: User knows the task they want to define

Postcondition: A correctly defined task is stored appropriately and the main screen is displayed

Basic Flow

  1. user selects “define task” button
  2. user defines all task attributes (including scope)
  3. user selects “submit” button

Exceptions

3.0 input error (Please try again)

3.1 File I/O Error

3.2 Server side error (exit)

Qualities

Constraints

Includes

User story 15 (As a user creating a task I want some tasks to be local only to myself)

User story 2 (As a user, I want to share tasks)

Extends

Related Artifacts

Notes

Open Issues

Test Cases

  1. Fill out a task will all fields completed and attempt to submit it. RETURN: This should result in returning to the main page with a view of your tasks including the new task.
  2. Fill out task without a summary. RETURN: This should raise an error.
  3. Fill out task without a request. RETURN: This should raise an error.
  4. Fill out task without a description. RETURN: This should result in returning to the main page with a view of your tasks including the new task, the task will show no description when selected.
  5. Fill out task without a shared setting. RETURN: This should raise an error.
  6. Try to submit a new Task with none of the fields filled in. RETURN: This should raise an error.

2

Use Case Name: User Shares Task (Make task global)

Participating Actors: TaskMaker and Server

Goal: Share a task

Trigger: Clicking the global option local/global control in the make task view

Precondition: TaskMaker is in the process of creating a task

Postcondition: Task is uploaded to server, main screen displayed

Basic Flow

  1. user checks to share the task
  2. user clicks submit task
  3. task is uploaded to server
  4. main screen is displayed

Exceptions

2.1 The system will not create a new task until it's scope is identified 3.1 server upload error

Qualities

Constraints

Includes

Extends

Related Artifacts

Notes

Open Issues

Test Cases

  1. Submit a new task with global visibility. RETURN: This task should now be visible in the global list and should be visible to others.

3

Use Case Name: FulfillTask

Participating Actors: TaskFulfiller

Goal: Fulfill an already created task (some or all requests of the task).

Trigger: TaskFulfiller chooses to fulfill a task that they have selected.

Precondition: TaskFulfiller has chosen an already existing task.

Postcondition: On success, a relationship is established between the task and its report.

Basic Flow

  1. TaskFulfiller selects to fulfill a pre-selected task.
  2. TaskFulfiller fulfills at least one request that composes task.
  3. Fill out the fields of the request.
  4. The TaskFulfiller confirms that they are satisfied with the requests they have fulfilled.

Exceptions

2.1 Task fulfillment error.

2.2 User wants to redo a request or fulfill multiple requests. Goes back to step 2.

Qualities

Constraints

Includes

Extends

Related Artifacts

Notes

Open Issues

Test Cases

  1. Complete a report with audio, text and pictures for a task that requires them. RETURN: A new report should be visible and associated with the correct task.
  2. Complete a report with one request being fulfilled. RETURN: A new report should be visible and associated with the correct task having a single response. This Should be done for text audio and photo
  3. Complete a report with multiple request being fulfilled. RETURN: A new report should be visible and associated with the correct task having multiple responses.
  4. Complete a report without filling any requests. RETURN: This should raise an error
  5. Complete a global report for a global task. RETURN: The report should be globally visible to everyone
  6. Complete a report for a global task but make the report only visible to the owner. RESULT: Both the user who filled out the report and the owner of the task will be able to see the report
  7. Complete a report with local settings. RETURN: Only the TaskFulfiller can see the report

4

Use Case Name: RequirePhoto

Participating Actors: TaskMaker

Goal: Create a Task that requires photos

Trigger: TaskMaker, during task creation, selects "photo required" option

Precondition: Is in the process of creating a task; knows they want photo responses

Postcondition: Task contains a request for photos

Basic Flow

  1. System promts user to enter how many photos
  2. TaskCreator enters the amount requested (if it is made explicit)
  3. System adds photo request with the specified amount

Exceptions

Qualities

Constraints

Includes

Extends

Related Artifacts

Notes

Open Issues

Test Cases

  1. When creating a task select that a photo is required and nothing else. RETURN: any report made for that task will have an option to attach a photo and will have to have a photo attached to be submitted
  2. When creating a task select that a photo is required among other requests. RETURN: A report for that task will have a field to attach a photo but may be submitted if any request is fulfilled (photo or not).

5

Use Case Name: TakePhoto

Participating Actors: TaskFulfiller

Goal: Take and attach a photo to a report

Trigger: Selecting to add a photo to the current report

Precondition: TaskFulfiller has selected to respond to a task

Postcondition: Photos are attached to the report and the current report is displayed again

Basic Flow

  1. System displays the camera's view and prompt to take a photo
  2. TaskFulfiller selects to take the shot
  3. System displays an option to retake the photo
  4. TaskFulfiller accepts the photo

Exceptions

Qualities

Constraints

Includes

RetakePhoto

Extends

FulfillTask

Related Artifacts

Notes

Open Issues

Test Cases

  1. Take a photo and accept it. RETURN: A new photo should be associated with the report.
  2. Take photo and do not accept it. RETURN: nothing should be attached to the report

6

Use Case Name: ReceiveSharedTaskFulfillment

Participating Actors: TaskCreator

Goal: Receive the results of users fulfilling a task.

Trigger: A TaskFulfiller shares a task they have fulfilled with at least the TaskCreator.

Precondition: A task has been fulfilled by some TaskFulfiller.

Postcondition: The TaskCreator is notified that their task has been fulfilled.

Basic Flow

  1. System shows that the Task has been fulfilled

Exceptions

Qualities

Constraints

Includes

Extends

Related Artifacts

Notes

Open Issues

Test Cases

  1. Post a global task and have another user fulfill it with either a global report or a user specific report. RETURN: The report should be visible to the user who posted the task.

7

Use Case Name: FulfillOwnTask

Participating Actors: User

Goal: TaskCreator fulfills own task.

Trigger: TaskCreator selects to fulfill their own task, thereby becoming a TaskFulfiller.

Precondition: User has created a task.

Postcondition: User fulfills their own task.

Basic Flow

  1. User selects a task that they have created as a TaskCreator.
  2. User fulfills task.

Exceptions

Qualities

Constraints

Includes

FulfillTask

Extends

Related Artifacts

Notes

Open Issues

Test Cases

This test is an extension of FulfillTask use case

  1. Complete tests 1,2,3 and 6

8

Use Case Name: TaskFulfillmentTimestamp

Participating Actors: TaskFulfiller

Goal: Task report is associated with a timestamp.

Trigger: A TaskFulfiller creates a report.

Precondition: The TaskFulfiller confirms that the report is complete.

Postcondition: Report contains a timestamp.

Basic Flow

  1. System attaches a timestamp to the task fulfillment report.

Exceptions

Qualities

Constraints

Includes

Extends

FulfillTask

Related Artifacts

Notes

Open Issues

Test Cases

  1. Create a report. RETURN: when viewed (based on visibility) the report should have a correct timestamp

9

Use Case Name: Store Global Task Locally

Participating Actors: User

Goal: Store a global task locally

Trigger: User selects "Store locally" button in the menu when viewing a global task

Precondition: User is viewing a global task

Postcondition: Task is cached on device

Basic Flow

  1. user selects "Store Locally"
  2. task is written to device storage
  3. View of task is returned

Exceptions

1.1 file i/o error

Qualities

Constraints

Includes

Extends

FulfillTask

Related Artifacts

Notes

Open Issues

Test Cases

  1. A global task is selected to be stored locally. RETURN: After disconnecting the device from the network you can still view the those global tasks that have been saved locally.

10

Use Case Name: TextResponse

Participating Actors: TaskFulfiller

Goal: respond to a request that requires text

Trigger: Selecting to respond to a task that requires text

Precondition: TaskFulfiller has navigated to the global tasks

Postcondition: System associates the text with the response

Basic Flow

  1. System displays a prompt for text
  2. TaskFulfiller enters text
  3. TaskFulfiller submits the response

Exceptions

3.1 Input error (ex. blank fields)

Qualities

Constraints

Includes

Extends

FulfillTask

Related Artifacts

Notes

Open Issues

Test Cases

  1. Complete a report that requires text. RETURN: Report has the text response visible

11

Use Case Name: TakeAudio

Participating Actors: TaskFulfiller

Goal: Record and attach an audio clip to a report

Trigger: Selecting to add audio to the current report

Precondition: TaskFulfiller has selected to respond to a task

Postcondition: Audio attached to the report and the current report is displayed again

Basic Flow

  1. System displays the tools to record audio
  2. TaskFulfiller records audio
  3. TaskFulfiller sumbits the audio

Exceptions

3.1 Submission error

Qualities

Constraints

Includes

Extends

FulfillTask

Related Artifacts

Notes

Open Issues

Test Cases

  1. Record an audio clip in a report then submit that report. RETURN: A user should be able to find that audio clip associated with the correct report and play it.

12

Use Case Name: RetakePhoto

Participating Actors: TaskFulfiller

Goal: Retake a photo

Trigger: TaskFulfiller has selected to retake the photo

Precondition: TaskFulfiller has taken a photo

Postcondition: The photo is replaced

Basic Flow

  1. System displays the camera's view and prompt to take a photo
  2. TaskFulfiller selects to take the shot
  3. System displays an option to retake the photo
  4. TaskFulfiller accepts the photo

Exceptions

Qualities

Constraints

Includes

Extends

FulfillTask

Related Artifacts

Notes

Open Issues

Test Cases

  1. Select to retake a photo. RETURN: the system should discard the current photo that was taken and take the user back to the photo taking view.

13

Use Case Name: View Global Tasks

Participating Actors: User and Server

Goal: View tasks on server

Trigger: User selects tab to view global tasks

Precondition:

Postcondition: User is presented with tasks from the server

Basic Flow

  1. Server presents all global tasks

Exceptions

1.1 server access error

Qualities

Constraints

Includes

Extends

Related Artifacts

Notes

Open Issues

Test Cases

  1. Select to view global tasks from the main screen when there are many global tasks. RETURN: you are able to view the global tasks
  2. Select to view global tasks from the main screen when there are no global tasks. RETURN: No global tasks will be seen
  3. Select to view global tasks from the main screen when there is one global task. RETURN: There will be one global task visible.

14

Use Case Name: SendFulfilledReport

Participating Actors: TaskFulfiller

Goal: Make report visible to the TaskMaker and TaskFulfiller

Trigger: User Selects the scope of the report

Precondition: TaskFulfiller is completing a report

Postcondition: System associates the task with the report and shows the report

Basic Flow

  1. TaskFulfiller selects to make the report visible TaskMaker.
  2. TaskFulfiller submits report.
  3. System makes the report visible only to the TaskFulfiller and the TaskMaker

Exceptions

2.1 Incorrect submission

Qualities

Constraints

Includes

Extends

FulfillTask

Related Artifacts

Notes

Open Issues

  1. Complete a report with the scope set so that it is only visible to the TaskFulfiller and the TaskMaker. RETURN: This task should not be globally visible but locally visible both by the the TaskMaker and the TaskFulfiller

15

Use Case Name: MakeTaskLocal

Participating Actors: TaskMaker

Goal: Make a task local

Trigger: User selects task to be local

Precondition: User has initiated the “DefineTask” user story

Postcondition: Task is visible in the list of local tasks

Basic Flow

  1. User selects “submit task” button when task is complete
  2. Task is written to device storage
  3. Main screen is displayed with all the local tasks visible

Exceptions

1.1 Input error (Please try again)

2.2 File i/o error

Qualities

Constraints

Includes

Extends

FulfillTask

Related Artifacts

Notes

Open Issues

Test Cases

  1. Create a local task. RETURN: The task is now persistent and is visible only in the set of local tasks

16

Use Case Name: EditTask

Participating Actors: TaskMaker

Goal: The TaskMaker can edit their own task

Trigger: TaskMaker selects the edit task option when viewing your OWN task

Precondition: User knows what they want to change in the task

Postcondition: The old task is replaced by the edited task's information.

Basic Flow

  1. User selects “edit” button when viewing their own task
  2. User can re-defines all task attributes (including scope)
  3. User selects “submit” button

Exceptions

3.0 input error (Please try again)

3.1 File I/O Error

3.2 Server side error (exit)

Qualities

Constraints

Includes

Extends

Related Artifacts

Notes

Open Issues

Test Cases

  1. Fill out a task will all fields completed and attempt to submit it. RETURN: This should result in the user seeing their task details with the updated information.
  2. Delete the summary information and then submit it. RETURN: This should raise an error.
  3. Change the task to have no request. RETURN: This should raise an error.
  4. Submit the change with a task without a description. RETURN: This should result in returning to the viewing your task information with no description.
  5. Try to submit then edited Task with none of the fields filled in. RETURN: This should raise an error.

17

Use Case Name: RequireAudio

Participating Actors: TaskMaker

Goal: Create a Task that requires audio

Trigger: TaskMaker, during task creation, selects "audio required" option

Precondition: Is in the process of creating a task; knows they want audio type responses

Postcondition: Task contains a request for audio

Basic Flow

  1. System prompts user to select what media type for the response they want.
  2. TaskCreator selects the audio button.
  3. When the task creation information is submitted, system creates a task with an audio request.

Exceptions

Qualities

Constraints

Includes

Extends

Related Artifacts

Notes

Open Issues

Test Cases

  1. When creating a task select that a audio is required and nothing else. RETURN: any report made for that task will have an option to record an audio clip and will have to have an audio clip attached to be submitted
  2. When creating a task selects audio as one of required requests among other types of requests. RETURN: A report for that task will have a field to attach an audio clip but may be submitted if any request is fulfilled (audio or not).

18 ViewRandomTask

Participating Actors: User

Goal: View a random task

Trigger: User selects the option "Random" when browsing the list of global tasks

Precondition: User is able to connect to the server to view global tasks and wants to view a task at random.

Postcondition: The screen displays the details of a random task.

Basic Flow

  1. System selects a random global task and displays the task's details to the User

Exceptions

1.0 Server I/O error

Qualities

Constraints

Includes

Extends

Related Artifacts

Notes

Open Issues

Test Cases

  1. When there are no global tasks, select "Random" when viewing the empty listing of global tasks. RETURN: The screen should not change to any task detail screen. Instead a dialog/toast message should inform the User that there are no (global) tasks available.
  2. When there are global tasks, select "Random" when viewing the list of global tasks. RETURN: The User should be able to see the details of that random global task.