TI Interactive!TM Tutor

Software Requirements Document

Date: 02/20/2001
Version: 1.1


Client Bob Pospick
Calculator Business & Market Development
Educational and Productivity Solutions
Texas Instruments
7800 Banner Drive, MS 3908
Dallas, Texas 75251
(972) 917-7103
CEO / Project Advisor Carl Leinbach
Professor of Computer Science 340
E-mail: leinbach@gettysburg.edu
Box No: 0402
Office Phone: 6640
Glatfelter Hall 206
VP / Project Manager M. Reza Rahman
E-mail: s437396@gettysburg.edu
Box No: 2016
Phone: 337-7895
GUI Developer Matt Hoover
E-mail: s449631@gettysburg.edu
Box No: 1158
Phone: 337-7607
Back-End Developer

Rajib Rahman
E-mail: s475600@gettysburg.edu
Box No: 1905
Phone: 337-8159

Media Engineer Damien Ranero
E-mail: s444496@gettysburg.edu
Box No: 2028
Phone: 338-2090
GUI Developer Farzana Sultan
E-mail: s430788@gettysburg.edu
Box No: 2401
Phone: 337-7980
Technical Writers
Brian Bitten
E-mail: s401334@gettysburg.edu
Box No: 0192
Phone: 337-7592
Mike Repetti
E-mail: s448998@gettysburg.edu
Box No: 2082
Phone: 337-7065



This document is a formal contract between the Gettysburg College CS340 Spring 2001 TI project team and Texas Instruments, Inc. It is designed to provide a detailed outline of the predicted outcome of the project with respect to the needs of the client, the resources of the developers, and the scope of the task at hand. This document includes an elaborate description of the team's goals and explains how they satisfy the needs of the client.


This document has been developed on the basis of communication and meetings between Bob Pospick of Texas Instruments and the team headed by Reza Rahman.  The initial ideas for the project were proposed by Professor Carl Leinbach of Gettysburg College. On the basis of Professor Leinbach's brief comments in class, Reza Rahman constructed an initial design proposal for the project. This proposal was reviewed by Professor Leinbach and later by Bob Pospick. Based on the feedback received from the abovementioned people, the proposal was modified to include a getting started tutorial in addition to the advanced video tutorial navigation and rendering system. This design was later ratified during a visit by Mr. Pospick to Gettysburg College. This final design, as well as the contents of the tutorials (as evolved so far), is what will be discussed in this document.

It would be negligent to proceed further without an explanation of the constraints under which this document has been designed. Our first and foremost problem is that we have no direct contact with the final users of the system (namely the high-school students and teachers using TI Interactive!). Neither did we have any contact with the developers of TI Interactive!. The only person on the client side who we had contact with was Bob Pospick, whose work place is in Texas. However, in order to overcome this problem, we have designed a whiteboard system as well as a project web page to ensure continuous information flow on both developer and client ends.


The goal of the project is to create a multimedia based tutorial and help system for TI Interactive!. This tutorial software is aimed to be quick, informative, and exciting, to make learning the educational software interesting and swift.

TI Interactive is an educational software aimed to aid high school students grasp mathematical and scientific concepts. Not surprisingly, it incorporates a lot of functions including but not limited to algebra, calculus, and statistical analysis, as well as normal word processing. Unfortunately, this makes learning all of the software's functions complex and cumbersome.

An obvious way of compensating for this shortcoming is to create an extensive help system. Such efforts have indeed been made, in the form of a regular windows help system, a getting started guide that comes with the software, as well as a demo on the TI site. However, the problem with these systems is that that are based on static media like text and images. They involve little or no user interaction and are removed from real life. As a result, these media types are of limited use in trying to effectively capture the attention of an average high school student.

This is where our application, the TI Interactive! Tutor, comes in. We aim to create software that will step the user through the functions of TI Interactive! using creative video segments with audio narration, organized in such a way to provide an overview of the essential functions.  Since all the tutorials presented by the tutor are based on very short videos including audio interlacing, they are more user friendly and therefore more effective.

