Requirements Specification for an Electronic Calendar Tool

Requirements
for an Electronic Calendar Tool
Version 1.0
January 2008




Contents
Level:  1   2   3   4   full 

1.  Introduction
     1.1. Problem Statement
     1.2. System Personnel
     1.3. Operational Setting
     1.4. Impacts
     1.5. Related Systems
         1.5.1. Microsoft Outlook
         1.5.2. Apple iCal
         1.5.3. Netscape Calendar
         1.5.4. Now Software Now-Up-to-Date
         1.5.5. Claris Organizer
         1.5.6. Feature Comparison Matrix

2.  Functional Requirements
     2.1. User Interface Overview
         2.1.1. Regular User Interface
         2.1.2. Administrative User Interface
         2.1.3. General Features of the User Interface
         2.1.4. Screen Map
     2.2. Basic Appointment Scheduling
     2.3. Viewing Calendars
         2.3.1. Viewing the Calendar at Different Levels
             2.3.1.1. Day View
             2.3.1.2. Week Views
             2.3.1.3. Month View
             2.3.1.4. Year View
             2.3.1.5. Scheduled Item View
         2.3.2. Viewing Previous, Next, and Specific Calendar Dates
             2.3.2.1. Next and Previous
             2.3.2.2. Today
             2.3.2.3. Goto Date
             2.3.2.4. Upper and Lower Date Bounds
         2.3.3. Viewing Lists of Scheduled Items
             2.3.3.1. Appointment Lists
             2.3.3.2. Meeting Lists
             2.3.3.3. Task Lists
             2.3.3.4. Event Lists
             2.3.3.5. All Items Lists
             2.3.3.6. Custom Lists
         2.3.4. Filtered Viewing
             2.3.4.1. Custom Filter Definition
                 2.3.4.1.1. Title
                 2.3.4.1.2. Earliest and Latest Date
                 2.3.4.1.3. Earliest and Latest Time
                 2.3.4.1.4. Duration
                 2.3.4.1.5. Recurring?
                 2.3.4.1.6. Category
                 2.3.4.1.7. Location
                 2.3.4.1.8. Security
                 2.3.4.1.9. Priority
                 2.3.4.1.10. Task Priority
                 2.3.4.1.11. Completed? and Completion Dates
                 2.3.4.1.12. Remind?
                 2.3.4.1.13. Details
                 2.3.4.1.14. Attendees
                 2.3.4.1.15. Meeting State
             2.3.4.2. Using Custom Filters
             2.3.4.3. Details of Filter Application
         2.3.5. Viewing Other Users and Group Calendars
             2.3.5.1. Viewing Other Users' Calendars
             2.3.5.2. Viewing Group Calendars
         2.3.6. Viewing Multiple Windows and Multiple Calendars
             2.3.6.1. Closing Windows
             2.3.6.2. Windowing Mode
                 2.3.6.2.1. Per-Level Windowing Mode
                 2.3.6.2.2. Two-Window Mode
                 2.3.6.2.3. Multi-Window Mode
                 2.3.6.2.4. Windowing Mode Calendar Specificity
             2.3.6.3. Magnetizing Windows
             2.3.6.4. The Calendars List
             2.3.6.5. Window Banner Syntax
     2.4. More Scheduling
         2.4.1. Scheduling Meetings
             2.4.1.1. A Group Leader Scheduling Two Straightforward Meetings
             2.4.1.2. A Group Leader Encountering Difficulties While Scheduling
             2.4.1.3. A Super-Group Leader Scheduling a Meeting
             2.4.1.4. A Non-Leader Scheduling a Meeting for Selected Individuals
             2.4.1.5. Receiving and Accepting Meeting Notifications
             2.4.1.6. Further Operational Details of Meeting Scheduling
                 2.4.1.6.1. The Contents of Group Calendars
                 2.4.1.6.2. Scheduling Over Private Items
                 2.4.1.6.3. The Status of Not-Yet-Accepted Meetings
                 2.4.1.6.4. Creation of New Categories
                 2.4.1.6.5. The Role of the Location Database
                 2.4.1.6.6. Non-Unique Scheduled Meetings
                 2.4.1.6.7. Notifications for Multiple Calendars from Multiple Central Hosts
                 2.4.1.6.8. Pending Meeting Notifications
                 2.4.1.6.9. Concurrent Scheduling
         2.4.2. Scheduling Tasks
         2.4.3. Scheduling Events
     2.5. Finer Points of Viewing and Scheduling
         2.5.1. Item-Level Viewing
             2.5.1.1. Viewing Appointment Items
             2.5.1.2. Viewing Meeting Items
             2.5.1.3. Viewing Task Items
             2.5.1.4. Viewing Event Items
             2.5.1.5. Item-Level Viewing in Other Users' Calendars
         2.5.2. Changing and Deleting Scheduled Items
             2.5.2.1. Changing and Deleting Appointments
             2.5.2.2. Changing and Deleting Meetings
                 2.5.2.2.1. Scheduler Changing Meetings
                 2.5.2.2.2. Scheduler Deleting a Meeting
                 2.5.2.2.3. Meeting Change and Delete Notifications
                 2.5.2.2.4. Group Calendar Changes
                 2.5.2.2.5. Non-Scheduler Changing and Deleting Meetings
                 2.5.2.2.6. Offline Scheduler Change and Delete
                 2.5.2.2.7. Offline Non-Scheduler Changes
                 2.5.2.2.8. Conflicting Scheduler and Non-Scheduler Changes
                 2.5.2.2.9. Pending Change/Delete Notifications
             2.5.2.3. Changing and Deleting Tasks
             2.5.2.4. Changing and Deleting Events
             2.5.2.5. Deletion Shortcut from Higher-Level Calendar Views
         2.5.3. Details of Scheduling Recurring Items
             2.5.3.1. Weekly/Biweekly Intervals
             2.5.3.2. Monthly Intervals
             2.5.3.3. Yearly Intervals
             2.5.3.4. Recurring Meeting Requests
             2.5.3.5. Recurring Items and Instances
             2.5.3.6. The Effect of Recurring Items on Calendar Size
         2.5.4. Receiving Reminders
         2.5.5. Editing Categories
         2.5.6. Dynamic View Updating
     2.6. Administrative Functions
         2.6.1. Gaining Administrative Access
         2.6.2. User Database
         2.6.3. Group Database
         2.6.4. Location Database
         2.6.5. Other Privileged Admin Commands
             2.6.5.1. Administrative Control of the Central Host Server
             2.6.5.2. Setting the Administrator Password
             2.6.5.3. Setting the Administrator Email Address
             2.6.5.4. Notifying Users
             2.6.5.5. Setting Calendar Size Limits
         2.6.6. Regular User Access to Admin Commands
             2.6.6.1. Central Host Connections
             2.6.6.2. Defining the Current Host to Which Admin Commands Apply
             2.6.6.3. Regular User Access to the Admin Databases
             2.6.6.4. Changing the User Password on a Central Host
             2.6.6.5. Contacting an Administrator
         2.6.7. Limitations on Administrator Privileges
     2.7. Options
         2.7.1. Times and Dates
         2.7.2. Fonts
         2.7.3. Scheduling Options
             2.7.3.1. Scheduling Defaults Options
             2.7.3.2. Scheduling Overlaps Options
             2.7.3.3. Scheduling Meetings Options
             2.7.3.4. Scheduling Reminders Options
         2.7.4. Viewing Options
             2.7.4.1. Viewing Lists Options
             2.7.4.2. Viewing Windows Options
             2.7.4.3. Viewing Miscellaneous Options
         2.7.5. Administrative Options, for the Regular User
         2.7.6. Global Session-Wide Options
         2.7.7. Options in the Calendar Tool Administration Program
         2.7.8. Restoring Built-In Default Settings
         2.7.9. Operating Environment Conventions
     2.8. Details of File Commands
         2.8.1. Files Used by the Calendar Tool
         2.8.2. New and Open
         2.8.3. Close and Close All
         2.8.4. Save, Save As, and Save All
         2.8.5. Loading and Saving Settings
         2.8.6. Page Setup and Print
         2.8.7. Exit
         2.8.8. Files Used by Calendar Tool Administration
         2.8.9. Administrative Save and Save Copy
         2.8.10. Administrative Page Setup and Print
         2.8.11. Administrative Exit
         2.8.12. External Changes to Calendar Tool Files
         2.8.13. Operating Environment Conventions
     2.9. Details of Edit Commands
         2.9.1. Undo, Redo, Repeat
         2.9.2. Cut, Copy, Paste, Delete, and Select All
         2.9.3. Find
         2.9.4. Text Command Interface

