Requirements
for an Electronic Calendar Tool
Version 0.9
July 2003
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 Systems2. 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 User`s Calendars
2.3.5.2. Viewing Group Calendars
2.3.6. Viewing in Different Windows
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.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.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. Host Files
2.6.5.3. Setting the Administrator Password
2.6.5.4. Setting the Administrator Email Address
2.6.5.5. Notifying Users
2.6.5.6. Creating Calendar Tool Distributions
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
2.7.6. Options in the Calendar Tool Administration Program
2.7.7. Base Default Option Settings
2.7.8. Operating Environment Conventions
2.8. Details of File Commands
2.8.1. New, Open, Close, and Close All
2.8.2. Save, Save As, Save All
2.8.3. Save Config
2.8.4. Print
2.8.5. Exit
2.8.6. Save As and Load in Editing Dialogs
2.8.7. Local Files
2.8.8. File Connect and Local Files
2.8.9. File Types
2.8.10. Calendar File Contents
2.9. Details of Edit Commands
2.9.1. Undo, Redo, Repeat
2.9.2. Cut, Copy, Paste
2.9.3. Find
2.9.4. Text Command Interface
2.10. Help
2.10.1. About
2.10.2. Quick Help
2.10.3. Detailed Help
2.10.3.1. Detailed Help Contents
2.10.3.2. Detailed Help Index
2.10.3.3. Detailed Help Search
2.10.3.4. Help Presentation Details
2.11. Data Entry Details
2.11.1. Command Enabling and Disabling
2.11.2. Pressing OK (4sep02)
2.11.3. Comma-Separated Lists
2.11.4. Typed Input
2.11.5. Date Formats
2.11.6. Item Uniqueness Requirements
2.11.7. Scheduling Dialogs and Item-Level Displays
2.11.7.1. Meeting Scheduling Dialogs
2.11.7.2. Defaults
2.11.8. Required Fields
2.11.9. Selecting Viewing Targets
2.11.10. Deletion of Scheduled Items
2.11.11. Overlapping Items
2.11.12. Category Editing Details
2.11.13. String and Pattern Matching Rules
2.11.14. Regular Expression Filtering Patterns
2.11.15. Boolean Expression Filtering Patterns
2.11.16. System-Defined Events
2.11.17. Dialog State Details
2.11.17.1. Custom List Dialog
2.11.18. Combo-box menu text truncation and other behaviours
2.11.19. Default Names
2.11.20. Name Completion
2.11.21. Meeting Minutes
2.11.22. Merging Scheduler Changes
2.11.23. Picky Details about Change/Delete Button Enabling
2.11.24. Precise Details of Clear and Cancel
2.11.25. Add User and User Record Dialogs
2.11.26. Non-Modal, Calendar-Specific Dialogs
2.11.27. Units of Measure
2.11.28. Options Data
2.11.29. Lexical Sorting
2.11.30. Email Address Validation
2.12. Error Conditions
2.12.1. Commands with No Effect
2.12.2. Searching for Unknown User
2.12.3. Scheduling Errors
2.12.3.1. Unknown Meeting Attendees
2.12.3.2. Meeting Scheduler Validation
2.12.3.3. Non-Unique Items
2.12.3.4. Changing a Meeting to an Unavailable Location
2.12.3.5. Scheduler Changing or Deleting a Meeting when Offline
2.12.4. Errors from an External WWW Browser
2.12.5. Administrative Errors
2.12.5.1. Non-Admin Attempting to Login as Admin
2.12.6. Failure of Central Host Computer
2.12.6.1. Loss or Corruption of Central Host Data
2.12.6.2. Invalid repository path
2.12.7. Failure of Local User Computer or Invalidation of User Information
2.12.8. Missing or Corrupted Options File
2.12.9. File Errors
2.12.10. Zero-Instance Recurring Items
2.12.11. Exceeding Item Limits
2.12.12. Host Connection Failure
2.13. Graphical User Interface Details
2.13.1. Screen Coordinates
2.13.2. Enabled and Disabled GUI States
2.13.3. Remembering Previously-Entered Values
2.13.4. 28jun01 Note
2.13.5. View Command Display Details
2.13.5.1. Day View Scrolling
2.13.5.2. Window Sizes
2.13.5.3. Details of Horizontal Overlap Display
2.13.6. Window Positioning for Next/Previous Commands
2.13.7. Apple Macintosh Menu Conventions
2.14. Multi-User Operating Environment
2.14.1. The Central Host Server Program
2.14.2. The Cycle of Online and Offline Editing
2.14.3. Invoking the Calendar Tool from the Operating Environment
2.14.4. The Central Calendar Repository
2.14.5. Messaging
2.14.6. Coordination
2.14.7. Implementation Considerations
2.14.8. Clock Synchronization Issues
2.14.9. Files
2.14.10. Adminstrative Purging of Excess Calendar Data
2.14.11. Security Considerations
2.14.12. Local/Remote Calendar Synchronization
2.14.13. Ramifications of the Accpepting Meeting Notifications Any Time
2.15. Installation and Operating Environment Interface
2.15.1. Regular User Installation
2.15.2. Implementor or Adminstrator Configuration of the Calendar Tool
2.15.3. Installation of the Calendar Tool on a Regular User's Local Computer
2.15.4. Installation of the Calendar Tool Administration Program on a Central Host
2.15.5. Location of Calendar Tool Files
2.15.6. Invoking the Calendar Once Installed
2.16. Future Enhancements
2.17. Work in Progress
2.17.1. Product Evolution
2.17.2. Reminder
2.17.3. Bug
2.17.4. The Term ``Client''
2.17.5. Window ``Banner'' versus ``Title''
2.17.6. Filtering Todo Items
2.17.7. Options Section Wording Fodder that Will Probably Be Nuked
2.17.8. Possible Fix Needed
2.17.9. Fix Links in Admin Section
2.17.10. Filtering Update Needed
2.17.11. Tree Viewer for Groups and Other Admin-Related Discussion
2.17.12. External Operating Environment Issues
2.17.13. Custom Filter Menu Options
2.17.14. Misc
2.17.15. Make Sure Button and Menu Item States are Accurate
2.17.16. Quick Note
2.17.17. Hmm, Centralized Server Architecture Rears Its Ugly Head
2.17.18. Nuked These Things and Think They Can Stay Nuked
2.17.19. Scripting Language Derived from UI Command
2.17.20. A Couple More Todo Items
2.17.21. Prev/Next Arrow Issue
2.17.22. Make Sure that Disabled (Greyed) State of All Buttons is Correct
2.17.23. Consider Where To Put Dialog State Details
2.17.24. Maybe for custom list section
2.17.25. Consider adding Emacs to list of related systems in section 1.5
2.17.26. Complete Clear Statement for Item Uniqueness Criteria
2.17.27. Check Consistency between Task Scheduling and Task List Sections
2.17.28. Default Task Priority
2.17.29. Color
2.17.30. Beware (potentially) of automatic rescheduling
2.17.31. General fixes and updates to do
2.17.32. General Constraints
2.17.33. Commands with No Effect
2.17.34. Trimming
2.17.35. Uniform Effect of the 'Cancel' Command
2.17.36. Explanatory Error and Confirmation Dialogs
2.17.37. Help
2.17.37.1. Possible Options
2.17.37.2. Paragraph (from Rolodex) about Quick Help Activation Area3. 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 Constraints5. Formal Specification
5.1. Scheduling (schedule.rsl)
5.2. Calendar Database (caldb.rsl)
5.3. Viewing (view.rsl)
5.4. Administration (admin.rsl)
5.5. Options (options.rsl)
5.6. File Handling (file.rsl)
5.7. Data Editing (edit.rsl)6. Rationale
6.1. Pretty Close to the Last Pile 'o Due Due from Admin
6.2. Nixed in Favor of Explicit Dialog Settings
6.3. What's on the Host
6.4. More nukation from admin, here re. purging and capping
6.5. Nuked from Change/Delete Section 28 Jul 03
6.6. Nuked from Admin Section 27 Jul 03 through 11 Aug 03
6.7. Registered Users
6.8. ``View ...'' versus ``Edit ...'' as Button and Menu Item Names
6.9. The Explicit Delay Button in Meeting Notifications
6.10. Group Explorer
6.11. Nuked from Admin; Presumably to Go In Some Form in Installation
6.12. Fodder from Wincow Viewing Section, Ca. Aug 02
6.13. Meeting Notifications and Calendar-Host Association
6.14. Nuked from Options, Related to Overly-Complicated Home Dir Specs
6.15. Decision about User Control Over Notifications
6.16. Some Uncommonly To-The-Point Fodder from the Options Section
6.17. Nuked from Options Section
6.18. Hopefully Final Nukes for Options
6.19. Nice Simplification to User Records
6.20. Overly Complicated Font Options Removed
6.21. Some Serious Rationale for Options
6.22. More Potential Rationale Fodder Cleansed from Rapidly Maturing Options Setion
6.23. Here's an Important Bit that Finally Got Handled
6.24. The Real Deal for Options
6.25. Thinking about Options and Defaults
6.26. ScheduledItem Inheritance Structure
6.27. A Feature Removal (!)
6.28. More on Admin Decisions
6.29. Fodder Nuked from Admin Section
6.30. Detailed Explanation of Recurring Date Change Restrictions
6.31. Rationale for Changing and Deleting Meetings
6.31.1. From the end of the change and delete section
6.32. From the task scheduling section
6.33. Possible fodder for schedule meeting
6.34. Possible fodder for meeting change/delete section rationale
6.35. Possible fodder from appt changing section
6.36. (Weakly) Possible fodder from meeting item viewing
6.37. Possible fodder from task item viewing
6.38. Possible fodder in the area of external file viewing
6.39. 2aug01 -- Nixing the notificaiton enabling stuff (then not)
6.40. 30jul01
6.41. Axed from Meeting Scheduling
6.42. A Bit on Task Scheduling
6.43. Documentation Section Ordering
6.44. Relative Importance of Actual Tool versus Pedagogical Exmaple Goals
6.45. Filter Dialog Layout
6.46. Refinement Example
6.47. Alternatives for Multi-Window Mode Behavior
6.48. Precise Behavior of Next and Previous at the Item Level
6.49. Misc Ideas from Relatively Early On
6.50. Start/End versus Start/Duration, Revisited
6.51. Start/End versus Start/Duration (Older Ideas)
6.52. Big Issue about Factoring Options
6.53. Old Remarks from the List Viewing Section
6.54. Filtering Issues
6.55. Back and Forth with the Monthly Recurring Functionality
6.56. Maximum Date Range
6.57. Lists
6.58. Canonical Modeling FormAppendix C. Help Content
C.1. Quick Help Messages
C.2. Detailed Help ContentAppendix D. Feature Comparison Matrix
List of Figures | List of Tables