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 gas system shall be able to purchase a user-specified amount of fuel via credit card.
- The cash-dispensing function in a bank ATM.
The system must validate the user’s identity.
The user must be able to withdraw money from their account;
The system must physically output the amount withdrawn.
- In an Internet banking system, a facility that allows customers to transfer funds from one account held with the bank to another account with the same bank.
The user must be able to transfer funds from one account to another
The system validate that the user has the right to withdraw from the target account
The user must verify their target account before transfer
The system should have a delay and verbose logging to allow for fraud prevention and recovery
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.
They might make a heirarchical or strictly formatted document. The non-functionals which map cleanly to functionals could be on column 1, with their related functionals on column 2. Those with no clean mapping would be displayed in column 1 with no mirrored functionals (but these should be infrequent / nonexistent).
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.
- Authentication of user with card & pin
- Viewing account details
- Withdrawals (up to daily withdraw cap or account total, whichever is smaller) (only in supported amounts) (only while ATM has requested amount in inventory)
- Deposit of cash (simple validation)
- Deposit of check (complex validation & delay)
- Transfer of funds between user-held accounts
- Receipts printed (option for email, none, as well)
- Secure log-out & auto-log-out-time-out
- Live recording system and tamper protection
- Secure Connection with Bank Network