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.