Functional Specifications and Management Plan

Integrated Software Solutions Inc.

January 28, 1997

The following document presents the functional specification and management plan for the design of the Super Scheduler, prepared by Integrated Software Solutions Inc.

Table of Contents
  • Introduction
  • User Interface and Interaction
  • Technical Specifications
  • Management Plan
  • Glossary
  • Contributors

  • [Back to Top]
    Introduction
    Purpose - Users - System Requirements - Performance Goal

    Purpose
    Imagin8 Inc. requires a group diary and time management system to cope with the problems associated with the recent expansion of their company. In response to these needs, Integrated Software Solutions Inc. has designed Super Scheduler for the organization of office meetings and personal activities. Super Scheduler is expected to facilitate and support the coordination of meetings across groups of co-workers.
    Currently, Imagin8 Inc. relies on personal contact with employees for the scheduling of appointments. Super Scheduler will automate the present timetabling procedure, thereby reducing the time currently needed to accomplish such tasks.
    Users
    The system will be composed of two types of users, employees and administrators.
    Employees are able to request meetings with co-workers on a first come, first serve basis. Employees may also schedule personal activities, delete and modify meetings and view personal diary entries. Employees will have the ability obtain detailed information about meetings.

    Administrators have the added ability to access employee information records. Administrators can add new employees to the database, delete current employees or modify employee information. Administrators may also access an employee's diary, viewing details pertaining to scheduled appointments and meetings. Administrators have the ability to change users' schedules as well.

    System Requirements
    Super Scheduler is designed to run on Intel Pentium-based computers using the Microsoft Windows 95 operating system. Sixteen megabytes of RAM are required for the server, eight for each client workstation. The system will run over any Windows 95 compatible network, or optionally as a standalone unit encompassing both client and server roles (chiefly for demonstration purposes).
    Performance Goal
    ISSI will provide Super Scheduler, a custom software solution which will reliably and efficiently automate the meeting scheduling process. Imagin8's enhanced ability to co-ordinate its staff will result in increased productivity.
    [Back to Top]
    User Interface
  • Timetabling and Diary Subsystem
  • Employee Management Subsystem
  • ISSI has created Super Scheduler's graphical user interface, or GUI, to maximize the user's efficiency. Designed with ergonomic, intuitive controls, even a novice computer user can quickly get up to speed. This section describes in detail how the application is organized and how to perform each function. We will describe first items that concern all users: the Timetabling and Diary Subsystem (TDS) allows users to view and adjust their schedules, including booking and canceling meetings. We then describe the additional functionality available to system administrators: the Employee Management System (EMS) is the mechanism by which employees are added and removed, or their accounts modified. An administrator is able to view everyone's schedule.


    Timetabling and Diary Subsystem
    Starting the Application - Help - About - Previous and Next - Change Password - Delete - View/Modify - Schedule a new meeting - Modify the details of scheduled meeting

    Starting the Application

    To start the application, click the start button, drag the mouse to the 'Programs' sub-menu, and click 'Super Scheduler'. Upon its execution, the login screen window will be displayed as follows:

    To log into the system, click in the 'Full Name' field and type into it your full name, beginning with you first name followed by your last name. Then, click into the 'Password' field or press the 'tab' key and enter you password. After all of the above information has been entered, click the 'OK' button or press the 'enter' key. If either your name or password haven't been entered correctly, you will be prompted to try again. The information can be re-entered in the same manner as specified above.

    As soon as you have logged in correctly, the main screen is displayed as follows:

    This is the primary screen of Super Scheduler. It allows the user to view an entire month at one time. The month and year corresponding to the current display is printed between the 'Previous' and 'Next' buttons. Days on which meetings have been scheduled will be highlighted. The top portion of the day will be highlighted if there is a meeting scheduled in the morning and the bottom half will be highlighted if a meeting is scheduled for the afternoon. If there are meetings scheduled in both the morning and afternoon, the entire day will be highlighted. In order to view the detailed schedule for a particular day, the user must click on that day. The schedule for the selected day will be displayed in the box to the right of the calendar display. It will contain the times (in fifteen minute intervals) along with the location and subject of the meeting.

    Help

    If at any time you are unsure of how to proceed, you may select the 'Help' button to view the on-line help information. This button can be found on both Super Scheduler's main screen and on the 'Meeting Details' dialog.

    About

    Selecting the 'About' button on the main screen of the Meeting Planner will display a window showing you information about the product such as the version number our company name and copyright information. Selecting 'OK' or pressing the 'enter' key will close the window.

    Previous and Next

    By clicking on these buttons, the user may scroll through the months. It is possible to view the schedules for one month previous to the current month and up to twelve months ahead of the current month.

    Change Password

    To change your password, select the 'Password' button located on the main screen. The following window will be displayed:

    Click in the 'Old Password' field and enter the password you are currently using. Then, press the 'enter' key or click in the 'New Password' field and enter the password you wish to use from now on. Similarly, press the 'enter' key or click in the 'New Password - Verify' field and re-type your new password. After the above information is entered, select the 'OK' button or press the 'enter' key. If your new password matches the one that you typed in the 'New Password - Verify' field, your password is changed immediately and you can use it the next time you log in. If some of the information was entered incorrectly, a message will be displayed asking you to try again. The information may be re-entered in the same manner described above.

    Delete

    This button will be used when you wish to either remove a meeting that you do not wish to attend from your schedule or to cancel a meeting that you have scheduled. This is done by first selecting the appropriate entry in the daily schedule for the appropriate day. If it is a meeting that you have scheduled, it will be automatically removed from the schedules of those scheduled to attend. If it is a meeting that you have been scheduled to attend, and you were not the originator of the meeting then it will simply be removed from your schedule with no effect on the rest of the attendees or the meeting itself.

    View/Modify

    This button may be used for several different purposes. It is selected in order to view the details about a meeting, or in order to schedule a meeting. Upon selecting the 'View/Modify' button, the 'View/Modify Meeting Details' window (below) will be displayed:

    This window is used to perform the following functions:

    Before selecting the 'View/Modify' button, you must ensure that you are working with the proper month and day. Recall that the current month and day are indicated on the left side of the main screen. You may now use a View or Modify button to access meeting particulars.

    View the Details of a Meeting

    Selecting the 'View details' button will cause the Meeting Details to be displayed. This window will display the title of the meeting along with its start and end times, location, applicable notes, and includes a roster of company personnel, and of employees who will be attending the meeting. If this is not a meeting that you scheduled you will not be allowed to alter most of the information. You may use the scroll bars if necessary in order to read the 'Notes' field or the list of employees in the 'Meeting Attendees' field.

    Schedule a New Meeting

    Prior to scheduling a new meeting, you must select the appropriate day from within the main window. Once the date has been selected, open the 'View/Modify Meeting Details' window. The following details must be entered in their corresponding fields:

    Modify the Details of a Meeting you have Scheduled

    After selecting the meeting that you wish to alter and then selecting the 'View/Modify' button, the 'Meeting Details' window will be displayed containing the pertinent details of the meeting. If you were the originator of the meeting, you may alter any of the fields in this window. You may do any combination of the following:

    These changes can be made by simply editing the text in the field or by using the scroll bars or arrow buttons as necessary. When you have completed these changes, you may enforce them by selecting 'OK' or ignore them by selecting 'Cancel'. Either of these options will then return you to the Super Scheduler main screen.

    Employee Management Subsystem
    Add New - Modify - Remove

    In addition to the functionality detailed above, administrators also utilize the Employee Management Subsystem. When an administrator is using the system the following window will be displayed in addition to Super Scheduler's main screen.

    Add New

    Selecting this button will cause the following 'Add New Employee' window to be displayed:

    The administrator will enter the appropriate information by clicking in the appropriate field and typing text. If an employee already exists with both the same first and last names as the new employee just entered, a message will be displayed and the administrator must either select 'Cancel' if indeed the employee has already been entered, or re-enter the name perhaps providing a middle initial or other difference to distinguish the new employee from an already existing employee. When all information has been entered to the administrator's satisfaction, he/she must then select 'OK' to add the employee or 'Cancel' to discard the information. The 'Add New Employee' window will be closed and the new employees name will be included in the 'Company Personnel' field in the 'Administration' window.

    Modify

    This button allows an administrator to work with the schedule of the selected employee. The administrator has full control over the employee's schedule.

    Remove

    This button allows an administrator to delete the selected employee from the company database. A warning box will be displayed:

    If the administrator proceeds with employee deletion, the software will cancel every meeting the employee originated and remove him as an attendee from all other meetings before deleting the employee.

    [Back to Top]

    Technical Specifications
  • TDS Functions
  • TDS Functions - If time permits
  • EMS Functions
  • Auxiliary Functions
  • Data Structures and Algorithms
  • TDS Functions
    Add Meeting - View/Modify Meeting - Cancel Meeting Attendance - Cancel Meeting - Change Password

    Add Meeting

      Input:

      1. Meeting Title
      2. Starting Time
      3. Ending Time
      4. Location
      5. Meeting Attendees
      6. Notes

      Output:

      1. "Message Sent" dialog (optional)

      Actions:

      1. The Add Meeting function creates an instance of Meeting, with the Starting Time, Ending Time, Location, and Notes attributes as given from the user inputs. It also creates at least one instance of the relationship "is attending", joining the meeting with one or more employees. The originator, by default, must attend his own meeting.

      2. The location field is an integer input which would specify the room number (and building if we consider the expansion of the company and our system) if it entered, and can be left as '0' for personal meetings or any non-business related appointments which the user can use to ensure his diary will let the the system - and therefore the other co-workers - that he or she is busy for the given time and date.

      If Time Permits:

      1. The originator may be able to create a meeting which he does not have to attend. This will make meeting modification and canceling more complex for an originator of a meeting but will allow for greater flexibility.

      2. Messages will be sent to employees entered in the "Attendees" section - with the exception of the originator - and a dialogue box will be displayed on the screen, telling the meeting originator that the appropriate messages are being sent to the appropriate personnel.

    View/Modify Meeting

      Inputs: Any of the following (or none)

      1. Meeting Title
      2. Starting Time
      3. Ending Time
      4. Location
      5. Meeting Attendees
      6. Notes

      Output:

      1. "Message Sent" dialogue (optional)

      Actions:

      1. The function, View/Modify Meeting, displays information about a particular meeting, including its Starting Time, Ending Time, Location, Meeting Attendees, and Notes. If the user viewing the meeting information is the originator of the meeting, he or she is also allowed to edit any of that information if the user so desires with this function. If information is altered, the diaries of every employee attending will be updated.

      If Time Permits:

      1. If a meeting is modified, Messages will be sent to employees entered in the "Meeting Attendees" section - with the exception of the originator - and a dialogue box will be displayed on the screen, telling the meeting originator that the appropriate messages are being sent to the appropriate personnel.

    Cancel Meeting Attendance

      Input:

      1. Meeting Title

      Output:

      1. "Message Sent" dialogue (optional)

      Actions:

      1. Any user can use this function to remove a meeting from his or her diary, i.e. the person will not be attending the meeting.

      If Time Permits:

      1. If a meeting is deleted from a user's diary, the originator of the meeting will be sent a message of notification, telling the originator who, from his or her requested list of employees, will not be able to attend his or her meeting.

    Cancel Meeting

      Input:

      1. Meeting Title

      Output:

      1. "Message Sent" dialogue (optional)

      Actions:

      1. If an originator of a meeting cancels one of his meetings, the instance of that meeting is removed from the database, along with all diary entries corresponding to it.

      If Time Permits:

      1. If a meeting is cancelled, Messages will be sent to employees entered in the "Meeting Attendees" section - with the exception of the originator - and a dialogue box will be displayed on the screen, telling the meeting originator that the appropriate messages are being sent to the appropriate personnel.

    Change Password

      Input:

      1. Old Password
      2. New Password
      3. New Password - verification

      Output:

      1. A message will be displayed indicating one of three things:

        1. The password update was successful.
        2. The old password entered is incorrect.
        3. The new passwords don't match.

      Actions:

      1. When a user requests to change his password, he or she is required to enter his or her current password, his or her new password, and the new password again. If the entered current password does not match the user's current password, or if the entered new passwords do not match each other, a request failed message appears. Otherwise, a request succeeded message appears and the user's password is changed to the new password the user had entered.

    TDS Functions...If Time Permits:

      Call Periodic Meeting

        Input:

        1. Meeting Title
        2. Starting Time
        3. Ending Time
        4. Ending Date
        5. Period
        6. Location
        7. Meeting Attendees
        8. Notes

        Output:

        1. "Message Sent" dialogue (optional)

        Actions:

        1. This function creates meetings in the same way Add Meeting does, but allows periodic meetings to be scheduled. The user would enter a period (monthly, weekly, daily) and an ending date and a meeting will be scheduled multiple times based on the given period, up until the given ending date - or until one year from the present day, whichever comes first.

        2. A message will be sent in the same manner as it is sent in Add Meeting, but is only sent once per periodic meeting set (not once per meeting).

    [Back to Top]

    EMS Functions
    Add Employee - View/Modify Employee Information - View Employee's Schedule - Delete Employee

    Add Employee

      Input:

      1. Employee Name
      2. Employee Password
      3. Employee Comments

      Output:

      1. None

      Actions:

      1. The Add Employee function takes the Employee Name (first and last), Password, and Comments (an unformatted string containing employee information such as office position, age and/or birth date, address, family status, and any other information the system administrator may wish to include, and creates an instance of Employee to put in the system database.

    View/Modify Employee Information

      Inputs: Any of the following (or none)

      1. Employee Name
      2. Employee Password
      3. Employee Comments

      Output:

      1. None

      Actions:

      1. The View/Modify Employee Information function lets System Administrators view and edit any or all information about an employee in the system database, these include the employee's Name, Password, and Comments information. If any change is made, the employee entry is updated in the system's database.

    View Employee's Schedule

      Input:

      1. Employee Name

      Output:

      1. Employee Calendar

      Actions:

      1. This function allows a system administrator to view the schedule in the same manner that any employee can view his own with the following exceptions:

        No details about the meetings can be seen; all meeting titles are replaced with "" and the meeting location and notes are blank.

        All options for diary modification (add meeting, modify meeting, delete diary entry, and cancel meeting) are made unavailable, as well as change password, which can be done in the View/Modify Employee Information function.

    Delete Employee

    Auxiliary Functions

      Login

        Input:

        1. Employee Name
        2. Password

        Output:

        1. (report of success)

        Actions:

        1. The Log In is the first and most important window that is displayed upon the normal boot up of the system. It asks for the user's Name (as he is identified with on the system) and Password, and then verifies the user's authentication. If the user enters the Administrator Password (for which there is only one at any one time) he or she is provided with the TDS window as well as the EMS window. Otherwise, successful authentication results in bringing up the TDS window, only.

      Logout

        Input:

        1. None

        Output:

        1. None

        Actions:

        1. This exits the TDS and EMS systems.

    [Back to Top]

    Data Structures and Algorithms

    We have identified three major structures: Employee and Meeting classes contain information, and the "is scheduled to attend" relation which ties Employee and Meeting together.

    Diagram:

    The 'Employee' class contains the following fields: login, name, password, comment, and status. The 'Meeting' class contains date, duration, location, originator, and attendees field. The relationship between the two entity is the 'is attending' relationship consists of login name, and date. The following table is a detailed description of all the fields:

    Table: Employee
    P Column Data Type Comment
    Y ID Integer The unique ID to identify the employee
    Y UserName String[10] Alphabetic name
    Used when the user logs in. This name should be unique in the system.
    - Key for user identification
    - The login name is used for individual user to login to the system, it consists of a unique name for each user.
    N FirstName String[20] First name
    N LastName String[30] Last name
    N Comment String[500] - Additional notes within the scheduled time the user may want to add to their scheduled meeting
    - Used in schedule meetings
    N Password String[8] Alphanumeric password
    - This is a hidden field in the data store, it is a verification mechanism to identify to the same whether the login is a valid user or not
    N Administrator Boolean True for administrators, false for regular users


    Table: IsAttending
    P Column Data Type Comment
    Y EmployeeID Integer The ID of the employee
    Y MeetingID Integer The ID of the meeting


    Table: Meeting
    P Column Data Type Comment
    Y ID Integer The unique ID for the meeting
    Y Date Date The day of the meeting
    Y StartTime Time The start time of the meeting
    Y EndTime Time The end time of the meeting
    Y Location Integer The id of the location 0-9999
    N Originator Integer The id of the employee that originated the meeting
    N Comment String[500] A description of the meeting

    Algorithms

    Note that the two main database of this system is employee, and meeting, the relationship of these two will be a list of employee scheduled in a certain time of the meeting.

    Two of the major algorithms for this system is the scheduling for meetings between all the employee that will be attending it. The program will ask for the names of employees who will attend this meeting; the start and end time of the meeting. The second algorithm is for dealing with the EMS subsystem.

    check_availability (name, time_start, time_end) { locate all meetings for the person on the day included in the time range perform linear search, testing if any or all of each entry overlaps the specified time return 1 if the person is available else return 0 } schedule_meeting (name, time_start, time_end) { lock the entire meeting section call check_availability of each person if success book everybody into meeting, return success if fail then return fail }
    [Back to Top]

    Management Plan
    Implementation Components - Minimal System - Enhancements
    As part of our management plan, we have divided the implementation of the system into 5 parts.

    Implementation Components

    Super Scheduler is the integration of several components. The descriptions below provide an outline of how we have divided the implementation task.

    The Super Scheduler will essentially have three components integrated into one software product. The descriptions below are not meant to be any kind of real specification but are just descriptions. They provide an outline of how the system will be decomposed into components that can be developed more or less independently.

    (1) The Database Back End

    This component involves designing the database in ACCESS and making a list of tables and attributes available to the team. These should be in HTML format on the web and must be up to date at all times.

    Also, some framework classes should be developed for interaction between the database and the user interface. These classes are for opening/closing the database and manipulating record sets inside the C++ program.

    (2) The Employee Management Subsystem (EMS)
    This system is as described in the customer's original spec. Employee management consists of adding/removing and modifying employees. The user should be able to scroll the employees as well.

    This component includes a dialog for viewing/editing employees.
    (3) The Navigation System
    The navigators allows the user to view his schedule and view employees and/or meetings. This is the system the user uses to control what is done.

    This component specifically includes:
  • facilities to log in
  • facilities to change a user password.
  • facilities to view a daily schedule for one employee
  • facilities to view a monthly schedule for one employee
  • (4) The Timetable and Diary Subsystem (TDS)
    This component allows employees to manage their meetings. This includes creating meetings, getting out of meetings and cancelling meetings altogether. This system will contain the core of the scheduler meetings.
  • facilities for Originators to create meetings
  • facilities for message management.
  • facilities for an employee to alter his own time table.
  • facilities to modify scheduled meetings (or cancel them)
  • some way of providing feedback to the user during scheduling conflicts
  • (5) Documentation
    This task involves documenting the current software process so other members can make use of other teams' components. Also it is for creating user documentation right from the start. This documentation will encompass
  • brief descriptions and progress reports of subsystems
  • description of important classes and functions.
  • Class Hierarchy diagrams
  • Class interaction diagrams if possible.
  • All documentation should be in HTML and accessible the development team.
    Minimal System
    Our estimate of the minimal system that can be developed with existing resources will consist of the following:
    EMS


  • The EMS will be fully functional. The administrator will be able
    to add/modify/remove employees at will.

  • NAV




  • The Navigational facilities will allow employees to view their schedules
    at daily and monthly time intervals

  • Direct navigation - ability to jump directly to any month/day

  • TDS








  • Users will be able to view meetings that they are attending or
    that they are the Originator for.

  • Users will be able to modify meetings that they have scheduled.

  • User Messages will be simulated, when an action that results in messages
    being sent is executed, some notice will appear. No actual messages will
    sent as this feature can be integrated into the existing email system.

  • Enhancements (time permitting)
    EMS


  • Users will be able to click on their schedules to have the full meeting
    descriptions appear.

  • NAV




  • Users will be able to click on meetings in their schedule to see the
    actual meeting.

  • Weekly navigation of diaries.

  • TDS




  • Users will be able to schedule weekly or monthly meetings.

  • Users will be able to cancel meetings weekly or monthly.

  • Messages will be sent to all users
  • Milestones for ISSI
    An important part of ISSI's success is our ability to set milestones or mini-goals for ourselves, and more importantly, reaching these goals. The completion of "The Super Scheduler" is, unquestionably, our company's main objective. We believe this goal can (and will) be reached.

    We have divided the implementation of Super Scheduler into three major components:
  • EMS (Employee Management Subsystem)
  • NAV (the Navigator)
  • TDS (Timetable Diary Subsystem)
  • By dividing the project into three separate components (which will eventually be linked together), this allows our team to be separated into sub groups; with each subgroup focusing on a particular component.

    Our prototype deadline is February 24, 1997. We believe that the NAV will be fully implemented, the the EMS will be 75% implemented and the TDS 50% implemented. Please note that these estimations DO NOT imply that the system won't work. Due to time constraints, this simply means that not all functions will include enhanced features, although most of the important functions will. For example, the nagivator will navigate through the diary day by day or week by week instead of having the the full feature of navigating through the entire month. Further details of features and the above components will be provided below (The Minimal System).

    In addition to division of tasks and milestones for each component, our team has also focused on other basic issues. These include requirements (software/hardware limitations and availability) for the actual implementation of the system. After some discussion we have decided on the following development platform:

  • Intel-compatible Processor, 16Mb RAM
  • MS Windows 95
  • MS Visual C++
  • MS Access 95
  • Acquiring the above is a minor milestone in itself.

    The Minimal System:

    This system will include the functions specified in the functional specifications. Below is a brief description of the features for the system.
    • Users can change their passwords.
    • Users can look back to the previous calendar month, and forward for twelve calendar months.
    • Users navigate through their diary month by month and day by day.
    • Users can view a particular day's activities.
    • Users can delete their own meetings. Users can also remove themselves from meetings originated by other users.
    • Administrators can add, delete, and modify employees.
    • Administrators can view and modify employees' schedules.

    A detailed description of all functions that will be available in the minimal system is provided in the technical specificationarea.

    [Back to Top]
    Glossary
    Administrator This indicates a user with special administration privileges.
    Attendees All employees that are scheduled for a certain meeting.
    Delete This button title indicates a more permanent deletion procedure.
    Employee This is a synonym for User.
    EMS The Employee Management Subsystem.
    Originator The employee that created a meeting is called the Originator of that meeting.
    Personnel All employees, regardless of their availability.
    Remove This button title is meant as a temporary action like moving an employee back and forth between list boxes.
    [Back to Top]

    Contributors
    Summary - User Interface - Management Plan - Document Editors
    Summary
  • Jennifer Walker
  • User Interface and Interaction
  • Patricia Cooper
  • Dave Gomboc
  • Jason Leonard
  • Rick Peniak
  • Dave Rempel
  • Tom Zaplachinski
  • Management Plan
  • Philip Cheung
  • Toron Leung
  • Juraj Pivovarov
  • Ken Yeung
  • Document Editors
  • Dave Gomboc
  • Juraj Pivovarov
  • Dave Rempel
  • Eric Sit
  • Jennifer Walker

  • Back to Top - Back to Home - Course Home Page