GUIDe Ė Use cases
In order to create a system that works well in the real-life situations that the users encounter daily, we must first find out what these use situations are. Many GUI designers use these real-life situations as test cases, but in addition to testing, we base the whole user interface design on them; we derive the user interface design, and the functionality and data requirements of the system directly from the use situations.
Finding out use situations
We find out use situations and usersí work flows typically with field studies, i.e. user observations and contextual interviews.
- User observation is an effective method to see essential use situations, but a prerequisite for observations is that interesting events and tasks do frequently come the userís way.
- If situations that fall to the use of the system occur infrequently, or if following through a whole chain of events takes a very long time, such as months or years, it is better to find out examples of use by interviewing users. We prefer contextual interviews that are conducted where the use takes place, because this way we can collect concrete examples instead of generalized user experiences and expectations.
- If it is not possible to get to the users, or if the project is about designing a whole new concept, we may create our own definitions of use cases on the basis of knowledge collected from the customers in order to get started.
We do not describe use situations as UML use cases, for example, because they are not a sufficient input for designing a good user interface. UML use cases typically describe fairly low-level operations instead of setting up the situation and the goals behind the userís actions. In addition, UML use cases often fix the interaction between the user and the system, even though at this stage the use cases are only supposed to act as input to designing the user interface, which is when the interaction is actually designed. Unlike typical UML use case descriptions, we keep our use cases that are based on real-life use situations separate from the system to be designed. This way we can make the work flows more straightforward and design different system boundaries and interactions below the use cases.
From use situations to goal-based use cases
In order to distil the set of dozens or hundreds of slightly different use situations for designing the use interface, we analyze the situations into goal-based use cases. The set of dozens of different use situations seems to be reducible to about 3-6 different user case categories, if we are able to analyze the cases correctly according to the userís decision-making.
Categorizing use cases is at the moment a central focus of our research. We are in the process of defining design patterns that are based on the userís decision-making process. They enable us to organize very different use situations according to the ready-made categories. The core of a category is the organization of the decision-making data that is required in the use situation. Different organizations seem to recur in different applications with certain conformances.
So far, we have put together a seminar presentation [pdf 1.5 MB in Finnish] about the categories of a few example applications. The presentation material shows how the use cases of five different systems, namely a movie ticketing system, appointment reservations system for a hairdresser's, a simple personnel search system and reservation systems for hotels and lecture rooms, are divided into different categories.
The benefit of use case categories that are based on the userís decision-making is that a huge number of different user situations can be organized and grouped into a small number of categories (about 2-6 categories per system), which cover the critical decision-making points in user interface design of the whole system. Already before starting the specification phase it is fast to locate the use case candidates that are relevant in designing the new system just by going through the ready-made categories. In addition, the categories provide design solutions to the most difficult parts of the user interface: organizing the data that is critical to making decisions.