The software is can be viewed as having two separate modules. The aim of the first module is to provide a brief list of the useful features of TI Interactive!, expose the user to these features through short, informative videos and point them toward more advanced usages. The second module is a searchable and browsable interface of multimedia tutorials covering a wide range of topics beginning from the most basic to the most advanced.

Functional Requirements

This section details how the software is going to operate when the project is completed. Since there are two different modules of the software, it may be useful to detail the functionality of each.

Getting Started Tutorial

Our primary aim is to provide a quick and easy introduction to the most basic functions of Interactive!

An Introduction: The getting started tutorial will be the first panel that the user will view after the product CD is inserted and all necessary applications are installed (look at the software requirements section for details on this). In accordance with Bob Pospick's slogan "ten most useful things in less than thirty minutes," the getting started tutorial will consist of videos covering the ten most likely used features of TI Interactive! by an average user. The first panel will by no means be a comprehensive coverage of the product, but only a way of getting the user to start using Interactive! as quickly and painlessly as possible.

From there, the user will be able to run through a sequence of videos arranged in logical order, providing an overview of the functionalities of the product.  The user will be taken step by step through all the videos in order, so that one could run this basic tutorial and be provided with everything needed to get started on a project with TI Interactive!.

Multimedia Presentation: None of the tutorials are going to be text based. They will all be screen-capture videos of the particular feature being explained with a simultaneous narration of actions.  We will use the QuickTime video format to encode the videos, and the application will run the QuickTime viewer inside of its video screen.  The QuickTime viewer will be included on the application CD.  Also, all videos will be narrated by a friendly voice, stepping the user through exactly what is occuring on the screen.

Brief and to the Point: The greatest problem with tutorial systems is to be able to hold the attention span of the user. Keeping this in mind, each of the getting started videos will be kept as brief as possible and will have very specific coverage. Each of the videos are estimated to be under two minutes long. For example, the tutorial on graphing a function will only show how to include a graph in the document and will not cover additional features like adding a title to the graph, changing its range or altering color and size.  

Entry Point: At the end of each basic tutorial, the user may be presented links to more advanced related tutorials. For example, the tutorial on regressions may lead to links covering altering data, filtering data, using different regressions, etc.  These videos will be arranged similarly to the basic videos.  Each will cover one specific operation, and will be narrated to explain exactly what happens throughout.

Flexible and Smooth Transition to Advanced Features: After the user has viewed all the basic tutorials, s/he will be given the option to move on to the advanced help system. If the user chooses not to do so, they will not be asked again until they decide to move onto it themselves. For the convenience of more adept users, we will also provide the option of skipping the beginning tutorials altogether.

Advanced Tutorial

The secondary aim is to provide a highly searchable and navigable tutorial portal beyond the basic tutorial.

Sample Functionality: Because of time constraints, we will only be able to provide sample functionality for the advanced tutorial. We are hoping to include up  to twenty advanced tutorials in this module in addition to the contents of the basic tutorial. The aim is to make the software flexible enough so that the client can add as many tutorials as they need (perhaps even a comprehensive system to substitute the traditional windows help application).  

Effective Search and Retrieval: This is the most fundamental difference between the rigid content and structure of the getting started tutorial and the more demand-oriented nature of the advanced help system. Since it is impossible to determine beforehand what specific advanced feature the user is interested in, the system will be designed to make zoning in on the target topic as fast and easy as possible. Based on user feedback, it seems that having two parallel systems will be most effective. One of them will be a structured directory of topics that the user can choose from. The organization of these topics should follow a logical order. The other will be an index searching mechanism that will try to find topic matches as the user types keywords.

Detail Oriented: Each of the advanced tutorials will be very detail oriented and may potentially be shorter that the getting started topics. For example, there should be separate tutorials on changing the color of a graph, changing its range or changing the size of a graph.  

