Requirements Specification
for CSTutor

Contents

1.  Introduction
     1.1. Problem Statement
     1.2. System Personnel
     1.3. Operational Setting
     1.4. Impacts
     1.5. Related Systems
         1.5.1. GoogleGuide.com
         1.5.2. Articulate.com
         1.5.3. W3Schools Online Tutorials
         1.5.4. C++ Language Tutorial
         1.5.5. Try Ruby!
         1.5.6. Winx
         1.5.7. HTML Tutorial
         1.5.8. Feature Comparison Matrix

2.  Functional Requirements
     2.1. User Interface Overview
     2.2. Viewing a Tutorial
         2.2.1. Opening a Tutorial
             2.2.1.1. Opening from Disk
             2.2.1.2. Opening from Server
         2.2.2. Viewing a Basic Tutorial
         2.2.3. Viewing an Interactive Tutorial
         2.2.4. Viewing a Quiz
     2.3. Creating a Tutorial
         2.3.1. Creating a New Tutorial
         2.3.2. Creating a Basic Tutorial Page
         2.3.3. Creating an Interactive Tutorial Page
         2.3.4. Creating a Quiz
             2.3.4.1. Adding a Multiple Choice Question
             2.3.4.2. Adding an Interactive Question
             2.3.4.3. Adding a Quiz Branch
             2.3.4.4. Editing, Deleting, and Reordering
                 2.3.4.4.1. Editing a Question or Branch
                 2.3.4.4.2. Deleting a Question or Branch
                 2.3.4.4.3. Reordering Questions
         2.3.5. Saving/Publishing a Tutorial
             2.3.5.1. Saving to a Disk
             2.3.5.2. Publishing to a Server
     2.4. Statistics
         2.4.1. Viewing Individual Statistics
         2.4.2. Viewing Course Statistics
     2.5. Administration
         2.5.1. Setting up a Filesystem
         2.5.2. Deleting Items from a Filesystem     
             2.5.2.1. Deleting Tutorials
             2.5.2.2. Deleting Professors
             2.5.2.3. Deleting Courses
             2.5.2.4. Removing a Server from Use
     2.6. Error Dialogs
     2.7. Details of File Commands
         2.7.1 Save and Save As.
     2.8. Details of Edit Commands
         2.8.1 Undo and Redo
         2.8.2 Cut, Copy, and Paste

3.  Non-Functional Requirements
     3.1. System Performance
     3.2. General Characteristics
         3.2.1. Security and Privacy
         3.2.2. Simplicity versus Power

4.  Developer Overview

5.  Formal Specification
     5.1. Tutorial Viewing (tutorial_viewing.sl)
     5.2. Basic Page (tutorial_common.sl)
     5.3. Interactive Page (tutorial_interactive.sl)
     5.4. Tutorial Creation (create_tutorial.sl)
     5.5. Quiz Creation (quiz.sl)
     5.6. Results (results.sl)
     5.7. Admin (ModelingAdmin.sl)


List of Figures