1. Introduction

This document defines requirements for an electronic Calendar Tool. The tool provides functions to manage calendars for individual users as well as for groups of users. Individuals use the Calendar Tool to schedule appointments and to view their calendar information in a variety of useful ways. Administrative users can schedule meetings for groups of users and perform other system administration functions.

In addition to providing useful functionality, the Calendar Tool serves as a pedagogical example of software engineering concepts and principles. The software development artifacts for the Calendar tool are considered part of the overall Calendar Tool package.

1.1. Problem Statement

The general problems to be solved by the Calendar Tool are the following:

  1. to provide a reliable and easy to use tool that manages an individual's calendar, in a manner comparable to non-electronic media such as day planners and date books
  2. to provide a secure group environment that manages a collection of individual calendars for the purposes of group scheduling and information sharing
While these problems have been solved by a number of commercially available and public domain products, the Calendar Tool provides a solution with certain functional improvements over existing tools. In addition, the development of the Calendar Tool focuses on two other specific problems not addressed in commercial tools:
  1. to provide a pedagogical example for use in the instruction of software engineering, including an example of the practical application of formal methods
  2. to provide fully documented public domain source code for use by others

1.2. System Personnel

The personnel involved in the Calendar Tool project are organized into the following groups and subgroups:

  1. end users
    1. registered users
    2. user group leaders
    3. master system administrators
    4. unregistered individual users
  2. system developers
  3. software engineering students
  4. outside parties

End users are those who use the Calendar Tool for its intended purpose. Registered end users have calendars that are stored in a Calendar Tool multi-user database, which is used for group scheduling purposes. Group leaders are designated registered users who may perform group scheduling operations which affect other users' calendars. Master system administrators perform overall system administration functions, including user and group leader registration. Finally, anyone can use the Calendar Tool as an unregistered user for the management of a strictly individual calendar.

The primary system developer is Gene Fisher. His efforts are based on the work of a number of software engineering students who have used the Calendar Tool as a class project in software engineering courses. Students whose work has been particularly helpful are Larry Bolef, Brent Smolinski, Rick Myers, Brandon Wallace, and Oliver Wallace.

As noted above, the Calendar Tool is intended to serve as an example for use in software engineering courses. The students who use the Calendar Tool for this purpose focus on the artifacts of its development rather than its use as a functioning tool.

The Calendar Tool is available as public domain software for use by outside parties. The project directory is located at


http://www.csc.calpoly.edu/~gfisher/projects/calendar

1.3. Operational Setting

There are two operational settings for the Calendar Tool: (1) normal use as a functioning software system; (2) use as an example in software engineering courses.

Since the Calendar Tool is designed as general public domain software, there is no specific operational setting in which it is intended to be installed. The setting for which it is appropriately suited is an office or organizational environment of some form, where users maintain their own calendars and need to schedule meetings with other users on a regular basis.

For use as a pedagogical example, the Calendar Tool has been designed to fit the curriculum used by Gene Fisher in undergraduate and graduate software engineering courses at Cal Poly University. These courses are two-quarter sequences that cover standard aspects of software engineering, with emphasis on the practical application of formal methods. For the most part, the concepts covered in these courses, and hence the concepts embodied in the Calendar Tool, are mainstream software engineering. Other instructors may therefore find the Calendar Tool and its development artifacts useful as course examples.

1.4. Impacts

The positive potential impacts of the Calendar Tool as a functioning system are increased convenience and efficiency in managing individual and group calendars. The positive impacts of the Calendar Tool as a course example are

  1. the presentation of a non-trivial software system that students can use as a guide for their own software development work;
  2. an illustration of how formal methods of can be put to practical use.

Potential negative impacts include those common to any user-oriented software system. Viz., if the system is poorly designed and implemented, it can be inconvenient to use and decrease rather than increase user productivity. More specific negative impacts relate to issues of privacy, reliability, and data integrity. If the system implementation is flawed, it may reveal private information that users do not wish to be revealed. If an organization of users relies on a flawed implementation of the system to schedule critical events, and such events are improperly or incompletely scheduled, the organization may suffer significant disruption of its operations. Significant disruption may also occur if the system looses or corrupts important calendar data.

As a course example, the use of the Calendar Tool has no significant negative impacts, unless its development methodology is considered weak or unrelated to the concepts being taught in a particular course. Such negative impacts can be easily avoided if instructors carefully examine the example before using it in a particular software engineering curriculum.

1.5. Related Systems

Widely used commercial systems that provide functionality comparable to the Calendar Tool include

Each of these systems provides a wide variety of calendar and scheduling functionality. In terms of such functionality, the goal for the Calendar Tool is to provide the important core features found in these tools, not the full range of features found in all of them. The Calendar Tool does provide modest functional improvements in three areas, when compared to most commercially available tools. These improvements are:

  1. more flexibility in viewing and selecting from lists of possible meeting times that are generated by the automatic scheduler;
  2. more flexibility in specifying recurring events;
  3. more extensive forms of view filtering.

The goals for the Calendar Tool relating to public domain source code and sound pedagogical development are not met by any of the above commercial systems.




Prev: [none] | Next: functional | Up: index | Top: index