310 likes | 335 Views
Functional Requirements – Use Cases. Steve Chenoweth & Chandan Rupakheti (Chapters 14 , 21 – Requirements Text). Quiz question 9 relates to this, when you’ve studied use cases!. What is a Functional Requirement?. Functional requirements specify particular behaviors of a system.
E N D
Functional Requirements – Use Cases Steve Chenoweth & Chandan Rupakheti (Chapters 14 , 21 – Requirements Text) Quiz question 9 relates to this, when you’ve studied use cases!
What is a Functional Requirement? • Functional requirements specify particular behaviors of a system. • E.g., Suppose your “system” acts on “food” – • “Cook food” is “functional.” Vs • How well it cooks, or how fast, or how easily is not. Why? Question 1
What is a Use Case? A sequence of actions a system performs that yield an observable result of value to a particular actor • Sequences of actions • Performed by system of interest • Observable result of value to a particular actor Question 2
Benefits – Requirements Management • Easy to write and read • Think from the perspective of an user • Provides a clear idea of the “what” and the “how” • User involvement • Use cases tell a better requirement story Typically developers are encouraged and required to write use cases. Why ? Questions 3,4
Benefits – Development Life Cycle • Use cases started for requirements become the vehicle for the following activities: • Detailing them to show the corresponding design work • Development of test plans for acceptance testing • Creation of interaction design specifics, simply by adding detail to the use cases about “how” the actions will be done • The basis for discovering a great OO design, based on the actors and their actions Requirements Use case Test Plan forUse Case Design Use case
Use Case Template • Name • Brief description • Actors • Basic flow • Alternate flows (sometimes called extensions) • Pre-conditions • Post-conditions • Other stakeholders • System/sub-system • Special requirements
Use Case Model - Development Steps • Identify the actors • Identify the use cases • Identify actor/use case relationships • Outline use cases • Refine use cases
1. Identify the Actors • Who uses the system? • Who gets/provides information from/to system? • Who supports the system? • What other systems interact with this system?
2. Identify the Use Cases • What are the intentions of each actor with respect to the system? • What are they going to use the system for? • Does the actor provide some information? • Does the actor need to be informed of something?
2. Identify the Use Cases • Give a descriptive name: • Start with an action verb • Describes goal or intent • Give a one-sentence description
Eat food Buy food 3. Identify Actor/Use Case Relationships • Draw a diagram showing relationships between actors and use cases Parent Child
4. Outline Use Cases • Describe sequence of events in basic flow (sunny day scenario) • Describe sequences of events in alternate flows (rainy day scenarios)
5. Refine Use Cases • Describe sequences of events for flows • Describe pre-conditions • Describe post-conditions • Fill in special requirements
Pre and Post Conditions • What is a pre-condition? • What is a post-condition? Questions 5,6
Use Case Template • Name • Brief description • Actors • Basic flow • Alternate flows • Pre-conditions • Post-conditions • Other stakeholders • System/sub-system • Special requirements
Microwave Example Cook Food User
Cook Food Use Case – Slide 1 of 4 • Name: Cook Food • Brief description: User places food in microwave and cooks it for desired period of time at desired power level. • Actors: User
Cook Food Use Case – Slide 2 of 4 • Basic flow: • User opens door and places food in unit • User enters time for cooking • User tells microwave to start • Unit cooks food • Unit indicates it is done
Cook Food Use Case – Slide 3 of 4 • Alternate flows (“extensions”) • User cancels time before starting • User cancels cooking before finished • User selects reduced power level before pushing start button • Make sure you detail the alternate flows completely Question 8
Cook Food Use Case – Slide 4 of 4 • Pre-conditions • Unit is plugged in • Unit is in ready state • Post-conditions • Food is cooked or user cancelled operation • Special requirements • Unit should indicate remaining time to finish while cooking • Default power setting should be "high"
Extending Use Cases • Extend an existing use case instead of redefining it Question 7
Cook Food Slice Food Microwave Extension <<extend>> User
Including Use Cases • Frequent sequences of events may be defined as use cases • Including a use case is like calling a subroutine
Cook Food Set Timer Microwave Inclusion <<include>> User
Cook Food Inclusion • Basic flow: • User opens door and places food in unit • User performs Set Timer use case • User pushes start button • Unit cooks food • Unit beeps
RFC 2119 Just Google for this, to see what it is! • Will, Shall, Must • Should • May • Is there a difference?
In Class Discussions – we’ll discuss these… • Can all functional requirements be specified using use cases? Explain • How do you know how detailed to make a use case? • How do you know when you’ve moved from “requirements” to “design”? • Why would you want “test plans” for your system to be closely related to use cases? • Why would you keep a separate version of “requirements use cases” up to date, if possible?
In-Class Activity we’ll do: • Develop use cases for the following feature of the degree planner project • Advisors must be able to pull up a specific student’s plan for graduation and approve said plan.