When users are working on a windowing system they engage in three phases of interaction: Task environment setup, switching and task executions (Figure ). Since users are typically dealing with a number of tasks simultaneously, they can be in more than one phase for different tasks and there are quite likely a lot of switchings among tasks.
Task environment setup is the act of accessing pieces of information from an information source, opening windows for them, and arranging them on the screen suitably for the task. As an example, in order to setup their task environment, programmers examine their program directory structure to find the source code files related to their current task, open source code files in multiple windows and arrange them on the screen.
Since users are typically switching among a number of tasks quite frequently during the day, switching performance is also measured. Switching is changing the screen contents to an existing task environment setup to meet the information demands. For example, while the programmer is editing piece of source code a look at the specifications may be needed to check conformance.
Task executions are actions performed on information contained in open windows in a task environment layout. An example is to search through a number of source code files to find the cause for a certain bug in a program. There are many types of task executions. For the purpose of this experiment, I identified four basic task execution types: Sequential scan, comparison, determine context + scan, and recall context + scan (Figure ). Although they are not claimed to cover all the task executions users do in a windowing system, it is a very basic set of executions.
Sequential scan is looking sequentially through a number of information pieces to find a specific information, such as a function call in a program source code. Comparison is examining a number of information pieces based on one or more factors, such as examining a number of program source codes to determine the faulty one. It is different from sequential scan because programmers tend to glance back and forth among many source codes multiple times till they comprehend the distinctions well enough to make a conclusion. Determine context + scan is a filtering based on discriminating factor of information pieces to establish a context for further scanning. For example, once the bug is thought to be in a certain source code file, then scanning is carried out only for functions in that file. In recall context + scan, the context is not determined, but rather recalled based on previous interaction with the same pieces of information.
Each subject is tested on the information store of a hypothetical student who is enrolled in two courses. Course materials, partners, homeworks, correspondence with the professor, teaching assistants and classmates are organized in a hierarchical structure for each course. As a part-time worker in a computer software company, this student is also responsible for two projects. Project materials such as the program source code, documents, reports and correspondence with the partners and the boss are organized in a hierarchical structure. This student also has a number of other roles like the organization of a birthday party and some duties at home (Figure ).
User performance is measured on task environment setup, task environment switching and task execution on three degrees of task environment complexities: low, medium and high, represented by 2, 6 and 12 windows, respectively. In the context of the student role, the task environments have been chosen as follows: The low complexity task environment includes two documents of a course project, the medium complexity task environment includes six e-mail messages from the boss at the job, and the high complexity task environment includes twelve pieces of project programming code at the job.
Each subject performs task environment setup, switching and task executions at all of the three task environment complexities. Subjects are given a six session schedule (Table ), where the order of task environment complexities varies for each subject. Two task executions are performed at each session, a total of 4 for each task complexity, covering all the task execution types. According to the schedule each subject makes 3 task environment setups, covering all three different task environment complexities, 3 task environment switchings, and 12 task executions total. The same schedule is used for both of the interfaces, but the task set is changed. According to Table , Subject 1 starts with the low complexity task environment setup (i.e. (L) ). After performing two task executions at low complexity, medium complexity task environment is setup. After the two task executions at medium complexity the subject is asked to switch from the medium to the low complexity task and perform the remaining two task executions at the low complexity task environment. The subject then continues on setting up the high complexity task and so on. Task sets used in the experiment can be found in Appendix .