TaskManagementUseCases

Apache NetBeans Wiki Index

Note: These pages are being reviewed.

Use-case specification for the Task Dashboard window and related parts of Task-Focused NetBeans project.

See also Requirements

Tasks Management

Use-cases related to tasks, repositories and queries management.

User Interface

Show Tasks

Actor: User

Action: Present user interface (Task Dashboard view) containing tasks and queries to the user. Tasks are organized into user-specified categories or by specified schedule dates.

Priority: 1

Scenario:

  • When the user opens the Task Dashboard view a list of tasks and queries is presented

Basic Tasks Management

New Task

Actor: User

Action: Create a new task

Priority: 1

Scenario:

  • User selects 'create new task' action

  • User selects a repository

  • Task is created and opened in an editor window

Edit Task

Actor: User

Action: Open task in an editor window to edit its attributes

Priority: 1

Scenario:

  • User selects 'Open Task' item in context menu of the task (or double-click on it - probably)

  • New window in editor is opened and the user can review or edit attributes of the task

Add Task

Actor: User

Action: Add existing task to the Task Dashboard view

Priority: 1

Scenario:

  • User finds the task he wants to add (see Search in Repository use-case)

  • The user adds the task to the Task Dashboard view by using the 'Add to Task Dashboard' action on selected task

Remove Task

Actor: User

Action: Remove task from the Task Dashboard view

Priority: 1

Scenario:

  • User selects the 'Remove from Task Dashboard' item in the context menu of the task (or shortcut 'delete')

  • The task is removed from the Task Dashboard view (only the Task Dashboard entry, not the issue in repository)

Activate Task

Actor: User

Action: Activate a task and deactivate the previous one. Only one task can be activated

Priority: 1

Scenario:

  • User selects 'Activate' item in the context menu of the task

  • Selected task is activated and the IDE properly reflects the context of the task.

TODO: add link to the Context use-case which describes how the IDE reflects to it

Deactivate Task

Actor: User

Action: Deactivate a task

Priority: 1

Scenario:

  • User selects the 'Deactivate' item in the context menu of the task

  • Selected task is deactivated

TODO - what happen after deactivation, how does the IDE reflects to it

Advanced Tasks Management

Filter Tasks

Actor: User

Action: The user can filter tasks in the Task Dashboard view.

Possible usages:

  • The user wants to see only uresolved (opened) tasks in the Task Dashboard so he sets filter on 'Show unresolved only' (probably default setting) or he needs to deal with an already resolved task so he switches to the 'Show all' filter.

Priority: 3

Scenario:

Actor: User

Action: Perform a quick search over tasks in the Task Dashboard or in a repository

Possible usages:

  • The user filters tasks using string NullPointerException in summary to find and eliminate tasks reporting the same exception or enter a part of the know summary to find the task faster.

Priority: 3

Scenario:

  • User selects the 'Quick Search' action and fills in search parameter.

  • Search results are presented to the user

  • User can open a task from a search result or perform new search

Add Private Note

Actor: User

Action: Add a private note to a task. Added note is not reflected in the original issue.

Priority: 3

Scenario:

  • During the Edit Task use case user edits the 'Private note' attribute of the task

Sort Tasks

Actor: User

Action: User is able to sort tasks in the Task Dashboard view by various parameters (summary, priority,…​)

Priority: 4

Scenario:

TODO - general UI structure for sorting

Offline Mode

Actor: User

Action: Task changes can be stored locally and the user doesn’t have to submit every change to the task repository. It allows the user to work offline.

Priority: 4

Scenario:

Organize Tasks

Create Category

Actor: User

Action: Create new category in the Task Dashboard view

Priority: 1

Scenario:

  • User select the 'New Category' action

  • Dialog window pops up, user specifies the name of the category and confirms creation by selecting 'Create' action

  • Category is created and shown in the Task Dashboard view

Delete Category

Actor: User

Action: Delete category from the Task Dashboard view

Priority: 1

