54
INFO 627 Lecture #4 1 Requirements Engineering and Management INFO 627 Storyboarding and Use Cases Glenn Booker

INFO 627Lecture #41 Requirements Engineering and Management INFO 627 Storyboarding and Use Cases Glenn Booker

Embed Size (px)

Citation preview

INFO 627 Lecture #4 1

Requirements Engineeringand ManagementINFO 627

Storyboarding and Use Cases

Glenn Booker

INFO 627 Lecture #4 2

Brainstorming Brainstorming is really a two-part process

Idea generation (the part we most associate with brainstorming)

Idea reduction (to consolidate the ideas) Brainstorming is one of the most fun ways to

find undiscovered requirements Usually done in person, though web-based

brainstorming is possible

INFO 627 Lecture #4 3

Brainstorming Benefits Encourages participation by everyone Allows ideas to build on each other Generates lots of ideas quickly Often generates a broad range of ideas Encourages throwing away normal limitations

(out of the box thinking)

INFO 627 Lecture #4 4

How to do Brainstorming Gather key stakeholders in a room Give each one sticky notes (or index cards)

and a marker Tell everyone the rules, and the objective for

the session (digression is easy to do!) Usually a formal time limit isn’t set – the

facilitator decides when ideas have run out

INFO 627 Lecture #4 5

Brainstorming Rules Do not allow criticism or debate Let your imagination soar! Generate as many ideas as possible Mutate and combine ideas

INFO 627 Lecture #4 6

Objectives Typical objectives are to focus on what

features, services, or things your system should have or keep track of

What other objectives could a session have?

INFO 627 Lecture #4 7

Running the Session As ideas are thought of, each person says

their idea aloud and writes it down on a piece of paper

Mutating and combining ideas is allowed, and to be encouraged! Many of the most innovative ideas come

about this way No criticism or debating allowed!!!

INFO 627 Lecture #4 8

Running the Session It’s important to capture ideas right away, and

in the words first said That’s why each person writes their own

ideas, instead of having a single scribe Don’t criticize ANYTHING, even as simple

as observing duplicated ideas Keep going until it reaches a natural end

INFO 627 Lecture #4 9

Running the Session Keep in mind that lulls are normal during a

session, so beware of ending prematurely

After the end is clearly reached, idea reduction can begin

INFO 627 Lecture #4 10

Idea Reduction Four major steps in idea reduction

Pruning Feature Definition Grouping Ideas Prioritization

(order switched from the book)

INFO 627 Lecture #4 11

Pruning Prune, or get rid of, ideas which are clearly

out of the question Make sure everyone agrees to get rid of each If anyone considers it worth keeping, do so Group together duplicates

If you don’t have some of these, didn’t brainstorm very well!

INFO 627 Lecture #4 12

Feature Definition Write a short description of the idea,

generally by whoever came up with it Want a clearer idea of its scope and intent, to

aid grouping and prioritization One or two sentences often enough

description for now; just get the essence of the idea

INFO 627 Lecture #4 13

Grouping Ideas Start to group ideas, either by type

of suggestion New features, performance issues, improve

existing features, user interface improvements Or maybe by portion of the system affected

Customer service, marketing, sales, transportation, packaging, etc.

INFO 627 Lecture #4 14

Prioritization Optional step – may not do as part of

brainstorming session Can do the basic three-level prioritization:

Critical, Important, Useful High, Medium, Low

Or can use one of three voting schemes

INFO 627 Lecture #4 15

Prioritization Voting A. Can give each person a budget for

“spending” on ideas Total budget of $100 No more than some amount (e.g. $10 or $20) on

any one idea Then add up the total amount spent on each

idea – most money = highest priority

INFO 627 Lecture #4 16

Prioritization Voting Only can vote once – otherwise people

may bias their votes after seeing the initial results

B. Alternate approach is to rate priority on a 5-point scale, and add up ratings for each idea (assume 1 = highest priority) Lowest total is highest priority

INFO 627 Lecture #4 17

Prioritization Voting C. Or can score high/medium/low voting

High = 9 points Medium = 3 points Low = 1 point

Then add up points – largest number of points is highest priority

INFO 627 Lecture #4 18

Web-based Brainstorming Sometimes in-person brainstorming isn’t

possible – have to resort to web-based Can use a private chat room, list server,

web page with bulletin board, instant messaging, or other techniques

Easy to save information this way, but harder to build energy or synergy of ideas

INFO 627 Lecture #4 19

Storyboarding Focuses on addressing the “Yes, But”

