HW6: Chapter 4

07 Sep 2016

4.5 Gas pump

ATM withdrawal

Online bank transfer

4.6

Functional requirements, what the system does, and nonfunctional requirements, how the system is affected by external contraints and activities, are distinct but very much related. It is important to keep track of functional and nonfunctional requirements separately but also consider how they affect one another, so an engineer should follow a process that ensures their individual attributes and connections are thoroughly considered.

One practical way to track these complex interactions between functional and nonfunctional requirements might be to draw up a diagram that clearly distinguishes between the two categories, perhaps functional requirements listed on the left side and nonfunctional on the right, and then draw lines connecting those connections that affect one another. So you would end up with a map of interactions. Then, the engineer might index the list in such a way that a change in a particular functional requirement would create an alert that all of its connected nonfunctional requirements should be revisited. Using this sort of connection map would allow me to see these categories as distinct but also track all of their interations.

4.7

Case 1 Bank customer with ATM card attempts to withdraw funds from account with sufficient funds. ATM card is inserted, PIN is entered correctly, and funds are withdrawn.

Case 2 Bank customer with ATM card attempts to withdraw funds from account without sufficient funds. ATM card is inserted, PIN is entered correctly, and customer is rcommended to go get a job.

Case 3 Bank customer with ATM card attempts to withdraw funds from account but forgets PIN. Customer is told to go away.

Case 4 Bank customer with ATM card attempts to withdraw $200, but this is Greece and the banks have all shut down withdrawals. Too bad, sucker!

Case 5 Interloper attaches a keypad and/or card reader of his own to the ATM. A customer then comes to withdraw funds, but thankfully the ATM has already performed a routine security check, noticed the tampering, and shut itself down with a friendly but intentionally vague error message to try again later.