Decomposing User Stories
This is an activity that will help you devise your specification, so that you can write black box tests.
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
Let’s decompose!
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
Identify “actors” “entities” and “responsibilities”
NOUNS
Infer missing information when you spot it
NOUNS
Start sketching
NOUNS
look for relationships
OWNERSHIP/
KNOWLEDGE
Relate the Entities
OWNERSHIP/
KNOWLEDGE
Don’t look at the aggregation diamonds
Depends upon (calls something on a local of that type)
Identify Verbs
VERBS
Add behaviours
VERBS
Walk through scenarios
SEQUENCES
DOD (Definitions of done):
(written more as a user-story sequence)
Start to build UML
Annotate with key dependencies
Add associations
Sketch some scenarios
change
Sending in appropriate params
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!
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
Practice Question
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