3.  Non-Functional Requirements
     3.1. Security and Privacy
     3.2. Performance
     3.3. System
         3.3.1. Performance
         3.3.2. Operational Environment
         3.3.3. General Characteristics
     3.4. Process
     3.5. Personnel
     3.6. System Performance Constraints
     3.7. Qualitative system characteristics
     3.8. Development Goals and Constraints

4.  Rationale
     4.1. Clean Up (I Believe) of Section on Recurring Items and Instances
     4.2. For Next Check-In
     4.3. Bits from and Related to File, During Push to Finish
     4.4. Bits from Options that May Be Useful, or May Not
     4.5. Pretty Close to the Last Pile 'o Due Due from Admin
     4.6. Nixed in Favor of Explicit Dialog Settings
     4.7. What's on the Host
     4.8. More nukation from admin, here re. purging and capping
     4.9. Nuked from Change/Delete Section 28 Jul 03
     4.10. Nuked from Admin Section 27 Jul 03 through 11 Aug 03
     4.11. Registered Users
     4.12. ``View ...'' versus ``Edit ...'' as Button and Menu Item Names
     4.13. The Explicit Delay Button in Meeting Notifications
     4.14. Group Explorer
     4.15. Nuked from Admin; Presumably to Go In Some Form in Installation
     4.16. Fodder from Wincow Viewing Section, Ca. Aug 02
     4.17. Meeting Notifications and Calendar-Host Association
     4.18. Nuked from Options, Related to Overly-Complicated Home Dir Specs
     4.19. Decision about User Control Over Notifications
     4.20. Some Uncommonly To-The-Point Fodder from the Options Section
     4.21. Nuked from Options Section
     4.22. Hopefully Final Nukes for Options
     4.23. Nice Simplification to User Records
     4.24. Overly Complicated Font Options Removed
     4.25. Some Serious Rationale for Options
     4.26. More Potential Rationale Fodder Cleansed from Rapidly Maturing Options Setion
     4.27. Here's an Important Bit that Finally Got Handled
     4.28. The Real Deal for Options
     4.29. Thinking about Options and Defaults
     4.30. ScheduledItem Inheritance Structure
     4.31. A Feature Removal (!)
     4.32. More on Admin Decisions
     4.33. Fodder Nuked from Admin Section
     4.34. Detailed Explanation of Recurring Date Change Restrictions
     4.35. Rationale for Changing and Deleting Meetings
         4.35.1. From the end of the change and delete section
     4.36. From the task scheduling section
     4.37. Possible fodder for schedule meeting
     4.38. Possible fodder for meeting change/delete section rationale
     4.39. Possible fodder from appt changing section
     4.40. (Weakly) Possible fodder from meeting item viewing
     4.41. Possible fodder from task item viewing
     4.42. Possible fodder in the area of external file viewing
     4.43. 2aug01 -- Nixing the notificaiton enabling stuff (then not)
     4.44. 30jul01
     4.45. Axed from Meeting Scheduling
     4.46. A Bit on Task Scheduling
     4.47. Documentation Section Ordering
     4.48. Relative Importance of Actual Tool versus Pedagogical Exmaple Goals
     4.49. Filter Dialog Layout
     4.50. Refinement Example
     4.51. Alternatives for Multi-Window Mode Behavior
     4.52. Precise Behavior of Next and Previous at the Item Level
     4.53. Misc Ideas from Relatively Early On
     4.54. Start/End versus Start/Duration, Revisited
     4.55. Start/End versus Start/Duration (Older Ideas)
     4.56. Big Issue about Factoring Options
     4.57. Old Remarks from the List Viewing Section
     4.58. Filtering Issues
     4.59. Back and Forth with the Monthly Recurring Functionality
     4.60. Maximum Date Range
     4.61. Lists
     4.62. Canonical Modeling Form

5.  Developer Overview
     5.1. Issues to cover, if not addressed elsewhere

Appendix A.  Users Manual

Appendix B.  Command Language

Appendix C.  Help Content
     C.1. Quick Help Messages
     C.2. Detailed Help Content


List of Figures   |   List of Tables