syndrome head-on Traditional storyboarding is used for

sketching interface ideas A prototype is a very elaborate storyboard The other kinds of storyboarding support

problem analysis and brainstorming

INFO 627 Lecture #4 20

Traditional Storyboards Storyboards are cheap, easy ways to provide

early user review of the user interface They are easy to create and modify Don’t want to make them too detailed, or

you’ll get lost in detailed design Can also be used to model business rules

or algorithms

INFO 627 Lecture #4 21

Traditional Storyboards Storyboards can be:

Passive – static images from what the system will look like

Active – animated images, like a PowerPoint slideshow or a movie walkthrough

Interactive – let the user try parts of the system firsthand, click on stuff, see mock-ups or simulations

INFO 627 Lecture #4 22

Traditional Storyboard

Once upon a time

Lived in the woods

Maiden capturedby evil king

Rescue by the prince

Happily everafter

INFO 627 Lecture #4 23

Traditional Storyboard

User Validation

Main Menu

Select SearchCriteria

Output Report

Exit Application

INFO 627 Lecture #4 24

Storyboards Storyboards focus on three key aspects

Who is doing something What are they doing How did it happen

Tools can include paper & pencil, Post-it notes, PowerPoint slides, or special tools for storyboarding Soft and fuzzy tools better than “professional”

INFO 627 Lecture #4 25

Storyboarding Guidance Keep it simple – don’t make it too complex

or too realistic, or the actual product development will seem too time consuming Sketchy and clunky are good

Play with lots of changes – a storyboard shouldn’t be carved in stone!

Interactive is better if possible

INFO 627 Lecture #4 26

Storyboarding Guidance Storyboard early in the project Storyboard often Storyboard for new features Storyboards should be something to reshuffle,

throw on the floor, and start over “Pristine” and storyboard don’t belong in the

same sentence

INFO 627 Lecture #4 27

Problem-solving Storyboard The Problem-solving Storyboard is a tool for

working on problems and opportunities Focus separately on finding a solution to

fix problems, then one to address opportunities, then blend them together and see what you get

INFO 627 Lecture #4 28

Problem-solving StoryboardIdentifyScope

List Problemsand Opportunities

Analyze Problems

Find Solution For Problems

Analyze Opportunities

Find Solution For Opportunities Merge

SolutionsFinish

INFO 627 Lecture #4 29

Mind Mapping Storyboard The Mind Mapping Storyboard is a

brainstorming tool, to help look for connections among issues related to solving a problem

Goal is to think of factors separately, then see if there are relationships among them previously missed (undiscovered ruins)

INFO 627 Lecture #4 30

Mind Mapping Storyboard The Mind Mapping Storyboard is generated

by starting the the problem or concept at the center of a large board or piece of paper

Ideas are identified and connected to the central concept or each other, as needed

Everyone writes on the same area at once

Problem solving and mind mapping storyboard concepts from Tzipora Katz, based on the CIW curriculum

INFO 627 Lecture #4 31

Mind Mapping Storyboard

CONCEPT

Project team members?

What staff can we use?

Hardwarecompatibility

Competition

Application features

Timelineissues

Competitiveadvantages?Funding

for staff?

Upgradecosts?

How easy to use?

Release before com

petition?

INFO 627 Lecture #4 32

Mind Mapping Storyboard Once all the ideas are expressed on the

storyboard, each can be reduced and analyzed as we saw for brainstorming

INFO 627 Lecture #4 33

Use Cases Use cases focus on what the system does for

its users Cockburn’s “Writing Effective Use Cases” is the

quintessential reference on the subject Use cases can also capture requirements for a

system, and guide design and testing A use case describe a set of actions which

produce a useful result to some actor

INFO 627 Lecture #4 34

Use Case Model The use case model consists of all actors and

systems which may interact with the system, and all of the use cases which may be performed by them Actors External systems Use cases, connected by lines to actors and

external systems System boundary

INFO 627 Lecture #4 35

Use Case Descriptions Use cases are described in natural language What are the steps needed to perform

an activity? Who performs each step, and what is the

expected outcome? (like a procedure) What happens if something goes wrong? What other ways can we perform that task?

INFO 627 Lecture #4 36

Use Case Descriptions What has occurred before this use case takes

place? What is a successful outcome of this use

case? Unsuccessful? How often does this use case occur? How many people perform this use case? What is the priority of implementing this use

case?

INFO 627 Lecture #4 37

Use Case Limitations Notice that we can only describe use cases for

system users – other stakeholders are not included Could miss key requirements there

