400 likes | 648 Views
Requirements modeling. Last lecture. Good requirements are crucial Specifying requirements is hard. Today. Techniques for developing functional requirements. What the software is supposed to do!. Requirements modeling. We build models in requirements analysis to understand
E N D
Last lecture • Good requirements are crucial • Specifying requirements is hard
Today Techniques for developing functional requirements What the software is supposed to do!
Requirements modeling We build models in requirements analysis to understand • current systems or business processes • how users will use a new system
Tools for modeling requirements • Use Cases • State Diagrams • UI Mockups • Storyboards • Prototypes
sell my beautiful jewelry find a cool ring on sale Client Customer of client Functional reqs: What should it do? connect mysql database to asp .net web … Developer
sell my beautiful jewelry find a cool ring on sale Client Customer of client Functional reqs: What should it do? User-centric: What not how
Modeling functional requirements • Identify user classes • Example: • jewelry store owner • buyer of jewelry
Modeling functional requirements • Identify user classes • For each user class identify goals Example Buyer: search for item place an order return an item
Modeling functional requirements • Identify user classes • For each user class identify goals • For each user class/goal • Describe how the user will use the system
Example Name: Order jewelry from a catalog Actors: Customer Alice, Sales rep Bob, Stockroom, Shipping dept. Initiator: Alice Scenario: • Alice calls company • Bob answers phone • Alice says she want to place an order from the catalogue. • Bob asks how the order will be paid. • … USE CASE
Forms of use cases • Casual – “user stories” • Fully dressed use cases – preconditions, post-conditions, actors, stakeholders, etc. these are cultural issues but in agile methods, less is more …
Key aspects of use case • Name: what we call this use case • Actors: entities that interact with system (typically people but also can be other systems) • Initiator: actor who initiates the use case • Scenario: sequence of steps users take and how system responds
Main scenario Name: Order jewelry from a catalog Actors: Customer Alice, Sales rep Bob, Stockroom, Shipping dept. Initiator: Alice Scenario: • Alice calls company • Bob answers phone • Alice says she want to order item X. • Bob checks stockroom for availability. • Stockroom says it is available. • …
Main scenario with branches Name: Order jewelry from a catalog Actors: Customer Alice, Sales rep Bob, Stockroom, Shipping dept. Initiator: Alice Scenario: • Alice calls company • Bob answers phone • Alice says she want to order item D23 from page 5 the catalogue. • Bob checks stockroom for availability. • Stockroom says it is available. 5a. Stockroom says it is not available. See order out of stock item use case. 6. …. Alternative path can be completed or refer to another use case.
Sequence diagram Alice: Customer Bob: Sales rep Stockroom call on phone answers phone wants to order …
Use case development • Brainstorm to identify use cases • Validate/prioritize/ensure consistency • Elaborate high priority/complex use cases identify new use cases • Repeat until _________________ Waterfall: until done Agile: until good enough for now
Elaborated use case Play game: • User chooses “Play Game” from main menu. • Start level is displayed with player having 3 lives • User moves Pac Man left, right, up, down • Pac Man moves to empty space, return to step 3 4.a. Pac Man hits dot but not end of level, 50 points awarded, return to step 3 4.b. Pac Man hits dot and level ends, 50 points awarded and new level starts (see start new level use case) 4.c. Pac Man hits ghost (see hits ghost use case) 4.d. Pac Man hits a wall, can’t move any further in that direction, returns to step 3 with new constraint etc.
Refined use case Play game: • User chooses “Play Game” from main menu. • Start level displayed with 3 lives and 0 score • Play level (see separate use case) • Repeat 3 on successive levels until game over
Refined use case (no UI spec) Play game: • User chooses to play game • First level starts with 3 lives and 0 score • Play level (see separate use case) • Repeat 3 on successive levels until game over
Agile method: goal stack highest priority, best modeled use case prioritized use cases lowest priority, least modeled use case
Uses of use case • Requirements: • Define functional requirements • Expose business rules (constraints on behavior) • Planning: Suggest an iterative strategy • Design: Validate design models • Testing: Provide scenarios for validation
Requirement Quality • Specify what not how • Unambiguous • Testable • Feasible • Consistent • Prioritized • Traceable • Agreed upon by customer How can use cases contribute to quality in functional requirements?
Tools for modeling (functional) requirements • Use Cases • State Diagrams • UI Mockups • Storyboards • Prototypes good for describing “flow”
State diagrams Play level: initialize n=3 (#lives), k=0 (level score) Moves to empty spot Hits dot: Sound effect k increased by 50 Pac Man has n lives, score k moves left, right, up, down k<MAX n>0 k<0 Win level Hits ghost: Sound effect n reduced by 1 Lose level n=0
Tools for modeling (functional) requirements • Use Cases • State Diagrams • UI Mockups • Storyboards • Prototypes good for describing “flow” better for state machines
UI Mock UP • UI Mock Up (or even full design) is often considered part of the requirements process because it summarizes the ways a user can interact with the system. • UI design can also address non functional requirements.
Storyboards Good for communicating “look and feel” in addition to “flow” (again addressing non-functional requirements)
Tools for modeling (functional) requirements • Use Cases • State Diagrams • UI Mockups • Storyboards • Prototypes these are special cases of prototypes
Prototypes Use fast prototyping tools to clarify functionality, look and feel, etc. Sample level with simplified art, minimal features
Which model should you use? All that are appropriate! Invent new ones as needed!
Requirements for games Management Marketing Game Designer … Users Software engineers
Top down game specification • High concept • Competitive analysis • Main character • Game Mechanics • Underlying models • Major features • Look and feel • Scoring • UI • etc. Traditional Game Design Document “Game Bible”
Bottom up game specification • Use cases • State diagrams • UI mock ups • Storyboards • Prototypes Make your vision “concrete” • Discover technical requirements: • Display sprite • Move sprite • Detect collision • etc. • Address feasibility • Suggest iterative design/development • strategy
Agile method: goal stack display sprite proof of concept to understand feasibility move sprite prioritized use cases, proofs of concept level 0 use case
Next Time • Design practice • Reading/watching • McConnell • UML tutorial (several pages, do it all) • Youtube: Will Wright 13:00-30:00
Next Assignment Game Design Document • Review the assignment and come prepared next time to ask questions! • This is not a 3-hours-the-night-before-it-is-due-assignment. • Use the remainder of class to begin to PLAN who is doing what and issuing tickets.
Sample questions • Why do we want to classify users? • What are use cases? What are their benefits? Shortcomings? • What are key components to a use case? • How can use cases be employed throughout the project? • What is a sequence diagram and when is it useful? • How does UI design fit into the requirements process? • Why do we use prototypes in the requirements process?