4. Developer Overview

As outlined in the UI Overview, the Test Tool system is comprised of three separate application programs. The teacher version of the program allows users to create questions and tests, deploy tests, grade tests, and edit student information. The grader version of the program allows users to grade tests and edit student information. The student version of the program allows users to take tests.

In the teacher version of the application, the major object in the user program is the test generator. It's implementation will need to provide efficient access for a wide range of operations, including fields to specify time, difficulty, number of questions, and course. Hence, it will need to use a moderately sophisticated data structure that supports these various forms of access. For example, it could use a SQL database to easily store and retrieve questions by category.

The second major feature of the test tool program, test taking, needs to be extremely straightforward. It must be clear to the user how many questions a test has, how many questions have been answered, and how much time is left. Users need to be allowed to change their answers to questions up until they have submitted the test or have run out of time.

In administrative application, the major objects are in the main database is test questions. The projected size of these databases is probably not big enough to require implementation using a database management system. Rather, some form of efficiently searchable collection should do. The reason this is the case is that there are requirements for sophisticated querying against the databases, and query support is typically the most important reason to employ database management technology.

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.




Prev: non-functional | Next: spec | Up: index | Top: index