As outlined in the UI Overview, the Test Tool system is comprised of three separate application programs. The First of these applications is the instructor user. The application program allows the instructor user to modify a test bank, by adding, and editing old questions. It also allows the instructor user to generate a test automatically, as well as edit tests. The application also allows the user to view the test from the students perspective, as well as see grades of students.
In the regular user application, the major object in the user program is the Test. It's implementation will need to provide efficient access for a wide range of operations mainly its generation.
Aside for the Test, the other objects in the instructor user that will be complex is the Question Bank. This will require a database and ways to access it.
In the Student Application the main object that will be used will be the same as the instructor application, the test object.
The distributed processing of the networked Test Tool environment will
require specific development expertise. In particular, the developers need
knowledge of client/server design and implementation. Functionality to support
client/server architectures is available in many modern libraries. It will
make sense for the developers to choose an implementation language in which
client/server support is available, dependable, and well documented.