Use cases weak on finding non-functional requirements – performance, -ilities, safety, security, etc.

INFO 627 Lecture #4 38

Use Case Specifications A very detailed use case description is also

called a use case specification Details exactly what is done for every step –

what fields are entered, what limits and relationships are on and among fields, etc.

The main success scenario and its extensions capture business process logic

INFO 627 Lecture #4 39

Starting Use Cases Build up use cases in sections, as

recommended by Cockburn Start with a basic idea; scope, actor, frequency Add the primary success scenario Add the extensions, variations, and related

use cases Add performance and schedule goals Identify secondary actors and interfaces

INFO 627 Lecture #4 40

Included Use Cases An “included use case” is a use case

which is: Called upon by two or more other use cases Performs a clearly defined function

Included use cases might be portions of a process which are used in several contexts, such as validating a credit card, checking inventory, etc.

INFO 627 Lecture #4 41

Role Playing To understand the needs of stakeholders,

so far we’ve discussed it one-on-one (interview), in a group (workshop), presented ideas about it (storyboard), and thought out how people interact with it (use cases)

Now we’ll try to experience it through role playing

INFO 627 Lecture #4 42

Role Playing This is great for resolving ‘Yes, But’

issues and working out details of use case specifications

Users often can’t describe what they do every day, because it’s so routine

They may overlook key assumptions or implied activities, because it’s always been that way

INFO 627 Lecture #4 43

Role Playing Role Playing is often quick – an hour is a long

time, yet can yield valuable insights Naturally, role playing doesn’t always apply

or work well – use common sense! To do role playing, literally go to the

stakeholder’s work environment, and do a few examples of each type of activity

INFO 627 Lecture #4 44

Role Playing Role playing can help identify critical aspects

of a procedure: When do you know you have to perform it? What decisions are involved? What data or decisions are determined for you? Who gets your work products, and what happens

to them then? How hard is it to learn the task?

INFO 627 Lecture #4 45

Similar Concepts Scripted walkthroughs are similar to

role playing More formal; follows a script for a specific role,

like a use case description Helps plan interaction with the system – who

does what, and when More formal and controlled than role playing

INFO 627 Lecture #4 46

Similar Concepts Class-Responsibility-Collaboration (CRC)

Cards are also similar to role playing Used for object-oriented modeling Index cards are used, one for each class of objects

in the system On each card, describe the class name, its

responsibilities (the method or message it can use), and the classes it may talk to (collab.)

INFO 627 Lecture #4 47

CRC Cards Once the cards have been defined, try to walk

through a task, starting with the first class with which an actor communicates

Try to perform the task, using the methods described on the cards

Look for missing information or methods Fix contents of the cards as needed, and keep

trying until it works

INFO 627 Lecture #4 48

Prototyping Prototyping is an excellent way to hammer

out functionality-related needs Focus is on part of the system where

requirements aren’t clear Key is to have a partial system with which

users can interact

INFO 627 Lecture #4 49

Prototyping Need to pick three aspects of a prototype

Requirements vs. Technology focus Vertical vs. Horizontal scope Throwaway vs. Evolutionary structure

Any combination of these choices is possible

INFO 627 Lecture #4 50

Requirements vs Technology A requirements prototype is focused on determining

what the user’s requirements and needs are for some part of the system In this course, we usually mean this kind

A technology prototype is to determine if a particular technology can perform the kinds of actions needed to support the product A.k.a. proof of concept or technology demonstration

INFO 627 Lecture #4 51

Vertical vs Horizontal Vertical prototypes demonstrate the exact

functionality of a small section of the entire product (much detail, small scope)

Horizontal prototypes demonstrate a broad spectrum of the product's features, but without extensive functionality behind each function (broad scope, little detail)

(Think of vertical and horizontal markets for an industry)

INFO 627 Lecture #4 52

Throwaway vs Evolutionary Throwaway prototypes are meant to show

appearance only – their structure has nothing to do with the final product’s

Evolutionary prototypes have the same architecture as the proposed product, hence they may become a building block for the real product

INFO 627 Lecture #4 53

Prototyping Keep in mind that prototypes do little

to define non-functional requirements Customers can build prototypes too, to

express what they want Don’t overdevelop a requirements prototype Make sure prototype focuses on an area

needing clarification

INFO 627 Lecture #4 54

Prototyping Once prototype completed, users should try it

out in as realistic a situation as possible Try to get different types of users involved Usually helps define fuzzy requirements, and

prompts ideas for new requirements Generally recommend prototyping any new

application where it might reduce riskKeep It Simple!