blob: 2f07937da24f38703c937155b3ee36431c8a6363 [file] [log] [blame]
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
= TaskManagementUseCases
:jbake-type: wiki
:jbake-tags: wiki, devfaq, needsreview
:markup-in-source: verbatim,quotes,macros
:jbake-status: published
:syntax: true
:description: Tasks Management
:icons: font
:source-highlighter: pygments
:toc: left
:toc-title:
:experimental:
Use-case specification for the Task Dashboard window and related parts of Task-Focused NetBeans project.
See also link:TaskFocusedNetbeansRequirements.asciidoc[Requirements]
[[Tasks_Management]]
== Tasks Management
Use-cases related to tasks, repositories and queries management.
[[User_Interface]]
=== User Interface
[[Show_Tasks]]
==== 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]]
== Basic Tasks Management
[[New_Task]]
=== 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]]
=== 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]]
=== 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 link:TaskFocusedNetBeansUseCases.asciidoc#Search_in_Repository.asciidoc[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]]
=== 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]]
=== 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]]
=== 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]]
== Advanced Tasks Management
[[Filter_Tasks]]
=== 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]]
=== 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]]
=== 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]]
=== 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]]
=== 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]]
== Organize Tasks
[[Create_Category]]
=== 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]]
=== 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]]
=== 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]]
=== 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]]
=== 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 link:TaskFocusedNetBeansUseCases.asciidoc#Edit_Task[Edit Task use-case]
[[Repositories_Management]]
== Repositories Management
[[Add_Repository]]
=== Add Repository
*Actor:* User
*Action:* Add supported repository
*Priority:* 1
[[Remove_Repository]]
=== Remove Repository
*Actor:* User
*Action:* Remove repository
*Priority:* 1
[[Edit_Repository]]
=== Edit Repository
*Actor:* User
*Action:* Edit properties of repository
*Priority:* 1
[[Search_in_Repository]]
=== 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]]
=== Show Repositories
*Actor:* User
*Action:* Show a list of existing repositories
*Priority:* 1
*Scenario:*
[[Queries]]
== Queries
[[Create_Query]]
=== Create Query
*Actor:* User
*Action:* Create a query on selected repository
*Priority:* 2
*Scenario:*
* User specifies a query with requested parameters (see the link:TaskFocusedNetBeansUseCases.asciidoc#Search_in_Repository[Search in Repository use-case])
* Using the 'Add query to Task Dashboard' action user adds the query to the Task Dashboard view
[[Edit_Query]]
=== 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]]
=== 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]]
=== 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]]
== Notifications
[[Remote_Changes_Notification]]
=== 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]]
=== 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
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]]
=== 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]]
=== 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)
[NOTE]
====
The content in this page was kindly donated by Oracle Corp. to the
Apache Software Foundation.
This page was exported from link:http://wiki.netbeans.org/TaskManagementUseCases[http://wiki.netbeans.org/TaskManagementUseCases] ,
that was last modified by NetBeans user JPESKA
on 2012-06-14T08:57:58Z.
This document was automatically converted to the AsciiDoc format on 2020-03-12, and needs to be reviewed.
====