Scenario:

  • User chooses category he wants to remove and selects 'Remove' action

  • In case the category isn’t empty the confirmation dialog pops up waiting for user to confirm deletion. Otherwise the category is deleted without confirmation.

  • The category is deleted from the Task Dashboard. Tasks contained in the category are also removed.

Rename Category

Actor: User

Action: Rename category

Priority: 2

Scenario:

  • User selects 'Rename' action for the category

  • Dialog window pops up, user specifies the name of the category and confirm rename selecting 'Rename' action

  • The category is renamed

Add Task to a Category

Actor: User

Action: Set category of a task

Priority: 1

Scenario:

Note: few possibilities how to achieve this

  • User selects 'Set Category' action for the task

  • From the presented list of existing categories user selects one

  • Task is moved to the selected category

TODO: can be one task in several categories?

  • User sets category of the task using Drag-and-Drop mechanism in the Task Dashboard view

Schedule Task

Actor: User

Action: Set schedule date, due date and estimated time to complete task

Priority: 2

Scenario:

  • The user can edit 'Schedule date', 'Due date' or 'Estimated time' attributes of the task as a part of Edit Task use-case

Repositories Management

Add Repository

Actor: User

Action: Add supported repository

Priority: 1

Remove Repository

Actor: User

Action: Remove repository

Priority: 1

Edit Repository

Actor: User

Action: Edit properties of repository

Priority: 1

Search in Repository

Actor: User

Action: User wants to search a given repository to find

Possible usages: Find a new issue by ID or all issues assigned to the user. This functionality can by used to add tasks and queries into the Task Dashboard view.

Priority: 2

Scenario:

  • User opens the search window using the 'Search' action.

  • User selects the repository he wants to search in

  • User specifies parameters of the search (query) and confirms it

  • Query is performed and its result are presented to the user

  • (Optional) User can select tasks from the result and add them to the Task Dashboard view or add the whole query eventually.

Show Repositories

Actor: User

Action: Show a list of existing repositories

Priority: 1

Scenario:

Queries

Create Query

Actor: User

Action: Create a query on selected repository

Priority: 2

Scenario:

  • User specifies a query with requested parameters (see the Search in Repository use-case)

  • Using the 'Add query to Task Dashboard' action user adds the query to the Task Dashboard view

Edit Query

Actor: User

Action: Edit parameters of a query

Priority: 2

Scenario:

  • User selects 'Edit' action for the query

  • User respecifies parameters of the query and confirm changes

Show Query Result

Actor: User

Action: Show the result of a query

Priority: 2

Scenario:

TODO - How to present query results? In Task Dashboard view or using current query window?

Remove Query

Actor: User

Action: Remove a query from Task Dashboard view

Priority: 2

Scenario:

  • User selects the 'Remove' action for the query

  • The query is removed from the Task Dashboard view

Notifications

Remote Changes Notification

Actor: IDE

Action: IDE informs the user about changes to a task or about new tasks

Priority: 3

Scenario:

  • When changes to a task or new tasks appear, notification is shown.

Schedule or Due date Notification

Actor: IDE

Action: IDE informs user about the upcoming schedule or due date of tasks

Priority: 3

Scenario:

  • When approaching the schedule or the due date of a task, a notification describing relevant tasks is presented to the user

Synchronization

Synchronization covers pulling changes from a task repository and also pushing locally changed tasks.

TODO: do we want to push only submited tasks or all locally changed tasks?

Synchronize Tasks Manually

Actor: User

Action: Synchronize tasks in the Task Dashboard view with their remote sources manually.

Priority: 1

Scenario:

  • User can synchronize single tasks or whole categories/queries/repositories using the 'Refresh' action in the context menu of those items

Synchronize Tasks Automatically

Actor: IDE

Action: Synchronize tasks in the Task Dashboard view with their remote sources automatically.

Priority: 3

Scenario:

  • Tasks contained in the Task Dashboard view are synchronized automatically in the user defined period. The synchronization only start when the Dashboard in not in use (prevent refreshing while user is working with the dashboard)