- Requirements for a software system set out what the system should do and define constraints
on its operation and implementation.
- Functional requirements are statements of the services that the system must provide or are
descriptions of how some computations must be carried out.
- Non-functional requirements often constrain the system being developed and the development
process being used. These might be product requirements, organizational requirements, or
external requirements. They often relate to the emergent properties of the system and therefore apply to the system as a whole.
- The software requirements document is an agreed statement of the system requirements. It
should be organized so that both system customers and software developers can use it.
- The requirements engineering process includes a feasibility study, requirements elicitation and
analysis, requirements specification, requirements validation, and requirements management.
- Requirements elicitation and analysis is an iterative process that can be represented as a spiral
of activities—requirements discovery, requirements classification and organization,
requirements negotiation, and requirements documentation.
- Requirements validation is the process of checking the requirements for validity, consistency,
completeness, realism, and verifiability.
- Business, organizational, and technical changes inevitably lead to changes to the requirements
for a software system. Requirements management is the process of managing and controlling
these changes.
Exercises
4.1. Identify and briefly describe four types of requirement that may be defined for a computer based system.
4.2. Discover ambiguities or omissions in the following statement of requirements for part of a
ticket-issuing system:
An automated ticket-issuing system sells rail tickets. Users select their destination and
input a credit card and a personal identification number. The rail ticket is issued and their
credit card account charged. When the user presses the start button, a menu display of
potential destinations is activated, along with a message to the user to select a destination.
Once a destination has been selected, users are requested to input their credit card. Its
validity is checked and the user is then requested to input a personal identifier. When the
credit transaction has been validated, the ticket is issued.
**4.3. Rewrite the above description using the structured approach described in this chapter.
Resolve the identified ambiguities in an appropriate way.
4.4. Write a set of non-functional requirements for the ticket-issuing system, setting out its
expected reliability and response time.
4.5. Using the technique suggested here, where natural language descriptions are presented in
a standard format, write plausible user requirements for the following functions:
- An unattended petrol (gas) pump system that includes a credit card reader. The
customer swipes the card through the reader then specifies the amount of fuel required.
The fuel is delivered and the customer’s account debited.
- The cash-dispensing function in a bank ATM.
- The spelling-check and correcting function in a word processor.
4.6. Suggest how an engineer responsible for drawing up a system requirements specification
might keep track of the relationships between functional and non-functional requirements.
4.7. Using your knowledge of how an ATM is used, develop a set of use cases that could serve
as a basis for understanding the requirements for an ATM system.