Graphical Requirements Exploration

J. Michael Moore & Frank M. Shipman III

Overview

Much work has focused on software design approaches that include users in the software development process. These approaches vary from surveys and questionnaires to elicit response from a population of potential users to participatory design processes that include representative users as part of the design/development team.

Requirements define what a software system should do and be. The early phases of requirements exploration are an ideal time to get input from a larger segment of users. During requirements exploration, requirements information is gathered for analysis prior to the formation of any formal requirements specifications. Gathered information can be integrated into the development process much more cheaply here than at later stages.

Questionnaires and surveys have a low rate of return and often elicit limited details when they are returned. On the other hand, participatory design generates rich feedback but the number of users is typically limited to a few representative users due to limitations in available time and costs incurred. I am investigating an approach that lies between these extremes.

The approach presented here explores combining visual and textual information synergistically to facilitate communication from users to those who will develop the formal requirements. This also allows broader user audiences to contribute to the software development process. The approach is not meant to generate the rich information provided via participatory design but it can be used to validate and enhance feedback from representative users in such a process.

This approach allows users to communicate requirements information through the construction of graphical user interface mockups augmented with textual argumentation, that is, descriptions and explanations. Figure 1 shows an overview of the entire process. Using a tool that facilitates this activity, users create a set of interface mockups built from windows and widgets that acts as communication to software developers along with attached argumentation (Figure 2). Because most people would not want to sort through the large amount of data created in this process, I am developing an analysis tool that assists requirements engineers as they analyze the data collected from users. The information garnered can be used to support further requirements engineering activities and software development.

Graphic Representation of approach. Multiple end-users provide information information through GUI construction and textual argumentation to a software requirements analyst who uses that information along with a tool to generate requirements and requirements information.
Figure 1: My approach

Interface construction tool showing user designs and an example of user annotation
Figure 2: Interface construction tool showing user designs and an example of user annotation