History and Bookmark Facility: In addition to a navigable list and index search, the advanced help system will also include a facility to bookmark videos and manage these bookmarks. The bookmark system will allow the user to bookmark the current video in order to retrieve it later.  The bookmark list will be editable, so that the user can organize, add, and remove any bookmark.

A history facility with a finite capacity (most likely a queue of size twenty-five) will also be provided for user convenience.  Every visited bookmark will be added to the history so that the user can easily review or return to a video recently visited. 

User Control of Flow: One of our primary goals is to let the user have complete control over the flow of the tutorials. Specifically, the application will allow the user to forward, rewind, pause and restart the videos. The vision is that the user will watch part of a video, pause at a convenient point and try to follow the instructions on the video and restart the video when they are done. Another probable benefit of media presentation is that the user will be able to rewind and watch any confusing parts again or forward a redundant part.

Non Functional Requirements

We aim to provide a high-performance, scalable and maintainable application.

Performance: Since the major goal of the application is to make learning TI Interactive! as easy as possible, it is imperative that the application be highly responsive to the user. We have a commitment to writing an application that will be efficiently coded so that it can deliver fast loading, search and retrieval as well as efficient rendering and control of the videos.  We hope to minimize the number of data structures used in the application in order to manage memory use efficiently.

Scalability: Since we are providing only sample functionality for the advanced tutorial, we are going to keep the application as flexible as possible, so that the client can easily change the content, quality, presentation or order of the tutorials. This is a major reason why we are using XML as the data format of our application.  We hope to provide the client with the ability to add video segments in the QuickTime format, and easily integrate them into the tutorial and database structures.

Maintainability: Since the application is going to be programmed completely in Java, it should be highly readable and easily maintainable. The object-oriented design and code-flow will be maintained keeping this need in mind.  We will provide the client with well-documented copies of all of the code, so that later modifications can be made. 

Database Requirements

As mentioned earlier, the entire database for the application is going to be written in XML. The hope is that this will make the task of modification and addition as simple as possible. Here is the E-R diagram for the application database; each of the entities are going to be separate XML files: 

Tutorial topics: This is the principal database of the application. Each node in this XML document is going to be a separate topic. Each topic will have a unique ID number to serve as primary key. In addition, each topic will have a title and a video associated with it. All the videos will be in Apple QuickTime (.mov) format and will be saved in a specific folder (APP_HOME/videos/).

Getting started topics: This is the database that contains information on all the videos that are going to be included in the getting started tutorial. Essentially, this is a list of references to topics in the tutorial topics database. In addition, each of the topics will contain a description of the tutorial, that will show up in an about box in the main navigation panel. Each of the topics will also contain the pointers to the related topics. These related topics will be displayed once each getting started video is finished.

History topics: The history database is going to be maintained to keep track of viewed videos once the application is shut down.  The history will be a list of pointers to the topics viewed, both from the basic tutorials and from the advanced set. In addition, the database will also contain information about the creation date of each history topic, and organize itself to store the last twenty-five.

Bookmarks: The bookmarks database must have special structure reflecting its hierarchical nature. This structure fits into the XML database schema well, since each directory node may contain either a reference to a topic in the tutorial topics database or another nested directory node.  The entire directory application may be viewed as a tree, with specific topic references as the leaves, and the directories as internal nodes.

Hardware Requirements

Since the application uses multimedia, it unavoidably requires some minimum hardware requirements in order to function at optimum levels:
  1. Windows NT, 9x / Mac OS / Sun Solaris
  2. 200mhz processor
  3. 16MB of RAM
  4. CD-ROM Drive
  5. Speakers
  6. Sound Card
  7. 680 x 480 Color Monitor

Software Requirements

The program requires the following software to be installed on the user's machine:

  1. Java 2 SDK, Standard Edition, v1.3: Since the application uses Java, it must have a Java Virtual Machine installed. In addition, Java 2 is required since Swing is used in the GUI.
  2. Apple QuickTime 4.1 Player with QuickTime for Java: Since all the movies are rendered using the player, it must be installed on the user's machine in addition to the QuickTime for Java API.
  3. Apache Xerces Java XML Parser, 1.3.0 Release: Since XML Parsing is not yet part of the standard Java SDK, an additional API for parsing the XML database will be necessary to run the application. Apache's Xerces is the most reliable and most liberal in terms of licensing.
