Individual functionality is the most obvious group and is usually the natural starting
point of requirements elicitation. The requirements analyst is asking the users and cus-
tomers what their problems are in terms of what functions need to be performed. For
example, a functionality need for a payroll area may be initially stated as “there is a need
to provide direct deposit payroll to the financial institution of the user’s choice.” In this
case, direct deposit is a functionality requirement.
Functionality by itself is not enough; it must be explained in the context of the busi-
ness flow or in the context of how the users’ perform their tasks. For example, a function-
ality such as online purchasing needs to be described in the context of specific goods
such as airline tickets. This same online purchasing functionality placed in the business
flow context of purchasing corporate equities may require a slightly different set of steps.
Thus business flow is an important category of information that must be gathered at the
detail-requirements information level. This is similar to the notion
of developing use cases in object-oriented methodology where
the functionalities are performed by actors within some business
context called a scenario; see Schneider and Winters (1998) for
more details on use cases.
Another category of requirements that must be collected at the detail level is the
information pertaining to data and data formats. At the minimum, there must be some
discussion of the application’s input and output data. What is the information that
needs to be entered into the system and for what purpose? If the entered data follow
some business process flow, then that flow should also be described. If there are data
that serve as input for some processing, those must also be described. For example, in
payroll processing, the federal and state tax rules may be bought in a file form. These
tax rules, as a purchased input file, still need to be described. The output data provide
additional information and come in several forms. One is the result of a query. The for-
mat of the query response must be defined. The other is a report. Each report format
needs to be clearly defined. In addition to these application data, there is the applica-
tion system’s information such as error messages or warning messages. Included in
this last category of application system’s information is the help text. There should be
a statement of how much help text is needed. This description of data touches upon
the next category, user interfaces.
How the input and output of a software system is presented falls in the domain of user
interfaces. Today’s software interfaces are mostly graphical in nature. Still, different users
have their unique preferences. For example, both radio button and drop-down window
may be used for logical “exclusive-or” types of choices, and the users’ personal or busi-
ness preferences may dictate one versus the other. Thus the requirements statements
must be clear on the icons used for the interfaces. The flow of the software application
is also a user interface, and it usually mimics that of the business flow. However, there
are times the software needs to purposely differ from the existing business flow because
the software system is meant to improve the current business process. The user interface
requirements, both the look and the flow, are often captured by prototyping the inter-
face. The users are then asked to review and comment on the prototyped interfaces.
Besides interfaces with users, there are other interfaces such as those with an existing
application or to a network system. These interfaces must be clearly identified. In many
situations, the existing system interface already has many clients tied to it. In such cases,
Use case A sequence of actions that a
system should perform within the business
flow context of the user or the actor.
6.2 Requirements Elicitation and Gathering
111
91998_CH06_Tsui.indd 111 1/10/13 6:31:24 AM