Complete the following (solutions):

  1. Write a set of user-level requirements for an ATM where the user can get cash from their account.

  2. What is wrong with these ATM requirements?

    Omission: Check the requested withdraw amount against the account balance (and any applicable minimums).

    1. Upon insertion of the user’s ATM card, the ATM shall verify the user via a PIN.

      What if the PIN is incorrect? multiple tries, appropriate prompts, return or keep the ATM card, report the problem, take a picture, …

    2. The ATM shall get the amount of the requested withdraw from the user.

      What denominations are available? What is the withdraw limit? Daily limit or per withdraw limit?

    3. The ATM shall dispense the cash to the user.

      What happens if the user fails to take the case from the machine? Leave it there or return it back into the machine?

    4. The ATM provides a receipt for the transaction.

      Use “shall.”

      Give option for a receipt? What if the user fails to take the receipt? Maybe hold the card until the user takes the cash and the receipt?

    5. The ATM shall return the ATM card to the user.

      What if the user fails to take the card? What if the card is known to be stolen?

    6. The ATM shall retain cards that have been reported to be stolen or missing.

      Contradiction with the prior requirement.

  3. Classify each of the following as either a functional requirement or a non-functional requirement:

    1. The system shall be fully HIPAA (Health Insurance Portability and Accountability Act) compliant.

      non-functional

    2. The patient shall be able to enter their name, address, phone number, and email address into the system.

      functional

    3. All direct inputs by users shall be handled using protection against SQL injection attacks.

      non-functional

    4. The doctor shall be able to retrieve patient x-rays based upon the area of the body imaged.

      functional

    5. All user interactions shall support dialogs in the user’s choice of English, Spanish, French, German, or Mandarin Chinese.

      functional

  4. Write a set of system-level functional and non-functional requirements for the ATM where users can get cash from their account.