Requirements Spec Revisited Dan Fleck
18 Slides484.50 KB
Requirements Spec Revisited Dan Fleck
Responsibility - if you don’t do well in class, who’s problem is it?
Who is leading this class? Responsibility - if you don’t do well in class, who’s problem is it? Never 0% it’s ALWAYS the leader’s fault! 100% # of student’s who do well Teacher’s Fault 95% Student’s Fault 100%
SRS Section 3: Functional Requirements 100% # of student’s who do well Teacher’s Fault 95% 100% Student’s Fault Oops!
Functional Requirements: Take 2 A functional requirement is something the system must do. A functional requirement is testable A general rule is a functional requirement is a “shall statement” – The system shall require users to login to access all functions.
Functional Requirements These can be high level or low level (generally we’re at high level in this class) – High level: The system shall charge users credit cards for purchases – Low level: The system shall validate all passwords contain upper and lowercase characters and one number
Functional Requirements Are testable Are things the system you are developing must do Should be one thing (not multiple). (Because a requirement is a single entity it passes or fails as one piece) Should have a source (who/what decided this was required)
Functional Requirements Should not be a design choice (this is hard to get right). – The system shall store user information including name, DOB, address and SSN. -- Good! – The system shall store user information in an Oracle database including name, DOB, address, SSN. -- bad Is Oracle really REQUIRED? Hard to say maybe, but probably not. This is a decision you would make at implementation design time. Question: Does the customer care that you use Oracle? MySQL? Etc. Maybe someone found some other MUCH BETTER approach storing the data on moon rocks. Again: This is hard to avoid and I’m not to concerned with it on the SRS, but I want you to be very aware of when you are making design choices instead of required features.
Functional Requirements Must have a unique ID. – When testing you need to reference REQ-1 or REQ-287. Multiple things cannot be labeled REQ-1. – Later our test cases will say: This test case validates requirements REQ-1, REQ-27, and REQ-56.
Functional Requirements Bad requirements examples: – The system shall validate and accept credit cards and cashier’s checks. High priority. – The system shall process all mouse clicks very fast to ensure user’s do not have to wait. – The user must have Adobe Acrobat installed.
Functional Requirements Bad requirements examples: – The system shall validate and accept credit cards and cashier’s checks. High priority. Problem: two requirements instead of one. If the credit card processing works, but the cashier’s check validation does not is this requirement pass or fail? Has to be fail, but that is misleading. Maybe only credit cards are high priority and cashier’s checks are low priority. – The system shall process all mouse clicks very fast to ensure user’s do not have to wait. Problem: This is not testable. Quantify how fast is acceptable? – The user must have Adobe Acrobat installed. Problem: This is not something our system must do. It could be in the constraints/assumptions or maybe operating environment sections, but is not a functional requirement of our system
What I want in the SRS A reference to the Use Case this requirement is from (for a very small number they may not have a use case. But most will). The source of the use case. Make it up - end users, marketing, sys admins, internal think about who may care most about this use-case) The event that starts the use case (if it’s in the use/case that is fine) Priority of the requirement A unique number for the more detailed requirement A short description of the more detailed requirement
Template 3.1 3.1 Withdraw Withdraw money money from from ATM ATM –– 3.1.1. 3.1.1. Description Description and and priority priority –– Customer Customer is is withdrawing withdrawing money money from from the the ATM. ATM. The The system system issues issues the the money money and and debits their account. This feature is high priority. debits their account. This feature is high priority. –– 3.1.2. 3.1.2. Stimulus/Response Stimulus/Response Sequence Sequence [[Usually [[Usually similar similar or or the the same same as as basic basic flow flow from from the the Use Use Case]] Case]] 1. 1. Customer Customer chooses chooses the the checking checking option option on on the the ATM ATM 2. 2. Customer Customer chooses chooses the the amount amount of of money money needed needed 3. 3. Customer Customer confirms confirms the the choice choice 4. 4. System System validates validates the the amount amount 5. 5. System System debits debits the the customer’s customer’s account account 6. 6. System System issues issues money money to to the the user user –– 3.1.3. 3.1.3. Functional Functional Requirements Requirements –– See See Section Section 7, 7, System System Requirements Requirements Chart Chart –– 3.1.4. 3.1.4. Derived Derived from from Use Use Case Case U9. U9.
Use Case Use Use case case name name and and identifier: identifier: U3 U3 -- Withdraw Withdraw money money from from ATM ATM Objective: Objective: The The customer customer is is withdrawing withdrawing money money from from the the ATM ATM and and the the system system will will debit debit the the customer’s customer’s account. account. Priority: Priority: High High Source: Source: Customer Customer Actors: Actors: Customer Customer I prefer outline Flow Flow of of Events Events numbering, 1. 1. Basic Basic Flow Flow just can’t do in PPT. 1. 1. Customer Customer chooses chooses the the checking checking option option on on the the ATM ATM Make yours –– Customer Customer chooses chooses the the amount amount of of money money needed needed 2.1, 2.2, etc –– Customer Customer confirms confirms the the choice choice –– System System validates validates the the amount amount –– System System debits debits the the customer’s customer’s account account –– System System issues issues money money to to the the user user –– Alternative Alternative Flow Flow 1: 1: At At step step 44 amount amount is is not not aa multiple multiple of of 20 20 1. 1. An An error error message message is is displayed displayed telling telling customer customer they they must must use use multiples multiples of of 20 20 2. 2. Return Return to to step step 1.2. 1.2. 1. 1. Alternative Alternative Flow Flow 2: 2: At At any any step step user user presses presses “cancel”. “cancel”. –– System System returns returns to to the the main main menu menu Exception Exception Flows: Flows: –– Database Database is is locked locked due due to to backup backup in in progress. progress. See See U5 U5 for for details. details. Includes Includes (other (other use use case case IDs): IDs): U5 U5 -- Exception Exception occurs occurs Special Requirements: None Special Requirements: None Preconditions: Preconditions: User User is is logged logged in. in. Post Post conditions: conditions: Money Money has has been been returned returned to to the the user user and and their their account account balance balance has has been been updated. updated. Notes/Issues Notes/Issues -- None None
Requirements derived from this Use-Case Derived Derived Functional Requirements: –– Req Req U.3.1 U.3.1 The The system system shall provide provide an option to withdraw money –– Req Req U.3.2 U.3.2 The The system system shall query query the user user for the amount of money money –– Req Req U.3.3 U.3.3 The The system system shall query query the user user for the account type –– Req Req U3.4 U3.4 The The system system shall shall validate validate the the amount amount is is available available in in the the user’s user’s account account before before releasing releasing funds funds to to the the user user –– Req Req U.3.5 U.3.5 The The system system shall validate validate the amount is a a multiple multiple of 20. 20. –– Req Req U.3.6 U.3.6 The The system system shall debit debit the user’s account upon withdrawal withdrawal of of funds funds –– Req Req U.3.7 U.3.7 The The system system shall be be able to issue a specific amount of of money money to to the the user.
Requirements Chart ID Priority Type Source Contained in Use Case(s) Description F Functional NF NonFunctional 3 High F Customer John Smith U3, U8 The system shall provide an option to withdraw money 3.1 Medium F Customer John Smith U3, U8, U10 The system shall query the user for the amount of money 1 High F Internal Team U1 The system shall require user login before any operation 1.1 Medium F Internal Team U1 The system shall lock users out who have failed the maximum number of password attempts
Use Cases When to use includes: – If the use-case has a step that you say “see Login Use Case U4”, then include it. – If the use case has a precondition that the user must be logged in, then it does not “include” that use-case. A screen is not a use-case (user goal) – Main screen is not a use case – Login, add product, play game, etc could be use-cases.
FONTS! Please check to make sure your fonts are the same font face and size consistently! Headings can be bigger, etc just be consistent.