Since Apache Xerces, Java 2 and QuickTime come with free distribution licenses, they can be included into the application CD with the tutor. During installation, the installer should check if these programs already exist on the hard-drive, if not, the installer should install the applications before initiating the tutor. This way, no download or manual installation will be required on the user's part.

Preliminary Object-Oriented Design

Here is the preliminary object oriented design scheme for the application:

TII Tutor: This is the main application. It will directly or indirectly contain all the classes in the application and hence will control the main program flow. It will contain the startup method for initializing all structures and classes. The main GUI window will be rendered by this class. it will simultaneously interact with the video and page rendering panel, history panel, bookmark panel,TRIE structure and database manager.

Database Manager: This class will act as the interface between the XML database and the application. At startup, it will parse all databases and create a getting started topics database, tutorial topics database, history database and bookmarks database. When it is prepared for service, the manager will send the topics to the main application and the TRIE structure, the history to the history panel and the bookmarks to the bookmarks panel. Additionally, the manager will update the history and bookmarks database as well as serve data on any specific topic.

Display Panel: This object will have to render pages on request of the main application, as well as create instances of video players to play the videos. In addition, the object must capture user events on rendered pages and video ending events on the Video Panel and send them to the main application.

Video Panel The sole purpose of this class is to play videos using the QuickTime for Java API and send video ending events to the Display Panel.  This will be contained within the Display Panel, so that when it loads, it will take over the window already created.  

Index Manager and TRIE: The purpose of the index manager is to search for keyword matches as the user types them in using the TRIE structure and return the closest possible matches. The TRIE, in turn, must get the topics list from the Database Manager and construct itself.  As the user types each character of input, the TRIE will retrieve all possible combinations of the input that contain the string, and return them instantaneously.

History Panel: The History Panel must render the GUI for history, internally keep track of the history stack, and handle all user events. It will be requested by the main application to add a topic to the history. In addition, once the user requests an item from history, the Panel must inform the main application about this selection. Lastly, at startup, the History Panel must retrive the history list from the Database manager and must return updated history information to the manager upon termination.

Bookmark Panel: Like the History Panel, the Bookmark Panel must retrieve bookmark information from the Database Manager, render the GUI, handle all user events like adding a bookmark, requesting a bookmarked video, and editing bookmarks as well as sending an updated bookmarks list to the Database Manager at termination time.

Operational Scenarios

We envision a secondary school student in the mathematics department who desires to use the TI Interactive! software to complete a project about differential equations.   Having never used the TI Interactive! software, but being somewhat computer literate, the student is able to use the beginner help tutorial to place an equation on the screen to be solved. The help tutorial will contain a short video clip of the program screen shots to visually instruct the student on the steps toward entering the equation and displaying the solution. The student will be able to view videos on related topics in order to complete the assignment.

A second operational scenario involves a high-school teacher who desires to demonstrate algebraic properties using the TI Interactive! software.  In order to allow all students (all of whom have access to the software in a school computer lab) to equally participate and to eliminate technological discrepancies, the teacher could decide to walk the class through the entire set of beginning tutorial videos.  This will allow all the students in the class to participate in any basic example the teacher would show, as well as give the teacher the ability to train the students in the more detailed aspects of the software as needed.

Preliminary Project Schedule

Completion of Requirements DocumentFebruary 27, 2001
Completion of Implementation DocumentMarch 5, 2001
Completion of Beta VersionMarch 23, 2001
Completion of DevelopmentApril 10, 2001
Testing of ProductMay 5, 2001
Delivery to ClientMay 10, 2001


The Java Language
Apple QuickTime
XML (eXtensible Markup Language)
Apache XML Parsing