1 of 20

Decomposing User Stories

This is an activity that will help you devise your specification, so that you can write black box tests.

2 of 20

Take a User Story

Acceptance criteria is more or less another label for “definitions of done”

“Value Statement” is an older name for “RGB statement”

file

folder

component

3 of 20

Let’s decompose!

4 of 20

Activities when decomposing...

THIS IS NOT AN ORDERED SET OF STEPS

Identify actors (objects/classes)

Identify behaviours and associate those with actors

Identify relationships between actors (fields)

Identify calls between behaviours

NOUNS

VERBS

OWNERSHIP/

KNOWELDGE

SEQUENCES

5 of 20

Identify “actors” “entities” and “responsibilities”

NOUNS

6 of 20

Infer missing information when you spot it

NOUNS

7 of 20

Start sketching

NOUNS

8 of 20

look for relationships

OWNERSHIP/

KNOWLEDGE

9 of 20

Relate the Entities

OWNERSHIP/

KNOWLEDGE

Don’t look at the aggregation diamonds

Depends upon (calls something on a local of that type)

10 of 20

Identify Verbs

VERBS

11 of 20

Add behaviours

VERBS

12 of 20

Walk through scenarios

SEQUENCES

DOD (Definitions of done):

(written more as a user-story sequence)

  1. User selects rename/add/delete file or folder
  2. The underlying file system changes
  3. View detects the change and displays it

13 of 20

Start to build UML

14 of 20

Annotate with key dependencies

15 of 20

Add associations

16 of 20

Sketch some scenarios

change

Sending in appropriate params

17 of 20

Make a tiny prototype

note: this code probably won’t “just” work (so don’t just type this in)

Can you think of a better design for this?

It’s fine not to have the most incredible, long range thinking design right away!

18 of 20

Tiny Example: Where’s the party at?

Architectural Decisions: Mobile application. user/client can register games, which are then saved on the server. The server holds the location and times of games such that they can be queried by the client.

Description: a mobile app that tells you where all the cool people are hanging out (for some definition of cool)

User Story: As a senior citizen, I would like to be able to identify all the open card games close to where I am currently located, so that I can reserve a seat at one.

Definitions of Done: User is on the search screen, and enters a keyword game type into the search area, and is shown a list in a games view, where games are sorted by nearness to where they live.

Give it a go: Work through nouns, verbs, fields, calls

19 of 20

Practice Question

20 of 20

Examinable Skills: you should be able to...

Identify elements and behaviours in user stories (probably in definitions of done).

Identify sequences of behaviour from definitions of done/user stories

Create UML diagrams to show the identified static relationships (associations)

Create sequence diagrams to show the identified dynamics (calls)

Create a tiny structural/behavioural prototype implementation of the design in code (just to show static and dynamic relationships and minimal functionality -- not full behaviour)

Answer questions about what is true/false about the above processes.

Decomposing User Stories