TaskManagementUseCases
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
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:
Quick Search
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
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
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.
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
Notifications
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)