Requirements modeling

Download Report

Transcript Requirements modeling

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
– current systems or business processes
– how users will use a new system
Tools for modeling requirements
•
•
•
•
•
Use Cases
State Diagrams
UI Mockups
Storyboards
Prototypes
Functional reqs: What should it do?
connect
mysql
database to
asp .net
web …
Developer
sell my
beautiful
jewelry
find a
cool ring
on sale
Customer of client
Client
Functional reqs: What should it do?
sell my
beautiful
jewelry
User-centric: What not how
find a
cool ring
on sale
Customer of client
Client
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:
1. Alice calls company
2. Bob answers phone
3. Alice says she want to place an order from the
catalogue.
4. Bob asks how the order will be paid.
5. …
USE CASE
Forms of use cases
• Casual – “user stories”
…
these are cultural issues
but in agile methods, less is more
• Fully dressed use cases – preconditions,
post-conditions, actors, stakeholders, etc.
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:
1.
Alice calls company
2.
Bob answers phone
3.
Alice says she want to order item X.
4.
Bob checks stockroom for availability.
5.
Stockroom says it is available.
6.
…
Main scenario with branches
Name: Order jewelry from a catalog
Actors: Customer Alice, Sales rep Bob, Stockroom, Shipping dept.
Initiator: Alice
Scenario:
1.
Alice calls company
2.
Bob answers phone
3.
Alice says she want to order item D23 from page 5 the catalogue.
4.
Bob checks stockroom for availability.
5.
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
call on phone
answers phone
…
wants to order
Stockroom
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
Example: Pac Man Use Cases
Actor
User
User
User
User
User
User
User
User
User
Goal
Play game
Initialize game
View high scores
Set level
Pause game
Exit game
Save game
Change Controls
Play saved game
Priority
1
1
3
3
2
2
3
4
3
Elaborated use case
Play game:
1.
User chooses “Play Game” from main menu.
2.
Start level is displayed with player having 3 lives
3.
User moves Pac Man left, right, up, down
4.
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:
1. User chooses “Play Game” from main
menu.
2. Start level displayed with 3 lives and 0
score
3. Play level (see separate use case)
4. Repeat 3 on successive levels until
game over
Refined use case (no UI spec)
Play game:
1. User chooses to play game
2. First level starts with 3 lives and 0 score
2. Play level (see separate use case)
3. Repeat 3 on successive levels until
game over
Pac Man Use Cases
Actor
User
Goal
Play game
Priority
1
User
User
User
Play level
Initialize game
View high scores
1
1
3
User
User
User
Set level
Pause game
Exit game
3
2
2
User
User
User
Save game
Change Controls
Play saved game
3
4
3
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
How can use cases contribute to quality in
Testable
functional requirements?
Feasible
Consistent
Prioritized
Traceable
Agreed upon by customer
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)
Hits dot:
Sound effect
k increased by 50
k<MAX
k<0
Win level
Pac Man has n lives,
score k
moves left, right, up,
down
Moves to
empty spot
n>0
Hits ghost:
Sound effect
n reduced by 1
n=0
Lose level
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
prioritized
use cases,
proofs of concept
display
sprite
move
sprite
level 0
proof of concept to
understand feasibility
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-dueassignment.
• 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?