CS371 Final Project
Short Specification and Notes

The purposes of the project are:


Deliverables.

The following objects should be presented at the end of the Final Project:


It is supposed that ALL pertinent project documentation will be maintained in the team's public directory and the documentation will be held in the form of HTML files available for browsing by reviewers from other teams and for the course instructor.

Terms.

Final project starts at March 2, 2000 and absolute deadline is May 12, 2000. The delivered system will be assessed by executing it on tests. The final grade for the project will be composed from the grades obtained for presentations at walkthrough sessions, for reviewing activities, and for quality of the project documentation and code. It is expected that the team will contain 5-6 people, and each team member will make a presentation at least once, at least once will be a reviewer for another team presentation, will be responsible for at least one document mentioned above, and will contribute at least one module and/or test case set for the project.
The max total individual grade for the project is 100 points which is obtained from the following grades:

By joining a team you undertake a certain responsibility with respect to other team members since at least 20 points of the grade depend on the result of team work (well, this reflects also the real life situation when the outcome of a project depends to a great degree on the ability to communicate and cooperate).

Short description of the problem.

The pseudocode may be an essential part of a software system design. For a large system the size of the pseudocode text may be quite significant and although computer can not help too much in the design of the pseudocode itself, it can be helpful for maintaining pseudocode files and performing different kinds of auxiliary processing, making it easier for humans to maintain and access the design.

It is expected that the system will be able to support at least the following functions:


Input.

The main pseudocode data base contains plain text files with the pseudocode texts created using common text editors and a number of auxiliary files generated by the system to maintain the data base. There should be some syntactic requirements regarding the form of pseudocode input to the system: some conventions regarding reserved keywords (IF-THEN-ELSE-FI, WHILE-DO-OD, etc.), delimiters (';' for the sequence), and comments (e.g. to maintain the version #, the date, etc.).
The system should provide a reasonable error diagnostics for input pseudocode files.
There should be some simple user interface to perform commands, such as to generate pretty-printed version of a pseudocode file, generate HTML files, etc.

Output.

The program should generate a set of files in HTML format that could be browsed by any WWW browser, such as NETSCAPE or Internet Explorer (laboratory 8 will be devoted to HTML language.)
The generated HTML file when browsed should provide different views on the data base, using indentation, fonts and blank lines to stress the structure of the descriptions. Clicking on the corresponding object should bring on the screen the definition of the object.
These views should include at least the following:

The work on the Final project will be accompanied by Walkthrough Sessions in the class, in particular, Inspections of the Requirements Document, the Design Document, the source texts of selected modules, and the test cases will be maintained during the rest of this semester.

Recommended distribution of responsibilities between team members:

It is expected that the team will contain 5-6 members. In order to distribute the load within team it is recommended to assign team members specific tasks in the Project Documents design, presentations at the inspection sessions, and in the design, coding and testing of separate modules.

One team member is responsible for some document in whole, but all members participate in inspection sessions, provide inputs for the document and help in proofreading. Each team member should either be a leader in some Document design, or to be a speaker at the inspection session. Each member of the team participates in the programming effort and designs some part (module) of the system, e.g. module of primary input and syntax checking, internal data base management, HTML output module, main module etc.

Appendix.

All documents should contain:

Requirements Document

Topics to include:

Software Design Document

Topics to include:

User Manual

This document mainly follows descriptions of input, output and commands presented in previous documents, describes how to use the system, what are the requirements to the environment, etc., from the user's point of view. Contains detailed description of the main example and other examples (if necessary) to help user to start with the system.

Testing Plan and Test Cases

Contains detailed description of test groups, presenting the purpose of each test set (e.g. to test correct inputs, to test syntactically incorrect inputs, to test different commands and command parameters, to test different types of output files, etc.), and list of testing factors to be tested by this test set. Includes test cases to test erroneous data and commands. Includes description of testing schedule.

Program Listings

Program texts should be arranged according to the good readability rules (comments, layout, mnemonics). Program Listings are attached as a supplement to the Design Document.