3. Non-Functional Requirements

For the purposes of a CSC 308 example, the non-functional requirements for the Calendar Tool are organized into these categories and subcategories:

3.1. Performance

All calendar scheduling, viewing, and options commands must execute instantaneously, except for the following:

The time to execute all administrative commands must be instantaneous, except for any delays due to network transmission of data from the central host.

In general, the performance of Calendar Tool commands that must access data across a network is subject to potential network delays. The Calendar Tool must transmit data as fast as is possible on any given network, but delays due to external network circumstances are beyond the control of the Calendar Tool.

There are no specific requirements for the allowable size of a calendar in terms of the number of scheduled items. A Calendar on the order of thousands of items is the maximum expected size during normal use.

The maximum expected sizes of the Calendar Tool databases are the following:

While there may on the order of tens of thousands of registered users, the expected maximum number of users connected to any given server at any given time is on the order of hundreds.

The Calendar Tool must be able to operate with calendars and databases of sizes larger than these normal maximums. However, the tool need not the meet the previously-enumerated time performance requirements for calendars or databases larger than normal maximum sizes.

3.2. General Characteristics

3.2.1. Security and Privacy

Scheduled items with a security setting other than `Public' must have only the allowed information viewable to any user other than the calendar's owner. The central host passwords of any user must be kept secure from viewing or modification by any other Calendar Tool user, and from any user at all on the central host.

3.2.2. Simplicity versus Power

On a spectrum of simple-to-use versus powerful, the Calendar Tool is heavily on the side of powerful. Users are assumed to be fully computer literate and knowledgeable on the use of computer networks consisting of local computers and central data servers.




Prev: functional | Next: developer-overview | Up: index | Top: index