Computers have become a major aspect of everyday life, creating a need for improved usage statistics. Aktions is a software development kit designed to gather this information. The software helps developers understand how well their software meets user demand through an action-oriented perspective.
This document describes the requirements for the second iteration of Aktions. It contains a general description of the system at large, the functional requirements we expect, non-functional restraints on the project, and possible features for future releases.
The purpose of this document is to outline and explain the specific requirements for the second iteration of Aktions. It enumerates the constraints under which the software is developed. Readers of this document should have read our previous requirements document. Readers of this document should have a general knowledge of computers, the Qt libraries, and the KDE Libraries.
Our primary goal is the creation of 3 components are combined to provide the functionality outlined in the abstract. Those components are as follows:
The goals of this iteration are
The rest of this document reflects the requirements necessary to accomplish the goals for this iteration. It contains a general description of Aktions, its main components, and the interactions between them. It enumerates
Clients send data to Aktions through an API. This data is then stored in an information repository. Programs may query the repository for data. The second iteration of Aktions development includes an API and administrative console.
The API provides a unified mechanism to store and retrieve usability information. It encapsulates data gathering, filtering, and retrieval. It exports admnistrative capabilities that group data into studies and tasks, as well as annotate studies and tasks with comments. It also configures Aktions.
This program creates, administers, and analyzes usability tests. It features a plug-in system that allows developers to expand its capabilities.
The second spiral reimplements Aktions based upon the discoveries made during the first spiral. It focuses upon specific usability tests. It may be used in any third-party software. This spiral is suggested for evaluation purposes only. Future iterations of Aktions will serve usability experts and KDE users.
All code developed for Aktions must be dual-licensed under both the GPL and LGPL license.
The system is a personal computer running the K Desktop Environment. It includes the desktop, task bars, windows, and any controls or widgets characteristic to that environment.
The API approaches usability from an action-oriented perspective. The basic type of data it stores is an action. Actions are associated with what a user does, not how they do it. (e.g. Bold text, not "click toolbar button"). Actions have the following characteristics:
Tasks are used within Studies (detailed below) to logically segregate actions by goal of the user. Studies contain the following characteristics:
Studies are collections of a set of tasks and/or actions. They are used to define a set of data to analyze for a usability study. Studies have the following characteristics:
Comments are miscellaneous notes that a user can add to a study or task. Comments have the following characteristics:
Aktions provides a means of accepting and storing Actions, Tasks, Studies, and Comments. Actions can be recieved from several programs concurrently, so the implementation must be thread-safe. The data collection mechanism includes hooks into the KDE libaries.
Aktions provides a means of retrieving Actions, Tasks, Studies, and Comments from storage. When an object is requested, all characteristics are be retrieved. Any data which is associated with that object requires a separate request.
Actions should be retrievable and filtered by one or more of the following key values:
Tasks should be retrievable and filtered by one or more of the following key values:
Studies should be retrievable and filtered by one or more of the following key values:
Comments should be retrievable filtered by one or more of the following key values:
The main window is comprised of 4 pieces:
The study and task pane initially lists the studies stored by Aktions. When a user selects a study, the interface inserts an indented list directly beneath the selected study. The indented list contains all tasks and comments associated with the selected study. These entries are sorted by type (tasks then comments) and then by time. The interface also loads any study-related plugins into the detail pane. It pre-loads related information into those plugins, when such information is available. When a study is unselected, the interface stops displaying any related plugins. If another study is selected, the interface ceases to display the indented list of tasks and comments.
When a user selects a task, the interface inserts an indented list directly beneath the selected task. The indented list contains all comments associated with the selected study. These entries are sorted by time. The interface also loads any task-related plugins into the detail pane. It pre-loads related information into those plugins, when such information is available. When a task is unselected, the interface stops displaying any related plugins. If another task is selected, the interface ceases to display the indented list of tasks and comments. If a task ceases to be displayed by the interface, its indented list of comments cease as well.
The context menu provides the following management facilities:
The detail pane consists of a set of tabs. Each tab displays the interface for a plugin. The detail pane uses KParts technology to load plugin modules into each tab.
The menu bar contains the following menus: file, tools, settings, help. The file menu contains: add study, "add task to...", "add comment to...", quit. The tools menu is only visible when plugins are loaded. It contains any features specific to the currently displayed plugin. The settings menu contains: "configure Aktions...", "configure plugins...", "configure shortcuts...", "configure toolbars...", and "configure administrative console...". The help menu contains what's this, "Aktions handbook...", "about Aktions...", and "about KDE...". Most of these options are standard items provided by the KDE libraries.
The tool bar contains the following items by default: "new" combo button, filter data, print, and delete study/task/comment. The "new" combo button provides the following actions: add study, "add task to...", and "add comment to...".
The Aktions API's functions are modeled in the Qt Style.
The libraries provided by Aktions must adhere to the KDE Library Code Policy .
Aktions cannot have a human-noticeable impact upon the performance of the system it monitors. Aktions is designed to run on interactive systems that must remain responsive at all times.
This document is located on the Aktions website. http://aktions.sf.net/requirements_document_spiral1.html.
For more information: Trolltech. Qt Libraries. http://www.trolltech.net/products/qt/index.html.
For more information: KDE Project. KDE Developer's Corner. http://developer.kde.org/.
For more informtation: Free Software Foundation. GNU General Public License. http://www.gnu.org/copyleft/gpl.html.
For more information: Free Software Foundation. GNU Lesser General Public License. http://www.gnu.org/copyleft/lgpl.html.
For more information: Wikipedia. K Desktop Environment. http://en.wikipedia.org/wiki/K_desktop_environment.
For more information: IBM. Coding with KParts. http://www-128.ibm.com/developerworks/library/l-kparts/.
For more information: KDE Project. KDE Wiki. http://wiki.kde.org/tiki-index.php?page=Qt+Style+APIs.
For more information: KDE Project. KDE Developer's Corner. http://developer.kde.org/policies/librarypolicy.html.
For more information: KDE Project. DCOP: Desktop COmmunications Protocol. http://developer.kde.org/documentation/other/dcop.html.
For more information: FreeDesktop.org. Software/dbus. http://www.freedesktop.org/wiki/Software/dbus.
For more information: Wikipedia. Application Programming Interface. http://en.wikipedia.org/wiki/Application_programming_interface.
For more information: Wikipedia. Application Binary Interface. http://en.wikipedia.org/wiki/Application_binary_interface.