Introduction to Requirements
The purpose of the Requirements discipline is:
- To establish and maintain agreement with the customers and other stakeholders
on what the system should do.
- To provide system developers with a better understanding of the system requirements.
- To define the boundaries of (delimit) the system.
- To provide a basis for planning the technical contents of iterations.
- To provide a basis for estimating cost and time to develop the system.
- To define a user-interface for the system, focusing on the needs and goals
of the users.
To achieve these goals, it is important, first of all, to understand the definition
and scope of the problem which we are trying to solve with this system.
The Business
Rules, Business Use-Case Model
and Business Analysis Model developed
during Business Modeling will serve as valuable
input to this effort. Stakeholders
are identified and Stakeholder Requests
are elicited, gathered and analyzed.
A Vision document, a use-case
model, use cases and Supplementary
Specification are developed to fully describe the system - what
the system will do - in an effort that views all stakeholders,
including customers and potential users, as important sources of information
(in addition to system requirements).
Stakeholder Requests are both actively
elicited and gathered from existing sources to get a "wish list"
of what different stakeholders of the project (customers, users, product champions)
expect or desire the system to include, together with information on how each
request has been considered by the project.
The Vision document provides a complete
vision for the software system under development and supports the contract
between the funding authority and the development organization.
Every project needs a source for capturing the expectations among stakeholders.
The vision document is written from the customers' perspective, focusing
on the essential features of the system and acceptable levels of quality.
The Vision should include a description of what
features will be included as well as those considered but not included.
It should also specify operational capacities (volumes, response times,
accuracies), user profiles (who will be using the system), and inter-operational
interfaces with entities outside the system boundary, where applicable. The
Vision document provides the contractual basis for the requirements visible
to the stakeholders.
The use-case model should serve as
a communication medium and can serve as a contract between the customer, the
users, and the system developers on the functionality of the system, which
allows:
- Customers and users to validate that the system will become what they
expected.
- System developers to build what is expected.
The use-case model consists of use cases
and actors. Each use case in the model
is described in detail, showing step-by-step how the system interacts with the
actors, and what the system does in the use case. Use cases function as a
unifying thread throughout the software lifecycle; the same use-case model is
used in system analysis, design, implementation,
and testing.
The Supplementary Specifications
are an important complement to the use-case
model, because together they capture all software
requirements (functional and nonfunctional) that need to be described to
serve as a complete software requirements
specification.
A complete definition of the software requirements
described in the use cases and Supplementary
Specifications may be packaged together to define a Software
Requirements Specification (SRS) for a particular
"feature" or other subsystem grouping.
A Requirements Management Plan specifies
the information and control mechanisms which will be collected and used for
measuring, reporting, and controlling changes to the product requirements.
Complementary to the above mentioned artifacts, the following artifacts are
also developed:
The Glossary is important because
it defines a common terminology which is used consistently across the project
or organization.
The Storyboards may be generated
during requirements elicitation, which are done in parallel with other requirements
activities. They provide important feedback mechanisms in later iterations
for discovering unknown or unclear requirements.
The Requirements discipline is related to other process disciplines.