SOFTWARE IN PRACTICE
(Alias: user story, scenario)
Introducing the Use Case
How do you tell your story to a technical person? How do you shed light on real life? How do you make it easy for technologists to build you a truly useful machine?
Well you don't have to start with a blank page. There are plenty of published frameworks out there to help you structure your thoughts.
To illustrate let's examine a framework for a "use case".
A use case describes an interaction between a user and a system that produces some useful outcome. For example: withdrawing money from an automatic teller machine.
We construct our use case by answering a series of questions.
What is to be achieved?
What conditions need to be in place before the interaction can start?
What conditions indicate successful completion?
What is the normal course of the interaction?
Are there any alternative courses of interaction?
What could go wrong?
Do any business rules apply?
Do any non behavioural requirements apply?
Are we assuming anything?
So there you have it. The use case framework shines when you need to describe heavy interaction between a user and a system. It is not suited to describing complex algorithms like the ones you find in automated stock trading. Which isn't a problem unless you're a stock broker.
So the trick is to learn the frameworks that apply to your application domain and use them to tell more compelling stories to the builders of your special machine.
What is a Use Case?
A use case is a method for describing the behaviour of a system from a user's point of view. It describes an interaction between a user and a system that produces some useful outcome. For example: withdrawing money from an automatic teller machine.
Each interaction usually starts with an initial stimulus from a user (also called an actor) and proceeds through a series of stimuli and responses between the actor, the system, and possibly other actors, until the interaction reaches its logical conclusion (the required post condition).
A use case is often specified informally. An overly formal approach defeats the purpose, which is to quickly capture system requirements from the user's point of view.
Use Case Checklist
A Use Case Development Procedure
Follow these steps to produce your use cases: