Here’s an example of a use case that has some system complexity. The user interacts with the main system that we are describing. The system also interacts with two external systems. This use case example shows how to describe the steps that demonstrate all interactions with the system.
Sample Use Case Example
The first step in defining a use case is to define the name, using the verb-noun naming convention.
Use Case Name: Place Order
The next step is to define the use case at a low level of detail. This quick use case definition allows for agile development of use cases. This is also known as a use case brief.
Sample Use Case Brief
Use Case Name: Place Order
Actors:
- Shopper
- Fulfillment System
- Billing System
Use Case Description: After the user has selected items to purchase and then order the items. The user will provide payment and shipping information. The system will respond with confirmation of the order and a tracking number that the user can use to check on order status in the future. The system will also provide the user with an estimated delivery date for the order, which will include all selected items. The user may already have an account with the company with billing and shipping information.
Formal Use Case Example
You can clarify the use case further by refining the use case into a formal use case or informal use case format (free template). Here is how the use case would look when using a formal use case format.
Note that there are additional elements to a formal use case that may be included, but are not part of this example. You can read more about how to read a formal use case. You can also read about how to define actors, and how to define use case triggers and preconditions.
Use Case Name: Place Order
Actors:
- Registered Shopper (Has an existing account, possibly with billing and shipping information)
- Non-registered Shopper (Does not have an existing account)
- Fulfillment System (processes orders for delivery to customers)
- Billing System (bills customers for orders that have been placed)
Triggers:
- The user indicates that she wants to purchase items that she has selected.
Preconditions:
- User has selected the items to be purchased.
Post-conditions:
- The order will be placed in the system.
- The user will have a tracking ID for the order.
- The user will know the estimated delivery date for the order.
Normal Flow:
- The user will indicate that she wants to order the items that have already been selected.
- The system will present the billing and shipping information that the user previously stored.
- The user will confirm that the existing billing and shipping information should be used for this order.
- The system will present the amount that the order will cost, including applicable taxes and shipping charges.
- The user will confirm that the order information is accurate.
- The system will provide the user with a tracking ID for the order.
- The system will submit the order to the fulfillment system for evaluation.
- The fulfillment system will provide the system with an estimated delivery date.
- The system will present the estimated delivery date to the user.
- The user will indicate that the order should be placed.
- The system will request that the billing system should charge the user for the order.
- The billing system will confirm that the charge has been placed for the order.
- The system will submit the order to the fulfillment system for processing.
- The fulfillment system will confirm that the order is being processed.
- The system will indicate to the user that the user has been charged for the order.
- The system will indicate to the user that the order has been placed.
- The user will exit the system.
Alternate Flows:
3A1: The user enters billing and shipping information for the order. The user desires to use shipping and billing information that differs from the information stored in her account. This alternate flow also applies if the user does not maintain billing and / or shipping information in their account, or if the user does not have an account.
- The user will indicate that this order should use alternate billing or shipping information.
- The user will enter billing and shipping information for this order.
- The system will validate the billing and shipping information.
- The use case continues
5A1: The user will discover an error in the billing or shipping information associated with their account, and will change it.
- The user will indicate that the billing and shipping information is incorrect.
- The user will edit the billing and shipping information associated with their account.
- The system will validate the billing and shipping information.
- The use case returns to step 2 and continues.
5A2: The user will discover an error in the billing or shipping information that is uniquely being used for this order, and will change it.
- The user will indicate that the billing and shipping information is incorrect.
- The user will edit the billing and shipping information for this order.
- The use case returns to step 3A1 step 3.
10A1: The user will determine that the order is not acceptable (perhaps due to disatisfaction with the estimated delivery date) and will cancel the order.
- The user will request that the order be cancelled.
- The system will confirm that the order has been cancelled.
- The use case ends.
Summary
This example use case shows how a use case can be developed with incrementally increasing detail. First, the name of the use case is identified, then a simple version of the use case is defined. Finally, a formal use case is defined.
Thank you for the great example, and the definitions of what you’re referring to. I have NO experience with use cases or scenarios, no experience with flow charting or anything like that. I’m a secretary, tasked to help out with developing a new system, and was tasked with providing use cases for three variations in the new system. I had no idea where to start but I think now I can at least get something down on paper that makes sense. I had visions of trying to make boxes and arrows and somehow knew that wouldn’t work. Thanks again.
Anita, or Anita Jay (I hope I guessed right), thanks very much for the kind comments, and I’m thrilled that the stuff we’ve got here is helping you! You made my day by letting me know.
Thanks for stopping by, hope you stick around, and if any of the articles don’t provide enough context or use too much jargon, just comment and let us know – we’ll make em better.
Thanks a lot for this detailed explanation on each of these entities in the USe Case Template.
Do we need to consider any Assumptions and section for Additional Information as well.
Is there a tool to translate those Diagramming Work Flow to Activity Diagrams ?
Thanks,
Padma
Hey Padma, welcome to Tyner Blain. Yes, you should absolutely document (and validate) assumptions, or other additional information which provides context. I’m sure someone has created a tool to convert diagrams from one format to another – however, I would recommend doing it manually, because of the time you spend thinking about the requirements while translating from one syntax to another.
where is the features of this use case?
Hi!
I just want to know that do you use any template for writing the use cases?..if so what and how?The above test case looks so readable and simple.. Thanks alot for sharing this with people like us..
Thanks Rajashree!
I have published a couple templates before (and many are available elsewhere on the web). You might want to look at http://tynerblain.com/blog/2009/02/02/user-stories-and-use-cases/ to see which format would work best in your unique situation.
Hope that helps!
Thanks, Rajashree, and welcome to Tyner Blain! We have a template for informal use cases: Informal Use Case Template.
My clients usually already have templates of their own that they have developed (with boilerplate text and signoffs, etc), so I usually use those. When they don’t, I will use this one, or I will propose that they update theirs to be more like this one. There is not a universal standard that everyone acknowledges as “the template.”
hi scott , I am student in software enjneering (master) , I need your help , can you give me more examples in usecase daigrame and class daigram .
Yamen, thanks for your question, and welcome to Tyner Blain. Generally, I don’t draw use case diagrams – I find they provide almost no extra insight in exchange for extra effort. Class diagrams, I find, are incredibly valuable. I wrote a series of articles recently on how to use class diagrams for business analysis which should help you get started. As a software engineering student, you’ll also want to go into more detail on the techniques for representing systems. There are links to Scott Ambler’s resources for that purpose. The series here is focused on domain analysis, not solution analysis.
Good luck!
Hi ,I have gone through with your article description about Use case scenarios,It has helped alot in understanding the concepts and will definitely help me out in preparing out the Use-cases And BRD as I am recently appointed as a Business Analyst in organisation.
Thank you so much …
Keep introducing real case scenarios and samples for consultation.
Thanks, very much!
I need to know how to write use cases for online purchasing
For online purchasing, you’ll have multiple use cases. Start with defining who the customer is, and why they are purchasing online (specific or non-specific buying, etc). Then look at how they get to the site (direct, SEO/SEM, from email, referral, etc). There will be a lot of variations (do they want to compare products, or do they know what they want, or are they window shopping, are they shopping for themselves or someone else, etc). Think about the checkout process – payment options, shipping options, coupons, etc. Also the notification, returns, and customer service use cases.
TONS of stuff to consider.
Hello Scott!
i wanted to concert about my following problem (maybe shoIuld call it “challenge”…)
i’m working on project in which we have a device (let’s consider it as already existing without changes) and a remote control for this device.
my efforts are putted on use cases definition for the remote control development program.
this remote is aimed to connect not only to the specific device bt also to offer connectivity to other devices/computers/terminals via specific datalinks
the remote offers several functions, is aimed to be used by different types of users and also has different modes of use (day/night, following a typical usage pofile)
in these days, i try to adopt strategy for use cases guidelines definition
i’d be grateful if you can send me some advices from where i can start
best regards,
Shlomo,
Thanks very much for the great questions and welcome to Tyner Blain!
The best place to start is to identify the personas (actors, in use cases) – see How to Create Personas for Goal Driven Development and Global Actor Hierarchies and Personas for some tips. Also keep in mind Elastic Users, Actors, and Roles and Actor Hierarchies and Then Some.
Then map those actors to use cases you define for them with Use Case to Actor Mapping.
One thing to think about – for the “work for other devices” part of the product, are you defining support (in the remote) for specific datalink protocols (in the other devices), or you are defining an API (in the remote) that would support any not-yet-invented device?
If the former, you’ll want to specify support for the protocols as constraints for your remote. If the latter, you’ll want to look at use cases in two ways – (1) make sure your product allows people to do the stuff you know they need to do – via the API – and (2) think about the programmers that are working against your API as they develop other devices. What are their (the programmer’s) use cases? How do you make your API easier for them to program against?
hi,
i want to know that how to write a test case & sample use case.b`coz i something know about software .in degree my stream was Bio,nw i am in software field.i have joined software testing course,know something about testing,so u are requested that please guide me that how to write a test case for any software requirement.
thank you
I would like to request instruction on writing a fully dressed use case for “finding the nearest restaurant” using an iphone.
Would really appreciate your help
Thanks,
J
Thanks, J, and welcome to Tyner Blain!
http://tynerblain.com/blog/2006/06/26/foundation-series-how-to-read-a-formal-use-case/ and http://tynerblain.com/blog/2005/12/20/use-case-series-formal-use-case/ may give you the insights you need to create your formal (fully dressed) use case.
Hope that helps!
Hi Scott, I have gone through your article and found good for a beginers, who wants to join as a part of design team. But I need some pictorial sample rather text for better understanding and focused as the matter fact UML.
Thanks,
Tapan
Thanks, Tapan, and welcome to Tyner Blain!
Take a look at http://tynerblain.com/blog/2007/03/21/use-case-vs-statechart/ or more generally, http://tynerblain.com/blog/category/requirements/requirements-models/use-case/ and http://tynerblain.com/blog/category/requirements/requirements-models/uml/ for several articles that present use cases graphically.
Hello Scott!
Finally a well explained example for a use case. I am very glad I found this article. Thank you very much!
Thanks Elizabeth, and welcome to Tyner Blain!
Wow good information, and nice written….
Thanks, and welcome to Tyner Blain!
Hello Scott!
Finally a well explained example for a use case. I am very glad I found this article. Thank you very much!
i’m from iran
Thanks Sobhan, and welcome to Tyner Blain!
When you say you want the use case “in the remote” – what do you mean?
i want the use case in the remote
How do you make a Use Case Diagram using the example you provided above?
Rupinder, thanks for reading and commenting! Please take a look at my comment #6 above – I don’t draw UML use case diagrams, as I find that they don’t provide me with additional insights, and they are relatively (time) expensive to maintain as my understanding of a system and the user goals / tasks evolve.
thanks. i now understand a thing or two about use cases.
can you give me examples of actor and a user case.
hi Scott Sehlhorst
I need to know how to write use cases for teaching agent and learning agent
I have been reading articles on this website since yesterday, and I must say it is full of some very good material. I would definitely be referring to it again and again.
At the moment my question is about requirement tracking software. Can you mention some good ones, especially the ones that are freely available? Thanks.
Thanks Kamal!
My short answer is that I haven’t found the “perfect” purpose-built requirements tracking software (free or otherwise). The “least bad” answer will really depend on the particulars of what you’re trying to accomplish. In terms of “free” you’re probably best off trying to use general purpose tools that give you the equivalent capabilities of Microsoft office (spreadsheet, word processing, diagramming/drawing) & some way to share files, like dropbox, Google docs, office Live, etc.
What exactly are your goals, definition of success (of selected software), and team dynamics?
First of all thanks for a prompt response.
Well, if we look at the discussion on http://okcancel.com/archives/article/2005/12/wanted-spec-owner-2.html it indicates that the main issue with use cases is that people find it very hard to maintain and track and this is some thing where a software tool could bring great ease. I have seen that there are some very good tools like IBM DOORS and Rational RequisitePro but they cost a lot. So I was looking for some thing that could give at-least the basic features for free.
I have a few more questions as well.
1) When writing a use case for some thing with a user interface, would automatic population of UI with initial data like a users list for an LDAP server be treated as a use case and if so what could be the possible actors?
2) When writing a use case for some thing that has no user interface, rather it is something that has to perform some complex sequence of operations which may or may not involve invoking other modules. How would we be writing a use case for such a scenario. I am asking this because in general the use case guidelines say that one should address such items at the black-box level but then does it mean such scenarios are not a candidate for a use case?
3) In your articles on Tyner Blain, you have explained SDLC in a great detail and all these articles have been written over a certain period of time. As you may understand when information becomes over whelming it tends to lose its purpose. I feel that you need to write a summary article which is not very long but summarizes the whole process with a little high level picture with possibly links to original articles where ever needed. This would be some thing great to have. When ever you write such an article please do send me a link.
Thanks.
Beautiful example. I do not understand tho as to why you have not included the use case diagram.
Thanks, Fro!
Please see my response to comment # 25 below. I don’t think they provide enough value to justify the investment in creating them.
What would you suggest if someone has to develop an application like MS Word or Visio where there is complex UI involved but the essential goal is a document.
What could be the possible use cases for such a scenario?
I am very new to this field and I have an interview with a huge company as a Quality Assurance Anaylst in two days. What are some basic and simple things/ advice you can give me to remember about use cases for my interview?
Thanks Alantis for the great question! For a QA role, I’d start with the concepts addressed here: http://tynerblain.com/blog/2007/04/12/use-case-vs-test-case/ and follow those links for deeper dives into the associated concepts. Good luck on your interview!
Scott
That was great for quick revision before my exam.Thanks!
however use case diagram would have saved some of my time(i read your reply to comment#17).
Thanks again
Thanks Akhil!
It is unfortunate, in my opinion, that people are teaching and using use case diagrams. They just aren’t worth it. There is not nearly enough useful information to justify the time invested in learning to create them, creating them attractively, and maintaining them as intended usage of the system evolves.
Sorry that you have to demonstrate mastery of them in your exam. Best of luck!
My company is currently documenting many existing processes. There is a specific set of documents that must be created for each process. All processes have to have a high level process flow and business requirements. In addition, we (the business) were asked to create Use Cases for each. We struggle with this since we don’t see the value that they add in relation to the flows. In many cases, they were repeats of the flows. By flow, I mean business process flows made in Visio – no swimlanes, but all users are identified. There are very few, if any, descision diamonds in the flow. Then, if there is a decision diamond in the flow, there would be one use case for each direction that the process takes. (There was disagreement among the team about the overall approach to Use Cases, and the detail that you should use in them, and I’ll address that in a separate post.) So, my question is, how do Use Cases provide more information than a flow such as ours would provide?
Thanks in advance.
Great question, Kelley. I have argued – both successfully and unsuccessfully on projects that you should either do process flows or use cases, but not both. The two approaches to documenting interactions and processes have something that feels like 90% overlap in content and value.
The difference is that use cases bias towards a focus on what the user is trying to accomplish and why, whereas process flows bias towards documenting how the process works. If you’re documenting an “as is” state, you should use process flows – they describe things “how they are” much better. When you write a good use case, you are documenting what a person wants to do – and if you’re documenting an existing system, you will either (a) ignore what users actually want to do – pretending that they want only what the system supports, or (b) document what the users want to do – and be forced to show all of the places where the current processes don’t support the user goals.
So, the main things the use cases would provide are (1) the goals that the users are trying to achieve by exercising the given process, and (2) the decoupling between the existing processes and current user goals.
Hope that helps, and welcome to Tyner Blain!
Many thanks for such a clear explanation of use case text. I am working on a degree course and have got use case diagrams OK in my head but wanted another view of the text versions. I will put this page in my bibliography on my current assignment!
Thanks, Mark!
This provide me clear description of how to write a use case. Thanks for this good enough article.
Good day !! does each use case has its own DFD (data flow diagram) ?
thank you
Hey Ann, thanks for commenting. Each use case would have it’s own DFD. Not every use case is complicated enough that drawing out the DFD adds any value, or even adds enough value to justify the costs of (a) drawing the DFD, and (b) maintaining the DFD as things change.
Mr.Scott,
Your example is wonderful and made my day to do wonders. Here is my gratitude token for the shared information. ” Thank you very much”. I really appreciate your help.
Thank you
GV
I any one suggest me if i can write a use case flow in following way.
Basic Flow:
1. The user is presented with ‘eCase form’ page.
2. the user selects / Inputs mandatory fields and clicks “Submit” button.
3. the system “Saves” the data in database and sends alert message to reviewer.
Hi Scott,
In my new project I have to design a retail reporting system for a mid sized company.
Do you think writing use cases would be helpful for such projects?
Hey Divya,
I would argue yes. Someone asks for a report. What decision are they making, or action are they taking; directly in response to whatever it is they see in the report? What is the most important (and minimum) information that must be presented to inform this decision / action? That’s what needs to be in the report.
If I were writing a user story, I would write something like “As an account manager, I need to know when my client is overdue in paying our invoice, so that I can contact them and get them to pay us.” I would write acceptance criteria somewhat like “The account manager must be able to view the outstanding balance due. The account manager must be able to view the due-date. Etc…”
This then allows the people building the solution to decide if a report is the most appropriate way to solve the problem trying to be solved. Maybe a dashboard is appropriate. Maybe automatically generating a “pay your bill” email would be more effective at eliciting past-due payments.
Does this help?
Yes,it does.Thank you!
Can you please tell this use case scenarios
Hello Scott, When I read the use-case sample, I found some striking similarities with my own observation of a real-world queue system. I am posting its URL below for your kind perusal. I wrote it from scratch, actually, one thing leading to another.
http://rakeshneelakandan.blogspot.in/2010/10/derivation-of-laws-governing-real-world.html