4. Developer Overview

4.1. Introduction

The CSTutor Application is both a tool for instructors to create lessons/tutorials for students and also a tool for students to view those lessons. The system shall include two separate launch points intended for the specific use of one of these main types of usage (Authoring and Viewing - where the viewing application is simply a strict subset of the Authoring application). Additional features include a Smart FAQ Board, Chat Room, and Remote Assistance. The objective of this project is to design a tool both easy to use and nice to look at to the degree that the application is non-threatening to the students and instructors who will be using it.

In terms of what should be implemented first (in version 1.0), the Authoring and viewing aspects of a Lesson have the highest priority. The other features such as the Smart FAQ Board, the Chat room system and the Remote Assistance feature are all somewhat less important and may be delayed if necessary (also see the next section on possible areas of difficulty for more information).

4.2. Potential Areas of Difficulty

There are a couple of areas of the CSTutor tool that may be especially difficult to implement. These areas are the Authoring and Chat Room systems. There are many chat systems that have already been implemented and are readily available on the internet such as ICQ, AOL and MSN Messenger services and even IRC chat rooms. These are all applications in and of themselves and have a certain level of complexity which may prevent integrating a Chat System into version 1.0 of the CSTutor tool due to time constraints. It is acceptable to delay the implementation of the Chat Room system until version 2.0.

The Authoring system is probably what the initial development team will be spending most of their time on as it is the core of the CSTutor application. The whole idea is that Lessons can be created so that students may view them and once the Authoring system is fully functional, viewing a created lesson should be fairly straightforward. Specific areas of concern are details of the Text tool (which is fairly complex due to font style options), the Select Tool (which also includes moving and resizing node elements), and the Code Segment tool (which will need to be able to compile and run a piece of java code and also capture all standard output and report it to the user in a nice fashion). The remainder of the authoring tools should be fairly straightforward and relatively simple once the foundation of the authoring system is complete ('foundation' meaning the engine that will handle the placement and visual representation of each node element).

Other features such as Lesson viewing, the FAQ Board and Remote assistance will probably be simpler to implement.

4.3. Objects and Operations Summary

The major parent object in the CSTutor application is the LessonDB which contains many other important objects including the Lesson, Node and NodeItem objects. These three objects comprise the majority of both the Authoring and Viewer applications components.

Abstractly, a Lesson is a collection of Nodes and a Node is a collection of NodeItems. A NodeItem can be one of many types of things including a line, a block of text, an image or even a code segment. Each type of NodeItem has it's own behavior in a node (what the user sees) and it is through adding multiple NodeItems to a Node that lessons are created.

In addition to the collections they contain, both Lessons and Nodes have a set of properties that go along with them. For example, both have descriptions that are used as tooltips when moused over in either the Lesson Explorer or the RoadMap. Also, lessons have the option of being viewed in either Fixed or Free Mode.

Quiz nodes are special types of Nodes that inherit all the functionality of a normal node and add both a collection of questions and a scoring table.

Other major components of the CSTutor application include the various views of data since a major feature is the ability to view created lessons. The three main views are the NodeView (which displays a nodes content) the RoadMap (which displays a Lessons content and it's organizational layout) and the Lesson Explorer (which displays a list of available lessons in a standard tree format).

In terms of operations, the most important are those that deal with both the creation and viewing of lessons. In particular, Adding and Removing Elements from Nodes, Adding and Removing Nodes from Lessons, Displaying both Lesson and Node content in the form of Roadmaps and NodeViews, and finally navigation through a node such as NextNode, PreviousNode, etc.

Other major operations that are less important are those that deal with the administration of the CSTutor tool such as Administrator Login and Logout, Adding and Removing Hosts, and changing the Administrator Password.


This concludes the Developer Overview.






Prev: non functional | Next: formal specification | Up: [none] | Top: index